Entity Framework – Query – “SELECT 1 AS [C1]” – Workfile & WorkTable

Background

Sent a couple of goodwill posts towards Entity Framework.

Ever the curmudgeon, it is time to start taking some shots.

 

Sample Generated Query

Query Snippet – Original

Here is a very small portion of one of the queries generated by Entity Framework.


select 1

where 
(
	NOT EXISTS
         (

		SELECT 1 AS [C1]
            
		FROM
                (

		    SELECT
 
		        [Extent10].[End_Id] AS [End_Id],
                        [Extent10].[FootnoteParent_Id] AS [FootnoteParent_Id],
                        [Extent11].[Id] AS [Id2],
                        [Extent12].[Id] AS [Id3],
                        [Extent12].[BeginDate] AS [BeginDate]
             
		   FROM [dbo].[UcNoteContainerFootnotes] AS [Extent10]
				
		   INNER JOIN [dbo].[CourseUCTCA] AS [Extent11]
				 
			ON ([Extent10].[Container_Id] = [Extent11].[NoteContainer_Id])
			AND ([Extent11].[NoteContainer_Id] IS NOT NULL)
             
		  LEFT OUTER JOIN [dbo].[AcademicYears] AS [Extent12] 
			ON [Extent10].[Begin_Id] = [Extent12].[Id]

            
		  WHERE [Extent10].[Container_Id] IS NOT NULL 

			
	      ) AS [Filter2]
          
	     LEFT OUTER JOIN [dbo].[AcademicYears] AS [Extent13]
		   
		ON [Filter2].[End_Id] = [Extent13].[Id]

	) -- NOT EXISTS

) -- SELECT 1


Query Snippet – Revised

Here is a rewrite



select 1

where not exists 
(

	SELECT 
			1

	FROM [dbo].[UcNoteContainerFootnotes] AS [Extent10]
	
	INNER JOIN [dbo].[CourseUCTCA] AS [Extent11]
				 
		ON ([Extent10].[Container_Id] = [Extent11].[NoteContainer_Id])
	

) -- SELECT 1


Explanation

  1. We can discard is not null, due to the same columns being referenced in the “Inner Join
    • The Inner Join “ON ([Extent10].[Container_Id] = [Extent11].[NoteContainer_Id])
    • And, the where clause we can likely jettison are
      • AND ([Extent11].[NoteContainer_Id] IS NOT NULL)
      • WHERE  ( [Extent10].[Container_Id] IS NOT NULL )
  2. We can also likely discard the Left Outer Join, as they are quite not needed in a Not Exists Clause
    • LEFT OUTER JOIN [dbo].[AcademicYears] AS [Extent12]
      • ON [Extent10].[Begin_Id] = [Extent12].[Id]
    • LEFT OUTER JOIN [dbo].[AcademicYears] AS [Extent13]
      • ON [Extent10].[End_Id] = [Extent13].[Id]

 

Obviously, we will have to test things out.

 

 

Query Plan

Query Snippet – Original

Query Snippet – Revised

Explanation

  1. Query Comparison
    • The Original Query is at 17%
    • And, the revised is at 83%
  2. Join Type
    • Original Query uses “Hash Join
      • Cost is 79%
    • And, the revised is “Nested Loops
      • Cost is 2%

 

Statistics I/O

Query Snippet – Original

 

Query Snippet – Revised

Tabulate

Table Original Query Revised Query
 UcNoteContainerFootnotes Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 CourseUCTCA  Scan count 1, logical reads 8, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  Scan count 1, logical reads 4, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 Workfile  Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 WorkTable  Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

 

 

Explanation

  • The reworked query appears to be less taxing in terms of IO
    • CourseUCTCA
      • Original Query :- Logical Reads is at 8
      • Revised Query :- Logical Reads is at 4
    • Workfile
      • Original Query because it is an Hash Join
    • WorkTable
      • Original Query, also because it is an Hash Join

 

Summary

In later posts, will talk more about WorkTable and Workfiles.

What they are and how to measure their cost.

And, very importantly, how to make sure code re-write is accurate.

Unfortunately, Entity Framework generated SQL Code can suffer from a little intemperance

 

SQL Server – Statistics IO – Scan Count – When Non-unique Index exist

Background

Quick follow-up to our last post.

That post is titled “SQL Server – Statistics IO – Scan Count – When unique Index exists“.

And, it is here.

Lab

Outline

In this exercise, we will create a table and create a single non-unique index on our lone column.

The name of the table is dbo.Numbers_NoUniqueINDX, the name of the lone column is Number.

And, we will create a single non-unique Index.

 

Create & Populate Table

SQL


use master
go

set noexec off
go
SET NOCOUNT ON;
go

/*
	drop table [dbo].[Numbers_NoUniqueINDX]
*/
if object_id('[dbo].[Numbers_NoUniqueINDX]') is null
begin

	create table [dbo].[Numbers_NoUniqueINDX]
	(
		  [Number] int not null
			
	)

end 
go

declare @edition sysname
declare @bCompressionSupported bit

set @edition = cast(serverproperty('edition') as sysname)

if (
		@edition in 
		( 
			'Standard Edition (64-bit)'
		)
	)
begin

	set @bCompressionSupported = 0

end
else if (@edition like 'Enterprise%')
begin

	set @bCompressionSupported = 1

end

print 'edition: ' + @edition
print 'compression : '  + cast(@bCompressionSupported as varchar(10))


if not exists
(

	select *
	from   sys.objects tblSO
	inner join sys.indexes tblSI
		on tblSO.object_id = tblSI.object_id
	where  tblSO.object_id = object_id('[dbo].[Numbers_NoUniqueINDX]')
	and    tblSI.[name] = 'INDX_NonUnique_Number' 

)
begin

	print 'Create Non-Clustered Index - INDX_NonUnique_Number ..'

	if (@bCompressionSupported = 1)
	begin

		create nonclustered index [INDX_NonUnique_Number]
		on [dbo].[Numbers_NoUniqueINDX]
		(
			[Number]
		)
		WITH 
		(
			  DATA_COMPRESSION = PAGE
			, FILLFACTOR=100
			, ignore_dup_key=OFF
		)				

	end
	else
	begin


		create nonclustered index [INDX_NonUnique_Number]
		on [dbo].[Numbers_NoUniqueINDX]
		(
			[Number]
		)
		WITH 
		(
			  DATA_COMPRESSION = NONE
			, FILLFACTOR=100
			, ignore_dup_key=OFF
		)				


	end

	print 'Created Non-Clustered Index - INDX_NonUnique_Number'

end

go

DECLARE @UpperLimit INT;

set @UpperLimit = 1000000;

if not exists
	(
		select 1
		from   [dbo].[Numbers_NoUniqueINDX]
	)

begin

	print 'Adding data into [dbo].[Numbers_No_UniqueINDX] ....'

	;WITH cteNumber 
	AS
	(
			SELECT
				x = ROW_NUMBER() OVER (ORDER BY s1.[object_id])
			FROM  sys.all_objects AS s1
			CROSS JOIN sys.all_objects AS s2
			CROSS JOIN sys.all_objects AS s3
	)
	INSERT INTO [dbo].[Numbers_NoUniqueINDX]
	(
		[Number] 
	)
	SELECT [Number] = cte.[x]
    FROM   cteNumber cte
    WHERE  cte.[x] BETWEEN 1 AND @UpperLimit;
 
	print 'Added data into [dbo].[Numbers_No_UniqueINDX]'

end

GO


 

Query


set noexec off
set nocount on
set statistics io on;
go

use [master]
go

print replicate('=', 120)

print 'Searching for 1 Number'

SELECT
        [Extent1].[Number] AS [Number]  -- 1 Value
		FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (  1 ) 

print replicate('=', 120)

print 'Searching for 2 Numbers_NoUniqueINDX'

SELECT
        [Extent1].[Number] AS [Number]  -- 1-2 Value
		FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2
		 ) 

print replicate('=', 120)

print 'Searching for 10 Numbers_NoUniqueINDX'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 10 Values
		FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
		 ) 


print replicate('=', 120)

print 'Searching for 60 Numbers_NoUniqueINDX'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 10 Values
		FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
		 ) 


print replicate('=', 120)

print 'Searching for 64 Numbers_NoUniqueINDX'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 Thur 64 Values
FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
WHERE [Extent1].[Number] IN
	(
		1, 2, 3, 4, 5, 6, 7, 8, 9, 10
	, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
	, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
	, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
	, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
	, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
	, 61, 62, 63, 64
	) 

		 
print replicate('=', 120)

------------------------------------------------------------------------------------------------

print 'Searching for 65 Numbers_NoUniqueINDX'

SELECT 
        [Extent1].[Number] AS [Number]  -- 65 Values
FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
WHERE [Extent1].[Number] IN
	(

		1, 2, 3, 4, 5, 6, 7, 8, 9, 10
	, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
	, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
	, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
	, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
	, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
	, 61, 62, 63, 64, 65
	) 

print replicate('=', 120)

print 'Searching for 66 Numbers_NoUniqueINDX'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 66 Values
FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
WHERE [Extent1].[Number] IN
	(

		1, 2, 3, 4, 5, 6, 7, 8, 9, 10
	, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
	, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
	, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
	, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
	, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
	, 61, 62, 63, 64, 65, 66
	) 

print replicate('=', 120)

------------------------------------------------------------------------------------------------

print 'Searching for 70 Numbers_NoUniqueINDX'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 90 Values
FROM [dbo].[Numbers_NoUniqueINDX] AS [Extent1]
WHERE [Extent1].[Number] IN
	(

		1, 2, 3, 4, 5, 6, 7, 8, 9, 10
	, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
	, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
	, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
	, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
	, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
	, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70
	) 

print replicate('=', 120)

---------------------------------------------------------------------------------------------------
go

 

Statistics IO

 

 

Tabulate

Scenario Statistics I/O Scan Count
 Searching for 1 Number Table ‘Numbers_NoUniqueINDX’. Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. 0
 Searching for 2 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 2, logical reads 6, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  2
 Searching for 10 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 10, logical reads 30, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  10
 Searching for 60 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 60, logical reads 180, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  60
 Searching for 64 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 64, logical reads 192, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  64
 Searching for 65 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 65, logical reads 234, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  65
 Searching for 66 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 66, logical reads 237, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. 66
 Searching for 70 Numbers Table ‘Numbers_NoUniqueINDX’. Scan count 70, logical reads 249, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. 70

 

 

Query Plan – Operator – Index Seek

Explanation

Scan Count matches accurately with the Number of Rows Read.

 

Version Tested On

 

Version
Microsoft SQL Server 2016 (SP1) (KB3182545) – 13.0.4001.0 (X64)
Oct 28 2016 18:17:30
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)
Microsoft SQL Server 2014 (SP2-GDR) (KB3194714) – 12.0.5203.0 (Intel X86)
Sep 23 2016 18:45:55
Copyright (c) Microsoft Corporation
Developer Edition on Windows NT 6.1 (Build 7601: ) (WOW64)

 

 

Source Code Control

GitHub

  1. SQL Server – Statistics I/O – Scan Count – In List Query
    Link

 

GuidePost

Amit Banerjee

Scan Count meaning in SET STATISTICS IO output: Part 2
Link

Even though we are evaluating the condition for all the 20 rows returned by the “backupset” table, we find that there is an additional filter in the SEEK condition i.e. the file_number column, for the data fetched from the “backupfile” table. This changes the scan count to Zero. The reason for this is that the SQL instance now knows that it has to fetch only one row for the value given in the filter as both columns present in the composite primary key are being used during the SEEK. Now SQL knows prior to the fetch that there cannot be duplicate rows, so no extra scan/seek is required.

This is a gotcha that we might overlook when a clustered index seek is being used! Since, we are dealing with a small set of rows, the plan changes may not be significant but for larger tables, such a difference in evaluation may have a significant impact on the query plan and ultimately the performance of the query.

 

Summary

There is a slight difference in how SQL Server measures Scan Counts when unique key scans are being measured, compared to how they are measured when Non-Unique Keys are used.

I don’t get it, but as always Amit Banerjee obviously does.

SQL Server – Statistics IO – Scan Count – When unique Index exist

Background

Reviewing the performance of a query and wanted to dig in deeper into the Statistics IO; specifically the Scan Count.

Lab

dbo.Numbers

Created and Populate Table

Let us create our test table.

It is a simple Numbers table and we will name it dbo.Numbers.

We will fill it with a million records; starting at 1, incrementing by 1, and close out at 1 million.

SQL


use master
go

SET NOCOUNT ON;
go

/*
	drop table [dbo].[Numbers]
*/
if object_id('[dbo].[Numbers]') is null
begin

	create table [dbo].[Numbers]
	(
		[Number] int not null
	)

end 
go

declare @edition sysname
declare @bCompressionSupported bit

set @edition = cast(serverproperty('edition') as sysname)

if (
		@edition in 
		( 
			'Standard Edition (64-bit)'
		)
	)
begin

	set @bCompressionSupported = 0

end
else if (@edition like 'Enterprise%')
begin

	set @bCompressionSupported = 1

end

print 'edition: ' + @edition
print 'compression : '  + cast(@bCompressionSupported as varchar(10))

if not exists
(

	select *
	from   sys.objects tblSO
	where  tblSO.parent_object_id = object_id('[dbo].[Numbers]')
	and    tblSO.[type] = 'PK' 

)
begin

	print 'Creating Primary Key ...'

	if (@bCompressionSupported = 1)
	begin

		alter table [dbo].[Numbers]
			add constraint [PK_Number] primary key
		   (
				[Number]
		   )
			WITH 
			(
				  DATA_COMPRESSION = PAGE
				, FILLFACTOR=100
				, ignore_dup_key=ON
			)				

	end
	else
	begin


		alter table [dbo].[Numbers]
			add constraint [PK_Number] primary key
		   (
				[Number]
		   )
			WITH 
			(
				  DATA_COMPRESSION = NONE
				, FILLFACTOR=100
				, ignore_dup_key=ON
			)				


	end

	print 'Created Primary Key'

end


if not exists
(

	select *
	from   sys.objects tblSO
	inner join sys.indexes tblSI
		on tblSO.object_id = tblSI.object_id
	where  tblSO.object_id = object_id('[dbo].[Numbers]')
	and    tblSI.[name] = 'INDX_Unique_Number' 

)
begin

	print 'Create Non-Clustered Index - INDX_Unique_Number ..'

	if (@bCompressionSupported = 1)
	begin

		create unique nonclustered index [INDX_Unique_Number]
		on [dbo].[Numbers]
		(
			[Number]
		)
		WITH 
		(
			  DATA_COMPRESSION = PAGE
			, FILLFACTOR=100
			, ignore_dup_key=ON
		)				

	end
	else
	begin


		create unique nonclustered index [INDX_Unique_Number]
		on [dbo].[Numbers]
		(
			[Number]
		)
		WITH 
		(
			  DATA_COMPRESSION = NONE
			, FILLFACTOR=100
			, ignore_dup_key=ON
		)				


	end

	print 'Created Non-Clustered Index - INDX_Unique_Number'

end


if not exists
(

	select *
	from   sys.objects tblSO
	inner join sys.indexes tblSI
		on tblSO.object_id = tblSI.object_id
	where  tblSO.object_id = object_id('[dbo].[Numbers]')
	and    tblSI.[name] = 'INDX_NonUnique_Number' 

)
begin

	print 'Create Non-Clustered Index - INDX_NonUnique_Number ..'

	if (@bCompressionSupported = 1)
	begin

		create nonclustered index [INDX_NonUnique_Number]
		on [dbo].[Numbers]
		(
			[Number]
		)
		WITH 
		(
			  DATA_COMPRESSION = PAGE
			, FILLFACTOR=100
			, ignore_dup_key=OFF
		)				

	end
	else
	begin


		create nonclustered index [INDX_NonUnique_Number]
		on [dbo].[Numbers]
		(
			[Number]
		)
		WITH 
		(
			  DATA_COMPRESSION = NONE
			, FILLFACTOR=100
			, ignore_dup_key=OFF
		)				


	end

	print 'Created Non-Clustered Index - INDX_NonUnique_Number'

end

go

DECLARE @UpperLimit INT;

set @UpperLimit = 1000000;

if not exists
	(
		select 1
		from   [dbo].[Numbers]
	)

begin

	print 'Adding data into [dbo].[Numbers] ....'

	;WITH cteNumber 
	AS
	(
			SELECT
				x = ROW_NUMBER() OVER (ORDER BY s1.[object_id])
			FROM  sys.all_objects AS s1
			CROSS JOIN sys.all_objects AS s2
			CROSS JOIN sys.all_objects AS s3
	)
	INSERT INTO [dbo].[Numbers]
	SELECT [Number] = cte.[x]
    FROM   cteNumber cte
    WHERE  cte.[x] BETWEEN 1 AND @UpperLimit;
 
	print 'Added data into [dbo].[Numbers]'

end

GO


 

 

Query Table

It is time to query the table

We will progressively add more numbers to our “In Clause”.

SQL



/*

	set statistics io on;
	set nocount on;

*/
set noexec off
go

set noexec off
go

use [master]
go

print replicate('=', 120)

print 'Searching for 1 Number'

SELECT
        [Extent1].[Number] AS [Number]  -- 1 Value
		FROM [dbo].[Numbers] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (  1 ) 

print replicate('=', 120)

print 'Searching for 2 Numbers'

SELECT
        [Extent1].[Number] AS [Number]  -- 1-2 Value
		FROM [dbo].[Numbers] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2
		 ) 

print replicate('=', 120)

print 'Searching for 10 Numbers'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 10 Values
		FROM [dbo].[Numbers] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
		 ) 


print replicate('=', 120)

print 'Searching for 60 Numbers'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 10 Values
		FROM [dbo].[Numbers] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
		 ) 


print replicate('=', 120)

print 'Searching for 64 Numbers'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 Thur 64 Values
		FROM [dbo].[Numbers] AS [Extent1]
 		WHERE [Extent1].[Number] IN
		 (
			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64
		 ) 

		 
print replicate('=', 120)

------------------------------------------------------------------------------------------------

print 'Searching for 65 Numbers'

SELECT 
        [Extent1].[Number] AS [Number]  -- 65 Values
		FROM [dbo].[Numbers] AS [Extent1]
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64, 65
		 ) 

print replicate('=', 120)

------------------------------------------------------------------------------------------------

print 'Searching for 65 Numbers ( Using Unique Index)'

SELECT 
        [Extent1].[Number] AS [Number]  -- 65 Values
		FROM [dbo].[Numbers] AS [Extent1] with ( INDEX=INDX_Unique_Number)
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64, 65
		 ) 

print replicate('=', 120)

------------------------------------------------------------------------------------------------


print 'Searching for 65 Numbers ( Using Non-Unique Index)'

SELECT 
        [Extent1].[Number] AS [Number]  -- 65 Values
		FROM [dbo].[Numbers] AS [Extent1] with ( INDEX=INDX_NonUnique_Number)
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64, 65
		 ) 

print replicate('=', 120)


print 'Searching for 66 Numbers'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 66 Values
		FROM [dbo].[Numbers] AS [Extent1]
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64, 65, 66
		 ) 

print replicate('=', 120)

------------------------------------------------------------------------------------------------

print 'Searching for 70 Numbers'

SELECT 
        [Extent1].[Number] AS [Number]  -- 1 thru 90 Values
		FROM [dbo].[Numbers] AS [Extent1]
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70
		 ) 

print replicate('=', 120)

---------------------------------------------------------------------------------------------------
go



 

Output

Query Plan

Explanation
  1. Message :- Scan a particular range of rows from a nonclustered index.
  2. Actual Number of Rows :- 65
  3. Estimated Number of Executions :- 65
  4. Number of Executions :- 65
  5. Number of Rows Read :- 65
Statistics IO

 

Tabulate

Scenario Statistics I/O Scan Count
 Searching for 1 Number Table ‘Numbers’. Scan count 0, logical reads 3, physical reads 3, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. 0
 Searching for 2 Numbers  Table ‘Numbers’. Scan count 2, logical reads 6, physical reads 3, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  2
 Searching for 10 Numbers  Table ‘Numbers’. Scan count 10, logical reads 30, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  10
 Searching for 60 Numbers  Table ‘Numbers’. Scan count 60, logical reads 180, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  60
 Searching for 64 Numbers  Table ‘Numbers’. Scan count 64, logical reads 192, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  64
 Searching for 65 Numbers  Table ‘Numbers’. Scan count 0, logical reads 302, physical reads 1, read-ahead reads 2, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  0
 Searching for 65 Numbers ( Using Unique Index)  Table ‘Numbers’. Scan count 0, logical reads 208, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  0
 Searching for 65 Numbers ( Using Non-Unique Index)  Table ‘Numbers’. Scan count 0, logical reads 208, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  0
 Searching for 66 Numbers  Table ‘Numbers’. Scan count 0, logical reads 211, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  0
Searching for 70 Numbers  Table ‘Numbers’. Scan count 0, logical reads 223, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.  0

 

 

Version Tested On

 

Version
Microsoft SQL Server 2016 (SP1) (KB3182545) – 13.0.4001.0 (X64)
Oct 28 2016 18:17:30
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)
Microsoft SQL Server 2014 (SP2-GDR) (KB3194714) – 12.0.5203.0 (Intel X86)
Sep 23 2016 18:45:55
Copyright (c) Microsoft Corporation
Developer Edition on Windows NT 6.1 (Build 7601: ) (WOW64)

 

 

Source Code Control

GitHub

  1. SQL Server – Statistics I/O – Scan Count – In List Query
    Link

 

MS Connect

  1. Statistics IO / Scan Count not always indicative
    Number :- 3133893
    Status :- Active
    Type :- Bug
    Opened :- 5/8/2017 9:46:53 AM
    Link

 

Summary

Not so sure why Scan Count is being reported as zero when more than 65 values are being queried on.

 

References

  1. Amit Banerjee ( SQL Server Escalation Engineer [ SEE ] , Microsoft SQL support )
    • SCAN COUNT meaning in SET STATISTICS IO output
      Link
    • Scan Count meaning in SET STATISTICS IO output: Part 2
      Link

SQL Server – Query Plan – “Constant Scan”

Background

In our last post, we spoke about running into an error that reads “The query processor ran out of internal resources and could not produce a query plan”.

That post is here.

 

 

Query and Plan

Many Values in Operator

In our original case, there were 19381 values in the in Clause.

 Query



