SQL Server – Temp Table Structure

Background

Created a temporary table on the fly.

But, before wrapping things up, I wanted to review the temp table’s structure.

 

SQL

sp_help

Syntax


exec [tempdb]..sp_help [table]

 

Sample


exec [tempdb]..sp_help [#cache]

Output

 

Generate Table Create Statement

dbo.itvf_getTempTableCreateStatement

Procedure


use [master]
go

/*

    drop function [dbo].[itvf_getTempTableCreateStatement]

*/
if object_id('[dbo].[itvf_getTempTableCreateStatement]') is null
begin

    exec
    ('
        CREATE FUNCTION [dbo].[itvf_getTempTableCreateStatement]
        (	
        )
        RETURNS TABLE 
        AS
        RETURN 
        (
            -- Add the SELECT statement with parameter references here
            SELECT [shell] = 1/0
        )
    ')

end
go

ALTER FUNCTION [dbo].[itvf_getTempTableCreateStatement]
(
    @object sysname	
)
RETURNS TABLE 
AS
RETURN 
(

    with cteColumnTypesWithColumnLength
    (
        [type]
    )
    as
    (
        select 'char'
        union all
        select 'nchar'
        union all
        select 'varchar'
        union all
        select 'nvarchar'

    )
    select 
              [columnID]
                = tblSC.[column_id]

            , [column]
                 = tblSC.[name]

            , [maxLength]
                 = tblSC.[max_length]

            , [userType] 
                = tblST.[name]

            , [isNullable]
                 = tblSC.[is_nullable]

            , [sqlClause] =

                case ( tblSC.[column_id] )
                    when 1 then '  '
                    else ', '
                end
                                
                +  quoteName(tblSC.[name])

                + ' '

                + tblST.[name]

                + case
                    when (
                            tblST.[name] in
                                (
                                    select [type] 
                                    from  cteColumnTypesWithColumnLength
                                )	 
                        )
                        then 
                            '('
                            + cast(tblSC.[max_length] as varchar(4))
                            + ')'

                    else ' '

                    end
                                
                + ' '

                + case tblSC.[is_nullable]

                    when 1 then ' null '
                    when 0 then ' not null '
                    else ' '

                  end

            , [colList] =

                case ( tblSC.[column_id] )
                    when 1 then '  '
                    else ', '
                end
                                
                +  quoteName(tblSC.[name])

    
    from   [tempdb].sys.objects tblSO

    inner join [tempdb].sys.columns tblSC

        on tblSO.object_id = tblSC.object_id

    inner join [tempdb].sys.types tblST

        on tblSC.[user_type_id] = tblST.[user_type_id]

    where (

            ( 
                tblSO.object_id 
                    = object_id
                        (
                            'tempdb..' + @object
                        ) 
            )

        )

)

go

Sample


use [tempdb]
go

set xact_abort on
go

set nocount on
go

declare @table sysname

set @table = '#cache'

if object_id('tempdb..#cache') is not null
begin

	drop table #cache

end

select top 10 *
into   #cache
from   sys.messages tblM

--exec [tempdb]..sp_help #cache

select *
from   [master].[dbo].[itvf_getTempTableCreateStatement]
		(
			@table
		)

if object_id('tempdb..#cache') is not null
begin

	drop table #cache

end
go


Output

 

Summary

Both sp_help and object_id work equally well with temp objects.

In the case of sp_help, please make sure that you reference ( temdpb) as in tempd..sp_help.

And, in the case of object_id please make sure that you are cross-referencing the system tables in tempdb.

And, that you use the full object’s name, tempdb..[objectname], when you attempt to get the object_id.

SQL Server – Alerts – “The SQL Server performance counter ‘Data File(s) Size (KB)’ (instance ‘tempdb’) of object ‘Databases’ is now above the threshold”

Background

Getting quite a bit of email alerts from one of our SQL Server Instance.

Alert Notification

Image

Textual


DATE/TIME:
1/29/2018 9:17:09 AM

DESCRIPTION:
The SQL Server performance counter 'Data File(s) Size (KB)' (instance 'tempdb') of object 'Databases' is now above the threshold of 20000000.00 (the current value is 24428544.00).

Explanation

The message reads that our threshold is 20000000.00 and our current value is 24428544.00.

 

Interpretation

We will see later that the threshold and current current value are represented in KB.

Using Google we can convert KB to MB or convert to GB

Here we go:

  1. Convert to MB
    • Google Link
    • Threshold
      • 20000000.00 ( KB )
      • 20000 MB
    • Current
      • 24428544.00 ( KB )
      • 24428.544 MB
  2. Convert to GB
    • Google Link
    • Threshold
      • 20000000.00 ( KB )
      • 20 GB
    • Current
      • 24428544.00 ( KB )
      • 24.428544 GB

 

 

Alert Definition

GUI

TempDB Alert Properties

TempDB Alert Properties – Tab – General

Image

Explanation
  1. The alert states that if tempdb grows over 20000000 ( KB) or 20 GB an alert should be generated

 

TempDB Alert Properties – Tab – History

 

Metadata

Let us quickly review our current tempdb utilizations.

sp_helpdb

Let us use the most accessible built-in function, sp_helpdb

Code


exec sp_helpdb [tempdb]

Output

 

File utilization – Detail

List tempdb file utilization

Code


select 
          [fileID] 
            = tblSMF.[file_id]

        , [fileType]
            = tblSMF.[type_desc]

        , [fileSymbolicName] 
            = tblSMF.[name]

        , [filePhysicalName] 
            = tblSMF.[physical_name]

        , [fileState] 
            = tblSMF.[state_desc]

        , [isReadOnly]
            = case
				when (tblSMF.[is_read_only] = 1) then 'Yes'
				when (tblSMF.[is_read_only] = 0) then 'No'
				else 'unknown'
			  end


        /*

            , [fileSize] 
                = tblSMF.[size]

        */

        , [fileSizeIn8KPages] 
            = tblSMF.[size]

        , [fileSizeInMB] 
            = ( tblSMF.[size] * 8) / 1000

        , [fileSizeInGB] 
            = ( tblSMF.[size] * 8) 
                    / ( 1000 * 1000) 

        , [growth]
            = 
            (
                CASE is_percent_growth
                    WHEN 1 
                        THEN CONVERT(NVARCHAR(15), growth) + N'%'
                    ELSE 
                        CONVERT
                        (
                              VARCHAR(15)
                            , CONVERT
                                (
                                    BIGINT
                                    , ( tblSMF.[growth] * 8 )
                                        / 1000
                                )
                        ) 
                        + ' MB'
                END
            )

        --, tblSMF.*

from   sys.master_files tblSMF

where  (

            ( tblSMF.database_id = db_id('tempdb') )

       )

order by
          tblSMF.[type] asc
        , tblSMF.[name] asc

Output

 

 

File Utilization – Summary

Summarize tempdb file utilization

Code



;with cteFile
(
	  [fileTypeID]
	, [fileType]
	, [fileSize] 
)
as
(
	select 

			  [fileTypeID]
				= tblSMF.[type]

			,  [fileType]
				= tblSMF.[type_desc]

			, [fileSize] 
				= sum(tblSMF.[size])


	from   sys.master_files tblSMF

	where  (

				( tblSMF.database_id = db_id('tempdb') )

		   )

	group by
		  tblSMF.[type]
		, tblSMF.[type_desc]

)
, cteFileSummary
(
	[fileSize] 
)
as
(
	select 
		 [fileSize] 
				= sum(tblSMF.[size])

	from   sys.master_files tblSMF

	where  (

				( tblSMF.database_id = db_id('tempdb') )

		   )

)

select 
		  cteF.fileType

		, [fileSizeIn8KPages] 
			= cteF.fileSize

		, [fileSizeInGB] 
			= cast
				(
					( cteF.fileSize * 8 * 1.000) 
						/ ( 1000 * 1000) 

					as decimal(20, 2)
				)


		, [fileSizeTotalIn8KPages]
			= cteFS.fileSize

		, [fileSizeTotalInGB] 
			= cast
				(
					( cteFS.fileSize * 8 * 1.000) 
						/ ( 1000 * 1000) 

					as decimal(20, 2)
				)

		, [%]
			= cast
				(
					(
						(cteF.fileSize * 100.000 )
						/  cteFS.fileSize
					)
					as decimal(20, 2)
				)
				

from   cteFile cteF

cross apply cteFileSummary cteFS

order by
		cteF.fileTypeID




Output

Explanation

  1. File Utilization in tempdb
    • Data :- 19.92 GB
    • Log :- 1.05 GB
    • Total :- 20.97 GB

 

Summary

The alerts are valid, tempdb has grown to a little under 21 GB.

Our threshold is at 20 Gb.

Next in line, determine what is driving tempdb usage.

SqlServer – ColumnStore Index – AdventureWorksDW

Background

A couple of weeks ago I touched on the fact that I was interested in Columnar Databases.

In SQL Server, the Columnar Engine is integrated into the traditional RDBMS Row Engine.

 

Use Cases

Went online to search out use cases for Columnar Databases.

Dennis Forbes

The best I found is Dennis Forbes work and it is availed here.

 

DataSets

Wanted to find suitable datasets and explored Sample databases courtesy of Microsoft’s AdventureWorks.

AdventureWorks / AdventureWorksDW

The AdventureWorks dataset are packaged as AdventureWorks & AdventureWorksDW.

GitHub Microsoft SQL Server Sample Databases

The main project site for Microsoft’s sample DB is here.

Per SQL Server v2016, Adventure Works appears to be deprecated in favor of Wide World Importers.

The 2014 Version specific files for Adventure Works are available here.

 

Download & Avail

Please download and avail the backup file for AdventureWorksDW.

 

Tables

Tables in a Data Warehouse database can be viewed through the lenses of Dimension or Fact.

Dimension being what is being measured, and Fact been the value measured.

Table Dictionary

Type Table Description
Dimension
DimAccount  Account
DimCustomer  Customer
DimDate  Date
DimEmployee  Employee
DimProduct  Product
Fact
FactInternetSales  Direct Customer Sales
FactResellerSales  Sales  to resellers

 

List of Tables

Here are the tables that we will be using.

A traditional Clustered Index table, a Clustered Column Index, and a Non-Clustered Column Index.

Table Index
FactResellerSales Row Store – Clustered Index
FactResellerSales.ColumnStore Column Store – Clustered Column Index
FactResellerSales.ColumnStore.NC Row Store with Non-Clustered Column Index

 

Table Metadata

Index Column Names
SQL

use [AdventureWorksDW2014]
go

; with cteTable
as
(
	select 'DimAccount' as [table]
	union 
	select 'DimCustomer'
	union 
	select 'DimDate'
	union
	select 'DimEmployee'
	union
	select 'DimProduct'
	union
	select 'FactInternetSales'
	union
	select 'FactResellerSales'
	union
	select 'FactResellerSales.ColumnStore'
	union
	select 'FactResellerSales.ColumnStore.NC'
) 

, cteTableIndexColumn
as
(

	select 
			[table]
				=  tblSS.[name]
					+ '.'
					+ tblSO.[name]

			, [indexID]
				= tblSI.[index_id]
						
			, [indexType]
				= tblSI.[type_desc]
							
			, [index]
				= tblSI.[name]

			, [column]
				= tblSC.[name]

			, [indexColumnKeyOrdinal]
				= tblSIC.key_ordinal

			, [indexColumnID]
				= tblSIC.index_column_id

	from   sys.schemas tblSS

	inner join sys.objects tblSO

		on tblSS.schema_id = tblSO.schema_id

	inner join sys.indexes tblSI

		on tblSO.object_id = tblSI.object_id

	inner join sys.index_columns tblSIC

		on  tblSI.object_id = tblSIC.object_id
		and tblSI.index_id = tblSIC.index_id

	inner join sys.columns tblSC

		on  tblSIC.object_id = tblSC.object_id
		and tblSIC.column_id = tblSC.column_id

	inner join cteTable cteT
		on tblSO.[name] = cteT.[table]

	where  tblSS.[name] = 'dbo'

)

SELECT 
		[table]
		  = cteTIC.[table]

		, cteTIC.[indexID]

		, cteTIC.[index]

		, cteTIC.[indexType]

		, [column]
		  = STUFF
		  (

			(
				
				select ', ' 
						+ [column]
						+ case
							when indexColumnKeyOrdinal =0 then '^'
							else ''
						  end

				from   cteTableIndexColumn cteTIC_Inner
				
				where  cteTIC.[table] = cteTIC_Inner.[table]
				
				and    cteTIC.[indexID] = cteTIC_Inner.[indexID]

				and    cteTIC.[index] = cteTIC_Inner.[index]

				order by
						  cteTIC_Inner.indexColumnKeyOrdinal
						, [cteTIC_Inner].indexColumnID
							
				FOR XML PATH('')

			)
			, 1 ,1 ,''

		 )

from   cteTableIndexColumn cteTIC

group by
		  cteTIC.[table]
		, cteTIC.[indexID]
		, cteTIC.[index]
		, cteTIC.[indexType]

order by
		  cteTIC.[table]
		, cteTIC.[indexID]
		, cteTIC.[index]

 

Output

Number of Records
SQL

; with cteTable
as
(
	select 'DimAccount' as [table]
	union 
	select 'DimCustomer'
	union 
	select 'DimDate'
	union
	select 'DimEmployee'
	union
	select 'DimProduct'
	union
	select 'FactInternetSales'
	union
	select 'FactResellerSales'
	union
	select 'FactResellerSales.ColumnStore'
	union
	select 'FactResellerSales.ColumnStore.NC'

) 
select 
		[table]
			=  tblSS.[name]
				+ '.'
				+ tblSO.[name]

		, [indexName]
			= tblSI.[name]
					
		, [indexType]
		  = tblSI.[type_desc]

		, [numberofRecords]
			= sum(tblSP.[rows])

		, numberofPagesData
			= sum(tblSPS.in_row_data_page_count)

		, numberofPagesLOB
			= sum(tblSPS.lob_used_page_count)

		, usedPageCount
			= sum(used_page_count)

from   sys.schemas tblSS

inner join sys.objects tblSO

	on tblSS.schema_id = tblSO.schema_id

inner join sys.indexes tblSI

	on tblSO.object_id = tblSI.object_id


inner join sys.partitions tblSP

	on tblSI.object_id = tblSP.object_id
	and tblSI.index_id = tblSP.index_id


inner join sys.dm_db_partition_stats tblSPS

	on tblSP.object_id = tblSPS.object_id
	and tblSP.index_id = tblSPS.index_id
	and tblSP.partition_id = tblSPS.partition_id


inner join cteTable cteT
		on tblSO.[name] = cteT.[table]

where  tblSS.[name] = 'dbo'

group by
		  tblSS.[name]
		, tblSO.[name]
		, tblSI.index_id
		, tblSI.[name]
		, tblSI.[type_desc]

order by
		  tblSS.[name]
		, tblSO.[name]
		, tblSI.index_id

Output

Tabulated
Type Table #Records # of Pages # of Pages LOB # of Used Pages
Dimension
DimAccount  99  2  0  4
DimCustomer  36968  978  0  996
DimDate  7304 57  0  59
DimEmployee  296  29  635  666
DimProduct  1212  251  498  751
Fact
FactInternetSales  60398  1236  0  1254
FactResellerSales  60855  1672  0  1690
FactResellerSales.ColumnStore ( Clustered )  60855  0  242  240
FactResellerSales.ColumnStore ( Non Clustered – Heap)  60855  1681  42  1682
FactResellerSales.ColumnStore ( Non Clustered – INDX_COLUMNSTORE_NONCLUSTERED_SalesAmount)  60855  0  28  28
Explanation
  1. Column Store Indexes
    • Stored in LOB Data pages

 

Space Used
SQL

use [AdventureWorksDW2014]
go

exec sp_spaceused '[dbo].[FactResellerSales]'

exec sp_spaceused '[dbo].[FactResellerSales.ColumnStore]'

exec sp_spaceused '[dbo].[FactResellerSales.ColumnStore.NC]'


Output

 

Explanation
  1. Table Sizes
    • Row Stored Clustered :- 13.063 MB
    • Column Stored – Clustered :-  1.875 MB
    • Row Stored  Heap – Non Clustered Column Index :- 13.352 MB
  2. Compare Row Store To Column Store
    • Column Store is 15% of Row Store

Scenario

Let us ask a fairly straightforward question.

Get top 5 Sales from [dbo].[FactResellerSales].

Table

dbo.FactResellerSales

SQL

select top 5
		  --  ProductStandardCost * OrderQuantity
		  [salesAmount]
			= tblFRS.SalesAmount

from   [dbo].[FactResellerSales] tblFRS

order by
		tblFRS.SalesAmount desc

Query Plan

Query Plan – Warning
Textual

The query memory grant detected "ExcessiveGrant", which may impact the reliability.
Grant size: Initial 1024 KB, Final 1024 KB, Used 16 KB.

Image

 

Query Plan – Explanation
  1. [dbo].[FactResellerSales]
    • The [dbo].[FactResellerSales] table has a lone index, PK_FactInternetSales_SalesOrderNumber_SalesOrderLineNumber
    • The columns  been SalesOrderNumber and SalesOrderLineNumber
  2. We are looking for top Sales Amount ( SalesAmount)
    • We are not going to be helped by the Primary Key Column

 

dbo.[FactResellerSales.ColumnStore]

Objective

We will create a tracking table, [dbo].[FactResellerSales.ColumnStore].

The table will track the [dbo].[FactResellerSales] table.

The only difference between the two tables is that [dbo].[FactResellerSales] will have a Clustered Index and [dbo].[FactResellerSales.ColumnStore] will have a Clustered Column Store Index.

 

Create Table
SQL

DDL is posted on GitHub and here is the Link.

Index - ColumnStore - Clustered
SQL

CREATE CLUSTERED COLUMNSTORE INDEX [INDX_COLUMNSTORE_CLUSTERED]
ON [dbo].[FactResellerSales.ColumnStore]

Explanation
  1. Unlike a Row Store Index:
    • The column list is not explicitly stated
    • All columns are noted as so called “Included Columns
  2. Like traditional Row Store Clustered Index
    • All columns are stored in the Clustered Index
  3. Singularity
    • When a Clustered Column Index exists on table, no other indexes can be defined on that table
Populate Data
SQL

USE [AdventureWorksDW2014]
GO

set nocount on
go

truncate table [dbo].[FactResellerSales.ColumnStore]
GO

insert into [dbo].[FactResellerSales.ColumnStore]
select *
from   [dbo].[FactResellerSales]
go

alter index [INDX_COLUMNSTORE_CLUSTERED]
	on [dbo].[FactResellerSales.ColumnStore] rebuild;
go

update statistics [dbo].[FactResellerSales.ColumnStore] with FULLSCAN;
go

Get Top 5 Records from ColumnStore – Clustered Index
SQL

select top 5 

		  [salesAmount]
			= tblFRS.SalesAmount

from   [dbo].[FactResellerSales.ColumnStore] tblFRS

order by
		tblFRS.SalesAmount desc

Output
Explanation
  1. Columnstore Index Scan ( Clustered )
    • 2%
  2. Sort
    • 98%

 

 

dbo.[FactResellerSales.ColumnStore.NC]

Objective

We will create a new tracking table, [dbo].[FactResellerSales.ColumnStore.NC].

The table will also track the [dbo].[FactResellerSales] table.

Again, the difference between the two tables is that [dbo].[FactResellerSales] will have a Clustered Index and [dbo].[FactResellerSales.ColumnStore] will have a Non Clustered Column Store Index.

 

Create Table
SQL

The SQL for creating the dbo.[FactResellerSales.ColumnStoreNC] is here.


Index – ColumnStore – Non Clustered
SQL

CREATE NONCLUSTERED COLUMNSTORE INDEX [INDX_COLUMNSTORE_NONCLUSTERED_SalesAmount]
ON [dbo].[FactResellerSales.ColumnStore.NC]
(
   [SalesAmount]
)
Populate Data
SQL

USE [AdventureWorksDW2014]
GO

alter index [INDX_COLUMNSTORE_NONCLUSTERED_SalesAmount]
	on [dbo].[FactResellerSales.ColumnStore.NC] disable;

--truncate table [dbo].[FactResellerSales.ColumnStore.NC]

delete from [dbo].[FactResellerSales.ColumnStore.NC]
GO

insert into [dbo].[FactResellerSales.ColumnStore.NC]
select *
from   [dbo].[FactResellerSales]
go

alter index [INDX_COLUMNSTORE_NONCLUSTERED_SalesAmount]
	on [dbo].[FactResellerSales.ColumnStore.NC]	 rebuild;

update statistics [dbo].[FactResellerSales.ColumnStore.NC] with FULLSCAN;

Get Top 5 Records from ColumnStore – NonClustered Index
SQL

select top 5 

	  [salesAmountFormatted]
		= cast(tblFRS.SalesAmount as money)

from   [dbo].[FactResellerSales.ColumnStore.NC] tblFRS

order by
	tblFRS.SalesAmount desc

Output
Explanation
  1. Columnstore Index Scan ( NonClustered )
    • 2%
  2. Sort
    • 98%

 

Compare Queries

Let us compare queries targeting our tables.

Query Plan

Image

Explanation
  1. Original Table
    • Query Cost :- 39%
    • Warning :- The query memory grant detected “ExcessiveGrant”, which may impact the reliability.
      Grant size: Initial 1024 KB, Final 1024 KB, Used 16 KB.
  2. ColumnStore – Clustered
    • Query Cost :- 31%
    • Columnstore Index Scan (Clustered)
  3. ColumnStore – NonClustered
    • Query Cost :- 31%
    • Columnstore Index Scan (NonClustered)

Statistics IO

v-2014
Image – v2014

Explanation – v2014
  1. dbo.FactResellerSales
    • Scan count :- 1
    • Reads
      • Logical reads :- 1682
      • Physical reads :- 3
      • Read Aheads :- 1720
    • LOB Reads
      • Logical reads :- 0
      • Physical reads :- 0
      • Read Aheads :- 0
  2. dbo.[FactResellerSales.ColumnStore]
    • Scan count :- 1
    • Reads
      • Logical reads :- 0
      • Physical reads :- 0
      • Read Aheads :- 0
    • LOB Reads
      • Logical reads :- 38
      • Physical reads :- 1
      • Read Aheads :- 60
  3. dbo.[FactResellerSales.ColumnStore.NC]
    • Scan count :- 1
    • Reads
      • Logical reads :- 0
      • Physical reads :- 0
      • Read Aheads :- 0
    • LOB Reads
      • Logical reads :- 13
      • Physical reads :- 1
      • Read Aheads :- 24
v-2016
Image – v2016

Explain – v2016
  1. Non-Clustered Column Index
    • It is curious that we have both a workfile and worktable reference on Non-Clustered Column Index Search

Time Taken

Image
Image – v2014
Explanation – v2014
  1. The original query took 33%
  2. The query that targeted the Clustered Column Index was at 15%
  3. And, the query that targeted the Non Clustered Column Index was at 52%

 

Image – v2016

Explanation – v2016
  1. The original query took 37%
  2. The query that targeted the Clustered Column Index was at 18%
  3. And, the query that targeted the Non Clustered Column Index was at 43%

 

GitHub

Commited to Github.

The repository is here

Dedication

Paying back Dennis Forbes.

Summary

Admittedly, our dataset is very small.

A Clustered Column Store is much, more smaller than a Row Store table.

This is due to the compression algorithms that lends themselves particularly to a Column Store.

It appears that a Clustered Columnar Index might reduce our query time.

In comparison to a Clustered Column Index, the Nonclustered Column Index is relatively slower.

Additionally in v2016, it has both workfile and worktable references in the Statistics IO.

 

References

  1. SQL Server Dynamic Management Views ( DMVs )
    • sys.dm_db_partition_stats (Transact-SQL)
      Link
    • sys.index_columns (Transact-SQL)
      Link
  2. Thomas LaRock
    • 05 MAY SIZE MATTERS: TABLE ROWS AND DATABASE DATA PAGES
      Link
  3. Martin Schoombee
    • ADVENTUREWORKS DW: GENERATING MORE FACTS
      Link

SqlServer – Tempdb – Error – “Insufficient space in tempdb to hold row versions”

Background

Here reviewing failed jobs and tried to re-run one of them, but still No Go!

TroubleShooting

Error

Image

Textual

Insufficient space in tempdb to hold row versions.
Need to shrink the version store to free up some space in tempdb.
Transaction (id=17270854 xsn=2470235 spid=79 elapsed_time=3101) has been marked as victim and it will be rolled back if it accesses the version store.
If the problem persists, the likely cause is improperly sized tempdb or long running transactions.
Please refer to BOL on how to configure tempdb for versioning.

 

Query

Top Version Store Occupants

Let us see what Objects are in the Version Store.

Code



set nocount off;
go

declare @tblHOBT TABLE
(
	  [id]			int not null identity(1,1)
	, [dbid]		int not null
	, [database]	sysname not null
	, [schema]		sysname not null
	, [object]		sysname not null
	, [objectType] sysname not null
	, [index]		sysname null
	, [hobtID]		sysname not null

)

insert into @tblHOBT
(
	  [dbid]
	, [database]
	, [schema]
	, [object]
	, [objectType]
	, [index]
	, [hobtID]
)
EXECUTE master.sys.sp_MSforeachdb 
	'
		if databasepropertyex(''?'', ''Collation'') is not null
		begin

			USE [?]; 
			select distinct
				      db_id()
					, ''?''
					, tblSS.[name]
					, tblSO.[name]
					, tblSO.[type_desc]
					, tblSI.[name]
					, tblSP.[hobt_id]

			from   sys.objects tblSO

			inner join sys.schemas tblSS

				on tblSO.schema_id = tblSS.schema_id

			inner join sys.indexes tblSI

				on tblSO.object_id = tblSI.object_id

			inner join sys.partitions tblSP

				on  tblSI.object_id = tblSP.object_id
				and tblSI.index_id = tblSP.index_id

			-- On User Table
			where tblSO.[type] = ''U'' 


		end

	'

select 
		[rowNumber]
			= ROW_NUMBER() 
			OVER
				(
					ORDER BY 
						  [database] ASC
						, [schema]   ASC
						, [object]   ASC
						, [index]    ASC
				) 

		, [database] 
		, [schema]   
		, [object] 
		, [objectType] 		  
		, [index]   
		, [count]
			= count(*)
		, [aggregatedRecordLengthInBytes]
			= sum
			(
				aggregated_record_length_in_bytes
			)
		, [aggregatedRecordLengthInKB]
			= sum
			(
				aggregated_record_length_in_bytes
			)
			/ (1024)

from   @tblHOBT tblHOBT

inner join sys.dm_tran_top_version_generators AS tblSTTVG

		on tblHOBT.[dbid] = tblSTTVG.database_id
		and tblHOBT.[hobtID] = tblSTTVG.rowset_id

group by
		  [database] 
		, [schema]   
		, [object]   
		, [objectType] 
		, [index]   

order by 
		  [database] asc
		, [schema]   asc
		, [object]   asc
		, [index]    asc


Output

 

Monitor TempDB Disk Space Used

Monitor Tempdb Disk Space Used By Type ( sys.dm_db_file_space_usage )

Outline

Let us query sys.dm_db_file_space_usage to divvy up tempdb storage allocation by type.

Code

use [tempdb]
go

select 
		  getdate() AS runtime

		, [userObjectKB]
			= SUM (user_object_reserved_page_count)*8

		, [userObjectMB]
			= (SUM (user_object_reserved_page_count)*8) / (1024)

		, [internalObjectKB]
			= SUM (internal_object_reserved_page_count)*8

		, [internalObjectMB]
			= SUM (internal_object_reserved_page_count)*8 / 1024

		, [internalObjectGB]
			= SUM (internal_object_reserved_page_count)*8 / (1024 * 1024)

		, [versionStoreKB]
			= SUM (version_store_reserved_page_count)*8

		, [versionStoreKB]
			= (SUM (version_store_reserved_page_count)*8) / ( 1024)

		, [mixedextentKB]
			= SUM (mixed_extent_page_count)*8

		, [mixedextentMB]
			= SUM (mixed_extent_page_count)*8 / 1024

		, [freeSpaceKB]
			= SUM (unallocated_extent_page_count)*8

		, [freeSpaceMB]
			= SUM (unallocated_extent_page_count)*8
				/ ( 1024)

		, [freeSpaceGB]
			= SUM (unallocated_extent_page_count)*8
				/ ( 1024 * 1024)

FROM [tempdb].sys.dm_db_file_space_usage



Output

Explanation
  1. User Object is 1 MB
  2. Internal Object 166 GB
  3. mixed extent is 7 MB
  4. free space is 18 GB

 

 

Monitor Disk Space Used By Object ( tempdb.sys.system_internals_allocation_units )

Outline

Let us query tempdb.sys.system_internals_allocation_units and tempdb.sys.system_internals_partitions to gather storage allocation by object.

Code

select 
		  [object]
			= quoteName(object_schema_name(tblSIP.object_id))
				+ '.'
				+ quoteName(object_name(tblSIP.object_id))

		, tblSO.[type_desc]

		, [totalPages] 
			= sum(tblSIAU.total_pages)

		, [totalKB] 
			= sum(tblSIAU.total_pages * 8)

from   tempdb.sys.system_internals_allocation_units tblSIAU

JOIN   tempdb.sys.system_internals_partitions tblSIP

		ON tblSIAU.container_id = tblSIP.partition_id

inner join sys.objects tblSO
	on tblSIP.object_id = tblSO.object_id

where  tblSO.[type] not in 
		(
			'S'
		)

group by
		  tblSIP.[object_id]
		, tblSO.[type_desc]

order by
		sum(tblSIAU.total_pages) desc


Output

Explanation
  1. Space usage for individual objects is very miniscule

Summary

An alarm, through logging in the error log, is raised due to inability to grow the “Version Store“.

We checked sys.dm_tran_top_version_generators to see which objects are currently hogging the Version Store, we identified hangFire.server and msdb SQL Server Agent Job related tables.

We don’t really appear to have high uptake.

We went and looked at [tempdb].sys.dm_db_file_space_usage.  And, the biggest occupant seems to be internal objects.

Both tempdb.sys.system_internals_allocation_units and tempdb.sys.system_internals_partitions have very low numbers.

Conclusion

Our problem is not Version Store nor actual tables (system, user, temp ).

But, internal objects …

sys.dm_db_file_space_usage (Transact-SQL)
Link

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

Background

Sent a couple of goodwill posts towards Entity Framework.

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

 

Sample Generated Query

Query Snippet – Original

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


select 1

where 
(
	NOT EXISTS
         (

		SELECT 1 AS [C1]
            
		FROM
                (

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

            
		  WHERE [Extent10].[Container_Id] IS NOT NULL 

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

	) -- NOT EXISTS

) -- SELECT 1


Query Snippet – Revised

Here is a rewrite



select 1

where not exists 
(

	SELECT 
			1

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

) -- SELECT 1


Explanation

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

 

Obviously, we will have to test things out.

 

 

Query Plan

Query Snippet – Original

Query Snippet – Revised

Explanation

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

 

Statistics I/O

Query Snippet – Original

 

Query Snippet – Revised

Tabulate

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

 

 

Explanation

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

 

Summary

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

What they are and how to measure their cost.

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

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

 

SQL Server – 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

           

           

       

       

 

  • 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

         

         

     

     

 

 

  • 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, from sensing their diligence, yet free spirit in sharing.

 

Dedicated

Dedicated to LBushkin.

 

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.