You will also need the 416 Sudz files (~5.4 GiB) (actually 401, since 15 of them are NOT used/empty) which you can get from the 1to90nly github and the sudz program to match your OS (also from a 1to9Only github . My OS is MX-Linux.
IF you have some reasonably different test cases I can run - especially corner / edge cases please let me know!
Here are a few runs:
Hidden Text: Show
- Code: Select all
find_minlex('123456789457389612896721354231645978649817523785293146318564297562978431974132865')
Lists created
Start time is: 2025.8.6 - 17:5:16
Index = 5472730527, string = 123456789457389612896721354231645978649817523785293146318564297562978431974132865
End time is 2025.8.6 - 17:5:16
We done!
find_minlex(1)
Lists created
Start time is: 2025.8.6 - 17:9:5
Index = 1, String = 123456789456789123789123456214365897365897214897214365531642978642978531978531642
End time is 2025.8.6 - 17:9:6
We done!
find_minlex(5472730538)
Lists created
Start time is: 2025.8.6 - 17:11:7
Index = 5472730538, String = 123456789457893612986217354274538196531964827698721435342685971715349268869172543
End time is 2025.8.6 - 17:11:7
We done!
find_minlex(5472730539)
Lists created
Must be an integer in range of 1 to 5472730538
We done!
find_minlex(0)
Lists created
Must be an integer in range of 1 to 5472730538
We done!
find_minlex('213456789457893612986217354274538196531964827698721435342685971715349268869172543')
Lists created
We done!
The Python3 Script
Hidden Text: Show
- Code: Select all
import csv
import json
import subprocess
from datetime import datetime
import os
sudz_min_index = 1
sudz_max_index = 5472730538
sudz_min_string = '123456789456789123789123456214365897365897214897214365531642978642978531978531642'
sudz_max_string = '123456789457893612986217354274538196531964827698721435342685971715349268869172543'
with open('config.json') as f:
config = json.load(f)
db_dir = config["db_dir"]
sudz_cmd = config["sudz_cmd"]
sudz_dir = os.path.join(db_dir, 'sudz_files')
csv_file = 'docs/GangDB.csv'
gangs = []
sudz_indices = []
sudz_strings = []
def find_sudz_index(value):
gang = '0'
sudz_str = '0'
for i, val in enumerate(sudz_indices):
num = int(val)
if value < num:
gang = gangs[i]
sudz_str = sudz_strings[i]
break
if gang != '0':
sudz_file = gang + '.sudz'
the_file = os.path.join(sudz_dir, sudz_file)
if i > 0:
sudz_idx = sudz_indices[i - 1]
else:
sudz_idx = '1'
#sudz_idx = sudz_indices[i - 1]
idx_num = int(sudz_idx)
idx_dif = value - idx_num + 1
idx = str(idx_dif) + 'p'
report_time('Start time is: ')
p1 = subprocess.run([sudz_cmd, '-f%g', the_file], stdout=subprocess.PIPE, text=True)
p2 = subprocess.run(['sed', '-n', idx], stdout=subprocess.PIPE, text=True, input=p1.stdout)
temp_str = p2.stdout.strip()
result_list = temp_str.split(':')
result_string = result_list[0]
print(f' Index = {value}, String = {result_string}')
report_time(f'End time is')
def find_sudz_string(value):
gang = '0'
sudz_index = '0'
value_num = int(value)
for i, item in enumerate(sudz_strings):
item_num = int(item)
if value_num <= item_num:
gang = gangs[i]
if i > 0:
sudz_index = int(sudz_indices[i - 1])
else:
sudz_index = 0
break
if gang != '0':
sudz_file = gang + '.sudz'
the_file = os.path.join(sudz_dir, sudz_file)
report_time('Start time is: ')
p1 = subprocess.run([sudz_cmd, '-f%g', the_file], stdout=subprocess.PIPE, text=True)
p2 = subprocess.run(['grep', '-n', value], stdout=subprocess.PIPE, text=True, input=p1.stdout)
temp_str = p2.stdout.strip()
result_list = temp_str.split(':')
result_index = int(result_list[0]) + sudz_index - 1
result_string = result_list[1]
print(f'Index = {result_index}, string = {result_string}')
report_time(f'End time is')
def find_minlex(value):
if isinstance(value, int):
if value in range(sudz_max_index + 1) and value > 0:
find_sudz_index(value)
else:
print(f'Must be an integer in range of 1 to {sudz_max_index}')
elif isinstance(value, str) and len(value) == 81:
if value >= sudz_min_string and value <= sudz_max_string:
find_sudz_string(value)
def create_lists():
with open(csv_file, 'r') as c_file:
csv_reader = csv.reader(c_file)
for line in csv_reader:
gangs.append(line[0])
sudz_indices.append(line[1])
sudz_strings.append(line[2])
print(f'Lists created')
def report_time(msg):
current_time = datetime.now()
time_string = (f'{current_time.year}.{current_time.month}.{current_time.day} - '
f'{current_time.hour}:{current_time.minute}:{current_time.second}')
print(f'{msg} {time_string}')
if __name__ == '__main__':
create_lists()
find_minlex('123456789457389612896721354231645978649817523785293146318564297562978431974132865')
print(f'We done!')
You will also need a "config.json" file in same directory as the code: (the db_index entry is NOT needed!)
- Code: Select all
{
"db_dir": "PATH-TO-SUDZ-FILE",
"db_index": 1,
"sudz_cmd": "PATH-TO-SUDZ-CMD"
}
You will also need a GanDB.csv file in a docs sub-folder:
Hidden Text: Show
- Code: Select all
001, 0001007171, 123456789456789123789123456267834591348915672591267834672348915834591267915672348
002, 0026509253, 123456789456789123789123465297831654641295837835647291378912546514368972962574318
003, 0043047340, 123456789456789123789123564295364871637518942841972635374691258518247396962835417
004, 0051465246, 123456789456789123789132465274591836638274951915863247347925618592618374861347592
005, 0100203037, 123456789456789123789132546298675314537941862614823975361297458875364291942518637
006, 0196432079, 123456789456789123789132564298675431574813692631924875367591248812347956945268317
007, 0212197522, 123456789456789123789231564275963418638174295941528637367842951592317846814695372
008, 0217503802, 123456789456789123789231645274863591538194267961527834395672418617348952842915376
009, 0225639815, 123456789456789123798132465274815936639247518815693247347961852582374691961528374
010, 0272814008, 123456789456789123798132546289675314374291865561348972615823497837964251942517638
011, 0319602404, 123456789456789123798132564289675341374291856561348972615823497842917635937564218
012, 0365779674, 123456789456789123798213564289675431375841692614392857542138976837964215961527348
013, 0381120068, 123456789456789123798213654287134596364895271915672348541328967679541832832967415
014, 0426517338, 123456789456789123798231564279865431645317892831942675367594218582173946914628357
015, 0472118096, 123456789456789123798231645287965314561348297934172568312897456679514832845623971
016, 0473749672, 123456789456789123897231564248573691671924835935168247369815472582347916714692358
017, 0488843213, 123456789456789123897231645285147936639825471741693258364512897572968314918374562
018, 0533944813, 123456789456789132789123546298647351375912468614538297567294813842361975931875624
019, 0578777236, 123456789456789132789132546298675413375914628614823957562391874841267395937548261
020, 0667559762, 123456789456789132789132564298675413574913826631824975367598241845261397912347658
021, 0711596330, 123456789456789132789213456298675341375124698614938275542391867861547923937862514
022, 0797223889, 123456789456789132789213645298675413574931826631842957367128594845397261912564378
023, 0839935011, 123456789456789132789213654298674513574321896631598247312847965865932471947165328
024, 0925037384, 123456789456789132789231546298675413574913628631842975367524891815397264942168357
025, 0966884423, 123456789456789132789231564298674351547318926631592478362947815874165293915823647
026, 1008219814, 123456789456789132879231564298675413534812697617943825345128976761394258982567341
027, 1012675318, 123456789456789231789123645274961853395842176861375492537618924642597318918234567
028, 1053778232, 123456789456789231789132546298674315375821694614593872531248967862917453947365128
029, 1058369623, 123456789456789231789231564274518396538962417961374852395627148617843925842195673
030, 1063033884, 123456789456789231789312456294873165365194872871265394542638917618927543937541628
031, 1076640093, 123456789456789231798213645287694513365128974941537826532861497614972358879345162
032, 1117337800, 123456789457189236689237145298765314361842957745391862512673498836924571974518623
033, 1197806463, 123456789457189236689237154298765413564913872731842965372698541846521397915374628
034, 1276982073, 123456789457189236689237415298765341564813972731942658376598124842671593915324867
035, 1354961856, 123456789457189236689237451298765314564913872731842965376594128845321697912678543
036, 1393498154, 123456789457189236689237514298765341516394872734812695375921468861543927942678153
037, 1469645121, 123456789457189236689237541298765413564913872731842965376598124845621397912374658
038, 1544150786, 123456789457189236689273145298765413564831972731942658376594821815627394942318567
039, 1618305350, 123456789457189236689273154298765413564931872731842965372698541816524397945317628
040, 1690476797, 123456789457189236689273415298765341564831972731942658376598124842617593915324867
041, 1726530252, 123456789457189236689273451298765314536941872741328965375694128814532697962817543
042, 1797082542, 123456789457189236689273514298765341564931872731842965376594128815627493942318657
043, 1866520117, 123456789457189236689273541298765413564931872731842965376598124815624397942317658
044, 1934499068, 123456789457189236689327145298765413564831972731942658376594821842613597915278364
045, 1968403089, 123456789457189236689327154298765341536914827714238695375891462861542973942673518
046, 2034740496, 123456789457189236689327415298765341564831972731942658376598124842613597915274863
047, 2100620657, 123456789457189236689327451298765314564931872731842965376594128845213697912678543
048, 2165617038, 123456789457189236689327514298765341564931872731842965376294158842513697915678423
049, 2229515100, 123456789457189236689327541298765413564931872731842965376598124845213697912674358
050, 2291707320, 123456789457189236689372145298765413564831972731924658376218594845697321912543867
051, 2353398795, 123456789457189236689372154298765413564931872731824965376298541842513697915647328
052, 2413591180, 123456789457189236689372415298765341564831972731924568376598124845213697912647853
053, 2443557564, 123456789457189236689372451298765314536941872741238965375694128814523697962817543
054, 2473292059, 123456789457189236689372514298765341365941872741238965516827493832694157974513628
055, 2532023572, 123456789457189236689372541298765413564931872731824965376298154842513697915647328
056, 2589287390, 123456789457189236689723145298675413564831972731942658376218594842597361915364827
057, 2646320665, 123456789457189236689723154298675413564931872731842695376514928845297361912368547
058, 2701715221, 123456789457189236689723415298675341564831972731942658376598124812364597945217863
059, 2756738151, 123456789457189236689723514298675341564931872731842965376594128845217693912368457
060, 2810756665, 123456789457189236689723541298675413564931872731842695376598124812364957945217368
061, 2863721535, 123456789457189236689732145298675413564813972731924658375291864842567391916348527
062, 2915964027, 123456789457189236689732154298675413564913872731824965376298541842561397915347628
063, 2967209027, 123456789457189236689732415298675341564813972731924658376598124842361597915247863
064, 3017749769, 123456789457189236689732514298675341564913872731824965376591428845267193912348657
065, 3067393896, 123456789457189236689732541298675413564913872731824965376598124845261397912347658
066, 3116584874, 123456789457189236698237145289765413564813972731942658376524891845691327912378564
067, 3140662174, 123456789457189236698237154289765341365914872741823965514372698876591423932648517
068, 3188640980, 123456789457189236698237415289765341564813972731942568376598124845321697912674853
069, 3235700507, 123456789457189236698237514289765341564913872731842695376594128842671953915328467
070, 3281932088, 123456789457189236698237541289765413564913872731842695376594128845321967912678354
071, 3304647883, 123456789457189236698273145289765314361924857745318962512637498874591623936842571
072, 3349426087, 123456789457189236698273154289765413564931872731842965372698541816524397945317628
073, 3393479556, 123456789457189236698273415289765341564831972731942658376598124842617593915324867
074, 3436881463, 123456789457189236698273514289765341564931872731842965376594128815627493942318657
075, 3458280269, 123456789457189236698273541289765314536941872741328965375694128814532697962817453
076, 3500341709, 123456789457189236698327145289765413564831972731942658376594821842613597915278364
077, 3541657834, 123456789457189236698327154289765413564931872731842965376298541842513697915674328
078, 3582229079, 123456789457189236698327415289765341564831972731942658376598124842613597915274863
079, 3622511526, 123456789457189236698327541289765413564931872731842965376294158842513697915678324
080, 3661744744, 123456789457189236698372145289765413564831972731924658376218594845697321912543867
081, 3700267063, 123456789457189236698372154289765413564931872731824695376298541845613927912547368
082, 3738148976, 123456789457189236698372415289765341564831972731924568376298154812543697945617823
083, 3775609169, 123456789457189236698372514289765341564931872731824695346298157812547963975613428
084, 3794069373, 123456789457189236698372541289765314546931872731248965375624198814593627962817453
085, 3830197176, 123456789457189236698723145289675413564831972731942658376218594842597361915364827
086, 3865781945, 123456789457189236698723154289675413564931872731842965376298541812564397945317628
087, 3900603476, 123456789457189236698723415289675341564831972731942658376598124812364597945217863
088, 3934938192, 123456789457189236698723514289675341564931872731842965376594128815267493942318657
089, 3968707354, 123456789457189236698732145289675413564813972731924658375291864842567391916348527
090, 4001881755, 123456789457189236698732154289675413564913872731824965376298541842561397915347628
091, 4034401792, 123456789457189236698732415289675341564813972731924568376591824845267193912348657
092, 4066347333, 123456789457189236698732514289675341564913872731824965376591428845267193912348657
093, 4097568405, 123456789457189236869237145298765413645813972731942658384691527576324891912578364
094, 4128147815, 123456789457189236869237514298765341645913872731842695386591427512374968974628153
095, 4158125547, 123456789457189236869273145298765413645831972731942658382617594576394821914528367
096, 4187515608, 123456789457189236869273154298765413645931872731842965384597621572614398916328547
097, 4202033976, 123456789457189236869273415298764351546391872731528964375642198682917543914835627
098, 4216406420, 123456789457189236869273514298765341536941872714328695345812967681597423972634158
099, 4244674441, 123456789457189236869327154298765413645931872731842965386274591512698347974513628
100, 4272524394, 123456789457189236869327415298765341645831972731942658382614597574298163916573824
101, 4286293248, 123456789457189236869327514298765341615243897734891625341672958586934172972518463
102, 4313222701, 123456789457189236869372145298765413645831972731924658382647591514298367976513824
103, 4339605507, 123456789457189236869372154298765413645931872731824695386547921512698347974213568
104, 4343964821, 123456789457189236869372415298531674534267891716894352382945167645713928971628543
105, 4369962117, 123456789457189236869372514298765341645931872731824695316547928584293167972618453
106, 4395429314, 123456789457189236869723145298675413645831972731942658386217594572394861914568327
107, 4420317842, 123456789457189236869723154298675413645931872731842965386214597574398621912567348
108, 4444741142, 123456789457189236869723514298675341645931872731842965386594127512367498974218653
109, 4468729468, 123456789457189236869732145298675413645813927731924658386291574514367892972548361
110, 4492271395, 123456789457189236869732154298675413645913872731824965386297541512348697974561328
111, 4515341925, 123456789457189236896237145289765413645813972731942568378594621514628397962371854
112, 4537951067, 123456789457189236896237154289765413645913872731824965378692541512348697964571328
113, 4560051525, 123456789457189236896237514289765341645913872731842695374621958568394127912578463
114, 4570931039, 123456789457189236896273145289765314631948572745321968378594621514632897962817453
115, 4592309101, 123456789457189236896273154289765413645931872731842965378694521514328697962517348
116, 4613294275, 123456789457189236896273514289765341645931872731842965372694158514328697968517423
117, 4633969247, 123456789457189236896327145289765413645831927731942568374298651518674392962513874
118, 4654076363, 123456789457189236896327154289765413645931872731842965368274591512698347974513628
119, 4673930969, 123456789457189236896327514289765341645931872731842965362518497574693128918274653
120, 4683663939, 123456789457189236896372145289765314645231978731948562318594627574623891962817453
121, 4702748427, 123456789457189236896372154289765413645931872731824695374698521568213947912547368
122, 4712239752, 123456789457189236896372514269847351584931672731625948312794865675218493948563127
123, 4730772033, 123456789457189236896723154289675413645931872731842965378594621564218397912367548
124, 4739914518, 123456789457189236896723514289674351371895462564312897648937125715268943932541678
125, 4757989787, 123456789457189236896732154289675413645913827731824695378561942564298371912347568
126, 4775665093, 123456789457189236896732514289675341645913872731824965374591628568247193912368457
127, 4793210845, 123456789457189236968237154296875413745913862831642975389764521574321698612598347
128, 4810200943, 123456789457189236968237514296875341745913862831642957389761425512394678674528193
129, 4818570416, 123456789457189236968273514296847351741532968835961472379614825514328697682795143
130, 4834977121, 123456789457189236968327154296875413745931862831264975389612547514793628672548391
131, 4851167117, 123456789457189236968327514296875341745931862831642957382714695519268473674593128
132, 4866958886, 123456789457189236968372154296847513745931862831625947389714625574268391612593478
133, 4869572231, 123456789457189236968372514296531478314798625785624391531847962649213857872965143
134, 4884934895, 123456789457189236968723154296875413745931862831642975384597621519268347672314598
135, 4900207371, 123456789457189236968732154296875413745913862831624975389267541572341698614598327
136, 4915125407, 123456789457189236986237154298765413645913872731842695379628541512374968864591327
137, 4922379857, 123456789457189236986273154298764315574321968631895472319548627745632891862917543
138, 4936762932, 123456789457189236986327154298765413645931872731842965379614528564278391812593647
139, 4943774646, 123456789457189236986372154298764315645231978731598462374625891519843627862917543
140, 4957512807, 123456789457189263689237145298765431564913872731842956372694518845321697916578324
141, 4970957959, 123456789457189263689237415298765341564913872731842956312674598875391624946528137
142, 4977551764, 123456789457189263689237451298765314534812697716394528375928146861543972942671835
143, 4990469881, 123456789457189263689237514298765431564913872731824695376592148845371926912648357
144, 4996873150, 123456789457189263689273154298765341361824975745391826512637498836942517974518632
145, 5009441286, 123456789457189263689273415298765341564931872731842596376594128815627934942318657
146, 5021796006, 123456789457189263689273451298765314564931872731842695376594128815327946942618537
147, 5033832475, 123456789457189263689273514298765431564931872731824695376512948845397126912648357
148, 5039763548, 123456789457189263689273541298764315364521897715938426546817932832695174971342658
149, 5045712608, 123456789457189263689327154298765341534291876716834592342978615861542937975613428
150, 5057290460, 123456789457189263689327415298765341564931872731842596345618927876293154912574638
151, 5068726093, 123456789457189263689327514298765431564931872731248956376894125845612397912573648
152, 5079882067, 123456789457189263689327541298765314564931872731842695376214958845693127912578436
153, 5090553553, 123456789457189263689372145298765431564931872731824956346297518812543697975618324
154, 5101079288, 123456789457189263689372154298765431564931872731248695376524918812693547945817326
155, 5111267922, 123456789457189263689372415298765341564931872731824596376518924842693157915247638
156, 5121327539, 123456789457189263689372451298765314564931827731824596376518942842693175915247638
157, 5131133352, 123456789457189263689372514298765431564931872731824956312597648876243195945618327
158, 5140762672, 123456789457189263689723145298675431564931872731842596376518924812394657945267318
159, 5150252894, 123456789457189263689723154298675431564931872731842695376514928845297316912368547
160, 5159533018, 123456789457189263689723451298675314564931872731842695376514928812397546945268137
161, 5168377130, 123456789457189263689732145298675431564913827731824956376298514815347692942561378
162, 5177005229, 123456789457189263689732154298675431564913827731824596376248915845391672912567348
163, 5185434822, 123456789457189263689732415298675341564913872731824596376598124845261937912347658
164, 5193661966, 123456789457189263689732451298675314564913827731824596376598142842361975915247638
165, 5201660253, 123456789457189263689732514298675431564913827731824956376548192842391675915267348
166, 5209473666, 123456789457189263689732541298675314564813972731924658376248195812597436945361827
167, 5213312815, 123456789457189263698237154289764531541823976736591842315672498864915327972348615
168, 5220860867, 123456789457189263698237415289765341564913872731842956375628194812594637946371528
169, 5228210154, 123456789457189263698237451289765314564913827731824596312648975875391642946572138
170, 5235356961, 123456789457189263698237514289765431564913872731842695346571928812694357975328146
171, 5242350383, 123456789457189263698273145289765431564931872731842596376518924812394657945627318
172, 5249179184, 123456789457189263698273415289765341564931872731842596376518924812394657945627138
173, 5255854095, 123456789457189263698273451289765314564931827731824596376512948842697135915348672
174, 5262330343, 123456789457189263698273514289765431564931872731842695376594128815327946942618357
175, 5265496808, 123456789457189263698327145289765314365814927714932658541273896876591432932648571
176, 5271702771, 123456789457189263698327154289765431564931872731842596376514928815293647942678315
177, 5277743402, 123456789457189263698327415289765341564931872731842596375618924812594637946273158
178, 5283626336, 123456789457189263698327451289765314564931872731248596375612948812594637946873125
179, 5289439084, 123456789457189263698327514289765431564931872731842695376594128815273946942618357
180, 5295054166, 123456789457189263698372154289765431564931872731824596376248915812593647945617328
181, 5300515553, 123456789457189263698372415289765341564931872731824596345618927812597634976243158
182, 5305882967, 123456789457189263698372514289765431564931872731824695346517928875293146912648357
183, 5311105035, 123456789457189263698372541289765314564831972731924856312547698845693127976218435
184, 5316177984, 123456789457189263698732145289675431564813927731924658376298514812547396945361872
185, 5321096261, 123456789457189263698732154289675431564913872731824695376541928845297316912368547
186, 5325875139, 123456789457189263698732451289675314564913872731824695376541928845297136912368547
187, 5330516142, 123456789457189263869237154298765431645321978731948526316592847574813692982674315
188, 5335055766, 123456789457189263869237415298765341645913872731842596382694157516378924974521638
189, 5339463050, 123456789457189263869237514298765431645913827731824956384571692576392148912648375
190, 5341649872, 123456789457189263869273451298764315536921847741538692382695174615347928974812536
191, 5345870693, 123456789457189263869327415298765341645931872731842596372618954586294137914573628
192, 5350028790, 123456789457189263869327451298765314645931872731842596374698125586213947912574638
193, 5354098948, 123456789457189263869327514298765431645931872731248695384612957572893146916574328
194, 5357956051, 123456789457189263869372145298765431645913872731248956384691527512837694976524318
195, 5361741679, 123456789457189263869372154298765431645931872731248695384517926572694318916823547
196, 5365435153, 123456789457189263869372514298765431645931872731248695382694157574813926916527348
197, 5368990834, 123456789457189263896237145289765431645913872731842596372598614564371928918624357
198, 5372443923, 123456789457189263896237154289765431645913872731842695312698547564371928978524316
199, 5375789590, 123456789457189263896237451289765314645391827731842695372918546518674932964523178
200, 5379041817, 123456789457189263896327145289765431645931872731842596364218957572694318918573624
201, 5382207071, 123456789457189263896327154289765431645931872731842596374618925518293647962574318
202, 5385271133, 123456789457189263896327415289765341645931872731248596378612954514893627962574138
203, 5388237442, 123456789457189263896327451289765314645931872731248596378612945564893127912574638
204, 5391170332, 123456789457189263896327514289765431645931872731842695374218956518694327962573148
205, 5394011712, 123456789457189263896327541289765314645913827731842695312674958578291436964538172
206, 5396713697, 123456789457189263896372145289765431645913872731248956378521694562894317914637528
207, 5399342485, 123456789457189263896372154289765431645931827731824695362547918514698372978213546
208, 5401874683, 123456789457189263896372451289765314645931872731248596362517948514893627978624135
209, 5404318643, 123456789457189263968327145296875431745931826831642957389514672512768394674293518
210, 5405562602, 123456789457189263968327154294875631736941825815632497342518976579264318681793542
211, 5407879773, 123456789457189263968327415296875341745913826831642597384591672579268134612734958
212, 5410237627, 123456789457189263968327514296875431745931826831642957374518692519264378682793145
213, 5411375216, 123456789457189263968327541296745318735891426841632975382564197574918632619273854
214, 5412458444, 123456789457189263968372145296837514375941826814625937539268471681794352742513698
215, 5414641755, 123456789457189263986327145298765431645931827731842956374618592569274318812593674
216, 5416886508, 123456789457189263986327154298765431645931872731248695362894517579612348814573926
217, 5419030185, 123456789457189263986327451298765314645931872731842695369218547572694138814573926
218, 5421130983, 123456789457189326689237451298765143564913872731824695342571968876392514915648237
219, 5422138448, 123456789457189326689237514298715643536894271714362895362971458871543962945628137
220, 5424108763, 123456789457189326689237541298765413564913872731824695342571968876392154915648237
221, 5425950485, 123456789457189326689273145298765431561834297734912568375628914842591673916347852
222, 5427823584, 123456789457189326689273451298765143564391278731842695376928514845617932912534867
223, 5429595885, 123456789457189326689273541298765413564321978731948652342617895876592134915834267
224, 5429943662, 123456789457189326689327154296735841745891632831642597368274915574918263912563478
225, 5431912104, 123456789457189326689327451298765143564931278731842695376298514815674932942513867
226, 5433589808, 123456789457189326689327541298765413564813972731294865345671298876932154912548637
227, 5435110809, 123456789457189326689372415298765143541238967736914852362891574874523691915647238
228, 5436609543, 123456789457189326689372541298765413564913278731824695376298154815647932942531867
229, 5438124909, 123456789457189326689723145298675431564831972731942568376598214845217693912364857
230, 5439582007, 123456789457189326689723415298675143564831972731942568376518294845297631912364857
231, 5440913192, 123456789457189326689732145298675431564321978731948652315897264876214593942563817
232, 5442192761, 123456789457189326689732415298675143564321978731948652345297861876513294912864537
233, 5443454774, 123456789457189326689732514298675431564391278731248695312964857876513942945827163
234, 5444673518, 123456789457189326689732541298675413564813972731294865376928154845361297912547638
235, 5445060160, 123456789457189326698237145286741593735968412941325678379612854514893267862574931
236, 5446243123, 123456789457189326698237541289765413561394278734821695375948162816572934942613857
237, 5446813295, 123456789457189326698273514289734651376591248514628973741962835865317492932845167
238, 5447924378, 123456789457189326698273541289765413561348972734921865345617298812594637976832154
239, 5449000929, 123456789457189326698732415289675143564321978731948562315864297842597631976213854
240, 5449167961, 123456789457189326869372514298543671514768932736921845345617298672894153981235467
241, 5449701901, 123456789457189623689237145298715364315864972746392851562971438871543296934628517
242, 5450749984, 123456789457189623689237154298765431561843297734921568342618975876594312915372846
243, 5451724575, 123456789457189623689273145298765431561834297734921568345618972876592314912347856
244, 5452692363, 123456789457189623689273154298765431564931278731842965342618597876594312915327846
245, 5453147673, 123456789457189623689273541298761354536948217714325968362894175871532496945617832
246, 5454062922, 123456789457189623689327145298765431561843297734291568312974856876532914945618372
247, 5454563459, 123456789457189623689327154298763541361542897574918362742635918836291475915874236
248, 5455346795, 123456789457189623689372145298765431536214897741938562312647958874593216965821374
249, 5456169291, 123456789457189623689372154298765431561843297734921568342618975876594312915237846
250, 5456546547, 123456789457189623689372514298764351346521897715938246531297468874615932962843175
251, 5456955103, 123456789457189623689723145298675314371248956546391278765832491834917562912564837
252, 5457392895, 123456789457189623689723154298645371345917862761832495574261938836594217912378546
253, 5457779924, 123456789457189623689723415298675134316294578574318296765832941842961357931547862
254, 5457920360, 123456789457189623689723451296837514318645972574291836762918345831564297945372168
255, 5458282322, 123456789457189623689723514298645137376291845541378962765832491834917256912564378
256, 5458637024, 123456789457189623689723541298641357314975862765832194542318976836297415971564238
257, 5459312698, 123456789457189623689732145298675431564391872731248956376514298815927364942863517
258, 5459974435, 123456789457189623689732154298675431564391278731248596376824915815967342942513867
259, 5460287644, 123456789457189623689732415298574361546391278731268594315927846874615932962843157
260, 5460910835, 123456789457189623689732451298675314564321978731948562315864297876293145942517836
261, 5461456918, 123456789457189623689732514298675431564391872731248956315864297876923145942517368
262, 5461981722, 123456789457189623689732541298675314561394278734218965315827496876943152942561837
263, 5462515889, 123456789457189623698237145289765431561943872734821596345672918812594367976318254
264, 5463019273, 123456789457189623698237154289765431561943278734821596345692817812374965976518342
265, 5463484258, 123456789457189623698237541289765314536841972714392865362974158845613297971528436
266, 5463946044, 123456789457189623698273145289765431561834297734912568345691872812347956976528314
267, 5464387689, 123456789457189623698273154289765431561934278734821596345692817812347965976518342
268, 5464806462, 123456789457189623698327145289765431564831297731942568315694872842573916976218354
269, 5465230610, 123456789457189623698327154289765431531942876746813592362574918874291365915638247
270, 5465609051, 123456789457189623698327514289765431546213897731948256362571948815694372974832165
271, 5465970936, 123456789457189623698372145289765431561943278734821596312594867845637912976218354
272, 5466331757, 123456789457189623698372154289765431564213897731894562315948276842637915976521348
273, 5466507918, 123456789457189623698732145289675314374218956516394278765823491831947562942561837
274, 5466679941, 123456789457189623698732154289617435316594278745823916562978341834261597971345862
275, 5466845868, 123456789457189623698732415289645371374218956516397248765823194831974562942561837
276, 5467000562, 123456789457189623698732514289645137376291845514378962765823491842917356931564278
277, 5467151226, 123456789457189623698732541289617435316594278745823916571948362862375194934261857
278, 5467460625, 123456789457189623869237145298765431641328597735941268384572916516894372972613854
279, 5467605552, 123456789457189623869273145298761534536948217741325896312597468674832951985614372
280, 5467747372, 123456789457189623869273154298764315546321978731598246315947862674832591982615437
281, 5467884973, 123456789457189623869273451298761534536948172741325896315697248674832915982514367
282, 5468172640, 123456789457189623869327154298765431635214897741938562316842975572691348984573216
283, 5468418733, 123456789457189623869372145298765431645831972731294856386517294512948367974623518
284, 5468542213, 123456789457189623869372154298763541346521978715948236571894362634215897982637415
285, 5468666283, 123456789457189623896237145289715364531964278674823951315678492742591836968342517
286, 5468783253, 123456789457189623896237154289741365645823971731695842372964518514378296968512437
287, 5468900604, 123456789457189623896237415289745361534961278671823954345678192712594836968312547
288, 5469011022, 123456789457189623896237451289741536645823197731695842378964215514372968962518374
289, 5469049010, 123456789457189623896237514268974135371865492945312867534691278682743951719528346
290, 5469158361, 123456789457189623896237541289745136534691872671823495318572964762914358945368217
291, 5469369628, 123456789457189623896327145289765431645231897731948562362574918514893276978612354
292, 5469579264, 123456789457189623896327154289765431645231897731948562378612945514893276962574318
293, 5469768425, 123456789457189623896327415289765341635241978741893256368574192514932867972618534
294, 5469957191, 123456789457189623896327451289765314645213897731894562362571948514938276978642135
295, 5470128775, 123456789457189623896327514289765431641893257735241968312574896564918372978632145
296, 5470281408, 123456789457189623896372145289765431645231897731894562318947256574623918962518374
297, 5470429214, 123456789457189623896372154289765431534921867671843295345618972762594318918237546
298, 5470500169, 123456789457189623896372451289763514645918372731524968312647895564891237978235146
299, 5470633471, 123456789457189623968327145296875431741932568835641972312794856579268314684513297
300, 5470773225, 123456789457189623968327154296875431741293865835641972312968547589734216674512398
301, 5470892451, 123456789457189623968327415296875341745631892831294567384512976519768234672943158
302, 5470912654, 123456789457189623968372145285793461631248597749561238314825976592637814876914352
303, 5470974900, 123456789457189623968372154296837541735241968841695372374518296512964837689723415
304, 5471038513, 123456789457189623986327145298745361564213897731968452342691578675832914819574236
305, 5471108182, 123456789457189623986327154298745361534691278671832945365978412742513896819264537
306, 5471166993, 123456789457189623986327415298745361534691278671832954365214897749568132812973546
307, 5471188218, 123456789457189623986327451269741538541638297738592146312864975695273814874915362
308, 5471245160, 123456789457189623986327514298745361534691278671832945315274896749568132862913457
309, 5471300280, 123456789457189623986327541298745136534691872671832495365978214742513968819264357
310, 5471349707, 123456789457189632689237145298714563314625978765398421536972814871543296942861357
311, 5471441576, 123456789457189632689273145298765314374891526561324978736548291815932467942617853
312, 5471531559, 123456789457189632689273154298765413564831297731942568376594821815327946942618375
313, 5471612324, 123456789457189632689273514298765143365914278741328956574632891836591427912847365
314, 5471655594, 123456789457189632689327154298715463315264897764893521576931248831542976942678315
315, 5471730188, 123456789457189632689372145298765314546231897731894526315947268874623951962518473
316, 5471799200, 123456789457189632689372154298765413376214895514938267762591348845623971931847526
317, 5471872827, 123456789457189632689723145298675413364218597571934268736591824845362971912847356
318, 5471935276, 123456789457189632689723514298675143561394278734218956312947865876532491945861327
319, 5471994399, 123456789457189632689732145298675413536841297741293568312967854865324971974518326
320, 5472051979, 123456789457189632689732154298675413561394278734218596312947865876523941945861327
321, 5472099889, 123456789457189632689732514298675143561394278734218956312947865876523491945861327
322, 5472144765, 123456789457189632689732541298675413531924867746318295362897154815243976974561328
323, 5472191617, 123456789457189632698237145289765314365914827741328596512643978874591263936872451
324, 5472237619, 123456789457189632698237154289765413531842976746913528362574891874391265915628347
325, 5472277727, 123456789457189632698237514289765143536914278741328965365872491874591326912643857
326, 5472315027, 123456789457189632698273145289764513536918427741532968365891274874625391912347856
327, 5472351996, 123456789457189632698327145289765314346918257571243968765832491812694573934571826
328, 5472383500, 123456789457189632698327154289764315364512978571938426736845291812693547945271863
329, 5472412419, 123456789457189632698327541289765413346918257571243968765832194812694375934571826
330, 5472440401, 123456789457189632698372154289765413346821975571934826712693548865247391934518267
331, 5472469603, 123456789457189632698732145289675413536841297741293568312967854865324971974518326
332, 5472494701, 123456789457189632698732514289675143374291865516348297765914328842563971931827456
333, 5472515353, 123456789457189632869273145298765314634891527715324968342917856571648293986532471
334, 5472525458, 123456789457189632869372145298763514634215897715948263346521978571894326982637451
335, 5472544929, 123456789457189632896237145289764513641593278735821496364972851572318964918645327
336, 5472563925, 123456789457189632896237415289765341364912857715348926578623194642891573931574268
337, 5472581137, 123456789457189632896327145289765314635241978741938526318594267574612893962873451
338, 5472595917, 123456789457189632896327154289765413634218597715943268348671925562894371971532846
339, 5472609577, 123456789457189632896327451289765314635241978741938526318594267574612893962873145
340, 5472621901, 123456789457189632896327541289764315645213978731895426368571294572948163914632857
341, 5472632498, 123456789457189632896372145289764513614935278735821496342597861578613924961248357
342, 5472642060, 123456789457189632896372154289764315645913278731825946312648597578291463964537821
343, 5472651072, 123456789457189632896372451289765314364291578715834926572948163641523897938617245
344, 5472659287, 123456789457189632968327145296875314735914826841632597379261458512748963684593271
345, 5472666548, 123456789457189632968327154296875413574631928831942576312794865645218397789563241
346, 5472670117, 123456789457189632968327451296745318374218596581693247639874125715932864842561973
347, 5472677253, 123456789457189632986327145298764513645831297731592864369278451512643978874915326
348, 5472677708, 123456789457289163689173452294861537365947218718325946536794821871532694942618375
349, 5472680643, 123456789457289163689713254296845317315697842874132695531978426768524931942361578
350, 5472683633, 123456789457289163698137425285974631364521978971368254516892347739645812842713596
351, 5472688469, 123456789457289163698137524286975431745813296931642857319728645572364918864591372
352, 5472690625, 123456789457289163698317254286931547534762891719845326362574918845193672971628435
353, 5472692766, 123456789457289163698317524285931647374568291916724358531892476769145832842673915
354, 5472694725, 123456789457289163698713254286395471345167928971842635512978346769534812834621597
355, 5472698896, 123456789457289163869713245298675431641832597735194628386527914512948376974361852
356, 5472702272, 123456789457289163869731245298675431634192578715843926382514697576928314941367852
357, 5472705443, 123456789457289163869731524298675431645193278731842956382514697574968312916327845
358, 5472708593, 123456789457289163896317245289764531534921678671538492345692817712843956968175324
359, 5472709240, 123456789457289163896731524261948375745312896938567412389675241512894637674123958
360, 5472710768, 123456789457289613689173245296831457315647892748592361531768924872914536964325178
361, 5472713252, 123456789457289613689713245296875134741392568835641972318527496574968321962134857
362, 5472715485, 123456789457289613689713254296875341348961572715342968531628497872594136964137825
363, 5472717415, 123456789457289613698137254286975341731864592945321867369718425512643978874592136
364, 5472718768, 123456789457289613698317245286974351735861492941532867312645978569728134874193526
365, 5472720136, 123456789457289613698317254286975341319842567574163892762594138845731926931628475
366, 5472721368, 123456789457289613698713245286974351349521867715638492562897134871345926934162578
367, 5472723035, 123456789457289613869713245298671534635894172741532896372145968584967321916328457
368, 5472723960, 123456789457289613869731245298675134614893527735142968382917456571364892946528371
369, 5472724832, 123456789457289613869731254298645371631897542745312968382574196516928437974163825
370, 5472725760, 123456789457289613896137245289745361365812497741693852538924176612578934974361528
371, 5472726568, 123456789457289613896137254289745361645813972731692548368971425512364897974528136
372, 5472727128, 123456789457289613896317245289745136345621978761893524578164392612938457934572861
373, 5472727885, 123456789457289613896317425289745136641832597735691842364528971512974368978163254
374, 5472728336, 123456789457289613896731245289643571645817392731592864364175928512968437978324156
375, 5472728581, 123456789457289613896731254289643175574812936631597428312968547765324891948175362
376, 5472728914, 123456789457289613968137245296871534571943862834562971315628497649715328782394156
377, 5472729070, 123456789457289613968137254295813476671924835834675921316748592589362147742591368
378, 5472729263, 123456789457289613968731245296817534571342896834695127312564978689173452745928361
379, 5472729424, 123456789457289613986137245298713564631524897745968321312645978569871432874392156
380, 5472729447, 123456789457289631689173245246891573871532496935647128362914857594768312718325964
381, 5472729610, 123456789457289631689713254296845317745132968831697542312574896568921473974368125
382, 5472729764, 123456789457289631698317254286945173745163892931728465364892517572631948819574326
383, 5472729875, 123456789457289631869713245298564317631978452745321968382695174574132896916847523
384, 5472729999, 123456789457289631869713254298645173631897542745132968316978425574321896982564317
385, 5472730086, 123456789457289631869731245298317456315642978674895123586174392731928564942563817
386, 5472730135, 123456789457289631869731254298317465315642897674895312586174923731928546942563178
387, 5472730201, 123456789457289631896137245289645173534871926761923458312594867645718392978362514
388, 5472730326, 123456789457289631896137254289715346531648972674392815342861597715923468968574123
389, 5472730353, 123456789457289631896137425289371546631524897745968312312645978574892163968713254
390, 5472730412, 123456789457289631896317245285741963631892574749635812312978456568124397974563128
391, 5472730431, 123456789457289631896317254285641973649735128731892546312978465568124397974563812
392, 5472730472, 123456789457289631896731245285317964641892573739645812312968457578124396964573128
393, 5472730474, 123456789457289631968137254295713468736894512841562397312975846584621973679348125
394, 5472730490, 123456789457289631968731245284615397631897524795342816346978152579123468812564973
396, 5472730501, 123456789457289631986137245248615973695743128731892456312978564579364812864521397
399, 5472730511, 123456789457389612896127354231645978649871523785293146378564291562918437914732865
401, 5472730512, 123456789457389612896172354285793146631524978749618523312945867568237491974861235
405, 5472730516, 123456789457389612896271354289564173641937528735128946312645897568792431974813265
407, 5472730535, 123456789457389612896721354239564178641978523785132946312645897568297431974813265
411, 5472730538, 123456789457389621896217354268741593745893162931625847382164975574938216619572438
416, 5472730539, 123456789457893612986217354274538196531964827698721435342685971715349268869172543