SELECT 
        [Extent1].[Number] AS [Id]
	FROM [master].[dbo].[Numbers] AS [Extent1]
    WHERE [Extent1].[Number] IN 
	(
	    8718, 8725, 8727, 8734, 8736, 8741, 8743, 8750, 8752, 8759, 8761, 8766, 8768, 8775, 8777, 8784, 8786, 8791, 8793, 8800, 8802, 8809, 8811, 8816, 8818, 8820, 8825, 8827, 
		8834, 8836, 8841, 8843, 8845, 8850, 8852, 8859, 8861, 8866, 8868, 8870, 8875, 8877, 8884, 8886, 11869, 11876, 11878, 11883, 11885, 11892, 11894, 11901, 11903, 11908, 
		11910, 11917, 11919, 11926, 11928, 11933, 11935, 11942, 11944, 11951, 11953, 11958, 11960, 11967, 11969, 11976, 11978, 11983, 11985, 11987, 11992, 11994, 12001, 12003, 
		12008, 12010, 12012, 12017, 12019, 12026, 12028, 12033, 12035, 12037, 15036, 15043, 15045, 15050, 15052, 15059, 15061, 15068, 15070, 15075, 15077, 15084, 15086, 15093, 
		15095, 15100, 15102, 15109, 15111, 15118, 15120, 15125, 15127, 15134, 15136, 15143, 15145, 15150, 15152, 15154, 15159, 15161, 15168, 15170, 15175, 15177, 15179, 15184, 
		15186, 15193, 15195, 15200, 15202, 15204, 24994, 24996, 25003, 25005, 25012, 25014, 25019, 25021, 25028, 25030, 25037, 25039, 25044, 25046, 25053, 25055, 25062, 25064, 
		25069, 25071, 25078, 25080, 30787, 30794, 30796, 30803, 30805, 30810, 30812, 30819, 30821, 30828, 30830, 30835, 30837, 30844, 30846, 30853, 30855, 30860, 30862, 30869, 
		30871, 30878, 30880, 30885, 30887, 30894, 30896, 30903, 30905, 30910, 30912, 30919, 30921, 30928, 30930, 30935, 30937, 30944, 30946, 30953, 30955, 33986, 33988, 33995, 
		33997, 34002, 34004, 34011, 34013, 34020, 34022, 34027, 34029, 2777, 2784, 2786, 2791, 2793, 2795, 2800, 2802, 2809, 2811, 2818, 2820, 2825, 2827, 2834, 2836, 2843, 
		2845, 2850, 2852, 2859, 2861, 2868, 2870, 2875, 2877, 2884, 2886, 2893, 2895, 2900, 2902, 2909, 2911, 2918, 2920, 2925, 2927, 2934, 2936, 2943, 2945, 5776, 5778, 5783, 
		5785, 5792, 5794, 5801, 5803, 5808, 5810, 5817, 5819, 5826, 5828, 5833, 5835, 5842, 5844, 5851, 5853, 5858, 5860, 5867, 5869, 5876, 5878, 5883, 5885, 5892, 5894, 5901, 
		5903, 5908, 5910, 5912, 5917, 5919, 5926, 5928, 5933, 5935, 5937, 5942, 5944, 18753, 18755, 18760, 18762, 18769, 18771, 18778, 18780, 18785, 18787, 18794, 18796, 18803, 
		18805, 18810, 18812, 18814, 18819, 18821, 18828, 18830, 18835, 18837, 18839, 18844, 18846, 18853, 18855, 18862, 18864, 18869, 18871, 18878, 18880, 18887, 18889, 18894, 
		18896, 18903, 18905, 18912, 18914, 18919, 18921, 21886, 21888, 21895, 21897, 21902, 21904, 21911, 21913, 21920, 21922, 21927, 21929, 21936, 21938, 21945, 21947, 21952, 
		21954, 21956, 21961, 21963, 21970, 21972, 21977, 21979, 21981, 21986, 21988, 21995, 21997, 22002, 22004, 22006, 22011, 22013, 22020, 22022, 22029, 22031, 22036, 22038, 
		22045, 22047, 25087, 25089, 25094, 25096, 25103, 25105, 25112, 25114, 25119, 25121, 25123, 25128, 25130, 25137, 25139, 25144, 25146, 25148, 25153, 25155, 25162, 49337, 
		49339, 49344, 49346, 61278, 61280, 61285, 61287, 61294, 61296, 61303, 61305, 61310, 61312, 61319, 61321, 61328, 61330, 61335, 61337, 61344, 61346, 61353, 61355, 61360, 
		61362, 61364, 61369, 61371, 61378, 61380, 61385, 61387, 61389, 61394, 61396, 61403, 61405, 61410, 61412, 61414, 61419, 61421, 61428, 61430, 61437, 61439, 61444, 61446, 
		33868, 33870, 33877, 33879, 33886, 33888, 33893, 33895, 33897, 33902, 33904, 33911, 33913, 33918, 33920, 33922, 33927, 33929, 33936, 33938, 33945, 33947, 33952, 33954, 
		33961, 33963, 33970, 33972, 33977, 33979, 37162, 37164, 37169, 37171, 37178, 37180, 37187, 37189, 37194, 37196, 37203, 37205, 37212, 37214, 43521, 43523, 43528, 43530, 
		43537, 43539, 43546, 43548, 43553, 43555, 43562, 43564, 43571, 43573, 43578, 43580, 43587, 8729, 8730, 8731, 8732, 8745, 8746, 8747, 8748, 8762, 8763, 8764, 8765, 8779, 
		8780, 8781, 8782, 8795, 8796, 8797, 8798, 8799, 8812, 8813, 8814, 8815, 8829, 8830, 8831, 8832, 8846, 8847, 8848, 8849, 8862, 8863, 8864, 8865, 8879, 8880, 8881, 8882, 
		11871, 11872, 11873, 11874, 11887, 11888, 11889, 11890, 11904, 11905, 11906, 11907, 11921, 11922, 11923, 11924, 11937, 11938, 11939, 11940, 11941, 11954, 11955, 11956, 
		11957, 11971, 11972, 11973, 11974, 11988, 11989, 11990, 11991, 12004, 12005, 12006, 12007, 12021, 12022, 12023, 12024, 12038, 15046, 15047, 15048, 15049, 15063, 15064, 
		15065, 15066, 15079, 15080, 15081, 15082, 15083, 15096, 15097, 15098, 15099, 15113, 15114, 15115, 15116, 15129, 15130, 15131, 15132, 15133, 15146, 15147, 15148, 15149, 
		15163, 15164, 15165, 15166, 15180, 15181, 15182, 15183, 15196, 15197, 15198, 15199, 24992, 24993, 25007, 25008, 25009, 25010, 25023, 25024, 25025, 25026, 25040, 25041, 
		25042, 25043, 25057, 25058, 25059, 25060, 25073, 25074, 25075, 25076, 25077, 30789, 30790, 30791, 30792, 30806, 30807, 30808, 30809, 30822, 30823, 30824, 30825, 30826, 
		30839, 30840, 30841, 30842, 30856, 30857, 30858, 30859, 30873, 30874, 30875, 30876, 30889, 30890, 30891, 30892, 30906, 30907, 30908, 30909, 30923, 30924, 30925, 30926, 
		30939, 30940, 30941, 30942, 30943, 30956, 30957, 33981, 33982, 33983, 33984, 33998, 33999, 34000, 34001, 34015, 34016, 34017, 34018, 34031, 34032, 34033, 34034, 2779, 
		2780, 2781, 2782, 2796, 2797, 2798, 2799, 2812, 2813, 2814, 2815, 2816, 2829, 2830, 2831, 2832, 2846, 2847, 2848, 2849, 2863, 2864, 2865, 2866, 2879, 2880, 2881, 2882, 
		2896, 2897, 2898, 2899, 2913, 2914, 2915, 2916, 2929, 2930, 2931, 2932, 2933, 2946, 2947, 5787, 5788, 5789, 5790, 5804, 5805, 5806, 5807, 5821, 5822, 5823, 5824, 5837, 
		5838, 5839, 5840, 5841, 5854, 5855, 5856, 5857, 5871, 5872, 5873, 5874, 5887, 5888, 5889, 5890, 5891, 5904, 5905, 5906, 5907, 5921, 5922, 5923, 5924, 5938, 5939, 5940, 
		5941, 18756, 18757, 18758, 18759, 18773, 18774, 18775, 18776, 18789, 18790, 18791, 18792, 18793, 18806, 18807, 18808, 18809, 18823, 18824, 18825, 18826, 18840, 18841, 
		18842, 18843, 18856, 18857, 18858, 18859, 18860, 18873, 18874, 18875, 18876, 18890, 18891, 18892, 18893, 18906, 18907, 18908, 18909, 18910, 21882, 21883, 21884, 21898, 
		21899, 21900, 21901, 21915, 21916, 21917, 21918, 21931, 21932, 21933, 21934, 21935, 21948, 21949, 21950, 21951, 21965, 21966, 21967, 21968, 21982, 21983, 21984, 21985, 
		21998, 21999, 22000, 22001, 22015, 22016, 22017, 22018, 22032, 22033, 22034, 22035, 22048, 22049, 22050, 22051, 22052, 25090, 25091, 25092, 25093, 25107, 25108, 25109, 
		25110, 25124, 25125, 25126, 25127, 25140, 25141, 25142, 25143, 25157, 25158, 25159, 25160, 49340, 49341, 49342, 49343, 61289, 61290, 61291, 61292, 61306, 61307, 61308, 
		61309, 61323, 61324, 61325, 61326, 61339, 61340, 61341, 61342, 61343, 61356, 61357, 61358, 61359, 61373, 61374, 61375, 61376, 61390, 61391, 61392, 61393, 61406, 61407, 
		61408, 61409, 61423, 61424, 61425, 61426, 61440, 61441, 61442, 61443, 33864, 33865, 33866, 33867, 33881, 33882, 33883, 33884, 33898, 33899, 33900, 33901, 33914, 33915, 
		33916, 33917, 33931, 33932, 33933, 33934, 33948, 33949, 33950, 33951, 33964, 33965, 33966, 33967, 33968, 37173, 37174, 37175, 37176, 37190, 37191, 37192, 37193, 37207, 
		37208, 37209, 37210, 43524, 43525, 43526, 43527, 43541, 43542, 43543, 43544, 43557, 43558, 43559, 43560, 43561, 43574, 43575, 43576, 43577, 43591, 43592, 43593, 43594, 
		43608, 43609, 8720, 8721, 8722, 8723, 8737, 8738, 8739, 8740, 8754, 8755, 8756, 8757, 8770, 8771, 8772, 8773, 8774, 8787, 8788, 8789, 8790, 8804, 8805, 8806, 8807, 
		8821, 8822, 8823, 8824, 8837, 8838, 8839, 8840, 8854, 8855, 8856, 8857, 8871, 8872, 8873, 8874, 8887, 11879, 11880, 11881, 11882, 11896, 11897, 11898, 11899, 11912, 
		11913, 11914, 11915, 11929, 11930, 11931, 11932, 11946, 11947, 11948, 11949, 11962, 11963, 11964, 11965, 11966, 11979, 11980, 11981, 11982, 11996, 11997, 11998, 11999, 
		12013, 12014, 12015, 12016, 12029, 12030, 12031, 12032, 15038, 15039, 15040, 15041, 15054, 15055, 15056, 15057, 15071, 15072, 15073, 15074, 15088, 15089, 15090, 15091, 
		15104, 15105, 15106, 15107, 15108, 15121, 15122, 15123, 15124, 15138, 15139, 15140, 15141, 15155, 15156, 15157, 15158, 15171, 15172, 15173, 15174, 15188, 15189, 15190, 
		15191, 15205, 24998, 24999, 25000, 25001, 25015, 25016, 25017, 25018, 25032, 25033, 25034, 25035, 25048, 25049, 25050, 25051, 25065, 25066, 25067, 25068, 30797, 30798, 
		30799, 30800, 30801, 30814, 30815, 30816, 30817, 30831, 30832, 30833, 30834, 30848, 30849, 30850, 30851, 30864, 30865, 30866, 30867, 30881, 30882, 30883, 30884, 30898, 
		30899, 30900, 30901, 30914, 30915, 30916, 30917, 30918, 30931, 30932, 30933, 30934, 30948, 30949, 30950, 30951, 33989, 33990, 33991, 33992, 33993, 34006, 34007, 34008, 
		34009, 34023, 34024, 34025, 34026, 2787, 2788, 2789, 2790, 2804, 2805, 2806, 2807, 2821, 2822, 2823, 2824, 2837, 2838, 2839, 2840, 2841, 2854, 2855, 2856, 2857, 2871, 
		2872, 2873, 2874, 2888, 2889, 2890, 2891, 2904, 2905, 2906, 2907, 2921, 2922, 2923, 2924, 2938, 2939, 2940, 2941, 5779, 5780, 5781, 5782, 5796, 5797, 5798, 5799, 5812, 
		5813, 5814, 5815, 5829, 5830, 5831, 5832, 5846, 5847, 5848, 5849, 5862, 5863, 5864, 5865, 5866, 5879, 5880, 5881, 5882, 5896, 5897, 5898, 5899, 5913, 5914, 5915, 5916, 
		5929, 5930, 5931, 5932, 5946, 18764, 18765, 18766, 18767, 18768, 18781, 18782, 18783, 18784, 18798, 18799, 18800, 18801, 18815, 18816, 18817, 18818, 18831, 18832, 
		18833, 18834, 18848, 18849, 18850, 18851, 18865, 18866, 18867, 18868, 18881, 18882, 18883, 18884, 18885, 18898, 18899, 18900, 18901, 18915, 18916, 18917, 18918, 21890, 
		21891, 21892, 21893, 21906, 21907, 21908, 21909, 21910, 21923, 21924, 21925, 21926, 21940, 21941, 21942, 21943, 21957, 21958, 21959, 21960, 21973, 21974, 21975, 21976, 
		21990, 21991, 21992, 21993, 22007, 22008, 22009, 22010, 22023, 22024, 22025, 22026, 22027, 22040, 22041, 22042, 22043, 25082, 25083, 25084, 25085, 25098, 25099, 25100, 
		25101, 25102, 25115, 25116, 25117, 25118, 25132, 25133, 25134, 25135, 25149, 25150, 25151, 25152, 49333, 49334, 49335, 49348, 49349, 49350, 61281, 61282, 61283, 61284, 
		61298, 61299, 61300, 61301, 61314, 61315, 61316, 61317, 61318, 61331, 61332, 61333, 61334, 61348, 61349, 61350, 61351, 61365, 61366, 61367, 61368, 61381, 61382, 61383, 
		61384, 61398, 61399, 61400, 61401, 61415, 61416, 61417, 61418, 61431, 61432, 61433, 61434, 61435, 61448, 33872, 33873, 33874, 33875, 33876, 33889, 33890, 33891, 33892, 
		33906, 33907, 33908, 33909, 33923, 33924, 33925, 33926, 33939, 33940, 33941, 33942, 33943, 33956, 33957, 33958, 33959, 33973, 33974, 33975, 33976, 37165, 37166, 37167, 
		37168, 37182, 37183, 37184, 37185, 37198, 37199, 37200, 37201, 37215, 43516, 43517, 43518, 43519, 43532, 43533, 43534, 43535, 43549, 43550, 43551, 43552, 43566, 43567, 
		43568, 43569, 43582, 43583, 43584, 43585, 43586, 43599, 43600, 43601, 43602, 43616, 43617, 43618, 43619, 43633, 43634, 8717, 8719, 8724, 8726, 8728, 8733, 8735, 8742, 
		8744, 8749, 8751, 8753, 8758, 8760, 8767, 8769, 8776, 8778, 8783, 8785, 8792, 8794, 8801, 8803, 8808, 8810, 8817, 8819, 8826, 8828, 8833, 8835, 8842, 8844, 8851, 8853, 
		8858, 8860, 8867, 8869, 8876, 8878, 8883, 8885, 11868, 11870, 11875, 11877, 11884, 11886, 11891, 11893, 11895, 11900, 11902, 11909, 11911, 11916, 11918, 11920, 11925, 
		11927, 11934, 11936, 11943, 11945, 11950, 11952, 11959, 11961, 11968, 11970, 11975, 11977, 11984, 11986, 11993, 11995, 12000, 12002, 12009, 12011, 12018, 12020, 12025, 
		12027, 12034, 12036, 15035, 15037, 15042, 15044, 15051, 15053, 15058, 15060, 15062, 15067, 15069, 15076, 15078, 15085, 15087, 15092, 15094, 15101, 15103, 15110, 15112, 
		15117, 15119, 15126, 15128, 15135, 15137, 15142, 15144, 15151, 15153, 15160, 15162, 15167, 15169, 15176, 15178, 15185, 15187, 15192, 15194, 15201, 15203, 24995, 24997, 
		25002, 25004, 25006, 25011, 25013, 25020, 25022, 25027, 25029, 25031, 25036, 25038, 25045, 25047, 25052, 25054, 25056, 25061, 25063, 25070, 25072, 25079, 30788, 30793, 
		30795, 30802, 30804, 30811, 30813, 30818, 30820, 30827, 30829, 30836, 30838, 30843, 30845, 30847, 30852, 30854, 30861, 30863, 30868, 30870, 30872, 30877, 30879, 30886, 
		30888, 30893, 30895, 30897, 30902, 30904, 30911, 30913, 30920, 30922, 30927, 30929, 30936, 30938, 30945, 30947, 30952, 30954, 33980, 33985, 33987, 33994, 33996, 34003, 
		34005, 34010, 34012, 34014, 34019, 34021, 34028, 34030, 2778, 2783, 2785, 2792, 2794, 2801, 2803, 2808, 2810, 2817, 2819, 2826, 2828, 2833, 2835, 2842, 2844, 2851, 
		2853, 2858, 2860, 2862, 2867, 2869, 2876, 2878, 2883, 2885, 2887, 2892, 2894, 2901, 2903, 2908, 2910, 2912, 2917, 2919, 2926, 2928, 2935, 2937, 2942, 2944, 5777, 5784, 
		5786, 5791, 5793, 5795, 5800, 5802, 5809, 5811, 5816, 5818, 5820, 5825, 5827, 5834, 5836, 5843, 5845, 5850, 5852, 5859, 5861, 5868, 5870, 5875, 5877, 5884, 5886, 5893, 
		5895, 5900, 5902, 5909, 5911, 5918, 5920, 5925, 5927, 5934, 5936, 5943, 5945, 18752, 18754, 18761, 18763, 18770, 18772, 18777, 18779, 18786, 18788, 18795, 18797, 18802, 
		18804, 18811, 18813, 18820, 18822, 18827, 18829, 18836, 18838, 18845, 18847, 18852, 18854, 18861, 18863, 18870, 18872, 18877, 18879, 18886, 18888, 18895, 18897, 18902, 
		18904, 18911, 18913, 18920, 18922, 21885, 21887, 21889, 21894, 21896, 21903, 21905, 21912, 21914, 21919, 21921, 21928, 21930, 21937, 21939, 21944, 21946, 21953, 21955, 
		21962, 21964, 21969, 21971, 21978, 21980, 21987, 21989, 21994, 21996, 22003, 22005, 22012, 22014, 22019, 22021, 22028, 22030, 22037, 22039, 22044, 22046, 25081, 25086, 
		25088, 25095, 25097, 25104, 25106, 25111, 25113, 25120, 25122, 25129, 25131, 25136, 25138, 25145, 25147, 25154, 25156, 25161, 49336, 49338, 49345, 49347, 61279, 61286, 
		61288, 61293, 61295, 61297, 61302, 61304, 61311, 61313, 61320, 61322, 61327, 61329, 61336, 61338, 61345, 61347, 61352, 61354, 61361, 61363, 61370, 61372, 61377, 61379, 
		61386, 61388, 61395, 61397, 61402, 61404, 61411, 61413, 61420, 61422, 61427, 61429, 61436, 61438, 61445, 61447, 33869, 33871, 33878, 33880, 33885, 33887, 33894, 33896, 
		33903, 33905, 33910, 33912, 33919, 33921, 33928, 33930, 33935, 33937, 33944, 33946, 33953, 33955, 33960, 33962, 33969, 33971, 33978, 37163, 37170, 37172, 37177, 37179, 
		37181, 37186, 37188, 37195, 37197, 37202, 37204, 37206, 37211, 37213, 43520, 43522, 43529, 43531, 43536, 43538, 43540, 43545, 43547, 43554, 43556, 43563, 43565, 43570, 
		43572, 43579, 43581, 43588, 43590, 43595, 43589, 43596, 43598, 43603, 43605, 43607, 43612, 43614, 43621, 43623, 43628, 43630, 43632, 43637, 43639, 43646, 43648, 43653, 
		43655, 43657, 43662, 43664, 43671, 43673, 43680, 43682, 46436, 46438, 46445, 46447, 46454, 46456, 46461, 46463, 46470, 46472, 46479, 46481, 46486, 46488, 46495, 46497, 
		46504, 46506, 46511, 46513, 46520, 46522, 46529, 46531, 46536, 46538, 46540, 46545, 46547, 46554, 46556, 46561, 46563, 46565, 46570, 46572, 46579, 46581, 46588, 46590, 
		46595, 46597, 46604, 46606, 49353, 49355, 49362, 49364, 49369, 49371, 49378, 49380, 49387, 49389, 49394, 49396, 49403, 49405, 49412, 49414, 49419, 49421, 49428, 49430, 
		49437, 49439, 49444, 49446, 49448, 49453, 49455, 49462, 49464, 49469, 49471, 49473, 49478, 49480, 49487, 49489, 49494, 49496, 49498, 49503, 56489, 56491, 56498, 56500, 
		56505, 56507, 56509, 56514, 56516, 56523, 56525, 56530, 56532, 56534, 56539, 56541, 56548, 56550, 56555, 56557, 56559, 56564, 56566, 56573, 56575, 56582, 56584, 56589, 
		56591, 56598, 56600, 56607, 56609, 56614, 56616, 56623, 56625, 37219, 37221, 37228, 37230, 37237, 37239, 37244, 37246, 37253, 37255, 37262, 37264, 37269, 37271, 37278, 
		37280, 37287, 37289, 37294, 37296, 37298, 37303, 37305, 37312, 37314, 37319, 37321, 37323, 37328, 37330, 40456, 40461, 40463, 40465, 40470, 40472, 40479, 40481, 40486, 
		40488, 40490, 40495, 40497, 40504, 40506, 40513, 40515, 40520, 40522, 40529, 40531, 40538, 40540, 40545, 40547, 40554, 40556, 40563, 40565, 40570, 40572, 40579, 40581, 
		40588, 40590, 40595, 40597, 40604, 40606, 40613, 40615, 40620, 40622, 56632, 56634, 56639, 56641, 56648, 56650, 68773, 68775, 68782, 68784, 68789, 68791, 68798, 68800, 
		68807, 68809, 68814, 68816, 68823, 68825, 68832, 68834, 68839, 68841, 68848, 68850, 68857, 68859, 68864, 68866, 68873, 68875, 68882, 68884, 68889, 68891, 68898, 68900, 
		68907, 68909, 68914, 68916, 68918, 68923, 68925, 64218, 64220, 64227, 64229, 64236, 64238, 64243, 64245, 64252, 64254, 64261, 64263, 64268, 64270, 64277, 64279, 64286, 
		64288, 64293, 64295, 64297, 64302, 64304, 64311, 64313, 64318, 64320, 64322, 64327, 64329, 64336, 64338, 64343, 64345, 64347, 64352, 64354, 64361, 64363, 64370, 64372, 
		64377, 64379, 68764, 68766, 71731, 71733, 71740, 71742, 71747, 71749, 71756, 71758, 71765, 71767, 71772, 71774, 71781, 71783, 71790, 71792, 71797, 71799, 71806, 71808, 
		71815, 71817, 71822, 71824, 71826, 71831, 71833, 71840, 71842, 71847, 71849, 71851, 71856, 71858, 71865, 71867, 71872, 71874, 71876, 71881, 71883, 71890, 71892, 74648, 
		74650, 74655, 74657, 74664, 74666, 74673, 74675, 74680, 74682, 74689, 74691, 74698, 74700, 74705, 74707, 74714, 74716, 74723, 74725, 74730, 74732, 74739, 74741, 74748, 
		74750, 74755, 74757, 74759, 74764, 74766, 74773, 74775, 74780, 74782, 74784, 74789, 74791, 74798, 74800, 74807, 74809, 74814, 77849, 77856, 77858, 77865, 77867, 77872, 
		77874, 77881, 77883, 77890, 77892, 77897, 77899, 77906, 77908, 77915, 77917, 77922, 77924, 77926, 77931, 77933, 77940, 77942, 77947, 77949, 77951, 77956, 77958, 77965, 
		77967, 77974, 77976, 77981, 77983, 77990, 77992, 77999, 78001, 78006, 78008, 78015, 78017, 80287, 80289, 80296, 80298, 80305, 80307, 80312, 80314, 80321, 80323, 80330, 
		80332, 80337, 80339, 80341, 80346, 80348, 80355, 80357, 80362, 80364, 80366, 80371, 80373, 80380, 80382, 80387, 80389, 80391, 80396, 80398, 80405, 80407, 80414, 80416, 
		80421, 80423, 83329, 83331, 83338, 83340, 83347, 83349, 83354, 83356, 83363, 83365, 83372, 83374, 83379, 83381, 83388, 83390, 83397, 83399, 83404, 83406, 93850, 93852, 
		93859, 93861, 93866, 93868, 93875, 93877, 93884, 93886, 93891, 93893, 93900, 93902, 93909, 43610, 43611, 43624, 43625, 43626, 43627, 43641, 43642, 43643, 43644, 43658, 
		43659, 43660, 43661, 43674, 43675, 43676, 43677, 43678, 46449, 46450, 46451, 46452, 46465, 46466, 46467, 46468, 46469, 46482, 46483, 46484, 46485, 46499, 46500, 46501, 
		46502, 46515, 46516, 46517, 46518, 46519, 46532, 46533, 46534, 46535, 46549, 46550, 46551, 46552, 46566, 46567, 46568, 46569, 46582, 46583, 46584, 46585, 46586, 46599, 
		46600, 46601, 46602, 49357, 49358, 49359, 49360, 49373, 49374, 49375, 49376, 49390, 49391, 49392, 49393, 49407, 49408, 49409, 49410, 49423, 49424, 49425, 49426, 49427, 
		49440, 49441, 49442, 49443, 49457, 49458, 49459, 49460, 49474, 49475, 49476, 49477, 49490, 49491, 49492, 49493, 56493, 56494, 56495, 56496, 56510, 56511, 56512, 56513, 
		56526, 56527, 56528, 56529, 56543, 56544, 56545, 56546, 56560, 56561, 56562, 56563, 56576, 56577, 56578, 56579, 56580, 56593, 56594, 56595, 56596, 56610, 56611, 56612, 
		56613, 56627, 56628, 56629, 56630, 37223, 37224, 37225, 37226, 37227, 37240, 37241, 37242, 37243, 37257, 37258, 37259, 37260, 37273, 37274, 37275, 37276, 37277, 37290, 
		37291, 37292, 37293, 37307, 37308, 37309, 37310, 37324, 37325, 37326, 37327, 40466, 40467, 40468, 40469, 40482, 40483, 40484, 40485, 40499, 40500, 40501, 40502, 40516, 
		40517, 40518, 40519, 40532, 40533, 40534, 40535, 40536, 40549, 40550, 40551, 40552, 40566, 40567, 40568, 40569, 40583, 40584, 40585, 40586, 40599, 40600, 40601, 40602, 
		40616, 40617, 40618, 40619, 56643, 56644, 56645, 56646, 68776, 68777, 68778, 68779, 68780, 68793, 68794, 68795, 68796, 68810, 68811, 68812, 68813, 68827, 68828, 68829, 
		68830, 68843, 68844, 68845, 68846, 68847, 68860, 68861, 68862, 68863, 68877, 68878, 68879, 68880, 68893, 68894, 68895, 68896, 68897, 68910, 68911, 68912, 68913, 68927, 
		68928, 68929, 68930, 64215, 64216, 64217, 64231, 64232, 64233, 64234, 64247, 64248, 64249, 64250, 64251, 64264, 64265, 64266, 64267, 64281, 64282, 64283, 64284, 64298, 
		64299, 64300, 64301, 64314, 64315, 64316, 64317, 64331, 64332, 64333, 64334, 64348, 64349, 64350, 64351, 64364, 64365, 64366, 64367, 64368, 64381, 64382, 64383, 64384, 
		68760, 68761, 68762, 68763, 71735, 71736, 71737, 71738, 71751, 71752, 71753, 71754, 71768, 71769, 71770, 71771, 71785, 71786, 71787, 71788, 71801, 71802, 71803, 71804, 
		71805, 71818, 71819, 71820, 71821, 71835, 71836, 71837, 71838, 71852, 71853, 71854, 71855, 71868, 71869, 71870, 71871, 71885, 71886, 71887, 71888, 74644, 74645, 74646, 
		74659, 74660, 74661, 74662, 74676, 74677, 74678, 74679, 74693, 74694, 74695, 74696, 74709, 74710, 74711, 74712, 74713, 74726, 74727, 74728, 74729, 74743, 74744, 74745, 
		74746, 74760, 74761, 74762, 74763, 74776, 74777, 74778, 74779, 74793, 74794, 74795, 74796, 74810, 74811, 74812, 74813, 77851, 77852, 77853, 77854, 77855, 77868, 77869, 
		77870, 77871, 77885, 77886, 77887, 77888, 77901, 77902, 77903, 77904, 77905, 77918, 77919, 77920, 77921, 77935, 77936, 77937, 77938, 77952, 77953, 77954, 77955, 77968, 
		77969, 77970, 77971, 77972, 77985, 77986, 77987, 77988, 78002, 78003, 78004, 78005, 78018, 78019, 80291, 80292, 80293, 80294, 80295, 80308, 80309, 80310, 80311, 80325, 
		80326, 80327, 80328, 80342, 80343, 80344, 80345, 80358, 80359, 80360, 80361, 80375, 80376, 80377, 80378, 80392, 80393, 80394, 80395, 80408, 80409, 80410, 80411, 80412, 
		83333, 83334, 83335, 83336, 83350, 83351, 83352, 83353, 83366, 83367, 83368, 83369, 83370, 83383, 83384, 83385, 83386, 83400, 83401, 83402, 83403, 93846, 93847, 93848, 
		93862, 93863, 93864, 93865, 93879, 93880, 93881, 93882, 93895, 93896, 93897, 93898, 93912, 93913, 93914, 93915, 93929, 93930, 93931, 93932, 43597, 43604, 43606, 43613, 
		43615, 43620, 43622, 43629, 43631, 43638, 43640, 43645, 43647, 43654, 43656, 43663, 43665, 43670, 43672, 43679, 43681, 46437, 46439, 46444, 46446, 46448, 46453, 46455, 
		46462, 46464, 46471, 46473, 46478, 46480, 46487, 46489, 46496, 46498, 46503, 46505, 46512, 46514, 46521, 46523, 46528, 46530, 46537, 46539, 46546, 46548, 46553, 46555, 
		46562, 46564, 46571, 46573, 46578, 46580, 46587, 46589, 46596, 46598, 46603, 46605, 49352, 49354, 49356, 49361, 49363, 49370, 49372, 49377, 49379, 49381, 49386, 49388, 
		49395, 49397, 49404, 49406, 49411, 49413, 49420, 49422, 49429, 49431, 49436, 49438, 49445, 49447, 49454, 49456, 49461, 49463, 49470, 49472, 49479, 49481, 49486, 49488, 
		49495, 49497, 56483, 56490, 56492, 56497, 56499, 56506, 56508, 56515, 56517, 56522, 56524, 56531, 56533, 56540, 56542, 56547, 56549, 56556, 56558, 56565, 56567, 56572, 
		56574, 56581, 56583, 56590, 56592, 56597, 56599, 56606, 56608, 56615, 56617, 56622, 56624, 56626, 56631, 37220, 37222, 37229, 37231, 37236, 37238, 37245, 37247, 37254, 
		37256, 37261, 37263, 37270, 37272, 37279, 37281, 37286, 37288, 37295, 37297, 37304, 37306, 37311, 37313, 37320, 37322, 37329, 37331, 40462, 40464, 40471, 40473, 40478, 
		40480, 40487, 40489, 40496, 40498, 40503, 40505, 40512, 40514, 40521, 40523, 40528, 40530, 40537, 40539, 40546, 40548, 40553, 40555, 40562, 40564, 40571, 40573, 40578, 
		40580, 40582, 40587, 40589, 40596, 40598, 40603, 40605, 40607, 40612, 40614, 40621, 40623, 56633, 56640, 56642, 56647, 56649, 56651, 68767, 68772, 68774, 68781, 68783, 
		68790, 68792, 68797, 68799, 68801, 68806, 68808, 68815, 68817, 68822, 68824, 68826, 68831, 68833, 68840, 68842, 68849, 68851, 68856, 68858, 68865, 68867, 68874, 68876, 
		68881, 68883, 68890, 68892, 68899, 68901, 68906, 68908, 68915, 68917, 68924, 68926, 64219, 64221, 64228, 64230, 64235, 64237, 64244, 64246, 64253, 64255, 64260, 64262, 
		64269, 64271, 64278, 64280, 64285, 64287, 64294, 64296, 64303, 64305, 64310, 64312, 64319, 64321, 64328, 64330, 64335, 64337, 64344, 64346, 64353, 64355, 64360, 64362, 
		64369, 64371, 64378, 64380, 64385, 68765, 71730, 71732, 71734, 71739, 71741, 71748, 71750, 71755, 71757, 71759, 71764, 71766, 71773, 71775, 71782, 71784, 71789, 71791, 
		71798, 71800, 71807, 71809, 71814, 71816, 71823, 71825, 71832, 71834, 71839, 71841, 71848, 71850, 71857, 71859, 71864, 71866, 71873, 71875, 71882, 71884, 71889, 71891, 
		71898, 74647, 74649, 74656, 74658, 74663, 74665, 74667, 74672, 74674, 74681, 74683, 74690, 74692, 74697, 74699, 74706, 74708, 74715, 74717, 74722, 74724, 74731, 74733, 
		74740, 74742, 74747, 74749, 74756, 74758, 74765, 74767, 74772, 74774, 74781, 74783, 74790, 74792, 74797, 74799, 74806, 74808, 77850, 77857, 77859, 77864, 77866, 77873, 
		77875, 77882, 77884, 77889, 77891, 77898, 77900, 77907, 77909, 77914, 77916, 77923, 77925, 77932, 77934, 77939, 77941, 77948, 77950, 77957, 77959, 77964, 77966, 77973, 
		77975, 77982, 77984, 77989, 77991, 77998, 78000, 78007, 78009, 78014, 78016, 80288, 80290, 80297, 80299, 80304, 80306, 80313, 80315, 80322, 80324, 80329, 80331, 80338, 
		80340, 80347, 80349, 80354, 80356, 80363, 80365, 80372, 80374, 80379, 80381, 80388, 80390, 80397, 80399, 80404, 80406, 80413, 80415, 80422, 80424, 83330, 83332, 83337, 
		83339, 83346, 83348, 83355, 83357, 83362, 83364, 83371, 83373, 83380, 83382, 83387, 83389, 83391, 83396, 83398, 83405, 93849, 93851, 93853, 93858, 93860, 93867, 93869, 
		93874, 93876, 93878, 93883, 93885, 93892, 93894, 93899, 93901, 93903, 93908, 93910, 93917, 93919, 93926, 93928, 93933, 93935, 93942, 93944, 93951, 93953, 93958, 93960, 
		93967, 93969, 93976, 43635, 43636, 43649, 43650, 43651, 43652, 43666, 43667, 43668, 43669, 43683, 43684, 43685, 43686, 46440, 46441, 46442, 46443, 46457, 46458, 46459, 
		46460, 46474, 46475, 46476, 46477, 46490, 46491, 46492, 46493, 46494, 46507, 46508, 46509, 46510, 46524, 46525, 46526, 46527, 46541, 46542, 46543, 46544, 46557, 46558, 
		46559, 46560, 46574, 46575, 46576, 46577, 46591, 46592, 46593, 46594, 49351, 49365, 49366, 49367, 49368, 49382, 49383, 49384, 49385, 49398, 49399, 49400, 49401, 49402, 
		49415, 49416, 49417, 49418, 49432, 49433, 49434, 49435, 49449, 49450, 49451, 49452, 49465, 49466, 49467, 49468, 49482, 49483, 49484, 49485, 49499, 49500, 49501, 49502, 
		56484, 56485, 56486, 56487, 56488, 56501, 56502, 56503, 56504, 56518, 56519, 56520, 56521, 56535, 56536, 56537, 56538, 56551, 56552, 56553, 56554, 56568, 56569, 56570, 
		56571, 56585, 56586, 56587, 56588, 56601, 56602, 56603, 56604, 56605, 56618, 56619, 56620, 56621, 37216, 37217, 37218, 37232, 37233, 37234, 37235, 37248, 37249, 37250, 
		37251, 37252, 37265, 37266, 37267, 37268, 37282, 37283, 37284, 37285, 37299, 37300, 37301, 37302, 37315, 37316, 37317, 37318, 37332, 40457, 40458, 40459, 40460, 40474, 
		40475, 40476, 40477, 40491, 40492, 40493, 40494, 40507, 40508, 40509, 40510, 40511, 40524, 40525, 40526, 40527, 40541, 40542, 40543, 40544, 40557, 40558, 40559, 40560, 
		40561, 40574, 40575, 40576, 40577, 40591, 40592, 40593, 40594, 40608, 40609, 40610, 40611, 40624, 40625, 40626, 56635, 56636, 56637, 56638, 56652, 56653, 68768, 68769, 
		68770, 68771, 68785, 68786, 68787, 68788, 68802, 68803, 68804, 68805, 68818, 68819, 68820, 68821, 68835, 68836, 68837, 68838, 68852, 68853, 68854, 68855, 68868, 68869, 
		68870, 68871, 68872, 68885, 68886, 68887, 68888, 68902, 68903, 68904, 68905, 68919, 68920, 68921, 68922, 64222, 64223, 64224, 64225, 64226, 64239, 64240, 64241, 64242, 
		64256, 64257, 64258, 64259, 64272, 64273, 64274, 64275, 64276, 64289, 64290, 64291, 64292, 64306, 64307, 64308, 64309, 64323, 64324, 64325, 64326, 64339, 64340, 64341, 
		64342, 64356, 64357, 64358, 64359, 64373, 64374, 64375, 64376, 71728, 71729, 71743, 71744, 71745, 71746, 71760, 71761, 71762, 71763, 71776, 71777, 71778, 71779, 71780, 
		71793, 71794, 71795, 71796, 71810, 71811, 71812, 71813, 71827, 71828, 71829, 71830, 71843, 71844, 71845, 71846, 71860, 71861, 71862, 71863, 71877, 71878, 71879, 71880, 
		71893, 71894, 71895, 71896, 71897, 74651, 74652, 74653, 74654, 74668, 74669, 74670, 74671, 74684, 74685, 74686, 74687, 74688, 74701, 74702, 74703, 74704, 74718, 74719, 
		74720, 74721, 74734, 74735, 74736, 74737, 74738, 74751, 74752, 74753, 74754, 74768, 74769, 74770, 74771, 74785, 74786, 74787, 74788, 74801, 74802, 74803, 74804, 74805, 
		77860, 77861, 77862, 77863, 77876, 77877, 77878, 77879, 77880, 77893, 77894, 77895, 77896, 77910, 77911, 77912, 77913, 77927, 77928, 77929, 77930, 77943, 77944, 77945, 
		77946, 77960, 77961, 77962, 77963, 77977, 77978, 77979, 77980, 77993, 77994, 77995, 77996, 77997, 78010, 78011, 78012, 78013, 80300, 80301, 80302, 80303, 80316, 80317, 
		80318, 80319, 80320, 80333, 80334, 80335, 80336, 80350, 80351, 80352, 80353, 80367, 80368, 80369, 80370, 80383, 80384, 80385, 80386, 80400, 80401, 80402, 80403, 80417, 
		80418, 80419, 80420, 83341, 83342, 83343, 83344, 83345, 83358, 83359, 83360, 83361, 83375, 83376, 83377, 83378, 83392, 83393, 83394, 83395, 93854, 93855, 93856, 93857, 
		93870, 93871, 93872, 93873, 93887, 93888, 93889, 93890, 93904, 93905, 93906, 93907, 93920, 93921, 93922, 93923, 93924, 93937, 93938, 93939, 93940, 93954, 93955, 93956, 
		93957, 93971, 93972, 93973, 93974, 93987, 93988, 93989, 93990, 94004, 93945, 93946, 93947, 93948, 93949, 93962, 93963, 93964, 93965, 93979, 93980, 93981, 93982, 93996, 
		93997, 93998, 93999, 97087, 97088, 97089, 97090, 97091, 97104, 97105, 97106, 97107, 97121, 97122, 97123, 97124, 97138, 97139, 97140, 97141, 97154, 97155, 97156, 97157, 
		97171, 97172, 97173, 97174, 97188, 97189, 97190, 97191, 83236, 83249, 83250, 83251, 83252, 83253, 83266, 83267, 83268, 83269, 83283, 83284, 83285, 83286, 83300, 83301, 
		83302, 83303, 83316, 83317, 83318, 83319, 83320, 86341, 86342, 86343, 86344, 86358, 86359, 86360, 86361, 86375, 86376, 86377, 86378, 86391, 86392, 86393, 86394, 86395, 
		86408, 86409, 86410, 86411, 86425, 86426, 86427, 86428, 86442, 86443, 86444, 86445, 86458, 86459, 86460, 86461, 86475, 86476, 86477, 86478, 86492, 86493, 86494, 86495, 
		89533, 89534, 89535, 89536, 89537, 89550, 89551, 89552, 89553, 89567, 89568, 89569, 89570, 89584, 89585, 89586, 89587, 89600, 89601, 89602, 89603, 89617, 89618, 89619, 
		89620, 89634, 89635, 89636, 89637, 89650, 89651, 89652, 89653, 89654, 89667, 89668, 89669, 89670, 89684, 89685, 89686, 89687, 93845, 97037, 97038, 97039, 97040, 97054, 
		97055, 97056, 97057, 97071, 97072, 97073, 97074, 122540, 122541, 122542, 122543, 122544, 122557, 122558, 122559, 122560, 122574, 122575, 122576, 122577, 122591, 122592, 
		122593, 122594, 122607, 122608, 122609, 122610, 122611, 122624, 122625, 122626, 122627, 122641, 122642, 122643, 122644, 122657, 122658, 122659, 122660, 122661, 122674, 
		122675, 122676, 122677, 122691, 122692, 122693, 122694, 128875, 128876, 128877, 128878, 128891, 128892, 128893, 128894, 128908, 128909, 128910, 128911, 128925, 128926, 
		128927, 128928, 128941, 128942, 128943, 128944, 128945, 128958, 128959, 128960, 128961, 128975, 128976, 128977, 128978, 128991, 128992, 128993, 128994, 128995, 129008, 
		129009, 129010, 129011, 129025, 129026, 129027, 129028, 111644, 111645, 111646, 111647, 111661, 111662, 111663, 111664, 111677, 111678, 111679, 111680, 111681, 125766, 
		125767, 125768, 125769, 125783, 125784, 125785, 125786, 125799, 125800, 125801, 125802, 125803, 125816, 125817, 125818, 125819, 125833, 125834, 125835, 125836, 125850, 
		125851, 125852, 125853, 125866, 125867, 125868, 125869, 125883, 125884, 125885, 125886, 125900, 125901, 125902, 125903, 125916, 125917, 125918, 125919, 125920, 125933, 
		125934, 101483, 101484, 101485, 101486, 101499, 101500, 101501, 101502, 101503, 101516, 101517, 101518, 101519, 101533, 101534, 101535, 101536, 101550, 101551, 101552, 
		101553, 101566, 101567, 101568, 101569, 101570, 101583, 101584, 101585, 101586, 101600, 101601, 101602, 101603, 101616, 101617, 101618, 101619, 101620, 101633, 101634, 
		101635, 101636, 104491, 104492, 104493, 104494, 104508, 104509, 104510, 104511, 104524, 104525, 104526, 104527, 104528, 104541, 104542, 104543, 104544, 104558, 104559, 
		104560, 104561, 104575, 104576, 104577, 104578, 104591, 104592, 104593, 104594, 104608, 104609, 104610, 104611, 104625, 104626, 104627, 104628, 104641, 104642, 104643, 
		104644, 104645, 107801, 107802, 107803, 107817, 107818, 107819, 107820, 107834, 107835, 107836, 107837, 107850, 107851, 107852, 107853, 107867, 107868, 107869, 107870, 
		107884, 107885, 107886, 107887, 107900, 107901, 107902, 107903, 107904, 107917, 107918, 107919, 107920, 107934, 107935, 107936, 107937, 107951, 107952, 107953, 107954, 
		107967, 107968, 107969, 107970, 111527, 111528, 111529, 111530, 111544, 111545, 111546, 111547, 111560, 111561, 111562, 111563, 111564, 111577, 111578, 111579, 111580, 
		111594, 111595, 111596, 111597, 111611, 111612, 111613, 111614, 111627, 111628, 111629, 111630, 114686, 114687, 114688, 114689, 114702, 114703, 114704, 114705, 114706, 
		114719, 114720, 114721, 114722, 114736, 114737, 114738, 114739, 114752, 114753, 114754, 114755, 114756, 114769, 114770, 114771, 114772, 114786, 114787, 114788, 114789, 
		114803, 114804, 114805, 114806, 114819, 114820, 114821, 114822, 114823, 114836, 114837, 114838, 114839, 117777, 117778, 117779, 93978, 93983, 93985, 93992, 93994, 
		94001, 94003, 94008, 94010, 97084, 97086, 97093, 97095, 97100, 97102, 97109, 97111, 97118, 97120, 97125, 97127, 97134, 97136, 97143, 97145, 97150, 97152, 97159, 97161, 
		97168, 97170, 97175, 97177, 97184, 97186, 97193, 97195, 83237, 83239, 83246, 83248, 83255, 83257, 83262, 83264, 83271, 83273, 83280, 83282, 83287, 83289, 83296, 83298, 
		83305, 83307, 83312, 83314, 83321, 83323, 86338, 86340, 86345, 86347, 86349, 86354, 86356, 86363, 86365, 86372, 86374, 86379, 86381, 86388, 86390, 86397, 86399, 86404, 
		86406, 86413, 86415, 86422, 86424, 86429, 86431, 86438, 86440, 86447, 86449, 86454, 86456, 86463, 86465, 86472, 86474, 86479, 86481, 86488, 86490, 86497, 86499, 86504, 
		89530, 89532, 89539, 89541, 89546, 89548, 89555, 89557, 89564, 89566, 89571, 89573, 89580, 89582, 89589, 89591, 89596, 89598, 89605, 89607, 89614, 89616, 89621, 89623, 
		89630, 89632, 89639, 89641, 89646, 89648, 89655, 89657, 89664, 89666, 89671, 89673, 89680, 89682, 89689, 89691, 89696, 93842, 93844, 97034, 97036, 97041, 97043, 97045, 
		97050, 97052, 97059, 97061, 97068, 97070, 97075, 97077, 122529, 122531, 122536, 122538, 122545, 122547, 122554, 122556, 122561, 122563, 122565, 122570, 122572, 122579, 
		122581, 122586, 122588, 122590, 122595, 122597, 122604, 122606, 122613, 122615, 122620, 122622, 122629, 122631, 122638, 122640, 122645, 122647, 122654, 122656, 122663, 
		122665, 122670, 122672, 122679, 122681, 122688, 122690, 122695, 122697, 128870, 128872, 128874, 128879, 128881, 128888, 128890, 128895, 128897, 128899, 128904, 128906, 
		128913, 128915, 128920, 128922, 128924, 128929, 128931, 128938, 128940, 128947, 128949, 128954, 128956, 128963, 128965, 128972, 128974, 128979, 128981, 128988, 111649, 
		111651, 111656, 111658, 111660, 111665, 111667, 111674, 111676, 111683, 125764, 125771, 125773, 125780, 125782, 125787, 125789, 125796, 125798, 125805, 125807, 125812, 
		125814, 125821, 125823, 125830, 125832, 125837, 125839, 125846, 125848, 125855, 125857, 125862, 125864, 125871, 125873, 125880, 125882, 125887, 125889, 125896, 125898, 
		125905, 125907, 125912, 125914, 125921, 125923, 125930, 125932, 101473, 101480, 101482, 101487, 101489, 101496, 101498, 101505, 101507, 101512, 101514, 101521, 101523, 
		101530, 101532, 101537, 101539, 101546, 101548, 101555, 101557, 101562, 101564, 101571, 101573, 101580, 101582, 101587, 101589, 101596, 101598, 101605, 101607, 101612, 
		101614, 101621, 101623, 101630, 101632, 101637, 101639, 101641, 104488, 104490, 104495, 104497, 104504, 104506, 104513, 104515, 104520, 104522, 104529, 104531, 104538, 
		104540, 104545, 104547, 104549, 104554, 104556, 104563, 104565, 104570, 104572, 104574, 104579, 104581, 104588, 104590, 104595, 104597, 104599, 104604, 104606, 104613, 
		104615, 104622, 104624, 104629, 104631, 104638, 104640, 104647, 104649, 107805, 107807, 107814, 107816, 107821, 107823, 107830, 107832, 107839, 107841, 107846, 107848, 
		107855, 107857, 107864, 107866, 107871, 107873, 107880, 107882, 107889, 107891, 107896, 107898, 107905, 107907, 107914, 107916, 107921, 107923, 107930, 107932, 107939, 
		107941, 107946, 107948, 107950, 107955, 107957, 107964, 107966, 107971, 111515, 111517, 111524, 111526, 111531, 111533, 111540, 111542, 111549, 111551, 111556, 111558, 
		111565, 111567, 111574, 111576, 111581, 111583, 111590, 111592, 111599, 111601, 111606, 111608, 111610, 111615, 111617, 111624, 111626, 111631, 111633, 111635, 111640, 
		111642, 114682, 114684, 114691, 114693, 114698, 114700, 114707, 114709, 114716, 114718, 114723, 114725, 114732, 114734, 114741, 114743, 114748, 114750, 114757, 114759, 
		114766, 114768, 114773, 114775, 114777, 114782, 114784, 114791, 114793, 114798, 114800, 114802, 114807, 114809, 114816, 114818, 114825, 114827, 114832, 114834, 114841, 
		114843, 114850, 114852, 117767, 117774, 117776, 117783, 117785, 117790, 117792, 117799, 117801, 117808, 117810, 117815, 117817, 117824, 117826, 117833, 117835, 117840, 
		117842, 117849, 117851, 117858, 94005, 94006, 94007, 97082, 97096, 97097, 97098, 97099, 97112, 97113, 97114, 97115, 97116, 97129, 97130, 97131, 97132, 97146, 97147, 
		97148, 97149, 97163, 97164, 97165, 97166, 97179, 97180, 97181, 97182, 97196, 97197, 97198, 83241, 83242, 83243, 83244, 83258, 83259, 83260, 83261, 83275, 83276, 83277, 
		83278, 83291, 83292, 83293, 83294, 83308, 83309, 83310, 83311, 83325, 83326, 83327, 83328, 86335, 86336, 86350, 86351, 86352, 86353, 86366, 86367, 86368, 86369, 86370, 
		86383, 86384, 86385, 86386, 86400, 86401, 86402, 86403, 86416, 86417, 86418, 86419, 86420, 86433, 86434, 86435, 86436, 86450, 86451, 86452, 86453, 86467, 86468, 86469, 
		86470, 86483, 86484, 86485, 86486, 86487, 86500, 86501, 86502, 86503, 89527, 89528, 89542, 89543, 89544, 89545, 89558, 89559, 89560, 89561, 89562, 89575, 89576, 89577, 
		89578, 89592, 89593, 89594, 89595, 89609, 89610, 89611, 89612, 89625, 89626, 89627, 89628, 89642, 89643, 89644, 89645, 89659, 89660, 89661, 89662, 89675, 89676, 89677, 
		89678, 89679, 89692, 89693, 89694, 89695, 97029, 97030, 97031, 97032, 97046, 97047, 97048, 97049, 97062, 97063, 97064, 97065, 97066, 97079, 97080, 97081, 122532, 
		122533, 122534, 122535, 122549, 122550, 122551, 122552, 122566, 122567, 122568, 122569, 122582, 122583, 122584, 122585, 122599, 122600, 122601, 122602, 122616, 122617, 
		122618, 122619, 122632, 122633, 122634, 122635, 122636, 122649, 122650, 122651, 122652, 122666, 122667, 122668, 122669, 122683, 122684, 122685, 122686, 128883, 128884, 
		128885, 128886, 128900, 128901, 128902, 128903, 128916, 128917, 128918, 128919, 128933, 128934, 128935, 128936, 128950, 128951, 128952, 128953, 128966, 128967, 128968, 
		128969, 128970, 128983, 128984, 128985, 128986, 129000, 129001, 129002, 129003, 129017, 129018, 129019, 129020, 129033, 129034, 129035, 129036, 111652, 111653, 111654, 
		111655, 111669, 111670, 111671, 111672, 125774, 125775, 125776, 125777, 125778, 125791, 125792, 125793, 125794, 125808, 125809, 125810, 125811, 125824, 125825, 125826, 
		125827, 125828, 125841, 125842, 125843, 125844, 125858, 125859, 125860, 125861, 125875, 125876, 125877, 125878, 125891, 125892, 125893, 125894, 125895, 125908, 125909, 
		125910, 125911, 125925, 125926, 125927, 125928, 101474, 101475, 101476, 101477, 101478, 101491, 101492, 101493, 101494, 101508, 101509, 101510, 101511, 101525, 101526, 
		101527, 101528, 101541, 101542, 101543, 101544, 101558, 101559, 101560, 101561, 101575, 101576, 101577, 101578, 101591, 101592, 101593, 101594, 101595, 101608, 101609, 
		101610, 101611, 101625, 101626, 101627, 101628, 101642, 104483, 104484, 104485, 104486, 104499, 104500, 104501, 104502, 104503, 104516, 104517, 104518, 104519, 104533, 
		104534, 104535, 104536, 104550, 104551, 104552, 104553, 104566, 104567, 104568, 104569, 104583, 104584, 104585, 104586, 104600, 104601, 104602, 104603, 104616, 104617, 
		104618, 104619, 104620, 104633, 104634, 104635, 104636, 104650, 104651, 104652, 104653, 107808, 107809, 107810, 107811, 107812, 107825, 107826, 107827, 107828, 107842, 
		107843, 107844, 107845, 107859, 107860, 107861, 107862, 107875, 107876, 107877, 107878, 107892, 107893, 107894, 107895, 107909, 107910, 107911, 107912, 107925, 107926, 
		107927, 107928, 107929, 107942, 107943, 107944, 107945, 107959, 107960, 107961, 107962, 111519, 111520, 111521, 111522, 111535, 111536, 111537, 111538, 111539, 111552, 
		111553, 111554, 111555, 111569, 111570, 111571, 111572, 111585, 111586, 111587, 111588, 111589, 111602, 111603, 111604, 111605, 111619, 111620, 111621, 111622, 111636, 
		111637, 111638, 111639, 114694, 114695, 114696, 114697, 114711, 114712, 114713, 114714, 114727, 114728, 114729, 114730, 114731, 114744, 114745, 114746, 114747, 114761, 
		114762, 114763, 114764, 114778, 114779, 114780, 114781, 114794, 114795, 114796, 114797, 114811, 114812, 114813, 114814, 114828, 114829, 114830, 114831, 114844, 114845, 
		114846, 114847, 114848, 117769, 117770, 117771, 117772, 117786, 117787, 117788, 117789, 117803, 117804, 93911, 93916, 93918, 93925, 93927, 93934, 93936, 93941, 93943, 
		93950, 93952, 93959, 93961, 93966, 93968, 93970, 93975, 93977, 93984, 93986, 93991, 93993, 93995, 94000, 94002, 94009, 94011, 97083, 97085, 97092, 97094, 97101, 97103, 
		97108, 97110, 97117, 97119, 97126, 97128, 97133, 97135, 97137, 97142, 97144, 97151, 97153, 97158, 97160, 97162, 97167, 97169, 97176, 97178, 97183, 97185, 97187, 97192, 
		97194, 83238, 83240, 83245, 83247, 83254, 83256, 83263, 83265, 83270, 83272, 83274, 83279, 83281, 83288, 83290, 83295, 83297, 83299, 83304, 83306, 83313, 83315, 83322, 
		83324, 86337, 86339, 86346, 86348, 86355, 86357, 86362, 86364, 86371, 86373, 86380, 86382, 86387, 86389, 86396, 86398, 86405, 86407, 86412, 86414, 86421, 86423, 86430, 
		86432, 86437, 86439, 86441, 86446, 86448, 86455, 86457, 86462, 86464, 86466, 86471, 86473, 86480, 86482, 86489, 86491, 86496, 86498, 86505, 89529, 89531, 89538, 89540, 
		89547, 89549, 89554, 89556, 89563, 89565, 89572, 89574, 89579, 89581, 89583, 89588, 89590, 89597, 89599, 89604, 89606, 89608, 89613, 89615, 89622, 89624, 89629, 89631, 
		89633, 89638, 89640, 89647, 89649, 89656, 89658, 89663, 89665, 89672, 89674, 89681, 89683, 89688, 89690, 89697, 93841, 93843, 97028, 97033, 97035, 97042, 97044, 97051, 
		97053, 97058, 97060, 97067, 97069, 97076, 97078, 122528, 122530, 122537, 122539, 122546, 122548, 122553, 122555, 122562, 122564, 122571, 122573, 122578, 122580, 122587, 
		122589, 122596, 122598, 122603, 122605, 122612, 122614, 122621, 122623, 122628, 122630, 122637, 122639, 122646, 122648, 122653, 122655, 122662, 122664, 122671, 122673, 
		122678, 122680, 122682, 122687, 122689, 122696, 122698, 128871, 128873, 128880, 128882, 128887, 128889, 128896, 128898, 128905, 128907, 128912, 128914, 128921, 128923, 
		128930, 128932, 128937, 128939, 128946, 128948, 128955, 128957, 128962, 128964, 128971, 128973, 128980, 128982, 128987, 128989, 128996, 128998, 129005, 129007, 129012, 
		129014, 129016, 129021, 129023, 129030, 129032, 129037, 129039, 111648, 111650, 111657, 111659, 111666, 111668, 111673, 111675, 111682, 111684, 125765, 125770, 125772, 
		125779, 125781, 125788, 125790, 125795, 125797, 125804, 125806, 125813, 125815, 125820, 125822, 125829, 125831, 125838, 125840, 125845, 125847, 125849, 125854, 125856, 
		125863, 125865, 125870, 125872, 125874, 125879, 125881, 125888, 125890, 125897, 125899, 125904, 125906, 125913, 125915, 125922, 125924, 125929, 125931, 101472, 101479, 
		101481, 101488, 101490, 101495, 101497, 101504, 101506, 101513, 101515, 101520, 101522, 101524, 101529, 101531, 101538, 101540, 101545, 101547, 101549, 101554, 101556, 
		101563, 101565, 101572, 101574, 101579, 101581, 101588, 101590, 101597, 101599, 101604, 101606, 101613, 101615, 101622, 101624, 101629, 101631, 101638, 101640, 104487, 
		104489, 104496, 104498, 104505, 104507, 104512, 104514, 104521, 104523, 104530, 104532, 104537, 104539, 104546, 104548, 104555, 104557, 104562, 104564, 104571, 104573, 
		104580, 104582, 104587, 104589, 104596, 104598, 104605, 104607, 104612, 104614, 104621, 104623, 104630, 104632, 104637, 104639, 104646, 104648, 107804, 107806, 107813, 
		107815, 107822, 107824, 107829, 107831, 107833, 107838, 107840, 107847, 107849, 107854, 107856, 107858, 107863, 107865, 107872, 107874, 107879, 107881, 107883, 107888, 
		107890, 107897, 107899, 107906, 107908, 107913, 107915, 107922, 107924, 107931, 107933, 107938, 107940, 107947, 107949, 107956, 107958, 107963, 107965, 111514, 111516, 
		111518, 111523, 111525, 111532, 111534, 111541, 111543, 111548, 111550, 111557, 111559, 111566, 111568, 111573, 111575, 111582, 111584, 111591, 111593, 111598, 111600, 
		111607, 111609, 111616, 111618, 111623, 111625, 111632, 111634, 111641, 111643, 114683, 114685, 114690, 114692, 114699, 114701, 114708, 114710, 114715, 114717, 114724, 
		114726, 114733, 114735, 114740, 114742, 114749, 114751, 114758, 114760, 114765, 114767, 114774, 114776, 114783, 114785, 114790, 114792, 114799, 114801, 114808, 114810, 
		114815, 114817, 114824, 114826, 114833, 114835, 114840, 114842, 114849, 114851, 117766, 117768, 117773, 117775, 117782, 117784, 117791, 117793, 117798, 117800, 117802, 
		117807, 117809, 117816, 117818, 117823, 117825, 117827, 117832, 117834, 117841, 117843, 117848, 117850, 117852, 117857, 117859, 117866, 117868, 117875, 117877, 117882, 
		117884, 117891, 117893, 117900, 117902, 117907, 117909, 117916, 117918, 117925, 117927, 117932, 117934, 132156, 132158, 132163, 132165, 132172, 132174, 132179, 132181, 
		132183, 132188, 132190, 132197, 132199, 132204, 132206, 132208, 132213, 132215, 132222, 132224, 132231, 132233, 132238, 132240, 132247, 132249, 132256, 132258, 132263, 
		132265, 132272, 132274, 132281, 132283, 132288, 132290, 132297, 132299, 132306, 132308, 132313, 132315, 132322, 132324, 135232, 135239, 135241, 135246, 135248, 135255, 
		135257, 135264, 135266, 135271, 135273, 135280, 135282, 135289, 135291, 135296, 135298, 135305, 135307, 135314, 135316, 135321, 135323, 135325, 135330, 135332, 135339, 
		135341, 135346, 135348, 135350, 135355, 135357, 135364, 135366, 135371, 135373, 135375, 135380, 135382, 135389, 135391, 135398, 135400, 138522, 138524, 138531, 138533, 
		138538, 138540, 138542, 138547, 138549, 138556, 138558, 138565, 138567, 138572, 138574, 138581, 138583, 138590, 138592, 138597, 138599, 138606, 138608, 138615, 138617, 
		138622, 138624, 138631, 138633, 138640, 138642, 138647, 138649, 138656, 138658, 138665, 138667, 138672, 138674, 138681, 138683, 141848, 141850, 141857, 141859, 141864, 
		141866, 141873, 141875, 141882, 141884, 141889, 141891, 141893, 141898, 141900, 141907, 141909, 141914, 141916, 141918, 141923, 141925, 141932, 141934, 141939, 141941, 
		141943, 141948, 141950, 141957, 141959, 141966, 141968, 141973, 141975, 141982, 141984, 141991, 141993, 141998, 142000, 142007, 142009, 144815, 144817, 144822, 144824, 
		144826, 144831, 144833, 144840, 144842, 144847, 144849, 144851, 144856, 144858, 144865, 144867, 144874, 144876, 144881, 144883, 144890, 144892, 144899, 144901, 144906, 
		144908, 155309, 155311, 155313, 155318, 155320, 155327, 155329, 158219, 158221, 158226, 158228, 158235, 158237, 158242, 158244, 158246, 158251, 158253, 158260, 158262, 
		158269, 158271, 158276, 158278, 158285, 158287, 158294, 158296, 158301, 158303, 158310, 158312, 158319, 158321, 158326, 158328, 158335, 158337, 158344, 158346, 158351, 
		158353, 158360, 158362, 158369, 158371, 158376, 158378, 158385, 158387, 144747, 144749, 144756, 144758, 144765, 144767, 144772, 144774, 144781, 144783, 144790, 144792, 
		144797, 144799, 144806, 144808, 149127, 149129, 149134, 149136, 149143, 149145, 149152, 149154, 149159, 149161, 149168, 149170, 149177, 149179, 149184, 149186, 149188, 
		149193, 149195, 149202, 149204, 149209, 149211, 149213, 149218, 149220, 149227, 149229, 149234, 149236, 149238, 149243, 149245, 149252, 149254, 149261, 149263, 149268, 
		149270, 149277, 149279, 149286, 149288, 152376, 152378, 152380, 152385, 152387, 152394, 152396, 152401, 152403, 152405, 152410, 152412, 152419, 152421, 152428, 152430, 
		152435, 152437, 152444, 152446, 152453, 152455, 152460, 152462, 152469, 152471, 152478, 152480, 152485, 152487, 152494, 152496, 152503, 152505, 152510, 152512, 152519, 
		152521, 152528, 152530, 152535, 152537, 155336, 155338, 155343, 155345, 155352, 155354, 155361, 155363, 155368, 155370, 155377, 155379, 155386, 155388, 155393, 155395, 
		155402, 155404, 155411, 155413, 155418, 155420, 155427, 155429, 155436, 155438, 155443, 155445, 155452, 155454, 155461, 155463, 155468, 155470, 161518, 161520, 161527, 
		161529, 161536, 161538, 161543, 161545, 161552, 161554, 161561, 161563, 161568, 161570, 161577, 161579, 161586, 161588, 161593, 161595, 161597, 161602, 161604, 161611, 
		161613, 161618, 161620, 161622, 161627, 161629, 161636, 161638, 161643, 161645, 161647, 161652, 161654, 161661, 161663, 161670, 161672, 161677, 161679, 164585, 164587, 
		164594, 164596, 164603, 164605, 164610, 164612, 164619, 164621, 164628, 164630, 164635, 164637, 164644, 164646, 164653, 164655, 164660, 164662, 164669, 164671, 164678, 
		164680, 164685, 164687, 164694, 117805, 117806, 117819, 117820, 117821, 117822, 117836, 117837, 117838, 117839, 117853, 117854, 117855, 117856, 117869, 117870, 117871, 
		117872, 117873, 117886, 117887, 117888, 117889, 117903, 117904, 117905, 117906, 117919, 117920, 117921, 117922, 117923, 117936, 132159, 132160, 132161, 132162, 132175, 
		132176, 132177, 132178, 132192, 132193, 132194, 132195, 132209, 132210, 132211, 132212, 132225, 132226, 132227, 132228, 132229, 132242, 132243, 132244, 132245, 132259, 
		132260, 132261, 132262, 132275, 132276, 132277, 132278, 132279, 132292, 132293, 132294, 132295, 132309, 132310, 132311, 132312, 135234, 135235, 135236, 135237, 135250, 
		135251, 135252, 135253, 135267, 135268, 135269, 135270, 135284, 135285, 135286, 135287, 135300, 135301, 135302, 135303, 135304, 135317, 135318, 135319, 135320, 135334, 
		135335, 135336, 135337, 135351, 135352, 135353, 135354, 135367, 135368, 135369, 135370, 135384, 135385, 135386, 135387, 135401, 138526, 138527, 138528, 138529, 138543, 
		138544, 138545, 138546, 138559, 138560, 138561, 138562, 138563, 138576, 138577, 138578, 138579, 138593, 138594, 138595, 138596, 138610, 138611, 138612, 138613, 138626, 
		138627, 138628, 138629, 138643, 138644, 138645, 138646, 138660, 138661, 138662, 138663, 138676, 138677, 138678, 138679, 138680, 141852, 141853, 141854, 141855, 141868, 
		141869, 141870, 141871, 141872, 141885, 141886, 141887, 141888, 141902, 141903, 141904, 141905, 141919, 141920, 141921, 141922, 141935, 141936, 141937, 141938, 141952, 
		141953, 141954, 141955, 141969, 141970, 141971, 141972, 141985, 141986, 141987, 141988, 141989, 142002, 142003, 142004, 142005, 144813, 144827, 144828, 144829, 144830, 
		144843, 144844, 144845, 144846, 144860, 144861, 144862, 144863, 144877, 144878, 144879, 144880, 144893, 144894, 144895, 144896, 144897, 144910, 155306, 155307, 155308, 
		155322, 155323, 155324, 155325, 158230, 158231, 158232, 158233, 158247, 158248, 158249, 158250, 158263, 158264, 158265, 158266, 158267, 158280, 158281, 158282, 158283, 
		158297, 158298, 158299, 158300, 158314, 158315, 158316, 158317, 158330, 158331, 158332, 158333, 158347, 158348, 158349, 158350, 158364, 158365, 158366, 158367, 158380, 
		158381, 158382, 158383, 158384, 144744, 144745, 144746, 144760, 144761, 144762, 144763, 144776, 144777, 144778, 144779, 144780, 144793, 144794, 144795, 144796, 144810, 
		144811, 144812, 149122, 149123, 149124, 149125, 149138, 149139, 149140, 149141, 149142, 149155, 149156, 149157, 149158, 149172, 149173, 149174, 149175, 149189, 149190, 
		149191, 149192, 149205, 149206, 149207, 149208, 149222, 149223, 149224, 149225, 149239, 149240, 149241, 149242, 149255, 149256, 149257, 149258, 149259, 149272, 149273, 
		149274, 149275, 149289, 149290, 149291, 152381, 152382, 152383, 152384, 152397, 152398, 152399, 152400, 152414, 152415, 152416, 152417, 152431, 152432, 152433, 152434, 
		152447, 152448, 152449, 152450, 152451, 152464, 152465, 152466, 152467, 152481, 152482, 152483, 152484, 152498, 152499, 152500, 152501, 152514, 152515, 152516, 152517, 
		152531, 152532, 152533, 152534, 155339, 155340, 155341, 155342, 155355, 155356, 155357, 155358, 155359, 155372, 155373, 155374, 155375, 155389, 155390, 155391, 155392, 
		155406, 155407, 155408, 155409, 155422, 155423, 155424, 155425, 155439, 155440, 155441, 155442, 155456, 155457, 155458, 155459, 155472, 155473, 155474, 155475, 155476, 
		161522, 161523, 161524, 161525, 161539, 161540, 161541, 161542, 161556, 161557, 161558, 161559, 161572, 161573, 161574, 161575, 161576, 161589, 161590, 161591, 161592, 
		161606, 161607, 161608, 161609, 161623, 161624, 161625, 161626, 161639, 161640, 161641, 161642, 161656, 161657, 161658, 161659, 161673, 161674, 161675, 161676, 164584, 
		164597, 164598, 164599, 164600, 164601, 164614, 164615, 164616, 164617, 164631, 164632, 164633, 164634, 164648, 164649, 164650, 164651, 164664, 164665, 164666, 164667, 
		164681, 164682, 164683, 164684, 164698, 164699, 164700, 164701, 164714, 164715, 164716, 164717, 164718, 164731, 164732, 164733, 164734, 164748, 164749, 164750, 164751, 
		167689, 167690, 167691, 167692, 167706, 167707, 167708, 167709, 167723, 167724, 167725, 117860, 117865, 117867, 117874, 117876, 117883, 117885, 117890, 117892, 117899, 
		117901, 117908, 117910, 117915, 117917, 117924, 117926, 117933, 117935, 132155, 132157, 132164, 132166, 132171, 132173, 132180, 132182, 132189, 132191, 132196, 132198, 
		132205, 132207, 132214, 132216, 132221, 132223, 132230, 132232, 132239, 132241, 132246, 132248, 132255, 132257, 132264, 132266, 132271, 132273, 132280, 132282, 132289, 
		132291, 132296, 132298, 132300, 132305, 132307, 132314, 132316, 132321, 132323, 132325, 135231, 135233, 135238, 135240, 135247, 135249, 135254, 135256, 135258, 135263, 
		135265, 135272, 135274, 135281, 135283, 135288, 135290, 135297, 135299, 135306, 135308, 135313, 135315, 135322, 135324, 135331, 135333, 135338, 135340, 135347, 135349, 
		135356, 135358, 135363, 135365, 135372, 135374, 135381, 135383, 135388, 135390, 135397, 135399, 138523, 138525, 138530, 138532, 138539, 138541, 138548, 138550, 138555, 
		138557, 138564, 138566, 138573, 138575, 138580, 138582, 138589, 138591, 138598, 138600, 138605, 138607, 138609, 138614, 138616, 138623, 138625, 138630, 138632, 138634, 
		138639, 138641, 138648, 138650, 138655, 138657, 138659, 138664, 138666, 138673, 138675, 138682, 138684, 141842, 141849, 141851, 141856, 141858, 141865, 141867, 141874, 
		141876, 141881, 141883, 141890, 141892, 141899, 141901, 141906, 141908, 141915, 141917, 141924, 141926, 141931, 141933, 141940, 141942, 141949, 141951, 141956, 141958, 
		141965, 141967, 141974, 141976, 141981, 141983, 141990, 141992, 141999, 142001, 142006, 142008, 142010, 144814, 144816, 144823, 144825, 144832, 144834, 144839, 144841, 
		144848, 144850, 144857, 144859, 144864, 144866, 144873, 144875, 144882, 144884, 144889, 144891, 144898, 144900, 144907, 144909, 155310, 155312, 155319, 155321, 155326, 
		155328, 158220, 158227, 158229, 158234, 158236, 158243, 158245, 158252, 158254, 158259, 158261, 158268, 158270, 158277, 158279, 158284, 158286, 158293, 158295, 158302, 
		158304, 158309, 158311, 158313, 158318, 158320, 158327, 158329, 158334, 158336, 158338, 158343, 158345, 158352, 158354, 158359, 158361, 158363, 158368, 158370, 158377, 
		158379, 158386, 158388, 161519, 161521, 161526, 161528, 161530, 161535, 161537, 161544, 161546, 161553, 161555, 144748, 144750, 144757, 144759, 144764, 144766, 144773, 
		144775, 144782, 144784, 144789, 144791, 144798, 144800, 144807, 144809, 128990, 128997, 128999, 129004, 129006, 129013, 129015, 129022, 129024, 129029, 129031, 129038, 
		129040, 149121, 149126, 149128, 149135, 149137, 149144, 149146, 149151, 149153, 149160, 149162, 149169, 149171, 149176, 149178, 149185, 149187, 149194, 149196, 149201, 
		149203, 149210, 149212, 149219, 149221, 149226, 149228, 149235, 149237, 149244, 149246, 149251, 149253, 149260, 149262, 149269, 149271, 149276, 149278, 149285, 149287, 
		152377, 152379, 152386, 152388, 152393, 152395, 152402, 152404, 152411, 152413, 152418, 152420, 152427, 152429, 152436, 152438, 152443, 152445, 152452, 152454, 152461, 
		152463, 152468, 152470, 152472, 152477, 152479, 152486, 152488, 152493, 152495, 152497, 152502, 152504, 152511, 152513, 152518, 152520, 152522, 152527, 152529, 152536, 
		152538, 155335, 155337, 155344, 155346, 155351, 155353, 155360, 155362, 155369, 155371, 155376, 155378, 155385, 155387, 155394, 155396, 155401, 155403, 155405, 155410, 
		155412, 155419, 155421, 155426, 155428, 155430, 155435, 155437, 155444, 155446, 155453, 155455, 155460, 155462, 155469, 155471, 170638, 170643, 170645, 170652, 170654, 
		170661, 170663, 170668, 170670, 170677, 170679, 170686, 170688, 170693, 170695, 185919, 185921, 185928, 185930, 185935, 185937, 185944, 185946, 185953, 185955, 185960, 
		185962, 185969, 185971, 185978, 185980, 185985, 185987, 185994, 185996, 186003, 186005, 186010, 186012, 186019, 186021, 186028, 186030, 186035, 186037, 186039, 186044, 
		186046, 186053, 186055, 186060, 186062, 186064, 186069, 186071, 189186, 189188, 189195, 189197, 189202, 189204, 189206, 189211, 189213, 189220, 189222, 189227, 189229, 
		189231, 189236, 189238, 189245, 189247, 189252, 189254, 189256, 189261, 189263, 189270, 189272, 189279, 189281, 189286, 189288, 189295, 189297, 117780, 117781, 117794, 
		117795, 117796, 117797, 117811, 117812, 117813, 117814, 117828, 117829, 117830, 117831, 117844, 117845, 117846, 117847, 117861, 117862, 117863, 117864, 117878, 117879, 
		117880, 117881, 117894, 117895, 117896, 117897, 117898, 117911, 117912, 117913, 117914, 117928, 117929, 117930, 117931, 132167, 132168, 132169, 132170, 132184, 132185, 
		132186, 132187, 132200, 132201, 132202, 132203, 132217, 132218, 132219, 132220, 132234, 132235, 132236, 132237, 132250, 132251, 132252, 132253, 132254, 132267, 132268, 
		132269, 132270, 132284, 132285, 132286, 132287, 132301, 132302, 132303, 132304, 132317, 132318, 132319, 132320, 135242, 135243, 135244, 135245, 135259, 135260, 135261, 
		135262, 135275, 135276, 135277, 135278, 135279, 135292, 135293, 135294, 135295, 135309, 135310, 135311, 135312, 135326, 135327, 135328, 135329, 135342, 135343, 135344, 
		135345, 135359, 135360, 135361, 135362, 135376, 135377, 135378, 135379, 135392, 135393, 135394, 135395, 135396, 138518, 138519, 138520, 138521, 138534, 138535, 138536, 
		138537, 138551, 138552, 138553, 138554, 138568, 138569, 138570, 138571, 138584, 138585, 138586, 138587, 138588, 138601, 138602, 138603, 138604, 138618, 138619, 138620, 
		138621, 138635, 138636, 138637, 138638, 138651, 138652, 138653, 138654, 138668, 138669, 138670, 138671, 138685, 138686, 138687, 138688, 141843, 141844, 141845, 141846, 
		141847, 141860, 141861, 141862, 141863, 141877, 141878, 141879, 141880, 141894, 141895, 141896, 141897, 141910, 141911, 141912, 141913, 141927, 141928, 141929, 141930, 
		141944, 141945, 141946, 141947, 141960, 141961, 141962, 141963, 141964, 141977, 141978, 141979, 141980, 141994, 141995, 141996, 141997, 142011, 142012, 144818, 144819, 
		144820, 144821, 144835, 144836, 144837, 144838, 144852, 144853, 144854, 144855, 144868, 144869, 144870, 144871, 144872, 144885, 144886, 144887, 144888, 144902, 144903, 
		144904, 144905, 155314, 155315, 155316, 155317, 158222, 158223, 158224, 158225, 158238, 158239, 158240, 158241, 158255, 158256, 158257, 158258, 158272, 158273, 158274, 
		158275, 158288, 158289, 158290, 158291, 158292, 158305, 158306, 158307, 158308, 158322, 158323, 158324, 158325, 158339, 158340, 158341, 158342, 158355, 158356, 158357, 
		158358, 158372, 158373, 158374, 158375, 158389, 144751, 144752, 144753, 144754, 144755, 144768, 144769, 144770, 144771, 144785, 144786, 144787, 144788, 144801, 144802, 
		144803, 144804, 144805, 149130, 149131, 149132, 149133, 149147, 149148, 149149, 149150, 149163, 149164, 149165, 149166, 149167, 149180, 149181, 149182, 149183, 149197, 
		149198, 149199, 149200, 149214, 149215, 149216, 149217, 149230, 149231, 149232, 149233, 149247, 149248, 149249, 149250, 149264, 149265, 149266, 149267, 149280, 149281, 
		149282, 149283, 149284, 152373, 152374, 152375, 152389, 152390, 152391, 152392, 152406, 152407, 152408, 152409, 152422, 152423, 152424, 152425, 152426, 152439, 152440, 
		152441, 152442, 152456, 152457, 152458, 152459, 152473, 152474, 152475, 152476, 152489, 152490, 152491, 152492, 152506, 152507, 152508, 152509, 152523, 152524, 152525, 
		152526, 152539, 152540, 152541, 152542, 152543, 155330, 155331, 155332, 155333, 155334, 155347, 155348, 155349, 155350, 155364, 155365, 155366, 155367, 155380, 155381, 
		155382, 155383, 155384, 155397, 155398, 155399, 155400, 155414, 155415, 155416, 155417, 155431, 155432, 155433, 155434, 155447, 155448, 155449, 155450, 155451, 155464, 
		155465, 155466, 155467, 161514, 161515, 161516, 161517, 161531, 161532, 161533, 161534, 161547, 161548, 161549, 161550, 161551, 161564, 161565, 161566, 161567, 161581, 
		161582, 161583, 161584, 161598, 161599, 161600, 161601, 161614, 161615, 161616, 161617, 161631, 161632, 161633, 161634, 161648, 161649, 161650, 161651, 161664, 161665, 
		161666, 161667, 161668, 161681, 161682, 161683, 161684, 164589, 164590, 164591, 164592, 164606, 164607, 164608, 164609, 164622, 164623, 164624, 164625, 164626, 164639, 
		164640, 164641, 164642, 164656, 164657, 164658, 164659, 164673, 164674, 164675, 164676, 164689, 164690, 164691, 164692, 164693, 164706, 164707, 164708, 164709, 164723, 
		164724, 164725, 164726, 164739, 164740, 164741, 164742, 164743, 167681, 167682, 167683, 167684, 167698, 167699, 167700, 167701, 167714, 167715, 167716, 167717, 167731, 
		167732, 167733, 167734, 167748, 167749, 167750, 167751, 167764, 167765, 167766, 167767, 167768, 167781, 167782, 167783, 167784, 167798, 167799, 167800, 167801, 167815, 
		167816, 167817, 167818, 167831, 167832, 167833, 167834, 167848, 167849, 167850, 167851, 170706, 170707, 170708, 170709, 170723, 170724, 170725, 170726, 170739, 170740, 
		170741, 170742, 170756, 170757, 170758, 170759, 170773, 170774, 170775, 170776, 170789, 170790, 170791, 170792, 170793, 170806, 170807, 170639, 170640, 170641, 170642, 
		170656, 170657, 170658, 170659, 170672, 170673, 170674, 170675, 170676, 170689, 170690, 170691, 170692, 185931, 185932, 185933, 185934, 185948, 185949, 185950, 185951, 
		185964, 185965, 185966, 185967, 185981, 185982, 185983, 185984, 185998, 185999, 186000, 186001, 186014, 186015, 186016, 186017, 186018, 186031, 186032, 186033, 186034, 
		186048, 186049, 186050, 186051, 186065, 186066, 186067, 186068, 189190, 189191, 189192, 189193, 189207, 189208, 189209, 189210, 189223, 189224, 189225, 189226, 189240, 
		189241, 189242, 189243, 189257, 189258, 189259, 189260, 189273, 189274, 189275, 189276, 189277, 189290, 189291, 189292, 189293, 189307, 195340, 195341, 195342, 195343, 
		195357, 195358, 195359, 195360, 195373, 195374, 195375, 195376, 195377, 195390, 195391, 195392, 195393, 195407, 195408, 195409, 195410, 195424, 195425, 195426, 195427, 
		195440, 195441, 195442, 195443, 195457, 195458, 195459, 195460, 195474, 195475, 195476, 195477, 195490, 195491, 195492, 195493, 195494, 173681, 173682, 173683, 173684, 
		173697, 173698, 173699, 173700, 173701, 173714, 173715, 173716, 173717, 173731, 173732, 173733, 173734, 173747, 173748, 173749, 173750, 173751, 173764, 173765, 173766, 
		173767, 173781, 173782, 173783, 173784, 173798, 173799, 173800, 173801, 173814, 173815, 173816, 173817, 173818, 173831, 173832, 173833, 173834, 176607, 176608, 176622, 
		176623, 176624, 176625, 176639, 176640, 176641, 176642, 176655, 176656, 176657, 176658, 176659, 176672, 176673, 176674, 176675, 176689, 176690, 176691, 176692, 176706, 
		176707, 176708, 176709, 176722, 176723, 176724, 176725, 176739, 176740, 176741, 176742, 176756, 176757, 176758, 176759, 176772, 176773, 176774, 176775, 176776, 179800, 
		179801, 179814, 179815, 179816, 179817, 179831, 179832, 179833, 179834, 179848, 179849, 179850, 179851, 179864, 179865, 179866, 179867, 179881, 179882, 179883, 179884, 
		179898, 179899, 179900, 179901, 179914, 179915, 179916, 179917, 179918, 179931, 179932, 179933, 179934, 179948, 179949, 179950, 179951, 179965, 179966, 179967, 179968, 
		182872, 182873, 182874, 182875, 182876, 182889, 182890, 182891, 182892, 182906, 182907, 182908, 182909, 182923, 182924, 182925, 182926, 182939, 182940, 182941, 182942, 
		182943, 182956, 182957, 182958, 182959, 182973, 182974, 182975, 182976, 182989, 182990, 182991, 182992, 182993, 183006, 183007, 183008, 183009, 183023, 183024, 183025, 
		183026, 186081, 186082, 186083, 186084, 189308, 189309, 189310, 189324, 189325, 189326, 189327, 189340, 189341, 189342, 189343, 217852, 217853, 217854, 217855, 217868, 
		217869, 217870, 217871, 217872, 217885, 217886, 217887, 217888, 217902, 217903, 217904, 217905, 217919, 217920, 217921, 217922, 217935, 217936, 217937, 217938, 217952, 
		217953, 217954, 217955, 217969, 217970, 217971, 217972, 217985, 217986, 217987, 217988, 217989, 218002, 218003, 218004, 218005, 220961, 220962, 220963, 220977, 220978, 
		220979, 220980, 220994, 220995, 220996, 220997, 221010, 221011, 221012, 221013, 221014, 221027, 221028, 221029, 221030, 221044, 221045, 221046, 221047, 221060, 221061, 
		221062, 221063, 221064, 221077, 221078, 221079, 221080, 221094, 221095, 221096, 221097, 221111, 221112, 221113, 221114, 221127, 221128, 221129, 221130, 221131, 226525, 
		226526, 226527, 226528, 226529, 226542, 226543, 226544, 226545, 226559, 226560, 226561, 226562, 226576, 226577, 226578, 226579, 226592, 226593, 226594, 226595, 226609, 
		226610, 226611, 226612, 198482, 198483, 198484, 198485, 198499, 198500, 198501, 198502, 167726, 167739, 167740, 167741, 167742, 167743, 167756, 167757, 167758, 167759, 
		167773, 167774, 167775, 167776, 167789, 167790, 167791, 167792, 167793, 167806, 167807, 167808, 167809, 167823, 167824, 167825, 167826, 167840, 167841, 167842, 167843, 
		170701, 170714, 170715, 170716, 170717, 170731, 170732, 170733, 170734, 170748, 170749, 170750, 170751, 170764, 170765, 170766, 170767, 170781, 170782, 170783, 170784, 
		170798, 170799, 170800, 170801, 170647, 170648, 170649, 170650, 170664, 170665, 170666, 170667, 170681, 170682, 170683, 170684, 170697, 170698, 170699, 170700, 185923, 
		185924, 185925, 185926, 185939, 185940, 185941, 185942, 185956, 185957, 185958, 185959, 185973, 185974, 185975, 185976, 185989, 185990, 185991, 185992, 185993, 186006, 
		186007, 186008, 186009, 186023, 186024, 186025, 186026, 186040, 186041, 186042, 186043, 186056, 186057, 186058, 186059, 189185, 189198, 189199, 189200, 189201, 189215, 
		189216, 189217, 189218, 189232, 189233, 189234, 189235, 189248, 189249, 189250, 189251, 189265, 189266, 189267, 189268, 189282, 189283, 189284, 189285, 189298, 189299, 
		189300, 189301, 189302, 195333, 195334, 195335, 195348, 195349, 195350, 195351, 195352, 195365, 195366, 195367, 195368, 195382, 195383, 195384, 195385, 195398, 195399, 
		195400, 195401, 195402, 195415, 195416, 195417, 195418, 195432, 195433, 195434, 195435, 195449, 195450, 195451, 195452, 195465, 195466, 195467, 195468, 195469, 195482, 
		195483, 195484, 195485, 195499, 195500, 195501, 195502, 173672, 173673, 173674, 173675, 173689, 173690, 173691, 173692, 173706, 173707, 173708, 173709, 173722, 173723, 
		173724, 173725, 173726, 173739, 173740, 173741, 173742, 173756, 173757, 173758, 173759, 173773, 173774, 173775, 173776, 173789, 173790, 173791, 173792, 173806, 173807, 
		173808, 173809, 173823, 173824, 173825, 173826, 173839, 173840, 173841, 176614, 176615, 176616, 176617, 176630, 176631, 176632, 176633, 176634, 176647, 176648, 176649, 
		176650, 176664, 176665, 176666, 176667, 176681, 176682, 176683, 176684, 176697, 176698, 176699, 176700, 176714, 176715, 176716, 176717, 176731, 176732, 176733, 176734, 
		176747, 176748, 176749, 176750, 176751, 176764, 176765, 176766, 176767, 179806, 179807, 179808, 179809, 179822, 179823, 179824, 179825, 179826, 179839, 179840, 179841, 
		179842, 179856, 179857, 179858, 179859, 179873, 179874, 179875, 179876, 179889, 179890, 179891, 179892, 179906, 179907, 179908, 179909, 179923, 179924, 179925, 179926, 
		179939, 179940, 179941, 179942, 179943, 179956, 179957, 179958, 179959, 182864, 182865, 182866, 182867, 182881, 182882, 182883, 182884, 182898, 182899, 182900, 182901, 
		182914, 182915, 182916, 182917, 182931, 182932, 182933, 182934, 182948, 182949, 182950, 182951, 182964, 182965, 182966, 182967, 182968, 182981, 182982, 182983, 182984, 
		182998, 182999, 183000, 183001, 183015, 183016, 183017, 183018, 186073, 186074, 186075, 186076, 189315, 189316, 189317, 189318, 189332, 189333, 189334, 189335, 189349, 
		189350, 189351, 189352, 217846, 217847, 217860, 217861, 217862, 217863, 217877, 217878, 217879, 217880, 217893, 217894, 217895, 217896, 217897, 217910, 217911, 217912, 
		217913, 217927, 217928, 217929, 217930, 217944, 217945, 217946, 217947, 217960, 217961, 217962, 217963, 217977, 217978, 217979, 217980, 217994, 217995, 217996, 217997, 
		218010, 218011, 218012, 218013, 218014, 220969, 220970, 220971, 220972, 220985, 220986, 220987, 220988, 221002, 221003, 221004, 221005, 221019, 221020, 221021, 221022, 
		221035, 221036, 221037, 221038, 221039, 221052, 221053, 221054, 221055, 221069, 221070, 221071, 221072, 221086, 221087, 221088, 221089, 221102, 221103, 221104, 221105, 
		221119, 221120, 221121, 221122, 226534, 226535, 226536, 226537, 226551, 226552, 226553, 226554, 226567, 226568, 226569, 226570, 226584, 226585, 226586, 226587, 226601, 
		226602, 226603, 226604, 226617, 226618, 226619, 226620, 198474, 198475, 198476, 198477, 198490, 198491, 198492, 198493, 198507, 198508, 198509, 198510, 198524, 198525, 
		198526, 198527, 198540, 198541, 198542, 198543, 198544, 198557, 198558, 198559, 198560, 198574, 198575, 198576, 198577, 198591, 198592, 198593, 189304, 189306, 195336, 
		195338, 195345, 195347, 195354, 195356, 195361, 195363, 195370, 195372, 195379, 195381, 195386, 195388, 195395, 195397, 195404, 195406, 195411, 195413, 195420, 195422, 
		195429, 195431, 195436, 195438, 195445, 195447, 195454, 195456, 195461, 195463, 195470, 195472, 195479, 195481, 195486, 195488, 195495, 195497, 161560, 161562, 161569, 
		161571, 161578, 161580, 161585, 161587, 161594, 161596, 161603, 161605, 161610, 161612, 161619, 161621, 161628, 161630, 161635, 161637, 161644, 161646, 161653, 161655, 
		161660, 161662, 161669, 161671, 161678, 161680, 164586, 164588, 164593, 164595, 164602, 164604, 164611, 164613, 164618, 164620, 164627, 164629, 164636, 164638, 164643, 
		164645, 164647, 164652, 164654, 164661, 164663, 164668, 164670, 164672, 164677, 164679, 164686, 164688, 164695, 164697, 164702, 164704, 164711, 164713, 164720, 164722, 
		164727, 164729, 164736, 164738, 164745, 164747, 164752, 164754, 167685, 167687, 167694, 167696, 167703, 167705, 167710, 167712, 167719, 167721, 167728, 167730, 167735, 
		167737, 167744, 167746, 167753, 167755, 167760, 167762, 167769, 167771, 167778, 167780, 167785, 167787, 167794, 167796, 167803, 167805, 167810, 167812, 167814, 167819, 
		167821, 167828, 167830, 167835, 167837, 167839, 167844, 167846, 170702, 170704, 170711, 170713, 170718, 170720, 170722, 170727, 170729, 170736, 170738, 170743, 170745, 
		170747, 170752, 170754, 170761, 170763, 170768, 170770, 170772, 170777, 170779, 170786, 170788, 170795, 170797, 170802, 170804, 173671, 173676, 173678, 173680, 173685, 
		173687, 173694, 173696, 173703, 173705, 173710, 173712, 173719, 173721, 173728, 173730, 173735, 173737, 173744, 173746, 173753, 173755, 173760, 173762, 173769, 173771, 
		173778, 173780, 173785, 173787, 173794, 173796, 173803, 173805, 173810, 173812, 173819, 173821, 173828, 173830, 173835, 173837, 176609, 176611, 176613, 176618, 176620, 
		176627, 176629, 176636, 176638, 176643, 176645, 176652, 176654, 176661, 176663, 176668, 176670, 176677, 176679, 176686, 176688, 176693, 176695, 176702, 176704, 176711, 
		176713, 176718, 176720, 176727, 176729, 176736, 176738, 176743, 176745, 176752, 176754, 176761, 176763, 176768, 176770, 176777, 179803, 179805, 179810, 179812, 179819, 
		179821, 179828, 179830, 179835, 179837, 179844, 179846, 179853, 179855, 179860, 179862, 179869, 179871, 179878, 179880, 179885, 179887, 179894, 179896, 179903, 179905, 
		179910, 179912, 179919, 179921, 179928, 179930, 179935, 179937, 179944, 179946, 179953, 179955, 179960, 179962, 179964, 179969, 182861, 182863, 182868, 182870, 182877, 
		182879, 182886, 182888, 182893, 182895, 182897, 182902, 182904, 182911, 182913, 182918, 182920, 182922, 182927, 182929, 182936, 182938, 182945, 182947, 182952, 182954, 
		182961, 182963, 182970, 182972, 182977, 182979, 182986, 182988, 182995, 182997, 183002, 183004, 183011, 183013, 183020, 183022, 183027, 183029, 186078, 186080, 186085, 
		186087, 186089, 189311, 189313, 189320, 189322, 189329, 189331, 189336, 189338, 189345, 189347, 189354, 217848, 217850, 217857, 217859, 217864, 217866, 217873, 217875, 
		217882, 217884, 217889, 217891, 217898, 217900, 217907, 217909, 217914, 217916, 217918, 217923, 217925, 217932, 217934, 217939, 217941, 217943, 217948, 217950, 217957, 
		217959, 217964, 217966, 217968, 217973, 217975, 217982, 217984, 217991, 217993, 217998, 218000, 218007, 218009, 218016, 220965, 220967, 220974, 220976, 220981, 220983, 
		220990, 220992, 220999, 221001, 221006, 221008, 221015, 221017, 221024, 221026, 221031, 221033, 221040, 221042, 221049, 221051, 221056, 221058, 221065, 221067, 221074, 
		221076, 221081, 221083, 221085, 221090, 221092, 221099, 221101, 221106, 221108, 221110, 221115, 221117, 221124, 221126, 226522, 226524, 226531, 226533, 226538, 226540, 
		226547, 226549, 226556, 226558, 226563, 226565, 226572, 226574, 226581, 226583, 226588, 226590, 226597, 226599, 226606, 226608, 226613, 226615, 198469, 198471, 198473, 
		198478, 198480, 198487, 198489, 198494, 198496, 198498, 198503, 198505, 198512, 198514, 198521, 198523, 198528, 198530, 198537, 198539, 198546, 198548, 198553, 198555, 
		198562, 198564, 198571, 198573, 164696, 164703, 164705, 164710, 164712, 164719, 164721, 164728, 164730, 164735, 164737, 164744, 164746, 164753, 167686, 167688, 167693, 
		167695, 167697, 167702, 167704, 167711, 167713, 167718, 167720, 167722, 167727, 167729, 167736, 167738, 167745, 167747, 167752, 167754, 167761, 167763, 167770, 167772, 
		167777, 167779, 167786, 167788, 167795, 167797, 167802, 167804, 167811, 167813, 167820, 167822, 167827, 167829, 167836, 167838, 167845, 167847, 170703, 170705, 170710, 
		170712, 170719, 170721, 170728, 170730, 170735, 170737, 170744, 170746, 170753, 170755, 170760, 170762, 170769, 170771, 170778, 170780, 170785, 170787, 170794, 170796, 
		170803, 170805, 170637, 170644, 170646, 170651, 170653, 170655, 170660, 170662, 170669, 170671, 170678, 170680, 170685, 170687, 170694, 170696, 185920, 185922, 185927, 
		185929, 185936, 185938, 185943, 185945, 185947, 185952, 185954, 185961, 185963, 185968, 185970, 185972, 185977, 185979, 185986, 185988, 185995, 185997, 186002, 186004, 
		186011, 186013, 186020, 186022, 186027, 186029, 186036, 186038, 186045, 186047, 186052, 186054, 186061, 186063, 186070, 189187, 189189, 189194, 189196, 189203, 189205, 
		189212, 189214, 189219, 189221, 189228, 189230, 189237, 189239, 189244, 189246, 189253, 189255, 189262, 189264, 189269, 189271, 189278, 189280, 189287, 189289, 189294, 
		189296, 189303, 189305, 195337, 195339, 195344, 195346, 195353, 195355, 195362, 195364, 195369, 195371, 195378, 195380, 195387, 195389, 195394, 195396, 195403, 195405, 
		195412, 195414, 195419, 195421, 195423, 195428, 195430, 195437, 195439, 195444, 195446, 195448, 195453, 195455, 195462, 195464, 195471, 195473, 195478, 195480, 195487, 
		195489, 195496, 195498, 195503, 173677, 173679, 173686, 173688, 173693, 173695, 173702, 173704, 173711, 173713, 173718, 173720, 173727, 173729, 173736, 173738, 173743, 
		173745, 173752, 173754, 173761, 173763, 173768, 173770, 173772, 173777, 173779, 173786, 173788, 173793, 173795, 173797, 173802, 173804, 173811, 173813, 173820, 173822, 
		173827, 173829, 173836, 173838, 176610, 176612, 176619, 176621, 176626, 176628, 176635, 176637, 176644, 176646, 176651, 176653, 176660, 176662, 176669, 176671, 176676, 
		176678, 176680, 176685, 176687, 176694, 176696, 176701, 176703, 176705, 176710, 176712, 176719, 176721, 176726, 176728, 176730, 176735, 176737, 176744, 176746, 176753, 
		176755, 176760, 176762, 176769, 176771, 179802, 179804, 179811, 179813, 179818, 179820, 179827, 179829, 179836, 179838, 179843, 179845, 179847, 179852, 179854, 179861, 
		179863, 179868, 179870, 179872, 179877, 179879, 179886, 179888, 179893, 179895, 179897, 179902, 179904, 179911, 179913, 179920, 179922, 179927, 179929, 179936, 179938, 
		179945, 179947, 179952, 179954, 179961, 179963, 179970, 182860, 182862, 182869, 182871, 182878, 182880, 182885, 182887, 182894, 182896, 182903, 182905, 182910, 182912, 
		182919, 182921, 182928, 182930, 182935, 182937, 182944, 182946, 182953, 182955, 182960, 182962, 182969, 182971, 182978, 182980, 182985, 182987, 182994, 182996, 183003, 
		183005, 183010, 183012, 183014, 183019, 183021, 183028, 183030, 186072, 186077, 186079, 186086, 186088, 189312, 189314, 189319, 189321, 189323, 189328, 189330, 189337, 
		189339, 189344, 189346, 189348, 189353, 189355, 217849, 217851, 217856, 217858, 217865, 217867, 217874, 217876, 217881, 217883, 217890, 217892, 217899, 217901, 217906, 
		217908, 217915, 217917, 217924, 217926, 217931, 217933, 217940, 217942, 217949, 217951, 217956, 217958, 217965, 217967, 217974, 217976, 217981, 217983, 217990, 217992, 
		217999, 218001, 218006, 218008, 218015, 220964, 220966, 220968, 220973, 220975, 220982, 220984, 220989, 220991, 220993, 220998, 221000, 221007, 221009, 221016, 221018, 
		221023, 221025, 221032, 221034, 221041, 221043, 221048, 221050, 221057, 221059, 221066, 221068, 221073, 221075, 221082, 221084, 221091, 221093, 221098, 221100, 221107, 
		221109, 221116, 221118, 221123, 221125, 226523, 226530, 226532, 226539, 226541, 226546, 226548, 226550, 226555, 226557, 226564, 226566, 226571, 226573, 226575, 226580, 
		226582, 226589, 226591, 226596, 226598, 226600, 226605, 226607, 226614, 226616, 198470, 198578, 198580, 198587, 198589, 198596, 198598, 198603, 198605, 198612, 198614, 
		198621, 198623, 198628, 198630, 198637, 198639, 206861, 206868, 206870, 206877, 206879, 206884, 206886, 206893, 206895, 206902, 206904, 206909, 206911, 206918, 206920, 
		206927, 206929, 206934, 206936, 206943, 206945, 206952, 206954, 206959, 206961, 206963, 206968, 206970, 206977, 206979, 206984, 206986, 206988, 206993, 206995, 207002, 
		207004, 207009, 207011, 207013, 207018, 207020, 207027, 207029, 209760, 209762, 209767, 209769, 209776, 209778, 209785, 209787, 209792, 209794, 209801, 209803, 209810, 
		209812, 209817, 209819, 209826, 209828, 209835, 209837, 209842, 209844, 209851, 209853, 209860, 209862, 209867, 209869, 209876, 209878, 209885, 209887, 209892, 209894, 
		209896, 209901, 209903, 209910, 209912, 209917, 209919, 209921, 209926, 212977, 212979, 212984, 212986, 212993, 212995, 213002, 213004, 213009, 213011, 213018, 213020, 
		213027, 213029, 213034, 213036, 213043, 213045, 213052, 213054, 213059, 213061, 213063, 213068, 213070, 213077, 213079, 213084, 213086, 213088, 213093, 213095, 213102, 
		213104, 213111, 213113, 213118, 213120, 213127, 213129, 213136, 213138, 202533, 202540, 202542, 202547, 202549, 202556, 202558, 202565, 202567, 202572, 202574, 202581, 
		202583, 202590, 202592, 202597, 202599, 202601, 202606, 202608, 202615, 202617, 202622, 202624, 202626, 202631, 202633, 202640, 202642, 202649, 202651, 202656, 202658, 
		202665, 202667, 202674, 202676, 202681, 202683, 202690, 202692, 202699, 202701, 226454, 226456, 226458, 226463, 226465, 226472, 226474, 226479, 226481, 226483, 226488, 
		226490, 226497, 226499, 226506, 226508, 226513, 226515, 229298, 229305, 229307, 229312, 229314, 229321, 229323, 229330, 229332, 229337, 229339, 229341, 229346, 229348, 
		229355, 229357, 229362, 229364, 229366, 229371, 229373, 229380, 229382, 229387, 229389, 229391, 229396, 229398, 229405, 229407, 229414, 229416, 229421, 229423, 229430, 
		229432, 229439, 229441, 229446, 229448, 229455, 229457, 229464, 229466, 256204, 256206, 256211, 256213, 256220, 256222, 256229, 256231, 256236, 256238, 256245, 256247, 
		256254, 256256, 256261, 256263, 256270, 256272, 256279, 256281, 256286, 256288, 256295, 256297, 256304, 256306, 256311, 256313, 256320, 256322, 256329, 256331, 256336, 
		256338, 256345, 256347, 256354, 256356, 256361, 256363, 256365, 256370, 256372, 259521, 259523, 259528, 259530, 259532, 259537, 259539, 259546, 259548, 259553, 259555, 
		259557, 259562, 259564, 259571, 259573, 259580, 259582, 259587, 259589, 259596, 259598, 259605, 259607, 259612, 259614, 259621, 259623, 259630, 259632, 259637, 259639, 
		232563, 232565, 232572, 232574, 232581, 232583, 232588, 232590, 232597, 232599, 232606, 232608, 232613, 232615, 232622, 232624, 232631, 232633, 232638, 232640, 232647, 
		232649, 232656, 232658, 232663, 232665, 232672, 232674, 232681, 232683, 232688, 232690, 232697, 232699, 232706, 232708, 232713, 232715, 232722, 232724, 235898, 235900, 
		235905, 235907, 235909, 235914, 235916, 235923, 235925, 235930, 235932, 235934, 235939, 235941, 235948, 235950, 235955, 235957, 235959, 235964, 235966, 235973, 235975, 
		235982, 235984, 235989, 235991, 235998, 236000, 236007, 236009, 236014, 236016, 236023, 236025, 236032, 236034, 236039, 236041, 236048, 236050, 236057, 236059, 236064, 
		236066, 238981, 238983, 238990, 238992, 238997, 238999, 239006, 239008, 239015, 239017, 239022, 239024, 239031, 239033, 239040, 239042, 239047, 239049, 239056, 239058, 
		239065, 239067, 239072, 239074, 239076, 239081, 239083, 239090, 239092, 239097, 239099, 239101, 239106, 239108, 239115, 239117, 239122, 239124, 239126, 239131, 239133, 
		239140, 239142, 239149, 242257, 242259, 242264, 242266, 242268, 242273, 242275, 242282, 242284, 242289, 242291, 242293, 242298, 242300, 242307, 242309, 242316, 242318, 
		242323, 242325, 242332, 242334, 242341, 242343, 242348, 242350, 242357, 242359, 242366, 242368, 242373, 242375, 242382, 242384, 242391, 242393, 242398, 242400, 242407, 
		242409, 242416, 242418, 242423, 242425, 245524, 245526, 245533, 245535, 245540, 245542, 245549, 245551, 245558, 245560, 245565, 245567, 245574, 198594, 198607, 198608, 
		198609, 198610, 198624, 198625, 198626, 198627, 202535, 202536, 202537, 202538, 202551, 202552, 202553, 202554, 202555, 202568, 202569, 202570, 202571, 202585, 202586, 
		202587, 202588, 202602, 202603, 202604, 202605, 202618, 202619, 202620, 202621, 202635, 202636, 202637, 202638, 202652, 202653, 202654, 202655, 202668, 202669, 202670, 
		202671, 202672, 202685, 202686, 202687, 202688, 202702, 226450, 226451, 226452, 226453, 226467, 226468, 226469, 226470, 226484, 226485, 226486, 226487, 226500, 226501, 
		226502, 226503, 226504, 226517, 226518, 226519, 226520, 229308, 229309, 229310, 229311, 229325, 229326, 229327, 229328, 229342, 229343, 229344, 229345, 229358, 229359, 
		229360, 229361, 229375, 229376, 229377, 229378, 229392, 229393, 229394, 229395, 229408, 229409, 229410, 229411, 229412, 229425, 229426, 229427, 229428, 229442, 229443, 
		229444, 229445, 229458, 229459, 229460, 229461, 229462, 206863, 206864, 206865, 206866, 206880, 206881, 206882, 206883, 206897, 206898, 206899, 206900, 206913, 206914, 
		206915, 206916, 206917, 206930, 206931, 206932, 206933, 206947, 206948, 206949, 206950, 206964, 206965, 206966, 206967, 206980, 206981, 206982, 206983, 206997, 206998, 
		206999, 207000, 207014, 207015, 207016, 207017, 207030, 209757, 209758, 209771, 209772, 209773, 209774, 209788, 209789, 209790, 209791, 209805, 209806, 209807, 209808, 
		209821, 209822, 209823, 209824, 209825, 209838, 209839, 209840, 209841, 209855, 209856, 209857, 209858, 209871, 209872, 209873, 209874, 209875, 209888, 209889, 209890, 
		209891, 209905, 209906, 209907, 209908, 209922, 209923, 209924, 209925, 212980, 212981, 212982, 212983, 212997, 212998, 212999, 213000, 213013, 213014, 213015, 213016, 
		213017, 213030, 213031, 213032, 213033, 213047, 213048, 213049, 213050, 213064, 213065, 213066, 213067, 213080, 213081, 213082, 213083, 213097, 213098, 213099, 213100, 
		213114, 213115, 213116, 213117, 213130, 213131, 213132, 213133, 213134, 253224, 253225, 253226, 253227, 253240, 253241, 253242, 253243, 253244, 253257, 253258, 253259, 
		253260, 253274, 253275, 253276, 253277, 253290, 253291, 253292, 253293, 253294, 253307, 253308, 253309, 253310, 253324, 253325, 253326, 253327, 253341, 253342, 253343, 
		253344, 253357, 253358, 253359, 253360, 253374, 253375, 253376, 253377, 253391, 253392, 253393, 253394, 232567, 232568, 232569, 232570, 232584, 232585, 232586, 232587, 
		232600, 232601, 232602, 232603, 232604, 232617, 232618, 232619, 232620, 232634, 232635, 232636, 232637, 232651, 232652, 232653, 232654, 232667, 232668, 232669, 232670, 
		232684, 232685, 232686, 232687, 232701, 232702, 232703, 232704, 232717, 232718, 232719, 232720, 232721, 235896, 235910, 235911, 235912, 235913, 235926, 235927, 235928, 
		235929, 235943, 235944, 235945, 235946, 235960, 235961, 235962, 235963, 235976, 235977, 235978, 235979, 235980, 235993, 235994, 235995, 235996, 236010, 236011, 236012, 
		236013, 236026, 236027, 236028, 236029, 236030, 236043, 236044, 236045, 236046, 236060, 236061, 236062, 236063, 238985, 238986, 238987, 238988, 239001, 239002, 239003, 
		239004, 239018, 239019, 239020, 239021, 239035, 239036, 239037, 239038, 239051, 239052, 239053, 239054, 239055, 239068, 239069, 239070, 239071, 239085, 239086, 239087, 
		239088, 239102, 239103, 239104, 239105, 239118, 239119, 239120, 239121, 239135, 239136, 239137, 239138, 242260, 242261, 242262, 242263, 242277, 242278, 242279, 242280, 
		242294, 242295, 242296, 242297, 242310, 242311, 242312, 242313, 242314, 242327, 242328, 242329, 242330, 242344, 242345, 242346, 242347, 242361, 242362, 242363, 242364, 
		242377, 242378, 242379, 242380, 242394, 242395, 242396, 242397, 242411, 242412, 242413, 242414, 245519, 245520, 245521, 245522, 245536, 245537, 245538, 245539, 245553, 
		245554, 245555, 245556, 245569, 245570, 245571, 245572, 245586, 245587, 245588, 245589, 245603, 245604, 245605, 245606, 245619, 245620, 245621, 245622, 245623, 245636, 
		245637, 245638, 245639, 245653, 245654, 245655, 245656, 245670, 245671, 245672, 245673, 245686, 245687, 245688, 245689, 248581, 248594, 248595, 248596, 248597, 248611, 
		248612, 248613, 248614, 248628, 198515, 198516, 198517, 198518, 198519, 198532, 198533, 198534, 198535, 198549, 198550, 198551, 198552, 198565, 198566, 198567, 198568, 
		198569, 198582, 198583, 198584, 198585, 198599, 198600, 198601, 198602, 198616, 198617, 198618, 198619, 198632, 198633, 198634, 198635, 198636, 202543, 202544, 202545, 
		202546, 202560, 202561, 202562, 202563, 202576, 202577, 202578, 202579, 202580, 202593, 202594, 202595, 202596, 202610, 202611, 202612, 202613, 202627, 202628, 202629, 
		202630, 202643, 202644, 202645, 202646, 202647, 202660, 202661, 202662, 202663, 202677, 202678, 202679, 202680, 202693, 202694, 202695, 202696, 202697, 226459, 226460, 
		226461, 226462, 226475, 226476, 226477, 226478, 226492, 226493, 226494, 226495, 226509, 226510, 226511, 226512, 229300, 229301, 229302, 229303, 229316, 229317, 229318, 
		229319, 229320, 229333, 229334, 229335, 229336, 229350, 229351, 229352, 229353, 229367, 229368, 229369, 229370, 229383, 229384, 229385, 229386, 229400, 229401, 229402, 
		229403, 229417, 229418, 229419, 229420, 229433, 229434, 229435, 229436, 229437, 229450, 229451, 229452, 229453, 229467, 206872, 206873, 206874, 206875, 206888, 206889, 
		206890, 206891, 206905, 206906, 206907, 206908, 206922, 206923, 206924, 206925, 206938, 206939, 206940, 206941, 206942, 206955, 206956, 206957, 206958, 206972, 206973, 
		206974, 206975, 206989, 206990, 206991, 206992, 207005, 207006, 207007, 207008, 207022, 207023, 207024, 207025, 209763, 209764, 209765, 209766, 209780, 209781, 209782, 
		209783, 209796, 209797, 209798, 209799, 209813, 209814, 209815, 209816, 209830, 209831, 209832, 209833, 209846, 209847, 209848, 209849, 209850, 209863, 209864, 209865, 
		209866, 209880, 209881, 209882, 209883, 209897, 209898, 209899, 209900, 209913, 209914, 209915, 209916, 212972, 212973, 212974, 212975, 212988, 212989, 212990, 212991, 
		212992, 213005, 213006, 213007, 213008, 213022, 213023, 213024, 213025, 213038, 213039, 213040, 213041, 213042, 213055, 213056, 213057, 213058, 213072, 213073, 213074, 
		213075, 213089, 213090, 213091, 213092, 213105, 213106, 213107, 213108, 213109, 213122, 213123, 213124, 213125, 213139, 213140, 213141, 256207, 256208, 256209, 256210, 
		256224, 256225, 256226, 256227, 256240, 256241, 256242, 256243, 256257, 256258, 256259, 256260, 256274, 256275, 256276, 256277, 256290, 256291, 256292, 256293, 256294, 
		256307, 256308, 256309, 256310, 256324, 256325, 256326, 256327, 256340, 256341, 256342, 256343, 256344, 256357, 256358, 256359, 256360, 259519, 259533, 259534, 259535, 
		259536, 259549, 259550, 259551, 259552, 259566, 259567, 259568, 259569, 259583, 259584, 259585, 259586, 259599, 259600, 259601, 259602, 259603, 259616, 259617, 259618, 
		259619, 259633, 259634, 259635, 259636, 259650, 259651, 259652, 259653, 259666, 259667, 259668, 259669, 259683, 259684, 259685, 259686, 253232, 253233, 253234, 253235, 
		253249, 253250, 253251, 253252, 253265, 253266, 253267, 253268, 253269, 253282, 253283, 253284, 253285, 253299, 253300, 253301, 253302, 253316, 253317, 253318, 253319, 
		253332, 253333, 253334, 253335, 253349, 253350, 253351, 253352, 253366, 253367, 253368, 253369, 253382, 253383, 253384, 253385, 253386, 232559, 232560, 232561, 232562, 
		232575, 232576, 232577, 232578, 232579, 232592, 232593, 232594, 232595, 232609, 232610, 232611, 232612, 232626, 232627, 232628, 232629, 232642, 232643, 232644, 232645, 
		232659, 232660, 232661, 232662, 232676, 232677, 232678, 232679, 232692, 232693, 232694, 232695, 232696, 232709, 232710, 232711, 232712, 232726, 232727, 232728, 232729, 
		235901, 235902, 235903, 235904, 235918, 235919, 235920, 235921, 235935, 235936, 235937, 235938, 235951, 235952, 235953, 235954, 235968, 235969, 235970, 235971, 235985, 
		235986, 235987, 235988, 236001, 236002, 236003, 236004, 236005, 236018, 236019, 236020, 236021, 236035, 236036, 236037, 236038, 236052, 236053, 236054, 236055, 238979, 
		238993, 238994, 238995, 238996, 239010, 239011, 239012, 239013, 239026, 239027, 239028, 239029, 239030, 239043, 239044, 239045, 239046, 239060, 239061, 239062, 239063, 
		239077, 239078, 239079, 239080, 239093, 239094, 239095, 239096, 239110, 239111, 239112, 198472, 198479, 198481, 198486, 198488, 198495, 198497, 198504, 198506, 198511, 
		198513, 198520, 198522, 198529, 198531, 198536, 198538, 198545, 198547, 198554, 198556, 198561, 198563, 198570, 198572, 198579, 198581, 198586, 198588, 198590, 198595, 
		198597, 198604, 198606, 198611, 198613, 198615, 198620, 198622, 198629, 198631, 198638, 206860, 206862, 206867, 206869, 206871, 206876, 206878, 206885, 206887, 206892, 
		206894, 206896, 206901, 206903, 206910, 206912, 206919, 206921, 206926, 206928, 206935, 206937, 206944, 206946, 206951, 206953, 206960, 206962, 206969, 206971, 206976, 
		206978, 206985, 206987, 206994, 206996, 207001, 207003, 207010, 207012, 207019, 207021, 207026, 207028, 209759, 209761, 209768, 209770, 209775, 209777, 209779, 209784, 
		209786, 209793, 209795, 209800, 209802, 209804, 209809, 209811, 209818, 209820, 209827, 209829, 209834, 209836, 209843, 209845, 209852, 209854, 209859, 209861, 209868, 
		209870, 209877, 209879, 209884, 209886, 209893, 209895, 209902, 209904, 209909, 209911, 209918, 209920, 209927, 212971, 212976, 212978, 212985, 212987, 212994, 212996, 
		213001, 213003, 213010, 213012, 213019, 213021, 213026, 213028, 213035, 213037, 213044, 213046, 213051, 213053, 213060, 213062, 213069, 213071, 213076, 213078, 213085, 
		213087, 213094, 213096, 213101, 213103, 213110, 213112, 213119, 213121, 213126, 213128, 213135, 213137, 202532, 202534, 202539, 202541, 202548, 202550, 202557, 202559, 
		202564, 202566, 202573, 202575, 202582, 202584, 202589, 202591, 202598, 202600, 202607, 202609, 202614, 202616, 202623, 202625, 202632, 202634, 202639, 202641, 202648, 
		202650, 202657, 202659, 202664, 202666, 202673, 202675, 202682, 202684, 202689, 202691, 202698, 202700, 226455, 226457, 226464, 226466, 226471, 226473, 226480, 226482, 
		226489, 226491, 226496, 226498, 226505, 226507, 226514, 226516, 226521, 229297, 229299, 229304, 229306, 229313, 229315, 229322, 229324, 229329, 229331, 229338, 229340, 
		229347, 229349, 229354, 229356, 229363, 229365, 229372, 229374, 229379, 229381, 229388, 229390, 229397, 229399, 229404, 229406, 229413, 229415, 229422, 229424, 229429, 
		229431, 229438, 229440, 229447, 229449, 229454, 229456, 229463, 229465, 253229, 253231, 253236, 253238, 253245, 253247, 253254, 253256, 253261, 253263, 253270, 253272, 
		253279, 253281, 253286, 253288, 253295, 253297, 253304, 253306, 253311, 253313, 253315, 253320, 253322, 253329, 253331, 253336, 253338, 253340, 253345, 253347, 253354, 
		253356, 253361, 253363, 253365, 253370, 253372, 253379, 253381, 253388, 253390, 256203, 256205, 256212, 256214, 256219, 256221, 256223, 256228, 256230, 256237, 256239, 
		256244, 256246, 256248, 256253, 256255, 256262, 256264, 256269, 256271, 256273, 256278, 256280, 256287, 256289, 256296, 256298, 256303, 256305, 256312, 256314, 256321, 
		256323, 256328, 256330, 256337, 256339, 256346, 256348, 256353, 256355, 256362, 256364, 256371, 259520, 259522, 259529, 259531, 259538, 259540, 259545, 259547, 259554, 
		259556, 259563, 259565, 259570, 259572, 259579, 259581, 259588, 259590, 259595, 259597, 259604, 259606, 259613, 259615, 259620, 259622, 259629, 259631, 259638, 259640, 
		259645, 259647, 259649, 259654, 259656, 259663, 259665, 259670, 259672, 259674, 259679, 259681, 259688, 232564, 232566, 232571, 232573, 232580, 232582, 232589, 232591, 
		232596, 232598, 232605, 232607, 232614, 232616, 232621, 232623, 232625, 232630, 232632, 232639, 232641, 232646, 232648, 232650, 232655, 232657, 232664, 232666, 232671, 
		232673, 232675, 232680, 232682, 232689, 232691, 232698, 232700, 232705, 232707, 232714, 232716, 232723, 232725, 235897, 235899, 235906, 235908, 235915, 235917, 235922, 
		235924, 235931, 235933, 235940, 235942, 235947, 235949, 235956, 235958, 235965, 235967, 235972, 235974, 235981, 235983, 235990, 235992, 235997, 235999, 236006, 236008, 
		236015, 236017, 236022, 236024, 236031, 236033, 236040, 236042, 236047, 236049, 236051, 236056, 236058, 236065, 238980, 238982, 238984, 238989, 238991, 238998, 239000, 
		239005, 239007, 239009, 239014, 239016, 239023, 239025, 239032, 239034, 239039, 239041, 239048, 239050, 239057, 239059, 239064, 239066, 239073, 239113, 239127, 239128, 
		239129, 239130, 239143, 239144, 239145, 239146, 239147, 242255, 242269, 242270, 242271, 242272, 242285, 242286, 242287, 242288, 242302, 242303, 242304, 242305, 242319, 
		242320, 242321, 242322, 242335, 242336, 242337, 242338, 242339, 242352, 242353, 242354, 242355, 242369, 242370, 242371, 242372, 242386, 242387, 242388, 242389, 242402, 
		242403, 242404, 242405, 242419, 242420, 242421, 242422, 245528, 245529, 245530, 245531, 245544, 245545, 245546, 245547, 245561, 245562, 245563, 245564, 245578, 245579, 
		245580, 245581, 245594, 245595, 245596, 245597, 245598, 245611, 245612, 245613, 245614, 245628, 245629, 245630, 245631, 245645, 245646, 245647, 245648, 245661, 245662, 
		245663, 245664, 245678, 245679, 245680, 245681, 248586, 248587, 248588, 248589, 248603, 248604, 248605, 248606, 248619, 248620, 248621, 248622, 248623, 248636, 248637, 
		248638, 248639, 248653, 248654, 248655, 248656, 248669, 248670, 248671, 248672, 248673, 248686, 248687, 248688, 248689, 248703, 248704, 248705, 248706, 248720, 248721, 
		248722, 248723, 248736, 248737, 248738, 248739, 248740, 262457, 262458, 262459, 262460, 262474, 262475, 262476, 262477, 262491, 262492, 262493, 262494, 262507, 262508, 
		262509, 262510, 262511, 262524, 262525, 262526, 262527, 262541, 262542, 262543, 262544, 262558, 262559, 262560, 262561, 262574, 262575, 262576, 262577, 262591, 262592, 
		262593, 262594, 262608, 262609, 262610, 262611, 265716, 265717, 265718, 265719, 265733, 265734, 265735, 265736, 265750, 265751, 265752, 265753, 265766, 265767, 265768, 
		265769, 265770, 265783, 265784, 265785, 265786, 265800, 265801, 265802, 265803, 265816, 265817, 265818, 265819, 265820, 265833, 265834, 265835, 265836, 265850, 265851, 
		265852, 265853, 265867, 265868, 265869, 265870, 271766, 271767, 271768, 271769, 271783, 271784, 271785, 271786, 271800, 271801, 271802, 271803, 271816, 271817, 271818, 
		271819, 275042, 275043, 275044, 275045, 275058, 275059, 275060, 275061, 278184, 278185, 278186, 278187, 278200, 278201, 278202, 278203, 278204, 278217, 278218, 278219, 
		278220, 278234, 278235, 278236, 278237, 278251, 278252, 278253, 278254, 278267, 278268, 278269, 278270, 278284, 278285, 278286, 278287, 281309, 281310, 281311, 281312, 
		281326, 281327, 281328, 281329, 281342, 281343, 281344, 281345, 281346, 281359, 281360, 281361, 281362, 281376, 281377, 281378, 281379, 281392, 281393, 281394, 281395, 
		281396, 281409, 281410, 281411, 281412, 281426, 281427, 281428, 281429, 281443, 281444, 281445, 281446, 281459, 281460, 281461, 281462, 281463, 284551, 284552, 284553, 
		284554, 284568, 284569, 284570, 284571, 284585, 284586, 284587, 284588, 284601, 284602, 284603, 284604, 284618, 284619, 284620, 284621, 284635, 284636, 284637, 284638, 
		284651, 284652, 284653, 284654, 284655, 284668, 284669, 284670, 284671, 284685, 284686, 284687, 284688, 284702, 284703, 284704, 284705, 284718, 287710, 287711, 287712, 
		287713, 287727, 287728, 287729, 287730, 287743, 287744, 287745, 287746, 287760, 287761, 287762, 287763, 287777, 287778, 287779, 287780, 287793, 287794, 287795, 287796, 
		287797, 287810, 287811, 287812, 287813, 287827, 287828, 287829, 287830, 287843, 287844, 287845, 287846, 287847, 287860, 287861, 287862, 287863, 287877, 287878, 287879, 
		287880, 290685, 290686, 290687, 290688, 290701, 290702, 290703, 290704, 290705, 290718, 290719, 290720, 290721, 290735, 290736, 290737, 290738, 290751, 290752, 290753, 
		290754, 290755, 290768, 290769, 290770, 290771, 290785, 290786, 290787, 290788, 290802, 290803, 290804, 290805, 290818, 290819, 290820, 290821, 290835, 290836, 290837, 
		290838, 293676, 293677, 293678, 293679, 293693, 293694, 293695, 293696, 293710, 293711, 293712, 293713, 293726, 293727, 293728, 293729, 293743, 293744, 293745, 293746, 
		293760, 293761, 293762, 293763, 293776, 293646, 293659, 293660, 293661, 293662, 293663, 268791, 268792, 268793, 268794, 268808, 268809, 268810, 268811, 268825, 268826, 
		268827, 268828, 268841, 268842, 268843, 268844, 268845, 268858, 268859, 268860, 268861, 268875, 268876, 268877, 268878, 268892, 268893, 268894, 268895, 268908, 268909, 
		268910, 268911, 268925, 268926, 239075, 239082, 239084, 239089, 239091, 239098, 239100, 239107, 239109, 239114, 239116, 239123, 239125, 239132, 239134, 239139, 239141, 
		239148, 242256, 242258, 242265, 242267, 242274, 242276, 242281, 242283, 242290, 242292, 242299, 242301, 242306, 242308, 242315, 242317, 242324, 242326, 242331, 242333, 
		242340, 242342, 242349, 242351, 242356, 242358, 242360, 242365, 242367, 242374, 242376, 242381, 242383, 242385, 242390, 242392, 242399, 242401, 242406, 242408, 242410, 
		242415, 242417, 242424, 245523, 245525, 245527, 245532, 245534, 245541, 245543, 245548, 245550, 245552, 245557, 245559, 245566, 245568, 245573, 245575, 245577, 245582, 
		245584, 245591, 245593, 245600, 245602, 245607, 245609, 245616, 245618, 245625, 245627, 245632, 245634, 245641, 245643, 245650, 245652, 245657, 245659, 245666, 245668, 
		245675, 245677, 245682, 245684, 248583, 248585, 248590, 248592, 248599, 248601, 248608, 248610, 248615, 248617, 248624, 248626, 248633, 248635, 248640, 248642, 248649, 
		248651, 248658, 248660, 248665, 248667, 248674, 248676, 248683, 248685, 248690, 248692, 248694, 248699, 248701, 248708, 248710, 248715, 248717, 248719, 248724, 248726, 
		248733, 248735, 248742, 248744, 248749, 248751, 262453, 262455, 262462, 262464, 262471, 262473, 262478, 262480, 262487, 262489, 262496, 262498, 262503, 262505, 262512, 
		262514, 262521, 262523, 262528, 262530, 262537, 262539, 262546, 262548, 262553, 262555, 262557, 262562, 262564, 262571, 262573, 262578, 262580, 262582, 262587, 262589, 
		262596, 262598, 262603, 262605, 262607, 262612, 262614, 265713, 265715, 265720, 265722, 265724, 265729, 265731, 265738, 265740, 265745, 265747, 265749, 265754, 265756, 
		265763, 265765, 265772, 265774, 265779, 265781, 265788, 265790, 265797, 265799, 265804, 265806, 265813, 265815, 265822, 265824, 265829, 265831, 265838, 265840, 265847, 
		265849, 265854, 265856, 265863, 265865, 265872, 265874, 265879, 265881, 271763, 271765, 271770, 271772, 271779, 271781, 271788, 271790, 271795, 271797, 271799, 271804, 
		271806, 271813, 271815, 271820, 271822, 271824, 275039, 275041, 275046, 275048, 275055, 275057, 278174, 278181, 278183, 278188, 278190, 278197, 278199, 278206, 278208, 
		278213, 278215, 278222, 278224, 278231, 278233, 278238, 278240, 278247, 278249, 278256, 278258, 278263, 278265, 278272, 278274, 278281, 278283, 278288, 278290, 278297, 
		281305, 281307, 281314, 281316, 281321, 281323, 281325, 281330, 281332, 281339, 281341, 281348, 281350, 281355, 281357, 281364, 281366, 281373, 281375, 281380, 281382, 
		281389, 281391, 281398, 281400, 281405, 281407, 281414, 281416, 281423, 281425, 281430, 281432, 281439, 281441, 281448, 281450, 281455, 281457, 281464, 281466, 284549, 
		284556, 284558, 284565, 284567, 284572, 284574, 284581, 284583, 284590, 284592, 284597, 284599, 284606, 284608, 284615, 284617, 284622, 284624, 284631, 284633, 284640, 
		284642, 284647, 284649, 284656, 284658, 284665, 284667, 284672, 284674, 284681, 284683, 284690, 284692, 284697, 284699, 284701, 284706, 284708, 284715, 284717, 287714, 
		287716, 287723, 287725, 287732, 287734, 287739, 287741, 287748, 287750, 287757, 287759, 287764, 287766, 287773, 287775, 287782, 287784, 287789, 287791, 287798, 287800, 
		287807, 287809, 287814, 287816, 287823, 287825, 287832, 287834, 287839, 287841, 287848, 287850, 287857, 287859, 287864, 287866, 287868, 287873, 287875, 290681, 290683, 
		290690, 290692, 290697, 290699, 290706, 290708, 290715, 290717, 290722, 290724, 290731, 290733, 290740, 290742, 290747, 290749, 290756, 290758, 290765, 290767, 290772, 
		290774, 290776, 290781, 290783, 290790, 290792, 290797, 290799, 290801, 290806, 290808, 290815, 290817, 290822, 290824, 290826, 290831, 290833, 290840, 290842, 290849, 
		290851, 293673, 293675, 293680, 293682, 293684, 293689, 293691, 293698, 293700, 293705, 293707, 293709, 293714, 293716, 293723, 293725, 293730, 293732, 293734, 293739, 
		293741, 293748, 293750, 293757, 293759, 293764, 293766, 293773, 293775, 293782, 293784, 293789, 293791, 293798, 293800, 293648, 293650, 293655, 293657, 293664, 293666, 
		268780, 268782, 268787, 268789, 268796, 268798, 268805, 268807, 268812, 268814, 268821, 248629, 248630, 248631, 248644, 248645, 248646, 248647, 248648, 248661, 248662, 
		248663, 248664, 248678, 248679, 248680, 248681, 248695, 248696, 248697, 248698, 248711, 248712, 248713, 248714, 248728, 248729, 248730, 248731, 248745, 248746, 248747, 
		248748, 256202, 256215, 256216, 256217, 256218, 256232, 256233, 256234, 256235, 256249, 256250, 256251, 256252, 256265, 256266, 256267, 256268, 256282, 256283, 256284, 
		256285, 256299, 256300, 256301, 256302, 256315, 256316, 256317, 256318, 256319, 256332, 256333, 256334, 256335, 256349, 256350, 256351, 256352, 256366, 256367, 256368, 
		256369, 259524, 259525, 259526, 259527, 259541, 259542, 259543, 259544, 259558, 259559, 259560, 259561, 259574, 259575, 259576, 259577, 259578, 259591, 259592, 259593, 
		259594, 259608, 259609, 259610, 259611, 259624, 259625, 259626, 259627, 259628, 259641, 259642, 259643, 259644, 259658, 259659, 259660, 259661, 259675, 259676, 259677, 
		259678, 262449, 262450, 262451, 262452, 262466, 262467, 262468, 262469, 262482, 262483, 262484, 262485, 262486, 262499, 262500, 262501, 262502, 262516, 262517, 262518, 
		262519, 262532, 262533, 262534, 262535, 262536, 262549, 262550, 262551, 262552, 262566, 262567, 262568, 262569, 262583, 262584, 262585, 262586, 262599, 262600, 262601, 
		262602, 262616, 262617, 262618, 262619, 265711, 265725, 265726, 265727, 265728, 265741, 265742, 265743, 265744, 265758, 265759, 265760, 265761, 265775, 265776, 265777, 
		265778, 265791, 265792, 265793, 265794, 265795, 265808, 265809, 265810, 265811, 265825, 265826, 265827, 265828, 265842, 265843, 265844, 265845, 265858, 265859, 265860, 
		265861, 265875, 265876, 265877, 265878, 271774, 271775, 271776, 271777, 271778, 271791, 271792, 271793, 271794, 271808, 271809, 271810, 271811, 271825, 275034, 275035, 
		275036, 275037, 275050, 275051, 275052, 275053, 278175, 278176, 278177, 278178, 278179, 278192, 278193, 278194, 278195, 278209, 278210, 278211, 278212, 278225, 278226, 
		278227, 278228, 278229, 278242, 278243, 278244, 278245, 278259, 278260, 278261, 278262, 278276, 278277, 278278, 278279, 278292, 278293, 278294, 278295, 281301, 281302, 
		281303, 281304, 281317, 281318, 281319, 281320, 281334, 281335, 281336, 281337, 281351, 281352, 281353, 281354, 281367, 281368, 281369, 281370, 281371, 281384, 281385, 
		281386, 281387, 281401, 281402, 281403, 281404, 281418, 281419, 281420, 281421, 281434, 281435, 281436, 281437, 281451, 281452, 281453, 281454, 281468, 281469, 281470, 
		281471, 284559, 284560, 284561, 284562, 284563, 284576, 284577, 284578, 284579, 284593, 284594, 284595, 284596, 284610, 284611, 284612, 284613, 284626, 284627, 284628, 
		284629, 284630, 284643, 284644, 284645, 284646, 284660, 284661, 284662, 284663, 284676, 284677, 284678, 284679, 284680, 284693, 284694, 284695, 284696, 284710, 284711, 
		284712, 284713, 287718, 287719, 287720, 287721, 287735, 287736, 287737, 287738, 287752, 287753, 287754, 287755, 287768, 287769, 287770, 287771, 287785, 287786, 287787, 
		287788, 287802, 287803, 287804, 287805, 287818, 287819, 287820, 287821, 287822, 287835, 287836, 287837, 287838, 287852, 287853, 287854, 287855, 287869, 287870, 287871, 
		287872, 290693, 290694, 290695, 290696, 290710, 290711, 290712, 290713, 290726, 290727, 290728, 290729, 290730, 290743, 290744, 290745, 290746, 290760, 290761, 290762, 
		290763, 290777, 290778, 290779, 290780, 290793, 290794, 290795, 290796, 290810, 290811, 290812, 290813, 290827, 290828, 290829, 290830, 290843, 290844, 290845, 290846, 
		290847, 293669, 293670, 293671, 293685, 293686, 293687, 293688, 293701, 293702, 293703, 293704, 293718, 293719, 293720, 293721, 293735, 293736, 293737, 293738, 293751, 
		293752, 293753, 293754, 293755, 293768, 293769, 293770, 293771, 293785, 293786, 293787, 293788, 293801, 293802, 293651, 293652, 293653, 293654, 293668, 268783, 268784, 
		268785, 268786, 268800, 268801, 268802, 268803, 268816, 268817, 268818, 268819, 268820, 268833, 268834, 268835, 268836, 268850, 268851, 268852, 268853, 268866, 268867, 
		268868, 268869, 268870, 268883, 268884, 268885, 268886, 268900, 268901, 268902, 268903, 268917, 268918, 268919, 268920, 268933, 268934, 268935, 245576, 245583, 245585, 
		245590, 245592, 245599, 245601, 245608, 245610, 245615, 245617, 245624, 245626, 245633, 245635, 245640, 245642, 245644, 245649, 245651, 245658, 245660, 245665, 245667, 
		245669, 245674, 245676, 245683, 245685, 248582, 248584, 248591, 248593, 248598, 248600, 248602, 248607, 248609, 248616, 248618, 248625, 248627, 248632, 248634, 248641, 
		248643, 248650, 248652, 248657, 248659, 248666, 248668, 248675, 248677, 248682, 248684, 248691, 248693, 248700, 248702, 248707, 248709, 248716, 248718, 248725, 248727, 
		248732, 248734, 248741, 248743, 248750, 253228, 253230, 253237, 253239, 253246, 253248, 253253, 253255, 253262, 253264, 253271, 253273, 253278, 253280, 253287, 253289, 
		253296, 253298, 253303, 253305, 253312, 253314, 253321, 253323, 253328, 253330, 253337, 253339, 253346, 253348, 253353, 253355, 253362, 253364, 253371, 253373, 253378, 
		253380, 253387, 253389, 259646, 259648, 259655, 259657, 259662, 259664, 259671, 259673, 259680, 259682, 259687, 259689, 262454, 262456, 262461, 262463, 262465, 262470, 
		262472, 262479, 262481, 262488, 262490, 262495, 262497, 262504, 262506, 262513, 262515, 262520, 262522, 262529, 262531, 262538, 262540, 262545, 262547, 262554, 262556, 
		262563, 262565, 262570, 262572, 262579, 262581, 262588, 262590, 262595, 262597, 262604, 262606, 262613, 262615, 265712, 265714, 265721, 265723, 265730, 265732, 265737, 
		265739, 265746, 265748, 265755, 265757, 265762, 265764, 265771, 265773, 265780, 265782, 265787, 265789, 265796, 265798, 265805, 265807, 265812, 265814, 265821, 265823, 
		265830, 265832, 265837, 265839, 265841, 265846, 265848, 265855, 265857, 265862, 265864, 265866, 265871, 265873, 265880, 271762, 271764, 271771, 271773, 271780, 271782, 
		271787, 271789, 271796, 271798, 271805, 271807, 271812, 271814, 271821, 271823, 275038, 275040, 275047, 275049, 275054, 275056, 278180, 278182, 278189, 278191, 278196, 
		278198, 278205, 278207, 278214, 278216, 278221, 278223, 278230, 278232, 278239, 278241, 278246, 278248, 278250, 278255, 278257, 278264, 278266, 278271, 278273, 278275, 
		278280, 278282, 278289, 278291, 278296, 281306, 281308, 281313, 281315, 281322, 281324, 281331, 281333, 281338, 281340, 281347, 281349, 281356, 281358, 281363, 281365, 
		281372, 281374, 281381, 281383, 281388, 281390, 281397, 281399, 281406, 281408, 281413, 281415, 281417, 281422, 281424, 281431, 281433, 281438, 281440, 281442, 281447, 
		281449, 281456, 281458, 281465, 281467, 284548, 284550, 284555, 284557, 284564, 284566, 284573, 284575, 284580, 284582, 284584, 284589, 284591, 284598, 284600, 284605, 
		284607, 284609, 284614, 284616, 284623, 284625, 284632, 284634, 284639, 284641, 284648, 284650, 284657, 284659, 284664, 284666, 284673, 284675, 284682, 284684, 284689, 
		284691, 284698, 284700, 284707, 284709, 284714, 284716, 287715, 287717, 287722, 287724, 287726, 287731, 287733, 287740, 287742, 287747, 287749, 287751, 287756, 287758, 
		287765, 287767, 287772, 287774, 287776, 287781, 287783, 287790, 287792, 287799, 287801, 287806, 287808, 287815, 287817, 287824, 287826, 287831, 287833, 287840, 287842, 
		287849, 287851, 287856, 287858, 287865, 287867, 287874, 287876, 290682, 290684, 290689, 290691, 290698, 290700, 290707, 290709, 290714, 290716, 290723, 290725, 290732, 
		290734, 290739, 290741, 290748, 290750, 290757, 290759, 290764, 290766, 290773, 290775, 290782, 290784, 290789, 290791, 290798, 290800, 290807, 290809, 290814, 290816, 
		290823, 290825, 290832, 290834, 290839, 290841, 290848, 290850, 293672, 293674, 293681, 293683, 293690, 293692, 293697, 293699, 293706, 293708, 293715, 293717, 293722, 
		293724, 293647, 293649, 293656, 293658, 293665, 293667, 268781, 268788, 268790, 268795, 268797, 268799, 268804, 268806, 268813, 268815, 268822, 268824, 268829, 268831, 
		268838, 268840, 268847, 268849, 268854, 268856, 268863, 268865, 268872, 268874, 268879, 268881, 268888, 268890, 268897, 268899, 268904, 268906, 268913, 268915, 268922, 
		268924, 268929, 268931, 268938, 268940, 268947, 268949, 271830, 271832, 271837, 271839, 271846, 271848, 271855, 271857, 271862, 271864, 271871, 271873, 271880, 271882, 
		271887, 271889, 271896, 271898, 268936, 268937, 268950, 271826, 271827, 271828, 271841, 271842, 271843, 271844, 271858, 271859, 271860, 271861, 271875, 271876, 271877, 
		271878, 271891, 271892, 271893, 271894, 271895, 271908, 271909, 271910, 271911, 271925, 271926, 271927, 271928, 275067, 275068, 275069, 275070, 275084, 275085, 275086, 
		275087, 275100, 275101, 275102, 275103, 275117, 275118, 275119, 275120, 275134, 275135, 275136, 275137, 275150, 275151, 275152, 275153, 275154, 275167, 275168, 275169, 
		275170, 275184, 275185, 275186, 275187, 275201, 275202, 275203, 275204, 278309, 278310, 278311, 278312, 278326, 278327, 278328, 278329, 278342, 278343, 278344, 293803, 
		293804, 293805, 296910, 296911, 296912, 296913, 296927, 296928, 296929, 296930, 296943, 296944, 296945, 296946, 296947, 296960, 296961, 296962, 296963, 296977, 296978, 
		296979, 296980, 296994, 296995, 296996, 296997, 297010, 297011, 297012, 297013, 297027, 297028, 297029, 297030, 297044, 297045, 297046, 297047, 297060, 297061, 297062, 
		297063, 297064, 300186, 300187, 300188, 300189, 300202, 300203, 300204, 300205, 300206, 300219, 300220, 300221, 300222, 300236, 300237, 300238, 300239, 300253, 300254, 
		300255, 300256, 300269, 300270, 300271, 300272, 300286, 300287, 300288, 300289, 300303, 300304, 300305, 300306, 300319, 300320, 300321, 300322, 300323, 300336, 300337, 
		300338, 300339, 306770, 306771, 306772, 306773, 306774, 306787, 306788, 306789, 306790, 306804, 306805, 306806, 306807, 306821, 306822, 306823, 306824, 306837, 306838, 
		306839, 306840, 306854, 306855, 306856, 306857, 306871, 306872, 306873, 306874, 306887, 306888, 306889, 306890, 306891, 306904, 306905, 306906, 306907, 306921, 306922, 
		306923, 306924, 309849, 309862, 309863, 309864, 309865, 309879, 309880, 309881, 309882, 309896, 309897, 309898, 309899, 309912, 309913, 309914, 309915, 309929, 309930, 
		309931, 309932, 309946, 309947, 309948, 309949, 309962, 309963, 309964, 309965, 309966, 313726, 313739, 313740, 313741, 313742, 313743, 313756, 313757, 313758, 313759, 
		313773, 313774, 313775, 313776, 313790, 313791, 313792, 313793, 313806, 313807, 313808, 313809, 313823, 313824, 313825, 313826, 313840, 313841, 313842, 313843, 313856, 
		313857, 313858, 313859, 313860, 313873, 313874, 313875, 313876, 313890, 313891, 313892, 313893, 323065, 323066, 323067, 323068, 323082, 323083, 323084, 323085, 323098, 
		323099, 323100, 323101, 323102, 323115, 323116, 323117, 323118, 323132, 323133, 323134, 323135, 323149, 323150, 323151, 323152, 323165, 323166, 323167, 323168, 323182, 
		323183, 323184, 323185, 323199, 323200, 323201, 323202, 323215, 323216, 323217, 323218, 323219, 326123, 326124, 326125, 326126, 326127, 326140, 326141, 326142, 326143, 
		326157, 326158, 326159, 326160, 326174, 326175, 326176, 326177, 326190, 326191, 326192, 326193, 326207, 326208, 326209, 326210, 326224, 326225, 326226, 326227, 326240, 
		326241, 326242, 326243, 326244, 326257, 326258, 316731, 316732, 316733, 316734, 316748, 316749, 316750, 316751, 316764, 316765, 316766, 316767, 316768, 316781, 316782, 
		316783, 316784, 316798, 316799, 316800, 316801, 316815, 316816, 316817, 316818, 316831, 316832, 316833, 316834, 316848, 316849, 316850, 316851, 316865, 316866, 316867, 
		316868, 316881, 316882, 316883, 316884, 316885, 319910, 319923, 319924, 319925, 319926, 319940, 319941, 319942, 319943, 319957, 319958, 319959, 319960, 319973, 319974, 
		319975, 319976, 319990, 319991, 319992, 319993, 320007, 320008, 320009, 320010, 320023, 320024, 320025, 320026, 320027, 320040, 320041, 320042, 320043, 320057, 320058, 
		320059, 320060, 320073, 320074, 320075, 320076, 320077, 309798, 309812, 309813, 309814, 309815, 309829, 309830, 309831, 309832, 309845, 309846, 309847, 309848, 326259, 
		326260, 326274, 326275, 326276, 326277, 329432, 329433, 329434, 329435, 329436, 329449, 329450, 329451, 329452, 329466, 329467, 329468, 329469, 329483, 329484, 329485, 
		329486, 329499, 329500, 329501, 329502, 329516, 329517, 329518, 329519, 329533, 329534, 329535, 329536, 329549, 329550, 329551, 329552, 329553, 329566, 329567, 329568, 
		329569, 329583, 329584, 329585, 329586, 329600, 329601, 332508, 332509, 332510, 332511, 268823, 268830, 268832, 268837, 268839, 268846, 268848, 268855, 268857, 268862, 
		268864, 268871, 268873, 268880, 268882, 268887, 268889, 268891, 268896, 268898, 268905, 268907, 268912, 268914, 268916, 268921, 268923, 268930, 268932, 268939, 268941, 
		268946, 268948, 271829, 271831, 271838, 271840, 271845, 271847, 271849, 271854, 271856, 271863, 271865, 271872, 271874, 271879, 271881, 271888, 271890, 271897, 271899, 
		271904, 271906, 271913, 271915, 271922, 271924, 271929, 271931, 275064, 275066, 275071, 275073, 275080, 275082, 275089, 275091, 275096, 275098, 275105, 275107, 275114, 
		275116, 275121, 275123, 275130, 275132, 275139, 275141, 275146, 275148, 275155, 275157, 275164, 275166, 275171, 275173, 275180, 275182, 275189, 275191, 275196, 275198, 
		275200, 278299, 278306, 278308, 278313, 278315, 278322, 278324, 278331, 278333, 278338, 278340, 293807, 293809, 296906, 296908, 296915, 296917, 296924, 296926, 296931, 
		296933, 296940, 296942, 296949, 296951, 296956, 296958, 296965, 296967, 296974, 296976, 296981, 296983, 296990, 296992, 296999, 297001, 297006, 297008, 297015, 297017, 
		297024, 297026, 297031, 297033, 297040, 297042, 297049, 297051, 297056, 297058, 297065, 297067, 300182, 300184, 300191, 300193, 300198, 300200, 300207, 300209, 300216, 
		300218, 300223, 300225, 300232, 300234, 300241, 300243, 300248, 300250, 300252, 300257, 300259, 300266, 300268, 300273, 300275, 300277, 300282, 300284, 300291, 300293, 
		300298, 300300, 300302, 300307, 300309, 300316, 300318, 300325, 300327, 300332, 300334, 300341, 300343, 300350, 306759, 306761, 306766, 306768, 306775, 306777, 306784, 
		306786, 306791, 306793, 306800, 306802, 306809, 306811, 306816, 306818, 306820, 306825, 306827, 306834, 306836, 306841, 306843, 306845, 306850, 306852, 306859, 306861, 
		306866, 306868, 306870, 306875, 306877, 306884, 306886, 306893, 306895, 306900, 306902, 306909, 306911, 306918, 306920, 306925, 306927, 309851, 309853, 309858, 309860, 
		309867, 309869, 309876, 309878, 309883, 309885, 309892, 309894, 309901, 309903, 309908, 309910, 309917, 309919, 309926, 309928, 309933, 309935, 309942, 309944, 309951, 
		309953, 309958, 309960, 309967, 313727, 313729, 313736, 313738, 313745, 313747, 313752, 313754, 313761, 313763, 313770, 313772, 313777, 313779, 313786, 313788, 313795, 
		313797, 313802, 313804, 313811, 313813, 313820, 313822, 313827, 313829, 313836, 313838, 313845, 313847, 313852, 313854, 313861, 313863, 313870, 313872, 313877, 313879, 
		313881, 313886, 313888, 323062, 323064, 323069, 323071, 323078, 323080, 323087, 323089, 323094, 323096, 323103, 323105, 323112, 323114, 323119, 323121, 323123, 323128, 
		323130, 323137, 323139, 323144, 323146, 323148, 323153, 323155, 323162, 323164, 323169, 323171, 323173, 323178, 323180, 323187, 323189, 323196, 323198, 323203, 323205, 
		323212, 323214, 323221, 323223, 326120, 326122, 326129, 326131, 326136, 326138, 326145, 326147, 326154, 326156, 326161, 326163, 326170, 326172, 326179, 326181, 326186, 
		326188, 326195, 326197, 326204, 326206, 326211, 326213, 326220, 326222, 326229, 326231, 326236, 326238, 326245, 326247, 326254, 326256, 326261, 313895, 316728, 316730, 
		316735, 316737, 316744, 316746, 316753, 316755, 316760, 316762, 316769, 316771, 316778, 316780, 316785, 316787, 316794, 316796, 316803, 316805, 316810, 316812, 316814, 
		316819, 316821, 316828, 316830, 316835, 316837, 316839, 316844, 316846, 316853, 316855, 316862, 316864, 316869, 316871, 316878, 316880, 316887, 316889, 316894, 319911, 
		319913, 319920, 319922, 319927, 319929, 319936, 319938, 319945, 319947, 319952, 319954, 319956, 319961, 319963, 319970, 319972, 319977, 319979, 319981, 319986, 319988, 
		319995, 319997, 320002, 320004, 320006, 320011, 320013, 320020, 320022, 320029, 320031, 320036, 320038, 320045, 320047, 320054, 320056, 320061, 320063, 320070, 320072, 
		320079, 309799, 309801, 309803, 309808, 309810, 309817, 309819, 309826, 309828, 309833, 309835, 309842, 309844, 326263, 326270, 326272, 326279, 326281, 326286, 326288, 
		329437, 329439, 329446, 329448, 329453, 329455, 329457, 329462, 329464, 329471, 329473, 329478, 329480, 329482, 329487, 329489, 329496, 329498, 271905, 271907, 271912, 
		271914, 271916, 271921, 271923, 271930, 271932, 275063, 275065, 275072, 275074, 275079, 275081, 275083, 275088, 275090, 275097, 275099, 275104, 275106, 275108, 275113, 
		275115, 275122, 275124, 275129, 275131, 275133, 275138, 275140, 275147, 275149, 275156, 275158, 275163, 275165, 275172, 275174, 275181, 275183, 275188, 275190, 275197, 
		275199, 278298, 278300, 278305, 278307, 278314, 278316, 278323, 278325, 278330, 278332, 278339, 278341, 293731, 293733, 293740, 293742, 293747, 293749, 293756, 293758, 
		293765, 293767, 293772, 293774, 293781, 293783, 293790, 293792, 293797, 293799, 293806, 293808, 296907, 296909, 296914, 296916, 296923, 296925, 296932, 296934, 296939, 
		296941, 296948, 296950, 296957, 296959, 296964, 296966, 296968, 296973, 296975, 296982, 296984, 296989, 296991, 296993, 296998, 297000, 297007, 297009, 297014, 297016, 
		297018, 297023, 297025, 297032, 297034, 297041, 297043, 297048, 297050, 297057, 297059, 297066, 297068, 297073, 300181, 300183, 300185, 300190, 300192, 300199, 300201, 
		300208, 300210, 300215, 300217, 300224, 300226, 300233, 300235, 300240, 300242, 300249, 300251, 300258, 300260, 300265, 300267, 300274, 300276, 300283, 300285, 300290, 
		300292, 300299, 300301, 300308, 300310, 300315, 300317, 300324, 300326, 300333, 300335, 300340, 300342, 300349, 300351, 306760, 306767, 306769, 306776, 306778, 306783, 
		306785, 306792, 306794, 306801, 306803, 306808, 306810, 306817, 306819, 306826, 306828, 306833, 306835, 306842, 306844, 306851, 306853, 306858, 306860, 306867, 306869, 
		306876, 306878, 306883, 306885, 306892, 306894, 306901, 306903, 306908, 306910, 306917, 306919, 306926, 306928, 309850, 309852, 309859, 309861, 309866, 309868, 309870, 
		309875, 309877, 309884, 309886, 309891, 309893, 309895, 309900, 309902, 309909, 309911, 309916, 309918, 309920, 309925, 309927, 309934, 309936, 309943, 309945, 309950, 
		309952, 309959, 309961, 309968, 313728, 313730, 313735, 313737, 313744, 313746, 313753, 313755, 313760, 313762, 313764, 313769, 313771, 313778, 313780, 313785, 313787, 
		313789, 313794, 313796, 313803, 313805, 313810, 313812, 313814, 313819, 313821, 313828, 313830, 313837, 313839, 313844, 313846, 313853, 313855, 313862, 313864, 313869, 
		313871, 313878, 313880, 313887, 313889, 323056, 323061, 323063, 323070, 323072, 323079, 323081, 323086, 323088, 323095, 323097, 323104, 323106, 323111, 323113, 323120, 
		323122, 323129, 323131, 323136, 323138, 323145, 323147, 323154, 323156, 323161, 323163, 323170, 323172, 323179, 323181, 323186, 323188, 323195, 323197, 323204, 323206, 
		323211, 323213, 323220, 323222, 326119, 326121, 326128, 326130, 326137, 326139, 326144, 326146, 326153, 326155, 326162, 326164, 326169, 326171, 326173, 326178, 326180, 
		313894, 313896, 316727, 316729, 316736, 316738, 316745, 316747, 316752, 316754, 316761, 316763, 316770, 316772, 316777, 316779, 316786, 316788, 316795, 316797, 316802, 
		316804, 316811, 316813, 316820, 316822, 316827, 316829, 316836, 316838, 316845, 316847, 316852, 316854, 316861, 316863, 316870, 316872, 316877, 316879, 316886, 316888, 
		316895, 319912, 319914, 319919, 319921, 319928, 319930, 319937, 319939, 319944, 319946, 319953, 319955, 319962, 319964, 319969, 319971, 319978, 319980, 319987, 319989, 
		319994, 319996, 320003, 320005, 320012, 320014, 320019, 320021, 320028, 320030, 320037, 320039, 320044, 320046, 320053, 320055, 320062, 320064, 320069, 320071, 320078, 
		320080, 309800, 309802, 309809, 309811, 309816, 309818, 309825, 309827, 309834, 309836, 309841, 309843, 326187, 326189, 326194, 326196, 326198, 326203, 326205, 326212, 
		326214, 326219, 326221, 326223, 326228, 326230, 326237, 326239, 326246, 326248, 326253, 326255, 326262, 326264, 326271, 326273, 326278, 326280, 326287, 326289, 329431, 
		329438, 329440, 329445, 329447, 329454, 329456, 329463, 329465, 329470, 329472, 329479, 329481, 329488, 329490, 329495, 329497, 329504, 329506, 329513, 329515, 329520, 
		329522, 329529, 329531, 329538, 329540, 329545, 329547, 329554, 329556, 329563, 329565, 329570, 329572, 329574, 329579, 329581, 329588, 329590, 329595, 329597, 329599, 
		332503, 332505, 332507, 332512, 268927, 268928, 268942, 268943, 268944, 268945, 271833, 271834, 271835, 271836, 271850, 271851, 271852, 271853, 271866, 271867, 271868, 
		271869, 271870, 271883, 271884, 271885, 271886, 271900, 271901, 271902, 271903, 271917, 271918, 271919, 271920, 275062, 275075, 275076, 275077, 275078, 275092, 275093, 
		275094, 275095, 275109, 275110, 275111, 275112, 275125, 275126, 275127, 275128, 275142, 275143, 275144, 275145, 275159, 275160, 275161, 275162, 275175, 275176, 275177, 
		275178, 275179, 275192, 275193, 275194, 275195, 278301, 278302, 278303, 278304, 278317, 278318, 278319, 278320, 278321, 278334, 278335, 278336, 278337, 293777, 293778, 
		293779, 293780, 293793, 293794, 293795, 293796, 293810, 293811, 293812, 293813, 296905, 296918, 296919, 296920, 296921, 296922, 296935, 296936, 296937, 296938, 296952, 
		296953, 296954, 296955, 296969, 296970, 296971, 296972, 296985, 296986, 296987, 296988, 297002, 297003, 297004, 297005, 297019, 297020, 297021, 297022, 297035, 297036, 
		297037, 297038, 297039, 297052, 297053, 297054, 297055, 297069, 297070, 297071, 297072, 300194, 300195, 300196, 300197, 300211, 300212, 300213, 300214, 300227, 300228, 
		300229, 300230, 300231, 300244, 300245, 300246, 300247, 300261, 300262, 300263, 300264, 300278, 300279, 300280, 300281, 300294, 300295, 300296, 300297, 300311, 300312, 
		300313, 300314, 300328, 300329, 300330, 300331, 300344, 300345, 300346, 300347, 300348, 306762, 306763, 306764, 306765, 306779, 306780, 306781, 306782, 306795, 306796, 
		306797, 306798, 306799, 306812, 306813, 306814, 306815, 306829, 306830, 306831, 306832, 306846, 306847, 306848, 306849, 306862, 306863, 306864, 306865, 306879, 306880, 
		306881, 306882, 306896, 306897, 306898, 306899, 306912, 306913, 306914, 306915, 306916, 306929, 309854, 309855, 309856, 309857, 309871, 309872, 309873, 309874, 309887, 
		309888, 309889, 309890, 309904, 309905, 309906, 309907, 309921, 309922, 309923, 309924, 309937, 309938, 309939, 309940, 309941, 309954, 309955, 309956, 309957, 313731, 
		313732, 313733, 313734, 313748, 313749, 313750, 313751, 313765, 313766, 313767, 313768, 313781, 313782, 313783, 313784, 313798, 313799, 313800, 313801, 313815, 313816, 
		313817, 313818, 313831, 313832, 313833, 313834, 313835, 313848, 313849, 313850, 313851, 313865, 313866, 313867, 313868, 313882, 313883, 313884, 313885, 323057, 323058, 
		323059, 323060, 323073, 323074, 323075, 323076, 323077, 323090, 323091, 323092, 323093, 323107, 323108, 323109, 323110, 323124, 323125, 323126, 323127, 323140, 323141, 
		323142, 323143, 323157, 323158, 323159, 323160, 323174, 323175, 323176, 323177, 323190, 323191, 323192, 323193, 323194, 323207, 323208, 323209, 323210, 323224, 323225, 
		323226, 326132, 326133, 326134, 326135, 326148, 326149, 326150, 326151, 326152, 326165, 326166, 326167, 326168, 326182, 326183, 326184, 326185, 326199, 326200, 326201, 
		326202, 326215, 326216, 326217, 326218, 326232, 326233, 326234, 326235, 326249, 326250, 326251, 316725, 316726, 316739, 316740, 316741, 316742, 316743, 316756, 316757, 
		316758, 316759, 316773, 316774, 316775, 316776, 316789, 316790, 316791, 316792, 316793, 316806, 316807, 316808, 316809, 316823, 316824, 316825, 316826, 316840, 316841, 
		316842, 316843, 316856, 316857, 316858, 316859, 316860, 316873, 316874, 316875, 316876, 316890, 316891, 316892, 316893, 319915, 319916, 319917, 319918, 319931, 319932, 
		319933, 319934, 319935, 319948, 319949, 319950, 319951, 319965, 319966, 319967, 319968, 319982, 319983, 319984, 319985, 319998, 319999, 320000, 320001, 320015, 320016, 
		320017, 320018, 320032, 320033, 320034, 320035, 320048, 320049, 320050, 320051, 320052, 320065, 320066, 320067, 320068, 296903, 296904, 309804, 309805, 309806, 309807, 
		309820, 309821, 309822, 309823, 309824, 309837, 309838, 309839, 309840, 326252, 326265, 326266, 326267, 326268, 326269, 326282, 326283, 326284, 326285, 329441, 329442, 
		329443, 329444, 329458, 329459, 329460, 329461, 329474, 329475, 329476, 329477, 329491, 329492, 329493, 329494, 329508, 329509, 329510, 329511, 329524, 329525, 329526, 
		329527, 329528, 329541, 329542, 329543, 329544, 329558, 329559, 329560, 329561, 329575, 332514, 332521, 332523, 332528, 332530, 332532, 332537, 332539, 332546, 332548, 
		332555, 332557, 332562, 332564, 332571, 332573, 332580, 332582, 332587, 332589, 332596, 332598, 332605, 332607, 337596, 337601, 337603, 337610, 337612, 337617, 337619, 
		337621, 337626, 337628, 337635, 337637, 337642, 337644, 337646, 337651, 337653, 337660, 337662, 337669, 337671, 337676, 337678, 337685, 337687, 337694, 337696, 337701, 
		337703, 337710, 337712, 337719, 337721, 337726, 337728, 337735, 337737, 337744, 337746, 337751, 337753, 337760, 337762, 340659, 340661, 340668, 340670, 340677, 340679, 
		340684, 340686, 340693, 340695, 340702, 340704, 340709, 340711, 340718, 340720, 340727, 340729, 340734, 340736, 340743, 340745, 340752, 340754, 340759, 340761, 340763, 
		340768, 340770, 340777, 340779, 340784, 340786, 340788, 340793, 340795, 340802, 340804, 340809, 340811, 340813, 340818, 340820, 340827, 340829, 344369, 344371, 344378, 
		344380, 344387, 344389, 344394, 344396, 344403, 344405, 344412, 344414, 344419, 344421, 344423, 344428, 344430, 344437, 344439, 344444, 344446, 344448, 344453, 344455, 
		344462, 344464, 344471, 344473, 344478, 344480, 344487, 344489, 344496, 344498, 344503, 344505, 344512, 344514, 344521, 344523, 344528, 344530, 347511, 347513, 347520, 
		347522, 347529, 347531, 347536, 347538, 347545, 347547, 347554, 347556, 347561, 347563, 347570, 347572, 347579, 347581, 347586, 347588, 347590, 347595, 347597, 347604, 
		347606, 347611, 347613, 347615, 347620, 347622, 347629, 347631, 347638, 347640, 347645, 347647, 347654, 347656, 347663, 347665, 347670, 347672, 347679, 347681, 350646, 
		350648, 350653, 350655, 350662, 350664, 350671, 350673, 350678, 350680, 350687, 350689, 350696, 350698, 350703, 350705, 350712, 350714, 350721, 350723, 350728, 350730, 
		350732, 350737, 350739, 350746, 350748, 350753, 350755, 350757, 350762, 350764, 350771, 350773, 350778, 350780, 350782, 350787, 350789, 350796, 350798, 350805, 350807, 
		350812, 350814, 353820, 353822, 353829, 353831, 353838, 353840, 353845, 353847, 353854, 353856, 353863, 353865, 353870, 353872, 353879, 353881, 353888, 353890, 353895, 
		353897, 353899, 353904, 353906, 353913, 353915, 353920, 353922, 353924, 353929, 353931, 353938, 353940, 353945, 353947, 353949, 353954, 353956, 353963, 353965, 353972, 
		353974, 353979, 353981, 353988, 356971, 356973, 356980, 356982, 356987, 356989, 356996, 356998, 357005, 357007, 357012, 357014, 357021, 357023, 357030, 357032, 357037, 
		357039, 357046, 357048, 357055, 357057, 357062, 357064, 357066, 357071, 357073, 357080, 357082, 357087, 357089, 357091, 357096, 357098, 357105, 357107, 357112, 357114, 
		357116, 357121, 357123, 357130, 357132, 360122, 360124, 360129, 360131, 360138, 360140, 360147, 360149, 360154, 360156, 360163, 360165, 360172, 360174, 360179, 360181, 
		360188, 360190, 360197, 360199, 360204, 360206, 360213, 360215, 360222, 360224, 360229, 360231, 360233, 360238, 360240, 360247, 360249, 360254, 360256, 360258, 360263, 
		360265, 360272, 360274, 360281, 360283, 360288, 360290, 332446, 332448, 332453, 332455, 332462, 332464, 332471, 332473, 332478, 332480, 332487, 332489, 332496, 332498, 
		371184, 371186, 371188, 371193, 371195, 371202, 371204, 371209, 371211, 371213, 371218, 371220, 371227, 371229, 371236, 371238, 371243, 371245, 371252, 371254, 371261, 
		371263, 371268, 371270, 371277, 371279, 371286, 371288, 371293, 371295, 371302, 371304, 371311, 371313, 371318, 371320, 371327, 371329, 387480, 387482, 387487, 387489, 
		387491, 387496, 387498, 387505, 387507, 387512, 389952, 389954, 389956, 389961, 389963, 389970, 389972, 389979, 389981, 389986, 389988, 389995, 389997, 390004, 390006, 
		390011, 390013, 390020, 390022, 390029, 390031, 390036, 390038, 390045, 390047, 390054, 390056, 390061, 390063, 390070, 390072, 390079, 390081, 390086, 390088, 371336, 
		371338, 371343, 371345, 371352, 371354, 381807, 381814, 381816, 381823, 381825, 381830, 381832, 381839, 381841, 381848, 384658, 384663, 384665, 384672, 384674, 384681, 
		384683, 384688, 384690, 384697, 384699, 384706, 384708, 384713, 384715, 384722, 384724, 384731, 384733, 384738, 384740, 384747, 384749, 384756, 329576, 329577, 329578, 
		329591, 329592, 329593, 329594, 332501, 332502, 332516, 332517, 332518, 332519, 332533, 332534, 332535, 332536, 332549, 332550, 332551, 332552, 332553, 332566, 332567, 
		332568, 332569, 332583, 332584, 332585, 332586, 332599, 332600, 332601, 332602, 332603, 337597, 337598, 337599, 337600, 337613, 337614, 337615, 337616, 337630, 337631, 
		337632, 337633, 337647, 337648, 337649, 337650, 337663, 337664, 337665, 337666, 337667, 337680, 337681, 337682, 337683, 337697, 337698, 337699, 337700, 337713, 337714, 
		337715, 337716, 337717, 337730, 337731, 337732, 337733, 337747, 337748, 337749, 337750, 337764, 337765, 340672, 340673, 340674, 340675, 340688, 340689, 340690, 340691, 
		340705, 340706, 340707, 340708, 340722, 340723, 340724, 340725, 340738, 340739, 340740, 340741, 340742, 340755, 340756, 340757, 340758, 340772, 340773, 340774, 340775, 
		340789, 340790, 340791, 340792, 340805, 340806, 340807, 340808, 340822, 340823, 340824, 340825, 344366, 344367, 344368, 344382, 344383, 344384, 344385, 344398, 344399, 
		344400, 344401, 344402, 344415, 344416, 344417, 344418, 344432, 344433, 344434, 344435, 344449, 344450, 344451, 344452, 344465, 344466, 344467, 344468, 344469, 344482, 
		344483, 344484, 344485, 344499, 344500, 344501, 344502, 344515, 344516, 344517, 344518, 344519, 344532, 344533, 344534, 344535, 347524, 347525, 347526, 347527, 347540, 
		347541, 347542, 347543, 347544, 347557, 347558, 347559, 347560, 347574, 347575, 347576, 347577, 347591, 347592, 347593, 347594, 347607, 347608, 347609, 347610, 347624, 
		347625, 347626, 347627, 347641, 347642, 347643, 347644, 347657, 347658, 347659, 347660, 347661, 347674, 347675, 347676, 347677, 350649, 350650, 350651, 350652, 350666, 
		350667, 350668, 350669, 350682, 350683, 350684, 350685, 350686, 350699, 350700, 350701, 350702, 350716, 350717, 350718, 350719, 350733, 350734, 350735, 350736, 350749, 
		350750, 350751, 350752, 350766, 350767, 350768, 350769, 350783, 350784, 350785, 350786, 350799, 350800, 350801, 350802, 350803, 353824, 353825, 353826, 353827, 353841, 
		353842, 353843, 353844, 353858, 353859, 353860, 353861, 353874, 353875, 353876, 353877, 353878, 353891, 353892, 353893, 353894, 353908, 353909, 353910, 353911, 353925, 
		353926, 353927, 353928, 353941, 353942, 353943, 353944, 353958, 353959, 353960, 353961, 353975, 353976, 353977, 353978, 356966, 356967, 356968, 356969, 356983, 356984, 
		356985, 356986, 357000, 357001, 357002, 357003, 357016, 357017, 357018, 357019, 357020, 357033, 357034, 357035, 357036, 357050, 357051, 357052, 357053, 357067, 357068, 
		357069, 357070, 357083, 357084, 357085, 357086, 357100, 357101, 357102, 357103, 357117, 357118, 357119, 357120, 357133, 357134, 357135, 360125, 360126, 360127, 360128, 
		360142, 360143, 360144, 360145, 360158, 360159, 360160, 360161, 360162, 360175, 360176, 360177, 360178, 360192, 360193, 360194, 360195, 360208, 360209, 360210, 360211, 
		360212, 360225, 360226, 360227, 360228, 360242, 360243, 360244, 360245, 360259, 360260, 360261, 360262, 360275, 360276, 360277, 360278, 360279, 360292, 332449, 332450, 
		332451, 332452, 332466, 332467, 332468, 332469, 332482, 332483, 332484, 332485, 332486, 332499, 332500, 371189, 371190, 371191, 371192, 371205, 371206, 371207, 371208, 
		371222, 371223, 371224, 371225, 371239, 371240, 371241, 371242, 371255, 371256, 371257, 371258, 371259, 371272, 371273, 371274, 371275, 371289, 371290, 371291, 371292, 
		371306, 371307, 371308, 371309, 371322, 371323, 371324, 371325, 387483, 387484, 387485, 387486, 387500, 387501, 387502, 387503, 389957, 389958, 389959, 389960, 389973, 
		389974, 389975, 389976, 389977, 389990, 389991, 389992, 389993, 390007, 390008, 390009, 390010, 390024, 390025, 390026, 390027, 390040, 390041, 390042, 390043, 390057, 
		390058, 390059, 390060, 390074, 390075, 390076, 390077, 390090, 371339, 371340, 371341, 371342, 381818, 381819, 381820, 381821, 381834, 381835, 381836, 381837, 381838, 
		384659, 384660, 384661, 384662, 384676, 384677, 384678, 384679, 384692, 384693, 384694, 384695, 384709, 384710, 384711, 384712, 384726, 384727, 384728, 384729, 384742, 
		384743, 384744, 384745, 384746, 332524, 332525, 332526, 332527, 332541, 332542, 332543, 332544, 332558, 332559, 332560, 332561, 332574, 332575, 332576, 332577, 332578, 
		332591, 332592, 332593, 332594, 332608, 332609, 332610, 337605, 337606, 337607, 337608, 337622, 337623, 337624, 337625, 337638, 337639, 337640, 337641, 337655, 337656, 
		337657, 337658, 337672, 337673, 337674, 337675, 337688, 337689, 337690, 337691, 337692, 337705, 337706, 337707, 337708, 337722, 337723, 337724, 337725, 337739, 337740, 
		337741, 337742, 337755, 337756, 337757, 337758, 340663, 340664, 340665, 340666, 340680, 340681, 340682, 340683, 340697, 340698, 340699, 340700, 340713, 340714, 340715, 
		340716, 340717, 340730, 340731, 340732, 340733, 340747, 340748, 340749, 340750, 340764, 340765, 340766, 340767, 340780, 340781, 340782, 340783, 340797, 340798, 340799, 
		340800, 340814, 340815, 340816, 340817, 344373, 344374, 344375, 344376, 344377, 344390, 344391, 344392, 344393, 344407, 344408, 344409, 344410, 344424, 344425, 344426, 
		344427, 344440, 344441, 344442, 344443, 344457, 344458, 344459, 344460, 344474, 344475, 344476, 344477, 344490, 344491, 344492, 344493, 344494, 344507, 344508, 344509, 
		344510, 344524, 344525, 344526, 344527, 347515, 347516, 347517, 347518, 347519, 347532, 347533, 347534, 347535, 347549, 347550, 347551, 347552, 347565, 347566, 347567, 
		347568, 347569, 347582, 347583, 347584, 347585, 347599, 347600, 347601, 347602, 347616, 347617, 347618, 347619, 347632, 347633, 347634, 347635, 347636, 347649, 347650, 
		347651, 347652, 347666, 347667, 347668, 347669, 350644, 350657, 350658, 350659, 350660, 350674, 350675, 350676, 350677, 350691, 350692, 350693, 350694, 350707, 350708, 
		350709, 350710, 350711, 350724, 350725, 350726, 350727, 350741, 350742, 350743, 350744, 350758, 350759, 350760, 350761, 350774, 350775, 350776, 350777, 350791, 350792, 
		350793, 350794, 350808, 350809, 350810, 350811, 353818, 353819, 353833, 353834, 353835, 353836, 353849, 353850, 353851, 353852, 353853, 353866, 353867, 353868, 353869, 
		353883, 353884, 353885, 353886, 353900, 353901, 353902, 353903, 353916, 353917, 353918, 353919, 353933, 353934, 353935, 353936, 353950, 353951, 353952, 353953, 353966, 
		353967, 353968, 353969, 353970, 353983, 353984, 353985, 353986, 356975, 356976, 356977, 356978, 356991, 356992, 356993, 356994, 356995, 357008, 357009, 357010, 357011, 
		357025, 357026, 357027, 357028, 357041, 357042, 357043, 357044, 357045, 357058, 357059, 357060, 357061, 357075, 357076, 357077, 357078, 357092, 357093, 357094, 357095, 
		357108, 357109, 357110, 357111, 357125, 357126, 357127, 357128, 360133, 360134, 360135, 360136, 360150, 360151, 360152, 360153, 360167, 360168, 360169, 360170, 360183, 
		360184, 360185, 360186, 360187, 360200, 360201, 360202, 360203, 360217, 360218, 360219, 360220, 360234, 360235, 360236, 360237, 360250, 360251, 360252, 360253, 360267, 
		360268, 360269, 360270, 360284, 360285, 360286, 360287, 332441, 332442, 332443, 332444, 332457, 332458, 332459, 332460, 332461, 332474, 332475, 332476, 332477, 332491, 
		332492, 332493, 332494, 371197, 371198, 371199, 371200, 371214, 371215, 371216, 371217, 371230, 371231, 371232, 371233, 371234, 371247, 371248, 371249, 371250, 371264, 
		371265, 371266, 371267, 371280, 371281, 371282, 371283, 371284, 371297, 371298, 371299, 371300, 371314, 371315, 371316, 371317, 371331, 371332, 387475, 387476, 387477, 
		387478, 387492, 387493, 387494, 387495, 387508, 387509, 387510, 387511, 389948, 389949, 389950, 389951, 389965, 389966, 389967, 389968, 389982, 389983, 389984, 389985, 
		389998, 389999, 390000, 390001, 390002, 390015, 390016, 390017, 390018, 390032, 390033, 390034, 390035, 390049, 390050, 390051, 390052, 390065, 390066, 390067, 390068, 
		390082, 390083, 390084, 390085, 371333, 371334, 371347, 371348, 371349, 371350, 371351, 381809, 381810, 381811, 381812, 381813, 381826, 381827, 381828, 381829, 381843, 
		381844, 381845, 381846, 384667, 384668, 384669, 384670, 384684, 384685, 384686, 384687, 384701, 384702, 384703, 384704, 384717, 384718, 384719, 384720, 384734, 384735, 
		384736, 384737, 384751, 384752, 384753, 384754, 384767, 384768, 384769, 384770, 384771, 329503, 329505, 329507, 329512, 329514, 329521, 329523, 329530, 329532, 329537, 
		329539, 329546, 329548, 329555, 329557, 329562, 329564, 329571, 329573, 329580, 329582, 329587, 329589, 329596, 329598, 332504, 332506, 332513, 332515, 332520, 332522, 
		332529, 332531, 332538, 332540, 332545, 332547, 332554, 332556, 332563, 332565, 332570, 332572, 332579, 332581, 332588, 332590, 332595, 332597, 332604, 332606, 337595, 
		337602, 337604, 337609, 337611, 337618, 337620, 337627, 337629, 337634, 337636, 337643, 337645, 337652, 337654, 337659, 337661, 337668, 337670, 337677, 337679, 337684, 
		337686, 337693, 337695, 337702, 337704, 337709, 337711, 337718, 337720, 337727, 337729, 337734, 337736, 337738, 337743, 337745, 337752, 337754, 337759, 337761, 337763, 
		340660, 340662, 340667, 340669, 340671, 340676, 340678, 340685, 340687, 340692, 340694, 340696, 340701, 340703, 340710, 340712, 340719, 340721, 340726, 340728, 340735, 
		340737, 340744, 340746, 340751, 340753, 340760, 340762, 340769, 340771, 340776, 340778, 340785, 340787, 340794, 340796, 340801, 340803, 340810, 340812, 340819, 340821, 
		340826, 340828, 344370, 344372, 344379, 344381, 344386, 344388, 344395, 344397, 344404, 344406, 344411, 344413, 344420, 344422, 344429, 344431, 344436, 344438, 344445, 
		344447, 344454, 344456, 344461, 344463, 344470, 344472, 344479, 344481, 344486, 344488, 344495, 344497, 344504, 344506, 344511, 344513, 344520, 344522, 344529, 344531, 
		344536, 347512, 347514, 347521, 347523, 347528, 347530, 347537, 347539, 347546, 347548, 347553, 347555, 347562, 347564, 347571, 347573, 347578, 347580, 347587, 347589, 
		347596, 347598, 347603, 347605, 347612, 347614, 347621, 347623, 347628, 347630, 347637, 347639, 347646, 347648, 347653, 347655, 347662, 347664, 347671, 347673, 347678, 
		347680, 350645, 350647, 350654, 350656, 350661, 350663, 350665, 350670, 350672, 350679, 350681, 350688, 350690, 350695, 350697, 350704, 350706, 350713, 350715, 350720, 
		350722, 350729, 350731, 350738, 350740, 350745, 350747, 350754, 350756, 350763, 350765, 350770, 350772, 350779, 350781, 350788, 350790, 350795, 350797, 350804, 350806, 
		350813, 353821, 353823, 353828, 353830, 353832, 353837, 353839, 353846, 353848, 353855, 353857, 353862, 353864, 353871, 353873, 353880, 353882, 353887, 353889, 353896, 
		353898, 353905, 353907, 353912, 353914, 353921, 353923, 353930, 353932, 353937, 353939, 353946, 353948, 353955, 353957, 353962, 353964, 353971, 353973, 353980, 353982, 
		353987, 356965, 356970, 356972, 356974, 356979, 356981, 356988, 356990, 356997, 356999, 357004, 357006, 357013, 357015, 357022, 357024, 357029, 357031, 357038, 357040, 
		357047, 357049, 357054, 357056, 357063, 357065, 357072, 357074, 357079, 357081, 357088, 357090, 357097, 357099, 357104, 357106, 357113, 357115, 357122, 357124, 357129, 
		357131, 360123, 360130, 360132, 360137, 360139, 360141, 360146, 360148, 360155, 360157, 360164, 360166, 360171, 360173, 360180, 360182, 360189, 360191, 360196, 360198, 
		360205, 360207, 360214, 360216, 360221, 360223, 360230, 360232, 360239, 360241, 360246, 360248, 360255, 360257, 360264, 360266, 360271, 360273, 332440, 332445, 332447, 
		332454, 332456, 332463, 332465, 332470, 332472, 332479, 332481, 332488, 332490, 332495, 332497, 371185, 371187, 371194, 371196, 371201, 371203, 371210, 371212, 371219, 
		371221, 371226, 371228, 371235, 371237, 371244, 371246, 371251, 371253, 371260, 371262, 371269, 371271, 371276, 371278, 371285, 371287, 371294, 371296, 371301, 371303, 
		371305, 371310, 371312, 371319, 371321, 371326, 371328, 371330, 387474, 387479, 387481, 387488, 387490, 387497, 387499, 387504, 387506, 389953, 389955, 389962, 389964, 
		389969, 389971, 389978, 389980, 389987, 389989, 389994, 389996, 390003, 390005, 390012, 390014, 390019, 390021, 390023, 390028, 390030, 390037, 390039, 390044, 390046, 
		390048, 390053, 390055, 390062, 390064, 390069, 390071, 390073, 390078, 390080, 390087, 390089, 360280, 360282, 360289, 360291, 363363, 363365, 363372, 363374, 363381, 
		363383, 363388, 363390, 363397, 363399, 363406, 363408, 363413, 363415, 363422, 363424, 363431, 363433, 363438, 363440, 363447, 363449, 363456, 363458, 363463, 363465, 
		363472, 363474, 363481, 363483, 363488, 363490, 363497, 363499, 363506, 363508, 363513, 363515, 363517, 363522, 363524, 366539, 366541, 366548, 366550, 366555, 366557, 
		366564, 366566, 366573, 366575, 366580, 366582, 366589, 366591, 366598, 366600, 366605, 366607, 366614, 366616, 366623, 366625, 366630, 366632, 366639, 366641, 366648, 
		366650, 366655, 366657, 366664, 366666, 366673, 366675, 366680, 366682, 366684, 366689, 366691, 366698, 366700, 376301, 376308, 376310, 376315, 376317, 376324, 376326, 
		376333, 376335, 376340, 376342, 376349, 376351, 376358, 376360, 376365, 376367, 376374, 376376, 376383, 376385, 376390, 376392, 376394, 376399, 376401, 376408, 376410, 
		376415, 376417, 376419, 376424, 376426, 376433, 376435, 376440, 376442, 376444, 376449, 376451, 376458, 376460, 379057, 379059, 379064, 379066, 379073, 379075, 379082, 
		379084, 379089, 379091, 379093, 379098, 379100, 379107, 379109, 379114, 379116, 379118, 379123, 379125, 379132, 379134, 379141, 379143, 379148, 379150, 379157, 379159, 
		379166, 379168, 379173, 379175, 379182, 379184, 379191, 379193, 379198, 379200, 379207, 379209, 381856, 381858, 381865, 381867, 381872, 381874, 381881, 381883, 381890, 
		381892, 381897, 381899, 381906, 381908, 381915, 381917, 381922, 381924, 381931, 381933, 381940, 381942, 381947, 381949, 381956, 381958, 381965, 371335, 371337, 371344, 
		371346, 371353, 381806, 381808, 381815, 381817, 381822, 381824, 381831, 381833, 381840, 381842, 381847, 381849, 384664, 384666, 384671, 384673, 384675, 384680, 384682, 
		384689, 384691, 384696, 384698, 384700, 384705, 384707, 384714, 384716, 384721, 384723, 384725, 384730, 384732, 384739, 384741, 384748, 384750, 384755, 384757, 384764, 
		384766, 384773, 384775, 384780, 384782, 384789, 384791, 384798, 384800, 384805, 384807, 384814, 387513, 387515, 387522, 387524, 387529, 387531, 387538, 387540, 387547, 
		387549, 387554, 387556, 387563, 387565, 387572, 387574, 387579, 387581, 387588, 387590, 387597, 387599, 387604, 387606, 387608, 387613, 387615, 387622, 387624, 387629, 
		387631, 384759, 384760, 384761, 384762, 384776, 384777, 384778, 384779, 384793, 384794, 384795, 384796, 384809, 384810, 384811, 384812, 387517, 387518, 387519, 387520, 
		387533, 387534, 387535, 387536, 387537, 387550, 387551, 387552, 387553, 387567, 387568, 387569, 387570, 387583, 387584, 387585, 387586, 387587, 387600, 387601, 387602, 
		387603, 387617, 387618, 387619, 387620, 363367, 363368, 363369, 363370, 363384, 363385, 363386, 363387, 363401, 363402, 363403, 363404, 363417, 363418, 363419, 363420, 
		363434, 363435, 363436, 363437, 363451, 363452, 363453, 363454, 363467, 363468, 363469, 363470, 363471, 363484, 363485, 363486, 363487, 363501, 363502, 363503, 363504, 
		363518, 363519, 363520, 363521, 366543, 366544, 366545, 366546, 366559, 366560, 366561, 366562, 366576, 366577, 366578, 366579, 366593, 366594, 366595, 366596, 366609, 
		366610, 366611, 366612, 366613, 366626, 366627, 366628, 366629, 366643, 366644, 366645, 366646, 366659, 366660, 366661, 366662, 366663, 366676, 366677, 366678, 366679, 
		366693, 366694, 366695, 366696, 376303, 376304, 376305, 376306, 376319, 376320, 376321, 376322, 376336, 376337, 376338, 376339, 376353, 376354, 376355, 376356, 376369, 
		376370, 376371, 376372, 376373, 376386, 376387, 376388, 376389, 376403, 376404, 376405, 376406, 376420, 376421, 376422, 376423, 376436, 376437, 376438, 376439, 376453, 
		376454, 376455, 376456, 379060, 379061, 379062, 379063, 379077, 379078, 379079, 379080, 379094, 379095, 379096, 379097, 379110, 379111, 379112, 379113, 379127, 379128, 
		379129, 379130, 379144, 379145, 379146, 379147, 379160, 379161, 379162, 379163, 379164, 379177, 379178, 379179, 379180, 379194, 379195, 379196, 379197, 379211, 379212, 
		379213, 379214, 381851, 381852, 381853, 381854, 381868, 381869, 381870, 381871, 381885, 381886, 381887, 381888, 381901, 381902, 381903, 381904, 381918, 381919, 381920, 
		381921, 381935, 381936, 381937, 381938, 381951, 381952, 381953, 381954, 381955, 391545, 391530, 384784, 384785, 384786, 384787, 384801, 384802, 384803, 384804, 387525, 
		387526, 387527, 387528, 387542, 387543, 387544, 387545, 387558, 387559, 387560, 387561, 387562, 387575, 387576, 387577, 387578, 387592, 387593, 387594, 387595, 387609, 
		387610, 387611, 387612, 387625, 387626, 387627, 387628, 363359, 363360, 363361, 363362, 363375, 363376, 363377, 363378, 363379, 363392, 363393, 363394, 363395, 363409, 
		363410, 363411, 363412, 363426, 363427, 363428, 363429, 363442, 363443, 363444, 363445, 363446, 363459, 363460, 363461, 363462, 363476, 363477, 363478, 363479, 363492, 
		363493, 363494, 363495, 363496, 363509, 363510, 363511, 363512, 363526, 363527, 363528, 363529, 366534, 366535, 366536, 366537, 366551, 366552, 366553, 366554, 366568, 
		366569, 366570, 366571, 366584, 366585, 366586, 366587, 366601, 366602, 366603, 366604, 366618, 366619, 366620, 366621, 366634, 366635, 366636, 366637, 366638, 366651, 
		366652, 366653, 366654, 366668, 366669, 366670, 366671, 366685, 366686, 366687, 366688, 366701, 366702, 366703, 376311, 376312, 376313, 376314, 376328, 376329, 376330, 
		376331, 376344, 376345, 376346, 376347, 376348, 376361, 376362, 376363, 376364, 376378, 376379, 376380, 376381, 376395, 376396, 376397, 376398, 376411, 376412, 376413, 
		376414, 376428, 376429, 376430, 376431, 376445, 376446, 376447, 376448, 376461, 376462, 376463, 376464, 376465, 379052, 379053, 379054, 379055, 379068, 379069, 379070, 
		379071, 379072, 379085, 379086, 379087, 379088, 379102, 379103, 379104, 379105, 379119, 379120, 379121, 379122, 379135, 379136, 379137, 379138, 379139, 379152, 379153, 
		379154, 379155, 379169, 379170, 379171, 379172, 379185, 379186, 379187, 379188, 379189, 379202, 379203, 379204, 379205, 381859, 381860, 381861, 381862, 381863, 381876, 
		381877, 381878, 381879, 381893, 381894, 381895, 381896, 381910, 381911, 381912, 381913, 381926, 381927, 381928, 381929, 381930, 381943, 381944, 381945, 381946, 381960, 
		381961, 381962, 381963, 390938, 384758, 384763, 384765, 384772, 384774, 384781, 384783, 384788, 384790, 384792, 384797, 384799, 384806, 384808, 384813, 384815, 387514, 
		387516, 387521, 387523, 387530, 387532, 387539, 387541, 387546, 387548, 387555, 387557, 387564, 387566, 387571, 387573, 387580, 387582, 387589, 387591, 387596, 387598, 
		387605, 387607, 387614, 387616, 387621, 387623, 387630, 363364, 363366, 363371, 363373, 363380, 363382, 363389, 363391, 363396, 363398, 363400, 363405, 363407, 363414, 
		363416, 363421, 363423, 363425, 363430, 363432, 363439, 363441, 363448, 363450, 363455, 363457, 363464, 363466, 363473, 363475, 363480, 363482, 363489, 363491, 363498, 
		363500, 363505, 363507, 363514, 363516, 363523, 363525, 366533, 366538, 366540, 366542, 366547, 366549, 366556, 366558, 366563, 366565, 366567, 366572, 366574, 366581, 
		366583, 366588, 366590, 366592, 366597, 366599, 366606, 366608, 366615, 366617, 366622, 366624, 366631, 366633, 366640, 366642, 366647, 366649, 366656, 366658, 366665, 
		366667, 366672, 366674, 366681, 366683, 366690, 366692, 366697, 366699, 376300, 376302, 376307, 376309, 376316, 376318, 376323, 376325, 376327, 376332, 376334, 376341, 
		376343, 376350, 376352, 376357, 376359, 376366, 376368, 376375, 376377, 376382, 376384, 376391, 376393, 376400, 376402, 376407, 376409, 376416, 376418, 376425, 376427, 
		376432, 376434, 376441, 376443, 376450, 376452, 376457, 376459, 379051, 379056, 379058, 379065, 379067, 379074, 379076, 379081, 379083, 379090, 379092, 379099, 379101, 
		379106, 379108, 379115, 379117, 379124, 379126, 379131, 379133, 379140, 379142, 379149, 379151, 379156, 379158, 379165, 379167, 379174, 379176, 379181, 379183, 379190, 
		379192, 379199, 379201, 379206, 379208, 379210, 381850, 381855, 381857, 381864, 381866, 381873, 381875, 381880, 381882, 381884, 381889, 381891, 381898, 381900, 381905, 
		381907, 381909, 381914, 381916, 381923, 381925, 381932, 381934, 381939, 381941, 381948, 381950, 381957, 381959, 381964, 381966
	)


 Query Plan

 Operators

 Query Plan – Constant Scan

 

 Query Plan – Sort

 

 Query Plan – Merge Join

 

 

