<?php
$area_codes = ['015019',
'015020',
'01511',
'01512',
'01514',
'01515',
'01516',
'01517',
'015180',
'015181',
'015182',
'015183',
'015184',
'015185',
'015186',
'015310',
'01520',
'01521',
'01522',
'01523',
'01525',
'01526',
'01529',
'015510',
'015511',
'015560',
'015561',
'015562',
'015563',
'015564',
'015565',
'015566',
'015567',
'015568',
'015569',
'015630',
'015678',
'015679',
'015700',
'015701',
'015702',
'015703',
'015704',
'015706',
'01573',
'01575',
'01577',
'01578',
'01579',
'015888',
'01590',
'0160',
'0162',
'0163',
'0170',
'0171',
'0172',
'0173',
'0174',
'0175',
'0176',
'0177',
'0178',
'0179',
'0201',
'0202',
'0203',
'02041',
'02043',
'02045',
'02051',
'02052',
'02053',
'02054',
'02056',
'02058',
'02064',
'02065',
'02066',
'0208',
'0209',
'02102',
'02103',
'02104',
'0211',
'0212',
'02129',
'02131',
'02132',
'02133',
'02137',
'0214',
'02150',
'02151',
'02152',
'02153',
'02154',
'02156',
'02157',
'02158',
'02159',
'02161',
'02162',
'02163',
'02164',
'02165',
'02166',
'02171',
'02173',
'02174',
'02175',
'02181',
'02182',
'02183',
'02191',
'02192',
'02193',
'02195',
'02196',
'02202',
'02203',
'02204',
'02205',
'02206',
'02207',
'02208',
'0221',
'02222',
'02223',
'02224',
'02225',
'02226',
'02227',
'02228',
'02232',
'02233',
'02234',
'02235',
'02236',
'02237',
'02238',
'02241',
'02242',
'02243',
'02244',
'02245',
'02246',
'02247',
'02248',
'02251',
'02252',
'02253',
'02254',
'02255',
'02256',
'02257',
'02261',
'02262',
'02263',
'02264',
'02265',
'02266',
'02267',
'02268',
'02269',
'02271',
'02272',
'02273',
'02274',
'02275',
'0228',
'02291',
'02292',
'02293',
'02294',
'02295',
'02296',
'02297',
'02301',
'02302',
'02303',
'02304',
'02305',
'02306',
'02307',
'02308',
'02309',
'0231',
'02323',
'02324',
'02325',
'02327',
'02330',
'02331',
'02332',
'02333',
'02334',
'02335',
'02336',
'02337',
'02338',
'02339',
'0234',
'02351',
'02352',
'02353',
'02354',
'02355',
'02357',
'02358',
'02359',
'02360',
'02361',
'02362',
'02363',
'02364',
'02365',
'02366',
'02367',
'02368',
'02369',
'02371',
'02372',
'02373',
'02374',
'02375',
'02377',
'02378',
'02379',
'02381',
'02382',
'02383',
'02384',
'02385',
'02387',
'02388',
'02389',
'02391',
'02392',
'02393',
'02394',
'02395',
'02401',
'02402',
'02403',
'02404',
'02405',
'02406',
'02407',
'02408',
'02409',
'0241',
'02421',
'02422',
'02423',
'02424',
'02425',
'02426',
'02427',
'02428',
'02429',
'02431',
'02432',
'02433',
'02434',
'02435',
'02436',
'02440',
'02441',
'02443',
'02444',
'02445',
'02446',
'02447',
'02448',
'02449',
'02451',
'02452',
'02453',
'02454',
'02455',
'02456',
'02461',
'02462',
'02463',
'02464',
'02465',
'02471',
'02472',
'02473',
'02474',
'02482',
'02484',
'02485',
'02486',
'02501',
'02502',
'02504',
'02505',
'02506',
'02507',
'02508',
'02509',
'0251',
'02520',
'02521',
'02522',
'02523',
'02524',
'02525',
'02526',
'02527',
'02528',
'02529',
'02532',
'02533',
'02534',
'02535',
'02536',
'02538',
'02541',
'02542',
'02543',
'02545',
'02546',
'02547',
'02548',
'02551',
'02552',
'02553',
'02554',
'02555',
'02556',
'02557',
'02558',
'02561',
'02562',
'02563',
'02564',
'02565',
'02566',
'02567',
'02568',
'02571',
'02572',
'02573',
'02574',
'02575',
'02581',
'02582',
'02583',
'02584',
'02585',
'02586',
'02587',
'02588',
'02590',
'02591',
'02592',
'02593',
'02594',
'02595',
'02596',
'02597',
'02598',
'02599',
'02601',
'02602',
'02603',
'02604',
'02605',
'02606',
'02607',
'02608',
'0261',
'02620',
'02621',
'02622',
'02623',
'02624',
'02625',
'02626',
'02627',
'02628',
'02630',
'02631',
'02632',
'02633',
'02634',
'02635',
'02636',
'02637',
'02638',
'02639',
'02641',
'02642',
'02643',
'02644',
'02645',
'02646',
'02647',
'02651',
'02652',
'02653',
'02654',
'02655',
'02656',
'02657',
'02661',
'02662',
'02663',
'02664',
'02666',
'02667',
'02671',
'02672',
'02673',
'02674',
'02675',
'02676',
'02677',
'02678',
'02680',
'02681',
'02682',
'02683',
'02684',
'02685',
'02686',
'02687',
'02688',
'02689',
'02691',
'02692',
'02693',
'02694',
'02695',
'02696',
'02697',
'0271',
'02721',
'02722',
'02723',
'02724',
'02725',
'02732',
'02733',
'02734',
'02735',
'02736',
'02737',
'02738',
'02739',
'02741',
'02742',
'02743',
'02744',
'02745',
'02747',
'02750',
'02751',
'02752',
'02753',
'02754',
'02755',
'02758',
'02759',
'02761',
'02762',
'02763',
'02764',
'02770',
'02771',
'02772',
'02773',
'02774',
'02775',
'02776',
'02777',
'02778',
'02779',
'02801',
'02802',
'02803',
'02804',
'0281',
'02821',
'02822',
'02823',
'02824',
'02825',
'02826',
'02827',
'02828',
'02831',
'02832',
'02833',
'02834',
'02835',
'02836',
'02837',
'02838',
'02839',
'02841',
'02842',
'02843',
'02844',
'02845',
'02850',
'02851',
'02852',
'02853',
'02855',
'02856',
'02857',
'02858',
'02859',
'02861',
'02862',
'02863',
'02864',
'02865',
'02866',
'02867',
'02871',
'02872',
'02873',
'02874',
'02902',
'02903',
'02904',
'02905',
'0291',
'02921',
'02922',
'02923',
'02924',
'02925',
'02927',
'02928',
'02931',
'02932',
'02933',
'02934',
'02935',
'02937',
'02938',
'02941',
'02942',
'02943',
'02944',
'02945',
'02947',
'02948',
'02951',
'02952',
'02953',
'02954',
'02955',
'02957',
'02958',
'02961',
'02962',
'02963',
'02964',
'02971',
'02972',
'02973',
'02974',
'02975',
'02977',
'02981',
'02982',
'02983',
'02984',
'02985',
'02991',
'02992',
'02993',
'02994',
'030',
'03301',
'03302',
'03303',
'03304',
'033051',
'033052',
'033053',
'033054',
'033055',
'033056',
'03306',
'03307',
'033080',
'033082',
'033083',
'033084',
'033085',
'033086',
'033087',
'033088',
'033089',
'033093',
'033094',
'0331',
'033200',
'033201',
'033202',
'033203',
'033204',
'033205',
'033206',
'033207',
'033208',
'033209',
'03321',
'03322',
'033230',
'033231',
'033232',
'033233',
'033234',
'033235',
'033237',
'033238',
'033239',
'03327',
'03328',
'03329',
'03331',
'03332',
'033331',
'033332',
'033333',
'033334',
'033335',
'033336',
'033337',
'033338',
'03334',
'03335',
'033361',
'033362',
'033363',
'033364',
'033365',
'033366',
'033367',
'033368',
'033369',
'03337',
'03338',
'033393',
'033394',
'033395',
'033396',
'033397',
'033398',
'03341',
'03342',
'033432',
'033433',
'033434',
'033435',
'033436',
'033437',
'033438',
'033439',
'03344',
'033451',
'033452',
'033454',
'033456',
'033457',
'033458',
'03346',
'033470',
'033472',
'033473',
'033474',
'033475',
'033476',
'033477',
'033478',
'033479',
'0335',
'033601',
'033602',
'033603',
'033604',
'033605',
'033606',
'033607',
'033608',
'033609',
'03361',
'03362',
'033631',
'033632',
'033633',
'033634',
'033635',
'033636',
'033637',
'033638',
'03364',
'033652',
'033653',
'033654',
'033655',
'033656',
'033657',
'03366',
'033671',
'033672',
'033673',
'033674',
'033675',
'033676',
'033677',
'033678',
'033679',
'033701',
'033702',
'033703',
'033704',
'033708',
'03371',
'03372',
'033731',
'033732',
'033733',
'033734',
'033741',
'033742',
'033743',
'033744',
'033745',
'033746',
'033747',
'033748',
'03375',
'033760',
'033762',
'033763',
'033764',
'033765',
'033766',
'033767',
'033768',
'033769',
'03377',
'03378',
'03379',
'03381',
'03382',
'033830',
'033831',
'033832',
'033833',
'033834',
'033835',
'033836',
'033837',
'033838',
'033839',
'033841',
'033843',
'033844',
'033845',
'033846',
'033847',
'033848',
'033849',
'03385',
'03386',
'033870',
'033872',
'033873',
'033874',
'033875',
'033876',
'033877',
'033878',
'03391',
'033920',
'033921',
'033922',
'033923',
'033924',
'033925',
'033926',
'033927',
'033928',
'033929',
'033931',
'033932',
'033933',
'03394',
'03395',
'033962',
'033963',
'033964',
'033965',
'033966',
'033967',
'033968',
'033969',
'033970',
'033971',
'033972',
'033973',
'033974',
'033975',
'033976',
'033977',
'033978',
'033979',
'033981',
'033982',
'033983',
'033984',
'033986',
'033989',
'0340',
'0341',
'034202',
'034203',
'034204',
'034205',
'034206',
'034207',
'034208',
'03421',
'034221',
'034222',
'034223',
'034224',
'03423',
'034241',
'034242',
'034243',
'034244',
'03425',
'034261',
'034262',
'034263',
'034291',
'034292',
'034293',
'034294',
'034295',
'034296',
'034297',
'034298',
'034299',
'03431',
'034321',
'034322',
'034324',
'034325',
'034327',
'034328',
'03433',
'034341',
'034342',
'034343',
'034344',
'034345',
'034346',
'034347',
'034348',
'03435',
'034361',
'034362',
'034363',
'034364',
'03437',
'034381',
'034382',
'034383',
'034384',
'034385',
'034386',
'03441',
'034422',
'034423',
'034424',
'034425',
'034426',
'03443',
'034441',
'034443',
'034444',
'034445',
'034446',
'03445',
'034461',
'034462',
'034463',
'034464',
'034465',
'034466',
'034467',
'03447',
'03448',
'034491',
'034492',
'034493',
'034494',
'034495',
'034496',
'034497',
'034498',
'0345',
'034600',
'034601',
'034602',
'034603',
'034604',
'034605',
'034606',
'034607',
'034609',
'03461',
'03462',
'034632',
'034633',
'034635',
'034636',
'034637',
'034638',
'034639',
'03464',
'034651',
'034652',
'034653',
'034654',
'034656',
'034658',
'034659',
'03466',
'034671',
'034672',
'034673',
'034691',
'034692',
'03471',
'034721',
'034722',
'03473',
'034741',
'034742',
'034743',
'034745',
'034746',
'03475',
'03476',
'034771',
'034772',
'034773',
'034774',
'034775',
'034776',
'034779',
'034781',
'034782',
'034783',
'034785',
'034901',
'034903',
'034904',
'034905',
'034906',
'034907',
'034909',
'03491',
'034920',
'034921',
'034922',
'034923',
'034924',
'034925',
'034926',
'034927',
'034928',
'034929',
'03493',
'03494',
'034953',
'034954',
'034955',
'034956',
'03496',
'034973',
'034975',
'034976',
'034977',
'034978',
'034979',
'03501',
'035020',
'035021',
'035022',
'035023',
'035024',
'035025',
'035026',
'035027',
'035028',
'035032',
'035033',
'03504',
'035052',
'035053',
'035054',
'035055',
'035056',
'035057',
'035058',
'0351',
'035200',
'035201',
'035202',
'035203',
'035204',
'035205',
'035206',
'035207',
'035208',
'035209',
'03521',
'03522',
'03523',
'035240',
'035241',
'035242',
'035243',
'035244',
'035245',
'035246',
'035247',
'035248',
'035249',
'03525',
'035263',
'035264',
'035265',
'035266',
'035267',
'035268',
'03528',
'03529',
'03531',
'035322',
'035323',
'035324',
'035325',
'035326',
'035327',
'035329',
'03533',
'035341',
'035342',
'035343',
'03535',
'035361',
'035362',
'035363',
'035364',
'035365',
'03537',
'035383',
'035384',
'035385',
'035386',
'035387',
'035388',
'035389',
'03541',
'03542',
'035433',
'035434',
'035435',
'035436',
'035439',
'03544',
'035451',
'035452',
'035453',
'035454',
'035455',
'035456',
'03546',
'035471',
'035472',
'035473',
'035474',
'035475',
'035476',
'035477',
'035478',
'0355',
'035600',
'035601',
'035602',
'035603',
'035604',
'035605',
'035606',
'035607',
'035608',
'035609',
'03561',
'03562',
'03563',
'03564',
'035691',
'035692',
'035693',
'035694',
'035695',
'035696',
'035697',
'035698',
'03571',
'035722',
'035723',
'035724',
'035725',
'035726',
'035727',
'035728',
'03573',
'03574',
'035751',
'035752',
'035753',
'035754',
'035755',
'035756',
'03576',
'035771',
'035772',
'035773',
'035774',
'035775',
'03578',
'035792',
'035793',
'035795',
'035796',
'035797',
'03581',
'035820',
'035822',
'035823',
'035825',
'035826',
'035827',
'035828',
'035829',
'03583',
'035841',
'035842',
'035843',
'035844',
'03585',
'03586',
'035872',
'035873',
'035874',
'035875',
'035876',
'035877',
'03588',
'035891',
'035892',
'035893',
'035894',
'035895',
'03591',
'03592',
'035930',
'035931',
'035932',
'035933',
'035934',
'035935',
'035936',
'035937',
'035938',
'035939',
'03594',
'035951',
'035952',
'035953',
'035954',
'035955',
'03596',
'035971',
'035973',
'035974',
'035975',
'03601',
'036020',
'036021',
'036022',
'036023',
'036024',
'036025',
'036026',
'036027',
'036028',
'036029',
'03603',
'036041',
'036042',
'036043',
'03605',
'03606',
'036071',
'036072',
'036074',
'036075',
'036076',
'036077',
'036081',
'036082',
'036083',
'036084',
'036085',
'036087',
'0361',
'036200',
'036201',
'036202',
'036203',
'036204',
'036205',
'036206',
'036207',
'036208',
'036209',
'03621',
'03622',
'03623',
'03624',
'036252',
'036253',
'036254',
'036255',
'036256',
'036257',
'036258',
'036259',
'03628',
'03629',
'03631',
'03632',
'036330',
'036331',
'036332',
'036333',
'036334',
'036335',
'036336',
'036337',
'036338',
'03634',
'03635',
'03636',
'036370',
'036371',
'036372',
'036373',
'036374',
'036375',
'036376',
'036377',
'036378',
'036379',
'03641',
'036421',
'036422',
'036423',
'036424',
'036425',
'036426',
'036427',
'036428',
'03643',
'03644',
'036450',
'036451',
'036452',
'036453',
'036454',
'036458',
'036459',
'036461',
'036462',
'036463',
'036464',
'036465',
'03647',
'036481',
'036482',
'036483',
'036484',
'0365',
'036601',
'036602',
'036603',
'036604',
'036605',
'036606',
'036607',
'036608',
'03661',
'036621',
'036622',
'036623',
'036624',
'036625',
'036626',
'036628',
'03663',
'036640',
'036642',
'036643',
'036644',
'036645',
'036646',
'036647',
'036648',
'036649',
'036651',
'036652',
'036653',
'036691',
'036692',
'036693',
'036694',
'036695',
'036701',
'036702',
'036703',
'036704',
'036705',
'03671',
'03672',
'036730',
'036731',
'036732',
'036733',
'036734',
'036735',
'036736',
'036737',
'036738',
'036739',
'036741',
'036742',
'036743',
'036744',
'03675',
'036761',
'036762',
'036764',
'036766',
'03677',
'036781',
'036782',
'036783',
'036784',
'036785',
'03679',
'03681',
'03682',
'03683',
'036840',
'036841',
'036842',
'036843',
'036844',
'036845',
'036846',
'036847',
'036848',
'036849',
'03685',
'03686',
'036870',
'036871',
'036873',
'036874',
'036875',
'036878',
'03691',
'036920',
'036921',
'036922',
'036923',
'036924',
'036925',
'036926',
'036927',
'036928',
'036929',
'03693',
'036940',
'036941',
'036943',
'036944',
'036945',
'036946',
'036947',
'036948',
'036949',
'03695',
'036961',
'036962',
'036963',
'036964',
'036965',
'036966',
'036967',
'036968',
'036969',
'0371',
'037200',
'037202',
'037203',
'037204',
'037206',
'037207',
'037208',
'037209',
'03721',
'03722',
'03723',
'03724',
'03725',
'03726',
'03727',
'037291',
'037292',
'037293',
'037294',
'037295',
'037296',
'037297',
'037298',
'03731',
'037320',
'037321',
'037322',
'037323',
'037324',
'037325',
'037326',
'037327',
'037328',
'037329',
'03733',
'037341',
'037342',
'037343',
'037344',
'037346',
'037347',
'037348',
'037349',
'03735',
'037360',
'037361',
'037362',
'037363',
'037364',
'037365',
'037366',
'037367',
'037368',
'037369',
'03737',
'037381',
'037382',
'037383',
'037384',
'03741',
'037421',
'037422',
'037423',
'037430',
'037431',
'037432',
'037433',
'037434',
'037435',
'037436',
'037437',
'037438',
'037439',
'03744',
'03745',
'037462',
'037463',
'037464',
'037465',
'037467',
'037468',
'0375',
'037600',
'037601',
'037602',
'037603',
'037604',
'037605',
'037606',
'037607',
'037608',
'037609',
'03761',
'03762',
'03763',
'03764',
'03765',
'03771',
'03772',
'03773',
'03774',
'037752',
'037754',
'037755',
'037756',
'037757',
'0381',
'038201',
'038202',
'038203',
'038204',
'038205',
'038206',
'038207',
'038208',
'038209',
'03821',
'038220',
'038221',
'038222',
'038223',
'038224',
'038225',
'038226',
'038227',
'038228',
'038229',
'038231',
'038232',
'038233',
'038234',
'038292',
'038293',
'038294',
'038295',
'038296',
'038297',
'038300',
'038301',
'038302',
'038303',
'038304',
'038305',
'038306',
'038307',
'038308',
'038309',
'03831',
'038320',
'038321',
'038322',
'038323',
'038324',
'038325',
'038326',
'038327',
'038328',
'038331',
'038332',
'038333',
'038334',
'03834',
'038351',
'038352',
'038353',
'038354',
'038355',
'038356',
'03836',
'038370',
'038371',
'038372',
'038373',
'038374',
'038375',
'038376',
'038377',
'038378',
'038379',
'03838',
'038391',
'038392',
'038393',
'03841',
'038422',
'038423',
'038424',
'038425',
'038426',
'038427',
'038428',
'038429',
'03843',
'03844',
'038450',
'038451',
'038452',
'038453',
'038454',
'038455',
'038456',
'038457',
'038458',
'038459',
'038461',
'038462',
'038464',
'038466',
'03847',
'038481',
'038482',
'038483',
'038484',
'038485',
'038486',
'038488',
'0385',
'03860',
'03861',
'03863',
'03865',
'03866',
'03867',
'03868',
'03869',
'03871',
'038720',
'038721',
'038722',
'038723',
'038724',
'038725',
'038726',
'038727',
'038728',
'038729',
'038731',
'038732',
'038733',
'038735',
'038736',
'038737',
'038738',
'03874',
'038750',
'038751',
'038752',
'038753',
'038754',
'038755',
'038756',
'038757',
'038758',
'038759',
'03876',
'03877',
'038780',
'038781',
'038782',
'038783',
'038784',
'038785',
'038787',
'038788',
'038789',
'038791',
'038792',
'038793',
'038794',
'038796',
'038797',
'03881',
'038821',
'038822',
'038823',
'038824',
'038825',
'038826',
'038827',
'038828',
'03883',
'038841',
'038842',
'038843',
'038844',
'038845',
'038847',
'038848',
'038850',
'038851',
'038852',
'038853',
'038854',
'038855',
'038856',
'038858',
'038859',
'03886',
'038871',
'038872',
'038873',
'038874',
'038875',
'038876',
'039000',
'039001',
'039002',
'039003',
'039004',
'039005',
'039006',
'039007',
'039008',
'039009',
'03901',
'03902',
'039030',
'039031',
'039032',
'039033',
'039034',
'039035',
'039036',
'039037',
'039038',
'039039',
'03904',
'039050',
'039051',
'039052',
'039053',
'039054',
'039055',
'039056',
'039057',
'039058',
'039059',
'039061',
'039062',
'03907',
'039080',
'039081',
'039082',
'039083',
'039084',
'039085',
'039086',
'039087',
'039088',
'039089',
'03909',
'0391',
'039200',
'039201',
'039202',
'039203',
'039204',
'039205',
'039206',
'039207',
'039208',
'039209',
'03921',
'039221',
'039222',
'039223',
'039224',
'039225',
'039226',
'03923',
'039241',
'039242',
'039243',
'039244',
'039245',
'039246',
'039247',
'039248',
'03925',
'039262',
'039263',
'039264',
'039265',
'039266',
'039267',
'039268',
'03928',
'039291',
'039292',
'039293',
'039294',
'039295',
'039296',
'039297',
'039298',
'03931',
'039320',
'039321',
'039322',
'039323',
'039324',
'039325',
'039327',
'039328',
'039329',
'03933',
'039341',
'039342',
'039343',
'039344',
'039345',
'039346',
'039347',
'039348',
'039349',
'03935',
'039361',
'039362',
'039363',
'039364',
'039365',
'039366',
'03937',
'039382',
'039383',
'039384',
'039386',
'039387',
'039388',
'039389',
'039390',
'039391',
'039392',
'039393',
'039394',
'039395',
'039396',
'039397',
'039398',
'039399',
'039400',
'039401',
'039402',
'039403',
'039404',
'039405',
'039406',
'039407',
'039408',
'039409',
'03941',
'039421',
'039422',
'039423',
'039424',
'039425',
'039426',
'039427',
'039428',
'03943',
'03944',
'039451',
'039452',
'039453',
'039454',
'039455',
'039456',
'039457',
'039458',
'039459',
'03946',
'03947',
'039481',
'039482',
'039483',
'039484',
'039485',
'039487',
'039488',
'039489',
'03949',
'0395',
'039600',
'039601',
'039602',
'039603',
'039604',
'039605',
'039606',
'039607',
'039608',
'03961',
'03962',
'03963',
'03964',
'03965',
'03966',
'03967',
'03968',
'03969',
'03971',
'039721',
'039722',
'039723',
'039724',
'039726',
'039727',
'039728',
'03973',
'039740',
'039741',
'039742',
'039743',
'039744',
'039745',
'039746',
'039747',
'039748',
'039749',
'039751',
'039752',
'039753',
'039754',
'03976',
'039771',
'039772',
'039773',
'039774',
'039775',
'039776',
'039777',
'039778',
'039779',
'03981',
'039820',
'039821',
'039822',
'039823',
'039824',
'039825',
'039826',
'039827',
'039828',
'039829',
'039831',
'039832',
'039833',
'03984',
'039851',
'039852',
'039853',
'039854',
'039855',
'039856',
'039857',
'039858',
'039859',
'039861',
'039862',
'039863',
'03987',
'039881',
'039882',
'039883',
'039884',
'039885',
'039886',
'039887',
'039888',
'039889',
'03991',
'039921',
'039922',
'039923',
'039924',
'039925',
'039926',
'039927',
'039928',
'039929',
'039931',
'039932',
'039933',
'039934',
'03994',
'039951',
'039952',
'039953',
'039954',
'039955',
'039956',
'039957',
'039959',
'03996',
'039971',
'039972',
'039973',
'039975',
'039976',
'039977',
'039978',
'03998',
'039991',
'039992',
'039993',
'039994',
'039995',
'039996',
'039997',
'039998',
'039999',
'040',
'04101',
'04102',
'04103',
'04104',
'04105',
'04106',
'04107',
'04108',
'04109',
'04120',
'04121',
'04122',
'04123',
'04124',
'04125',
'04126',
'04127',
'04128',
'04129',
'04131',
'04132',
'04133',
'04134',
'04135',
'04136',
'04137',
'04138',
'04139',
'04140',
'04141',
'04142',
'04143',
'04144',
'04146',
'04148',
'04149',
'04151',
'04152',
'04153',
'04154',
'04155',
'04156',
'04158',
'04159',
'04161',
'04162',
'04163',
'04164',
'04165',
'04166',
'04167',
'04168',
'04169',
'04171',
'04172',
'04173',
'04174',
'04175',
'04176',
'04177',
'04178',
'04179',
'04180',
'04181',
'04182',
'04183',
'04184',
'04185',
'04186',
'04187',
'04188',
'04189',
'04191',
'04192',
'04193',
'04194',
'04195',
'04202',
'04203',
'04204',
'04205',
'04206',
'04207',
'04208',
'04209',
'0421',
'04221',
'04222',
'04223',
'04224',
'04230',
'04231',
'04232',
'04233',
'04234',
'04235',
'04236',
'04237',
'04238',
'04239',
'04240',
'04241',
'04242',
'04243',
'04244',
'04245',
'04246',
'04247',
'04248',
'04249',
'04251',
'04252',
'04253',
'04254',
'04255',
'04256',
'04257',
'04258',
'04260',
'04261',
'04262',
'04263',
'04264',
'04265',
'04266',
'04267',
'04268',
'04269',
'04271',
'04272',
'04273',
'04274',
'04275',
'04276',
'04277',
'04281',
'04282',
'04283',
'04284',
'04285',
'04286',
'04287',
'04288',
'04289',
'04292',
'04293',
'04294',
'04295',
'04296',
'04297',
'04298',
'04302',
'04303',
'04305',
'04307',
'04308',
'0431',
'04320',
'04321',
'04322',
'04323',
'04324',
'04326',
'04327',
'04328',
'04329',
'04330',
'04331',
'04332',
'04333',
'04334',
'04335',
'04336',
'04337',
'04338',
'04339',
'04340',
'04342',
'04343',
'04344',
'04346',
'04347',
'04348',
'04349',
'04351',
'04352',
'04353',
'04354',
'04355',
'04356',
'04357',
'04358',
'04361',
'04362',
'04363',
'04364',
'04365',
'04366',
'04367',
'04371',
'04372',
'04381',
'04382',
'04383',
'04384',
'04385',
'04392',
'04393',
'04394',
'04401',
'04402',
'04403',
'04404',
'04405',
'04406',
'04407',
'04408',
'04409',
'0441',
'04421',
'04422',
'04423',
'04425',
'04426',
'04431',
'04432',
'04433',
'04434',
'04435',
'04441',
'04442',
'04443',
'04444',
'04445',
'04446',
'04447',
'04451',
'04452',
'04453',
'04454',
'04455',
'04456',
'04458',
'04461',
'04462',
'04463',
'04464',
'04465',
'04466',
'04467',
'04468',
'04469',
'04471',
'04472',
'04473',
'04474',
'04475',
'04477',
'04478',
'04479',
'04480',
'04481',
'04482',
'04483',
'04484',
'04485',
'04486',
'04487',
'04488',
'04489',
'04491',
'04492',
'04493',
'04494',
'04495',
'04496',
'04497',
'04498',
'04499',
'04501',
'04502',
'04503',
'04504',
'04505',
'04506',
'04508',
'04509',
'0451',
'04521',
'04522',
'04523',
'04524',
'04525',
'04526',
'04527',
'04528',
'04529',
'04531',
'04532',
'04533',
'04534',
'04535',
'04536',
'04537',
'04539',
'04541',
'04542',
'04543',
'04544',
'04545',
'04546',
'04547',
'04550',
'04551',
'04552',
'04553',
'04554',
'04555',
'04556',
'04557',
'04558',
'04559',
'04561',
'04562',
'04563',
'04564',
'04602',
'04603',
'04604',
'04605',
'04606',
'04607',
'04608',
'04609',
'0461',
'04621',
'04622',
'04623',
'04624',
'04625',
'04626',
'04627',
'04630',
'04631',
'04632',
'04633',
'04634',
'04635',
'04636',
'04637',
'04638',
'04639',
'04641',
'04642',
'04643',
'04644',
'04646',
'04651',
'04661',
'04662',
'04663',
'04664',
'04665',
'04666',
'04667',
'04668',
'04671',
'04672',
'04673',
'04674',
'04681',
'04682',
'04683',
'04684',
'04702',
'04703',
'04704',
'04705',
'04706',
'04707',
'04708',
'0471',
'04721',
'04722',
'04723',
'04724',
'04725',
'04731',
'04732',
'04733',
'04734',
'04735',
'04736',
'04737',
'04740',
'04741',
'04742',
'04743',
'04744',
'04745',
'04746',
'04747',
'04748',
'04749',
'04751',
'04752',
'04753',
'04754',
'04755',
'04756',
'04757',
'04758',
'04761',
'04762',
'04763',
'04764',
'04765',
'04766',
'04767',
'04768',
'04769',
'04770',
'04771',
'04772',
'04773',
'04774',
'04775',
'04776',
'04777',
'04778',
'04779',
'04791',
'04792',
'04793',
'04794',
'04795',
'04796',
'04802',
'04803',
'04804',
'04805',
'04806',
'0481',
'04821',
'04822',
'04823',
'04824',
'04825',
'04826',
'04827',
'04828',
'04829',
'04830',
'04832',
'04833',
'04834',
'04835',
'04836',
'04837',
'04838',
'04839',
'04841',
'04842',
'04843',
'04844',
'04845',
'04846',
'04847',
'04848',
'04849',
'04851',
'04852',
'04853',
'04854',
'04855',
'04856',
'04857',
'04858',
'04859',
'04861',
'04862',
'04863',
'04864',
'04865',
'04871',
'04872',
'04873',
'04874',
'04875',
'04876',
'04877',
'04881',
'04882',
'04883',
'04884',
'04885',
'04892',
'04893',
'04902',
'04903',
'0491',
'04920',
'04921',
'04922',
'04923',
'04924',
'04925',
'04926',
'04927',
'04928',
'04929',
'04931',
'04932',
'04933',
'04934',
'04935',
'04936',
'04938',
'04939',
'04941',
'04942',
'04943',
'04944',
'04945',
'04946',
'04947',
'04948',
'04950',
'04951',
'04952',
'04953',
'04954',
'04955',
'04956',
'04957',
'04958',
'04959',
'04961',
'04962',
'04963',
'04964',
'04965',
'04966',
'04967',
'04968',
'04971',
'04972',
'04973',
'04974',
'04975',
'04976',
'04977',
'05021',
'05022',
'05023',
'05024',
'05025',
'05026',
'05027',
'05028',
'05031',
'05032',
'05033',
'05034',
'05035',
'05036',
'05037',
'05041',
'05042',
'05043',
'05044',
'05045',
'05051',
'05052',
'05053',
'05054',
'05055',
'05056',
'05060',
'05062',
'05063',
'05064',
'05065',
'05066',
'05067',
'05068',
'05069',
'05071',
'05072',
'05073',
'05074',
'05082',
'05083',
'05084',
'05085',
'05086',
'05101',
'05102',
'05103',
'05105',
'05108',
'05109',
'0511',
'05121',
'05123',
'05126',
'05127',
'05128',
'05129',
'05130',
'05131',
'05132',
'05135',
'05136',
'05137',
'05138',
'05139',
'05141',
'05142',
'05143',
'05144',
'05145',
'05146',
'05147',
'05148',
'05149',
'05151',
'05152',
'05153',
'05154',
'05155',
'05156',
'05157',
'05158',
'05159',
'05161',
'05162',
'05163',
'05164',
'05165',
'05166',
'05167',
'05168',
'05171',
'05172',
'05173',
'05174',
'05175',
'05176',
'05177',
'05181',
'05182',
'05183',
'05184',
'05185',
'05186',
'05187',
'05190',
'05191',
'05192',
'05193',
'05194',
'05195',
'05196',
'05197',
'05198',
'05199',
'05201',
'05202',
'05203',
'05204',
'05205',
'05206',
'05207',
'05208',
'05209',
'0521',
'05221',
'05222',
'05223',
'05224',
'05225',
'05226',
'05228',
'05231',
'05232',
'05233',
'05234',
'05235',
'05236',
'05237',
'05238',
'05241',
'05242',
'05244',
'05245',
'05246',
'05247',
'05248',
'05250',
'05251',
'05252',
'05253',
'05254',
'05255',
'05257',
'05258',
'05259',
'05261',
'05262',
'05263',
'05264',
'05265',
'05266',
'05271',
'05272',
'05273',
'05274',
'05275',
'05276',
'05277',
'05278',
'05281',
'05282',
'05283',
'05284',
'05285',
'05286',
'05292',
'05293',
'05294',
'05295',
'05300',
'05301',
'05302',
'05303',
'05304',
'05305',
'05306',
'05307',
'05308',
'05309',
'0531',
'05320',
'05321',
'05322',
'05323',
'05324',
'05325',
'05326',
'05327',
'05328',
'05329',
'05331',
'05332',
'05333',
'05334',
'05335',
'05336',
'05337',
'05339',
'05341',
'05344',
'05345',
'05346',
'05347',
'05351',
'05352',
'05353',
'05354',
'05355',
'05356',
'05357',
'05358',
'05361',
'05362',
'05363',
'05364',
'05365',
'05366',
'05367',
'05368',
'05371',
'05372',
'05373',
'05374',
'05375',
'05376',
'05377',
'05378',
'05379',
'05381',
'05382',
'05383',
'05384',
'05401',
'05402',
'05403',
'05404',
'05405',
'05406',
'05407',
'05409',
'0541',
'05421',
'05422',
'05423',
'05424',
'05425',
'05426',
'05427',
'05428',
'05429',
'05431',
'05432',
'05433',
'05434',
'05435',
'05436',
'05437',
'05438',
'05439',
'05441',
'05442',
'05443',
'05444',
'05445',
'05446',
'05447',
'05448',
'05451',
'05452',
'05453',
'05454',
'05455',
'05456',
'05457',
'05458',
'05459',
'05461',
'05462',
'05464',
'05465',
'05466',
'05467',
'05468',
'05471',
'05472',
'05473',
'05474',
'05475',
'05476',
'05481',
'05482',
'05483',
'05484',
'05485',
'05491',
'05492',
'05493',
'05494',
'05495',
'05502',
'05503',
'05504',
'05505',
'05506',
'05507',
'05508',
'05509',
'0551',
'05520',
'05521',
'05522',
'05523',
'05524',
'05525',
'05527',
'05528',
'05529',
'05531',
'05532',
'05533',
'05534',
'05535',
'05536',
'05541',
'05542',
'05543',
'05544',
'05545',
'05546',
'05551',
'05552',
'05553',
'05554',
'05555',
'05556',
'05561',
'05562',
'05563',
'05564',
'05565',
'05571',
'05572',
'05573',
'05574',
'05582',
'05583',
'05584',
'05585',
'05586',
'05592',
'05593',
'05594',
'05601',
'05602',
'05603',
'05604',
'05605',
'05606',
'05607',
'05608',
'05609',
'0561',
'05621',
'05622',
'05623',
'05624',
'05625',
'05626',
'05631',
'05632',
'05633',
'05634',
'05635',
'05636',
'05641',
'05642',
'05643',
'05644',
'05645',
'05646',
'05647',
'05648',
'05650',
'05651',
'05652',
'05653',
'05654',
'05655',
'05656',
'05657',
'05658',
'05659',
'05661',
'05662',
'05663',
'05664',
'05665',
'05671',
'05672',
'05673',
'05674',
'05675',
'05676',
'05677',
'05681',
'05682',
'05683',
'05684',
'05685',
'05686',
'05691',
'05692',
'05693',
'05694',
'05695',
'05696',
'05702',
'05703',
'05704',
'05705',
'05706',
'05707',
'0571',
'05721',
'05722',
'05723',
'05724',
'05725',
'05726',
'05731',
'05732',
'05733',
'05734',
'05741',
'05742',
'05743',
'05744',
'05745',
'05746',
'05751',
'05752',
'05753',
'05754',
'05755',
'05761',
'05763',
'05764',
'05765',
'05766',
'05767',
'05768',
'05769',
'05771',
'05772',
'05773',
'05774',
'05775',
'05776',
'05777',
'05802',
'05803',
'05804',
'05805',
'05806',
'05807',
'05808',
'0581',
'05820',
'05821',
'05822',
'05823',
'05824',
'05825',
'05826',
'05827',
'05828',
'05829',
'05831',
'05832',
'05833',
'05834',
'05835',
'05836',
'05837',
'05838',
'05839',
'05840',
'05841',
'05842',
'05843',
'05844',
'05845',
'05846',
'05848',
'05849',
'05850',
'05851',
'05852',
'05853',
'05854',
'05855',
'05857',
'05858',
'05859',
'05861',
'05862',
'05863',
'05864',
'05865',
'05872',
'05873',
'05874',
'05875',
'05882',
'05883',
'05901',
'05902',
'05903',
'05904',
'05905',
'05906',
'05907',
'05908',
'05909',
'0591',
'05921',
'05922',
'05923',
'05924',
'05925',
'05926',
'05931',
'05932',
'05933',
'05934',
'05935',
'05936',
'05937',
'05939',
'05941',
'05942',
'05943',
'05944',
'05945',
'05946',
'05947',
'05948',
'05951',
'05952',
'05953',
'05954',
'05955',
'05956',
'05957',
'05961',
'05962',
'05963',
'05964',
'05965',
'05966',
'05971',
'05973',
'05975',
'05976',
'05977',
'05978',
'06002',
'06003',
'06004',
'06007',
'06008',
'06020',
'06021',
'06022',
'06023',
'06024',
'06026',
'06027',
'06028',
'06029',
'06031',
'06032',
'06033',
'06034',
'06035',
'06036',
'06039',
'06041',
'06042',
'06043',
'06044',
'06045',
'06046',
'06047',
'06048',
'06049',
'06050',
'06051',
'06052',
'06053',
'06054',
'06055',
'06056',
'06057',
'06058',
'06059',
'06061',
'06062',
'06063',
'06066',
'06068',
'06071',
'06073',
'06074',
'06078',
'06081',
'06082',
'06083',
'06084',
'06085',
'06086',
'06087',
'06092',
'06093',
'06094',
'06095',
'06096',
'06101',
'06102',
'06103',
'06104',
'06105',
'06106',
'06107',
'06108',
'06109',
'0611',
'06120',
'06122',
'06123',
'06124',
'06126',
'06127',
'06128',
'06129',
'06130',
'06131',
'06132',
'06133',
'06134',
'06135',
'06136',
'06138',
'06139',
'06142',
'06144',
'06145',
'06146',
'06147',
'06150',
'06151',
'06152',
'06154',
'06155',
'06157',
'06158',
'06159',
'06161',
'06162',
'06163',
'06164',
'06165',
'06166',
'06167',
'06171',
'06172',
'06173',
'06174',
'06175',
'06181',
'06182',
'06183',
'06184',
'06185',
'06186',
'06187',
'06188',
'06190',
'06192',
'06195',
'06196',
'06198',
'06201',
'06202',
'06203',
'06204',
'06205',
'06206',
'06207',
'06209',
'0621',
'06220',
'06221',
'06222',
'06223',
'06224',
'06226',
'06227',
'06228',
'06229',
'06231',
'06232',
'06233',
'06234',
'06235',
'06236',
'06237',
'06238',
'06239',
'06241',
'06242',
'06243',
'06244',
'06245',
'06246',
'06247',
'06249',
'06251',
'06252',
'06253',
'06254',
'06255',
'06256',
'06257',
'06258',
'06261',
'06262',
'06263',
'06264',
'06265',
'06266',
'06267',
'06268',
'06269',
'06271',
'06272',
'06274',
'06275',
'06276',
'06281',
'06282',
'06283',
'06284',
'06285',
'06286',
'06287',
'06291',
'06292',
'06293',
'06294',
'06295',
'06296',
'06297',
'06298',
'06301',
'06302',
'06303',
'06304',
'06305',
'06306',
'06307',
'06308',
'0631',
'06321',
'06322',
'06323',
'06324',
'06325',
'06326',
'06327',
'06328',
'06329',
'06331',
'06332',
'06333',
'06334',
'06335',
'06336',
'06337',
'06338',
'06339',
'06340',
'06341',
'06342',
'06343',
'06344',
'06345',
'06346',
'06347',
'06348',
'06349',
'06351',
'06352',
'06353',
'06355',
'06356',
'06357',
'06358',
'06359',
'06361',
'06362',
'06363',
'06364',
'06371',
'06372',
'06373',
'06374',
'06375',
'06381',
'06382',
'06383',
'06384',
'06385',
'06386',
'06387',
'06391',
'06392',
'06393',
'06394',
'06395',
'06396',
'06397',
'06398',
'06400',
'06401',
'06402',
'06403',
'06404',
'06405',
'06406',
'06407',
'06408',
'06409',
'0641',
'06420',
'06421',
'06422',
'06423',
'06424',
'06425',
'06426',
'06427',
'06428',
'06429',
'06430',
'06431',
'06432',
'06433',
'06434',
'06435',
'06436',
'06438',
'06439',
'06440',
'06441',
'06442',
'06443',
'06444',
'06445',
'06446',
'06447',
'06449',
'06451',
'06452',
'06453',
'06454',
'06455',
'06456',
'06457',
'06458',
'06461',
'06462',
'06464',
'06465',
'06466',
'06467',
'06468',
'06471',
'06472',
'06473',
'06474',
'06475',
'06476',
'06477',
'06478',
'06479',
'06482',
'06483',
'06484',
'06485',
'06486',
'06500',
'06501',
'06502',
'06503',
'06504',
'06505',
'06506',
'06507',
'06508',
'06509',
'0651',
'06522',
'06523',
'06524',
'06525',
'06526',
'06527',
'06531',
'06532',
'06533',
'06534',
'06535',
'06536',
'06541',
'06542',
'06543',
'06544',
'06545',
'06550',
'06551',
'06552',
'06553',
'06554',
'06555',
'06556',
'06557',
'06558',
'06559',
'06561',
'06562',
'06563',
'06564',
'06565',
'06566',
'06567',
'06568',
'06569',
'06571',
'06572',
'06573',
'06574',
'06575',
'06578',
'06580',
'06581',
'06582',
'06583',
'06584',
'06585',
'06586',
'06587',
'06588',
'06589',
'06591',
'06592',
'06593',
'06594',
'06595',
'06596',
'06597',
'06599',
'0661',
'06620',
'06621',
'06622',
'06623',
'06624',
'06625',
'06626',
'06627',
'06628',
'06629',
'06630',
'06631',
'06633',
'06634',
'06635',
'06636',
'06637',
'06638',
'06639',
'06641',
'06642',
'06643',
'06644',
'06645',
'06646',
'06647',
'06648',
'06650',
'06651',
'06652',
'06653',
'06654',
'06655',
'06656',
'06657',
'06658',
'06659',
'06660',
'06661',
'06663',
'06664',
'06665',
'06666',
'06667',
'06668',
'06669',
'06670',
'06672',
'06673',
'06674',
'06675',
'06676',
'06677',
'06678',
'06681',
'06682',
'06683',
'06684',
'06691',
'06692',
'06693',
'06694',
'06695',
'06696',
'06697',
'06698',
'06701',
'06703',
'06704',
'06706',
'06707',
'06708',
'06709',
'0671',
'06721',
'06722',
'06723',
'06724',
'06725',
'06726',
'06727',
'06728',
'06731',
'06732',
'06733',
'06734',
'06735',
'06736',
'06737',
'06741',
'06742',
'06743',
'06744',
'06745',
'06746',
'06747',
'06751',
'06752',
'06753',
'06754',
'06755',
'06756',
'06757',
'06758',
'06761',
'06762',
'06763',
'06764',
'06765',
'06766',
'06771',
'06772',
'06773',
'06774',
'06775',
'06776',
'06781',
'06782',
'06783',
'06784',
'06785',
'06786',
'06787',
'06788',
'06789',
'06802',
'06803',
'06804',
'06805',
'06806',
'06809',
'0681',
'06821',
'06824',
'06825',
'06826',
'06827',
'06831',
'06832',
'06833',
'06834',
'06835',
'06836',
'06837',
'06838',
'06841',
'06842',
'06843',
'06844',
'06848',
'06849',
'06851',
'06852',
'06853',
'06854',
'06855',
'06856',
'06857',
'06858',
'06861',
'06864',
'06865',
'06866',
'06867',
'06868',
'06869',
'06871',
'06872',
'06873',
'06874',
'06875',
'06876',
'06881',
'06887',
'06888',
'06893',
'06894',
'06897',
'06898',
'069',
'07021',
'07022',
'07023',
'07024',
'07025',
'07026',
'07031',
'07032',
'07033',
'07034',
'07041',
'07042',
'07043',
'07044',
'07045',
'07046',
'07051',
'07052',
'07053',
'07054',
'07055',
'07056',
'07062',
'07063',
'07066',
'07071',
'07072',
'07073',
'07081',
'07082',
'07083',
'07084',
'07085',
'0711',
'07121',
'07122',
'07123',
'07124',
'07125',
'07126',
'07127',
'07128',
'07129',
'07130',
'07131',
'07132',
'07133',
'07134',
'07135',
'07136',
'07138',
'07139',
'07141',
'07142',
'07143',
'07144',
'07145',
'07146',
'07147',
'07148',
'07150',
'07151',
'07152',
'07153',
'07154',
'07156',
'07157',
'07158',
'07159',
'07161',
'07162',
'07163',
'07164',
'07165',
'07166',
'07171',
'07172',
'07173',
'07174',
'07175',
'07176',
'07181',
'07182',
'07183',
'07184',
'07191',
'07192',
'07193',
'07194',
'07195',
'07202',
'07203',
'07204',
'0721',
'07220',
'07221',
'07222',
'07223',
'07224',
'07225',
'07226',
'07227',
'07228',
'07229',
'07231',
'07232',
'07233',
'07234',
'07235',
'07236',
'07237',
'07240',
'07242',
'07243',
'07244',
'07245',
'07246',
'07247',
'07248',
'07249',
'07250',
'07251',
'07252',
'07253',
'07254',
'07255',
'07256',
'07257',
'07258',
'07259',
'07260',
'07261',
'07262',
'07263',
'07264',
'07265',
'07266',
'07267',
'07268',
'07269',
'07271',
'07272',
'07273',
'07274',
'07275',
'07276',
'07277',
'07300',
'07302',
'07303',
'07304',
'07305',
'07306',
'07307',
'07308',
'07309',
'0731',
'07321',
'07322',
'07323',
'07324',
'07325',
'07326',
'07327',
'07328',
'07329',
'07331',
'07332',
'07333',
'07334',
'07335',
'07336',
'07337',
'07340',
'07343',
'07344',
'07345',
'07346',
'07347',
'07348',
'07351',
'07352',
'07353',
'07354',
'07355',
'07356',
'07357',
'07358',
'07361',
'07362',
'07363',
'07364',
'07365',
'07366',
'07367',
'07371',
'07373',
'07374',
'07375',
'07376',
'07381',
'07382',
'07383',
'07384',
'07385',
'07386',
'07387',
'07388',
'07389',
'07391',
'07392',
'07393',
'07394',
'07395',
'07402',
'07403',
'07404',
'0741',
'07420',
'07422',
'07423',
'07424',
'07425',
'07426',
'07427',
'07428',
'07429',
'07431',
'07432',
'07433',
'07434',
'07435',
'07436',
'07440',
'07441',
'07442',
'07443',
'07444',
'07445',
'07446',
'07447',
'07448',
'07449',
'07451',
'07452',
'07453',
'07454',
'07455',
'07456',
'07457',
'07458',
'07459',
'07461',
'07462',
'07463',
'07464',
'07465',
'07466',
'07467',
'07471',
'07472',
'07473',
'07474',
'07475',
'07476',
'07477',
'07478',
'07482',
'07483',
'07484',
'07485',
'07486',
'07502',
'07503',
'07504',
'07505',
'07506',
'0751',
'07520',
'07522',
'07524',
'07525',
'07527',
'07528',
'07529',
'07531',
'07532',
'07533',
'07534',
'07541',
'07542',
'07543',
'07544',
'07545',
'07546',
'07551',
'07552',
'07553',
'07554',
'07555',
'07556',
'07557',
'07558',
'07561',
'07562',
'07563',
'07564',
'07565',
'07566',
'07567',
'07568',
'07569',
'07570',
'07571',
'07572',
'07573',
'07574',
'07575',
'07576',
'07577',
'07578',
'07579',
'07581',
'07582',
'07583',
'07584',
'07585',
'07586',
'07587',
'07602',
'0761',
'07620',
'07621',
'07622',
'07623',
'07624',
'07625',
'07626',
'07627',
'07628',
'07629',
'07631',
'07632',
'07633',
'07634',
'07635',
'07636',
'07641',
'07642',
'07643',
'07644',
'07645',
'07646',
'07651',
'07652',
'07653',
'07654',
'07655',
'07656',
'07657',
'07660',
'07661',
'07662',
'07663',
'07664',
'07665',
'07666',
'07667',
'07668',
'07669',
'07671',
'07672',
'07673',
'07674',
'07675',
'07676',
'07681',
'07682',
'07683',
'07684',
'07685',
'07702',
'07703',
'07704',
'07705',
'07706',
'07707',
'07708',
'07709',
'0771',
'07720',
'07721',
'07722',
'07723',
'07724',
'07725',
'07726',
'07727',
'07728',
'07729',
'07731',
'07732',
'07733',
'07734',
'07735',
'07736',
'07738',
'07739',
'07741',
'07742',
'07743',
'07744',
'07745',
'07746',
'07747',
'07748',
'07751',
'07753',
'07754',
'07755',
'07761',
'07762',
'07763',
'07764',
'07765',
'07771',
'07773',
'07774',
'07775',
'07777',
'07802',
'07803',
'07804',
'07805',
'07806',
'07807',
'07808',
'0781',
'07821',
'07822',
'07823',
'07824',
'07825',
'07826',
'07831',
'07832',
'07833',
'07834',
'07835',
'07836',
'07837',
'07838',
'07839',
'07841',
'07842',
'07843',
'07844',
'07851',
'07852',
'07853',
'07854',
'07903',
'07904',
'07905',
'07906',
'07907',
'0791',
'07930',
'07931',
'07932',
'07933',
'07934',
'07935',
'07936',
'07937',
'07938',
'07939',
'07940',
'07941',
'07942',
'07943',
'07944',
'07945',
'07946',
'07947',
'07948',
'07949',
'07950',
'07951',
'07952',
'07953',
'07954',
'07955',
'07957',
'07958',
'07959',
'07961',
'07962',
'07963',
'07964',
'07965',
'07966',
'07967',
'07971',
'07972',
'07973',
'07974',
'07975',
'07976',
'07977',
'08020',
'08021',
'08022',
'08023',
'08024',
'08025',
'08026',
'08027',
'08028',
'08029',
'08031',
'08032',
'08033',
'08034',
'08035',
'08036',
'08038',
'08039',
'08041',
'08042',
'08043',
'08045',
'08046',
'08051',
'08052',
'08053',
'08054',
'08055',
'08056',
'08057',
'08061',
'08062',
'08063',
'08064',
'08065',
'08066',
'08067',
'08071',
'08072',
'08073',
'08074',
'08075',
'08076',
'08081',
'08082',
'08083',
'08084',
'08085',
'08086',
'08091',
'08092',
'08093',
'08094',
'08095',
'08102',
'08104',
'08105',
'08106',
'0811',
'08121',
'08122',
'08123',
'08124',
'08131',
'08133',
'08134',
'08135',
'08136',
'08137',
'08138',
'08139',
'08141',
'08142',
'08143',
'08144',
'08145',
'08146',
'08151',
'08152',
'08153',
'08157',
'08158',
'08161',
'08165',
'08166',
'08167',
'08168',
'08170',
'08171',
'08176',
'08177',
'08178',
'08179',
'08191',
'08192',
'08193',
'08194',
'08195',
'08196',
'08202',
'08203',
'08204',
'08205',
'08206',
'08207',
'08208',
'0821',
'08221',
'08222',
'08223',
'08224',
'08225',
'08226',
'08230',
'08231',
'08232',
'08233',
'08234',
'08236',
'08237',
'08238',
'08239',
'08241',
'08243',
'08245',
'08246',
'08247',
'08248',
'08249',
'08250',
'08251',
'08252',
'08253',
'08254',
'08257',
'08258',
'08259',
'08261',
'08262',
'08263',
'08265',
'08266',
'08267',
'08268',
'08269',
'08271',
'08272',
'08273',
'08274',
'08276',
'08281',
'08282',
'08283',
'08284',
'08285',
'08291',
'08292',
'08293',
'08294',
'08295',
'08296',
'08302',
'08303',
'08304',
'08306',
'0831',
'08320',
'08321',
'08322',
'08323',
'08324',
'08325',
'08326',
'08327',
'08328',
'08330',
'08331',
'08332',
'08333',
'08334',
'08335',
'08336',
'08337',
'08338',
'08340',
'08341',
'08342',
'08343',
'08344',
'08345',
'08346',
'08347',
'08348',
'08349',
'08361',
'08362',
'08363',
'08364',
'08365',
'08366',
'08367',
'08368',
'08369',
'08370',
'08372',
'08373',
'08374',
'08375',
'08376',
'08377',
'08378',
'08379',
'08380',
'08381',
'08382',
'08383',
'08384',
'08385',
'08386',
'08387',
'08388',
'08389',
'08392',
'08393',
'08394',
'08395',
'08402',
'08403',
'08404',
'08405',
'08406',
'08407',
'0841',
'08421',
'08422',
'08423',
'08424',
'08426',
'08427',
'08431',
'08432',
'08433',
'08434',
'08435',
'08441',
'08442',
'08443',
'08444',
'08445',
'08446',
'08450',
'08452',
'08453',
'08454',
'08456',
'08457',
'08458',
'08459',
'08460',
'08461',
'08462',
'08463',
'08464',
'08465',
'08466',
'08467',
'08468',
'08469',
'08501',
'08502',
'08503',
'08504',
'08505',
'08506',
'08507',
'08509',
'0851',
'08531',
'08532',
'08533',
'08534',
'08535',
'08536',
'08537',
'08538',
'08541',
'08542',
'08543',
'08544',
'08545',
'08546',
'08547',
'08548',
'08549',
'08550',
'08551',
'08552',
'08553',
'08554',
'08555',
'08556',
'08557',
'08558',
'08561',
'08562',
'08563',
'08564',
'08565',
'08571',
'08572',
'08573',
'08574',
'08581',
'08582',
'08583',
'08584',
'08585',
'08586',
'08591',
'08592',
'08593',
'0861',
'08621',
'08622',
'08623',
'08624',
'08628',
'08629',
'08630',
'08631',
'08633',
'08634',
'08635',
'08636',
'08637',
'08638',
'08639',
'08640',
'08641',
'08642',
'08649',
'08650',
'08651',
'08652',
'08654',
'08656',
'08657',
'08661',
'08662',
'08663',
'08664',
'08665',
'08666',
'08667',
'08669',
'08670',
'08671',
'08677',
'08678',
'08679',
'08681',
'08682',
'08683',
'08684',
'08685',
'08686',
'08687',
'08702',
'08703',
'08704',
'08705',
'08706',
'08707',
'08708',
'08709',
'0871',
'08721',
'08722',
'08723',
'08724',
'08725',
'08726',
'08727',
'08728',
'08731',
'08732',
'08733',
'08734',
'08735',
'08741',
'08742',
'08743',
'08744',
'08745',
'08751',
'08752',
'08753',
'08754',
'08756',
'08761',
'08762',
'08764',
'08765',
'08766',
'08771',
'08772',
'08773',
'08774',
'08781',
'08782',
'08783',
'08784',
'08785',
'08801',
'08802',
'08803',
'08805',
'08806',
'08807',
'08808',
'08809',
'0881',
'08821',
'08822',
'08823',
'08824',
'08825',
'08841',
'08845',
'08846',
'08847',
'08851',
'08856',
'08857',
'08858',
'08860',
'08861',
'08862',
'08867',
'08868',
'08869',
'089',
'0906',
'09070',
'09071',
'09072',
'09073',
'09074',
'09075',
'09076',
'09077',
'09078',
'09080',
'09081',
'09082',
'09083',
'09084',
'09085',
'09086',
'09087',
'09088',
'09089',
'09090',
'09091',
'09092',
'09093',
'09094',
'09097',
'09099',
'09101',
'09102',
'09103',
'09104',
'09105',
'09106',
'09107',
'0911',
'09120',
'09122',
'09123',
'09126',
'09127',
'09128',
'09129',
'09131',
'09132',
'09133',
'09134',
'09135',
'09141',
'09142',
'09143',
'09144',
'09145',
'09146',
'09147',
'09148',
'09149',
'09151',
'09152',
'09153',
'09154',
'09155',
'09156',
'09157',
'09158',
'09161',
'09162',
'09163',
'09164',
'09165',
'09166',
'09167',
'09170',
'09171',
'09172',
'09173',
'09174',
'09175',
'09176',
'09177',
'09178',
'09179',
'09180',
'09181',
'09182',
'09183',
'09184',
'09185',
'09186',
'09187',
'09188',
'09189',
'09190',
'09191',
'09192',
'09193',
'09194',
'09195',
'09196',
'09197',
'09198',
'09199',
'09201',
'09202',
'09203',
'09204',
'09205',
'09206',
'09207',
'09208',
'09209',
'0921',
'09220',
'09221',
'09222',
'09223',
'09225',
'09227',
'09228',
'09229',
'09231',
'09232',
'09233',
'09234',
'09235',
'09236',
'09238',
'09241',
'09242',
'09243',
'09244',
'09245',
'09246',
'09251',
'09252',
'09253',
'09254',
'09255',
'09256',
'09257',
'09260',
'09261',
'09262',
'09263',
'09264',
'09265',
'09266',
'09267',
'09268',
'09269',
'09270',
'09271',
'09272',
'09273',
'09274',
'09275',
'09276',
'09277',
'09278',
'09279',
'09280',
'09281',
'09282',
'09283',
'09284',
'09285',
'09286',
'09287',
'09288',
'09289',
'09292',
'09293',
'09294',
'09295',
'09302',
'09303',
'09305',
'09306',
'09307',
'0931',
'09321',
'09323',
'09324',
'09325',
'09326',
'09331',
'09332',
'09333',
'09334',
'09335',
'09336',
'09337',
'09338',
'09339',
'09340',
'09341',
'09342',
'09343',
'09344',
'09345',
'09346',
'09347',
'09348',
'09349',
'09350',
'09351',
'09352',
'09353',
'09354',
'09355',
'09356',
'09357',
'09358',
'09359',
'09360',
'09363',
'09364',
'09365',
'09366',
'09367',
'09369',
'09371',
'09372',
'09373',
'09374',
'09375',
'09376',
'09377',
'09378',
'09381',
'09382',
'09383',
'09384',
'09385',
'09386',
'09391',
'09392',
'09393',
'09394',
'09395',
'09396',
'09397',
'09398',
'09401',
'09402',
'09403',
'09404',
'09405',
'09406',
'09407',
'09408',
'09409',
'0941',
'09420',
'09421',
'09422',
'09423',
'09424',
'09426',
'09427',
'09428',
'09429',
'09431',
'09433',
'09434',
'09435',
'09436',
'09438',
'09439',
'09441',
'09442',
'09443',
'09444',
'09445',
'09446',
'09447',
'09448',
'09451',
'09452',
'09453',
'09454',
'09461',
'09462',
'09463',
'09464',
'09465',
'09466',
'09467',
'09468',
'09469',
'09471',
'09472',
'09473',
'09474',
'09480',
'09481',
'09482',
'09484',
'09491',
'09492',
'09493',
'09495',
'09497',
'09498',
'09499',
'09502',
'09503',
'09504',
'09505',
'0951',
'09521',
'09522',
'09523',
'09524',
'09525',
'09526',
'09527',
'09528',
'09529',
'09531',
'09532',
'09533',
'09534',
'09535',
'09536',
'09542',
'09543',
'09544',
'09545',
'09546',
'09547',
'09548',
'09549',
'09551',
'09552',
'09553',
'09554',
'09555',
'09556',
'09560',
'09561',
'09562',
'09563',
'09564',
'09565',
'09566',
'09567',
'09568',
'09569',
'09571',
'09572',
'09573',
'09574',
'09575',
'09576',
'09602',
'09603',
'09604',
'09605',
'09606',
'09607',
'09608',
'0961',
'09621',
'09622',
'09624',
'09625',
'09626',
'09627',
'09628',
'09631',
'09632',
'09633',
'09634',
'09635',
'09636',
'09637',
'09638',
'09639',
'09641',
'09642',
'09643',
'09644',
'09645',
'09646',
'09647',
'09648',
'09651',
'09652',
'09653',
'09654',
'09655',
'09656',
'09657',
'09658',
'09659',
'09661',
'09662',
'09663',
'09664',
'09665',
'09666',
'09671',
'09672',
'09673',
'09674',
'09675',
'09676',
'09677',
'09681',
'09682',
'09683',
'09701',
'09704',
'09708',
'0971',
'09720',
'09721',
'09722',
'09723',
'09724',
'09725',
'09726',
'09727',
'09728',
'09729',
'09732',
'09733',
'09734',
'09735',
'09736',
'09737',
'09738',
'09741',
'09742',
'09744',
'09745',
'09746',
'09747',
'09748',
'09749',
'09761',
'09762',
'09763',
'09764',
'09765',
'09766',
'09771',
'09772',
'09773',
'09774',
'09775',
'09776',
'09777',
'09778',
'09779',
'09802',
'09803',
'09804',
'09805',
'0981',
'09820',
'09822',
'09823',
'09824',
'09825',
'09826',
'09827',
'09828',
'09829',
'09831',
'09832',
'09833',
'09834',
'09835',
'09836',
'09837',
'09841',
'09842',
'09843',
'09844',
'09845',
'09846',
'09847',
'09848',
'09851',
'09852',
'09853',
'09854',
'09855',
'09856',
'09857',
'09861',
'09865',
'09867',
'09868',
'09869',
'09871',
'09872',
'09873',
'09874',
'09875',
'09876',
'09901',
'09903',
'09904',
'09905',
'09906',
'09907',
'09908',
'0991',
'09920',
'09921',
'09922',
'09923',
'09924',
'09925',
'09926',
'09927',
'09928',
'09929',
'09931',
'09932',
'09933',
'09935',
'09936',
'09937',
'09938',
'09941',
'09942',
'09943',
'09944',
'09945',
'09946',
'09947',
'09948',
'09951',
'09952',
'09953',
'09954',
'09955',
'09956',
'09961',
'09962',
'09963',
'09964',
'09965',
'09966',
'09971',
'09972',
'09973',
'09974',
'09975',
'09976',
'09977',
'09978'];
function subsetToSubPattern(array $digits): string {
if (count($digits) < 2) {
return implode('', $digits);
}
$result = [];
$last = null;
foreach ($digits as $d) {
if ($last !== $d - 1) {
unset($ref);
$result[] =& $ref;
}
$ref[] = $d;
$last = $d;
}
return sprintf(
'[%s]',
implode(
array_map(
fn($set) => count($set) > 2 ? "{$set[0]}-".end($set) : implode('', $set),
$result
)
)
);
}
function buildTrie(array $strings) {
$trie = [];
foreach ($strings as $string) {
$node =& $trie;
for ($i = 0, $len = strlen($string); $i < $len; ++$i) {
$char = $string[$i];
$node[$char] ??= [];
$node =& $node[$char];
}
$node['$'] = true;
}
return $trie;
}
function trieToRegex(array $trie): string {
$isTerminal = isset($trie['$']);
unset($trie['$']);
$groups = [];
foreach ($trie as $char => $subTrie) {
$groups[trieToRegex($subTrie)][] = $char;
}
$alternatives = [];
foreach ($groups as $subPattern => $chars) {
sort($chars);
$prefix = ctype_digit(implode('', $chars)) ? subsetToSubPattern($chars) : implode('|', $chars);
$alternatives[] = $subPattern ? "$prefix$subPattern" : $prefix;
}
$regex = count($alternatives) > 1 ? '('.implode('|', $alternatives).')' : ($alternatives[0] ?? '');
return $isTerminal ? "$regex?" : $regex;
}
$regex = trieToRegex(buildTrie($area_codes));
$regex = ctype_digit($regex) ? $regex : "($regex)";
$regex = "#^$regex$#";
echo "$regex\n";
var_export(
preg_replace($regex, 'validated', $area_codes)
);