jacob614

pcb+socket maze solver

Jun 12th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 35.12 KB | None | 0 0
  1. import sys
  2. import os
  3. import traceback
  4. import subprocess
  5. sys.setrecursionlimit(2000)
  6.  
  7. a="""
  8. QSCZDOPPDLVJDJKIIYDACIZEDFGXJDDMINIBOOAKAPUOCDFLWRYIGDNKLJLBRYMQDFLQBCPZIRHJSXUHBHHMQHV
  9. LEQSDBQOTAVHHFFLRAETGSMQUICPSIYINTSDSAOLWZNZFBINKFYFCVKBSFKAPPXHQQSMHNGNWKLISYDFXUNBKGI
  10. DCLYCBVRIHHKEMWJTESNKHEXEFCOGVQIUFGBWOHSCPFDBKPQWXNZEBBMQOFYSLJONAXRFPUYBGMFKSKPMVHGMYZ
  11. ZSFDWDVRMZZHOZQFSBRZODLEYZHGEBJCLGVLWPLIAYSMLGRPJKEOGGRIEMFCELNDKMFEENRKFKHBHLEUAYEJTQQ
  12. OEGPNROOHPGUGYQBICHJMXWUZKESTTHKFUXDJTRVLCGZRTEITBKREUEVVFLHQGEZYYSIKBUIOLAVWRQVRCBBIRL
  13. YOLLKAAZFYACIELVJRPWZXPBJJJEMEOCBBAPBYRBIGMRSRZTIVKFHPROHTCZOOIZGBHYSOAGEQKHUKXRSMQPZZI
  14. OYZKOGRNCDMOPOOKQPVNUVKAQCWNTEGWCISCOIBYOUHAKEDVWKFAKDCUZOHIKRGABRKHFGPNDQXBBXHDCNDGBAF
  15. FACVHVYGIVPFBLSYPCOFUNJHQLTARZCVNDFXKTUUCLQLBILAYIFZCWUQPACEYFAWFQHGJMUVGXSAGDSZMUNQUAI
  16. XOEFGQPXLJRGZKFRSOVBNKRVHSBABQGGEJSRCRQUXSVFIXHTJHDXSVCUWBPYMFZBKIWSJJAIXUIAGQWYTPSHLBP
  17. PGWXFDAKSUVSZVNEFOTOFIQFYYALQHSWLPPRIWCBLCKHKXKLLRDKNAFTGGBFEORRVUOUFRRNOQBDOBNZCBQAAIG
  18. DVDLUFXGJJFJNZGPLXYIHVECHUHQHGFWDNTXPNWIQTETCLHBRXSYRDBWRBXSZZQTZGZTETMWRJPEVPDGMOBBXDR
  19. WOBBKELZYGICASVUGYRPSHEYXKRRFODUKFETTONYEHHGALPIAEQHESKMCAPFMHTBOWRNOCALRRNVAPYZABYJZSY
  20. CCBKQHOBRCVAQTGAZBWCQGHSVBDYMZCINZVWLENFHNPFKUBONJCLKSMKSLYERMDRKUFRQOSHDUBNXRTYBMBKRWV
  21. CIXZFYGZZCXRRHUVMZULQOGYVDFNZXTCXNZREPRQRFZBERABOCHXLDUOPQURIAIHWJPCOSOBPVZPDFOYCRRTEKW
  22. FBLJRWLUZJDUEKMPJUXDGZKCJOLAQFTYYOHDZJTYXKRXRZJOXNXJXFNLVEYHQMRBDUNRKTFSNBSZQTQWQXFBAXD
  23. DGUZTWIUXREFXMMSLBVNBZUFVJMRYGPCYAFKWPEWNZBOZNNLAMRGQDTIQNAALCIDPGGFCDLTEFJZUBMGICNUYOT
  24. BFXQZMTVHPBZRWWDQHNVRIVVVYKLYCLUOXKBHXDICODWIRLBSLJMRXQCSXBZRRUDPJGGXBAUMGQXZHCRRSEKBQV
  25. XLXSWNYGQVFGYIYAPQCANFKTFNFEFUCIZILVYIYPPYXUUMFKQTDEXQTEHRILULKUEZRDBBXGEKEFRHJBBFGFDXY
  26. PJQTCLRIDFTTYUAZFERNBNAFLOKRIYAMWRHSVQZCLSXUIQGENPHVFRPGDKSDQODWJTEDOUWKCEMDDGBFOTSASYW
  27. NYFLEWUEXLEGBQRHBTYRAFNOEEGMNRSHNEPRNBLATANCIDRLJKVZZSABUEXKIJDZELONJFCXLIXUUGNHFUBAOYM
  28. AWFCIIATEDFLTBGXAWQUXPFQGPHNDYKUAPZXADLAMVFWSKEVSNWUOXOFTUJECAIYYVETLBARZFCHTGRDHAEJWRE
  29. KTMEWUZIKREHTDFRSFVRAHRVGXYMDHBJRHOONSLPDVCGPWATZAORQDLHJYCCGFJPIENRUHUKWWUGYUYVBLVFJJJ
  30. TUIREALEBGFLIAPCGSMRGKEXDVQEPAZSYFFCPUOUTENAIDUHUXCFDPFKSYCRCMXXCZVLOBNASDMRADUMHMCVHCR
  31. KHIFWXBMXTIFBUVYDOIKRWTAJZCTLICDYTMHNLVFCIEXLTUKLMZBCVLTGPZEMAYONRAQIWUDXKRDQWZZVEEQFAN
  32. MEKNMOOFLOZQTNAALCQXBYVVVDLPLWCZRJPQYBYIXKBPHYUTZGXAZKDKKOORKWIPUFWGFENANBWUANKSSLVJLZK
  33. UJWBPABFPWBVVXMHZRYBYVNRORMWJANKTLZUQPEDBFITOGRVYPTBKOUNCRTHOZFKKJNBHTLRTBHMZWMEMLYDSNL
  34. GLSTBTUPIELKTRYKTOMFKFDYVTJENKNZVHXWRVDNQXCTHFGNIBPNYQREBAYKWEJFSSAZZFDZYNSENZOBVFREYKT
  35. MIJYCWBCVZNYVRAYHTVHIXFIYLVOMKSXYKHSEMSQAHXDMPNRNHXADYLSOUPBBNWHFVRGQYKIROVMUSPLKGLPEYX
  36. UPPURZQCWCSFXXNERTTVRGUVFGYRGBAPYAVXBYNVWNXBIWCCDQGTVVTMMYEZISYCYIXOYTNGXFBIKWOMYWMXJYK
  37. AXKBAAFHXNWQUVIZWEQVEYTOOHIIPCQIRCPXAIIGQCUCBMKXHQVPXLJBBQUBHFREXXAKZRFCJWRPEXIVISJNMZD
  38. PBLLHNGAYBYXLZLXUSHLBMHNSCOMAISXGHTDGFKNFKAWEHMCORLVPWBZIHFFSZIRNXBXTNUCNDCVEWJDDYNEUXP
  39. HELXQGZEGHBMTOPKLBMDAVUTWTBTNXRLGPALVGKGVHDLFNAWYQSSDGNFDSYXSESNJZMNPNXZHFCNZSYWNKVUXRV
  40. JIWGQGVDRHPEKSGPOJQZVVYVOQBZENSPRZSESEAYBMZYNNLPCOHNZNYSJKDRBJWAELERHUQIOARLCWGHBRGVEZE
  41. BRRORKPVPKSNZVTFNQRHPEGLVLWOUNCGHJKDVEMAXBHXTHZTEJHMJUEJETUNZRROMRPMPZLADRRFGZIQLQIFHBL
  42. PQSHJFUFQMYNFQYFIEIQNLYJPCCENNYBUSSGQBCYPTFCCDBCVOLRDPMXZRPVRHLLRAIBJPGQMUUDYITTCAHIQHV
  43. EZNJQXVTUOERGGOHAFRAQPBHWMTKBUNJUPHVCKBYWXFEJOJDMYENBWCOWCJYDORXNQPRPNQCKTRRGWUCKEJALOM
  44. OMWVUDXPKWSPEAEAFDYARVHOCTJDSQINPXTFIJFVSUCKDQMAAFYWEDWUFCACLWEYKARBLVAGKYJYYDOBAWZZGAN
  45. YMGQYKBMHUPZCBCBLVSENHYTBZRMZGYNPVXBKDGTWRTEQJGDRYQRUADUYIGTAETVXMYZEFBHORTHYAWSYUOFWAX
  46. YNZNQEVANQSOPQRULQLAAOBBAKYNJJASDYPAVBMIRUSUGTUZUMZDGRFRDFWYXPADQNHFNCGWPXJLSKNXJLWGCFG
  47. BCGYUXFUFZJWOTHIIYCZRLPTSFGRXMZXVFXWBEZTHMACBKRBCHNHNGUVWXZZBSPJUXAREWBFDIGBEKRPSEHEZNK
  48. NWDFKTUAXMASEQITSBYIHZNCORROTXEPXVCSEKQYDAMMNFXFJPYJOQRASAFUOYNWBNSRXXYEUNZXANYRUSNHLFN
  49. PUOISRVTIWVQYKHJIEHNZTGYHXBHCHIJGKOMQTHJZVBIPXMZSPBLFREKYVLCPZRVNJDVHTNQNDQPIBYVPSCNJXZ
  50. RWRUSFXTFQGKDOBZZQPTMFURVVYJHLMYUQATSTQRLKEWZOSOLWEELTVZEOAVZPJIMPWYJQACOYMMQPUYLOGDJVS
  51. MNUBIKNSYEENCSTGVSSLPVUSUJURIDAJMCVEYKHRZYMHQEERPRLEPBSNSNGYVSSXMIDGGHNOFTOHAQZNYTUHGJS
  52. PAUEKEJPKCMJTKBXRRIRBAJCHNRDFYHTUBVCEOICQVQENZBHAZNTIESMXOZEWASWZRUSBEXCGFSVUUENLXLNBDA
  53. RNVHHRNFEGEPIUUOHYSIQELTQKUJVQTIHMVLVVFXYGFSRIIZVQECEHRYCZSBRBKPYQXOJENYKNGCFTOSUXJKEYR
  54. NACAUQOONYZTUXVOJGFGTHEOGLPZZEMMMDLUASXNAILMMBJUUGPBEEMSRSJRAWVOZTNVCNARMMWPNUTCCUBAIRQ
  55. ENRGRSEWOGJIMRTBXPHXQVFSRNPFNKBPTULNQYNFXOLXWECUMZUPLJCRLUMGMYMEDOIOBSROGWXHUEBBJYBENRM
  56. SJCHNZSTLRBUORQZIUCSDHZMYRAXPRYPBTLDRCCPLSEGREUZINRWNNBGHJLWKPVVIGBAOAPMMYUVDOTCUJKEYHC
  57. QDNIVVZPVBEXGUKBAYLTNRGYRXJTGBHLKAMWZAVZRFWWXVGASLEKLOAWPNAKXOIZMXRXWVCCFFOIWPLNVAZCQPA
  58. APFWYPAFHXGGRZUGSRDQGUVAEWEGIDAOAWWXFNZVHPGVKENUVUVXSTQEEHHMEZHYBEVITORQBFKARMGMKCINHKE
  59. KWABSHDZZMJOXARGDLVXVQRQIKDTTTBEUZAVLGXHFHVTEDUJZYFWDURKAYLIHILGBAOPZKBWZWHCFUHNECMGGEZ
  60. IFVTKCCEHPNMOYGRESWXNFZFCSAPHLERNYRCHUEWYSOYHFFZALRANRELWSZDPCWZNVUPZOIARCDRFLYPFSIKANC
  61. CSMMTAQANEZBKGRNFJIPLZFQCKZTEXCWOQNLAQGVSSKTGPSJJYOBYTSMVNQRAANZYXNELILNKNSTZGXJUBXYRHQ
  62. RJNBCLQUKCCKPQIVEYAASBVMXQHJHOOKGQFOTCVCAQVYUHYTUIBOAKBJGOJPGVXZPYIUMGGPCCAKJSIOTCGWYAG
  63. DXYWIQZPOFEUPEEDABWVDXHSDZLAGNCCIGEPYVSEXRGONEAYHBSPMVCFFXHIERQOCUDGEXCLZZEXVQHCQHIMYSN
  64. MFWUXISFRTFQLBBGEURDZRYXXOIZNODNHYSWUJBQWFGOACYGTLPZUSZTKLGNRICTYBVPQWRFURPMNJCBCRLRDTF
  65. BWCTTBLMGNOUOXXOUZRKGYGBALGJNFFJSXVXIYCLBBJGAXKPRQJOQSBNAPZOARQJXYBVTYGRNROSCAGZJTZDBJJ
  66. ZFOKEKZRCWOYYMOEGBZLWLKEEGAPEMNJEYPWKEBYVBOZROIXWHFGSDEIPMLZSNHHOICILNQCNBTVEMRFQRMCFHC
  67. VAETLWIEDKCVYNPLMQHJCXRMPQRUTLZCSQHOUZNGXQITYZXJFELEKSOLYQPWGPFGDWDQROADEUAYYFDNLHXCAMX
  68. XMOOVDLMGHOZXYKVEMBJGOBGXDGIRQXMIRFVEWYCMCPPVPPPYADJNXOYHIFOOGOSQUGTCLPRTUPDMEMGEFVMWLO
  69. RAGHFIZMGLBRIQMGVOBAWCLMVAFDBCNSHMRXPVMTXOFUGUBTESEPVYKEJCLVVAHGGBVONVVJFQZZLFZQAPQKYVT
  70. LYEESYHRARUQQBBJPNCGNVAYNZZREFEYDSNWABHVNZEBMNLZBWNYPOGFWTLZVAYBGDBUIHDDRBZXSMHCBLURZJX
  71. UHFGAFOACNZJRHXBDYJWHBTQCFWSTKHTUAZDUPEGDFSCRERPVBTFDLQPGQDIPJVCKGKJLXWJDCGNDERSACTRPDJ
  72. NNPEDORSUUXAEFFWFTRVJVBPKZWSRSSEQCHJRFWCLTFAAYVVKPARCDKAMMVUVYDGOQGCUZHZFKTJAGUHKRSQERX
  73. AFERQXXQTBWDPJWQGGYAJZCXQSSGFBHRTOFFMFSAPKPLORKSVSOOIXWJNKHAXLPPRPGVSUSZIBLCNSEUYOELOLO
  74. ASELCYVPHLGWJRIRGTQZOFTKRVUZCNIZBPZYOPYHYBNMRFRCXTSUWGSWHOQUYRQYFWFNNLBLSOVKYKEZFIUIWBO
  75. VVPAEWUHZYTHMATRWDBLKFHRNMZJROIKKBPFNCDGWYCLEDWPVWMNKWZATIYHSRIUNOAAFVZMAVMHETRRTWUIWZJ
  76. GDZBZZUPWDZIGFYZWWIJKRDCKCUIYEHEDRTRIGAMPZGWTMSOPERAFUNJZQLWGFREQDTQICINGYWFEAUMQVUXJKN
  77. LORYRMEZIYPYMYSEWFINQDQXNOYJIYTDOGBYQURWUDNNRZPQYJCFISEAVQQNWNFNHLULZOLXROUXKARAYQAPXCL
  78. TTTQPUCVYZVDVRDXJNDXIHTKRIDDVMQBTVBXPOJEKLVNEPBIMKUUUGOVWRTECNYNAFUNCVEBVBNTHXKAWARMSHG
  79. VATFGXYYRVFTRLPXJHACDWCHVXDGAJNQIJAPWOGRTRAXCUFXBHSRJAKORMLFMPWUYIYZJTDFVXQSRGSGJIOJMRU
  80. NGPIXYSMBCLYKQJYCGMMSRHKMMJGSFTHDLFQMJHAKSEEDWBPKOJFMBTINBHIOXXXPTKFVKCIRSAYOLAYTFELRHP
  81. CWWOKUZPWQEIDNKGUCZLSMHTKQGKVKVTTHYRBPTYHWRKEWVKZMWFRIIPYUWNKYHGHZRBVUGQVKTGWXEEFMOEHCH
  82. UMYEQXNZANBZRYOFKUODBGKIFPHHSUQNJAXJUEECUUTVECNTOMCYYTDUIQNPJWWCKYWEJUJBBQUBHFRSLBNDAFV
  83. RUCKFSLNWFABQRNSCZVIBXUZGAZJVDQAVYNREYOFPCRFJADTCPGRYXRUHOFPUDXFGRNYAZTFJUFRFDGKFCGDNHT
  84. BYVBRIECFPYGVFSARBVOXDOPYNQMOLOAEVWBWEOEWFAIODKEIISEBELZUEEXODPTHHGSUBVKLGDGOFYTNWATGUE
  85. VNCBCGUENYBNCCTUXWZLHMPLEVYSVTTVFVNNSBNUGLGGDSVZYWWLSIRIFQRVYPRWRBJBHWCIOZFUIUIJHYIGRAT
  86. NICLLOYYAIYGCNGGPSMMPIUVFLDESAEGIJOGUTCSFFPXABMETAMSGXXNBNUDTDYYTFVBIPQXUEESZIVUKQQHORG
  87. UGKLBGNFQTVPECLLVNWUHQHEVSMBADBOZWZBAMANINYNZPBOCBHBEZOJKAVBPAOBWDUKHOGAEJCDTXAGWGQEGQL
  88. TGCOTGTVHTXTZXXKGFFXEPFRHHEDFGFVCLMVKLUSHNNUKRYKEUCRQAHNTAJAKOTJVFVURSNRCVLJWUSKKRZTRTL
  89. VPRUJYWSFXKWFOOEWMNXFUZTOCKIUEHJUVYNRRXHIEHQVYEUPJABNAFBCHALWWCLAKPJGGUGMJRSWCWLKXWYUPR
  90. QSRYOOMTVVCJJJJVPZNEVBFRIVABBZCKGESTVEJPDLQTRWCRANJDLLEQFBIYGAFSHSDEZMRFXFYTQTAHZBPBZIC
  91. NQRDYJFWALAHKIOUEWADTCBEBQARLQBZRQOQZKSOVEVCAOYZQFKIMFGSLELUJGHYJVXYAEROMNOLRTHOTDHGRFT
  92. BZZCOMXZTKEKRVYEQGOZQVQZGNHOZMAGFERTGVLYKOBLIHZPOPVLRENVVFZMVWBJOGOVWLMYIDCJXEAJKHHNTNW
  93. YDMUZCWRURMALRBRARGRLTBWPKZUFFFTTALNZBWZDVADCQAEMTBDKZTNZUJQORCQVTMFYAFGRYMOBZJUQXYLZHS
  94. INCDKPPOMVRVEVWDPPURELYGHAGYFCMOTXULVNYGGYIKHKLLPMIOFNZXFMICTAURATMMDCUXHEQRCEXJFYNLTUE"""
  95.  
  96. pcblines = a.splitlines()[1:]
  97. pcb = []
  98. for i in range(87):
  99.     pcb.insert(i, [])
  100.     for j in range(87):
  101.         pcb[i].insert(j, pcblines[i][j])
  102.  
  103.  
  104. b="""
  105. .......8.......8.........8.........8.........8...........8.......8...........8.........
  106. .8888888.8.888.8.8.8888888.88888.8.8.8888888.88888.88888.8.888.888.88888.888.8.8.88888.
  107. .........8...8.8.8.8.......8.....8...8.....8.8.....8...8.8...8.8...8...8.8.....8.8...8.
  108. .88888888888.888.8.8.8888888.888888888.88888.8.88888.888.888.8.8.888.8.8.8.8888888.8.88
  109. .8.....8...8.8...8.8.8.....8.8.8.....8...8...8...8.......8.8.8.8.8...8.8.8.....8...8...
  110. .888.888.8.8.8.888.8.8.88888.8.8.8.888.8.8.88888.8.8888888.8.8.8.8.8.888.888.8.8.88888.
  111. ...8...8.8...8.8...8.8...8...8...8.....8...8.....8.....8...8.8...8.8.8...8...8.......8.
  112. 88.8.8.8.88888.8.888.8.8.8.888.888888888888888.8.88888.8.888.8888888.8.888.888888888.8.
  113. ...8.8.8...8...8...8.8.8.8.8.8.8...............8.8...8...8...8.....8.8...8.8...8...8.8.
  114. .888.8.888.8.88888.8.888.8.8.8.8.8.888888888888888.8.8.888.888.8.8.8.888.8.8.888.8.888.
  115. .8...8...8...8.8...8.....8.8.....8.8...........8...8.8.8...8...8.8.8...8.....8...8...8.
  116. .88888.8.88888.8.8888888.8.888888888.888888888.8.888.888.8888888.8.8.88888.888.88888.8.
  117. .......8...8...8.........8.........8...8.8...8...8.8...8.8.......8.8.......8...8.......
  118. 8888888888.8.8.8888888888888888888.888.8.8.8.88888.888.8.8.8.88888.8.88888.8.8888888888
  119. .8.......8.8.8.8.........8.....8.....8.8...8...8...8...8.8.8.....8.8...8...8.8.........
  120. .8.88888.8.8.8.88888.888.8.888.8.888.8.888.8.8.888.8.8.8.8888888.8.8.888.888.8.888.8.8.
  121. .8...8...8.8.8.8...8...8...8...8.8.8.8...8.8.8.....8.8.8...8.8.8.8.8.8...8...8.8.8.8.8.
  122. .888.8.8.8.8.8.8.8.888.88888.888.8.8.888.8.8.88888.8.88888.8.8.8.8.888.888.888.8.8.8.88
  123. .....8.8.8.8.8...8...8...8...8...8.....8.8.8...8...8.8.....8.8...8...8.8...8.....8.8...
  124. .88888.888.8.8888888.888.8.888.888.88888.88888.88888.8.88888.8888888.8.8.888.88888.8.88
  125. ...8.8.....8.8.....8.....8...8...8...8.........8.....8...8.......8.....8.....8.....8...
  126. 88.8.8888888.888.88888888888.888.88888.888888888.888.888.8.8.888888888.8888888.88888888
  127. .8.8.....8.....8...8.......8.8.8.8.......8.......8.8...8.8.8...8.....8...8...8.........
  128. .8.8.88888.888.888.8.8.88888.8.8.8.8888888.8888888.8.888.8.888.88888.8.888.8.888888888.
  129. ...8.........8...8.8.8...8...8.8...8.......8.......8.8...8...8.8...8.8.8...8...........
  130. .888.8888888.888.8.8.888.8.888.88888.888.8888888.888.8.888.888.8.8.8.8.8.8888888888888.
  131. ...8...8...8...8.8.8.8.8...8.......8.8.8.8.....8.....8...8.8...8.8.8...8.8.........8...
  132. 88.88888.8.888.8.8.8.8.88888.8.888.8.8.8.8.888.888888888.8.8.888.8.88888.88888.8.8.8.88
  133. .8.....8.8.8...8.8.8.8.......8.8...8.8...8.8.8.........8.8.8...8.8.....8.....8.8.8.8.8.
  134. .88888.8.8.88888.8.8.8.8888888.88888.88888.8.8888888.888.88888.8.88888.88888.8.8.888.8.
  135. .....8...8.......8...8.......8.....8.....8.....8...8.....8...8.8...8.....8.8.8.8...8...
  136. .88888888888888888.8888888.8888888.88888.88888.888.8888888.8.8.888.8.888.8.8.8.888.888.
  137. .8...............8.8...8...8.......8...8.....8...8.........8.8.....8...8...8.8.8.8...8.
  138. .8.888888888.888.8.8.8.88888.88888.8.8.8.888.888.8.88888.888.888888888.8.888.8.8.888.8.
  139. .8.8...8...8.8.8.8...8.....8...8...8.8...8...8...8...8...8...........8.8.8...8.....8...
  140. .8.8.888.8.8.8.8.888888888.888.88888.88888.888.88888.8.8888888888888.8.8.8.888888888.88
  141. ...8.8...8.8.8.8.8.......8.....8...8.....8...8...8...8.....8.......8.8.8.8.........8.8.
  142. .888.8.888.8.8.8.8.88888.8.88888.8.888.8.888.888.8.8888888.88888.8.8.8.8.888888888.8.8.
  143. .....8.8.8.8...8.8...8.8...8...8.8...8.8...8.8...8...8...8.....8.8.....8.8...8.8...8.8.
  144. 888888.8.8.888.8.888.8.88888.8.8.888.88888.888.88888.8.8888888.8.8888888.8.8.8.8.888.8.
  145. .....8.8.8...8.8.....8...8...8...8.8.....8.8...8...8.8.......8.8...8...8.8.8...8.8.8...
  146. .888.8.8.888.88888.888.888.8888888.88888.8.8.888.8.8.888.8.888.888.8.8.8.8.888.8.8.888.
  147. .8...8.8...8.....8.....8...8.......8.....8.8.8...8.......8.8...8...8.8.8...8.8.8.8.....
  148. .8.888.8.8888888.88888.8.8.8888888.8.88888.8.8.88888888888.8.8888888.8.88888.8.8.8.8888
  149. .8.....8.......8...8...8.8.8.....8.........8.8.8...8...8...8.........8...8.....8.8.....
  150. .888888888.8888888.8.888.888.888.8.888888888.8.8.8.8.8.8.888888888888888.8888888.88888.
  151. ...8.....8.8.......8...8...8...8.8.8.........8.8.8...8.8.........8.8...8...8.....8...8.
  152. .8.8.888.8.8.8888888888888.888.8.888.888888888.8.88888.888888888.8.8.8.888.8.8888888.8.
  153. .8.8.8.8.8...8.........8...8...8.8...8.....8...8...8...8.....8.....8.8.....8.8.......8.
  154. 88.8.8.8.888.8888888.8.8.888.888.8.88888.8.8888888.8.888.888.8888888.888.888.8.8.8.888.
  155. ...8.8.8...8...8.....8...8...8...8...8...8.........8...8.8.8.......8...8.8...8.8.8.8...
  156. .888.8.888.888.8.888888888.888.88888.8.888888888888888.8.8.8888888.888.888.888.8.8.8.88
  157. .....8...8...8.8.....8.....8...8...8.8...8...8...........8.......8...8.8...8...8.8.8.8.
  158. .8888888.888.8.8.888.8.88888.888.8.8.888.8.888.88888888888.88888.888.8.8.8888888.8.8.8.
  159. .......8.8...8.8...8.8.....8.8...8.......8.....8.8...8.........8...8.8.8.....8...8.8...
  160. 888888.8.8.888.88888.88888.8.8.888888888888888.8.8.8.8888888.88888.8.8.88888.8.888.888.
  161. .....8.8.8.8.8.8.......8...8.........8.......8...8.8.8...8...8...8...8...8...8.8...8...
  162. .888.8.8.8.8.8.8.8888888.8888888888888.88888.888.8.8.8.8.88888.8.8.888.888.888.88888.88
  163. ...8.....8.8...8...........8...8.......8...8...8.8.8...8.....8.8.8...8.8...8.8.......8.
  164. 88.8888888.8.8888888888888.888.8.8888888.88888.888.888888888.8.8.888.8.8.888.8.8888888.
  165. ...8...8...8.......8...8.......8.8.8...8.....8.8...8.......8...8.8.8.8.8.8...8.8...8...
  166. .888.8.8.888888888.8.8.8.8888888.8.8.8.8.888.8.8.888.8.888888888.8.8.8.8.888.8.8.888.8.
  167. .8...8.8...8.....8.8.8.8.8.....8.8...8...8...8.8...8.8.......8...8...8.8...8...8.....8.
  168. 88.888.888.8.8.8.8.8.8.888.888.8.8.8888888.8.8.888.8.88888.8.8.888.888.888.8.888.88888.
  169. ...8.......8.8.8.8.8.8.....8.8...8...8...8.8.8.8...8.....8.8.8.8.8.8...8...8.8...8...8.
  170. .8888888888888.888.8.8888888.888888888.8.8.8.8.8.888888888.8.8.8.8.888.8.888.8.888.8.8.
  171. .8.....8.......8...8.......8.....8...8.8...8.8...8.........8.8.8...8...8.8...8...8.8.8.
  172. .8.888.888.888.8.888.88888.888.8.8.8.8.88888888888.88888.88888.8.888.8.8.8.8888888.8.8.
  173. .....8...8.8...8...8.8.....8...8...8...8...........8.....8.....8.8...8.8.8.........8...
  174. 88888888.8.8888888.888.88888.8.888888888.88888.8.8888888.8.88888.8.88888.888888888.8888
  175. .........8...........8...8...8.8.........8.....8.8.....8.8...8.8.8.....8.......8...8...
  176. .8888888.88888888888.888.888.8.8.888888888.8888888.888.88888.8.8.8.888.8888888.88888.8.
  177. .....8.8.8.........8...8.8...8.8...8.....8.....8...8...8.....8.8.8.8...8.8...8.......8.
  178. 8888.8.8.8.8888888.888.8.8.8888888.8.888.88888.8.888.888.88888.8.888.8.8.8.8.8.8888888.
  179. .....8...8.8.....8.8.....8.......8.8...8.....8...8...8...8.....8.....8...8.8.8.8.....8.
  180. .88888.888.8.8.888.8888888888888.8.888.88888.88888.888.888.88888888888.888.8.888.888.8.
  181. ...8.....8.8.8...8.....8.......8.8...8.....8...8.8...8...8.8.........8.8...8.....8.....
  182. 88.8.88888.88888.88888.8.8.888.8.888.888.8.888.8.888.888.8.8.888.8.888.8.8888888888888.
  183. ...8.8.....8...8.....8.8.8.8.......8...8.8...8.....8...8.8...8.8.8.8...8.......8.....8.
  184. .88888.88888.8.8.88888.8.8.88888888888.88888.88888.888.8.8.888.8.888.888888888.8.888.8.
  185. .......8.....8.8...8...8.8.........8...8.....8...8.8.8...8.8...8.8.......8...8.8.8.8.8.
  186. .888888888.888.8.8.8.888.888888888.8.888.8888888.8.8.88888.888.8.8.8888888.8.8.8.8.8.88
  187. .....8.....8.8.8.8.8.8...........8.......8...8...8.8.......8...8...8.....8.8.8.....8...
  188. 8888.8.88888.8.888.8.888.88888.88888888888.8.8.8.8.88888.888.8.88888.888.8.8.888888888.
  189. .....8.8.....8.8...8...8.8...8.8...........8.8.8.8.....8.....8.8.....8.8...8.8...8...8.
  190. .88888.8.8.888.8.8.888.888.8.888.88888888888.8.8888888.888888888.88888.88888.8.8.8.8.8.
  191. .......8.8.......8...8.....8...............8.8...................8.............8...8...
  192. 88888888888888888888888888888888888888888888E888888888888888888888888888888888888888888"""
  193.  
  194.  
  195. mazelines = b.splitlines()[1:]
  196. maze = []
  197. for i in range(88):
  198.     maze.insert(i, [])
  199.     for j in range(87):
  200.         maze[i].insert(j, mazelines[i][j])
  201.  
  202. """for i in maze:
  203.     print("".join(i))
  204. sys.exit(1)"""
  205.  
  206.  
  207. c = """
  208. D   F   P   M   Q   B   C   C   Q   Y   I   W   Q   W   X   V   V   L   Q   N   P   V   M   R   Q   S   T   K   W   Q   Q   Z   V   A   V   O   B   B   N   X   N   C   H   B   P   Q   S   Y   J   E   L   V   T   Q   A   X   Y   W   Y   O   E   L   Z   D   Q   S   Y   D   O   P   C   M   V   E   U   W   F   K   H   U   O   U   U   Z   D   U   I
  209. Y   R   D   F   Q   O   D   B   G   N   I   U   U   S   S   Y   E   N   R   G   T   F   Z   D   H   V   P   C   F   V   L   V   A   G   F   Q   F   N   B   Y   J   M   A   M   S   O   V   A   X   S   L   S   P   I   X   O   F   S   X   N   C   C   K   U   D   D   F   Z   U   A   T   A   J   X   Y   V   F   L   Q   S   K   H   A   O   X   T   V
  210. Q   P   Y   L   P   O   I   E   V   U   U   X   R   Z   J   W   G   R   F   A   X   U   R   K   R   S   P   B   T   I   D   V   H   S   T   O   J   B   U   F   P   C   S   Q   O   X   C   D   J   K   A   M   R   O   O   Z   D   B   S   L   F   Y   W   B   A.  N.  K.  E.  S.  C.  H.  L.  O.  T.  Z.  S   X   F   X   C   Z   I   U   T   Z   L   M
  211. M   F   S   Q   J   Q   I   E   Z   M   M   U   B   M   D   S   F   O   E   M   B   Q   Y   R   L   M   U   T   R   O   W   P   Y   T   I   Y   J   C   Y   V   N   L   F   Z   Y   T   E   C   W   X   R   B   T   T   E   V   R   Z   S   P   R   Y   A   Q   X   Z   S   R   R.  A   E   X   S   X   U   O   U   Y   R   H   N   L   R   W   G   D   D
  212. B   R   T   C   A   E   B   B   U   C   T   H   T   L   D   O   V   P   U   W   Z   K   J   H   M   X   R   F.  G   G   U   X   S   H   K   Q   W   G   E   I   Y   P   T   M   E   G   R   V   G   O   X   E   R   H   R   I   I   S   Y   U   D   T   R   M   L   L   F   V   X   O.  H   V   B   Y   N   I   J   E.  D.  I.  E.  P.  O.  O.. V.  E.  Y.
  213. L   B   Y   Y   X   N   N   M   S   L   N   P   V   R   Y   I   W   E   C   J   M   K   C   O   W   W   W   R.  Z   R   B   P   O   O   N   C   O   L   E   O   V   T   Z   E   F   E   M   G   V   I   X   S   U   C   E   B   U   G   P   M   B.  B   V   M   T   O   U   L   F   B   N.  T   R   D   X   U   H   X   K   E   F   Z   D.  C   M   M   V
  214. B   L   M   X   B   T   E   A   P   Q   Z   B   C.  B   B   X   D   C   I   A   H   I   X   N   D   P   J   A.  G   R   T   J   P   V   F   P   B   V   O   L   B   H   U   N   X   R   Q   I   J   X   S   N   X   Q   P   H   M   B   U   V   X   E.  T   N   O   E   X   U   S   T   C   A.  Q   D   K   O   O   K   U   Q   P   A.  Q   T   O   N   S
  215. S   N   P   I   U   I   L   T   V   I   C   S   O.  Y   F   L   C   P   B   S   H   A   W.  U   D   Y   G   N.  E   M   P   I   A   Q   S   K   X   G   H   H   P   Y   D   Y   O   V   Y   N   L   V   S   M   P   J   H   D   C   N   P   R   L   S   N.  J   S   D   U   T   W   Z   H   I   T.  K   F   N   T   Q   F   M   Z.  H   A   D   H   N   V
  216. K   B   R   S   T   D   C   K   Y   W   E   T   M.  X   S   E   F   B   I   O   A   X   E   I.  U   F   O   N.  O   D   T   T   R   W   F   E   P   E   D   H   K   F   I   S   V   K   U   G   W   U   Q   K   F   I   P   H   J   O   C   L   Z   S   M   O.  X   V   J   F   W   W   N   V   K   H.  V   N   T   D   J   L.  G   C   F   U   Y   O   C
  217. C   T   J   K   S   Q   N   X   F   H   I   F   M.  I   A   R   S   B   G   B   S   V   D   S   L.  L   N   Y.  D   U   F   J   Y   C   C   E   V   J   P   O   Y   P   X   U   X   K   X   Y   Y   E   Q   X   A   N   S   G   T   T.  O   S   R   B   E   E   I.  H   B   H   S   E   E   A   B   D   O.  Q   B   O   A.  M   P   O   D   N   N   V   T
  218. Q   I   Q   Y   H   S   K   T   W   W   S   W   A.  M   T   C   Y   K   L   V   U   I   R.  P   U   H.  U   D.  U   T   S   J   Q   A   G   K   C   A   J   V   D   G   R   G   P   Y   U   O   E   K   F   L   E   Q   O   J   E   O.  K   F   M   M   D   G   M   T.  M   G   R   G   Z   J   E   W   C   R.  I   C.  Q   T   Z   B   O   O   K   Q   E
  219. J   B   O   O   X   R   Y   M   L   T   V   P   N.  F   I   H.  T   L   E   C   F   U.  R   L   K   X   E.  E.  S   B   Q   H   X   S   R   G   G   B   A   L   R   U   U   T   N   Y   C.  V   N   R   D   U   R   F   X   Z   P   N.  C   S   Z   U   G   O   B   J   E   A   B   P   N   Y   E   E   A   I   N.. C   L   M   N   O   L   W   M   F   L
  220. P   P   O   X   D   U   B   O   E   P   I   N   D.  G   T.  N   M   O   J   P   D.  T   U   F   I   O   Q   L.. Z   M   P   V   A   M   I   J   Y   R   A   S   U   A   C   S   X   H   O.  B   A   W   P   Y   X   F   Z   X   F   Y.  L   R   E   Z   Q   E   X   H   S.  E   D   B   F   U   Q   H   O   A.  K   E   G   L   O   Z   O   X   E   J   I
  221. P   V   K   M   S   L   T   M   M   P   K   E   E.  U.  H   I   Z   M   H   Y.  D   B   T   L   I   Q   S   A.  M.  K   G   P   K   A   M.  E.  R.  C.  E.  D.  E.  S.  M.  O.  R.  E.  N.. O.  B   P   U   K   Y   Q   H   B   C   D.  H   E   V   N   V   U   J   W   C.  P   B   F   B   O   C   I   M.  C   Q   S   B   L   P   E   E   G   R   X   J
  222. S   O   Y   W   E   J   Y   H   M   W   Q   H   R.. X   Z   C   W   H   K   Q   T   M   X   P   W   B   Y   N.  D   S.  G   L   L   B   U   Q   M   W   G   L   K   X   E   K   E   M   W.  B   K   A   K   W   K   S   A   Y   I   R.  L   U   D   Z   E   O   Q   H   A.  E   X   G   S   F   A   O.  F   M   D   G   D   J   D   K   S   O   N   K   Q
  223. Q   T   H   M   G   J   V   H   K   E   R   S   K.  Z   Z   F   Y   O   I   A   O.  M   H   S   I   W   Z   E.  L   T   C.  P   L   N   S   X   J.  C   R   J   A   M   O   B   M   A   A.  Y   N   Z   E   T   D   Q   G   V   D.  A.. N.  N.  Y.  P   V   Q   C   T   T.  S   P   Q   Y   G   R.  S   W   M   H   O   Z   T   V   P   A   H   L   B   G
  224. O   S   K   D   M   Z   G   I   U   C   O   M   E.  J   J   Q   D   U   A   I.  E   V   I   I   I   L   X   Y.  L   P   Y   H.  B   K   X   O   U.  K   Q   V   P   B   Q   J   V   E   Y.  O   F   Y   W   Z   E   K   D   P   F   K.  O   M   E   E   H   Q   C   W   T.  T   K   O   N   H   Z   T   D   K   M   U   P   E   E   F   R   X   O   D   I
  225. K   Y   K   F   J   A   L   T   D   I   S   T   L.  V   L   N   C   D   P.  N   A   S   X   G   S   A   S   R   S   H   P   V   M.  V   Y   I   L.  V   L   C   C   L   K   H   H   Z   S.  X   D   G   Q   R   K   D   G   R   U   E.  V   Y   H   Y   X   H   R   M   E.  Q   O   O   K   T   R   X   R   S   E   U   W   O   O   S   T   S   Q   K   L
  226. C   W   D   G   P   Y   E   V   Q   S   G   G   L.  H   N   M   S   R.  E   A   O   A   N   S   Y   B   X   E   V   L   N   Z   J.  E.  U   F   I.  D   M   P   Y   F   K.  H   V   D   T.  R   A   C   U   I   S   E   C   T   Q   X   F   Q   D   B   Q   J   W   G   R.  Q   B   H   J   X   P   R   Z   Q   Q   T   O   S   B   G   F   N   F   L   J
  227. A   L   S   Y   R   J   H   R   K   Y   R   T   O.  D   E   U   O.  G   L   E   N   S   A   B   R   R   T   Z   A   E   F   U   A.  R   C.  E   A.  O   Y   N   G   N   A.  P   V   Q   E.  Y   W   X   I   M   M   F   N   O   H   R   K   X   V   W   Q   M   R   Y   B.  A   W   S   P   K   Y   V   K   H   H   T   A   U   S   H   O   N   B   L   Z
  228. N   J   S   P   V   V   N   G   R   Q   S   Y   G.  O   T   K.  N   J   D   H   K   C   S   D   T   C   U   A   Q   L   X   H   N.  C   M   K.  N.  Q   Y   N   Z   I   S.  J   F   X   R.  I   F   A   J   H   B   K   B   S   G   H   W   R   P   N   V   L   L   I   R.  G   Y   O   N   E   M   S   P   U   G   T   E   Q   U   N   R.  W   J   E   R
  229. X   G   Z   R   J   H   M   V   X   E   R   U   G.  Q   S.  E   F   S   I   E   N   U   E   I   T   K   L   Z   Q   U   O   W   E.  U   B   B   A.  F   Y   C   Q   I   P.  T   C   J   N.  G   M   N   B   E   D   Q   Y   U   W   L   P   P   T   S   W   C   V   R   A.  E   H   U   H   X   J   J   H   T   L   H   L   I   O   Y   I.  S   W   W   W
  230. G   H   V   E   R   N   Y   R   O   T   S   Y   V   N.  C   P   T   F   Z   E   T   X   R   K   Q   I   D   R   C   N   M   F   L.  S   S   P   C.  H   B   H   G   R   A.  N   V   Q   H   U   H   K   P   S   Q   C   S   X   F   L   P   E   P   Z   K   K   P   M   I.  Y   B   O   A   N   F   Q   Z   E   N   Q   H   Z   U   Z   P.  I   U   P   E
  231. X   U   V   S   J   K   O   Z   K   G   V   S   O.  H   I   L   Q   B   V   X   E   J   G   N   W   M   P   G   Y   V   P   Q   L.  G   Z   U   A.  Y   I   S   P   V   R.  K   Y   G   H   X   Y   Z   M   O   P   I   Y   G   T   C   M   R   Z   N   L   B   A   E   N.  D   V   J   H   Q   K   X   E   Q   D   J   M   M   I   R   R.  D   S   N   A
  232. Z   R   X   A   Z   B   B   S   Y   B   M   D.  G   A   N   N   Y   P   D   K   O   L   I   I   I   Q   Y   C   Y   J   P   M   E.  W   C   D   L.  O   L   V   K   X   O.  C   U   L   H   G   M   T   K   N   M   X   Q   X   X   B   B   E   X   J   V   C   H   S   J.  T   S   R   A   N   A   O   J   H   N   A   X   F   F   Y   I.  W   Y   M   X
  233. H   W   J   O   C   N   O   S   C.  J   O.  I   I   K   Z   U   M   E   L   O   L   I   A   E   B   E   Z   J   W   N   A   X   G.  Y   M   H   D.  C   R   Q   O   S   V.  G   B   T   E   I   L   C   G   O   X   B   H   A   P   E   G   U   B   M   S   X   X   W   A.  O   U   G   Y   E   G   O   U.  Z   M   J   Z   R   Z   Y   L.  Q   F   A   Y
  234. T   Y   F   G   O   G   H   C   V   R.. Y   X   G   E   L   X   G   B   Z   S   X   S   Q   L   I   G   W   R   A   X   A   M   I.  U   K   J   E.  I   Q   A   D   K   P   G.  U.  S.  T.  A.  V.  O.  C.  A.  L.  D.  E.  R.  O.  N.  L   X   J   R   W   S   F   F   N.  M   M   S   Q   M   L   A.  F.  R.  A.  M.  B.  O.  I.  S.  E.. R   L   X   G
  235. Z   V   W   L.  P   J   O   P   I.  M   A.  L   I   E   N   L   U   G   I   U   V.  K   S   V   L   Y   I   B   Z   X   F   K   L.  X   U   F   R.  Z   F   D   N   U   K   Q   Z   C   A   E   A   U   K   N   Q   L   Y   F   B   H   C   O   O   A   J   U   S   I   E.  T   D   L   X   V   E.  B   I   Z   H   F   C   Y   X   T   Y.  C   R   L   K
  236. H   C   C   H   E.  M   D   P.  J   P   F   S.  K   K   A   R.  E.  G.  G.  I.  E.. T.  H.  I.  S.  T.  L.  E.  T.  O.  N.  C   L.  N.  I.  K.  O.. L.  A.  I.  J.  A.  K.  O.  V.  J   P   P   Q   D   T   G   I   I   G   Z   Z   L   R   M   V   F   L   P   L   V   K   B   L   G   A   T.  K   S   O   V   X   J   B   Z   L   J   Z   K   W   L   X
  237. N   K   X   O   N   N.  S.  U   K   A   J   D   H.  I   V   M   J   R   D   I   R.  L   G   B   B   U   V   V   C   P   D   V   E.  P   C   K   N.  V   V   T   D   P   H   P   O   Z   X   K   U   D.  I.  C.  K.  Y.  W.  O.  O.  D.  H.  O.  U.  S.  E.  R   K   K   N   X   M   E   S.  P   W   J   E   C   R   K   V   I   V   F   W   A   Z   M   Q
  238. C   O   Y   Y   U   A   T.  N   L.  O   L   K   Y   M.  Y   K   H   F   U   Y   O.  Z   U   A   F   P   B   Z   N   V   F   K   T.  U   G   Q   T   S   X   A   S   X   N   J   R.  U   Z   P   B   E   Y   I   C   J   O   M   V   U   S   S   F   M   V   E   A   K   O   K   G   A.  H   P   A   Q   P   I   R   J   W   Q   Q   L   A   R   H   K   C
  239. U   R   Y   K   D   T   M.  R.  T   U.  O   Z   G   B   C.  X   Y   O   Z   Q   N.  I   H   G   J   G   O   G   A   K   E   Y   T.  C   N   Y   I   T   X   T   I   U   Q   Y   S   A.  N   J   L   D   F   F   Q   T   A   S   Q   F   L.  K   F   R   F   A   W   M   Z   A   C.  A   K   M   U   S   P   A   M   F   L   J   A   X   I   H   K   E   I
  240. W   V   J   T   D   T   I.  Q   E.  U   C.  R   X   F   T   C.  B   W   D   M   I.  I   L   I   B   D   O   M   R   A   F   C   E.  M   F   R   F   R   N   L   O   Z   M   L   A   A   Y.  C   P   B   U   A   M   A   L   F   W   X   Q   E.  O   W   J   N   R   Y   R   E.  U   H   D   V   B   N   E   Y   P   J   T   U   O   E   T   I   R.  M   R
  241. O   E   E   B   E   X   C.  I   C   X.  F   A.  M   I   G   S   A.  D   E   U   C.  R   T   Y   I   Y   J   B   H   A   P   T   U   W   X   Q   I   R   Z   N   K   O   U   K   G   U   M   G.  R   W   U   Z   W   H   R   W   R   G   H   A   M.  E   E   B   Z   E   C.  Z   C   M   Y   N   Q   E   E   S   T   M   V   D   Y   D   V   S   U.  O   Y
  242. C   D   F   U   W   S   H.  S   D   Z   L.  A   S.  D   L   S   V   R.  V   D   A.  Y   L   W   C   P   P   R   A   A   L   O   H   F   F   T   D   O   P   L   C   G   S   P   P   Q   O   P   I.  B   Y   E   Q   C   Z   K   M   E   C   I   E   U.  Y   Y   E   N.  V   O   W   C   T   D   Z   H   H   Q   L   V   G   G   P   N   U   V   D.  U   I
  243. R   M   A   W   D   K   I.  G   H   B.  R.  E.. T.  T.. B.  U.  N.  S.  E.. N.  D.  C   O   U   J   Z   G   X   O   H   A   W   H   C   U   I   P   X   O   L   J   K   S   R   W   B   W   Q   Z   L.  R   A   O   J   P   B   J   P   W   L   Q   B   E.  K   A.  D   C.  E   C   A   D   P   X   G   E   E   T   J   H   P   X   R   W   N   Y.  B   Z
  244. B   Z   J   I   H   Q   K.  C   X   J   F   C   R.  N   R.  N   S   Q   L   N.  E.  I   U   B   P   G   W   Q   F   D   V   A   C   K   G   S   V   W   S   I   F   H   P   X   Q   D   Z   N   N   S   L.  J   R   Q   J   H   S   P   N   P   Y   J   R   L.. X   N   E   O.  Y   I   N   T   X   L   W   L   L   Q   B   O   N   J   M   M   T   N   A
  245. L   Z   T   D   L   X   O.  Z   U   H   C   M   P   O   P   O.  Y   I   F   R.  A.. U.  L.  G.  O.  M.  E.  Z.  M   T   L   A   C   I   K   O   X   Q   T   G   J   E   G   R   D   W   T   Q   E   L   D   E.  H   N   Q   H   L   V   T   G   N   R   G   I   K.  Z   L   M   R.  S   O   U   B   E   G   U   L   N   J   F   L   H   B   S   J   N   K
  246. L.  A.  M.  A.  D.  R.  I.. N.  A.  D   F   B   C   D   E   H   Y.  D   Y   N   N.  B   O   O   N   X   L   A   W   W   N   F   Q   L   C   N   I   O   Z   V   E   H   F   H   T   G   H   M   H   Z   M.  Q   T.  E   S.  E   Q   S   J   L   K   C   N   Q   D   A.  U   S   A   P.  T   J   C   K   W   Y   F   X   A   K   W   Y   J   T   P   S   T
  247. O   P   T   L   H   K   S.  H   S   M   W   J   B   G   U   V   V   L.  P   M   E.  Y   C   G   F   S   T   E   K   Z   M   K   I   S   K   J   O   R   M   G   U   Z   N   P   O   X   E   O   P   U   A.  U   A   T.  H.  I   J   K   M   M   O   F   C   W   H   K   N.  E   R   J   O.  S   Q   V   T   O   R   X   E   C   F   R   U   R   M   A   X
  248. A   J   Q   S   X   G   H.  N   K   Z   N   F   R   D   V   G   F   O.  L   V   U   M   A   P   B   E   E   B   G   K   R   C   K   I   P   F   R   X   D   L   Q   N   Z   Z   A   S   K   S   W   C   L.  W   B   D   E.. N   F   N   S   H   B   L   A   J   O   A   F   E.  K   K   L.  R.  H   A   M   K   N   A   L   E   H   F   A   U   Y   S   A
  249. C   H   B   V   F   E   I.  G   V   J   I   D   L   X   U   W   V   R.  U   A   M   G   T   L   U   K   O   U   P   U   V   W   T   X   B   Z   D   G   U   W   M   I   O   V   C   K   Z   M   F   C   O.  Y   S   E   R.  X   L   I   Y   P   C   M   E   I   A   W   Q   I   U   G   A.  D   A.  Q   D   C   V   O   L   I   C   F   P   A   W   K   M
  250. E   J   E   H   F   S   K.  G   S   D   T   X   Q   B   O   M   M   D.  C   G   Z   S   H   E   I   I   L   W   U   Y   Z   L   H   D   N   G   F   G   D   E   Y   X   R   J   M   B   F   B   Y   J   R.  R   Y   G   I.  M   R.  B   N   I   M   C   W   V   Z   C   J   L   W   D   N.  P   B   L.  Z   Z   D   C   H   L   Y.  B   T   Q   W   I   F
  251. Z   A   H   O   V   X   A.  F   L   R   R   A   P   F   G   T.  I.  F.. F.  Y.  C   I   H   F   H   W   H   E   V   Q   N   W   Z   P   I   R   L   X   U   E   M   L   Z   U   D   R   R   E   C   E   Y.  R   C   O   F.  A   F   A.  T   L   I   F   F   K   Z   V   Q   T   T   U.  A.  B   S   G   B.  U   N   D   M   A.  L   G   H   U   T.  W   F
  252. C.  N   H   R   X   R.  W.  C   X   P   Z   W   G   X   O   K   E   E.  V   E   O   N   W   P   U   A   E   Q   S   L   U   G   H   O   I   P   R   B   V   P   D   I   D   R   A   M   O   U   N   M   A.  G   V   R   F.  Z   K   B   M.  R   J   N   F   J   M   E   H   F   O.  R   K.  P   T   S   F   I.  H   H   R.  A   Y   K   Y   A   O.  Q   N
  253. E   A.  I   U   U   E   A.. S.  R   T   R   C   V   H   H   B   U   L.  F   V   D   R   Y   G   D   X   H   W   I   D   G   V   U   Z   I   Y   I   I   S   K   L   T   S   F   E   V   V   M   I   D   R.  P   R   U   E.  L   P   M   F   O.  E   O   X   C   L   D   K   B.  W   R   A.  L   X   A   T   P   S.  G.  B   F   H   K   W   X   R.  L   E
  254. A   N   P.  N   H   D   B   B.  A.  L   M   G   H   K   I   B   W   T.  S   T   G   U   R   B   T   Y   C.  M   M   R   Z   Z   Z   Q   Y   H   N   F   K   A   N   V   Y   Z   Z   O   W   H   H   T   C.  O   R   R   Z.  F   E   F   W   E   N.  J   I   B   M   G   A.. I   P   A   N.  E   Z   Z   J   C   A.  H.  G   P   P   H   O   N   V.  E   D
  255. R   A   E   T.  E   F   R   J   B.  T.  W   V   Z   E   G   O   K   C.  U   K   D   I   S   F   E   A.  C   S   A   X   O   C   G   H   Y   A   D   L   A   S   K   B   Y   K   J   R   P   H   Z   M   H.  C   Y   W   P.  E   Y   H   Z   T   Z   L.  Z   R   Q   B.  V   B.  O.  F   E.  B   T   J   K   U.  H   R   O.  O   W   L   O   R   A.  E   Z
  256. F   W   P   U   A.  M   F   G   Y   E.  O.  H   B   E   D   M   V   H.  P   F   Q   U   M   Z   L.  E   N   K   C.  E   L   C   O   G   Y   Q   E   P   P   C.  Y   F   R   T   E   R   H   M   V   A   E.  J   A   A   O.  T   U   W   Y   J   X   C   I.  I   V   T   O   N.  B.  N   C   Z   Z   L   H.  I   Q   B   G   P.  H   W   X   R   L.  U   P
  257. D   Q   A   V   I   I.  M   C   I   O   R.  K.  T   H   X   O   N   L.  Y   G   A   E   T   L.  E   K   W   G   T   O.  U   Y   X   N   Z   J   M   N   I   M   E.  S   J   J   K   I   T   N   F   Y   R.  X   Y   B   N.  J   C   A   N   X   K   B   V   M.  Z   K   E.  K   J   I.  P   P   S   S.  B   V   J   C   Y   A   I   N   M   P   D.  C   N
  258. N   C   S   J   L   C   N.  S   U   K   T   T.  E.  M   H   T   F   E.  Q   D   T   H   I.  N   R   J   R   T   V   Q   N.  B   N   J   J   K   S   A   M   I   U   C.  T   I   X   R   A   H   I   H   I   K   F   G   D.  R   R   U   U   Z   R   M   U   L   O.  R.  I   V   G   B   E.  D   O.  S   X   N   E   Z   T   Z   X   P   V   A   U.  X   R
  259. X   J   N   O   F   U   Q   M.  M   Z   W   B   K.  N.  E   T   Q   Y.  I   K   I   D.  E   D   V   X   Q   G   G   G   O   R.  H   M   N   I   Y   T.  K   U   S   U   I.  G   R.  Q   H   W   M   L   S   J   Q   H   E.  X   N   L   Y   V   U   V   Y   T   O.  N.. B   C   M   X   O   J.. M   J   U   P   S   H   U   A   R   P   Z   T   T.  R   M
  260. V   S   I   G   X   P   P   R   U.  C   A   Z   B   L.  T.  E   R   F   J   K   A.  S   M   S   P   F   N   C   U   Y   R   E   A.  L   E   P   U   H   R.  J   L   F   B   L.  U.  S   S   M   N   Y   E   N   A   E   R.  Y   J   F   M   Q   C   P.  J   M.  A.  I   H   C   M   B   V   N   E.  P   Q   E   S   Y   L   C   S   F   V   X   N.  A   P
  261. P   F   Z   Z   G   N   D   N   A   R.  M   O   X   T   E.  A.  S.  W   V   C.  Y   M   S   D   P   X   M   G   R   K   P   J   B   D.  A   Y   N   D   T   I.  F   F   X   G   T.. C   F   W   W   L   B   O   L   G   F   Z   I   A   D   E   N   N   A.. M.  L   K   A   R   Y   V   Y   A   X   A.  F   G   M   T   K   W   H   O   K   L   E.  U   D
  262. E   W   A   O   P   Y   D   H   X   P   P.  X   C   D   V   I.. R.  L   N.  N   F   O   I   Z   K   D   U   W   U   B   B   X   T   D   S.  B   G   P   I   P   N.  D   I   L   H.  U.  L   G   H   V   O   B   N   X   O   W   T   B   W   C   T   I.  K.  M.  C   L   V   H   Z   T   T   C   P   P   N.  X   W   F   V   B   G   P   T   J   L   N   T
  263. Q   K   L   J   V   D   M   C   B   S   R   H.  C   R   R.  Q   N.  O.. J   I   Q   K   U   F   Q   M   Y   N   T   A   P   P   V   T   R   C.  L   I   F   R   K   E.  T   B   A.  R   N.  L   U   O   F   C   Z   I   P   S   S   K   U   V   R.  E.  D   B   P.  H   Q   T   R   K   P   Y   M   M   R   K.  I   D   U   P   D   U   V   Z   L   F   A
  264. Z   S   J   H   K   V   F   S   E   G   S   D   Y.  O.  O.  T   R.  H   E   Q   M   E   L   K   K   B   V   M   A   B   Q   A   U   L   F   J   H.  W   O   D   J   S   T.  B   N.  P   L   T.  G   Y   C   M   H   F   M   G   X   Y   T   A.  E.  V   P   G   L   O.. I   C   D   J   E   S   H   E   C   Z   A.  W   P.  O.  P.  E.  Y.  E.  Q   G   S
  265. O   J   P   G   G   O   Y   Z   T   A   B   H   B.  K.  K   B   H   M   E   X   T   L   T   O   N   Y   T   W   A   S   S   W   F   K   I   K   V   L.  P   Y   O   O   W   T.  N.  K   X   C   E   D   W   B   D   F   O   A   N   C   M.  B.  N   E   D   W   K.  L   O.  I   G   L   T   E   A   E   B   F   P   N.  T   M   W   G   M   Q   O   W   W
  266. M.  S   B   X   R   X   M   E   P   J   B   L   L.  Z   B   R   T   O   M   Y   J   Y   X   R   R   T   N   C   R   Z   A   W   R   L   C   J   X   R   O.  L   I   O   B   M   E.. B   V   K   J   U   S   T   F   Q   R   V   C   Z   Y.  M   F   A   U   U.  B   V   P   V.  Y   A   D   P   A   O   G   I   R   Z   E.  S   D   E   Z   P   S   U   P
  267. I.  N   R   G   Y   J   V   R   Q   X   P   I.  L   A.  C   Y   Z   D   U   W   P   K   E   Z   C   D   E   H   G.  Y   M   P   F   D   U   B   H   M   A   T.  K   D   V   G   L.  M.  K   W   S   R   Y   R   X   F   B   Y   L   D.  C   J   T   C   S.  T   Q   J   Q   D   E.  B   N   Q   R   H   N   L   L   S   Q   A.  Y   U   K   P   N   Z   K
  268. K.  Z   B   B.  I   Q   Y   Z   T   U   B.  M   K   L.  X   I   R   Z   O   W   T   B   O   T   K   Q   T   V   E.  D   K   Z   V   E   S.  I   R   J   L   P   Z.  P   C   C   I.  C.  C.  C   L   N   Q   W   A   K   B   L   U.  V   S   B   B   T.  B   F   D   H   T   G   P   Y.  C   E   G   H   C   Q   Z   R   Z   T   R.  S   I   Z   J   Y   B
  269. E.  N   T   U.  S   V   M   Z   T   Y.  O   E   V   D.  Z   T   I   B   O   N   J   P   Y   Z   I   N   S   Q   O.  P   A   F   U   Z   E.  K   C   I   Z   G   K   B   S   H   T.  H.  O   G.  R   F   R   C   I   L   X   R.  W   P   Y   I   I.  N   U   T   T   O   I   B   A   I   I   W   S   D   M   M   Y   S   M   D   N   C.  D   X   L   I   G
  270. Y.  L   R   R.  F   L   U   E   N.  E   H   D   D   O.  O   W   C.  A.  P.  T.  A.  I.  N.  L.  A.  M.  M.  E.  R.. S.  R   L   Q   F   A.  J   N   O   U   I   A   M   R   O   Z.  A.  Y   M   O.  J   A   L   C   B   T.  S   J   G   Y   M.  I   N   L   O   T   Q   O   H   V   U   Q   Q   E   O   M.  K   F   Z   U   P   O   Y   H.  E   M   W   K
  271. H.  U   S   T.  N   S   B   N.  P   A   M   W   E   U.  K   O   Q   L   W   J   U   O   G   D   P   S   J   F   G.  X   U   G   H   N   M.  Q   H   C   R   T   Q   S   F   P   E.  R.  E   C   I   O.  G   S   Q   Y   D   C   T   D   Q   V   C   W   I   P   X   T   X   W   Y   K   J   W   Q   P   T   A.  Q   R   E   F   N   P   G   E.  C   Q   W
  272. A.  A   C   R.  Q   B   E.  F   H   H   K   N   R   S.  S   J   S   G   E.  I   W   I   O   C   X   M   J   F   E.  F   F   R   D   P   U.  W   E   S   J   P   Y   G   S   N   N.  L.  I   I   X   C   N.  E   P   Q   X   N   Z   Z   I   H   I   L   Q   T   B   D   T   P   H   M   U   M   S   X   G   W   N.  T   H   U   X   E   F   D   R.  E   K
  273. N.  S   R   E.  D   K.  K   D   G   O   J   Q   C   W.  J   D   T   T.  L   N   W   M   P   K   D   F   F   T   S.  O   U   E   G   B   S.. S   Z   S   F   N   C   X   C.  Y   B.  E.  X   F   I   F   B   B   V   K   J   W   A   X   U   N   K   Y   C   C   E   C   T   I   F   H   F   M   V   O   Y   P   A   F.  R   H   L   B   R   Y   B   Y   B
  274. N.  F   R   Y.  P   L   I   C   U   Y   T   J   W   E.  V   E   T.  G   D   M   B   S   G   X   E   I   H   M   P.  A   V   M   O   C   M.  L.  B   C   L   U   L   O   A.  Z   E.  S.  E   P   K   G   F   H.  J   T   F   J   U   B   D   H   L   E   D   L   S   J   S   A   A   Y   O   Y   F   B.  I   X   L   X   R.  M   S   V   H   V   J   O   B
  275. I.  I   C   N.  R   J   H   U   M   L   G   U   Z   N.  G   E.  J   Q   O   Y   X   S   U   E   A   Z   M   W   E.  B   V   X   X   O   C.  S   A.  P   Q   T   J   L   P.  Y   R.  Q   J   C   I   J   Z   A.  X   J   M   N   G   V   L   U   F   E   V   H   A   B   N   N   S   I   M   Z   N   I.  Z   U   R   G   E   E.  G   J   H   V   J   M   W
  276. T.  Q   M   O.  M   M   H   C   J   Q   M   V   T   S.  L.  M   J   J   V   W   X   E   Q   P   X   P   H   V   L.  R   U   R   Q   E   G.  E   V   T.  N   Z   C   M   T.  J   G.  Z   F   B   C.  R.  E.  N.. S.  H.  A.  W.  M   D   Y   J   T   S   E   R   D   Q   G   D   V   P   V   A   T   L.  J   S   R   N   H   Z   D.  I   H   K   W   X   A
  277. Y.  B   E   L.  E   Z   R   M   V   L   C   L   Z   L.. F   R   J   S   V   A   D   Q   D   K   A   B   L   W   V.  L   G   Q   B   T   O.  L   D   H   E.  J   H   Q   A.  A   E.  M   C   D   L   W   P   S.  V   F   R   N   I   D   D   A   J   A   S   A   U   Y   H   Y   M   B   Y   K   E   B.  H   K   X   N   E   N   L   D   N   C   K   P   Y
  278. G   G   G   D.  C   H   P   I   L   M   I   Q   I.  E.  Q   K   W   A   Q   K   V   U   G   X   E   V   Q   Q   I.  Z   D   O   G   I   O.  K   C   B   W   R.  X   Y   I.  A   R.  C   O   V   Z   X   H   H.  H   T   B   I   J   E   G   R   P   A.  L.  A.. N.  S.  H.  A.  P.  I.  R.  O.  I   O.  A   G   U   K   X   N   J   N   E   Z   F   U   T
  279. I   N   G   S.  T   K   L   L   E   I   S   G.  E   Y.  C   K   W   U   N   P   Q   J   P   U   I   K   Q   T   N.  W   A   D   V   W   N.  C   J   B   T   E   G   E   N.  K   P   H   S   K   O   U   F   E.  W   N   X   B   E   Z   Y   S   Z   C   J   H   L.  V   L   M   W   G   Q   S   I   K   D   F   E   T   F   T   W   V   B   W   Z   E   H
  280. A   T   C   V   K   L   F   Z   O   P   Y.  L   X   D.  W   L   P   T   Z   Z   F   E   U   X   Z   Z   W   T   F   S   G   U   Q   Y   S   D   Z   W   U   N   X   F   R.  R.  Q   J   O   C   X   B   W   S.  Z   O   G   V   A   O   U   V   B   K   K   K   C   G.  X   S   I   X   P   V   E   F   N   L   B   Y   N   L   G   S   R   Y   E   U   C
  281. P   J   J   B   X   H   M   C   J   D.  R   V   Q   A.  X   T   H   P   M   Y   F   Z   U   G   X   D   T   X   I   X   I   G   G   U   L   E   O   C   G   L   U   J   E.. X   R   J   I   X   M   Z   J   S.  E   V   V   C   L   H   J   A   X   L   U   T   U   M   E.  O   I   H   T   D   I   X   G   T   J   K   R   R   S   Z   B   R   U   P   U
  282. H   Z   L   R   D   K   A   M   N.  A   O   M   E   L.  B   S   X   H   B   Q   O   T   X   V   S   C   U   U   F   H   D   A   W   N   K   W   H   R   R   P   H   H.  G.  I   R   P   A   G   B   Z   P   L.  L   G   Q   H   V   D   A   C   W   J   J   P   X   L   J   R.  W   H   W.  O.  O.  D.  H.  O.  U.  S.  E.  F   Y   O   A   Q   N   S   I
  283. E   H   P   X   S   F   Y   A.  J   S   N   O   D   E.  A   F   P   M   I   V   O   K   H   M   T   N   M   W   I   Q   D   N   I   L   A   E   R   L   B   S   C.  P   E.  S   W   N   Q   G   P   C   T   E.. L.  K.  E.. H.  U.  B.  S.  C.  H.  Q   K   S   T   E   A   L   N.  M   G   S   W   H   S   E   S   Q   T   X   S   P   T   Q   A   U   G
  284. O   L   I   O   E   V   R.  P   S.  C   L   T   I   S   F   N   E   O   I   B   K   Q   B   C   L   A   D   Z   B   Y   B   N   R   I   J   O   J   R   B   R.  J   S   N.  V   B   Q   X   R   V   V   F   R.  O   R.  Y   M   H   R   R   K   B   Q   C   G   U   U   T   F   H   O.  I   X   Y   T   Q   T   B   S   L   G   A   J   N   G   T   H   R
  285. I   A   P   O   P   T   H   R   A.  L   O   A   P   P   G   H   K   J   M   Y   U   Z   C.  Y.  R.  I.  L.  F.  I.  G.  G.  I.  S.  I   A   A   F   O   A.  H   T   Y   T.  T   Q   F   I   M   L   J   J   Y   F.  V   E   V   S   D   E   I   L   C   E   J   E   O   W   O   U   J   P.  V   B   M   S   H   V   H   V   W   U   L   V   T   E   N   G
  286. A   V   P   Y   Y   B   L   L   N.  V   L   T   P   A   T   T   C   F   Z   Z   C   V   H   I   S   Y   Q   R   F   N   R   T   V   W   B   T   H   G.  P   F   S   S   C.  K   N   O   Z   R   G   N   Z   F.  T   K   K   A   O   A   H   Q   G   Q   L   L   G   S   I   O   V   C   D   K.  H   R   R   F   M   V   I   H   X   D   D   U   B   E   T
  287. H   T   X   Y   O   T   A   S   D.  G   I   C   R   P   Y   Y   I   A   J   H   U   D   U   R   I   F   Z   O   N   Q   O   B   M   J   M   O   N.  Z   N   A   V   A   L.  A   M   C   O   B   P   O   U.  O   R   M   B   W   X   N   I   O   C   N   B   O   J   Q   H   X   U   B   T   N   R.  W   P   Q   G   K   N   T   J   T   D   R   T   D   Y
  288. G   T   P   B   G   T   G   I   U.  G   K   G   M   K   K   X   T   S   S   K   R   C   S   E   U   U   R   Q   S   T   S   I   P   Y   Z   I.  X   Y   H   F   U   A   A.  H   X   E   L   X   R   H.  P   E   D   N   U   A   G   N   W   N   X   B   G   W   I   S   I   H   E   F   A   E   P   I.  Y   W   J   H   F   X   X   E   M   G   E   G   Y
  289. I   C   E   H   W   L   J   F   S.  K   X   J   S   B   B   R   J   Z   A   K   S   H   M   G   B   P   X   V   H   R   U   W   H   I   L.  A   E   E   K   U   V   R   U.  D   I   L   R   H   C.  W   N   O   A   N   S   O   P   U   N   Y   J   J   P   Y   N   X   C   W   T   T   H   T   Z   W   E.  F   J   P   J   Y   X   K   J   L   H   C   E
  290. D   F   E   L   B   B   Z   G   I.  I   P   W   W   W   W   I   C   M.  A.  R.  I.  O.  S.  E.  V.  I.  N.  O.  O   M   P   X   T   R.  F   G   I   R   W   C   Q   Y   D.  G   E   J   P   E.  N   A   W   Q   Y   Y   R   D   S   O   V   L   T   N   S   F   U   F   Q   R   M   Z   E   S   K   S   L   G.  D   G   N   U   M   O   C   O   M   V   P
  291. A   D   E   Q   L   W   S   J   N.  Y   N   U   X   V   B   H   R   J   N   Q   G   P   O   R.  O.  D.  N.  E.  Y.  D   O   M   E.  D   B   D   M   X   F   B   I   R   I.  P   N   B   L.  M   D   S   X   V   Z   S   T   F   Y   R   Y   H   W   T   U   L   W   I   K   L   N   R   E   B   Z   A   B   Y   E.  G   U   B   G   Q   U   T   E   S   G
  292. O   M   M   P   B   Z   K   M   G.  X   R   X   E   I   L   R   D   T   B   M   D   I   D   M   T   A   U   B   M   Z   N   T.  S   R   E   G   T   I   Y   L   X   B   O.  Y   V   U   M   C   B   C   I   Y   E   R   A   I   I   S   M   Z   I   J   O   W   B   T   B   I   J   Y   Z   L   V   Q   P   W   K   R.  N   W   X   U   U   A   G   A   J
  293. L   Q   Z   H   M   P   J   E   H.  E   Z   N   Y   E   O   E   N   E   T   E   Y   G   O   J   C   X   M   H   S   S   S.  G   G   N   Y   A   M   O   J   M   Q   I   N   Q   P   D   N   R   Z   G   O   Q   X   M   G   A   M   H   W   D   B   E   P   D   I   G   Z   S   L   N   S   T   E   L   Z   B   O   M   W   H   D   K   L   Y   M   U   F
  294. V   A   P   Q   X   C   C   B   Z   I   E   I   R   I   J   Q   C   C.  H.  E.  R.  Y.  L.  T.  U.  N.  T.  L   S   P   Z   B   G   K   H   Y   I   A   L   T   T   L   V   X   U   X   Y   Y   C   Z   V   B   S   A   M   K   S   Z   V   P   G   N   H   E   N   G   Z   Z   Q   P   H   K   U   R   D   E   P   R   K   W   S   L   A   Y   G   H   R"""
  295.  
  296. crosswordlines = c.splitlines()[1:]
  297. crossword = []
  298. for i in range(87):
  299.     crossword.insert(i, [])
  300.     crosswordrow = crosswordlines[i].split("    ")
  301.     for j in range(87):
  302.         crossword[i].insert(j, crosswordrow[j][0] if crosswordrow[j][-1] == "." else "")
  303.  
  304.  
  305. # Rot13, only works on uppercase letters and nothing else
  306. def Rot13(a):
  307.     o = ord(a)
  308.     return chr(o+13 if o < 78 else o-13)
  309.  
  310. # Converts stuff like ABCJKL with "010203101112"
  311. def ToNum(a):
  312.     return "{0:02}".format(ord(a)-64)
  313.  
  314. # Return if a location is valid. Modify this function to test different things / methods
  315. def ValidLocation(x, y):
  316.     #if maze[x][y] == ".":
  317.     return True
  318.     #return False
  319.  
  320. successes = 0
  321. pathsfile = open("paths.txt", "w")
  322.  
  323. # Add the taken path to paths.txt. No longer necessary since this isn't a bruteforce program anymore, but do it anyway
  324. def AddPath():
  325.     for i in maze:
  326.         pathsfile.write("".join(i)+"\n")
  327.     pathsfile.write("\n{0}\n".format(successes))
  328.  
  329. # Check a path or string against a ton of methods. (Note: String should be all uppercase letters)
  330. def CheckPath(path):
  331.     global successes
  332.     pathrot13 = "".join([Rot13(a) for a in path])
  333.     pathnumeric = "".join([ToNum(a) for a in path])
  334.     pathnumericrev = "".join([ToNum(a) for a in path[::-1]])
  335.     pathnumericrot13 = "".join([ToNum(a) for a in pathrot13])
  336.     pathnumericrevrot13 = "".join([ToNum(a) for a in pathrot13[::-1]])
  337.     print("found end: " + pathrot13)
  338.  
  339.     checks = [path, pathrot13, path[::-1], pathrot13[::-1], path.lower(), pathrot13.lower(), path[::-1].lower(), pathrot13[::-1].lower(), pathnumeric, pathnumericrev, pathnumericrot13, pathnumericrevrot13]
  340.     aeses = ["aes-256-cbc","aes-128-cbc","aes-192-cbc","aes-256-ecb","aes-128-ecb","aes-192-ecb"]
  341.     for check in checks:
  342.         for aes in aeses:
  343.             if subprocess.run(["openssl", aes, "-d", "-in", "BRIEFCAES", "-out", "BRIEFCAES-out", "-k", check], stderr=subprocess.PIPE).returncode == 0:
  344.                 print(check)
  345.                 print("WIN!")
  346.                 os.rename("BRIEFCAES-out", "solutions/BRIEFCAES-"+str(successes))
  347.                 successes = successes + 1
  348.  
  349. # Main recursive search algorithm
  350. def Search(x, y, path):
  351.     # If it found the exit below
  352.     if x < 87 and maze[x+1][y] == "E":
  353.         AddPath()
  354.  
  355.         curr = ""
  356.         if ValidLocation(x, y):
  357.             curr = pcb[x][y]
  358.         path = path+curr
  359.         CheckPath(path)
  360.  
  361.         # Check the taken path, but in left-right top-down order, instead of the path order
  362.         path2 = ""
  363.         maze[x][y] = "S"
  364.         for i in range(87):
  365.             for j in range(87):
  366.                 if maze[i][j] == "S":
  367.                     path2 += pcb[i][j]
  368.         maze[x][y] = "."
  369.         CheckPath(path2)
  370.  
  371.         return True
  372.  
  373.     # Get current letter, if it is valid
  374.     curr = ""
  375.     if ValidLocation(x, y):
  376.         curr = pcb[x][y]
  377.  
  378.     # Set this path as "traveled"
  379.     if maze[x][y] == ".":
  380.         maze[x][y] = "S"
  381.  
  382.     # Look in all 4 directions for ways to go
  383.     found = False
  384.     ret = False
  385.     if x < 86 and maze[x+1][y] == ".":
  386.         found = True
  387.         if Search(x+1, y, path+curr):
  388.             ret = True
  389.     if x > 0 and maze[x-1][y] == ".":
  390.         found = True
  391.         if Search(x-1, y, path+curr):
  392.             ret = True
  393.     if y < 86 and maze[x][y+1] == ".":
  394.         found = True
  395.         if Search(x, y+1, path+curr):
  396.             ret = True
  397.     if y > 0 and maze[x][y-1] == ".":
  398.         found = True
  399.         if Search(x, y-1, path+curr):
  400.             ret = True
  401.  
  402.     # Mark as dead end, not used at the moment (could be used to build a map of all dead ends like I did before)
  403.     #if not found and maze[x][y] == "S":
  404.     #   maze[x][y] = "D"
  405.  
  406.     # Reset this to "not traveled", so that both the pink and not pink paths can be taken
  407.     if maze[x][y] == "S":
  408.         maze[x][y] = "."
  409.     return ret
  410.  
  411.  
  412. try:
  413.     Search(0, 42, "")
  414. except KeyboardInterrupt:
  415.     pass
  416. except Exception:
  417.     print(traceback.format_exc())
  418.     pass
  419.  
  420. #for i in maze:
  421. #   print("".join(i))
  422. #print(maze)
Advertisement
Add Comment
Please, Sign In to add comment