Explanation

  1. Constant Scan
    • Description :- Scan an internal table of constants
    • Actual Number of Rows :-19381
    • Estimated Numbers of Rows :- 19381
    • Estimated CPU Cost :- 0.0193812 (0%)
    • Estimated Subtree Cost :- 0.0193812 (0%)
    • Parallel :- False
  2. Sort
    • Description :- Sort the input
    • Actual Number of Rows :-19381
    • Estimated Numbers of Rows :- 19381
    • Estimated CPU Cost :-1.26708
    • Estimated I/O Cost :- 0.0112613
    • Estimated Operator Cost :- 1.2783488 (18%)
    • Estimated Subtree Cost :- 1.29773
    • Logical Operation :- Sort
    • Parallel :- False
  3. Clustered Index Scan
    • Actual Number of Rows :- 391546
    • Estimated Number of Rows :- 1000000
    • Estimated CPU Cost :-1.10016
    • Estimated I/O Cost :- 2.48016
    • Estimated SubTree Cost :- 3.58032
    • Logical Operator :- Clustered Index Scan
    • Number of Rows Read :- 391546
    • Physical Operation :- Clustered Index Scan
  4. Merge Join
    • Actual Number of Rows :- 19381
    • Estimated Number of Rows :- 19381
    • Estimated CPU Cost :- 2.14824
    • Estimated I/O Cost :- 0
    • Estimated Operator Cost :- 2.14824 (31%)
    • Estimated SubTree Cost :- 7.02629
    • Logical Operator :-Inner Join
    • Parallel:- False
    • Physical Operation :- Merge Join

 

