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

Warning – "The query had to wait 5 seconds for MemoryGrant during execution"

Background

Most of today I spent reviewing  one of our vendors Scheduled Jobs and their corresponding Stored Procedures.

BTW, the jobs are SQL Server based and scheduled through SQL Server Agent.

 

Query Plan Warnings

As I reviewed each SQL Statement noticed a big warning that reads “The query had to wait 5 seconds for MemoryGrant during execution”.

Image

TheQueryHadToWait5Seconds (cropped)

 

Query Statement

Query Text

Here is the query text


UPDATE	a
SET	a.HasMajor = CASE 
			WHEN am.ArticulationId is NOT NULL THEN 1
			ELSE 0
		    END 

FROM		tArticulation a

LEFT JOIN tArticulationMajor am

	ON a.CourseArticulationID_Oltp = am.ArticulationId

;

Explanation

What does the query do

  1. It performs a left outer join on tArticulation and tArticulationMajor
  2. Each time an ArticulationMajor exists for an Articulation we stamp the HasMajor column with 1
  3. On the other hand, for Articulations missing tArticulationMajor we stamp them with 0

 

Rewrite – Using Alternate Joins

The query statement appears ripe for revision

 

Rewrite as Inner Join


UPDATE	a

SET	a.HasMajor = 1
					
FROM	tArticulation a

INNER JOIN tArticulationMajor am

	on a.CourseArticulationID_Oltp = am.ArticulationId

	;

 

Rewrite as Correlation Join / Where Exists


UPDATE	a

SET		a.HasMajor = 1
						
FROM		tArticulation a

where exists
	(
	   select 1

	   from   tArticulationMajor am

	   where a.CourseArticulationID_Oltp = am.ArticulationId

       )

;

 

Compare Original Against Alternate Joins

Compare Query Plans

Image

compareQueryPlans (cropped)

 

Explanation

  1. While the original left outer join comparatively comes in at 100%, our two revisions come in at 0%

 

Compare Statistics IO

Image

compareStatisticsIO

 

 

Number of Records Affected

Image

NumberofReordsAffected

 

 

 

Rewrite – Using Merge Statement

Using Merge Statement, we can compare and merge data from two different sources, as well

 

Rewrite Using Merged / When Matched

Explanation

In the sample code we set HasMajor to 1 when we have records in the source table

Code



merge tArticulation tblA

USING tArticulationMajor tblAM

	on tblA.[CourseArticulationID_Oltp] = tblAM.[ArticulationId]

WHEN MATCHED THEN
	UPDATE
	   SET	tblA.HasMajor = 1
	;

 

Rewrite Using Merged / When Matched and Not Matched

Explanation

In the sample code we set HasMajor to 1 when we have records in the source table.

And, when not matched we set to 0.


merge tArticulation tblA

USING tArticulationMajor tblAM

	on tblA.[CourseArticulationID_Oltp] = tblAM.[ArticulationId]

WHEN MATCHED THEN
	UPDATE
		SET	tblA.HasMajor = 1
	
	WHEN NOT MATCHED BY SOURCE THEN
	UPDATE
		SET	tblA.HasMajor = 0
	
	;

 

Compare Original Against Alternate Merge Statements

Compare Query Plans

Image

queryPlans-mergeStatements

 

Explanation

In comparison

  1. Weigh
    • The original query is at 49%
    • The Merge Statement with Matched is at 0%
    • On the other hand the Merge Statement with Matched and Not Matched is at 51%
  2. Parallelism
    • Both the original query with left outer join and the Merge\Not Matched query relies on Parallism
    • While the Merge and Matched does not use Parallelism

 

Compare Statistics IO

Image

StatisticsIO-mergeStatement

 

Explanation

  1. The Original query and the Merge Statement with matched and not matched experience similar IO
  2. The Merge with Update and Match alone experience limited IO

 

Merge Rewrite – Number of Records Affected

Image

NumberofRecordsAffected - MergeStatement

 

Metrics

Query Cost

Image

Left Outer Join

Summary-LeftOuterJoin (Cropped)

 

Inner Join

Summary-InnerJoin (Cropped)

Merged When Matched / Alone

Summary-MergedWhenMatchedAlone (Cropped)

 

Correlation Join / Using Exists

Summary-Exists ( Cropped )

Merged When Matched / Alone

Summary-MergedWhenMatchedAndNotMatched (cropped)

 

Detailed

    • Left Outer Join
      • Cached plan size = 40KB
      • Degree of Parallelism = 4
      • Estimated Subtree Cost = 33.4372
      • Memory Grant = 21856
      • Estimated Number of Rows = 328914
    • Inner Join
      • Cached plan size = 24KB
      • Degree of Parallelism = 1
      • Estimated Subtree Cost = 0.0631069
      • Memory Grant = 1024
      • Estimated Number of Rows = 32.5183
    • Exists
      • Cached plan size = 24KB
      • Degree of Parallelism = 1
      • Estimated Subtree Cost = 0.0515091
      • Memory Grant = None
      • Estimated Number of Rows = 32.5183
    • Merged when matched alone
      • Cached plan size = 32KB
      • Degree of Parallelism = 1
      • Estimated Subtree Cost = 0.063129
      • Memory Grant = 1024
      • Estimated Number of Rows = 32.5183
    • Merged when matched and not matched
        • Cached plan size = 48KB
        • Degree of Parallelism = 4
        • Estimated Subtree Cost = 34.7932
        • Memory Grant = 22152
        • Estimated Number of Rows = 328914