In Clause – 65 Values

If we reduce the number of values to 65, we get a different Query Plan

 Query


SELECT 
        [Extent1].[Number]AS [Id]  -- 65 Values
		FROM [master].[dbo].[Numbers] AS [Extent1]
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64, 65
		 ) 


Query Plan

 

Query Plan – Operators

Operator – Constant Scan

Explanation
  1. Actual Number of Rows :- 65
  2. Estimated CPU Cost :- 0.0000652
  3. Estimated Operator Cost :- 0.0000652
  4. Estimated Subtree Cost :- 0.0000652
  5. Logical Operator :- Constant Scan

 

Operator – Clustered Index Seek

 

Explanation
  1. Actual Number of Rows :- 65
  2. Defined Values :- [master].[dbo].[Numbers].Number
  3. Estimated CPU Cost :- 0.0001581
  4. Estimated IO Cost :- 0.003125
  5. Estimated Number of Executions :- 65
  6. Estimated Operator Cost :- 0.0134015 (98%)
  7. Estimated Subtree Cost :- 0.0134015
  8. Logical Operation :- Clustered Index Seek
  9. Number of Executions :- 65
  10. Number of Rows Read :- 65

 

Operator – Nested Loops ( Inner Join )

 

Explanation
  1. Actual Number of Rows :- 65
  2. Estimated CPU Cost :- 0.0002717
  3. Estimated IO Cost :- 0.003125
  4. Estimated Number of Rows :- 65
  5. Estimated Operator Cost :- 0.0002717 (2%)
  6. Estimated Subtree Cost :- 0.0137384
  7. Logical Operation :- Inner Join
  8. Physical Operation :-Nested Loops
  9. WithUnorderedPrefetch :- True

 

In Clause – 64 Values

If we reduce the number of values to 64, we yet get a different Query Plan

 Query


SELECT 
        [Extent1].[Number]AS [Id]  -- 65 Values
		FROM [master].[dbo].[Numbers] AS [Extent1]
		WHERE [Extent1].[Number] IN
		 (

			  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
			, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
			, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
			, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
			, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
			, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
			, 61, 62, 63, 64
		 ) 


Query Plan

Query Plan – Operators

Operator – Clustered Index Seek

 

Explanation
  1. Actual Number of Rows :- 64
  2. Estimated CPU Cost :- 0.0002274
  3. Estimated IO Cost :- 0.003125
  4. Estimated Number of Rows :- 64
  5. Estimated Operator Cost :- 0.0002717 (2%)
  6. Estimated Subtree Cost :- 0.0033524
  7. Logical Operation :- Clustered Index Seek
  8. Physical Operation :- Clustered Index Seek
  9. Number of Reads :- 64
  10. Ordered :- True

Argument List

  1. Argument List < Less than 65
    • Operation
      • Clustered Index Seek
        • The column we are checking against is the one that our Clustered Index is defined on
        • Rows & Reads
          • Actual Number of Rows
          • Estimated Number of Rows
          • Number of Reads
  2. Argument List Equal to 65
    • Operation
      • Constant Scan
        • Description :- Scan an internal table of constants
        • Cost
          • Estimated CPU Cost :- 0.0000652
          • Estimated IO Cost :- 0
          • Estimated Subtree Cost :- 0.0000652
        • Physical Operation :- Constant Scan
        • Values :- List of Values
      • Nested Loops
        • Nested Loop Join against the Table
  3. Argument List < Large  ( in our case 19381 )
    • Operation
      • Constant Scan
        • Description :- Scan an internal table of constants
        • Rows
          • Actual Number of Rows :- 19381
          • Estimated Number of Rows :- 19381
        •  Cost
          • Estimated CPU Cost :- 0.0193812
          • Estimated IO Cost :- 0
          • Estimated Subtree Cost :- 0.0193812
        • Physical Operation :- Constant Scan
        • Values :- List of Values
    • Sort
      • Rows
        • Actual Number of Rows :- 19381
        • Estimated Number of Rows :- 19381
      •  Cost
        • Estimated CPU Cost :- 1.26708
        • Estimated IO Cost :- 0.0112613
        • Estimated Subtree Cost :- 1.2783488 (18%)
    • Merge Join
      • Match rows from two suitably sorted input tables exploiting their sort
      • Rows
        • Actual Number of Rows :- 19381
        • Estimated Number of Rows :- 19381
      •  Cost
        • Estimated CPU Cost :- 2.14824
        • Estimated IO Cost :- 0
        • Estimated Subtree Cost :- 2.14824 (31%)

 