Tabulated

 

Property Left Outer Join Inner Join Correlated Not Exists Merge Join – When Matched Merge Join – When Matched & Not Matched
Cached Plan Size 40KB 24KB  24 KB  32KB  48KB
Degree of Parallelism  4  1  1  1  4
Memory Grant  21856  1024  1024  22152
Estimated Subtree Cost  33.4372  0.0631069  0.0515091  0.063129  34.7932
Estimated Number of Rows  328914  32.5183  32.5183  32.5183  328914

 

 

Statistics I/O

Image

Left Outer Join

summary-statisticsio-leftouterjoin

Inner Join

summary-statisticsio-innerjoin

Correlated Join / Not Exists

summary-statisticsio-correlatedjoin-exists

Merge – When Matched / Update

summary-statisticsio-merge-whenmatchedupdate_20170203_0816am

Merge – When Matched – Update  & When Not Matched – Update

summary-statisticsio-merge-whennotmatchedupdate_20170203_0816am

 

Tabulated

 

Property Left Outer Join Inner Join Correlated Not Exists Merge Join – When Matched Merge Join – When Matched & Not Matched
tArticulationMajor Scan count 1, logical reads 2, physical reads 0 Scan count 1, logical reads 2, physical reads 0 Scan count 1, logical reads 2, physical reads 0 Scan count 1, logical reads 2, physical reads 0 Scan count 1, logical reads 2, physical reads 0
workfile  Scan count 0, logical reads 0, physical reads 0  Scan count 0, logical reads 0, physical reads 0
worktable  Scan count 0, logical reads 0, physical reads 0 Scan count 0, logical reads 0, physical reads 0 Scan count 0, logical reads 0, physical reads 0  Scan count 0, logical reads 0, physical reads 0
tArticulation  Scan count 5, logical reads 1007936 Scan count 15, logical reads 145, physical reads 0 Scan count 15, logical reads 145, physical reads 0 Scan count 15, logical reads 145, physical reads 0 Scan count 5, logical reads 1007936, physical reads 0
worktable scan count 0, logical reads, physical reads scan count 0, logical reads 0, physical reads 0

 

 

Explanation

  1. Workfiles
    • Left Outer Join and Merge Join
      • Queries that include and have a marker for records that do not match
  2. WorkTable
    • Inclusive
      • Left Outer Join, Inner Join, Merge Join when matched, Merge Join when matched and not matched
      • Where?
        • Left Outer Join
          • Hash Match
          • Sort
            • Estimated Rows = 328914
        • Inner Join
          • Nested Loop
          • And, then Sort
            • Estimated Rows = 32
        • Merge When Matched Update / Alone
          • Nested Loop
          • Sort
            • Estimated Rows = 32
        • Merge When Matched – Update / When not matched – Update
          • Sort
            • Estimated Rows = 328914
    • Excluded
      • Correlated Not Exists

 

Terminology

 

Term Meaning Link
Worktables The relational engine may need to build a worktable to perform a logical operation specified in an SQL statement. Worktables are internal tables that are used to hold intermediate results. Worktables are generated for certain GROUP BY, ORDER BY, or UNION queries. For example, if an ORDER BY clause references columns that are not covered by any indexes, the relational engine may need to generate a worktable to sort the result set into the order requested. Worktables are also sometimes used as spools that temporarily hold the result of executing a part of a query plan. Worktables are built in tempdb and are dropped automatically when they are no longer needed. Link
workfile Work files are similar to work tables but are created strictly by hashing operations. Work files are used to store temporary results for hash joins and hash aggregates.  Link

 

 

Operators

WorkFile

Let us quickly and look at the Queries that references Workfile in their Query Plan

Occurrences

Left Outer Join

summary-hashmatch-leftouterjoin

Merge – When Not matched

summary-hashmatch-mergenotmatched

 

Findings

  • We find that each time Hash Matches are found in the Query Plan, we see corresponding workfile entries

Optimizations

Work Table

  1. Worktable caching is improved.
    Link

    • Version 2005 and Higher
      • When a query execution plan is cached, the work tables needed by the plan are not dropped across multiple executions of the plan but merely truncated. In addition, the first nine pages for the work table are kept.
    • version 2000
      • In SQL Server 2000, the work tables used during query plan execution are dropped.
    • Because the work table is cached, the next execution of the query is faster.
    • When the system is low on memory, the execution plan may be removed from the cache and the associated work tables dropped as well.
    • Both SQL Server 2000 and SQL Server 2005 use a small global pool of pre-allocated pages and extents that make the initial creation of work tables faster.

 

Summary

Honestly, have to come back and add in more metrics, and generally tie things up.

There are some things that will later help our understanding of Workfiles and Worktables.

WorkFiles occur when we need records that are not included within our Join Clause.

Whereas, worktables are hallmarks of the Sort Operator.

But, again how true this is, will come later.