Statistics IO

Image

Tabulate

Table Hugh # of Values Number of Values = 65 Number of Values = 64
 Numbers  Scan count 1, logical reads 1324  Scan count 0, logical reads 208  Scan count 64, logical reads 192
 worktable  Scan count 0, logical reads 0

 

 

 

Commentary

LBushkin

StackOverflow – Is SQL IN bad for performance?
Link

Steve Broberg

Technical Summary

Join Type

When the number of values is less than 65, and an appropriate index exists, that index is employed.

When number of values is at 65, values from the In Clause is placed in an Internal Table, and joined using a Nested Loop Join.

When a huge number of values are passed in the “In Clause“, an Internal table is used and placed in a worktable.  The type of Join is the more expensive “Merge Join”.  As the merge join expects sorted sources, unsorted data is first sorted.

 

Worktable

We see that when the number of values in the where clause is high, the SQL Server Engine creates a worktable.

 

Community

There is a lot of work and experience shared over this topic.

And, I for one continue to benefit from not just the topic, but sensing their diligence, yet free spirit in sharing.

 

Dedicated

Dedicated to LBushkin.

 

SQL Server – Database Size Aggregated By File Type

Background

For a performance exercise that I will be undertaken I need to figure out how much my user databases and tempdb are growing.

 

Lineage

Here are some past posts along those same lines.

  1. SQL Server – List Database Size
    Use sys.master-files
    Published On :- 2017-March-29th
    Link

 

SQL

Pasted below are some sample SQL for getting file sizes and in use portion aggregated by file types.

Database Size for current database

Code



; with cte
as
(

  select 
		    [dbName]
			= DB_NAME() 

		, [type]				

		, [fileSizeMB]
			= cast
				(
					sum(size)/128.0
					as decimal(10, 2)
				)

		, [spaceUsedMB]
			= cast
				(
					sum(
							CAST
							(
								FILEPROPERTY(name, 'SpaceUsed') AS INT
							)
					)/128.0
					as decimal(10, 2)
				)

		, [freeSpaceMB]
			= sum
				(
					tblSDF.[size]
					- CAST
					(
						FILEPROPERTY
						(
							  tblSDF.[name]
							, 'SpaceUsed'
						) AS INT
					)
				)/128.0

	from sys.database_files tblSDF

	group 
		by tblSDF.[type] 

)

select 
		  [dbName]

		, [DataAllocatedSizeInMB] = sum(isNull([alloc0], 1))

		, [DataInUseSizeInMB] = sum(isNull([inuse0], 1))

		, [dataInUse%]
			= cast
				( 
					(
						( sum(isNull([inuse0], 1)) * 100.00 )
							/ sum(isNull([alloc0], 1))
					)
					as decimal(10, 2)
				)

		, [LogAllocatedSizeInMB] = sum(isNull([alloc1], 0))
		, [LogInuseSizeInMB] = sum(isNull([inuse1], 0))	
		, [logInUse%]
			= cast
				(
					( 
						sum
						(
							isNull([inuse1], 1)
						) * 100.00 
					)
					/ sum
					  (
						isNull([alloc1], 1)
					  )

					as decimal(10, 2)
				)

		, [fileStreamAllocatedSizeInMB] 
			= sum
				(
					isNull([alloc2], 0)
				)


from   
		(
		
			select 
					  [dbName]
					, [type] = 'alloc' + cast([type] as char(1))
					, [fileSizeMB]
					, [spaceUsedMB]
					, [typeInUse] = 'inuse' + cast([type] as char(1))
			from   cte

		) cteFS

		PIVOT
		(

			  sum 
			  ( 
				cteFS.[fileSizeMB] 
			  )

			  for [type]
			  in 
			  (
				  [alloc0]
				, [alloc1]
				, [alloc2]
			  )

		) as cteDataFileSizeInMB

		PIVOT
		(

			  sum 
			  ( 
				[spaceUsedMB]
			  )

			  for [typeInUse]
			  in 
			  (
				  [inuse0]
				, [inuse1]
				, [inuse2]
			  )

		) as cteInUseFileSizeInMB


group by
		  [dbName]



Output

 

 

Database Size for all databases

Code




set nocount on;
go

use [master]
go

declare @tblDatabase  TABLE
(
	  [dbName]					sysname not null
	, [DataAllocatedSizeInMB]   int
	, [DataInUseSizeInMB]	    bigint

	, [dataInUse%] 
		as 
			convert
			(
				  decimal(10, 2)
				, (
					[DataInUseSizeInMB] * 100.00
					/ NULLIF
						(
							[DataAllocatedSizeInMB]
							, 0
						)	
					)
			)

	, [LogAllocatedSizeInMB] bigint
	, [LogInuseSizeInMB]	 bigint
	, [logInUse%] as 
		convert
		(
			decimal(10, 2)
			, ( [LogInuseSizeInMB] * 100.00 )
				/ NULLIF([LogAllocatedSizeInMB], 0)
		)

	, [fileStreamAllocatedSizeInMB]  bigint


)

insert into @tblDatabase

EXEC sp_MSforeachdb 
	'
	IF DATABASEPROPERTYEX(''?'', ''Collation'') IS NOT NULL
	begin

		USE [?];
		; with cte
		as
		(

		  select 
					[dbName]
					= DB_NAME() 

				, [type]				

				, [fileSizeMB]
					= sum(size)/128.0

				, [spaceUsedMB]
					= sum(
							CAST
								(
									FILEPROPERTY(name, ''SpaceUsed'') AS INT
								)
						)/128.0

				, [freeSpaceMB]
					= sum
						(
							tblSDF.[size]
							- CAST
							(
								FILEPROPERTY
								(
									  tblSDF.[name]
									, ''SpaceUsed''
								) AS INT
							)
						)/128.0

			from sys.database_files tblSDF

			group 
				by tblSDF.[type] 

		)

		select 
				  [dbName]

				, [DataAllocatedSizeInMB] = sum(isNull([alloc0], 1))

				, [DataInUseSizeInMB] = sum(isNull([inuse0], 1))

				, [LogAllocatedSizeInMB] = sum(isNull([alloc1], 0))
				, [LogInuseSizeInMB] = sum(isNull([inuse1], 0))	

				, [fileStreamAllocatedSizeInMB] 
					= sum
						(
							isNull([alloc2], 0)
						)

		from   
				(
		
					select 
							  [dbName]
							, [type] = ''alloc'' + cast([type] as char(1))
							, [fileSizeMB]
							, [spaceUsedMB]
							, [typeInUse] = ''inuse'' + cast([type] as char(1))
					from   cte

				) cteFS

				PIVOT
				(

					  sum 
					  ( 
						cteFS.[fileSizeMB] 
					  )

					  for [type]
					  in 
					  (
						  [alloc0]
						, [alloc1]
						, [alloc2]
					  )

				) as cteDataFileSizeInMB

				PIVOT
				(

					  sum 
					  ( 
						[spaceUsedMB]
					  )

					  for [typeInUse]
					  in 
					  (
						  [inuse0]
						, [inuse1]
					  )

				) as cteInUseFileSizeInMB


			group by
				  [dbName]

		end

	  '

select *
from   @tblDatabase
order by [dbName]

SQL Server Management Studio ( SSMS ) – Non-Printable Characters

 

Background

Through the use of a Microsoft LightSwitch application that we are working on, I have been eating my dog food.

 

Data Entry

As one who hates the sheer drudgery of data entry, I end up doing quite a bit of copy and paste.

I copy and paste data from the original Excel file into the LightSwitch application.

And, things have been mostly OK; as the data that needs to be copied over is minimal.

But, recently I started noticing little errors cropping up.

I launched SQL Server Profiler and noticed the errors are due to referential integrity.

The error was traced to trying to place data into secondary tables whereas those same data are not in our primary data.

 

TroubleShooting

 

Query Data

Launched Sql Server Management Studio ( SSMS ), and queried for the data and they appear to be in the Primary table.

 

Issue

After a bit of head scratching traced the problem back to white spaces at the end of the primary key fields.

 

Remediation

As always took to the Net to determine fixes and workarounds.

Outline

Here are the workarounds that we found thus far:

  1. Using Transact SQL
    • Identify data that have non-printable characters ( CRLF )
    • Strip out the Non-Printable characters

 

Code

Using Transact SQL

Here the functions that I found on the Net

Sourced

  1. dbo.fn_ShowWhiteSpace
  2. dbo.fn_nonPrintableStringClean

 

Code Snippet

 
use master
go
 

 
if schema_id('npc') is null
begin
 
    exec('create schema [npc] authorization [dbo];');
 
end
go
 
if object_id('[npc].[fn_ShowWhiteSpace]') is null
begin
 
    exec('CREATE FUNCTION [npc].[fn_ShowWhiteSpace]() RETURNS varchar(8000) AS BEGIN return 1/0 END')
 
end
go
 
ALTER FUNCTION [npc].[fn_ShowWhiteSpace]
(
    @str varchar(8000)
)
RETURNS varchar(8000)
AS
BEGIN
    /*
        Michael Riley - AKA Gunny
        <a href="http://stackoverflow.com/questions/8655909/whats-the-best-way-to-identify-hidden-characters-in-the-result-of-a-query-in-sq">http://stackoverflow.com/questions/8655909/whats-the-best-way-to-identify-hidden-characters-in-the-result-of-a-query-in-sq</a>
 
        Michael Riley - AKA Gunny - Profile
        <a href="http://stackoverflow.com/users/195983/michael-riley-aka-gunny">http://stackoverflow.com/users/195983/michael-riley-aka-gunny</a>
 
    */
 
     DECLARE @ShowWhiteSpace varchar(8000);
     DECLARE @expanded bit
 
     set @expanded = 1
 
     SET @ShowWhiteSpace = @str
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(32), '[?]')
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(13), '[CR]')
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(10), '[LF]')
     SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(9),  '[TAB]')
 
     if (@expanded = 1)
     begin
 
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(1),  '[SOH]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(2),  '[STX]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(3),  '[ETX]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(4),  '[EOT]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(5),  '[ENQ]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(6),  '[ACK]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(7),  '[BEL]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(8),  '[BS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(11), '[VT]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(12), '[FF]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(14), '[SO]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(15), '[SI]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(16), '[DLE]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(17), '[DC1]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(18), '[DC2]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(19), '[DC3]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(20), '[DC4]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(21), '[NAK]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(22), '[SYN]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(23), '[ETB]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(24), '[CAN]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(25), '[EM]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(26), '[SUB]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(27), '[ESC]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(28), '[FS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(29), '[GS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(30), '[RS]')
       SET @ShowWhiteSpace = REPLACE( @ShowWhiteSpace, CHAR(31), '[US]')
 
    end --if (@expanded = 1)
 
    RETURN(@ShowWhiteSpace)
 
END
go
 
grant execute on [npc].[fn_ShowWhiteSpace] to public
go

 

 

 

 
use [master]
go
 
set ansi_nulls on
go
set quoted_identifier on
go
 

if schema_id('npc') is null
begin
 
    exec('create schema [npc] authorization [dbo];');
 
end
go
 
if object_id('[npc].[fn_StringClean]') is null
begin
 
    exec('CREATE FUNCTION [npc].[fn_StringClean]() RETURNS varchar(8000) AS BEGIN return 1/0 END')
 
end
go
 
ALTER function [npc].[fn_StringClean] 
(
 @strIn as varchar(8000)
)
returns varchar(8000)
as
begin
 
    /*
        Blog
        How to remove unprintable characters from various fields in table
        <a href="https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1bf3e072-f194-4bff-87ee-07376927a7f8/how-to-remove-unprintable-characters-from-various-fields-in-table?forum=transactsql">https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1bf3e072-f194-4bff-87ee-07376927a7f8/how-to-remove-unprintable-characters-from-various-fields-in-table?forum=transactsql</a>
 
        Profile:
        NaveenCR
        <a href="https://social.msdn.microsoft.com/profile/naveencr/?ws=usercard-mini">https://social.msdn.microsoft.com/profile/naveencr/?ws=usercard-mini</a>
    */
 
    declare @iPtr as int
 
    set @iPtr = patindex('%[^ -~0-9A-Z]%', @strIn COLLATE LATIN1_GENERAL_BIN)
 
    while @iPtr > 0 
    begin
    
      set @strIn = replace(@strIn COLLATE LATIN1_GENERAL_BIN, substring(@strIn, @iPtr, 1), '')
 
      set @iPtr = patindex('%[^ -~0-9A-Z]%', @strIn COLLATE LATIN1_GENERAL_BIN)
 
     end
 
     return ( @strIn )
 
end
go
 
grant execute on [npc].[fn_StringClean] to public
go

 

 

Lab

Code
 

 

    select 
 
              tblLS.[serverName]
 
            , [serverName_Len] 
                = len(tblLS.[serverName])
 
            , [serverNameTrim]
                 = ltrim(rtrim(tblLS.[serverName]))
 
            , [serverName_Trim(Len]
                 = len(ltrim(rtrim(tblLS.[serverName])))
 
            , [ShowWhiteSpace]
                = [master].dbo.[fn_ShowWhiteSpace](tblLS.servername)
 
            , [serverName_NPClean]
                 = [master].[npc].[fn_StringClean]  (tblLS.[serverName])
 
            , [serverName_NPClean_Len] 
                = datalength([master].[npc].[fn_StringClean]  (tblLS.[serverName]))
 
    from   [DBLAB].dbo.[listofServers.2017022] tblLS
 
    where  (
                (
                    (
                         tblLS.servername 
                            != [master].[npc].[fn_StringClean] (tblLS.servername) 
                    )
                )
          )    

 

 

 

Output

dbo_listofservers_20170222_1036pm

 

Explanation
  1. Here are the columns that are being shown
    1. serverName
      • The actual Server Name
      • The length of the Server Name
    2. serverName Trimmed
      • Using ltrim and rtrim we trim the Server Name
      • We get the length of the trimmed column
    3. Show whitespace
      • Show the serverName and display Non-Printable characters
    4. Show “Cleaned” serverName
      • Show cleaned Server Name
      • Show length of cleaned Server Name

 

Microsoft Connect Items

  1. SQl Server Management Studio should show new lines in records. – by Michael Freidgeim
    • Submitted By :- Michael Freidgeim
    • Item ID :-381955
    • Date Submitted :- 2008-Nov-14th 4 AM
    • Link
    • Description:-
      • 1. If there are newLines characters in the record data, SQl Server Management Studio in Grid view shows the record as one string, without indication that newlines are present.
        It causes confusion to the user, invalid interpretation of the data and even data loss.See scenario in my post
        http://geekswithblogs.net/mnf/archive/2008/11/13/sql-server-management-studio-doesnt-show-new-lines-in-records.aspx
        It will be good if newLines will be shown as actual new lines(consistent with SQL Server 2000 Enterprize Manager) or as some special character(e.g \n or |) to inform user.
        Ideally method on new line presentation could be configured in Tools/Options/Query Results/SQL Server/Results to Grid.
      • 2. By the way, separate suggestion: make Results to Text Maximum Length of the output default  to 8192  (rather than 256) to avoid truncations, that are not obvious.
    • Microsoft Feedback
      • Posted by Seshagiri ( Microsoft ) on 2011-May-31st 7:33 AM
        • Hi Michael,
          This is related to the connect item 381955. We evaluated the feedback carefully and are able to reproduce the cases you listed. However because of the following reasons we are unfortunately not able to attend to this request:

          • 1. new lines in grid
            When using the results to grid option, we use the standard Windows grid control to display the results. This grid control treats each cell value as a plain text and hence the new line characters are ignored. The Save as function when executed from the results section just takes the content from the grid as it is and hence the newline is not found in the new file created from the grid. However if you use the results to text option or the results to file the new line characters are retained. SSMS is not really intended to be a reporting tool, so we are unable to spend much time on the result formatting, especially if some workarounds exist like mentioned above.
          • 2. Max characters when using results to text
            The number specified here is used to preallocate memory for the text column data. A larger value for default could mean lot of unnecessary memory being allocated but not used. Hence it is left to the user to increase the value based on their needs.
            I hope the above sounds reasonable. I am currently closing the issue as a wont-fix. However in case there is anything not mentioned previously please let us know and we will surely take a relook.
          • Thank you
            Seshagiri
            PM, SSMS

SQL Server – Number of Error Log Files

 

Background

Trying to review error logs on one of our SQL Server Instances and discovered that it is likely that the error logs we might have to mine is so far back and we might no longer have it.
And, so took to see if we have properly calibrated the Number of Error Logs Files to keep before rollover.

 

Review

GUI

SQL Server Management Studio ( SSMS )

Screen Shot

configuresqlservererrorlogs

 

Explanation

  1. In the screenshot above we can see that the Number of Errors has not been explicit set and so the system will use the default value of 6
  2. To set it we can check the “Limit the number of error log files before they are recycled” and provide a number to set it to

 

Script

For automation, script is a bit better and here is one …

Code

Stored Procedure

Stored Procedure – errorLog.sp_ConfigureNumberofErrorLogFiles


set nocount on;
go

USE [master]
GO

if schema_id('errorLog') is null
begin
	
	exec('create schema [errorLog] authorization [dbo] ')

end
go

if object_id('[errorLog].[sp_ConfigureNumberofErrorLogFiles]') is null
begin

	exec('create procedure [errorLog].[sp_ConfigureNumberofErrorLogFiles] as ')

end
go

alter procedure [errorLog].[sp_ConfigureNumberofErrorLogFiles] 
(
	  @numberofErrorLogsDesired int = 99
	, @scriptOnly bit = 0
)
as 
begin

	set nocount on;
	set XACT_ABORT on;

	declare @strNumberofErrorLogsCurrent	nvarchar(60)
	declare @iNumberofErrorLogsDefault		int
	declare @iNumberofErrorLogsCurrent		int
	declare @numberofErrorLogsMax			int

	declare @strLog							varchar(120)
	
	/*
		Set default values
	*/
	set @numberofErrorLogsMax = 99
	set @strNumberofErrorLogsCurrent = null
	set @iNumberofErrorLogsDefault = -1
	set @iNumberofErrorLogsCurrent = @iNumberofErrorLogsDefault

	if (@numberofErrorLogsDesired > 99)
	begin

		set @numberofErrorLogsDesired = @numberofErrorLogsMax

		set @strLog = 'Maximum Number of errors specified is : ' 
						+ cast(@numberofErrorLogsDesired as varchar(10))
						+ ' but max allowed is '		
						+ cast(@numberofErrorLogsMax as varchar(10))
						+ '!'
						+ ' will use ' 
						+ cast(@numberofErrorLogsMax as varchar(10))

		print @strLog

	end	

	/*
		Read Registry Value
			HKEY_LOCAL_MACHINE
			Branch : Software\Microsoft\MSSQLServer\MSSQLServer
			Item   :- NumErrorLogs
	*/
	exec master.dbo.xp_instance_regread
			  N'HKEY_LOCAL_MACHINE'
			, N'Software\Microsoft\MSSQLServer\MSSQLServer'
			, N'NumErrorLogs'
			, @iNumberofErrorLogsCurrent output

	/*
		If Number of Error Logs is set, then  convert to string
	*/
	if (@iNumberofErrorLogsCurrent is not null )
	begin


		/*
			If Number of Current Logs has been set
		*/
		if (
				(@iNumberofErrorLogsCurrent != @iNumberofErrorLogsDefault )
			)
		begin

			print '@iNumberofErrorLogsCurrent : ' 
					+ cast(
							isNull(@iNumberofErrorLogsCurrent, '')
								as varchar(10)
						  )


		end

		set @strNumberofErrorLogsCurrent
				= cast
					(
						isNull(@iNumberofErrorLogsCurrent, -1)
						as varchar(10)
					)


		/*
			If String is not null
		*/
		if (
				( @strNumberofErrorLogsCurrent is not null )
		   )
		begin

			set @strLog = '@strNumberofErrorLogsCurrent : ' 
								+ @strNumberofErrorLogsCurrent

			print @strLog

		end


	end -- if (@iNumberofErrorLogsCurrent is not null )


	/*
		If Number of Errors Logs is not set to what we desire, then review it
	*/
	if (
			( @iNumberofErrorLogsCurrent != @numberofErrorLogsDesired )
		)
	begin

		if (@scriptOnly = 0)
		begin

			set @strLog = 'Adjusting Number of Error Logs from ' 
						+ convert(varchar(10), @iNumberofErrorLogsCurrent )
						+  ' to '
						+ convert(varchar(10), @numberofErrorLogsDesired )
						+ ' .. '

			print @strLog


			EXEC master.dbo.xp_instance_regwrite 
						  N'HKEY_LOCAL_MACHINE'
						, N'Software\Microsoft\MSSQLServer\MSSQLServer'
						, N'NumErrorLogs'
						, REG_DWORD
						, @numberofErrorLogsDesired

			set @strLog = 'Adjusted Number of Error Logs from ' 
						+ convert(varchar(10), @iNumberofErrorLogsCurrent )
						+  ' to '
						+ convert(varchar(10), @numberofErrorLogsDesired )

			print @strLog

		end --script only
		else
		begin

			set @strLog = 'Skipping Adjustment of Number of Error Logs from ' 
						+ convert(varchar(10), @iNumberofErrorLogsCurrent )
						+  ' to '
						+ convert(varchar(10), @numberofErrorLogsDesired )

			print @strLog

		end
	end

end

GO


Invoke


use [master]
go

declare @numberofErrorLogsDesired int
declare @scriptOnly				  bit

set @numberofErrorLogsDesired = 99
set @scriptOnly =0

exec [errorLog].[sp_ConfigureNumberofErrorLogFiles] 
		  @numberofErrorLogsDesired = @numberofErrorLogsDesired
		, @scriptOnly = @scriptOnly

Output

RegQueryValueEx() returned error 2 – The System cannot find the file specified

Image

cannotfindthefilespecified

Textual
RegQueryValueEx() returned error 2, 'The system cannot find the file specified.'
Msg 22001, Level 1, State 1
@strNumberofErrorLogsCurrent : -1
Adjusting Number of Error Logs from -1 to 99 .. 
Adjusted Number of Error Logs from -1 to 99

Explanation

By default, the value is missing and so when we invoke master.dbo.xp_instance_regread to read it, we receive a warning message that reads “RegQueryValueEx() returned error 2, ‘The system cannot find the file specified.’

 

Registry

The actual registry branch where the information is kept is dependent on the version of the SQL Server Engine and the Instance Name

v2012

Here us what things look list for a SQL Server 2012 Instance, before setting the value

By Default

Image

v2012-default

Explanation

  1. This registry branch above is for a SQL Server v2012 instance
  2. The branch is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer

 

Post Setting

Once setting the value for Number of Error Logs to keep our registry will look like what we have set below.

v2012-set

 

Source Control

GitHub

Uploaded to github here