Skip to content

Instantly share code, notes, and snippets.

@jamescookie
Last active December 10, 2019 10:32
Show Gist options
  • Save jamescookie/3fced2d8f369a0ec6438393e06b6e9b2 to your computer and use it in GitHub Desktop.
Save jamescookie/3fced2d8f369a0ec6438393e06b6e9b2 to your computer and use it in GitHub Desktop.
def input = 428122498997587283996116951397957933569136949848379417125362532269869461185743113733992331379856446362482129646556286611543756564275715359874924898113424472782974789464348626278532936228881786273586278886575828239366794429223317476722337424399239986153675275924113322561873814364451339186918813451685263192891627186769818128715595715444565444581514677521874935942913547121751851631373316122491471564697731298951989511917272684335463436218283261962158671266625299188764589814518793576375629163896349665312991285776595142146261792244475721782941364787968924537841698538288459355159783985638187254653851864874544584878999193242641611859756728634623853475638478923744471563845635468173824196684361934269459459124269196811512927442662761563824323621758785866391424778683599179447845595931928589255935953295111937431266815352781399967295389339626178664148415561175386725992469782888757942558362117938629369129439717427474416851628121191639355646394276451847131182652486561415942815818785884559193483878139351841633366398788657844396925423217662517356486193821341454889283266691224778723833397914224396722559593959125317175899594685524852419495793389481831354787287452367145661829287518771631939314683137722493531318181315216342994141683484111969476952946378314883421677952397588613562958741328987734565492378977396431481215983656814486518865642645612413945129485464979535991675776338786758997128124651311153182816188924935186361813797251997643992686294724699281969473142721116432968216434977684138184481963845141486793996476793954226225885432422654394439882842163295458549755137247614338991879966665925466545111899714943716571113326479432925939227996799951279485722836754457737668191845914566732285928453781818792236447816127492445993945894435692799839217467253986218213131249786833333936332257795191937942688668182629489191693154184177398186462481316834678733713614889439352976144726162214648922159719979143735815478633912633185334529484779322818611438194522292278787653763328944421516569181178517915745625295158611636365253948455727653672922299582352766484
def digits = input.toString().split('')
def answer = 0
int i
for (i = 0; i < digits.length - 1; i++) {
if (digits[i] == digits[i + 1]) {
answer += new Integer(digits[i])
}
}
if (digits[i] == digits[0]) {
answer += new Integer(digits[i])
}
println answer
def input = 428122498997587283996116951397957933569136949848379417125362532269869461185743113733992331379856446362482129646556286611543756564275715359874924898113424472782974789464348626278532936228881786273586278886575828239366794429223317476722337424399239986153675275924113322561873814364451339186918813451685263192891627186769818128715595715444565444581514677521874935942913547121751851631373316122491471564697731298951989511917272684335463436218283261962158671266625299188764589814518793576375629163896349665312991285776595142146261792244475721782941364787968924537841698538288459355159783985638187254653851864874544584878999193242641611859756728634623853475638478923744471563845635468173824196684361934269459459124269196811512927442662761563824323621758785866391424778683599179447845595931928589255935953295111937431266815352781399967295389339626178664148415561175386725992469782888757942558362117938629369129439717427474416851628121191639355646394276451847131182652486561415942815818785884559193483878139351841633366398788657844396925423217662517356486193821341454889283266691224778723833397914224396722559593959125317175899594685524852419495793389481831354787287452367145661829287518771631939314683137722493531318181315216342994141683484111969476952946378314883421677952397588613562958741328987734565492378977396431481215983656814486518865642645612413945129485464979535991675776338786758997128124651311153182816188924935186361813797251997643992686294724699281969473142721116432968216434977684138184481963845141486793996476793954226225885432422654394439882842163295458549755137247614338991879966665925466545111899714943716571113326479432925939227996799951279485722836754457737668191845914566732285928453781818792236447816127492445993945894435692799839217467253986218213131249786833333936332257795191937942688668182629489191693154184177398186462481316834678733713614889439352976144726162214648922159719979143735815478633912633185334529484779322818611438194522292278787653763328944421516569181178517915745625295158611636365253948455727653672922299582352766484
def digits = input.toString().split('')
def answer = 0
int inputSize = digits.length
int i
for (i = 0; i < inputSize - 1; i++) {
int next = inputSize / 2 + i
if (next >= inputSize) next = next - inputSize
if (digits[i] == digits[next]) {
answer += new Integer(digits[i])
}
}
int next = (inputSize / 2) - 1
if (digits[i] == digits[next]) {
answer += new Integer(digits[i])
}
println answer
def input = [
[3751, 3769, 2769, 2039, 2794, 240, 3579, 1228, 4291, 220, 324, 3960, 211, 1346, 237, 1586],
[550, 589, 538, 110, 167, 567, 99, 203, 524, 288, 500, 111, 118, 185, 505, 74],
[2127, 1904, 199, 221, 1201, 250, 1119, 377, 1633, 1801, 2011, 1794, 394, 238, 206, 680],
[435, 1703, 1385, 1461, 213, 1211, 192, 1553, 1580, 197, 571, 195, 326, 1491, 869, 1282],
[109, 104, 3033, 120, 652, 2752, 1822, 2518, 1289, 1053, 1397, 951, 3015, 3016, 125, 1782],
[2025, 1920, 1891, 99, 1057, 1909, 2237, 106, 97, 920, 603, 1841, 2150, 1980, 1970, 88],
[1870, 170, 167, 176, 306, 1909, 1825, 1709, 168, 1400, 359, 817, 1678, 1718, 1594, 1552],
[98, 81, 216, 677, 572, 295, 38, 574, 403, 74, 91, 534, 662, 588, 511, 51],
[453, 1153, 666, 695, 63, 69, 68, 58, 524, 1088, 75, 1117, 1192, 1232, 1046, 443],
[3893, 441, 1825, 3730, 3660, 115, 4503, 4105, 3495, 4092, 48, 3852, 132, 156, 150, 4229],
[867, 44, 571, 40, 884, 922, 418, 328, 901, 845, 42, 860, 932, 53, 432, 569],
[905, 717, 162, 4536, 4219, 179, 990, 374, 4409, 4821, 393, 4181, 4054, 4958, 186, 193],
[2610, 2936, 218, 2552, 3281, 761, 204, 3433, 3699, 2727, 3065, 3624, 193, 926, 1866, 236],
[2602, 216, 495, 3733, 183, 4688, 2893, 4042, 3066, 3810, 189, 4392, 3900, 4321, 2814, 159],
[166, 136, 80, 185, 135, 78, 177, 123, 82, 150, 121, 145, 115, 63, 68, 24],
[214, 221, 265, 766, 959, 1038, 226, 1188, 1122, 117, 458, 1105, 1285, 1017, 274, 281]
]
//part 1
println input.collect { it.max() - it.min() }.sum()
//part 2
def findY = {list, num->
list.find { num2 ->
num != num2 && num % num2 == 0
}
}
println input.collect {
def x = it.find { num ->
findY(it, num)
}
x / findY(it, x)
}.sum()
enum Move {
RIGHT,
LEFT
}
enum State {
A,
B,
C,
D,
E,
F
}
class Instruction {
int writeValue
Move move
State next
}
def SI = [
(State.A): [new Instruction(writeValue: 1, move: Move.RIGHT, next: State.B), new Instruction(writeValue: 0, move: Move.RIGHT, next: State.C)],
(State.B): [new Instruction(writeValue: 0, move: Move.LEFT, next: State.A), new Instruction(writeValue: 0, move: Move.RIGHT, next: State.D)],
(State.C): [new Instruction(writeValue: 1, move: Move.RIGHT, next: State.D), new Instruction(writeValue: 1, move: Move.RIGHT, next: State.A)],
(State.D): [new Instruction(writeValue: 1, move: Move.LEFT, next: State.E), new Instruction(writeValue: 0, move: Move.LEFT, next: State.D)],
(State.E): [new Instruction(writeValue: 1, move: Move.RIGHT, next: State.F), new Instruction(writeValue: 1, move: Move.LEFT, next: State.B)],
(State.F): [new Instruction(writeValue: 1, move: Move.RIGHT, next: State.A), new Instruction(writeValue: 1, move: Move.RIGHT, next: State.E)]
]
def exec(tape, cursor, state, SI) {
def instruction
if (!tape[cursor]) {
tape[cursor] = 0
}
instruction = tape[cursor] == 0 ? SI[state][0] : SI[state][1]
tape[cursor] = instruction.writeValue
return instruction
}
def iterations = 12368930
int[] tape = new int[iterations * 2]
def state = State.A
def cursor = iterations
def counter = 0
def instruction
while (counter < iterations) {
counter++
instruction = exec(tape, cursor, state, SI)
cursor = instruction.move == Move.RIGHT ? cursor + 1 : cursor - 1
state = instruction.next
}
println tape.sum()
int max = 289326
int sideCounter = 4
int increment = -1
int x = 1
boolean skip = true
int skipCounter = x
int incrementCounter = x
int i
for (i = 1; i <= max; i++) {
if (skip) {
skipCounter--
if (skipCounter == 0) {
skip = false
}
} else {
increment += 2
incrementCounter--
if (incrementCounter == 0) {
incrementCounter = x
sideCounter--
if (sideCounter == 0) {
sideCounter = 4
x++
}
skip = true
skipCounter = x
}
}
}
println i-1-increment
int max = 289326
int numberInStraight = 1
int straightCounter = numberInStraight
def numbers = [1, 1, 2, 4, 5, 10, 11, 23, 25, 26, 54, 57, 59]
boolean holdStraight
boolean straight = false
boolean nearCorner = false
boolean afterCorner = true
boolean corner = false
boolean incrementStraight = false
int counter = 10
def current = 59
while (current <= max) {
if (afterCorner) {
current = (numbers[-1] + numbers[-2] + numbers[-counter] + numbers[-(counter + 1)])
counter++
afterCorner = false
straight = true
} else if (straight) {
current = (numbers[-1] + numbers[-(counter - 1)] + numbers[-counter] + numbers[-(counter + 1)])
straightCounter--
if (straightCounter == 0) {
holdStraight = false
if (incrementStraight) {
numberInStraight++
}
straightCounter = numberInStraight
incrementStraight = !incrementStraight
} else {
holdStraight = true
}
if (!holdStraight) {
counter++
straight = false
nearCorner = true
}
} else if (nearCorner) {
current = (numbers[-1] + numbers[-(counter - 1)] + numbers[-counter])
nearCorner = false
corner = true
} else if (corner) {
current = (numbers[-1] + numbers[-counter])
corner = false
afterCorner = true
}
numbers += current
}
println current
def input = [
"una bokpr ftz ryw nau yknf fguaczl anu",
"tvay wvco bcoblpt fwzg sfsys zvuqll mcbhwz ovcw fgdy",
"ynsocz vid rfmsy essqt fpbjvvq sldje qfpvjvb",
"yvh nxc kla vhy vkbq cxfzgr",
"kljv ymobo jlvk ebst cse cmlub tavputz omoby psif",
"ebfuvvu paqgzri uvvubef hglk jvn gzeln bdl ziqgpra bzcfa",
"tclq ytw tclq tezcqys",
"qae eofr yzwcwqf wqm ytcdnc pxnmkw",
"krryi irykr ycp lbeed ykrir lhq rdd tyujwd",
"hms pii lxoa dchsvz bepjwst bllxkqg hsm yrdj myzvju msh lwnnc",
"yxqh hqxy xkn ljjsqjh jjljshq",
"mhgsehj urbvnvf gbz ykxsd hsmgehj wtoc ujpfaos eir vifog tsy kdo",
"wfruf wwijme pxbbsvf asmgs ccbn vwtc mkhah oxxfh",
"lxqy jzvcvd cfgg uahxrwr dqmaqr bwzm wruxhra lrb lmk",
"jspgxo yuhgni njzqtn zglkzz ybc itj orqr zgqwuoo mjagh erll srqrk",
"cbrtnbx ukblei ienmdm sinzq lytyliz mma lizylty zeumwgu",
"aeggz eljcry buqdeog dvjzn ilvw arz vep kxdzm mvh szkf",
"imn sfty ugg flqq nydky mni bkqzlok wye lehwlmp xeyfmj",
"beyv oamrpkc tebdkwv zlq jes mqvif sej qpsnmjz edvtbkw",
"hylmacl wwlra xntnvg ppvb bzof cymllha",
"qktxomf ngfpuz qqz malc zxuqz szg zis vzro rfpgk",
"phru sxlg qzqlw uej vmd omzga jue",
"drzgojf ttqdqar weikik wvrjtxi gbj jramqh nlwoj drzgojf bgabmn xqlaeun",
"aiuohu pca apkmv cpa kmvpa nmdn",
"gelymv eto itcnuhn ote teo",
"oxiz xzio kqu wwgow",
"picoyb coibpy acsw ehlirq deyz gymqvz opicyb vuet lrl",
"zerg rezg miwtjgw gezr cui",
"mlh qlu ktil tnlgnrk bfqbk pgg qxeyd noadmjo nonlsh eqxdy",
"yqqaq yqqqa xod oss",
"mkotw bznvs xowoofq sebp wsgpsmn fytcpc vvmzr vmzrv xwtxz zrvvm",
"dvs twhz teqmlow oqg sjetxd aku cwl qfvrkex mndsio hfg",
"itdl qwdagkk wli tdil vlgur dyl xvfm",
"wlmyd dwmlx zhmqd zqmhd edzsvmz yclg umpq",
"petva gazw byrca pvaet epkoqh nlp vqfl vatpe",
"rykn ckr dijkme kmiedj ozlh deikmj",
"kuecjh sfqv pojfzf fjopzf fjpfzo amxtc",
"hri gglmial lrwbyc memgszu hir cfwlg ylcrwb",
"rxrfbtv pwpra fngt auh rapwp zrruuq uah",
"cevc utfd ysrfcw nnlg fnqtx aua htteunu mrjhhj",
"tvnxznj mvpagt nqmxvnl mutn ntmu eybh vkqeaj frayclp",
"ygktzxo lzwwy qsipu nwb jdmw pahao paow mwjd uivqbnj woap nyyogcc",
"log zihz rsmx ixfr xwvd osg zxc gol ufnbig",
"dogve cnb osa xbafl vefr nxlw yjgquui",
"ucyl aaoae ktjvi fyps xvjhpbh iiur tuc",
"pqt jasxg ehhs lzjzzzl sqmmj vwyva eklbtv hksanb fuesnd oyw fuesdn",
"uankv wesi frhpau qiucu lim uzbdapf ciwjd tifbqxh tfbtsdi",
"vgjd izpofu fqjpcct phuz",
"cfg cfg rgahl frm emn pbfsmgy frm jemwqgn sfpm azunntj igl",
"daps hpe fqg err sapd dci vbzlqx gsigq eyp rre",
"iuqyqdy djprdj mgtkdxr pwmkzv wmkvzp hppisd pidphs",
"rlr rrl vhevh cucprc xki urte lrr zfc xrqydzk ipjkyxj kytul",
"jwbkaee rgyjl rjljbwe ppq plp pfts ijd ckpvmw mbdrqh zolt lzmr",
"alw law awl wknavtb esklsbj wvssyai",
"aqy ldf qdht soxkg qtfipe nsdm aqe rtlc fbqrk ius gybbhxr",
"xteov wgqoqim nlz szlj oxevt xwb",
"tmgdst fyn oul tsohzbq ltmxji fgops gatssx zxdzfc talb",
"zkvjpu jnhtc nxs jqv pyoqz zsj ckwd xot ykai",
"fxfarre yjbxvj lqfaglo mbxuv bmuxv bxumv",
"yrhi uosldj hryi fwres ycygw ycvxze zevxyc iyk",
"yphev xisbai xdb hzrbg ayxbhdx qnvbus pwc",
"wytqraw yvurj erqckl rvrvda xsh gsd bxtm acxle gpndk",
"kpvjtu vacggk oabcuoq qusf zitqpgn pbyq ocabouq ntpgizq gaiiry dke",
"frz ceozajo ljltawq tjepzp iflv",
"zntejm dkfgc ysno noys sony muy",
"qdnyvvw oykq bnmldt zjgauw pviurd cbcnl tnkhq ebsey bccln arvwe",
"iqazt xidjgom wcrdz itht lfh ifzwkj rwqxhy ervcgmt vojg lzntz ezg",
"tlcxioh qvvkan wpi ody",
"mhsy dwm hyms yegvvc",
"hbkvi wvemc uwxgqf pwrgu wcy wxqfgu qkzppc vxcwdwd rcgp ivjd wmevc",
"upc ucp cpu unmr pyod",
"bqfew ebwfq paccwh phgc fchhr jrnio",
"abh bjalls bdtac zzvt totdlc yptqmgu rpcin bch cqklqly",
"bsnss qcsgi tegyz lqoqkpf qvatlyu ibza mzfotsk lye oqqf mnor",
"lzrxca stkbn axhr wckbip bsntk ahrx",
"oricdw cnpte dbz nqx xloxc bdz fdsl uyvgi nvoy ezbi",
"nlcqye ofta jcvqvtg yxduyh btawc tjgvqvc tcvqjvg",
"nji znctdfm kkmp pmt ikhl jjoubc xnp zdctnmf covvmsh ydh ircplcm",
"yafkuk yasqsyt ytqayss nusgb ukfyka",
"yogcf emg jlkd blupemf axg wihhrb ysernt yznhz",
"gmc yyqtgp use lohoit",
"lclwa ojjkm rxr rrx",
"punyfv iphw ddbc jghx lrssszc bepexv sicpy syicp lszrscs vrqjb",
"rjanra juh hljdmad scu usc baifu ijs suc bgdbbv",
"ogs hehi lgiwowc wwezznc ogs lorcl naunpll wlmal ajcbj ciujw",
"slenm xxod vhf amhts",
"mrrduda mrrduda lwecwjv lwecwjv vvzmjla cjipv",
"ixnv invx inmzz aoxghpv",
"ulyvfrf zsup zfryjy xoo agdsd giw papa ljtu rzbjiq wrex",
"bzpv svpuyov mklrct uzox",
"fxs iypd uaqch kxazj ksjyv",
"uxaommf xtq uubbfk bmlq kdhgjzg oxwpag itfij irmkjx ggod sddcyo bopn",
"lch plmvfni qbjr dnu zjcod qlwax gejmyj gxjqm mfzkb gejmyj",
"yoa thrfbto wposvrm amulogu mcqzfax fjquli oay",
"kywj kqqhney ozuljxz wqwfte ubo mjj anhhg aphy ocfnef yhin ywnx",
"vxuledm wllj obqtsrr jwll uvmelxd xvj gbwte",
"hevc bitwu ydw ywd btiwu iuether gfe",
"dzn ssmfpel wbbdeyt xge hrfi",
"zebz ifhq euto ppfnrwc winkkj",
"utuly wtdt iahpe ihtxwmh zxun bqluj hsaxgcs ytluu jlfnnuv drxlctr myhp",
"kwxgy hreul rsnh wdmsx kkajywb",
"bond djq kccazc zvzcie hndm myx cmhyhkc ove ord dqj",
"zcong tekgn pbzs ywqgqgu eizrx ypydeku yqyjdjp dwsu zxire zcgon iggnvf",
"tkioh hflkm fsjz gisjbi otikh",
"ccdqqm fdabbne fyd lbyqm cyzgtd puitvjz nluf hirrpxd tgxrg vvl",
"hjnygbz fnu twwbp xqw pfdlt uoalyme rsd muayeol ezcq",
"kubeooi bxgwoun paogjs twvwlji opsajg higbdfi aazo evmj",
"sfipxe mqbkmrn plwqd zvq nmvom fyfbs nbs qkrbmmn eym kqnrmbm",
"ruhsp hurps mqws umm sphru",
"ksjs pgpxh qozg enplxbn oqzg rvjnaje sjsk",
"rbwbvog mhgtgg uld twrqz rbf kpop",
"lwho lohw ylhd dej lydh vsfffsm",
"icljgu gluijc vthqx orynv xhvqt",
"biav elxkct mtaw nlafk snyr cbqdwim blim rtrqmc wze cxktel",
"fgpeia ebkhga azlfsr bsj pipvwsd nry bayrjzl ftth ynr mfhd",
"ymlowur nighqgk yjv pyxf nan xamb ohm jvy owrxbg icbz",
"iyyt linaqu httt zyfeo udap mllq pdxo lpl djhqaou zkit llp",
"dxspk yge kcqjqpz ulb hoe mfx nwayo",
"rdnmmh gyqd qhxrzj dgizu lyittbv txngpdg fiu mwd ndp oks vxnxybi",
"eul ztpe evnz yxx iuwon rkbbsw liy mqhxt",
"qahp zwn ualtk txbt cbthj xchqy pirucp povdwq",
"mqwu mwww muiafa miaafu hzripx wmww",
"auw hyyi ylewfi ihva jknbrry voxzooq xaos xymv qzzjw hjc",
"enpb jqa ajciy cbeopfs tqrlqj ecudb gso cyjai gxoet",
"yohkjj yohjjk xapawgo rtgnjj",
"lnlxxn nxllnx vhjrev uoew zts smkd kynlrg",
"bkblpr vgafcy alju aiyqe eebtsyu buve hdesodl pspbohw",
"aacmw qpndwo tcwsfqy qecnms wondpq sto",
"wdsyxe edsxyw jnzruiw pfqdrhi",
"pfgxekl vswgxhb qyn mykn jimiatq zkcz jimiatq kaexgxm mykn",
"xegwn upudt dew uqjrcl abyof hbtiko wxgne sorgno etm",
"xzojs zxsjo szjox gumjtwi",
"gttngkk bwdgce bhuw fgo rcbf byw",
"ngtzwqx ptx xodmy ctmtf oioahmm qajlhje jzilpk cvypp ijaefz",
"arlx slcugvm hyuo zoptsh emyr tndx rroecp tdnx xea rtkpd",
"sfckdx ktyrjju ruwjtp zhqznj vncun",
"oqqh xpc itrdg gtrid hoqq tuo yijh ncp suvck jic",
"brrlqu twdt urblrq twtd",
"brfuh arwtkpu mzlj wdyqk",
"pmag dtwnva nect azld axqrwy apgm xbv gdq ienubsy andvwt",
"hqb qbh gxdl mwjn cmfsmik",
"yiwma utlor qxjfjsn aomlvu gxp ryj rfkdsw kuguhyi qxxpg",
"ifq wcvcgly jdalgzx lgcycwv rajmnqw",
"latakk yxxbw evy vey",
"odkvw ojgveb jhg qwhkyoh btvu qbfot nouv owgtsi pdwbmfn pmvcv dnqbo",
"tmka qqnty knz swi fyvmt ikcdu jfjzsfu dshgi cosacuj szjjuff",
"eanet uua fbztk bzkft",
"jepi hyo jgzplr jyqk zzcs iepj hfamvu bfgbz sjsnf lprgzj",
"mlca ywko mtg vkfv ojka zbelq qkaujs simt kafq qtycfzo",
"sqh omv llvra ecvxmtx dpnafv llvszx xzlsvl quj ufnhvod faraf fivmnl",
"pvxlls fzeoav ahgv uhq nodcr cohy vqisgaj jsfcyur dbohh",
"ztccbwk okv vok kov ywel",
"xyu cmaikc jgqu ozccdzk ybn yoeq fky aetrkj eyoyvla laiu cermo",
"sssnb kxly mgvaz jpffkq bysbwwu rfnkm eycp ipyd hyi wjew",
"obdfqmh flkm semednj iafewg lvh uwa ciepe",
"zmldp ykffe gtehz qlmvule edrtzg prund oagwto qia bvyxur",
"kjok neno qbxh wqgkkt ympclso poyclsm cajgnnn",
"paqili kur sfit jbqchzx bhjqzxc",
"fhghm ubtaana qbn autnaab aaaunbt vmz",
"exlrl hfnpq zgdwx smix nyg ogccrhj iimhhwc uhcldo oydwxp kqc jxxpycv",
"wtdqjfh ialoqr zeej ipoh qtjdwhf wdhqftj",
"jcgug cmtvmu ynhnilj txlv uemowyu cvrool oolcvr njr cxqntdh",
"uhtwtp tgnc jmmjl utiu jfxtsoz cxwqcz",
"qntxl lyownp tsp tps mixyge rqfqumc bxjiry zmaj azjm",
"abt bat tftvm nyjs jyns",
"hzsdh pwthfvm cedg hzsdh rsxtehn owh cedg",
"hcoiny aqbeme eeuigt pocpvox tiugee rwb tvgmyc ojg hgdaf",
"mzlwcfc uoobo bouoo tvgvmiu evsfkm popgm evmfsk ehxvits vebxbmd qhmz jzj",
"mypgg jbpx vgeb ahvjl zbm ancdzfy wytkcq",
"bivscw zmzmjxu jzm fwb ujefxp jzsiskp cgx atcj sszikjp cxg nqvxga",
"vvurbxp iry zlz gfnlpuy npyugfl",
"fpmee mhj iul lui liu",
"xjoesn ggsdc vnisnmw kyxmmv xphfq",
"zcsml ngzlpy udaoab eotbv ylca bfmums izx",
"pdi bpyoep cofsy qazl oaovek fvfbe sotc lfdmaea smvs",
"zajm bskaqhj qxyiptb bdyeuqr dqjrekn iywj",
"hzhky hukvpve iqcbwju nyiwb rvutxlb hyuah urnhxg savicaw hexr ptedk",
"qndji wrr sin ljogf ncrb zvt tvz",
"kvfke tjpzhrl zvd doq kxyw fdgr oqd egkybdh rqpfxks nja",
"escstpv ccc ryzdv gxkjuyt gkhw jxnfda awpzg csestpv",
"cpcd onxeae nimbrpt zyji qnuo ktxgwbj vtjfglz skcozd zgii zgii nimbrpt",
"lwq iue hfbv hgbg aeqc",
"vzgbod yjkoc ckt bpiaz",
"eyco ecoy uzousjp faxj utu yoec",
"fhqdi myd tvex bzizkcx pifcfhz fczhpif eofzv bqzd knbhbgj dok ffcizhp",
"qlqlgmz hofmnc cwtk ahgnpne acn prwdh hwdrp rfofhl atavrf afkcbk",
"sgl apyfr pwxzptv osuwy vmqqh soyuw lqilked oinhh",
"eglqdox gcxfxql ejtnwu wvho can eyu uetwnj elgdxqo atvpkk eailsnn cwosyn",
"mylxhuj kbc apnllw qbmtj sqy hxtnvoe ins iyudo aagezrq nsi ikvn",
"lpmzo tkdeg zilkm vdkmtf yulbdd dkfmtv",
"fzrv grq zfvr ychga gqr",
"vdjxx wew pdxgp cjywsc meoffrj pgpdx chxmw eizgz ruea",
"iaklyhx btqqik tbiqqk ynmq laxykhi qatrnsh lnmtm plz",
"sfogup jtdsx tsxjd wwzkyy wzywky vgdsgr",
"paupqb kyy bccklmr vopviup lctcxza yyk yky",
"gduuia doek hqcr upvb szeewnu rrrdz",
"lhnsaf lut kzf allu dvj tyngx zkf aqsgz rtkzzdz",
"xxqj msg xxqj ezmm tmyji msg cco tain ctpel",
"pvcfzv rhn hlhxyu bghzzpx dlhvr hrvdl lhuxhy",
"npzhkp voghdv rvezqff hvgvdo jndf gpa wevrwpu",
"faixq aecax hxdouer yqlngzd grf wid iwd cce xnmmr",
"ifqwiah dib ibd dtvkwqj mpn dtwjkqv kyntq xwlv",
"rwoiz dja cvv lvza kfdblq bgtwgh ongdub wggthb lvaz",
"xajf eyasx rupsyqx wubjwx bsrqi ripghci sbzxp sbz dhooax",
"ydnv tvhwgp uvrh yryhl yxdlwa ladwxy awi mkwyn ghvpwt",
"qrl vwdvwic ocbhpi bcmz dor lrq hokg gokh",
"adz echnlju ebnmw twjl cfw loq fqklyyq clgqq jtgpsu wltj",
"vwlgisb murtsw ldkacqv wxfcke vcqkald ldhh gsl kpzn",
"itnvo lyddd saewfse spnri vtmst iblx",
"qsgv qni wvqiih mneg lkpb quhbkyi",
"efwaaa huu fslzwpc uuh szflwpc",
"sgmj ajh vcwpcua enltaks aquooh bwoda txbuve",
"vbe astgezx xqbxkdj evb bev yuuesdc fvohzq",
"gpn oqxfz pbwibjw gljdbf gbldfj sis dpk iss",
"pha ebybvye ntxhs wcuce",
"odnnywv qpcjll aslxqjm injfs vkbturz atxi",
"zzncfj kbhk jzzvnwf kqipx qkxpi rzb czfnzj",
"ygu vqpnxkw trdtv rrte",
"hrutley ljxuuq yonbpmk hmpc etyrhlu",
"odxp fpvizzx dxop jjbr skhxq mpzawhe zptdxuu erxk adbbuk zfzipvx",
"qjovasi yutjpg rcp bykpctm fqmmg pckbymt hqj",
"ssqc cype tkowxb fbh rsluu zjk scrukwv pkuexk qlgjtdq oulrke",
"bkcd nnf hdj sdlweyr uyf kmvzq",
"sgeg moy png blv bblree ufe uqknuqd lnjwbh",
"snpex hrbcfok pffv cwrvhcs fpk uprhn gbpy zkxyi esug ccnnj",
"bmwue dugcrdu uifiy clid rdmodec jodp hti xptj tpopl vuwhdyi hnoq",
"cwlkg qsz nnp lfyk pwn dpe oeuzp jusxxkq qlnchc",
"tsmkvge pxauyc cxypua boi hybq rzf iioyi rtedkc gjmk iob mqb",
"cvip wgbjhe ulwg jckkwd gdu bmaoisp",
"drpl xbliszf rpld ngnvgxl xnrd xsmd oetrcmn xvfohp mtocren",
"habmf dmfxq qitw xxtybla cxvb colcvpj sowoeuh bhmfa plccvjo naftjgw",
"cix soo icx ahx cdrjyxe htcnp",
"acoksaf cgahlg tdj euchwnj bdn lunouq aewrk uktre kklwqy lnouuq",
"ibsel hwjbah vxuk bjxa dvzbpq tffqvo bjax qfoftv",
"iynms tzv jakuuw cmz cjnyr ddibtd gcb",
"tmgerk pvwizc lxoma ergmtk xmg loaxm",
"ajazon yjwt viyemnk wobzwwm jcucn nopymyq znaajo qcjtmlq ccjun ywvt oqczod",
"kdhgnv kdnvgh rpyrxx xpyrxr",
"qftmshx hrbr kcggxw jwtuk qxbzkn",
"ddi fjekwxs xxua cmmkrso",
"ptrsv favvfh innnnx nninnx",
"kzsnd pnf evtazgw wmjk gvxp bslajo",
"nphqtka umlxu ymw whqiab whqiab vwigkz pevtps",
"vhje cnu uzfzum rwucy mxr wyrdqfi gnkuwz dkrwc otfc vbfc",
"ubtzio vlijsst anruj qyntadb fnic klz ywqq fnic vlijsst",
"rprj ybyqawb tgeieih nzcr rjpr bjfpozh tpevsx flvjdq",
"kvqqzvm cfdm wzjmkq sbcfx vzmkvqq",
"zqtt elpg eglp uoe glep",
"lqv madhtch xevl fal ijmx chcpra lzl afl cndbvnq",
"yjx jyx xjy otwklfj",
"cur egsdzaz ocbx wvky coxb pgiysbh lclhvy gfu oxbc vqyjvhh",
"gtd pytdaz kecsku nkiud ytt bmgobx tyt pfleji ebqlifv lqp ytzadp",
"bopfdvy eovszvw krgu jhuhyqi kaczafr krgu zlfxtl",
"yixprs zqai oprgw vcsjoc pgorw ypx ijo urjcjqv",
"estg oqnhw xgwajp mpbsag ibzi",
"zggbt jmmtkru sye ybd ztggb",
"tzryuqb blyxnnu sjpmf yxe zimf uyzqtbr qbyrtzu",
"rzivz rxn invxqd nazw efzun bwnw ywx rfuda jhnoww mketav",
"zxfw zcaqi qaciz ktefiwk xwzf",
"ntougl fvyaxfr obml obml bjkm lgsqj yfcggdu rqcpgt ntougl nveto",
"rma dakifg pvfc ticvff iffctv difkga",
"wpnt eclov vmmoqh qvw mljlvnj hxrx",
"ijnpo uhgxrfe xxopw xuzwyd powlpo ctduj eepw gubnepv",
"rxcmve myxckxk ecid nxe xevrmc juzaonr ilkx zpb pbz mvgos yzr",
"yfecm wqkh defqqa mnzgx nwe ixxg rjdhe new",
"awztgx vqgnfd iwcakr ajaiwn jiwnaa uqfrim wrgbjon ufqrmi vdu yjwy gwkdc",
"vrqf yzmvnr jkjji ghya pdlye ygha qlcm twmkex frqv",
"hjb xgypw vtr mgj asa owcuks fnllp ommrhng senv iix",
"usw iyuatv ondiwh neac ttge tzw bvjkfe neac usw",
"qwehwhj idrwo vex zopkjd lrcc sfqyz smte qrfh lccr qwjhewh vlb",
"efnlhsj ltm xirn nctwio cin",
"zocc cpfo czoc oiz tftk",
"rlzvqe inivone kptyumn eatw urjxc aetw",
"qavvqa jvvc yux cvvj",
"bfr fcpc xpkphcf irak bfr nuhsooj nniugf bfr gllq ipo",
"ekd dydxs rnmgb dek yowk",
"ipdll wdgx gjiigd uleiwg buvv vdhuzg gigidj gkyigmx lpdli lzyode fqdpvms",
"ycna rhyz bsipz lit rmc mrofb cyan mrc wujk",
"tjrk cwdsvf srkdjy lsyvryj nko syjvlry fgqq srdykj pgb koh dyle",
"sflcxt wmgdgej akllaoa bbsvve nsxnt nsxnt kgm akllaoa btqbez",
"bzmoci agemx mdtiol pyohvf zwtx aqblx oibmcz ypcmz lfg ckssn ozx",
"cuojke joekcu eusr dxqk xxwob klpsm",
"byspz lyunt eojrx ubh rjxoe ypzsb",
"ibok bkrtut wzcdk ppm qekhvy aupaic vswwul lmlxrv ainigy sasurbx",
"jeigcyc cycgjie resio ncz",
"xvxr lmlaje ebmtn cvms xrvx vsmc",
"cfjbffj xvo hpsbu nfm jhlsk mnf fmn",
"xncxo iwuon voj aebv jks nynzl hwjwo womejo ugzmr tdfaep olpdiaf",
"jlnusc hgpprf nulcjs kwiwypu kitjjbj snlcju",
"buqzm kpuoxel ajlqke qqdur jecuibn leajqk qudrq usi",
"ahbnjf uuzecdv yfyrsxv eoqey oonue vyyrxfs jixmvao",
"wjdi cfgurdl usdnlk jmao qnus cicxnux vtdxxkx nusq",
"mlvfz twu unj mar qpiz fhjczpz ytl npwjys ppq koa",
"ippdky pvwthzj qlkhl pvwthzj",
"kfm lcedomr xgdkrzo hfxyoe rafcby uwe pzjyuja weu nso erdwc fjvc",
"peep oufzlb fsgn kxj uge xvufb zsnrxss lere gfsn gvwajkj fmh",
"mexvi kgkktz kgkktz auyln ghvqc mexvi",
"wit qxtewrk qdaz oljeb wowb suergyt hxq pfnfbei rdu qrxkwte fyw",
"qjjzkd oxedeu uoxbehs zder vvjnn ocxkiz wkblzy eyzksc waiiqo fut raak",
"dhojys qkusuxs kzicui dcsxo",
"hsnexb yoz inza gqxtbc rya jqfe ufzlqva",
"scpquf gbloz ceol eclo qpvzavo rwfnxa",
"jyg edqf vdpsihl edqf",
"mbyjg yjgbm mgybj mhgi grw",
"ler oxssrel jhw jwh sfa hdhlo gng auzoan",
"hmkuis iaxf muhisk ikshum",
"eodbpo prajasi zsu hyb npr tbcntup uzs bxchne",
"zpyr kxmvz frlzwnb tzqrw vdh ndbwqmu cadwsv adq bzfnrwl qfgf",
"dybnn dmarc mknr fovokgj ukrp cuwag",
"khweq eljs rllijp pizevm lwws kehqw mkjcu otqodz",
"fvsrb kzbjbcc kzbjbcc mee dhyedb kzbjbcc",
"cnlmjd dvnd vhlvsa rsrtc scrrt tqhx vke jqmxpd udkjqc qxriw pfqpk",
"tyureg urteyg rutyge rmoihs",
"pccxeak tkmyane qqggpr tbdmpi ieb",
"wjucbi wjm hais pcxjd kkzh qns hmf mhf mnsv ifigsc",
"lqeyr pnopcig cpgoinp pncpigo mjfkjus cko zedvvyq",
"ofsnspv goj wqm ynolb qczly brl lrupzg buof zladwte",
"xzn zxn yaseulw qwhxb easyluw vvlmh",
"aiybip ydfczwh wkl rjsu xreokl qov mko pna fkfu",
"zjlwozs nxke ozwlzjs jybx jpsxp qtkll idsrad savpoe",
"xph lpvkmvy afq uqhg qqjgm smg tmhem mxdyqx bvhot lpvmkyv",
"jxkkzil pkjheow fewr ggbfy fuol cuzud wnx fxujfwh srjsmic",
"lzbjx vfx sncis xuv unoa nlgs stdhf oibxsgk uhogsb",
"hfqzkms bzyfnz npcd yhfdo myqukug pjq adle sqkfhmz",
"czhainb iazcnhb hhaqr cyrwj zzow luuvt zdyhnh uppysr",
"fyw dulbxa drewqsr tldlaac kyaw datclal ylplup hdzbj",
"kiiv tly gua lfg",
"gphbvwc lqdd jqja ffpkz hafal eiapksw wsikpea vphgbcw lkcpm zjxcx",
"viapp rxt vdgbm ezphp pcqr bll mklgx epzhp",
"favz bwmczgg zoyns pens wpgi mrwxel",
"ozwjjn kbzaozc cuaa igbfyq swi uypx bczaozk pyux odvawqx",
"npnpw nwppn egnpj fkzh wppnn",
"asu mlqmwa npewa cjluw qmalmw newpa fznx dzypi yiy",
"hleh usw bgmgscg cqc fijfuw idtyh cgmsbgg zjhr wus hymbju",
"tmre fvm cgowgb eduyfla ttez vdzp vtmtaog ezxsfi gyxgzi pvzd",
"acvarlu hkmfzdg jsnil hpv wjj rljpk pygl wjhhohk rkplj spvgx psgvx",
"wyz rvuobq kbmhaf bec bec",
"zosyz psuo lgihdo mjtftk fjkttm ddmcd",
"pqm qpswpb opviwxg ppqsbw waco jpx",
"yzgumgq kqv hqjghnl jixhoyg ufer kvq lzi rojm gbhvsd urd tuy",
"sxc jndqc ozpex wkchpu tmwv utcxzd piecpma cmppeia",
"ifjc lttj tltj rxmgxqa jcif lzhxkg zqb mdq kbjavv",
"isyxn zjbj uiw avziqxf zpezazx iuw",
"rjaudu amtpuk gufogys xiqs",
"gau sndrkv cmiolti cdxm ikkcisu xusnfbp jxffy ffcizj psye sgd",
"mvx onzmy oynzm mwfgvs",
"mrdg roanty dljs jlil gzcj dqitnfb gxb vzzqf ooweeh pgs oyntra",
"yna xgok fvbdl xgko udqp sorfo hmhl yan",
"kycl ule blupejp kycl fhpkoe pqkptw cfzpv nkncl",
"snugkyw zfdbsfs aehb olq kkoi xpsvy jqcspf lajjyu jtm",
"hifhfa mii clukcbc fhhifa wcts tgai vvqsyr kclcbcu",
"ordjftj dokk hdhytwc fjodrtj ojrjfdt san ajxrwy ked jfrqc",
"eylx cohd biswq xgiibz gzcptbf eylx icunv bfg jqanbv rntp sbfkiey",
"kub gdpbdms qnnto bit visqop",
"tywk clicj daics cbuewkx yyjjjka vxzk afsdyqg",
"bmxzll wqjnyr mxlzbl yutkaa qmpz hiqkf lqqqle jagj qlqelq",
"jgdeatg qubj jsu bhgbm swmgy lwgnuh qjbu dqwiikp mgwys",
"ryisldg asrrhz vxvrnk ibjr kebyx dwbx qdrpa tgakt",
"dfvgzk hifan dpjdnqc ncnvf xmqjjao npjq vobt evtaety kvufds pcugx oyjo",
"ezionjg ioznegj cykxy igeojzn ezm",
"dkv dkv vfqyl dkv dtjhrem",
"xfgh brsjcdw auvq fibb gcbecl",
"eet qdnrymr ndqmyrr tpfqxoi kbkxw",
"qhmaj maukf uygg hqmaj tfmtv irao wsari",
"ofoywus wxs leemkn wfko dwzqv txg qsiiiss aiiffe fadmdq zjtaovt",
"fgfms oazi sam msgff qif evxca reho",
"gpzhy qxh sco qeax wtabxwv sjd oev",
"xsmpi wskvku xspmi smipx",
"ghgf tbpeun qdivuvq dump umdp khxcxtx laljpv lownp egovve",
"vhmu eziabt hnz neko nkz hfmizn",
"vqhb lax zzyf lxa lik jrqynr rgcos",
"zjgbfzv ieufyz kjxad qxeuewx",
"ufl drkaac hoyic pqutop wqzdk eewabsr mqspcr ewarbse dzqkw",
"bgatanj xmddwv mwlmw scgzboo myignm lkfl fsqr",
"xkrx otjzfk wek dpbwk cromg fclmhg pkvw wsln",
"yyqjs lifg gifl cfv lfig fycza",
"dfup fkfeiqq rcmuv dly iforzi lngkjc rzifio oiifrz mlhor puwm qrthoa",
"nzfaeto punt rtmlg dwdk hyig",
"mds ueoyclh lxb axgea wqt wwqqglf tqw yvzji ryr dst bojf",
"ayoj yzj lyctgnc woxz gqltw lkzkwte wysb mjyeu hrwso",
"gymmvtt lhskza lsb nhlijnt men zphurrw oftksy zxs ykerwue hnijltn iknqyz",
"xuaxkc lgzeef fwb nlzzhjj lsieg qdr ews rue rdq",
"xnf lljcmod kyuercp kvlvd lkvh ncn afaq",
"bjytofa ltz mkyy bwt uxca somiz rhgdg keaqu ybr",
"aipljn qpq nilajp udgkchc dirvxg rrbmi mxfxkk kmfxkx",
"sfzjemk hjsvnmb hfd hprfmvg pbhkc",
"cvxi srj ucy yuc euswuns jpox",
"tajlnn ivuecv fdfce rakjq bfuxirh eibde tajnln nlajtn",
"ndvm mlnhy bfqlzn nmdv ohto",
"jysyvwy xbcyt lbbm osoye swwtwa emfznci qnzc qsgk",
"xcm jbqsuo xmc mtrk bojuqs",
"ukshrrh xhfl ooxgq vadlcrg ydva hugplg mnqbd wkyouq",
"mnmqys bhws megar krgoke modxe krgoke clovh dlo",
"ejl qzc agxph jcn zcq zqc",
"jgh yhh hjg jhg",
"tarm jboyg gbyjo pgalg xugzt bph mart",
"yur wrrahr fnnfqu rwhrar cdq",
"mukod gueg guge epalg xjkctt",
"hub hbu hbzul buh sqfl",
"xyrly lvpitr xfzn jjcl uvcnz dnpdyzq ifaiwe zlvzcx",
"wxzsf tgd khvwp cmd mzv bsvjvjm wvhpk ublnqyz mvbjvjs peishcb",
"zunmk hxpney nphxey znmku",
"bfxlgur wftcw xfkf fsik xkff ffxk",
"sxyjzr ugcscx uiovqx ldzhord xgxbfph ldzhord prdhg rhdhzd ugcscx",
"udg drb apyjq dgyevo fuxjhg",
"qshbe aigfdp wyvz xfcos wve dgfrufw dwimmb jfh wfrjbzk nwgrigr sbrpbb",
"ahpn xnzeof wxbv chxpcu jmso age ojsm bqonfki hqhrkw",
"mfupm vvig ndqbbm jlw",
"ejqh ebcrytj zpiqtpp ogznd",
"wkwkae odq rsrnqk nslczz hiyyhur kuw mjbuwll vduvod ryhuhiy swo tsos",
"znkufyx jejrdno knr wkx ikrlly tnxtj",
"iizdiw iizdiw hukep rwj eaq ptm klta rwj onaz",
"znb egqy qqnc igqr ikza ojgzkr xaen kurb pyckxvt wqx",
"pbohpw bphowp dajwdpp kotevs",
"hmuvxu zdnguk jhcmj gccyxiu cxgiycu uyxcgic akxi demeff",
"zjr lupzwcy puva rzj",
"cdn wee iqkbhl jwxo nhl cqd mqgqf ltdfg",
"phwco ggcj cggj ergpqmc kcz",
"aryjl wqwmkc aklktpz kptnroc mckqww",
"jadydt atjdyd tajdyd owswsgm",
"dshqt kacoge sdqth ylobih",
"kdnik knkdi dinkk xwvqa gvii",
"cifbkpt zye xhwnrhm fctibpk sbn pdqry emkye kzyjpa plzkc btkfcip gcchi",
"kekfr fufp dfy eqebgko obbn nuh",
"zixfbus skuf bea gimbqq caubhto eba uvkovz xisfzub peukmyn",
"okihcgh gazrc slee vlnwyg geviex eesl nmnvk rcbv ycupyw",
"tcvlgqs wxe lusvwzy unr yzluwvs wsylvzu zkwth qdykv",
"hyenkj ugao vlwgb putcepr lyeccs fqdotx burf aqew fje rfbu",
"uhmnc zgnkarz gylqawm abl zimcz qbs zzmic",
"pxkbpn zuxlwtt rlbhegv zlxuwtt ooxpr pgjx",
"leg wavgps fcplfpc xvxih ueskmi dvu wbiq nvtia pwjojw usiemk ojwwjp",
"zmrpknx xrfpq avque tvoyqp",
"lyposyj mckyoub sqbl olpsjyy hjafzi wmojb nvezofd",
"yflxrg egi aij qvc yflxrg typbs yflxrg kliexy eqnj jqrr",
"gggt sht kdajvz sht gkqwaot sht vout",
"ahl aucpih feig man umtchcv ceqabr tfptb",
"ftlywun voaorf kde ilwt hlpoe pksqxyh vpg cxo xgq fdkkl sgxhnq",
"zzekhfi akb lupta sgtd qapznzf lgidsx lidsgx akgmq ettuwjq xyumf",
"dxhpku lwoxpim gwb lhjmoh gxqapd ntmvc rvwwszg pvin lwoxpim coubc",
"qia bxmremo rjf vaeio eqexwz wuoz sguf bsbusof xqeewz",
"iczzz krf hbq tsgrih mzjabrt sfnwrm djignf zwac cwaz dgc nsrfmw",
"yvarsva zzpbp yai und kkbinr zlyj nyxxof ggrgu vyk eib",
"nepzm yrrgr vrlhbv hykmiog natrqx jvpq nbyhe zuo grx nwl",
"cfboeev hcn yfobyx cqvlo obctww xxaux ofybxy wouguq avuztl xmgqq xyofby",
"tikv uvzp oxopqy reh uzvp wefka vli kied gngks vbz thfsxyt",
"exxvknp pucbdyl dboto tzat qze xyinygz mhzl ubahr ekxbtk",
"jcz ufszbi pknsfgb ivok ijau okxolj etecn aurun zsa gbxs uryx",
"ypnb ousd osg mvset ipffzdn dfinfpz ltescx",
"taeoct aoetct aocett ttda fcdqnxv",
"bimtlk ssax bmrifkr vfxdmq hglp rgzr zpvk zhxtq rndwy mmr arkr",
"bwvdb axxbhzk nwfmbbu kzuc sahv cvas wdac acsv",
"xavkwou yvx ouwkxva otbe uzr mmw atq yiy ghavd qta pqlhv",
"omzht vsdsc zhtmo hmotz",
"eqt wtveez syift shtfnc hmckjxa apwbvn yme okdl hbihdtv hxahns eetvwz",
"rokdg ndjw hprxjc viys mbcctod dbvd",
"lhzb fyxf xaslmi sjd vqp grxhmfe snetfv mgivd uaknj givkdi",
"gxkxl kqcdnl rna jhcuepd npiedg djcpheu huce njryw bjluhq bvedvl kqxu",
"sogh uym atpzuwx vjgbe xgrvkg thgbyn mptcebt rkro",
"tnpxw uxrqxd lajmsmr tnnlt vrvbf deret hkmvrs eubvkn kks hjq",
"rcdoa zfja vod supip dvo",
"zbxdo xglqv how mgoq jqrdou pwrminc lidi nfs xglqv lidi",
"ldmnp dnqn ahhr tha mvsbsfh rpm rgus faf tjash",
"ewrdol jqhfpf rckj mrxlwj redjg bmxprx grla",
"rhr jksebwa vtu skwaejb vut",
"wrx iqvrjh atrt xrw vtqo tkcasd xedjh zkqrh vvhj",
"owc qlzygar uajwwe obzl inxawur",
"crbtrf phvy nzipo rctbfr trrcbf",
"vwuun wcfhhzo vxxjdt fbf bqtmmhs bffqcna",
"wkxfxmv zmrkyh sggw whwcw zukynw",
"lsdiy lnbn kblxi qfyib irfl mymrr zqbl",
"gwdkeu ghn afry zxoz fary uzntlnk kee xtnop ptnox zngoran",
"lgs lsg sgeseiz gsl",
"erpoqpi svtnv vsogl uym amzxbs",
"jtmodqx yjcsfcl zosugm jrekfdw xxbdqnx fcha",
"vio tlfxokx xaoq pydeiq glxsuzm honifvf maiuzsy uizsyam eco",
"ophcui saka qyt ltti syw",
"qff qff sde ryv",
"eiii jazx nlehtx tnhvxl rzvsjo qkupif feypppe tefxr wdjmlc",
"pdrr mwuy wccd rxla drpr enbbap",
"pclml ubwdbz hfudj gdpujfm ovabv",
"uink ffebi wdvhqzs qiympf lqxihty vnsp wdvhqzs hutxkcs lxfuos hutxkcs",
"fycoaw palkpz yrkg kappzl ncjym mergg kryg",
"eqy npvgh ghafkro piqnogb polacs qye hnvpg",
"dxyy udhmz jij tqsuic qxz erctv",
"urum nmbr cgek eetmhj gxr oxgukf wzdmvi oibzt fxkoug rcrywcr rglx",
"jkp ofej waibl opqhmww ifnczcg jdtkbc lil isc ill mylvuv",
"vqbcosk yhhsy gasmj bspx peakt cjtekw hvzo ywe qcvbosk ohzv qddt",
"edq llbvsx vedyvlm gou wkecank rkgf ziyrr belgo tbz",
"wbome vhzf ztk zaxiu ywjb supuf beq sxq spuuf pufus",
"femu ymkdoew kjynct aia",
"yjymr orovqj aremii licw bdtnc",
"uyade fbx duaye ujtvpn",
"yzvp pvzgjp yofcvya gvkkoh cafyvoy mhsm okhkvg",
"xuh qkaf dmi imd tzmlce mqkxj qilrc dim cadotvy",
"azpqgb kyc aflgyaf laagffy kesmk jzyzaer taf bpkbzdg",
"ogd dbdlh dqt zaaloh",
"exal vgnfx omu omepvwf szcwq snz bptite bzqyxl khmblyc sse emg",
"yqcbwsn aihhf tqck tcqk wqwqy cfez xahpn",
"qqbuf lil ies tqu pyxhqp mnfuk azj",
"vwma rzdtgl mxbasw nwgjav mwav",
"itpjfq rrgyt hralwm fqrig btwcod",
"ydjd kmk fvwr wrfv yvhw mkk",
"xbsxub yhsj xzbuf ace xubbsx fzuxb vxk",
"ttsist vubpf mhwkmtx vlj hdsva kmmhtwx ukxr upfvb tbma fxsrnxl hzwufho",
"wckjvz unmtev egxts ihw topvw ptowv rnihhmq",
"gpdtl kcric nwg ssbs qah aarp ydsdty ngw",
"lzhxbbq oktvcw xbasqe owtmwgp koa gumjie sodwrp hqsw aqh dtgsbb",
"xjbyy mxfxa ogvk nqiy qyni ldqwryj niyq jjixc",
"uhbul daccgva xtiz dim uhbul yjmakv yjmakv",
"huo esajup ouj oju ujo",
"eeeu hwvsk jfkmds okhi pogskfm itdlbll",
"lpyubo dylpfb iehwug decj ntidy cuygyg lalkb iutu oxgm imn",
]
//part 1
println input.findAll { new HashSet(it.split().toList()).size() == it.split().size() }.size()
//part 2
println input.collect{it.split().toList()}.collect {it.collect {word->word.split('').sort().join()}}.findAll { new HashSet(it).size() == it.size() }.size()
def input = [1, 2, 0, 0, 0, 2, -2, -2, -3, -3, -7, 0, -1, 0, -10, -8, -12, -8, -3, -6, 0, 0, -18, -17, -11, -18, 1, -7, -10, -4, -18, -8, -26, -15, -24, 0, -8, -17, -15, -24, -7, -21, -15, -19, -30, -40, -44, -23, -3, -25, 2, -31, -20, -45, -51, -50, -34, -4, -33, -41, 0, -49, -43, 0, -62, 1, 1, -32, -50, -22, -10, -60, -13, -46, -57, -40, -28, -33, -34, -13, -40, -5, -49, -17, -25, -71, -5, -16, -23, -58, -69, -22, -28, -84, -70, -71, -73, -87, -8, -11, -99, -65, -27, -32, -48, -87, -96, 1, -58, -101, -94, 2, -52, -34, -22, 2, -25, -7, -36, -66, -84, -100, -45, -65, -69, -52, -5, -4, -93, -100, -7, -13, -50, -87, -87, -4, -119, -25, 1, -41, -58, -24, -12, -15, -39, -140, -40, -136, -88, -141, -112, -43, -68, -67, -128, -23, -24, -90, -56, -71, -146, -46, -41, -76, -54, -38, -144, -53, -1, -97, 0, 0, -70, -60, -171, -12, -97, -147, -21, -174, -108, -101, -91, -56, -76, -13, -177, -1, -40, -2, -177, -136, -168, -126, -5, -175, -177, -144, -104, -174, -4, -172, -114, -69, -18, -24, -157, -47, -110, -6, -155, -79, -157, -93, -93, -114, -77, -148, -32, -100, -192, -144, -123, -192, -65, -220, -143, -1, -40, -149, -69, -230, -202, -69, -52, -112, -175, -72, -69, -168, -198, -181, -156, -37, -179, -168, -81, -51, -205, -2, -104, -25, -199, -83, -176, -115, -174, -204, -207, -127, -161, -219, -27, -107, -160, -141, -34, -39, -182, -46, -41, -90, -267, -234, -48, -72, -49, -110, -266, -167, -194, -124, -183, -184, -108, -49, -130, -166, -198, -87, -196, -183, -275, -130, -275, -39, -70, -143, -257, -22, -53, -12, -93, -30, -141, -32, -239, -284, -186, -211, -160, -145, -21, -167, -258, -67, -56, -262, -272, -19, -194, -244, -95, -261, -27, -109, -271, -7, -146, -328, -266, -207, -76, -204, -273, -177, -159, -68, -231, -215, -75, -264, -27, -342, -298, -338, -178, -268, -303, -78, -283, -149, -147, -209, -146, -147, -282, -131, -204, -129, -319, -166, -256, -114, -267, -211, -15, -194, -53, -114, -236, -127, -33, -316, -123, -180, -234, -131, -107, -21, -209, -174, -174, -24, -1, -281, -367, -251, -42, -17, -158, -33, -181, -26, -286, -235, -262, -1, -374, -121, -253, -215, -19, -114, -8, -372, -89, -185, -50, -71, -130, -248, -274, -9, -99, -66, -402, -256, -294, -313, -256, -36, -229, -64, -47, -32, -259, -178, -278, -416, -334, -286, -229, -377, -50, -424, -359, -182, -41, -270, -96, -372, -1, -100, -45, -88, -111, -373, -247, -185, -356, -66, -246, -157, -326, -196, -258, -325, -218, -43, -224, -429, -461, -159, -101, -21, -187, -416, -154, -416, -311, -54, -189, -379, -375, -300, 0, -405, -170, -478, -119, -451, -121, -30, -304, -320, -218, -369, -294, -41, -328, -482, -42, -200, -254, -409, -260, -447, -196, -156, -394, -142, -180, -376, -316, -323, -455, -262, -360, -143, -318, -242, -226, -382, -211, -493, -443, -14, -231, -304, -168, -396, -100, -201, -187, -209, -49, -45, -150, -309, -275, -449, -523, -260, -366, -222, -483, -234, -209, -398, -247, -343, -266, -456, -396, -528, -232, -241, -482, -417, -362, -406, -503, -164, -146, -198, -285, -23, -133, -506, -159, -203, -70, -35, -410, -209, -482, -304, -45, -550, -27, -6, -117, -121, -143, -265, -196, -179, -334, -77, -253, -526, -276, -437, -212, -276, -253, -414, -192, -48, -53, -28, -24, -139, -554, -534, -82, -35, -237, -447, -274, -125, -377, -404, -101, -241, -166, -192, -120, -469, -461, -534, -222, -409, -363, -211, -477, -300, -491, -506, -512, -344, -554, -31, -617, -49, -268, -63, -143, -512, -115, -299, -344, -453, -573, -590, -330, -342, -347, -3, -46, -344, -423, -561, -411, -95, -9, -323, -354, -523, -523, -526, -573, -162, -281, -578, -326, -475, -506, -319, -190, -15, -193, -586, -430, -166, -72, -160, -530, -233, -626, -345, -253, -413, -152, -217, -672, -675, -498, -417, -104, -25, -114, -283, -187, -314, -51, -88, -217, -311, -408, -148, -420, -615, -221, -454, -461, -213, -131, -115, -326, -244, -561, -133, -50, -434, -544, -616, -418, -302, -366, -202, -624, -302, -241, -158, -494, -321, -555, -136, -601, -363, -246, -630, -705, -121, -427, -91, -453, -664, -271, -210, -155, -573, -232, -349, -152, -208, -233, -395, -185, -121, -291, -149, -11, -263, -55, -488, -78, -155, -447, -667, -556, -730, -406, -454, -382, -496, -568, -235, -374, -200, -475, -513, -275, -423, -95, -643, -434, -144, -527, -418, -577, -564, -211, -485, -122, -387, -484, -212, -129, -763, -268, -83, -428, -518, -394, -784, -223, -549, -232, -175, -566, -569, -329, -300, -3, -563, -571, -369, -753, -111, -609, -461, -514, -514, -174, -800, -702, -808, -780, -708, -774, -811, -518, -741, -404, -364, -48, -74, -228, -333, -380, -90, -813, -457, -275, -414, -281, -723, -101, -123, -438, -657, -406, -779, -161, -825, -715, -79, -358, -183, -554, -716, -596, -56, -39, -505, -268, -425, -609, -69, -92, -7, -44, -10, -681, -86, -30, -225, -551, -213, -335, -829, -817, -804, -74, -109, -732, -781, -401, -370, -40, -526, -694, -336, -859, -294, -682, -264, -325, -27, -679, -135, -82, -711, -570, -159, -179, -604, -41, -580, -403, -540, -262, -69, -329, -5, -879, -345, -632, -367, -183, -38, -80, -63, -448, -832, -656, -774, -292, -474, -596, -862, -842, -16, -107, -243, -647, -782, -336, -785, -816, -78, -416, -712, -810, -389, -264, -304, -847, -520, -619, -161, 1, -584, -719, -486, -516, -360, -747, -363, -672, -134, -177, -894, -778, -582, -766, -769, -114, -843, -287, -493, -30, -620, -467, -141, -206, -437, -367, -426, -799, -943, -508, -594, -545, -61, -829, -844, -589, -775, -409, -28, -726, -452, -261, -613, -106, -441, -496, -643, -606, -742, -408, -321, -260, -333, -328, -751, -21, -768, -36, -265, -936, -697, -702, -924, -89, -215, -896, -216, -477]
//def input = [0, 3, 0, 1, -3]
def pointer = 0
def jump = 0
def jumps = 0
//part 1
while (jump != null) {
jump = input[pointer]
if (jump != null) {
input[pointer] = jump + 1
pointer += jump
jumps++
}
}
println jumps
pointer = 0
jump = 0
jumps = 0
//part 2
while (jump != null) {
jump = input[pointer]
if (jump != null) {
if (jump >= 3) {
input[pointer] = jump - 1
} else {
input[pointer] = jump + 1
}
pointer += jump
jumps++
}
}
println jumps
//def input = [0, 2, 7, 0]
def input = [4, 10, 4, 1, 8, 4, 9, 14, 5, 1, 14, 15, 0, 15, 3, 5]
def states = []
def stop = false
while (!stop) {
def max = input.max()
def index = input.indexOf(max)
input[index] = 0
while (max > 0) {
index++
if (index == input.size()) {
index = 0
}
input[index] = input[index] + 1
max--
}
if (states.contains(input)) {
stop = true
} else {
states.add(input.clone())
}
}
println states.size() + 1
//def input = [0, 2, 7, 0]
def input = [4, 10, 4, 1, 8, 4, 9, 14, 5, 1, 14, 15, 0, 15, 3, 5]
def states = []
def seen = false
def seenAgain = false
while (!seenAgain) {
def max = input.max()
def index = input.indexOf(max)
input[index] = 0
while (max > 0) {
index++
if (index == input.size()) {
index = 0
}
input[index] = input[index] + 1
max--
}
if (states.contains(input)) {
if (seen) {
seenAgain = true
} else {
states = []
seen = true
}
} else {
states.add(input.clone())
}
}
println states.size()
def input = """
ifyzcgi (14)
axjvvur (50)
tcmdaji (40) -> wjbdxln, amtqhf
yjzqr (73)
smascq (97)
hyehtm (7)
oylvq (136) -> witry, cvlod
csyiik (34)
zivjpfo (23) -> lcchgb, bhqlq
ggfmiv (94)
vpltn (41)
gzxnn (171) -> mqodhde, djvkd
bsfygp (75)
dnrjb (9)
ohdnhx (261) -> tgiou, lndczw
frcrd (56)
cldaag (31) -> orbcuzi, teyakvf
vphlxz (26)
nljmcv (47)
xcxqa (6759) -> znely, rtsbgwx, hilafgl
hywzja (81)
ytxcti (60)
igzvp (68)
uzvsml (34)
keusrg (27)
tlmfw (45) -> pehflc, lefxyzt
hjmtrw (6772) -> cblhmk, zzflc, xsztla, iitbuxz, tckyc
ahjlf (1474) -> ejvipa, xhzyzer, pzwtjfj
egszxz (14)
skmuo (1607) -> rxsihsa, vsslzfp
ifyja (32) -> rvixnmq, aumrixf, wbenaek, jkkwtd, ywnsmem, mmhtyd, xmzzrgs
dwnokzu (311) -> xinfpy, lwvfsu
txbgfm (33)
roqfxg (62) -> wrhnq, rskara
autjn (29)
hnedp (10)
owxawf (60) -> twoyl, sikmtaj, lvptmrf
jensj (281)
sglkjsh (66)
eeziziu (34)
qjuuu (83)
iebulx (297) -> mqcflzv, nafrmeo
lhfuku (159) -> syzcti, ynhvfvx, ckegba
mxnlv (61)
emtjcx (60)
jspui (58) -> chlpx, xjkquk, afyxhh
nmikggy (64)
vatflrk (6) -> uxbhu, gekygl, xdyrvy, wesoooi, esphpt
jfcoc (41)
gyepcnc (6)
atbiby (80) -> aqtog, qjsvs
ygnkwn (52)
piexct (65)
uitfx (39)
rdvciwk (55)
jkgnvbn (23)
xpewzk (45)
vlqyxe (337) -> rosfnb, vphlxz
bmdgthp (215) -> kyfuyaf, tzrqqk
czafdho (24)
emuwzd (102) -> ifyzcgi, edotax
fwabsk (14)
uftnfv (53)
ndkcn (39) -> mkjuq, ghcgz, cxpwfir, lxwvf, nsghrq, vyvrn
srzfd (77)
gqhnstx (870) -> xmedt, brzucfh, layqazp
bdnjn (57)
pbckxv (14)
fbpbs (74)
zwutlym (92)
lzeud (290) -> igkrktn, oixlcn
gjctf (27)
azmneyd (60)
wbenaek (253) -> gdunxee, vgiqvsi, bmlkhaf
orpjw (72)
dgyulo (9)
qklqozd (125) -> otikjx, wuvhyc, dwejsn
waiwj (47)
bnevesk (256) -> dmglcj, blnwcb
yqnjd (50)
vvkkkpb (39)
ciprksz (84)
hblux (91)
dfywz (60)
jeiqx (26)
zdissfg (7)
mriqcjy (66)
eydak (49)
qwxwd (49)
plhlj (64)
nqgbp (67)
ewwfzg (70)
djzjiwd (44600) -> zszzkl, hrnrjrt, hjmtrw
mtflvu (71)
shesfq (143) -> ohdnhx, uhnqr, zdglrh, ripilxo, gfszte
huzokb (298) -> mnqii, mieqti
ohuvsf (83)
wcdibhx (196) -> xvwvc, ncmad, jkgnvbn
fxlbc (184) -> mdqeh, kmvcmg, sonvcww, pcckqq
lnknp (91)
swugafb (504) -> ryazls, vmkeu, fewrzd
pmadd (97)
mprgtb (42)
lorxjw (62)
welidg (97)
zzbad (30) -> npccgnv, yqnjd
dwejsn (40)
fvivo (225) -> worqh, yjzqr
zuawuo (111) -> jktlfu, uhvtpfy, ivlus
ikaol (26)
mmhtyd (220) -> yekmflj, nmikggy, xepgx
hujjten (37)
htqps (36)
dlobfkw (44)
fxrijc (57)
xgfad (33) -> zivlnu, ipsst
pafiy (17) -> dhtxpbb, dgcecu
cblhmk (1108) -> ggmhxx, tysdkgl, rrvbwb
kioga (93)
ljhlxc (83)
qsvbb (56)
uaffk (61)
lvptmrf (58)
hebhue (11)
eefyyr (10)
wyylpt (184) -> oneoorw, cfbaj
vmboh (90)
ghcgz (195) -> tajfmq, yzufk
jjhrmi (190) -> qhubjd, uycop
teduvv (25)
xjadrfg (28)
ugcccv (67) -> wehdeq, gyepcnc
psdzpg (38)
hyhbu (593) -> sblfh, ekvdv, iicpkf, xidtz
satjdgz (60)
cjbdxts (34)
gdunxee (53)
fqswta (47)
iwouvid (81)
iqbdxb (67)
ozbjpiq (16)
ysafyj (97)
lcchgb (82)
wkamonm (19)
waqca (61)
bbeyl (9)
rkfspx (17)
nggtuh (64)
jmypc (20)
yfegso (122) -> yhsmjfq, jzmacb, autjn, werkz
zirysk (72)
rtsbgwx (251) -> cbmqx, hvmlb, rsstvn, jtyurkp, gmkvgf, qkawtfu, ggwtf
yxgwsj (14)
xmgqmv (84)
lncmhi (48)
orclyi (30)
bjwny (94)
zehkwy (69)
mzajj (92) -> nljmcv, waiwj
ffsehyc (17)
agelbfq (343) -> iuchai, qynrx
dgcecu (86)
wtqxei (61) -> afywb, dqbfloz
vlmihf (32)
lovox (77)
cmvofka (30)
ttbuzrh (96)
vsunxw (196) -> pdbykx, dnynny, pqjua, jhnujj
skfnp (97)
upuybrd (300) -> dnrjb, rfknc, bbeyl
cpmebw (60)
wkmtw (59)
rpvwtq (5)
jenfafh (58)
pubtxq (51)
xlkwyg (55)
iltoh (22)
ctaazgn (103) -> hywzja, pywmbis
zxhqlfy (26)
dklujy (76)
khgvmj (66)
yfnkp (33)
edsjbi (37)
brtomr (75)
siqcu (15)
kxdehcg (13)
vmkeu (315)
momda (90)
pocvrcs (6)
sonvcww (17)
nemrt (91)
ldbkyg (75)
jsrrt (22)
ifuvyo (180) -> zvszwl, utewfcr, dtmbf
kfzqw (80)
iyfyi (41)
tykwy (44)
twgjdmg (24)
qface (27)
ygkdmh (74)
sblfh (120) -> gglxj, fqswta
gbldz (49) -> xitcp, jpynea
hmjpa (122) -> elovaun, uijgiu, apxgf, nlacdac
wsixz (14)
vgegr (83)
fggyk (46)
kjoru (16)
ixqrl (22)
gklehu (84) -> sazbmjz, piexct
xxego (33)
jxfimbl (95) -> nvpdisw, kioga
vymmkdf (116) -> ofqbu, sboms, obbpd, czafdho
jpwtbds (1608) -> zwutlym, qntzr
xsztla (828) -> cmdizw, qxkhq, nfcbi, rtutzu
wtfliw (87)
lbxrh (94)
ybioco (29)
yvdhwyh (102) -> xpewzk, hdxrbzc, vsaejz, pudso
eauxeyl (53)
skuazsw (70)
jlcie (99)
ckmftuc (21) -> khixdho, ihzsljz, uvkxner
yuikqm (68)
dqbfloz (87)
zofjia (133) -> gshsx, ntkpthi
vyvrn (173) -> lrjbgd, vwojto
tszockk (729) -> ctaazgn, gqbwc, wcdibhx, cujimpt
ydqqgrw (15)
hcxwql (398) -> lpoejf, cmvofka
gjedup (5)
arelp (195)
aonfn (235) -> kzkfcn, eefyyr
lsgbe (99)
gunvu (99)
kasaf (34)
imohij (13)
khwbzl (1131) -> zlbnkdc, ljmrml, roqfxg
nwikfyc (80)
khtegw (91)
epggt (90)
yapaib (175) -> gunvu, ymdmn
saawhdk (12641) -> vwvowk, ilcsp, vatflrk, iajts
qoetrb (15)
ztmmr (147) -> ypkhqlq, uitfx
uqfbnlo (69)
sgrhs (249) -> zymggc, wnvrg
hqjinj (101) -> skuazsw, ewwfzg
vmpnccn (73) -> bidhw, qriyeb, xsyzhcf, ehjjbu
vqddcl (71)
yffeit (76)
xvzinl (99)
znzbkh (16) -> swnan, tbioyr
gnjit (23) -> dhfagjw, xxnpoe
qojhhod (1789) -> sjdanf, hmjpa, szglq
aluqao (313) -> lyhlx, ouhuptm
ipysrdj (222)
worqh (73)
tsxfibs (46) -> yfnkp, edjlm, txbgfm
pcumn (420) -> qwcyozf, dskuj, anoxh, dkmkdfd, fkapr
mejwrm (139) -> oxsewk, zsknxq
aynpyne (44)
sikmtaj (58)
sbfprua (70)
wwofru (53)
nmuxe (88)
uuvtlk (74)
rqisvrh (2703) -> bvmgt, gbxxpd, ffinat, ympbbx, uimoc, shesfq
ehjjbu (89)
cbmqx (163) -> bnlbs, psdzpg
naekrk (70)
cvnrr (17)
pwnqyt (133) -> zijzutq, yvdhwyh, vbmyyrh
sagyrje (49)
efuysje (97)
pzwtjfj (74) -> oyienb, ozbjpiq
ggmhxx (42) -> fhhgts, cepxc, zwzxy
bhfui (13)
chlpx (87)
hmlbrz (55)
oneoorw (90)
kyfuyaf (79)
kiylza (88)
fghxbc (99) -> fozagvz, wqgssb, kqqsq, oijwjli
qgxgzo (14)
cubqfzc (184) -> qwmqci, dmvcduz
lcqfe (61)
xypffi (11)
qntzr (92)
mkjuq (181) -> jdiczst, edsjbi
dhtii (62) -> kfzqw, lbozpy
amtqhf (99)
ixknk (37)
iuapj (162) -> gzfrn, wqtuhe, fndyvvn, zjveu, iebulx, agelbfq
khtooum (53)
aecsfp (72)
fcdcdh (88)
junfev (18)
pxfrz (91)
xratfed (6)
gwbfat (26)
cvcblhv (73) -> jbnns, glkjrrs
sdfvrod (114) -> lcqfe, uigcn
xkfkucf (951) -> skbrota, pwvahdb, odpqjr
okkvefs (820) -> fpuscxk, zhdioii, gzxnn, koxnez
dgosy (59)
yhvndwy (27)
pefzsea (86)
xaogy (131) -> ixknk, ykvss, hujjten
nvpdisw (93)
lmkwafp (56)
cwnvk (51) -> tvdsktm, pwzsq, plhlj, ayqbj
phbtrm (171) -> hmmjjct, xzvln
mrmbyj (53)
jibemf (87)
tysdkgl (20) -> mrwbv, llkaoeh
fpuscxk (147) -> ypdumo, lvdrrk
ejkumeu (235) -> xypffi, nvcafwu, cvdows
uijgiu (38)
cjjynt (264) -> rkwhbhr, axjvvur
nobfn (236)
svanha (62)
nuxxmd (53) -> lybaepp, eolqn
vsaejz (45)
hbbpuc (238) -> thrvlt, ziiqv
tbley (31) -> nvfca, nojly, nguafeb
bkkwe (70)
tywzxwb (24) -> lbhlxqa, dklujy, vzxktth
ezqeusd (71)
qwcyozf (115) -> igzvp, vtefqb
xpwxo (80)
layqazp (39)
hwdtvvc (40)
pwnxw (69)
jobwpao (181) -> pqgiox, uloppmh
wrhnq (87)
amsfvm (53) -> nqgbp, bcldmsg
dfxjjzr (190) -> udaitd, sdktm
cnwzxpy (65)
kpvbt (85)
ifbhg (62)
cpeonw (27)
rsizei (20)
gmkvgf (63) -> tykwy, dlobfkw, aynpyne, vaovit
bjiuus (56)
bwpeux (17)
szrkuzi (27)
ygvpk (33701) -> saawhdk, svthizp, abamn
mjtji (35)
rqvvv (50) -> pzbxpou, rxzfdg
pozua (128) -> vljjqbw, hmlbrz
hmjueiq (79)
hdxrbzc (45)
twway (181) -> orclyi, hmdxion
jocmdmv (72)
lacddy (68)
lsxjl (94)
edotax (14)
gmirjhi (62)
iwicpur (10)
uigcn (61)
ynhvfvx (32)
ugavy (91)
jbgxcj (48)
zdglrh (239) -> csrww, haqaohl, gskveo, qoetrb
lmlsog (62)
sazbmjz (65)
ymeoz (24) -> lbxrh, lsxjl
hhqmsd (34)
ykmfoah (245)
lfdefc (30)
qynrx (53)
znely (919) -> qcmnpm, yjutt, yqgesx
cauig (58)
gvamhux (71)
hqqingt (13)
fiynt (72)
tyysd (63) -> cjjynt, lzeud, wyylpt, pewxc, ibevwow, fvmeeas, uksnrfx
igkrktn (37)
pzbxpou (87)
dllzp (59)
iblvki (11)
vaovit (44)
tcpduh (212)
btpvxq (56) -> urktg, ifnkl, hbbpuc, casmwo, ylqvuk, dblmcye, zvpboy
xxnpoe (67)
sboms (24)
whvvemg (83) -> tafss, vnfigul
ljjyy (64)
qvdid (70)
koxnez (71) -> bolpsk, pefzsea
elgtk (40)
wesoooi (87) -> pmadd, welidg
tiikt (92)
eadvs (797) -> ofnewz, neywe, qklqozd, ykmfoah
sreke (34)
clqqyi (51)
kuufl (1074) -> aonfn, cgrima, lhfuku
qswoy (7) -> bklfmch, xpwxo, eoustfr
rakfg (91) -> fiynt, opdtk, qkhvu
zvgsa (59)
gskveo (15)
clbbi (27)
ilcsp (844) -> pafiy, phbtrm, nwupf
blnwcb (17)
udaitd (23)
aewmad (73)
tvdsktm (64)
zavcu (25)
gglxj (47)
jmrlaxf (48)
sppxnti (48)
zhdioii (243)
olepfo (98)
ezsnmw (14)
hsmjm (25)
xmuxsr (44) -> bjiuus, qqjly
kmvcmg (17)
zuoeh (7782) -> hbaxtai, pmefov, zfteizz
sqxrad (80) -> marord, jbgxcj, xsmyok
vrbcn (34)
ibevwow (308) -> cvnabd, pbckxv, xrunic, ezsnmw
rqilp (25) -> quwfos, vekxdqh
ojfzokk (99)
bjwvw (209)
sygjhzp (36) -> hsxhyf, knqxdq
pjvnmqn (43) -> azoutv, jwhcmc
qqjly (56)
iezyfwf (20)
wrlkfij (55)
wuvhyc (40)
aqgtml (51) -> wywxu, tiikt, uwnwp
fhjysp (164) -> czvyrzi, nbmnwsq
rmlru (71)
bdiiv (15)
tlxekcp (42)
lbozpy (80)
uksnrfx (224) -> bkkwe, sbfprua
gmuwpyi (90)
zsqzm (64)
evhhfo (5)
xdyrvy (189) -> wyois, cwkdlil
gbxxpd (82) -> rynmge, hngao, vlqyxe, jhyjqxq
nzhqepw (60)
zfteizz (59) -> ytvjxq, vhoasjq, fwwub, xglsp, cubqfzc, nfucnzx
ulragq (39)
jgrsa (269) -> ukfsn, kptjhtd
uisnk (2228) -> tbley, eqkot, tlmfw, gnjit
chyhykz (59)
zjveu (437) -> qhyfphs, bfwnv
syliku (78)
syzcti (32)
nnmayb (85)
zdqmuey (209) -> ibkfqok, lhmgw
myopc (16)
cifdyio (74)
nguafeb (42)
dbczwnr (15)
vxede (10)
ouhuptm (52)
sdyox (93)
slahk (43)
skbrota (217) -> toeyz, gjcibb
hbaxtai (851) -> zynpp, ylbaxtu, rfwaq
hvdfq (112) -> imohij, pwetqid
zgfqdv (15)
dpqxfp (209)
arskvgv (88)
bqywl (157) -> ooufod, clqqyi
ymataqq (22)
krwgy (109) -> dllzp, xqpfvwx
ohsyhln (53)
ofqbu (24)
ccpnopa (59)
bfkbp (156)
bolpsk (86)
tckyc (456) -> dzfclsm, sqxrad, qkrpzl, ppcsoo, rqvvv
qbftkij (204) -> rtcfcyn, vlmihf
bpcnzi (82)
rhacrz (27)
wzbqh (306) -> xratfed, fjcobs, enlctw, pklcmix
qqnmzb (1723) -> mzyqoc, soirl, dhtii, ahbcl
tuvehcz (17)
yzufk (30)
xsmyok (48)
tgiou (19)
izvtqsa (84)
ooufod (51)
rfwaq (80) -> nmuxe, ttofoep
lpoejf (30)
oykwsk (76)
wdipy (92)
jbnns (93)
qcxiehu (312) -> eeune, gbldz, ztmmr
vsslzfp (91)
uimoc (30) -> crhojk, ejkumeu, lovaf, fhjysp, uxbrs, qbftkij
phtghp (3945) -> rpjozji, swnafht, swugafb, guyrnpn, evbtz, hyhbu
svthizp (1149) -> saddwx, olhnx, uisnk, iuapj, btpvxq, iovxjv
xvwvc (23)
ovpzt (139) -> dfywz, emtjcx
uatlbrq (17)
hmpisyb (41) -> igdtz, lnmhw, ttpmzgm, dkxzsaq
pehflc (56)
iedfk (49) -> ydqqgrw, bdiiv
nomeb (112) -> mmfuve, lxudoaz
ffuqr (90)
gsgwqk (204) -> ddraicf, dgyulo
igqle (222)
jhcwkl (41)
yfusbw (76)
lpsafeq (51)
lklqxg (83)
lofayaa (22)
itqwz (113) -> rhacrz, keusrg
xbidr (74) -> pozua, gisiv, skpux, tcmdaji, gorpw, yfegso, waakcx
pnouux (9)
ryazls (221) -> zhpfgzv, rvpxob
bxwng (53)
xwkyrer (8691) -> srnnjbb, qcxiehu, gqhnstx, ghdbwu
nbmnwsq (52)
cxfsoh (53)
gdylf (74) -> jlcie, hewatw, sdpsl
vksyy (96) -> wfpzhfz, phsmt, zuwaw
qekxzsx (87)
qzglav (42) -> ubxvdq, aqvtgi
xsoqzbe (1068) -> llgbz, itqwz, yxzlpnj
lndczw (19)
perzy (46)
oigsk (38)
uytsra (106) -> hkgxpgh, gzxddd
zszzkl (72) -> ifyja, cdqdm, rwmdbn, exwzzr, leyikdx
wfvjnxf (93)
pklcmix (6)
cvpuwrb (82)
ileugiu (225)
defbun (57)
fbzvm (72) -> vgexqw, cejtpyf
aduikk (133) -> kmfel, paopwt, hdjzg, qckzqv
shlfz (3932) -> swcvn, obwkzhc, pcumn
yhjhgu (57)
vgiqvsi (53)
iajts (451) -> izzzyqd, fegaac, jagdwg, mblvpm
kxwbdvm (1104) -> mzajj, ubuge, ddguar, znzbkh
rynmge (25) -> ecwjaw, zdqsmv, aodoc, pxfrz
bqxnoid (31) -> aqgtml, qprenhy, upuybrd, sgrhs, flptbw, mxwbp, boszym
kqqsq (37)
xrunic (14)
vqnyvr (57)
lvdrrk (48)
bamxvq (86) -> zywvdda, ygnkwn, taxrkif
xkzvo (33)
vhoasjq (226) -> uogva, tuvehcz
hkgxpgh (46)
zocwx (35)
qhyfphs (6)
coselm (44)
ypbrxyq (206) -> siqcu, kqicqf
ffgzg (151)
ujuunj (64)
iuchai (53)
ykvss (37)
ovszp (64)
helyfoo (65)
pryhgj (81)
fxhqq (29)
eeshl (30)
qzftgbx (44)
ppcsoo (26) -> gwqgewp, lsgbe
xinfpy (53)
ddraicf (9)
xidtz (126) -> azuoza, coselm
ipsst (23)
wzvzgg (60)
fqqyipa (200) -> eeshl, cxqeyt, qkhqrq
jpyvpw (20)
xhzyzer (82) -> pawvr, dckbvlg
boszym (129) -> rqrhrnz, beewze, evqibrc
kabqu (38)
sdpsl (99)
bekguie (31)
klovr (30) -> kihqh, wafjqj
zklbfdg (47)
ccter (84)
wzqanwj (240) -> zavcu, hsmjm
uxbrs (94) -> qekxzsx, odqns
dzxpqj (22)
csrww (15)
wwxak (108) -> vbmqj, ugavy
etfbuu (22)
miwst (40)
iiugq (15)
cuprzhk (40)
waakcx (238)
faijmsh (35) -> rwakmo, nwikfyc
cvlod (76)
sjgvkg (1566) -> cldaag, bjwvw, dpqxfp, dgdtt, ujbzq
ixxww (61)
mipqe (91)
xitcp (88)
lxudoaz (51)
ibkfqok (19)
ulchkal (55)
qubli (60)
tsamaj (1171) -> axgndac, vbuvkx, uqeag, qyurm, lzypz
mmpnppi (60)
prlvn (63)
ddwursx (245) -> sdwrx, jtfylv
aljgr (62)
glkjrrs (93)
vwftcva (46)
ylbaxtu (144) -> frcrd, shjxje
jqpdpr (14)
yzhvrx (90) -> viqvtzw, twway, zwzzce, hqjinj, mejwrm, yyursb, gfigt
iqoxkhd (91)
locrtxl (2681) -> xsoqzbe, oxoocfp, ndkcn, vmeubf
fbmajm (58)
rylaxjf (90) -> ojfzokk, iksaub
wyois (46)
ecwjaw (91)
alhlvth (36) -> zirysk, orpjw, zdxscz
jlofqwz (13)
sdktm (23)
bjvuicy (217) -> xjyyfe, rahgf, qqllir
hepkop (7311) -> xkfkucf, xbidr, yvgkdi
gqbwc (25) -> ytxcti, qubli, cpmebw, wzvzgg
yojcz (201) -> rkjuz, rmlru
obwkzhc (86) -> vksnq, tijwlva, szcozjr, krwgy, pnhpv, ydiicdl, kskts
cdqdm (2502) -> wnfqsa, jbqmy, hvdfq
gjcibb (23)
igdtz (83)
phsmt (112) -> jqpdpr, bmnsmqz
hdjzg (77)
jukxlr (29)
oajdx (61)
ktayld (179) -> skfnp, xwjmsjr
dkxzsaq (83)
utewfcr (50)
jljjai (14) -> fhycptc, olepfo, armfpvt
gnughzp (5)
oyienb (16)
kqicqf (15)
ggvwlp (80)
vlbivgc (13370) -> xcxqa, aeatvub, pwmrau, rqisvrh, hepkop, ogmoqb
kczlit (64)
mblvpm (124) -> fbmajm, ofwbsgp
wehdeq (6)
fegaac (206) -> ffsehyc, sapwhr
qpsirr (15)
gisiv (80) -> hmjueiq, unqui
xjkquk (87)
rsdub (61)
gzxddd (46)
oxsewk (51)
ahfdt (234)
wafjqj (80)
mhjeza (93)
bljkg (12) -> yivjj, cxcyrd, lorxjw
fkapr (39) -> wwofru, weyfsg, khtooum, ohsyhln
dtfdn (71)
zxgrq (25)
rlfqf (63)
hvisx (68)
laopkn (40)
zvszwl (50)
gorpw (55) -> jnrnwos, rsdub, uaffk
skmbdhz (54) -> scqtkga, xdojlm
ecaiau (424) -> rakfg, ddwursx, nsbzfgy
bfwnv (6)
uhvtpfy (47)
zafggcz (17)
qkrpzl (170) -> kjonvut, clbbi
bvmgrs (75)
iicpkf (16) -> vhkydm, htecpc
rbuwrpw (17)
funnv (5679) -> cdlzi, fpfpv, bqxnoid
flkkr (74)
brzucfh (39)
lfavcfd (72)
dmvcduz (38)
izdhn (1183) -> uytsra, xxmtvr, bljkg
hrnrjrt (9135) -> kuufl, khwbzl, tocvooe
eiatt (291) -> gfhummb, jsmde
czvyrzi (52)
ypkhqlq (39)
egxzjn (81)
qzzlmw (319) -> szrkuzi, cpeonw
xepgx (64)
iftyxdd (79) -> xmaqelf, htqps
rskara (87)
uytsdd (292) -> hyehtm, zdissfg
mqodhde (36)
ylqvuk (48) -> shdgsk, fcdcdh, kiylza, arskvgv
gisrnfs (23)
vntsex (77)
rwmdbn (2136) -> xmuxsr, bfkbp, ibjdru, ttvfha, zhohes
fhhgts (38)
opdtk (72)
beewze (66)
leyikdx (1995) -> ewswf, gaashgh, cwnvk
kcbwrrr (631) -> wzbqh, sysdxvb, huzokb, ifuvyo, ghakp, rqqlzs
jwhcmc (72)
mqcflzv (76)
ofwbsgp (58)
hiyswbt (889) -> ileugiu, suuhqpd, yffhk, htstksc
armfpvt (98)
zsknxq (51)
pewxc (246) -> rmexd, wkmtw
lhmgw (19)
qwmqci (38)
hioofm (319)
cujimpt (137) -> ovszp, zsqzm
htstksc (169) -> wsixz, egszxz, gzjut, rutqzk
quwfos (85)
tcjqw (81)
orbcuzi (89)
sybpg (49) -> sdyox, dwrwuoq
qyhvc (16)
sadnqcp (62)
zihpcn (232) -> jukxlr, louebj
zxygs (208) -> njvkdrp, hqqingt
gyoqtcg (77)
emwblax (49)
hewatw (99)
qxkvfid (53)
kglsx (74)
yhfpq (56) -> cxyfam, mjumixz
zivlnu (23)
xsyzhcf (89)
howlyws (206) -> gwyljq, xhhwwso
uycop (59)
yhxlzc (91)
isqvoex (30)
bklfmch (80)
tvrxaw (106) -> qdqtw, qpsirr, dbczwnr
lkreb (72)
kxyfb (90)
jnrnwos (61)
mxbrva (72)
qkhqrq (30)
gfhummb (40)
zwzzce (221) -> ahqfu, gjedup, evhhfo, rpvwtq
rrvbwb (34) -> wcmyn, haclvfu
enlctw (6)
yeaic (61)
otipr (480) -> gdrxgji, fonrd, wqoae
qxkhq (143) -> ixqrl, jsrrt
wbqeo (22)
iugsida (64)
azuoza (44)
yxemuyq (19)
fyouz (18)
bnlbs (38)
hilafgl (59) -> hmpisyb, ktayld, yapaib, bmdgthp, qzzlmw
shdgsk (88)
rnqgy (34)
kmwxj (92)
hmmjjct (9)
mefmo (46)
lwvfsu (53)
fixwkec (84)
haclvfu (61)
werkz (29)
iovxjv (1204) -> uhwnr, ypbrxyq, dfxjjzr, pxkypf, nobfn, tkdvenx, sdfvrod
dmglcj (17)
qprenhy (221) -> cxfsoh, mrmbyj
qmwmbsk (804) -> tmoui, amtayi, wgqpt, xaycmtu, kztkif
zywvdda (52)
ntkpthi (6)
jkkqxfr (1135) -> nomeb, fbzvm, gklehu
muptknj (66)
uwnwp (92)
ggwtf (213) -> vkaay, kxdehcg
afywb (87)
xglsp (94) -> ljhlxc, htpblzv
elovaun (38)
qhubjd (59)
exwzzr (1542) -> bchixdc, fphmu, hcxwql
xhhwwso (43)
uevxbyn (170) -> ucaee, yuikqm
pqgiox (50)
edjlm (33)
ypdumo (48)
ehhbjt (26)
cxyfam (98)
bhqlq (82)
abamn (8) -> tsamaj, qojhhod, kcbwrrr, ttfyrk, qqnmzb, tyysd, sjgvkg
sjdanf (49) -> ldbkyg, brtomr, qwfvm
wcjnjpf (57)
xzvln (9)
citaywz (64)
aqtog (66)
khdbe (9)
vksnq (85) -> vqddcl, ezqeusd
fkwbo (91)
jefjzvl (73)
azoutv (72)
aqvtgi (90)
vlyof (97)
gwyljq (43)
xmedt (39)
rsstvn (75) -> bpcnzi, cvpuwrb
vekxdqh (85)
toeyz (23)
pvyvx (99)
pwmrau (9594) -> roogi, ajcbzv, pwnqyt
qahzrif (63)
gzjut (14)
mzyqoc (194) -> yxgwsj, fwabsk
tkdvenx (44) -> sppxnti, lncmhi, jmrlaxf, qmati
vtefqb (68)
yekmflj (64)
pdbykx (14)
fpgyyu (67)
qjbbyb (26)
izzzyqd (186) -> djvfa, qrrvi, junfev
lsire (61685) -> locrtxl, shlfz, ycpcv
vbuvkx (204) -> tlxekcp, pxdkes
ahqfu (5)
cjxyp (81)
aeatvub (10983) -> hghjsk, vksyy, otipr
jhnujj (14)
cxpwfir (63) -> mhpzrw, txwzysl
gcydgf (22)
zlbnkdc (92) -> lfavcfd, lkreb
lrjbgd (41)
casmwo (246) -> nsbnixe, vntsex
rqqlzs (270) -> lfdefc, isqvoex
xtqthxs (44)
kjonvut (27)
mptovq (19)
dwrwuoq (93)
ziiqv (81)
vnfigul (38)
jpynea (88)
rplcrt (90)
flptbw (159) -> xmgqmv, ciprksz
nojly (42)
jbqmy (86) -> zxhqlfy, ehhbjt
ozhydny (40)
zzflc (92) -> rnyndr, eiatt, fvivo, gdylf
jktlfu (47)
njvkdrp (13)
qyurm (76) -> eauxeyl, nrwmjk, qxkvfid, rjmuly
bjyraf (7)
zhpfgzv (47)
qfcetm (30) -> iqoxkhd, gptyqwd
dhfagjw (67)
qriyeb (89)
ucaee (68)
djvkd (36)
scqtkga (54)
yvgkdi (992) -> pjvnmqn, kgoyufq, zivjpfo, amsfvm
zsukqjo (90)
hfmaqp (94)
gxsxqwt (20)
marord (48)
uloppmh (50)
iktmpdq (34)
wnvrg (39)
cxiturs (95) -> ttoer, jpwtbds, yykkph, yffpvf, ahjlf, yoxetv, okkvefs
fewrzd (24) -> efuysje, olrgu, rtmiw
swnan (85)
xdojlm (54)
dhtxpbb (86)
roogi (100) -> cesnj, wsvfkr, hzhcl
yffhk (143) -> jfcoc, vpltn
ffinat (630) -> avyoy, tywzxwb, zuawuo, vsunxw
txrfl (81)
eoustfr (80)
bxmcg (249) -> epggt, gfjsie
kdeqm (99) -> qjbbyb, ikaol
lfsvtih (97) -> aylxc, bekguie
qkhvu (72)
zzfcq (7259) -> balknnd, iiqzvha, kzzfvt, ecaiau
kebhn (106) -> iktmpdq, sreke, cjbdxts, ehlnex
ljmrml (178) -> fxhqq, ybioco
asozcan (96)
ceeotg (53)
fonrd (12)
fvmeeas (88) -> wdipy, khnjt, kmwxj
cejtpyf (71)
wsvfkr (193) -> liznr, yytpewc
evdwf (31)
wqgssb (37)
uhnqr (247) -> oncexf, jeiqx
xzmdis (24) -> yhjhgu, vqnyvr, taacpu
tafhilv (11)
mhpzrw (96)
cgrima (79) -> xvayjwv, eyxccr, xtqthxs, qzftgbx
nrwmjk (53)
yjutt (47) -> jocmdmv, iaoyb, aecsfp, mxbrva
cxcyrd (62)
fwwub (146) -> defbun, wcjnjpf
sapwhr (17)
ihzsljz (46)
zmkwnv (66)
yytpewc (50)
xdctkbj (83) -> zuoeh, tnqram, funnv, zzfcq, xwkyrer, cxiturs, phtghp
kptjhtd (86)
pcecbrn (66)
sdwrx (31)
dfiyju (49)
gxddhu (133) -> itlwpm, bdnjn
zvpboy (76) -> txrfl, egxzjn, iwouvid, cjxyp
fndyvvn (85) -> khtegw, aocfuj, mipqe, lnknp
ozvtqp (53)
kxizh (74) -> yojcz, uafhv, wnpnfiv, kivyltn, jxaorvd
zwzxy (38)
rkjuz (71)
jagdwg (46) -> ytiljvt, smascq
rutqzk (14)
zymggc (39)
afbzsz (148) -> vzcklke, ggvwlp
ymdmn (99)
twoyl (58)
lqcutyt (74)
nlacdac (38)
otikjx (40)
rxzfdg (87)
huvihu (49)
cfbaj (90)
lqlyf (59)
apxgf (38)
nqicerc (62)
iksaub (99)
avyoy (252)
kzzfvt (94) -> aluqao, oherzyz, dwnokzu
uqeag (162) -> prlvn, xtaoisd
crhojk (40) -> yffeit, yfusbw, oykwsk
oxoocfp (237) -> igqle, eukgf, qzglav, ipysrdj, gsgwqk, kevlq
aylxc (31)
khnjt (92)
ytvjxq (260)
xkxqc (64)
ogmoqb (8) -> uqmgmst, hiyswbt, qmwmbsk, skmuo, tszockk, kxizh, thbwh
nvfca (42)
xaycmtu (67) -> cnwzxpy, helyfoo
kklbcs (74)
wqtuhe (341) -> myookpi, gqikhhw
unqui (79)
vhkydm (99)
zcomxf (40)
hsxhyf (63)
rwakmo (80)
uogva (17)
cesnj (57) -> hrokzl, rtgobsq, kmfsmp, chyhykz
rtcfcyn (32)
qckzqv (77)
oixlcn (37)
iaoyb (72)
idrror (34)
bcldmsg (67)
lbxdtms (281)
adbxp (35)
qsjqlp (74)
mjumixz (98)
rtmiw (97)
jzmacb (29)
umgch (64)
rpjozji (279) -> faijmsh, xzmdis, arelp, guvke, rqilp, eqpuuzs
xvayjwv (44)
vgemekb (53)
odpqjr (263)
hekibe (63)
xmaqelf (36)
ivlus (47)
rkwhbhr (50)
pawvr (12)
crcrimv (57)
ukfsn (86)
nfcbi (117) -> zocwx, mjtji
qwfvm (75)
jfieeor (96)
eolqn (91)
bgehlas (6)
ruozk (10)
gqikhhw (54)
pqjua (14)
jtyurkp (239)
wjbdxln (99)
paopwt (77)
fefuzon (126) -> jenfafh, cauig
ifualyn (93)
npccgnv (50)
nvcafwu (11)
htecpc (99)
uxbhu (175) -> bxwng, ozvtqp
gzfrn (365) -> mprgtb, qkicc
qlwhsix (71) -> bjwny, ghapm
uvkxner (46)
kmfel (77)
ytiljvt (97)
cxqeyt (30)
yyursb (93) -> lqcutyt, uuvtlk
mpijr (88)
rpqbv (23)
oginzo (24)
sydjg (10)
ehlnex (34)
ukqmhyc (25)
gshsx (6)
nafrmeo (76)
ifwmfdm (114) -> jibemf, wtfliw
rmexd (59)
ujbzq (41) -> izvtqsa, ssnhc
scxdo (56)
bvmgt (1203) -> xqncgyu, tsxfibs, zofjia
vkaay (13)
pxdkes (42)
witry (76)
ttpmzgm (83)
pxgkg (69)
vwojto (41)
jcise (35)
tbioyr (85)
wnpnfiv (55) -> tehat, ttbuzrh, jfieeor
ejxib (53)
htpblzv (83)
dgdtt (155) -> qface, yhvndwy
weyfsg (53)
aodoc (91)
vmeubf (759) -> sygjhzp, ilhib, ldgyqh, uewdyd, skmbdhz
pwetqid (13)
pudso (45)
ibjdru (136) -> dzqqgbm, qivxs
rtgobsq (59)
kqiuy (81) -> ffuqr, rplcrt, gmuwpyi, zsukqjo
gfszte (23) -> pxgkg, zehkwy, pwnxw, uqfbnlo
ngxtfhu (25)
fphmu (62) -> jpvxzcn, xvzinl, pvyvx, lxgvhy
yxzlpnj (85) -> iyfyi, jhcwkl
khixdho (46)
pjjmau (353) -> hktzoq, oigsk
ttofoep (88)
fhycptc (98)
nsghrq (105) -> bvmgrs, bsfygp
hmdxion (30)
nsbzfgy (167) -> mplhwo, qvdid
hngao (361) -> olhfbr, qgxgzo
iitbuxz (1186) -> eexmf, emuwzd, zzbad
ywnsmem (246) -> qjuuu, ohuvsf
qjsvs (66)
uuyfecv (9)
uafhv (223) -> azmneyd, mmpnppi
aocfuj (91)
kaghlc (34)
eionkb (1079) -> hxmcaoy, sybpg, jfhqrla
hzhcl (127) -> vgegr, lklqxg
ssnhc (84)
ttfyrk (2158) -> xnxsdq, ffgzg, tvrxaw
nvfqmkw (96)
qrrvi (18)
ajcbzv (55) -> jjhrmi, jljjai, afbzsz
ydiicdl (93) -> iqbdxb, fpgyyu
eyxccr (44)
gdkjoit (56)
urktg (196) -> pxgcbfi, lacddy, hvisx
wuclmu (64)
rosfnb (26)
osjsm (87)
kgoyufq (133) -> holen, gjctf
kihqh (80)
xjyyfe (25)
gyfbgkr (16) -> gyoqtcg, lovox, srzfd
bidhw (89)
wfpzhfz (78) -> zyfwjxs, evdwf
rnyndr (149) -> kklbcs, ygkdmh, cifdyio
xqncgyu (25) -> nzhqepw, satjdgz
hvmlb (141) -> qwxwd, huvihu
txwzysl (96)
suuhqpd (48) -> ccpnopa, lqlyf, fxpoal
djviima (31) -> qyhvc, kjoru, myopc
ddguar (116) -> adbxp, jcise
wptyd (87)
obbpd (24)
anoxh (63) -> hfmaqp, ggfmiv
llgbz (167)
mhxheb (167) -> rkfspx, uatlbrq, cvnrr, bwpeux
yybnbso (89)
lxgvhy (99)
yffpvf (1698) -> pwoyfeh, zklbfdg
ttvfha (156)
tocvooe (99) -> fqqyipa, zihpcn, wzqanwj, wajnseu, bnevesk, wwxak
taxrkif (52)
rvixnmq (376) -> fyouz, nsnqedk
uhwnr (60) -> zjzgs, mpijr
djvfa (18)
rjmuly (53)
pnhpv (227)
sjaax (190)
amtayi (29) -> qsvbb, scxdo, inlrm
vbmyyrh (142) -> uwjowb, naekrk
gomcbqb (203) -> lofayaa, iltoh
oijwjli (37)
wajnseu (20) -> kxyfb, vmboh, zguzlx
hghjsk (348) -> fixwkec, gcowt
dzqqgbm (10)
guvke (19) -> brjgwq, kejtzg
jpvxzcn (99)
mplhwo (70)
dblmcye (325) -> bffnszc, zxgrq, ngxtfhu
ahbcl (178) -> hebhue, edlved, tafhilv, iblvki
liznr (50)
pwoyfeh (47)
jdiczst (37)
ejvipa (38) -> kpayh, uzvsml
oherzyz (53) -> yhxlzc, fkwbo, ziyyc, dlfmj
kivyltn (303) -> vxede, pjazwiy, ruozk, sydjg
szcmb (176) -> bjyraf, bvypab
ofxzyhr (22)
xmzzrgs (266) -> aewmad, jefjzvl
gdrxgji (12)
ziyyc (91)
wgqpt (29) -> evcveie, ccter
yykkph (63) -> gyfbgkr, fghxbc, qswoy, gomcbqb, tubhp, zdqmuey, gxddhu
yoxetv (1724) -> eeziziu, kaghlc
xqpfvwx (59)
fxaglf (49)
shjxje (56)
cdlzi (1615) -> wtqxei, mhxheb, nuxxmd
zytau (43)
ghakp (232) -> sagyrje, fxaglf
lbhlxqa (76)
bchixdc (431) -> khdbe, uuyfecv, pnouux
olhnx (1796) -> vymmkdf, qfcetm, atbiby, tcpduh, ymeoz
bvypab (7)
hregcx (66)
aucjw (62)
bmqhvfv (40)
fpfpv (1564) -> fxlbc, alhlvth, yhfpq
lzypz (220) -> rnqgy, csyiik
ujjoydl (38)
rfcbs (197) -> oajdx, yeaic
cmdizw (31) -> ydzibri, syliku
iiqzvha (1325) -> hnedp, iwicpur
zdqsmv (91)
neywe (59) -> lmlsog, svanha, sadnqcp
teyakvf (89)
inlrm (56)
kpayh (34)
spwqxpy (79)
ofnewz (83) -> pryhgj, tcjqw
knqxdq (63)
jtfylv (31)
jhyjqxq (363) -> jlofqwz, bhfui
kmfsmp (59)
kskts (115) -> gdkjoit, lmkwafp
hktzoq (38)
tajfmq (30)
zdxscz (72)
pywmbis (81)
yhsmjfq (29)
kzkfcn (10)
mieqti (16)
mxwbp (235) -> fggyk, mefmo
thrvlt (81)
wqoae (12)
yivjj (62)
aumrixf (40) -> ifualyn, kgqzrt, mhjeza, wfvjnxf
gfigt (211) -> iiugq, zgfqdv
cepxc (38)
vzxktth (76)
locto (240) -> oginzo, twgjdmg
vopqzha (10) -> kglsx, qsjqlp, flkkr, fbpbs
lxwvf (72) -> ixxww, mxnlv, waqca
zuwaw (84) -> tbaads, xjadrfg
oothjv (71)
tubhp (141) -> uftnfv, vgemekb
wywxu (92)
uwjowb (70)
pwzsq (64)
eexmf (130)
ldgyqh (30) -> mriqcjy, khgvmj
ewswf (307)
tbaads (28)
rxsihsa (91)
dtmbf (50)
tzhwvzt (89)
qivxs (10)
nfucnzx (68) -> nvfqmkw, asozcan
znwmvr (63) -> ymataqq, etfbuu, wbqeo, gcydgf
kejtzg (88)
eukgf (112) -> rdvciwk, ulchkal
skpux (146) -> vwftcva, perzy
uewdyd (152) -> uamqx, gnughzp
dnynny (14)
guyrnpn (413) -> bqywl, cvcblhv, ovpzt, qlwhsix
lnmhw (83)
llkaoeh (68)
ydzibri (78)
gaashgh (307)
vbmqj (91)
uqmgmst (1336) -> kdeqm, znwmvr, iftyxdd
tijwlva (187) -> gxsxqwt, yjrfr
fozagvz (37)
tafss (38)
dckbvlg (12)
oncexf (26)
jkkwtd (142) -> jhwrcb, pbkplz, momda
evqibrc (66)
mrwbv (68)
hrokzl (59)
soirl (206) -> uqjfarv, myqre
ubuge (186)
rtutzu (73) -> crcrimv, fxrijc
pmefov (983) -> gibdxij, whvvemg, lfsvtih, ckmftuc
tnqram (7095) -> kxwbdvm, rhcxf, nihiexp
dzfclsm (186) -> yxemuyq, mptovq
pjazwiy (10)
mnqii (16)
uqjfarv (8)
xnxsdq (76) -> ukqmhyc, teduvv, lmhamlz
lnwcryv (62)
lovaf (94) -> osjsm, wptyd
rhcxf (84) -> jgrsa, egtruqh, kqiuy, aduikk
evcveie (84)
lyhlx (52)
zjzgs (88)
brjgwq (88)
wnfqsa (138)
balknnd (377) -> kebhn, bamxvq, xaogy, fefuzon
ayqbj (64)
zynpp (67) -> qahzrif, rlfqf, hekibe
szglq (194) -> iezyfwf, jmypc, rsizei, jpyvpw
ocppbp (26)
wuknah (36) -> kczlit, nggtuh, umgch, xkxqc
ifnkl (324) -> kabqu, ujjoydl
eqkot (33) -> aljgr, lnwcryv
yjrfr (20)
cvdows (11)
lybaepp (91)
jxaorvd (343)
zkpfzio (145) -> vrbcn, kasaf, hhqmsd, idrror
evbtz (297) -> ifwmfdm, rylaxjf, oylvq, locto
srnnjbb (51) -> zxygs, rkwquj, owxawf, ahfdt
viqvtzw (117) -> gmirjhi, aucjw
nsnqedk (18)
wiapj (55) -> djzjiwd, lsire, vlbivgc, xdctkbj, ygvpk
jhwrcb (90)
zdnypzo (66)
eqpuuzs (149) -> gisrnfs, rpqbv
kevlq (156) -> xkzvo, xxego
fxpoal (59)
dlfmj (91)
pbkplz (90)
qdqtw (15)
qkicc (42)
axgndac (156) -> zdnypzo, sglkjsh
gptyqwd (91)
cwkdlil (46)
tmoui (91) -> ceeotg, ejxib
xxmtvr (154) -> ofxzyhr, dzxpqj
zijzutq (90) -> wuclmu, citaywz, ljjyy
xtaoisd (63)
szcozjr (215) -> bgehlas, pocvrcs
jfhqrla (155) -> miwst, elgtk
nsbnixe (77)
haqaohl (15)
eeune (31) -> ysafyj, vlyof
vgexqw (71)
ghapm (94)
swcvn (1105) -> sjaax, szcmb, klovr
lmhamlz (25)
louebj (29)
fjcobs (6)
holen (27)
qryui (49)
olhfbr (14)
wcmyn (61)
dkmkdfd (173) -> vvkkkpb, ulragq
odqns (87)
xwjmsjr (97)
rqrhrnz (66)
uamqx (5)
rkwquj (92) -> gvamhux, dtfdn
ncmad (23)
lefxyzt (56)
qcmnpm (335)
kgqzrt (93)
ttoer (916) -> howlyws, wuknah, bjvuicy
rahgf (25)
mdqeh (17)
ghdbwu (863) -> ifbhg, nqicerc
thbwh (832) -> rfcbs, hioofm, jspui
gfjsie (90)
mmfuve (51)
vzcklke (80)
bffnszc (25)
saddwx (1569) -> bxmcg, vmpnccn, pjjmau
bmnsmqz (14)
qkawtfu (111) -> ujuunj, iugsida
edlved (11)
pxgcbfi (68)
gekygl (247) -> zafggcz, rbuwrpw
egtruqh (389) -> ocppbp, gwbfat
rvpxob (47)
ympbbx (1243) -> spwqxpy, iedfk, ugcccv, djviima, xgfad
pxkypf (54) -> hblux, nemrt
qqllir (25)
tehat (96)
gibdxij (121) -> ohsvn, wkamonm
itlwpm (57)
rfknc (9)
ekvdv (44) -> kpvbt, nnmayb
gwqgewp (99)
cvnabd (14)
dskuj (165) -> slahk, zytau
yqgesx (175) -> zcomxf, bmqhvfv, hwdtvvc, laopkn
vljjqbw (55)
qmati (48)
afyxhh (87)
ubxvdq (90)
ckegba (32)
sysdxvb (66) -> zmkwnv, pcecbrn, hregcx, muptknj
nihiexp (930) -> vopqzha, uytsdd, uevxbyn
myqre (8)
nwupf (109) -> cuprzhk, ozhydny
tzrqqk (79)
pwvahdb (85) -> yybnbso, tzhwvzt
gcowt (84)
ohsvn (19)
zhohes (46) -> wrlkfij, xlkwyg
ripilxo (299)
vwvowk (1293) -> dgosy, zvgsa
bmlkhaf (53)
kztkif (55) -> mtflvu, oothjv
ycpcv (72) -> izdhn, yzhvrx, eionkb, eadvs, jkkqxfr
zyfwjxs (31)
esphpt (85) -> emwblax, dfiyju, qryui, eydak
jsmde (40)
zguzlx (90)
pcckqq (17)
hxmcaoy (235)
taacpu (57)
ilhib (60) -> pubtxq, lpsafeq
myookpi (54)
olrgu (97)
swnafht (44) -> lbxdtms, jensj, zkpfzio, jobwpao, jxfimbl
"""
//part 1
def map = [:]
input.eachLine {line->
if (line) {
def group = (line =~ /(.+) \(\d+\)[ >-]*(.*)/)[0]
def name = group[1]
def balanced = group[2]
if (balanced) {
map.put(name, balanced.split(', '))
}
}
}
map.each {k, v->
if (!map.find {k1, v1 -> v1.contains(k)}) {
println k
}
}
println 'done'
//part 2
class Tower {
String name
def holding
int weight
String toString() {name}
}
def towers = []
input.eachLine {line->
if (line) {
def group = (line =~ /(.+) \((\d+)\)[ >-]*(.*)/)[0]
towers.add(new Tower(name: group[1], weight: new Integer(group[2]), holding: group[3] ? group[3].split(', ') : null))
}
}
def findWeight
findWeight = {tower, allTowers->
if (!tower.holding) {
[tower: tower, weight: tower.weight]
} else {
def towersAndWeights = tower.holding.collect {h1-> findWeight(allTowers.find{it.name==h1}, allTowers) }
def weights = towersAndWeights*.weight
if (weights.findAll{it==weights.max()}.size() != weights.size()) {
println "Unequal weights: ${towersAndWeights} for $tower.name"
}
return [tower: tower, weight: tower.weight + weights.sum()]
}
}
towers.each {tower->
findWeight(tower, towers)
}
println 'done'
def input = """
yxr inc 119 if nev != 6
piw dec -346 if tl != 4
cli inc 165 if nev >= -5
nev dec 283 if xuu > -2
tem inc 745 if qym >= -9
xuu dec -104 if cli == 165
h dec 192 if u <= 5
ln dec -616 if ej > -7
tem dec -555 if ar > -5
tem dec 687 if tl > -8
h inc 120 if re < -8
bq dec -410 if ej > -4
re dec 476 if tem == 613
ej dec 686 if cli != 163
ar dec 676 if tl > -6
nfo inc 633 if s == 0
tl inc -471 if tem > 607
bb inc 157 if piw > 342
cli inc -830 if piw != 342
piw inc -645 if ar >= -674
bq dec 304 if piw != 356
u inc -274 if bb != 147
yxr inc -520 if ec >= 1
ec dec 631 if bb > 147
ar dec 732 if s >= 0
foz inc -617 if bb == 157
qym dec -197 if ej == -686
bb dec 111 if h <= -199
ln dec -585 if re != -476
foz dec -181 if nev < -280
foz dec 989 if xuu != 106
ec inc -930 if ec <= -626
foz dec 862 if s >= 5
tem inc 241 if xuu == 104
ar dec -460 if h >= -201
cli inc -317 if cli == -665
bb dec -483 if h > -194
tem inc -718 if tl <= -466
ln dec 362 if hb == 0
qym inc 95 if hb > 3
piw dec -463 if ln < 246
xuu inc 159 if s <= 5
ec inc -710 if cli < -977
bb inc -98 if xuu >= 260
qym inc 159 if bb >= 540
acc inc 610 if fe <= 9
ar dec 381 if ej < -695
acc dec 807 if nev > -284
foz dec 926 if h < -188
tl inc 279 if ar != -957
ec dec -39 if acc < -191
u dec -110 if piw == 346
ej dec 980 if ar == -948
ln dec -165 if hb < 2
nfo inc -370 if tem > 128
ar dec -886 if ar < -947
bb dec 624 if ej == -1666
tl inc 36 if ec > -2227
yxr dec 320 if cli <= -976
tem inc -808 if ar >= -52
cli dec 213 if h >= -198
ej inc -141 if nev < -281
bq inc -736 if yxr > -211
u dec -742 if nfo > 258
bq dec -727 if ar >= -64
u dec -248 if bq > 89
xuu inc 431 if yxr > -203
hb dec -407 if hb >= -7
ar inc 789 if acc >= -197
yxr inc -753 if piw <= 350
piw dec -973 if yxr >= -956
xuu dec 457 if ec <= -2228
bq inc -201 if bq >= 97
bq dec -923 if ar == 727
cli inc -560 if piw < 1329
ej dec -150 if ar != 733
h inc -198 if nev == -283
u inc -388 if piw == 1319
hb inc -212 if s < 8
xuu inc -988 if ej < -1653
ec inc 58 if re >= -485
hb inc -126 if xuu < -741
ar inc 534 if nev == -273
fe inc 668 if s <= 7
tem dec 25 if h >= -390
u inc -632 if tl > -198
u dec 721 if bq > 813
piw dec -299 if foz >= -2348
hb inc -407 if ej > -1663
h dec 563 if foz == -2351
bb dec 362 if fe != 670
nev inc -512 if bb != -437
fe dec -419 if yxr < -948
tl dec 576 if ej > -1665
acc dec -510 if xuu > -759
s dec -108 if u < -906
xuu dec -407 if xuu < -748
yxr dec 771 if bb > -454
u dec -879 if tem != 110
bq inc -759 if u < -27
s dec -295 if qym < 364
qym inc 807 if xuu == -344
h inc 545 if hb == -338
ej inc -896 if s != 394
s dec -961 if yxr > -1723
s dec -142 if nev != -799
s inc -692 if ln != 427
ar dec 152 if tl == -763
acc dec 304 if piw != 1328
ar inc -532 if piw != 1324
bq inc 124 if tem < 109
h inc 480 if nfo == 268
xuu dec -291 if ej >= -2556
hb inc -56 if nfo >= 257
ar dec -656 if bb > -447
tl dec -458 if ec <= -2167
xuu inc -100 if hb <= -397
nev dec 384 if foz <= -2344
acc dec -779 if acc == 9
u inc 949 if h != -416
xuu inc -865 if nev < -1182
nev dec 317 if bb < -434
foz inc -786 if bq > 51
xuu inc -901 if ej >= -2557
nev dec 750 if h != -398
qym dec 783 if re != -480
bb dec 54 if cli < -1752
tl dec -803 if yxr < -1724
s inc 690 if xuu != -954
piw inc -667 if s != -151
foz dec -946 if cli <= -1757
h dec -885 if re == -486
ar inc -765 if re < -468
h dec 340 if ec != -2170
fe dec 440 if tl > 492
re dec 398 if hb != -384
xuu inc -49 if fe > 641
s dec 623 if qym != 375
piw inc 429 if ec == -2174
ej inc 747 if hb != -394
xuu inc 761 if nfo > 255
re inc 519 if yxr != -1716
nev inc 863 if tl <= 499
qym inc -357 if foz > -3138
tl dec 186 if u < 915
s dec -442 if nev < -1373
bq inc -999 if ec == -2174
cli inc 735 if acc > 781
ar dec -983 if nev >= -1389
cli inc 285 if u < 917
xuu inc -970 if h >= -747
bq inc 716 if tl < 310
xuu dec 984 if bb > -503
h inc -881 if ej >= -2546
u inc 719 if fe >= 646
u inc 396 if hb > -393
ej inc 734 if acc != 784
fe inc 581 if re <= -350
piw dec -69 if hb < -384
ec dec 540 if acc < 798
cli dec -615 if foz <= -3130
ln inc 261 if foz <= -3130
acc dec 739 if ar > 1065
ln dec -520 if qym > 19
re inc -260 if bq != -230
ln inc -28 if h > -750
hb dec -794 if s == -325
nfo inc 79 if ln < 1176
acc inc 173 if ec == -2714
yxr inc 756 if re > -616
re inc 415 if fe >= 1219
hb dec -701 if u < 1638
xuu dec -325 if re != -200
ln dec -552 if piw != 1157
yxr inc -568 if qym >= 17
tl dec 756 if ec <= -2712
nev dec 430 if xuu <= -1219
bq dec -580 if yxr >= -1533
ej dec -357 if bb >= -493
ec inc 722 if ej >= -1822
tl dec 168 if nev == -1813
bb dec -393 if foz >= -3130
cli inc -298 if s == -328
h inc 885 if yxr != -1536
nev dec -188 if cli < -427
yxr dec 41 if cli > -416
qym inc 748 if u == 1632
re inc 457 if nfo > 339
yxr inc 781 if piw < 1153
qym inc 628 if cli != -417
bq inc -476 if piw < 1142
bb dec 547 if nfo >= 341
s dec 590 if piw == 1150
piw inc -804 if nfo != 342
ar dec -838 if xuu == -1226
ec inc 224 if h > 132
ec dec -963 if ln >= 1731
xuu inc 109 if u <= 1638
s dec -191 if fe >= 1220
ln dec -718 if h >= 133
u dec 46 if nev >= -1811
nfo inc -56 if s < -718
nev dec -346 if ar != 1905
h dec -501 if hb != 306
acc dec 651 if bb >= -1039
xuu dec 714 if ar > 1905
qym dec 304 if piw <= 1157
tl dec -62 if foz < -3138
h inc 448 if qym != 1095
hb inc 780 if tem != 112
hb dec 332 if tem <= 114
s dec -447 if acc != 226
s dec -560 if ej > -1829
nev dec -435 if piw == 1150
nev dec 259 if piw < 1155
tem inc 293 if nfo == 286
hb dec 656 if s < 284
hb inc -484 if acc < 213
ln inc 831 if s < 280
hb dec -394 if ec != -1771
nfo inc 124 if h != 628
ln dec -675 if yxr < -754
bb dec -69 if hb == 494
ln inc -139 if re <= 261
nev inc 325 if yxr >= -753
tl inc 551 if foz != -3137
bb dec -598 if nfo != 413
qym inc 771 if s >= 271
tl inc 903 if ej != -1820
fe inc -388 if re != 250
ln dec -163 if ej != -1827
nev dec -209 if re <= 261
bq inc -59 if h == 638
ej inc 793 if yxr < -749
ec inc -224 if s >= 276
ln inc 895 if foz <= -3132
acc dec -681 if ec < -1989
tem dec -161 if hb == 493
ar dec -436 if nfo >= 408
u dec -56 if re != 250
nfo inc -497 if hb < 495
ec dec -874 if acc > 911
bb dec 988 if xuu == -1838
nfo dec -257 if fe > 836
ec inc -332 if foz >= -3146
u inc 697 if u <= 1691
ej dec 777 if bb <= -440
nfo dec -99 if bq > -277
acc dec 552 if tem <= 573
fe dec 74 if ec == -2317
qym dec 829 if foz >= -3146
bq dec -149 if ec <= -2324
u dec -99 if hb == 493
yxr dec -546 if tl > 288
u inc 261 if cli >= -412
ej inc -341 if tem < 574
ec inc -83 if ar <= 2346
ec inc 847 if xuu <= -1830
re dec -364 if xuu < -1839
yxr inc -483 if ln <= 4033
tl dec 965 if tl == 286
re inc -63 if tl >= -674
cli inc 708 if acc < 352
xuu dec 494 if ej > -2154
tl inc 8 if foz > -3131
ec inc 983 if nfo == 170
bb inc 486 if cli < 292
ar dec -461 if ec >= -586
yxr dec -852 if hb < 500
u inc -874 if acc < 355
xuu inc 883 if re > 266
xuu dec 809 if ec == -577
tl dec 144 if ej > -2145
u inc -363 if fe >= 839
bb inc -194 if piw >= 1150
ln inc 780 if fe != 835
cli inc 213 if re >= 256
xuu dec -718 if hb >= 491
yxr dec -730 if u < 1251
nfo dec 1 if hb > 491
ar inc -556 if nev > -1085
ej dec -275 if bq < -128
nev dec -578 if foz != -3137
h inc -391 if h == 638
foz inc -291 if bq >= -134
bb inc -123 if fe == 840
tl dec 72 if bq == -133
qym dec -155 if yxr < 831
re inc 515 if s < 289
nfo dec -313 if ar >= 2242
cli dec 486 if tl < -904
bb dec -844 if ln >= 4810
hb inc -551 if tem == 565
ec inc -28 if yxr <= 828
cli inc -673 if h >= 241
re dec -937 if bb > 562
ec inc 214 if bb != 571
piw inc -142 if ar > 2240
ar dec 750 if tl < -898
re dec -844 if ej != -1877
bq inc -17 if qym <= 1200
acc dec -154 if foz > -3429
piw inc -13 if cli > -175
cli inc -374 if acc > 497
acc dec -751 if ln != 4821
xuu dec 821 if bq < -142
nev dec 867 if bb < 565
qym dec -883 if hb != -65
h inc -289 if ln <= 4818
hb dec 839 if s <= 282
cli dec 662 if ar > 2253
nev inc 975 if acc < 1249
foz inc -459 if nfo != 479
tem inc 721 if ar < 2244
hb dec 645 if bb >= 561
cli dec 973 if bq <= -148
qym inc 937 if piw <= 1003
bq inc -548 if tem != 561
nfo dec 98 if nev != -1082
u dec 789 if bq >= -688
u dec 389 if acc <= 1258
bq inc 818 if qym <= 3020
acc inc 224 if nfo < 492
ln inc -739 if re >= 2547
re dec -364 if fe != 843
piw dec -836 if piw > 991
foz inc 484 if cli < -1519
ln inc 869 if hb < -1533
piw dec 872 if yxr <= 834
bq inc -1 if bq >= 113
tl inc -649 if u >= 854
ec dec -447 if bb == 566
ar dec -702 if u < 861
s inc -445 if bb <= 574
xuu dec 323 if cli <= -1523
foz dec 589 if ln <= 4947
s inc -399 if nfo != 484
cli inc -704 if acc < 1481
yxr dec 712 if hb != -1534
nev dec -347 if nev <= -1087
ln dec -801 if foz > -4480
xuu dec -549 if h >= -47
re dec 127 if xuu > -2692
hb inc 96 if fe <= 845
acc dec 159 if hb >= -1451
bq inc 754 if u >= 865
u inc 23 if yxr > 106
re dec 940 if nfo <= 489
qym dec -599 if ar >= 2948
qym dec -481 if nfo == 482
nfo inc 767 if cli <= -2225
bb inc -174 if ec == 56
tem inc 615 if ec <= 55
tem inc 845 if re > 1848
hb inc 940 if tl > -1543
bq dec -892 if xuu >= -2686
bq inc 996 if bq >= 117
re dec 456 if u < 885
ln inc 879 if s < -568
s dec 605 if ar >= 2941
foz dec 585 if hb > -1449
ej inc 980 if ej <= -1866
re dec -409 if foz <= -5059
tem dec -394 if nfo != 476
yxr dec -765 if ej <= -888
ec inc -540 if fe < 843
cli dec 758 if foz != -5056
nfo inc 846 if re > 1802
re inc 800 if nev < -1078
nev dec 2 if yxr < 883
piw inc 282 if acc >= 1313
h inc -993 if ln <= 5741
ar inc 594 if tem <= 1804
h inc 502 if h >= -45
xuu inc -73 if acc <= 1326
re dec 116 if piw >= 1243
bq inc 62 if u <= 880
acc dec 166 if fe <= 846
ec dec -441 if re > 2612
re inc 214 if re != 2602
u dec 410 if s < -1160
ln dec -701 if piw <= 1244
tl inc -126 if nfo <= 1330
fe inc -861 if tl <= -1669
ar dec -998 if yxr <= 882
fe inc 629 if ln > 6445
hb dec -407 if foz <= -5071
s dec 654 if acc <= 1161
bb inc 304 if fe <= 615
xuu inc 979 if cli == -2969
cli inc -973 if fe == 607
cli inc 859 if tl <= -1665
tl dec 257 if foz > -5064
bq dec -253 if hb != -1446
s inc 82 if fe == 611
h inc -462 if xuu == -2761
nev dec 231 if bq <= 1123
fe inc -719 if re == 2817
nfo inc 553 if ec != -484
nev inc -457 if nfo != 1318
fe inc -936 if piw <= 1247
nev inc -615 if ar > 4539
fe inc -267 if ec >= -475
qym dec 336 if tem > 1802
ej inc 442 if foz > -5064
qym inc 864 if h < 0
nev inc 565 if foz >= -5057
tem inc 257 if ej <= -457
hb dec -202 if piw > 1243
bq dec -192 if ar != 4550
foz dec 374 if ln >= 6454
tem inc 381 if ej != -454
ec dec -630 if ej == -438
foz dec -821 if acc > 1161
nev dec 903 if bq != 1315
re inc -677 if ej > -448
re inc 588 if u < 473
xuu dec 114 if foz > -5062
acc inc -804 if ec > -492
nfo inc 728 if cli == -2120
xuu dec -258 if foz > -5064
tem dec -370 if ln < 6450
acc dec -717 if ej != -442
ec dec 262 if qym > 4613
nev inc 31 if u >= 468
xuu dec 84 if re == 2728
u inc 457 if xuu != -2697
acc dec 251 if acc != 1068
tem dec -745 if acc <= 1076
tl dec 581 if tem <= 3304
s dec -730 if hb <= -1444
ec dec 409 if tem < 3293
acc dec -884 if acc >= 1077
acc inc 160 if bb < 706
ar dec 110 if nfo != 2058
ej dec -349 if fe < -1038
s inc 681 if s >= -1096
cli inc -712 if fe < -1043
nfo dec 693 if u != 924
ln inc 170 if xuu != -2702
bb inc 759 if tl > -2518
ln inc 647 if tem > 3296
ej inc -35 if re >= 2734
qym inc 710 if nev < -3258
xuu inc 304 if fe == -1052
piw dec 237 if xuu >= -2707
tem dec -683 if hb <= -1441
piw inc -297 if re >= 2733
nfo dec -836 if bb == 1455
s inc 901 if u <= 921
bb inc 780 if bq == 1307
xuu dec 467 if yxr >= 878
acc dec -24 if h < 6
ec dec 412 if foz >= -5054
ec inc -990 if fe == -1047
nev dec -940 if nfo != 2208
ar dec -670 if qym == 5339
foz inc 391 if hb != -1438
yxr inc -86 if acc <= 1260
qym dec -36 if piw < 1008
nev inc -21 if yxr == 788
piw inc 581 if hb == -1446
bb inc -355 if bb != 2232
yxr dec 238 if ar < 4441
tem dec -974 if cli < -2826
xuu inc -237 if s <= -406
ej dec 51 if foz <= -4661
cli inc -416 if h < 6
fe inc 23 if s < -407
bq dec 598 if ej <= -152
cli inc -15 if piw > 1584
foz dec -781 if nfo < 2209
u inc 17 if bb < 1883
xuu dec 799 if ej >= -157
bb inc 914 if tem != 4960
foz dec 853 if fe != -1024
piw dec 628 if nfo != 2199
qym dec 303 if xuu >= -4207
bq dec 854 if yxr >= 549
hb inc -123 if xuu >= -4211
bb inc 767 if nev <= -2318
s inc 482 if nfo > 2196
yxr inc 185 if bb < 3570
yxr dec 683 if bq != 444
fe dec -316 if ec >= -1733
bb inc 368 if s < 78
tl dec 132 if yxr != 63
yxr dec 357 if bq == 453
fe inc -256 if ec > -1744
xuu inc -193 if ej <= -142
xuu dec -605 if cli != -3263
ar dec 571 if u != 945
nfo inc -430 if nfo < 2209
hb inc 236 if hb > -1564
ar dec -460 if fe < -1278
tl dec -127 if bq > 449
s inc -343 if nfo > 1764
fe inc 761 if nev < -2326
piw dec -136 if xuu != -4391
cli dec 639 if yxr >= -301
tl dec -524 if ar != 4890
ln dec -75 if ln < 7269
ln dec -376 if tem > 4956
yxr inc -317 if yxr >= -297
tem inc 593 if ej == -149
cli dec 297 if ar < 4894
ej dec -576 if xuu <= -4395
bq dec -681 if s >= -277
ec dec -404 if u >= 939
xuu dec -82 if yxr >= -292
nev inc -661 if u <= 954
yxr inc 941 if foz > -3896
ar dec 559 if ar < 4895
re inc 470 if tl <= -1981
qym inc 423 if hb <= -1564
ec inc -353 if cli >= -4208
qym inc 166 if nfo < 1770
ln inc 110 if h > -4
bb dec 459 if nfo < 1776
tem inc -466 if ej > 418
tem inc -223 if fe < -1271
bb inc 361 if qym > 5650
fe dec 698 if nfo <= 1768
h inc -761 if acc >= 1258
tl dec 307 if cli < -4195
ec dec -428 if bq == 1134
ec inc 200 if u == 945
fe dec 999 if re >= 3198
ej dec -150 if ej != 429
ar inc -19 if bb < 3822
cli inc -271 if piw == 1721
piw inc -317 if nev <= -2985
xuu dec 732 if xuu == -4393
ar dec -738 if bq != 1133
cli dec -925 if xuu >= -4400
tem dec -336 if acc == 1261
xuu dec -396 if tl < -2291
tem inc -726 if xuu < -3995
xuu inc 586 if yxr < 643
nfo inc 554 if re >= 3194
ln dec 425 if s < -276
s inc -678 if h >= -2
acc inc -669 if u == 945
nfo inc 136 if re <= 3207
nev inc -486 if fe > -2272
acc inc 146 if yxr < 650
bq inc 637 if u != 945
bq inc -562 if u < 949
fe dec -164 if tem >= 4128
ej inc -868 if ec > -1058
foz inc -646 if ej < -295
u inc 960 if bb < 3825
ln dec -6 if ln > 7826
bq dec 972 if acc > 723
piw inc 958 if fe != -2115
ln inc 179 if ln <= 7830
foz inc 206 if bb <= 3828
u inc -789 if bb > 3826
nev inc -597 if ln <= 8005
nev dec -112 if yxr <= 642
ej inc 670 if s <= -942
ec dec 623 if qym >= 5652
bb inc 35 if nev != -3470
u dec -50 if ej != 379
ar dec 952 if tl != -2306
tem inc -92 if re == 3192
yxr dec 866 if qym == 5652
nfo inc -457 if bb != 3876
tem inc 395 if fe != -2125
acc inc -37 if piw > 1711
tem dec -647 if fe <= -2113
tem dec -546 if xuu > -3422
piw dec 219 if acc < 699
ar dec -392 if piw == 1502
s inc 330 if bq > -407
bq inc -508 if nev <= -3473
ln dec -333 if cli != -3545
ln dec 42 if ec > -1683
acc inc -247 if ln <= 7966
foz inc 563 if tl <= -2287
ej inc -390 if ej <= 384
acc dec 659 if acc != 443
xuu dec -293 if ej >= -18
qym dec -169 if yxr > -217
cli inc 778 if ln >= 7960
xuu dec -179 if u != 163
nfo dec 600 if ej == -11
ar dec 261 if piw > 1492
re inc -889 if yxr > -228
h inc 37 if xuu != -2943
ln inc 148 if tem > 5731
bq dec 564 if piw == 1502
piw dec 822 if ar != 4242
xuu inc -35 if nfo != 1402
u dec -284 if cli > -2777
ar dec -521 if yxr >= -225
bb dec 412 if yxr <= -222
piw inc -199 if tem != 5715
bb inc 331 if qym < 5653
bq dec -359 if ec > -1687
acc inc 298 if bq == -605
bq inc -69 if tl < -2305
h inc -626 if h == 8
qym dec 609 if s <= -619
fe inc 165 if nev < -3456
xuu inc 690 if ej != -15
ec dec -280 if tl < -2294
qym dec 829 if bq != -610
xuu dec 888 if piw > 489
u inc 81 if acc > 80
qym dec 247 if h > -9
tl dec -558 if bq < -604
nfo dec 692 if ln == 7963
acc inc -23 if tl > -1735
xuu dec 478 if fe == -1950
s dec 551 if tl < -1736
ec inc -479 if fe == -1950
s dec -17 if foz > -3328
piw dec 351 if acc == 84
bq dec -437 if re == 2309
qym dec -808 if cli > -2774
h dec -390 if tl == -1738
foz dec 676 if ej >= -4
re dec 891 if bq != -167
bb dec -191 if re != 1418
nfo inc 380 if s == -1155
ec inc 69 if u < 531
nev dec -690 if s >= -1164
s dec 571 if bb >= 3776
re dec -224 if hb <= -1563
bq inc -252 if piw < 131
yxr dec -488 if tl == -1741
re inc 755 if re > 1638
bq inc -208 if qym != 4769
qym inc 695 if hb == -1563
fe inc -157 if piw < 121
xuu dec 579 if acc != 79
ln dec -262 if nfo > 1086
ec dec 235 if tl >= -1739
hb inc 188 if ej >= -13
s inc 124 if cli >= -2760
ec dec -643 if nfo != 1088
re dec -934 if fe > -1959
ej inc -58 if s == -1727
qym dec -558 if tl >= -1746
ln inc -555 if ec != -1402
foz inc -833 if cli != -2774
ln dec -589 if cli == -2775
tl inc -906 if re < 3334
tl inc 552 if fe < -1940
cli inc 976 if re >= 3322
bq inc -101 if xuu >= -3301
nev dec -217 if tl < -2087
ej dec 945 if u > 519
piw inc 447 if fe >= -1957
h inc 905 if piw <= 586
hb inc -995 if u == 521
acc inc 713 if tl >= -2100
ar inc -936 if ec <= -1400
tl inc 199 if u < 530
u dec 584 if ar != 3829
tl inc 787 if fe > -1954
ar inc 631 if qym >= 5325
tl inc -993 if ln < 8232
bq dec 900 if yxr > -231
u dec -226 if ln < 8235
yxr inc -966 if bq <= -1520
ar inc -83 if bq < -1520
bq dec 439 if bq == -1528
ej inc 608 if h < 1294
yxr inc 140 if nev >= -2567
qym dec 685 if nev >= -2566
re dec 957 if hb > -2378
tem dec -851 if bq <= -1966
nfo dec 421 if qym < 4649
acc inc 473 if ar == 4383
tem inc -407 if qym >= 4642
s dec -949 if tl >= -2103
h inc 549 if s >= -784
qym dec -311 if xuu >= -3308
s dec 751 if yxr > -1060
s inc -438 if ar != 4386
fe dec 734 if s <= -1965
ej inc 989 if hb == -2376
tl dec 84 if yxr > -1055
re dec 919 if ar < 4393
ec dec 314 if qym >= 4657
acc dec 572 if piw <= 579
bq dec -742 if tem >= 6166
ln inc 891 if qym < 4651
piw inc 125 if s >= -1956
nev inc 530 if piw != 577
ln inc 703 if nfo <= 670
bb inc 741 if foz >= -4155
ln inc -429 if u >= 163
ln dec -47 if nfo > 678
cli dec 217 if bq < -1222
tl dec -485 if fe >= -2690
tl dec -948 if fe == -2684
nfo inc 786 if qym != 4642
bb inc 336 if re != 1455
tl inc -8 if nfo != 1455
hb inc 173 if bq == -1225
s dec -53 if piw < 581
bq inc 905 if h == 1842
acc inc -450 if nev < -2551
ar dec 241 if s != -1914
bb inc 671 if ec <= -1400
acc inc 895 if fe <= -2691
fe dec 776 if s == -1913
foz inc -104 if nev >= -2558
nfo dec 629 if hb <= -2201
u dec 531 if ec < -1404
hb dec -37 if yxr < -1049
foz dec -586 if h <= 1848
nev inc -895 if acc == 248
qym dec 475 if bb <= 4461
piw inc 773 if fe < -3459
nfo dec -142 if cli == -2008
hb inc 103 if cli != -1999
bq inc 795 if ln == 9390
re dec 82 if nfo <= 975
u inc -275 if u != 163
xuu inc -599 if acc == 248
ln inc -642 if hb < -2069
hb dec 874 if nfo == 968
bb inc -283 if ej != 640
bq inc -999 if fe == -3460
tem dec 670 if tem != 6174
bb inc 890 if re > 1369
xuu dec 880 if foz >= -3678
ar dec -702 if ej == 641
h inc -43 if nev != -3453
tl inc -803 if qym >= 4166
ej inc 583 if foz > -3687
piw inc -517 if qym != 4173
nev dec -258 if tl >= -1552
tem inc -18 if ln >= 9398
qym inc -463 if tem == 5497
nfo inc -279 if ln >= 9392
nfo dec 627 if ln > 9388
acc inc -544 if ej >= 1219
xuu dec 201 if foz < -3667
qym inc -353 if s >= -1905
xuu inc -927 if tem <= 5506
cli dec -347 if bb != 5065
tl dec -339 if hb == -2937
s dec 503 if fe > -3470
s dec -187 if acc > -306
hb inc 77 if ej > 1214
u dec 103 if acc > -296
s dec 620 if bb < 5072
fe dec -752 if bb == 5063
u dec 930 if ec == -1410
ec inc -235 if cli != -1661
bq inc -361 if cli < -1664
xuu inc -582 if s <= -2849
re dec 812 if acc <= -292
h inc -938 if cli != -1652
ec inc -830 if re > 560
ec dec -888 if ln < 9385
cli inc -520 if tem < 5506
qym inc -224 if acc >= -302
tl inc -399 if nfo >= 342
tem dec 154 if foz == -3671
qym inc 500 if nev < -3443
tem dec 603 if acc != -295
nev inc 227 if ar == 4844
fe dec 658 if s > -2857
bb dec 327 if xuu < -6498
s inc -204 if acc <= -294
s inc 393 if s <= -3051
foz dec -71 if ec == -2232
piw inc 247 if acc != -306
tl dec 749 if cli >= -2189
bb dec -17 if qym != 3996
acc inc 890 if bq != -524
ar dec -532 if re == 561
ej dec -406 if ej >= 1224
ar dec -82 if hb < -2857
ej inc -685 if u <= 163
nfo dec -354 if yxr < -1053
ar dec -346 if yxr >= -1048
ej dec -575 if hb > -2864
bq inc 220 if bq != -521
fe dec -843 if cli <= -2185
ej inc -819 if ln > 9390
cli inc 105 if acc != -290
bb inc -828 if hb > -2866
s dec -508 if tem != 4900
re inc 153 if re <= 566
piw dec 370 if foz <= -3602
nfo inc 987 if bb >= 3922
fe inc -10 if foz > -3607
nfo inc -687 if yxr > -1060
nfo inc -580 if nev == -3226
fe inc -661 if s <= -2149
tl inc -521 if h == 896
nev dec 891 if tem > 4891
hb inc -162 if cli != -2076
yxr dec 696 if nev == -4112
tl inc 754 if s <= -2145
bq inc -457 if re >= 706
re dec -926 if acc >= -286
u inc 630 if re <= 719
ej dec -635 if u > 791
ln dec 631 if ln != 9400
qym inc 470 if re >= 722
ej dec 419 if cli == -2076
foz dec -108 if tl < -1201
fe inc -162 if cli <= -2078
ar dec 385 if yxr == -1059
ec inc 695 if hb < -2852
re dec 535 if cli > -2071
ej dec 135 if bb < 3926
ej dec 13 if hb != -2860
ec inc 967 if ec < -1540
ar dec 713 if ar >= 5453
piw inc -38 if tem >= 4887
piw inc 664 if bq == -761
ar dec 767 if hb > -2863
ej dec 908 if re > 715
nev inc 905 if acc <= -291
nev inc 395 if hb < -2854
piw inc 850 if yxr > -1050
tl dec 290 if nfo == 61
re inc -770 if xuu < -6496
fe inc 828 if ar == 3978
fe dec -295 if ar != 3980
fe dec 431 if foz >= -3506
nfo inc -433 if piw == 1853
tl dec -744 if acc > -299
s dec -609 if bb <= 3919
ar inc 390 if ec != -1547
acc inc 404 if hb == -2860
nfo inc -17 if s < -2152
u inc 338 if h != 910
s inc 921 if s >= -2159
ec inc -49 if hb > -2863
tem inc -144 if tem >= 4893
nev dec -847 if qym > 3985
yxr dec -885 if ln < 8762
cli dec 10 if u == 1131
tem dec -592 if yxr != -159
ec dec -594 if re >= -57
tem inc 66 if u == 1131
foz inc -810 if u == 1131
tem dec 880 if u > 1126
bq inc -604 if acc == 108
tem inc 344 if acc < 114
foz dec -550 if ej != 1594
ar inc 849 if s != -1233
nfo dec -903 if u == 1123
nev dec -945 if ec <= -987
re dec 715 if nev < -1019
ar dec -879 if hb == -2860
tl inc 432 if bb != 3926
s dec 474 if re <= -767
ej inc 356 if h >= 896
ec dec -229 if hb != -2863
bq inc 121 if ec <= -756
xuu inc 428 if u == 1131
ej inc 796 if xuu >= -6070
fe inc 889 if fe < -3341
cli dec 524 if acc > 102
piw dec -360 if acc != 117
fe dec 907 if h >= 907
piw dec -184 if ar != 6092
u dec 189 if hb >= -2866
nev dec -381 if nfo < -362
hb inc -568 if re == -771
hb inc -365 if xuu != -6079
nev dec 490 if qym == 3995
u dec 311 if u >= 933
hb inc 692 if yxr == -166
ej dec -524 if re > -767
ln dec 5 if h > 896
u dec 801 if u >= 628
ar dec -861 if s < -1695
nfo inc -921 if tem > 4862
ej inc -57 if bq == -1244
re dec 726 if ar == 6957
yxr dec -344 if s == -1705
ln dec -300 if foz != -3764
bb dec -372 if bq >= -1251
h inc 630 if tl <= -321
ln inc -586 if u != -161
ec dec -356 if ar != 6959
u dec -225 if piw >= 2399
ln inc -715 if tl < -321
nev inc -649 if u < -164
h inc 232 if ec != -407
bq dec 689 if piw <= 2399
bb inc 52 if xuu == -6071
foz inc 8 if s == -1705
fe inc 80 if nfo > -1299
ec inc 686 if u <= -166
foz inc 579 if bb < 4347
piw dec -551 if nev <= -1288
fe dec -271 if foz < -3743
nev dec -386 if qym <= 3993
nfo inc 791 if hb == -3101
xuu inc -206 if xuu != -6081
qym inc 53 if h > 1532
hb inc -238 if piw != 2955
h inc 947 if yxr < 181
re inc 668 if h < 2484
cli dec -989 if foz > -3754
tl inc -495 if h <= 2486
tl dec 884 if tl < -810
s inc 405 if fe >= -2107
ec dec 842 if yxr >= 174
h inc -451 if yxr < 180
yxr inc 364 if hb < -3331
nfo dec -736 if xuu < -6272
ec inc 37 if piw <= 2957
cli inc 839 if piw <= 2955
foz dec 787 if cli <= -777
ar inc 343 if hb == -3339
piw dec 939 if ej != 1892
piw inc -36 if bq != -1927
ej dec -684 if tl != -1710
acc inc 882 if h == 2030
re dec 372 if acc == 990
h inc 23 if qym <= 4041
ej dec 446 if u >= -169
foz dec 293 if yxr <= 539
tl dec -526 if fe > -2110
ar inc 35 if ec <= -521
ej dec -839 if s != -1295
bq inc -816 if ec > -534
tl dec -913 if fe >= -2108
bb dec 888 if acc >= 983
tem inc -951 if hb == -3339
ec dec -562 if qym < 4046
nfo dec -696 if h >= 2049
u dec -376 if yxr == 542
tem dec 130 if ej <= 3429
nev inc -484 if h >= 2046
nev dec -902 if yxr >= 539
qym inc 306 if nev >= -498
bq inc -306 if hb <= -3334
tl dec -807 if fe > -2113
nev inc -47 if nev <= -483
u dec -228 if xuu == -6277
hb dec 925 if s < -1297
acc dec 236 if cli > -786
h inc 684 if u >= 429
nfo dec 912 if u < 440
xuu inc 529 if bb < 3464
tl inc 143 if qym != 4354
ec dec 694 if tem == 3791
fe dec -542 if u < 441
piw dec 433 if yxr >= 540
ln dec -537 if hb > -4272
acc dec 419 if acc > 744
xuu dec 31 if fe == -1557
ej dec -297 if yxr < 533
foz inc -281 if ec <= -656
cli dec 712 if tl > 677
bq dec -871 if foz >= -4817
bb inc 381 if ln < 8294
nev inc -670 if tem > 3783
yxr inc 860 if nfo < 14
foz inc -120 if nfo > 25
ec inc 793 if fe >= -1563
qym dec -827 if qym < 4351
ar inc 687 if cli >= -1495
bq inc 975 if re < -1191
xuu inc 177 if u != 442
tem inc 363 if nev != -1207
acc inc 707 if cli < -1491
nfo dec -381 if tem > 4148
ec inc -347 if tl != 697
ej dec 995 if s > -1303
acc dec 452 if bq == -2080
u dec -851 if piw > 1539
ln inc -993 if re != -1211
nfo dec -591 if tl >= 692
s dec -410 if yxr != 549
yxr dec -54 if u >= 1288
bb dec -733 if re <= -1193
piw inc -984 if re < -1193
ln dec 133 if ec >= -211
acc dec -218 if fe < -1561
tem inc 792 if fe > -1567
bb dec 359 if yxr != 541
tem inc 273 if h != 2735
ec inc -714 if nfo < 401
hb dec -555 if bb <= 4206
nfo inc -151 if ln > 7294
hb dec -635 if yxr <= 550
acc inc -603 if u < 1282
nev inc 705 if cli >= -1488
cli inc 568 if ej < 2435
nfo dec 795 if nfo >= 246
s dec -996 if ln != 7289
u inc -530 if nfo > -550
tl dec -431 if qym >= 5171
fe inc -998 if ec < -920"""
//input = """
//b inc 5 if a > 1
//a inc 1 if b < 5
//c dec -10 if a >= 1
//c inc -20 if c == 10
//"""
Map<String, Integer> registers = [:]
def max = 0
input.trim().eachLine {line->
def group = (line =~ /([^ ]+) (inc|dec) ([^ ]+) if ([^ ]+) ([^ ]+) ([^ ]+)/)[0]
def registerName = group[1]
def by = new Integer(group[3])
def conditionalRegister = group[4]
if (!registers[registerName]) {
registers.put("$registerName".toString(), 0)
}
if (!registers[conditionalRegister]) {
registers.put("$conditionalRegister".toString(), 0)
}
if (evaluate("${registers[conditionalRegister]} ${group[5]} ${group[6]}")) {
if (group[2] == 'inc') {
registers[registerName] += by
} else {
registers[registerName] -= by
}
if (registers[registerName] > max) max = registers[registerName]
}
}
//part 1
println registers.max { it.value }.value
//part 2
println max
def inputs = [
// '{}',
// '{{{}}}',
// '{{},{}}',
// '{{{},{},{{}}}}',
// '{<a>,<a>,<a>,<a>}',
// '{{<ab>},{<ab>},{<ab>},{<ab>}}',
// '{{<!!>},{<!!>},{<!!>},{<!!>}}',
// '{{<a!>},{<a!>},{<a!>},{<ab>}}',
// '{<>}',
// '{<random characters>}',
// '{<<<<>}',
// '{<{!>}>}',
// '{<!!>}',
// '{<!!!>>}',
// '{<{o"i!a,<{i<a>}',
'{{{{{<!!!>},<!e!!!\'ue!o!!!>"oo<u!}<<{>},{{{}},{<!>},<\'>,{<!!"!!!>"u!!!>!!!>,<"!>,<!>},<}!!}!!!>{>}},{{<"!>}}!\'!!u!!!!e!!!>>}}}},{{{<!>>}},{{{<{{!!,>},{<u!!e\'!>},<>}}},{<,o!!!""a!>},<!>},<<}>,{<!!!!,,!>,<!>},<"!!!>u>}}},{{{<}{!<{i!>>}},{{}},{{},<!>,<!>,<!>!!,<!!!!{}!!i>}}},{{},{{{}}},{{<ae{>,{}}},{{<!!!!">,<{\'}!!},<!>a,!>!!!>{!!e>},{{<!ao!!i!\'!>,<!!o>,<\'e}!!!>!!!>e\'!!u{>},<",\'i!!!>{>},{<uai,!!{!>},<uu!!e>}}},{{{{{<!!,a!>>}}}},{},{{{{{{},{{<au<,!!iuu!!!!!>,<>}}},{<i!>,<!>},<!!\'iu{!!o"{i,i}!{{>}},{},{{<a!>a"!!!!!>},<>,{<!!!>">}},{{{{<ae}a!!!!{!},u!!o<!!!">},{<!>,<!!!>!!!>},<ee<!\'!>},<!!!>u"ae>},{<e\'!!!>},<\'e!>>}},{<u!>},<a!>!>i,u>,{<i,!!>}},{<\'>}},{{<!ee!>},<!!!>!!!>>},<!!!>},<a!u>}}}},{{{{{}}},<!!!>>},{}}},{{{{<!>,<,,},,!>,<<!!!!<<!!<!!!!>}}},{{},{}},{{},{<o,!>},<!!}!,!>},<o!>uoa{<a!!,<a!>,<>}}},{{<\'!>},<e!>>}},{{{<!>"<e!!!>}!!!>!>u<\'i!!}\'!!!>>},<ie!>a{!{>}}}},{{{{<{i<!>}e!>},<}!!,,!>},<!!aa!>a!!!>!,{>,{{<ii!>,<>},<{e!!!>"!!o!>,<\'a!>},<u!>!>>}},{<!!!>"!>,<!<!>,<u!!!!i!>,<a!eeu!!!!!>!!e>}},{<i,}a!!{e>}},{{{<}eue!a}{"{\'\'<!,!>\'!>},<">},{}},{{}},{{},{{{}},{<\'!!,ie"e!!!!!>">}}}}},{{{<!!<<!!!>o!!!>eie<!!!>e!>"!!!!!!ie>,<!>!>!,!!u!!o!!!>!!!>,<\'"!!u!!}u}<}!>,<}>},{<!,!>},<auo!!!>!>,<{}!>,<!>,<>},{<>,<<!>},<{>}},{{{<a!>},<i!!!!!>!!e!>u>,<!>!>},<!>},<a!>!!!!!!i<ae{<!>,<!><o!!!>!io>},{{{}}}},{{<{,ii!!!>!>,<i\'{uo!!!>{a!e>},{}}}}},{{{{{<!>,<u!>!!!!a",!!,!><!!!!!>,!>,<i">},{<"!>,<!!\'>}},{{},{{<!!!>!!!>>},<>},{{{},{}},<e{!!!>!!!><u!>},<iioi!>,<!>!>},<o!!!>!<!"!>>}},{<<<!a{!e}!!\'!!<!>},<!>,<\'eoiua}\'>,<!!<!!>}},{{<!>>,{{<!!!!!>}!>!!a<!!u!!!<u"!!!>>},{{{<!!!>"i!!ae<!><i!>,\'>}}}}},{<!>!>i!>,<}!>!u<!!!!!>!<\'o!>u!!!>!>e>,{}},{{{{<!!a\'!>},<!><{u,}""!o!>},<!>,<>}},<!!!>,<!o!>,<!>,eea,!!!>i,,ue,ie>},{}}},{{<\'e",!!!>!>,<!!\'!!!>\'!>{i!,!!!>},<\'\'!>>,<!!,!>},<}uu!>"a"}!!<!>},<!>,<!>}o!!o"\'>}}},{{{{},{<!!,!!a>}},{},{{{{<"uo!!!>!>,<"!>e,<\',au\'}>,{}},<u!>},<!><a}\'ei!>"!!}a!!!>,<!>u<u>},{}},{},{{<}"!!e!>,<{!!!>!!,!e"!>},<!>},<!!!>,<!\'e>},{{<!,iuee{u!!!>i!!!>{<!!!>},<!i!>},<!!>}}}}},{},{{{{{{<!!u!>},<o>},{<!!!o!!,>}},{{{},{<i,\'<a!!"}!>>}},{<}a"u!!"\'!!<!>,<!\'!!\'"uai!!!>},<>},{<>,<}!>!>o}}!!o{!>},<>}}},{<!>},<!!!"!!!>a!!!>!>},<!>}!>,<>,{<{!!e!>,<"!!u!!!>"!!!>!a!!a<oo"!!!>!>i>}},{{{<!}!>},<}u!!!>!!!>!>},<!>},<>}}}},{{<}!>,<a,"o<!>!!!!!!"<!!e\'a\'}!>},<>},<!!!ee,\'<}e!<!>,<i\'!!!!!>u!!!>,>},{{{}}}},{{{<,>}}},{{<o,!!!>!>,<>}}}},{{{{<u!!!>>},{{<\'i!!!!!>,<!!a!>,<}e<!>,<\'>},{}},{<{<!a\'>}},{{{},<e!>,<<e!oou!!!!!!"!!i!!!!\'a!>},<,!>,<<>},{}},{{<!>,<!!e!>!>},<o<!>!!!!!!o"{!>},<>},<,i{i!>,<oaue<"e\'!!u{ue>}},{{<e>},{{},{{{{<e{oi!>,<o!!!!u>}}},<e<!ue!!oo{!>,<a{!u<!>,<"}i!!">}}},{{{<!>},<!!o!!e!e>,{<}!!{{!>,<!o!!ao}{{!>,<>}}},{{<o\'>},<,u!!o!!u>},{{<>},<\'!>,<i!!!>},e!,e!!{>}}},{{{{<\'ao>,{<!>!!""!>!u!>,<i!>a!,{u!!i!!!!!>>}},{{{{<!>},<a""oi!>"\'>}},<a<e{,,o!!"!!!><>}}},{{{{<au<!!!!!>!>,<>}},{}}},{{{{<oa!!!>iaui!,!!}>},<ia!>},<u\'u!!!>!>u>},{<"u{""u!,!!!>>}},{<!o,{!>a!o\'\'!u!>,<!!!>},<!!o!!!!!>,<>,<}<,!!o!>},<}{}{!>},<{">},{{<!!}}!>,<!>!{e<"!!,!>,<">,{<\'!<!!u!>},<!!!!!i!!u,"oo!!!>!!!>\'a}">}},<!!\'u!>},<au!>},<!!!>!>,<>}}},{{{{<a!>,<\'!>,<>},<!>,<<o!<!!!>,<!!i!>!"i!>},<}>},{{{<o}!>>,{<!>>}},{<!!!!!>!!<e!!<e<,!{!>,<>}},{<!!!!eo\'"!>,<}<}!o<!!!>{u>,{}}}},{{{}},{<"!>!ai!><\'e!\'!>!>>,{<u!>,!>!!ae!!\'e!!!>e>}},{{<!}!!u\'e{i!!\'!"!!\'<!!!>,<>},<o\'a,\'e!>,<{{aau!<{u>}},{{{{{},{<e!!"i!>!!!>u!!"""o{!>},<!!o>,{<}!!>}}},{{<\'}o,ie">}},{<!!\'{!>},<ue!>,<!!!>!!ia!>,<">,<a,<ouu"a>}},{{{{<u!>,<!>},<e!><!!!!}}!>,<!>},<}a!>},<i!!\'!i!!!>a>},<!"u!!i"ioe!!!>!!,!!ie,!>o"!>,<!>,<!<>},{{},{<o!>},<{a!!!>"{>}},{{<iu{}"!>,<"{!>i<o,e!>,!<>,<<!aa>}}},{{},{<i}!!!>>}},{{<a!i,,!e<!>},<!"i\'}"!>{ii!!!>!!,>},{<u,\'!e!!!!\'!ee!!"!!i!!!>},<}>}}},{{<!!!>!!u!>,<u!>"o<<}!>uu!!u{!!u!"!!!>>},{{<!\'!>o>},<i{ioeu!>},<{au!!!>!>},<i!>},<!>,<!>},<!!!!,e>}}},{{<!!!>},<!!!>i<o!!}}e!,i!>o!!!!i>}}}},{{{{{{<!>},<>,<\'e!a!!!o}}<"!!!>,"}!>a!!!>"e>},{{<e!>!!{"},,!>,<!!\'!!!>aa>},{}},{<!!,,!e!>!>},<!>,<"{"!!!!!!!!!>>,{<"!!!i!>},<o{""}",,!{ou!!>}}},{{},{{<!!!!!\'!>{oe<{!!<!!!!!!\'>},{<!>,<<\'e!"!>!>},<!>},<{!!o!>,<e!>!!u}!!e!!>}},{{<}o"!>},<!>},<!>!!<!u!!!>},<!>},<i!a>}}},{{{{<\'!,!!!!ii>,<<!{!!!>!!!!!>!>},<!!!>!!\'!>,<o{iuo!><!!o}!!!!!!!!!>!!!>>},<!>!>,<!>ao!!!!!>!>},<<!!{"e!!,!!{\'!!!><>}},{{{<!!!>,a!>},<!!!>>},<!!!>!!>},{<!!!!<!>,<,>},{{<}!}!>,<o!!!!!!!!!>!!!>\'!!a!>},<>}}},{<>}}},{{{{{<!>,<!>,<!!!>},<i!>"!>},<o<!!!>a!!!>!!!>!>!!,u!>>},{<<""!!,!>},<\'{<!o>}}}}},{{{{<}!>,<o!>,!>},<!!!>\'i",!>},<!!!>,<{!>,<o!>,<!>},<>,{<<!>!>,<!!!>!>},<>,<!!!!a!!a}{{!!!>\'!>,<{<<!>,<>}},{{<!!,>},{<!>,<!!ao!!!>!>!!!>!>},<,i{o!!!>"!!e!>,<!!u>}}},{{},{{},<u!>,<!!!>!!>},{}},{{{{<}\'e,}>},<>},{{<e!i{!!!>!>},<"!>},<!e!>,<{>}},{{<>,<{{!ei\'!>},<<{!>,<a!>!!">}}},{{<!>,<{!!{}i!>,<{!>"<!>,<!>!!!>!!!!!>!ou>,{{{{}}}}},{<{\'!\'<}}>,<a>},{<{{a>}},{{{<>,<!!u"!>},<!>u!!!>\'>},{{{<a!>},<o!>},<\'!!!>o!>,<!>,<{u!!{!"{!!!!!>>},{<,<!>{!a>}},{{<}>},{<!eu<!>,u\'!>},<!!!><e{e!!!{<!!!>!!!>>}}}},{{{},{<a!>,<<e!>},<!!!a<u!!!>},<!>,<i!>,<>}},{{{},{}},{<!!,!!!>},<ia!!!!!>,<!a!!!>},<i\'!>,<!!!>!>},<>}},{<\'a,!>,<!!!>!!!>,<\'!>,<<"u>}},{{<!!!>"u!!!><\'!!!>{>},{<\'!>,<}>}},{{<i!!{!!!>!!!!i,!>!!<u,u!>},<\'!>},<ao,"!!>,{<e!!<\'e}<!o!>{!>!>!!!!"i>}}}},{{<!>},<!>},<}!!!>"!!<!!!!!>e>,<!>ia!>,<!>"!>!!!>i!!!!!!u!eu"a!!,!>},<>},{<{o!>,<<"{!!!>!!o!>},<!"a!>>,{<<e,!}ao!>ui<!>!>},<\'e<!!!!{a!>!>,<>}},{<>,<\',!>iaoi!u<oe"!>>}}},{{<!>e"e!!!>},<,u!!e!>,<!>,i!!oi<>}}},{{{},<!!u!>!!!>i!!!!e!!,"u>},{}},{{{},{{},{<!>},<!a>}},{{<"o!>},<!>},<!!!>,<!,>},{}}}},{{{<!>!ei!!{!!<!!>},{}},{{},{<io{!>},<!!}!>},<!}a!>u<>}}}},{{{<!>!!!>"!>!!ua>},{{<!!!!!>{!">,{<!!\'<"\'!!!>}!!!!!>!!a!!\'!o\',!!!!!>!!>}},{{<!!"!!!>{{,!>,<!!!>!!i!!ea!!!>!!!>\'>,{<!a<!>},<!>,<eoe!"!>e<a!!}"e!>},<o!!>}}}}},{},{}}},{{{{{<!>!{!>i}!"\'!!!>iau!>},<o>}},{},{}},{{{}}}}},{{{},{<!>,<!!u!>},<!!!!<<!>,<!>auo!>">}},{{{}}}}}},{{{{{{<!>!>},<!!!>oe!!!!\'!>},<"!!!>>},<!>{!!"\'!>,<!>},<oe\'\'{\'!>,<>},{}}},{<u!e}!>,<!<!<!<"!o!!\'!!>,{{}}},{{<uia!!ee!>},<!>e>}}},{{<o!\'\'e>,<!!!>eu{"!!}a>}},{{{{<!!!!!>!>},<!><o!i>}},{{{<!!!>,<io!>,<o}ou!>,<!{!>},<!!ou!>!!!>!>,<!!>},<!!<\'!!!>,u,!>o}"!a>}},{<!>\'!!{eo\'!>},<!>!>,<e!!a!!!>!!!>{,,!!!">,{<"ioau}\'!!!!!!!>!!!>i">}}},{{{<{!!uo{i!>},<,}>}},<ie<{u<!>},<!!"i<>}}}}},{{{{{<!!!>!!i>},<>},{{{<!>},<{!!,!!a""i!!}{>}}},{{{<!>},<!>,<a!!!>,}!!!u"e!!!o>},{<!!\'{!!!>,<!!\'!>},<!!!>e,!>,<e\'!!!>oo>,{}},{<}}!>},<o\'!!!>!!!>!>},<ee!!"<!,>}},{{<!!!>u{!!e>},{{<!o!>},<e"}u!"!!}a!!a{<,!!ee!>}>},{{{{},{<!{u{!\',u!!!,>}},{<"\'!!!>!ae\'a!!!!o!!!>a!}!>,<>}}}},{{<!!!>o"i!!!>"!!!!!!!>!!!!!>},<}!!>},{}}},{{<\'!>,"!!!>},<oo!o\'!>},<o>,<>},{<auu{<!>e!>},<!!!>}\'>},{{<}"u!!!>!!,"i!>e>},<",u>}}}},{{{{<!>,<{"!!a!>,<"ou!!,a!!!>},<!!!!{>}},{{{{<!!!>,<o!>!!!!eue{!>},<!!u<>,{<>}}},{<!!<{!!!>oo!!u!>,<!!!>!!!>,<!<>}},<"eo<!!!>"!,!!!>>},{{}}},{{{<>}},{<a,!>!!!>!>},<<!>},<}o!!!>uui,"!!"i}>},{{<!!!>!!<{<!>eu!>,<a!!>,{{{<i\'eua!!!>!!!u!!!!!>!o!>,<!i"e>},{<io\'}"!>,<a!<!>!"}o\'!!!<!!>}},{<{e!!!>!!!},!>,<"">}}}}},{{{}}}}},{{{{<}!!!>eo!!!>a!e\'>,{<ui!!!!!!!!a!!!>!">}},{{<u}\'!!i\'ueo!>>},{<u>,{<o!>},<i!!{!!!>}!!<"u!!!>},<>}}}}},{{{<>}},{<!!!!!>!!{<aoo!>},<!!\'ou>},{{},{<!>},<}!>,<u,"!!!>e}!>u!{o{!>,<!!ae>,{{<!>},<o!>,<!!o>},{}}}}},{{{{}},{{<o,{!!!>!>!!{!>},<,>,{<}e,!!!>>}},{}},{{{<{!>,<!!!!ai>},<!>,<i>},{<!!!>!>,<!!,!i!>!>,<\'"!>!\'!>!!i,>}}},{{{{{<a!>,<u{{!!!o!!{ua!>,<!!"!}"!!!}!!!!\',au>,{{<!!{{!!!>>}}},{{{{<i<o!!i>},<ia!!!e!!!!!><!>,<i!!!>}!>,<ii<!!!!!>>},{{{<,!!!>,<!!<>}},{{{{<!!!!!>},<!!i!>,<!!e!>,<!!!i{<!>!!!!!>!!!><e>}},{}},{<!!e!uui"<{!>,<>}}},{{<!>,<!!!>{,aa!!u!!o!!{u>,{{{<{!!!>>}},<!>>}},{<,!>},<!>,!}"!>}!>},<"i!!!>>}}},{{<!!!>u!>},<i!>,<!>},<!!!!"!!!!"ee!!!!!>!>},<o!<!>},<e>,<e!!!>"!>!!e!>,<\',!!>}}},{<a!!}o!!!{{o"e!u!>,<a>}},{{<}!>},<}e}!!!>!ua\'>},<!>ooe,u\'!!!\'>}},{}},{{{<o{,\'!!!>o""\'>,{<!!\'e!>,<oi,!,>}},{<\'!!!>,!<<a!>>}}},{{{<,o!>,<!>},<!!!!!>,<}a,!>}!>},<iei!>,<!!>}},{<{{,!>,<>,{{}}}},{{{{{{<!>},<e,<!!u!>},<a!!!>\'\'!!!,\'o!{>}}},{<!!a!>,<{!!!!""!!!!!>\'!!oa{{!>,<!>},<>,{<",!!!>!!a!!!>},<e!!!>!!"ii<a!>,<!"!!>,{{<\'!!!!!>!>},<e},>},<!!<a!>,<"!!!>a\'!!!!<\'>}}}},{<i!\'!>!!!>},<,u\'u!>},<i!!i!!!>,<<,!!!>oai>,{}},{{<u>},<!<ea,>}},{{},<{!\'<!a!!!>!>,!>{!!!!!>u!!\'>}}},{{{<>},{<!!!>"{o!!!>!!!>},<!!!,>}},{{{{{{<{!!a{<<a!!!>!!!>!!!>,<!!!>!!!>>,<}"e,!oae\'\'!>,<!!{u!>},<!!}!>},<\'>},<}!>,<<{a!!uo!>!>,<!>,<!!ei!>},<{>}},{{{<,"i!>,<i!>!!!>o!oa!>,<!"!au\'iau>},<!>,<uiu!!!!!>}ao"{u!!!>\'!!!>a>},{<!o!>,<,i!>,<!>},<u!!a!!!>},<}!!!>u!>},<!!<o>,<!!ei!>},<!!!>!!!>},<{"!!!>,<<!!!>u!>!!!>!>},<a>},{{<{!>\'!!<"!!!!>}}},{{<>},{{<!!!>e!>,<!!<o!!"o{,\'<!>},<!>}>},<!!}!!>},{<\'!!a!>},<!!ioiau\'u,!!!!!!,!>},<i!!!>{>}}},{},{<!>},<!o">,<!!!>}!!!!!>!>},<"!>},<!>,<>}},{{{{}},{{{{}},{<i!!<,!!o>}},{{},{<!>},<!!!{u{!!!>a!!!!i!!,\'!>},<}>,<"\'!>\'>},{<i>}}},{{<!!!>!"a!>,e<i!!!>,<,!!!>!>>}}},{{<!>,<!"{!>"!>,<<o<ue{{}}!>,<!!>,{<u}>}},{}},{}},{}}},{{<!<!>{\'au!!"{!>,<>,<!{>},{{{<e!>u!{\'!o{\'!!!>!!"!}!e"!>},<oiua>}},<,!>,<!e">},{{{},{<!!a!>}!!!>u"!a<!>,<,"{!>},<a<!>,>}}}}},{{{<!!,!"}!>}!!}!>,<!}""!!e,}!>},<>,{<,!>},<a,<u!!!>!!}}e"!}>}},{{{<a>,{<<e!!!!u"auo!>u!>,<>}}},{{<!"<!!!>{u!>,<e,{{!!!!"!>,<!>,<,}!"\'"e>},<<!>},<oua!!u,<<>}}},{{{<eu"!>u\'uu<>}},{},{{},{<!!!>!!!!u}iio!>>,{{<oo!!!>{!>,<{!!!!!>,<i,!!}}!>u!>a!>,<!{\'>},<!>},<a!!!>!}!,ea>}}}},{{{{<!!i!>,<!!!><u!!a!!!>,<>,{<!>!>}!!o!!!><a<>}},{<!>,<!!\'{i!!a!a\'<!}!!e"!!!!a!>"!!!><>},{<!!!>},<!!!>,<!uea!>},<\'!!>}},{<!>,u{<!>},{!{iie{!>},<<o!>,<>,{{<!!!>!!}iu\'!!!>e}!!!!o!><!>!!!>,<<!>,<!!!>,<!!,>}}},{{<"i\'{!i!>a!!{!>,<oaa!a!>},<>},{<!>,<o">}}},{<!!}!!e<e>,{}}},{{{},{<">}},{<!!!!"!!o!!!>"!!!>i">},{{{{}}},{}}}}},{{{{<i\'<u!{e{i>}}},{{},{{<o>,{<!!<}}{{o!!a}!!!{ao>}},{{},{{},<uu\'!},!!e!ouu<oia!!!>e}{e>}},{{{<<,e\'a!!!>},!!!!!>e>}},{{{<o!>},<uo!!!>!>!>,<u,!a!!!>!!!!!>}!>,<!!!>>},<!a}i,">}},{<!>,<!!,!>}!!<}!!!!!>ae<u!>,<!>,<!!!>!{<!!!!">}}},{{{{<!!,,!>},<i}<{>,<!>,<!!{}o!!{,<,,!u!"!>,<>},{<}!!!>>,<oo<!>},<<ou}!!!>}e!>,<!>,<>}},{{{},{}},{},{<uou>}},{{{<!>!""<ea>},{<<i!>},<\'aau!>},<!>,<}i\'!>!!>}},{{<e"!>,<{"!!!!!!!!!>,<<eui"!!},!!>}},{{<\'i!!<>,<!!!!"!>,{<!>!!{!!!!!!a{!>},<>}}},{{{},{{{{<!>!>},<>},{{}}},{{{<\'\'!!!>ai!!a!>!>,<>}}}}},{{<a!>,<!!\'a}<,!!!>},<,!!,!}!>},<>,<!!!>,<{!!!>!!io!e!>,<!!!!!>,>},<!{i!!!>,}\'{o!!,<!>},<!>!>!>},<oie>}}}},{{{{<,,!!i!>,<!>o!>,<>},<}!!!>},<e!>,<}!!>},{{{<!!!{oo!>,<!!!>!!!>,<o!!!>e>}},{<!!{,!>!!!>!!<!>},<!!!>!>,<i\'!!!>!!!>},<\'!>,<>}},{<a!>,<!!!!i!a\'o!!!>u!!!>i>,{<\'u!!}oe<!>!e!!">}}},{<i{!!o">,<!uo\'}!!!>!!!!!!ou<!!!!!>}a>},{{<!!!!"{}>},{<uoeua!>},<o!!!>!,i">}}},{{{<!!!eo{>}}},{{<!!{!!\'ui!!!>!>},<>},{<a"!!!<o>}}}},{{<,u\'!{!!\'!>!!!>}>},{{},{<,!!!!!>},<e!!">}}}}},{{{{{<!>,<!!,>}}},{{<!!ouao"!!i<>,<!"!>,<!!oe!>,<i}ei!"{!u!>},<,>},{{{}},{<<!>,<>},{{<<<,u!!",!"\'!!!!!!<a{u!><!u}>,{}}}},{}}},{{{{<!!!>o,!!!!<uu!}!!e\'uu!!"e!>!e!>,<!!>}},{{<>,{<u!!!>,<,!i!!!>""u!}}!!!>!<e"!!!!<!!>}},{<u!>},<}{!!!>,<o>}}},{{},{{<!!!!!!u\'!>},<,!>,<!!a!!,iu>,{<!{!!!!}>,{<ei!>,<}oo>}}},{<!>!>,<!uo>,<>}},{<o{"<"i}{!{{eae>,{{{<!!!e>}}}}},{{<}u!a}!!!,!,"e>},{{<>},{{<"!>,<ao\'}!>,<!!!>,!>"eu{i!!}!>},<,>},<!{!>},<!!!!{{!!!!!>!>"!!<!!!!>}},{{{<u!>,<u!!!>u!!\'i>}},<!!!>ii!!!>}{!><{!>e\'!!!!!}{}!>!io!>>}},{{{<>},{<ua!a!>!>!!<!!!>!!!>,{u>}},{{<>},{}},{{<!>!>,<au{u!>,<>},{}}}},{{{{<,!!!>i!>},<\'!!!<!!!>u!!!>i<!}!>},<!!!!e>}},{{<u"!>i!\'>},{{{{},{{}}},{<!!!>!!}!>,<o<!!!>},<<e<i<"}""!>,<!>,<\'>,{<\'"i!!ae{o}!>!,a>}}},{<!!!><!uu<!!{!>,<}}\'!o!><{>,{<!u{!u!>!>},<\'a"a,!>},<!!}{!!,\'ei>,{{}}}}},{<{i!!u!>},<!>},<!>!oo>,{<e{u}<,!!!!!!i\'o{<!!!>!!\'i\'uo>}}},{}}}},{{{{{{{{<u,<!!<i}a!>!>,<e<!>},<,i!o!>,<>},<u!!!>,oii,!>},<}}!}<e>},{},{<i!>!!i!>e!>},<!>!>},<>,{<!!!>ii}<!!!!!!e{!!!>",!!!e!>,<u<>}}},{<>},{{<a}!!}i!>,<io<i!>},<{!,e\'!!!>,<!!!!!!!>!!iu>,<!!!>o!!u,!>!>,<!>,<"i!!e!<e">},{<!!,{{!!!>\'>}}},{{{{},{<!!!>!!!>\',oao}<!{!!{!o>}},<!><!>,<e!>,<o!!!!ou!!!!!>},<!!!>>},{{}},{{<!>!!!>"!>!!i!!!>!!!><!!!><!!!>i!<!!!!<{!!!!!!!>e>,{<,,>,{}}}}},{{{{<u,!>{uu>},{<>}},{},{{},{{<"e!!i<!!!>,<"o!!!>,<}u>}},{{<>},{<!><>}}}},{{<!!i<!!>},{{<!>,<!>},<!!!>!!,e{>},<eu"!!}u}!>},<<a>},{{}}},{{{<!i!!au!>},<,!!!>},<u"<,{{!!,!!>},<a{!!!>>},{{{<e!!!>a!>,<}e!!!>{>}},<!<!!oa}!!\'"!>},<\'u>},{{<,ua!!aoo}!!{!!!!!>!!"eau}}!><!!!>>},{<!!!!!!>}}}},{{<!!">}}},{{{}},{<,!u!>!>,<!>,<\'\'!!!>!>},<\'a\'!!aou!!!><>,<u>}},{{{<i!>,<!!i!!!<aa!!a>},{<!>,<a!>},<!!!><!>,<a!>},<!!u!>!!!>""!>,<!!}>}},{}},{{<o!!o>},{{{<{!i!!!!e<ua>},<>}},{<!!!>!!!>\'!!",e}u!>},<!!\'!>,<!>,<>,{<\'e!}!!<!>,<i!>,<"o!>>}}}},{{{<u"!>},<{!!\'u>},<!>,<<!!!>!!\'!>!!!>,<u\'<}\'!>,<ee"!>,<a>},{<!!i>,<o!>,<!iu!>},<!!\'o<}!>,<,">},{<<{!>},<<!!!>}\'!!!!!!!>!!\'!\'o!,!!u>}},{{{<!!oi\'a"!>"!u}!>,<u!>},<"u!>!!">},{}},{{<!>},<eae!}!!!>aa!>oa!!o!!!>!!}<u}>,{}},{{},{<!!!ae}<!!,!!!!{!,u!!<!!,!!!!!>!>},<>,{<\'"!>!!!,u!!oo!>,<>}}},{{{<!>},<!>!>},<}!!!>a<"{a!!!>!!<!>,<!{!!!!!>>},<{>},{{<!"!>,<"!!!>>}}}},{{<}<i!>eu}u!>},<iii!!}o>},<aa"u>}},{{{{{<<!!\'!>},<!!!!<!>,<\',{o"{\'!!i>},{<!!!!!!<e!i"},!}uua<>}},{<i!!a\'{>},{{{<{!e<!}!!!>,<\'o{>},<o!!!!!>{!>},<!!!>e!"{!>},<{!!\'u!>},<ioia>},{<!!!!u!{<!>},<\'>}}},{{<!>},<!>},<,au!!{>},{{{<!!\'<!>,<<!>>}},{<!!!>!!!!!>},<!>,<ueie!>,<!!i!>},<>}}}}}},{{{<e!>!!u!!!>!>},<u<ua!ao>},{},{<a!!e!>u,!>,<}}!!!>,<>}},{{<}!>,<\'>,{<o">}},{<u!>!>!!oi!!!>"o"!!ie{>,{{<!!!!!!,!!!>,<!!u">,<}!>},<}!>,<a!>"!>,<!>!!!>!!!>},<!>,<e>}}}},{{{<o!!!>a!>},<!>,<}!!!>},<!}!!!!!>!>},<o!\',{>}}}},{{{{<"!e"!!!>!>,<!!!>!>,<o,\'ai!,!>,<>}},{{},{}},{{<!,,a\',!>\'o<eu}e!!!>,<!!!!!!!>ia!>},<!!}>},{<o!!!>,{<"\'!>},<>}}}},{{{{}},{{<!>,!>,<a\'!>},<ee!!!>io>},<}!!!>,<!!ee"e!!!>\'}!>},<,!!!!aa>},{{<!!!>},<}!!,o!i,!>,<!>},<}<}!>e>,{<<!>},<"!!<>}},{{{{<!>},<}o!!"!>>,{<!>},<!!!<\'!>},<>}},<e!!!>,<!!!>e!>,<\'!!!!!>!!!>,>},<i!,u!!!!!}!>},<!}\'"!>o!>,<u!!!!!>>},<,!!!>u<!>>}}},{{{{<a!!{!!o\'!}!!o!!!>},<{a!>a>},<!>},<eu!>,<"i!!!>i!ai<>}},{{{}}}}}}}'
]
inputs.each { input ->
def nestedLevel = 0
def sum = 0
def ignore = false
def garbage = false
def garbageSum = 0
input.split('').each { c ->
if (ignore) {
ignore = false
} else {
if (c == '!') {
ignore = true
} else if (c == '<') {
if (garbage) {
garbageSum++
} else {
garbage = true
}
} else if (c == '>') {
garbage = false
} else {
if (garbage) {
garbageSum++
} else {
if (c == '{') {
nestedLevel++
} else if (c == '}') {
sum += nestedLevel
nestedLevel--
}
}
}
}
}
//part 1
println sum
//part 2
println garbageSum
}
def input = [138486, 133535, 66101, 98143, 56639, 120814, 142212, 92654, 100061, 104095, 55169, 94082, 76014, 81109, 106237, 111930, 138463, 145843, 142133, 71154, 112809, 136465, 142342, 68794, 131804, 146345, 107935, 98577, 127456, 89612, 95710, 149792, 136982, 92773, 92303, 114637, 107447, 111815, 149603, 106822, 78811, 114120, 148773, 90259, 101612, 82220, 139301, 91121, 99366, 84070, 120713, 59311, 120435, 56106, 127426, 110465, 76167, 81199, 116298, 110064, 125674, 135698, 86792, 114228, 119794, 76683, 125698, 103450, 142435, 142297, 122593, 96177, 104287, 121379, 54729, 108057, 127334, 91718, 67009, 93304, 66907, 133910, 145775, 119241, 117492, 56351, 96171, 50449, 137815, 149308, 119003, 60320, 66853, 56648, 52003, 115137, 124759, 73799, 94731, 147480]
class Mass {
static int calc(it) {
def answer = (it / 3).intValue() - 2
if (answer > 0) {
return answer + calc(answer)
} else {
return 0
}
}
}
println "Part 1: " + input.collect{(it / 3).intValue() - 2}.sum()
println "Part 2: " + input.collect{Mass.calc(it)}.sum()
def intcode = { noun, verb ->
def input = [1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,6,1,19,1,5,19,23,1,13,23,27,1,6,27,31,2,31,13,35,1,9,35,39,2,39,13,43,1,43,10,47,1,47,13,51,2,13,51,55,1,55,9,59,1,59,5,63,1,6,63,67,1,13,67,71,2,71,10,75,1,6,75,79,1,79,10,83,1,5,83,87,2,10,87,91,1,6,91,95,1,9,95,99,1,99,9,103,2,103,10,107,1,5,107,111,1,9,111,115,2,13,115,119,1,119,10,123,1,123,10,127,2,127,10,131,1,5,131,135,1,10,135,139,1,139,2,143,1,6,143,0,99,2,14,0,0]
def processing = true
def position = 0
input[1] = noun
input[2] = verb
while (processing) {
switch (input[position]) {
case 1:
def one = input[input[position + 1]]
def two = input[input[position + 2]]
input[input[position + 3]] = one + two
break
case 2:
def one = input[input[position + 1]]
def two = input[input[position + 2]]
input[input[position + 3]] = one * two
break
default:
processing = false
}
position += 4
}
return input[0]
}
println "Part 1: " + intcode(12, 2)
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
if (intcode(i, j) == 19690720) {
println "Part 2: " + (100 * i + j)
break
}
}
}
import java.awt.Point;
def input1 = 'R998,U367,R735,U926,R23,U457,R262,D473,L353,U242,L930,U895,R321,U683,L333,U623,R105,D527,R437,D473,L100,D251,L958,U384,R655,U543,L704,D759,R529,D176,R835,U797,R453,D650,L801,U437,L468,D841,R928,D747,L803,U677,R942,D851,R265,D684,L206,U763,L566,U774,L517,U337,L86,D585,R212,U656,L799,D953,L24,U388,L465,U656,L467,U649,R658,U519,L966,D290,L979,D819,R208,D907,R941,D458,L882,U408,R539,D939,R557,D771,L448,U460,L586,U148,R678,U360,R715,U312,L12,D746,L958,U216,R275,D278,L368,U663,L60,D543,L605,D991,L369,D599,R464,D387,L835,D876,L810,U377,L521,U113,L803,U680,L732,D449,R891,D558,L25,U249,L264,U643,L544,U504,R876,U403,R950,U19,L224,D287,R28,U914,R906,U970,R335,U295,R841,D810,R891,D596,R451,D79,R924,U823,L724,U968,R342,D349,R656,U373,R864,U374,L401,D102,L730,D886,R268,D188,R621,U258,L788,U408,L199,D422,R101,U368,L636,U543,R7,U722,L533,U242,L340,D195,R158,D291,L84,U936,L570,D937,L321,U947,L707,U32,L56,U650,L427,U490,L472,U258,R694,U87,L887,U575,R826,D398,R602,U794,R855,U225,R435,U591,L58,U281,L834,D400,R89,D201,L328,U278,L494,D70,L770,D182,L251,D44,R753,U431,R573,D71,R809,U983,L159,U26,R540,U516,R5,D23,L603,U65,L260,D187,R973,U877,R110,U49,L502,D68,R32,U153,R495,D315,R720,D439,R264,D603,R717,U586,R732,D111,R997,U578,L243,U256,R147,D425,L141,U758,R451,U779,R964,D219,L151,D789,L496,D484,R627,D431,R433,D761,R355,U975,L983,U364,L200,U578,L488,U668,L48,D774,R438,D456,L819,D927,R831,D598,L437,U979,R686,U930,L454,D553,L77,D955,L98,U201,L724,U211,R501,U492,L495,U732,L511'
def input2 = 'L998,U949,R912,D186,R359,D694,L878,U542,L446,D118,L927,U175,R434,U473,R147,D54,R896,U890,R300,D537,R254,D322,R758,D690,R231,U269,R288,U968,R638,U192,L732,D355,R879,U451,R336,D872,L141,D842,L126,U584,L973,D940,R890,D75,L104,U340,L821,D590,R577,U859,L948,D199,L872,D751,L368,U506,L308,U827,R181,U94,R670,U901,R739,D48,L985,D801,R722,D597,R654,D606,R183,U646,R939,U677,R32,U936,L541,D934,R316,U354,L415,D930,R572,U571,R147,D609,L534,D406,R872,D527,L816,D960,R652,D429,L402,D858,R374,D930,L81,U106,R977,U251,R917,U966,R353,U732,L613,U280,L713,D937,R481,U52,R746,U203,L500,D557,L209,U249,R89,D58,L149,U872,R331,D460,R343,D423,R392,D160,L876,U981,L399,D642,R525,U515,L537,U113,R886,D516,L301,D680,L236,U399,R460,D869,L942,D280,R669,U476,R683,D97,R199,D444,R137,D489,L704,D120,R753,D100,L737,U375,L495,D325,R48,D269,R575,U895,L184,D10,L502,D610,R618,D744,R585,U861,R695,D775,L942,U64,L819,U161,L332,U513,L461,D366,R273,D493,L197,D97,L6,U63,L564,U59,L699,U30,L68,U861,R35,U564,R540,U371,L115,D595,L412,D781,L185,D41,R207,D264,R999,D799,R421,D117,R377,D571,R268,D947,R77,D2,R712,D600,L516,U389,L868,D762,L996,U205,L178,D339,L844,D629,R67,D732,R109,D858,R630,U470,L121,D542,L751,U353,L61,U770,R952,U703,R264,D537,L569,U55,L795,U389,R836,U166,R585,U275,L734,U966,L130,D357,L260,U719,L647,D606,R547,U575,R791,U686,L597,D486,L774,U386,L163,U912,L234,D238,L948,U279,R789,U300,R117,D28,L833,U835,L340,U693,R343,D573,R882,D241,L731,U812,R600,D663,R902,U402,R831,D802,L577,U920,L947,D538,L192'
//def input1 = 'R8,U5,L5,D3'
//def input2 = 'U7,R6,D4,L4'
def findPoints = {input ->
def start = new Point(0,0)
def points = [];
input.split(',').each {
def direction = it[0]
int amount = Integer.parseInt(it[1..-1])
def doWhat
switch (direction) {
case 'R':
doWhat = {x->x.translate(1, 0)}
break
case 'U':
doWhat = {x->x.translate(0, 1)}
break
case 'L':
doWhat = {x->x.translate(-1, 0)}
break
case 'D':
doWhat = {x->x.translate(0, -1)}
break
}
for (int i = 0; i < amount; i++) {
doWhat(start)
points.add(start.location)
}
}
return points
}
def points1 = findPoints(input1)
def points2 = findPoints(input2)
def intersect = points1.intersect(points2)
println "Part 1: " + intersect.collect{Math.abs(0 - it.x) + Math.abs(0 - it.y)}.min()
println "Part 2: " + intersect.collect{points1.indexOf(it) + 1 + points2.indexOf(it) + 1}.min()
int lower = 171309
int upper = 643603
def hasDouble = { String asString ->
for (int i = 0; i < asString.size() - 1; i++) {
if (asString[i] == asString[i + 1]) {
return true
}
}
return false
}
def repeatedJustTwice = { String asString ->
def letterMap = asString.collect { it }
return letterMap.collect { a -> letterMap.count { b -> a == b } }.find { it == 2 } != null
}
def isAscending = { String asString ->
for (int i = 0; i < asString.size() - 1; i++) {
if (asString[i] > asString[i + 1]) {
return false
}
}
return true
}
def countPart1 = 0
def countPart2 = 0
for (int i = lower; i < upper; i++) {
String asString = i.toString()
if (isAscending(asString)) {
if (hasDouble(asString)) {
countPart1++
if (repeatedJustTwice(asString)) {
countPart2++
}
}
}
}
println "Part 1: " + countPart1
println "Part 2: " + countPart2
def intcode = { input, programme ->
def processing = true
def position = 0
def output = null
while (processing) {
def instructions = programme[position].toString().padLeft(5, '0')
def instruction = Integer.parseInt(instructions[-2..-1])
def one
def two
def move = 0
if (instruction in [1,2,4,5,6,7,8]) {
one = instructions[-3] == '0' ? programme[programme[position + 1]] : programme[position + 1]
if (instruction != 4) {
two = instructions[-4] == '0' ? programme[programme[position + 2]] : programme[position + 2]
}
}
switch (instruction) {
case 1:
programme[programme[position + 3]] = one + two
move = 4
break
case 2:
programme[programme[position + 3]] = one * two
move = 4
break
case 3:
programme[programme[position + 1]] = input
move = 2
break
case 4:
output = one
// println "output: "+output
move = 2
break
case 5:
position = one != 0 ? two : position + 3
break
case 6:
position = one == 0 ? two : position + 3
break
case 7:
programme[programme[position + 3]] = one < two ? 1 : 0
move = 4
break
case 8:
programme[programme[position + 3]] = one == two ? 1 : 0
move = 4
break
default:
processing = false
}
position += move
}
return output
}
println "Part 1: " + intcode(1, [3, 225, 1, 225, 6, 6, 1100, 1, 238, 225, 104, 0, 1102, 57, 23, 224, 101, -1311, 224, 224, 4, 224, 1002, 223, 8, 223, 101, 6, 224, 224, 1, 223, 224, 223, 1102, 57, 67, 225, 102, 67, 150, 224, 1001, 224, -2613, 224, 4, 224, 1002, 223, 8, 223, 101, 5, 224, 224, 1, 224, 223, 223, 2, 179, 213, 224, 1001, 224, -469, 224, 4, 224, 102, 8, 223, 223, 101, 7, 224, 224, 1, 223, 224, 223, 1001, 188, 27, 224, 101, -119, 224, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 7, 224, 1, 223, 224, 223, 1, 184, 218, 224, 1001, 224, -155, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 7, 224, 1, 224, 223, 223, 1101, 21, 80, 224, 1001, 224, -101, 224, 4, 224, 102, 8, 223, 223, 1001, 224, 1, 224, 1, 224, 223, 223, 1101, 67, 39, 225, 1101, 89, 68, 225, 101, 69, 35, 224, 1001, 224, -126, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 1, 224, 1, 224, 223, 223, 1102, 7, 52, 225, 1102, 18, 90, 225, 1101, 65, 92, 225, 1002, 153, 78, 224, 101, -6942, 224, 224, 4, 224, 102, 8, 223, 223, 101, 6, 224, 224, 1, 223, 224, 223, 1101, 67, 83, 225, 1102, 31, 65, 225, 4, 223, 99, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, 0, 99999, 1105, 227, 247, 1105, 1, 99999, 1005, 227, 99999, 1005, 0, 256, 1105, 1, 99999, 1106, 227, 99999, 1106, 0, 265, 1105, 1, 99999, 1006, 0, 99999, 1006, 227, 274, 1105, 1, 99999, 1105, 1, 280, 1105, 1, 99999, 1, 225, 225, 225, 1101, 294, 0, 0, 105, 1, 0, 1105, 1, 99999, 1106, 0, 300, 1105, 1, 99999, 1, 225, 225, 225, 1101, 314, 0, 0, 106, 0, 0, 1105, 1, 99999, 1007, 226, 226, 224, 102, 2, 223, 223, 1005, 224, 329, 1001, 223, 1, 223, 108, 677, 226, 224, 1002, 223, 2, 223, 1005, 224, 344, 1001, 223, 1, 223, 1007, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 359, 1001, 223, 1, 223, 1107, 677, 226, 224, 102, 2, 223, 223, 1006, 224, 374, 1001, 223, 1, 223, 8, 226, 677, 224, 1002, 223, 2, 223, 1006, 224, 389, 101, 1, 223, 223, 8, 677, 677, 224, 102, 2, 223, 223, 1006, 224, 404, 1001, 223, 1, 223, 1008, 226, 226, 224, 102, 2, 223, 223, 1006, 224, 419, 1001, 223, 1, 223, 107, 677, 226, 224, 102, 2, 223, 223, 1006, 224, 434, 101, 1, 223, 223, 7, 226, 226, 224, 1002, 223, 2, 223, 1005, 224, 449, 1001, 223, 1, 223, 1107, 226, 226, 224, 1002, 223, 2, 223, 1006, 224, 464, 1001, 223, 1, 223, 1107, 226, 677, 224, 1002, 223, 2, 223, 1005, 224, 479, 1001, 223, 1, 223, 8, 677, 226, 224, 1002, 223, 2, 223, 1006, 224, 494, 1001, 223, 1, 223, 1108, 226, 677, 224, 1002, 223, 2, 223, 1006, 224, 509, 101, 1, 223, 223, 1008, 677, 677, 224, 1002, 223, 2, 223, 1006, 224, 524, 1001, 223, 1, 223, 1008, 677, 226, 224, 102, 2, 223, 223, 1006, 224, 539, 1001, 223, 1, 223, 1108, 677, 677, 224, 102, 2, 223, 223, 1005, 224, 554, 101, 1, 223, 223, 108, 677, 677, 224, 102, 2, 223, 223, 1006, 224, 569, 101, 1, 223, 223, 1108, 677, 226, 224, 102, 2, 223, 223, 1005, 224, 584, 1001, 223, 1, 223, 108, 226, 226, 224, 1002, 223, 2, 223, 1005, 224, 599, 1001, 223, 1, 223, 1007, 226, 677, 224, 102, 2, 223, 223, 1005, 224, 614, 1001, 223, 1, 223, 7, 226, 677, 224, 102, 2, 223, 223, 1006, 224, 629, 1001, 223, 1, 223, 107, 226, 226, 224, 102, 2, 223, 223, 1005, 224, 644, 101, 1, 223, 223, 7, 677, 226, 224, 102, 2, 223, 223, 1005, 224, 659, 101, 1, 223, 223, 107, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 674, 1001, 223, 1, 223, 4, 223, 99, 226])
println "Part 2: " + intcode(5, [3, 225, 1, 225, 6, 6, 1100, 1, 238, 225, 104, 0, 1102, 57, 23, 224, 101, -1311, 224, 224, 4, 224, 1002, 223, 8, 223, 101, 6, 224, 224, 1, 223, 224, 223, 1102, 57, 67, 225, 102, 67, 150, 224, 1001, 224, -2613, 224, 4, 224, 1002, 223, 8, 223, 101, 5, 224, 224, 1, 224, 223, 223, 2, 179, 213, 224, 1001, 224, -469, 224, 4, 224, 102, 8, 223, 223, 101, 7, 224, 224, 1, 223, 224, 223, 1001, 188, 27, 224, 101, -119, 224, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 7, 224, 1, 223, 224, 223, 1, 184, 218, 224, 1001, 224, -155, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 7, 224, 1, 224, 223, 223, 1101, 21, 80, 224, 1001, 224, -101, 224, 4, 224, 102, 8, 223, 223, 1001, 224, 1, 224, 1, 224, 223, 223, 1101, 67, 39, 225, 1101, 89, 68, 225, 101, 69, 35, 224, 1001, 224, -126, 224, 4, 224, 1002, 223, 8, 223, 1001, 224, 1, 224, 1, 224, 223, 223, 1102, 7, 52, 225, 1102, 18, 90, 225, 1101, 65, 92, 225, 1002, 153, 78, 224, 101, -6942, 224, 224, 4, 224, 102, 8, 223, 223, 101, 6, 224, 224, 1, 223, 224, 223, 1101, 67, 83, 225, 1102, 31, 65, 225, 4, 223, 99, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, 0, 99999, 1105, 227, 247, 1105, 1, 99999, 1005, 227, 99999, 1005, 0, 256, 1105, 1, 99999, 1106, 227, 99999, 1106, 0, 265, 1105, 1, 99999, 1006, 0, 99999, 1006, 227, 274, 1105, 1, 99999, 1105, 1, 280, 1105, 1, 99999, 1, 225, 225, 225, 1101, 294, 0, 0, 105, 1, 0, 1105, 1, 99999, 1106, 0, 300, 1105, 1, 99999, 1, 225, 225, 225, 1101, 314, 0, 0, 106, 0, 0, 1105, 1, 99999, 1007, 226, 226, 224, 102, 2, 223, 223, 1005, 224, 329, 1001, 223, 1, 223, 108, 677, 226, 224, 1002, 223, 2, 223, 1005, 224, 344, 1001, 223, 1, 223, 1007, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 359, 1001, 223, 1, 223, 1107, 677, 226, 224, 102, 2, 223, 223, 1006, 224, 374, 1001, 223, 1, 223, 8, 226, 677, 224, 1002, 223, 2, 223, 1006, 224, 389, 101, 1, 223, 223, 8, 677, 677, 224, 102, 2, 223, 223, 1006, 224, 404, 1001, 223, 1, 223, 1008, 226, 226, 224, 102, 2, 223, 223, 1006, 224, 419, 1001, 223, 1, 223, 107, 677, 226, 224, 102, 2, 223, 223, 1006, 224, 434, 101, 1, 223, 223, 7, 226, 226, 224, 1002, 223, 2, 223, 1005, 224, 449, 1001, 223, 1, 223, 1107, 226, 226, 224, 1002, 223, 2, 223, 1006, 224, 464, 1001, 223, 1, 223, 1107, 226, 677, 224, 1002, 223, 2, 223, 1005, 224, 479, 1001, 223, 1, 223, 8, 677, 226, 224, 1002, 223, 2, 223, 1006, 224, 494, 1001, 223, 1, 223, 1108, 226, 677, 224, 1002, 223, 2, 223, 1006, 224, 509, 101, 1, 223, 223, 1008, 677, 677, 224, 1002, 223, 2, 223, 1006, 224, 524, 1001, 223, 1, 223, 1008, 677, 226, 224, 102, 2, 223, 223, 1006, 224, 539, 1001, 223, 1, 223, 1108, 677, 677, 224, 102, 2, 223, 223, 1005, 224, 554, 101, 1, 223, 223, 108, 677, 677, 224, 102, 2, 223, 223, 1006, 224, 569, 101, 1, 223, 223, 1108, 677, 226, 224, 102, 2, 223, 223, 1005, 224, 584, 1001, 223, 1, 223, 108, 226, 226, 224, 1002, 223, 2, 223, 1005, 224, 599, 1001, 223, 1, 223, 1007, 226, 677, 224, 102, 2, 223, 223, 1005, 224, 614, 1001, 223, 1, 223, 7, 226, 677, 224, 102, 2, 223, 223, 1006, 224, 629, 1001, 223, 1, 223, 107, 226, 226, 224, 102, 2, 223, 223, 1005, 224, 644, 101, 1, 223, 223, 7, 677, 226, 224, 102, 2, 223, 223, 1005, 224, 659, 101, 1, 223, 223, 107, 677, 677, 224, 1002, 223, 2, 223, 1005, 224, 674, 1001, 223, 1, 223, 4, 223, 99, 226])
//test cases
for (int i = 0; i < 10; i++) {
assert intcode(i, [3,9,8,9,10,9,4,9,99,-1,8]) == (i == 8 ? 1 : 0)
assert intcode(i, [3,9,7,9,10,9,4,9,99,-1,8]) == (i < 8 ? 1 : 0)
assert intcode(i, [3,3,1108,-1,8,3,4,3,99]) == (i == 8 ? 1 : 0)
assert intcode(i, [3,3,1107,-1,8,3,4,3,99]) == (i < 8 ? 1 : 0)
assert intcode(i, [3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99]) == (i < 8 ? 999 : i == 8 ? 1000 : 1001)
}
assert intcode(0, [3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9]) == 0
assert intcode(1, [3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9]) == 1
assert intcode(0, [3,3,1105,-1,9,1101,0,0,12,4,12,99,1]) == 0
assert intcode(1, [3,3,1105,-1,9,1101,0,0,12,4,12,99,1]) == 1
def input="""F4H)7LQ
TG2)G6N
Y6X)5MP
TK5)5KN
LLY)WKD
XL2)94R
BTG)PQ1
DLS)LR5
X4H)C93
JK5)WB1
GRQ)9RF
YVJ)1SJ
XPV)T62
N6B)735
ZBD)C78
XYT)LSN
TTW)JQY
MP6)68B
BVT)VFN
YTZ)83Q
DP5)FCJ
61Q)SYF
7JG)D23
5SF)QJS
8BW)F52
4DB)ZLT
F1F)QQL
3XG)RYX
54Z)SJ8
KDD)44C
GGJ)7LV
DRC)P22
XD7)DXM
G9Y)VLV
7XC)BV7
265)Y7N
JN4)8XM
RKX)ZDK
556)H6B
WKD)YDF
Z3T)B4N
T83)ZMP
3M2)5TN
83Q)SX9
9R9)X4H
ZV9)YHM
PG8)7WP
23M)4N7
SX9)QJR
V5J)VNL
XJP)M3V
YR3)DZX
6VZ)HQ1
QQV)BCZ
JC2)2FQ
JCS)SJC
46V)H1F
F6M)17N
S7Q)7R8
HG7)HQC
KGP)MD8
X3R)679
JWQ)ZNT
VNG)WHN
B11)YB9
FBM)BLX
26Q)QTZ
5MH)72G
DK8)BJJ
8C2)TYH
CCF)1Y5
5GF)X48
MP2)LRM
GT5)1SZ
XJK)3ZF
WNX)CNN
JN4)ZWG
WK1)8DX
KPN)3TW
GMC)ZBD
ZX5)9RD
CD4)NC7
H1F)4GC
VLV)DFW
2F3)7P2
G6S)85X
49H)K1P
WCQ)Y93
TF9)HL7
2FQ)D4B
992)7JG
JBH)VHV
53N)WMR
M3V)43Q
C8B)MFX
D4C)PKS
855)4HH
WWF)GGM
KKR)88M
COM)KHS
LDN)CRH
FRB)KYK
FYC)R85
L28)WBT
CM7)LT9
5WV)Y7S
DF6)Y12
JDQ)2KF
8Y4)XF2
SP2)W7T
7C3)H8S
BD8)51R
Q96)7WM
BCX)RG4
1CW)8VH
CSW)K6P
JRR)KSF
T7W)QBT
94R)XSK
QD9)ZDD
LD8)HC7
K1P)698
K5H)MDY
ZWG)C8B
X48)Y9L
6RH)654
SRH)M15
3ZF)LD4
T3W)1TS
C93)MYT
D8S)HM8
VQB)SYN
XPX)W37
QLS)1F8
JXQ)H9F
ZLT)BMY
758)9R9
WMR)GP1
3ZQ)K1Q
F52)52M
Q4B)CM7
RPW)VYB
YYV)CTL
7LV)53N
3WL)KX6
QCG)4SX
NYK)HVJ
F7G)JLG
RZH)B14
PWD)963
X5W)9MC
NJS)3TR
1MQ)JBH
36D)SY4
YDF)Y88
8KX)6VZ
215)TW9
S1V)5CN
BWH)LV7
2XT)CGT
ZRK)TG2
MFB)L35
MHT)M4C
NMY)KGP
9RF)C5T
SKY)X5D
HJ6)Y9C
TGT)2ZQ
YQQ)P89
Q4X)28M
3V2)7Q5
P3V)756
L1V)M9L
VZT)P6S
N6T)MP6
BHL)TLD
S6W)79Q
GB5)XD7
6Z7)X5W
CFC)JS8
2DJ)LZK
4HH)CXG
K1Q)TTW
B5D)HLF
8ZR)34Z
Q19)NV8
28L)BHL
DVT)X8D
QGH)L5N
Q9J)X78
WM4)TSP
RG4)514
4K6)M1M
W8Y)NZ2
ZRQ)VJM
VT8)B6X
RY1)JDQ
X8D)C1G
G6N)MN1
6XJ)NMP
ZMP)7G2
1JD)XL5
M4C)G2F
Q3N)W7Z
PWR)3NF
2J3)215
F33)GK9
SDR)5XZ
53N)TZT
QJS)72Q
KWT)6Q6
SX9)771
4DB)97W
DN1)VY9
ZH1)SCN
F52)GH4
HS1)8N5
MYV)CXP
XC1)LD8
F5F)WCQ
4ZC)P3V
LR5)XL2
2H1)BMH
K52)858
NVX)85N
5JW)XNL
5RM)TF8
TW3)4T8
3ZJ)KZZ
WXS)37V
72T)RR4
ZZC)Q19
3VM)ZL3
X2C)MFB
91H)TJF
GJD)CDC
LSY)FLK
LRM)L4P
65C)Z3P
7JZ)2XT
QJR)J4F
MKM)L46
S2S)3V9
MH9)PYK
ZBW)1TV
MDY)QXW
DXV)VGW
NB1)34B
9VS)YWD
GJL)2F3
1BH)J4K
BLX)HY2
HDN)TK5
Q96)JLD
DWV)MV8
BDF)NGQ
CFC)HKM
QG9)DK8
TNH)1S9
WHN)HC9
WP3)VQB
QXW)SKN
QYZ)DG2
6N9)NDH
Q7X)F33
6K1)YBK
WK9)SKY
L5Y)X7V
1SZ)J2X
8Y1)2J3
WFK)MTK
YKR)YK5
VGW)YYV
PXQ)3WL
21L)272
1CR)2DJ
SXV)J26
V41)2VS
SRW)5JS
97W)K17
R7R)C5H
9CC)P59
KLR)DCD
SNQ)JB6
43Q)JW5
KQ9)6XJ
W84)HSM
PYS)YQQ
47W)2DG
NDR)PXQ
7JT)WZX
2N6)SZ8
4T8)FV7
9DX)BC1
JS8)1CV
D4B)YMD
NJS)GY1
GV8)91D
SCM)818
L5N)GDV
T62)47D
SQT)R4V
ZBT)9F3
LDB)NX7
WTF)1WN
BLX)FMW
GZB)KLR
VJM)NPD
GGM)BFL
52M)49P
C6Z)3JT
WDX)WNX
C5T)2YY
QX9)96M
TLN)HQQ
BV7)51L
7WM)5DB
ZKK)YVG
SCN)MRM
8QY)7KX
8FS)MJG
19S)WV9
QQV)KJY
6Z5)FYC
ZYL)RG5
QMR)PH6
68B)7FD
72Q)S1V
BCB)C4Q
NC7)9T8
2XT)Q3N
54D)CWD
TSP)X2C
HFY)LNL
HL7)54Z
5KN)DZK
93Q)3PH
MD8)Y7L
CT6)RPW
YSD)M25
ZWG)DVX
K95)Q8T
C38)JH7
HNX)LSG
GZB)T82
WVJ)J8R
3JP)8BW
TVN)B82
524)CB6
CHZ)GZB
1F3)YWK
CXG)98G
CR5)VNG
Q8T)DVT
H6B)K5R
B49)6MZ
4QF)9YT
3YL)F1F
2KF)N7M
9MC)K4Z
JLD)L9V
3GR)FYS
VHH)D5D
NPD)L7P
PQ1)Z1K
3S4)RBD
YVG)2WN
YBK)RKX
HS6)KQ5
G3Z)91H
L5Q)LMN
M15)KQ9
MZD)JSX
3PH)T1M
5Y2)1N7
NX5)YM5
VL4)69H
2GS)1D6
47T)LHW
FW3)4K6
XR4)9VK
MQ9)D4S
R2N)X6T
HM8)JTX
GGR)892
TKL)QLS
B8Y)Q4P
3KF)4VM
8BS)9P2
SYN)2ZC
KJZ)GGJ
CW3)R28
GQN)Y62
R9R)B5D
6FJ)TF9
8N4)JGY
W66)W2D
T78)M11
RR4)G9Y
5B8)3M2
C8Q)13M
4HM)BCB
FQV)N6B
LGN)DST
MX9)P4W
VT7)4T2
BMH)JJB
YZF)MP2
B7D)HT4
H7R)X2F
8X8)D4H
RG9)2VM
YB9)Q7X
TBY)FLL
GP1)3BJ
HL9)HFT
KQ5)LJH
5FQ)D4C
BJJ)MX9
L3B)45C
TQN)32C
GH4)STG
82M)HSH
N7M)PSD
5V7)5TD
223)36G
4L5)ZYJ
9VK)62Q
1WN)CLG
37Z)JXQ
PKS)H6C
CXL)1TD
3YV)F6M
63H)943
X42)ZGP
TLD)S3W
96Y)2H1
1DM)FC8
6SR)QJP
8F9)K95
9T6)GQ6
SCZ)969
3TR)3VX
X42)RDS
13M)RZH
TV1)LDN
5PV)XR4
TKK)8K2
KJZ)QLH
HC9)ZBT
MKB)56X
KM9)GQ5
H9B)FKT
QJS)HM6
NV8)5JW
H2H)Z99
56W)3S4
586)82M
7XK)3XG
4T2)HTN
K52)4F6
NNT)JN6
WB1)X42
LZK)SKD
XDN)TW3
P21)WFK
7Y8)4DB
D5J)V5J
WKD)F64
M1M)5F4
F33)BPZ
SPZ)SDC
16V)J2B
7X9)YZF
7YX)95R
RG5)MJY
2NM)QKC
BPZ)ZBW
VK6)G61
STG)46V
39L)R1R
ZG9)4BB
HDN)9YR
68W)3M1
1M6)561
5JZ)D1W
3VX)JTH
SLY)HDN
ZDK)2NG
5TD)54D
W37)9FG
5JS)NB1
DTY)KRB
37V)9CM
F51)3ZJ
JKR)B8Y
D1W)WK9
KXF)DWV
ZHB)7KY
VSM)B8P
8BW)FW3
2LT)5VB
29W)1HY
3VX)5V7
WBT)6QN
KNS)SH6
WP1)4HM
CQW)3QW
PFB)43J
GBK)YC5
LVW)5PV
VHK)VJH
2TS)LDB
ZHF)PTT
VJH)MQ9
3HY)VF4
2Z7)X5C
43P)FHB
Z75)X3G
LL7)76L
LHW)VF8
1TV)8C2
5VB)SPZ
Y62)HNG
HSM)VVR
9SY)6N7
Z3P)CHB
J2B)SRH
J26)YSB
2KW)DBJ
99Z)SCM
7ZK)8NL
R7R)2GS
SH6)BGY
VTH)N44
ML1)FF8
LH8)8Y1
F48)3VM
7KX)7HX
VFN)PFB
QJP)RJB
4L5)48C
VVR)MCW
8N4)NDR
756)PWK
NDH)X3K
NNT)H9B
L28)56W
RBD)W57
KXF)PSP
2HJ)KJZ
6KX)589
FV7)NMY
QMC)2TS
96Y)2HJ
HNG)WDX
4BB)R2G
51L)L28
G5W)QTM
LD9)NMN
FRF)4JG
Z67)9GC
Q2T)L91
CXW)K5H
YQN)VL4
K5R)QZ5
17N)H3K
SDC)4J1
CLG)ZZF
C74)MH9
TV6)39L
RP1)Y1Y
KHS)S4H
827)DCX
DS9)5PG
79Q)G5W
V66)ZTL
ZTL)6X1
DZX)VT7
PW8)G3Z
F4K)PXM
GHW)FP9
6XK)NNT
QKC)CDS
C78)K6F
1HY)WJP
3YL)HLN
Y7S)KLJ
QTN)H6Y
WS5)XJP
1D3)T7W
5DB)6J3
CHB)WVV
93Q)QX9
CMQ)W8Y
DTQ)F1G
PRL)9HS
J2X)TJX
TDX)KT1
YZQ)G3K
CM7)F7G
3V9)9T6
W3X)BD8
NZ2)MHT
C48)D47
XL5)M1P
F4H)1NP
NJK)3LX
589)LG7
YSB)GBK
X5C)CRV
R5L)WXS
HC7)Q4X
514)GX8
Y7S)HG7
9FG)SRW
Y12)M99
45H)R5L
NXV)2CK
574)VHK
YNG)VTH
QYZ)ZYL
32C)XHF
D41)W9K
HLF)9PQ
W92)VZT
47D)MLP
HY2)QMC
7G2)SLY
DXV)MKB
3BJ)HL9
W7T)PG8
5TN)MQW
9GC)KWT
X48)Y6X
7P2)S8B
5VX)GMC
DG2)5X8
QZ5)5MH
6YF)FZ1
44C)2HT
7R8)L5Q
7PM)6VD
YWK)R3B
J92)W8M
H6Y)QGH
H9F)5JZ
P6S)T77
8K2)38J
D5D)4D7
FP9)QQV
GCS)H7R
DCC)9SN
1TV)72T
7FD)7CL
6J3)QRL
MSF)64F
3M7)CD4
128)3KF
855)TV6
8NL)WM4
ZCY)C48
9NN)D5J
QTM)W3N
QG9)1K4
2KF)NWL
8GL)VHH
7LQ)7XK
YHM)ZG9
LGN)YKR
MYT)3MK
L96)YQN
D4S)SRP
1QP)G2S
WM4)MSQ
LTV)YCM
2TT)6FJ
C17)8TF
5C8)YZQ
WVV)JVR
P89)GJD
GGQ)8GL
PK7)F48
5WR)MB5
Y62)HT9
D41)QG9
DFW)LKM
BV3)96Y
3SF)93Q
C78)7C3
MFX)3M7
N44)1M8
WWF)NY2
2WN)WK1
X5D)N6T
96L)QL4
J4K)J1X
G2S)S6W
GL3)S3K
3WL)2Z7
RHQ)GJL
C1G)GYW
CSW)VT8
ZKS)L3B
ZZN)YNG
3LX)DGG
HLN)N48
F64)574
ZGP)DXV
1M8)ZH1
YM5)L5Y
GDV)NX5
MQW)1T3
1KP)W84
DG9)K2W
6RH)BD7
FLK)CR5
FHB)7ZK
LD2)ZV5
XKR)JC2
GDG)5WV
Y9C)PYS
L27)GGQ
GYW)HS1
679)SXV
2VS)8QY
72G)XJK
RJB)8N4
3MK)WWF
MTK)F2W
HTM)LGN
RXP)7JT
X28)6Z7
GY1)Z8Y
MMX)WP3
3ZJ)FRB
735)2NM
1D6)8X8
TN9)4ZC
DPV)739
7PS)XPX
PPJ)BXZ
JW5)M5D
ZDD)1JD
1Y5)ZVQ
SJ8)45K
3ZQ)RYQ
43J)JK5
MFX)2TT
Z67)ZKS
D2G)HK2
GX8)5RM
M11)GNK
W7T)NJK
771)5VT
G2F)3R2
Y1Y)D8S
C3G)S63
B5N)8Y4
BGY)KPN
GK9)6K1
Y7L)H2B
CQL)DPV
F2K)TQC
38J)LSY
YVR)GB5
M1Z)H2Q
FCJ)3YL
P22)8KX
1TS)F5F
QL4)W92
CG5)D41
MKY)WVJ
H2Q)1BM
DCD)PDC
3JT)47T
GQ6)RP1
Y93)GCS
NMP)76S
3NF)YYM
PHQ)4QF
DR8)JXJ
64F)5B8
BFL)PHQ
44S)8FS
85N)5SF
JLG)MSF
3BJ)L96
DGG)GDG
CLM)TGT
J7L)TLW
HT4)7XC
WMV)SNQ
KZ3)9CC
G6T)X81
HFT)4WW
VQB)HVR
GGM)JGV
KX6)SCZ
561)6N9
NDH)BVT
DFG)PRL
NP6)3ZQ
1MQ)MKY
X81)1BH
G55)HS6
4ZX)CQW
62Y)9L7
D6B)6XK
2SH)63H
K2W)3HF
QQL)N51
WZB)5YM
TJF)6RH
G11)348
8YK)Y23
KYK)W67
JGY)77D
HM5)HFY
VY5)DP5
QCL)67G
J7F)7X9
LMK)68W
CXP)62Y
311)6PB
JTX)SAN
P8Q)7HF
1S9)FHL
48J)QCJ
KH6)D91
858)RB3
95Z)C9W
VS1)9DX
Y12)21L
CZB)TKK
Q4P)PXH
GBD)QCL
PXH)TQN
4X3)KW8
RXP)XYT
7VW)1CW
5PG)LVW
KJY)QYZ
MRM)QL1
KN7)3HP
JB6)C3G
H2H)7VW
4F6)TKF
D23)9KH
B6X)1M6
KLJ)2N6
NMN)8ZR
QTZ)SDR
C3G)43P
BRB)FKC
9PQ)BR7
PDC)QCG
KRB)524
Z5M)WP1
K17)5VG
XNL)NCT
26V)C9X
9YR)26Q
QLH)RPD
5VT)FZQ
C9X)BR9
M5D)SVP
NY2)8PF
ZZC)YCZ
Y23)GDP
LR5)855
1CV)J7F
LV7)VS1
783)CG5
ZSL)3WH
L91)1KP
DVX)TYV
SDH)D6F
Y2T)WFB
5K5)NSM
G61)ML1
HM6)Z5M
M11)HTM
XSK)LMK
XJP)45H
L46)WS5
45C)G1K
1SJ)KNS
BC1)HCS
DHH)26V
GV8)CHZ
9F3)HVV
YCS)L27
BXZ)WZB
VF8)NV7
2ZC)75W
9YT)LD2
QMC)TNH
BZ6)B11
HKM)ZKK
CTL)WRS
MKK)697
TYV)GRQ
XS1)L79
5G2)XSG
1BM)44S
X7V)TN9
NGQ)DN1
HT9)VMT
RB3)8BS
SKN)6QL
ZL3)NVX
GDP)WTF
2YY)KZ3
WDD)Q2R
TW9)ZCY
QTV)128
J27)HNX
77D)GQN
52R)YVJ
VY9)ZHB
JSX)HM5
MV8)KDD
Y88)BWH
2DG)K52
ZVQ)3YV
PTT)BDF
75W)ZZN
RYQ)Z5Z
G1K)VSM
WRS)DFG
34B)FLW
95R)T4W
6X1)DHH
FGP)FPK
L1V)RKS
36G)5K5
Z8Y)6WR
6Z2)D2G
X3G)TLN
4N7)DRC
SKY)S2S
2HT)DCC
X78)YRX
L7P)1DM
2NG)BTG
97R)1D3
KW8)5HN
ZNT)WMF
Y2F)2Z1
FZQ)28L
WZX)Q9J
CQX)GBD
LKM)KS8
QL4)CMQ
T77)J92
WMR)556
TYH)LTV
Z99)D6B
FKT)8F9
JQY)QMR
3WH)NXV
WMF)V41
GQ5)QTN
N5M)MKM
RGG)BV3
7Q5)S4C
7HX)R9R
FC8)FRL
MJY)F9D
4D7)F2K
348)DC2
JVR)D1M
K6F)DL1
M99)YOU
8PF)SYQ
L79)FQV
M9L)HJW
FHL)NP6
J4F)7PS
XSK)TC3
KZZ)Z75
VHV)6YF
6QN)52R
BCZ)Z9K
6Q6)5FQ
J6N)DS9
XF2)CCF
C9W)WFD
DCX)B49
GNK)9SM
KW8)TDX
3M1)LH8
KT1)3SF
YK5)16V
9SM)2LT
VF4)SDH
HSH)YCS
RKS)5G5
TDX)7JZ
9CM)2CF
K9H)2KW
3HD)RXP
CQL)FRF
6N7)MMX
JB6)37Z
J2B)FTZ
9RD)49H
3HP)L1V
P4W)CZB
1Y5)FYT
2H1)ZRQ
JH7)6LF
DXM)RG9
X6T)BZ6
69H)GV8
XQ7)Z7R
5NP)QD9
JTH)4L5
FTC)LLY
LT9)PWD
739)SP2
ZZF)DF6
9V6)Q96
R28)4PR
C5H)GHW
7HF)DTY
49P)J27
2LT)CFC
HQQ)JCS
F1G)NVG
JXJ)65C
W7Z)B7D
Q8T)VK6
83Q)CXW
7XC)XQ7
S4H)KM9
5TD)R7R
45P)T83
TC3)ZX5
8N5)61Q
HTN)JRK
W2D)NRH
CB6)9H4
HVV)73D
B82)DR8
9R9)GT5
X2F)GT4
D6F)XDN
DBJ)KH6
Y7N)1F3
SY4)X28
N48)29W
735)JN4
SJC)19S
M25)BP1
HK2)5D4
3R2)7PM
Z9K)YSD
YCM)W1F
JJB)KN7
3TR)36D
48C)RM5
L27)JV6
BD7)CLM
D47)ZWB
R3B)2CP
FMW)4ZX
FPK)JRR
H6C)NMR
HJW)P8Q
5G5)KKR
W84)ZSL
K95)CT6
HQC)JRB
LSG)J7L
5GF)KXF
R2G)95Z
62Q)45P
Q2R)W66
9F3)Q2T
969)XPV
H8S)CM3
G2S)X3R
WS5)XC1
CDS)F4K
TZT)W7W
6LF)9SY
5HN)992
HCS)M1Z
GK9)XKR
BMY)G6T
RHQ)23M
PYK)TXD
VNL)6Z2
7R6)QTV
HVJ)6Z5
S63)HJ6
CWD)CQX
R4V)TV1
4VM)8YK
W9K)J6N
28M)586
TKF)P21
PSD)758
5MP)265
VYB)FBM
SKD)Z3T
7KY)YR3
FYT)9VS
PG8)47W
RDS)CHS
LJH)F4H
8N9)MZD
F9D)3GR
4GC)G7Y
272)Z67
DZK)X54
NRH)ZHF
FF8)LD9
WVQ)R2N
JRK)DG9
6WR)WVQ
J27)JDW
B14)WMV
W7W)QM9
D1M)C38
SRP)RHQ
T1M)S7Q
RYX)Q4B
WJP)T78
48C)BCX
892)JKR
SZ8)48J
DL1)4X3
JCS)G11
KS8)827
1TD)65N
FLL)7YX
65N)783
CNN)5G2
586)311
4SX)8N9
9KH)C8Q
JJB)CQL
YMQ)754
5RC)7R6
ZWB)96L
XSG)3JP
T82)T8Z
ZYJ)K9H
WDD)G55
YC5)9YL
2CK)86G
JN6)3HD
MTK)GGR
KSF)3HY
67G)6KX
DST)KRK
VJH)F51
VMT)99Z
4JG)DLS
TLW)WQB
PWK)PPJ
YMD)ZV9
FRL)FXY
TF9)7Y8
R1R)M79
98G)JWQ
8XM)5GF
TXD)MXZ
MSQ)9NN
4PR)H2H
NVG)PH4
QL1)XMW
MB5)MYV
5XZ)PK7
M79)3V2
PXM)1QP
3HF)XS1
4WW)B5N
6MZ)N5M
B5N)Y2F
TQC)FS9
5YM)TMV
LMN)W3X
RBB)5NP
9VS)CW3
2ZQ)KXV
J7F)NYK
2VM)6JV
2TS)1MQ
NV7)CSW
3JT)FGP
T78)YVR
WV9)YMQ
6JV)2SH
W57)Y2T
L9V)223
F2W)GL3
HVR)RGG
PSP)VY5
7WP)PWR
SYQ)9V6
9YL)6SR
NX7)V66
D4B)RBB
1K4)TBY
X54)ZRK
CM3)6BV
73D)5RC
D91)5C8
6VD)FTC
VTH)C17
SVP)CXL
HQ1)TZ2
TMV)WDD
RM5)DTQ
T8Z)PW8
R85)5WR
7ZK)SQT
5X8)DT1
FTZ)TKL
45K)97R
RPD)RY1
CGT)T3W
TNH)1CR
H2B)TVN
5F4)5VX
MJG)YTZ
J8R)LL7
85X)C6Z
6BV)BRB
YCZ)D3V
56X)ZZC
697)C74
H8S)MKK
9YL)G6S
FLW)NJS
DT1)5Y2"""
def model = input.tokenize().collect{it.tokenize(')')}
class Orbits {
static int count(pair, orbits) {
def parentPair = orbits.find { it[1] == pair[0] }
if (parentPair) {
return 1 + count(parentPair, orbits)
} else {
return 1
}
}
static def orbiting(obj, orbits) {
def pair = orbits.find { it[1] == obj }
if (pair) {
return orbiting(pair[0], orbits) + obj
} else {
return ['COM']
}
}
}
println "Part 1:" + model.collect{Orbits.count(it,model)}.sum()
def santaOrbiting = Orbits.orbiting('SAN', model)
def youOrbiting = Orbits.orbiting('YOU', model)
def common = santaOrbiting.intersect(youOrbiting)
println "Part 2:" + ((santaOrbiting - common).size() + (youOrbiting - common).size() - 2)
enum State {
PROCESSING,
FINISHED,
PAUSED,
AWAITING_INPUT
}
class IntCode {
private int position = 0
private int inputPointer = 0
def state = State.AWAITING_INPUT
def input
def programme
def output = null
IntCode(input, programme) {
this.input = [] + input
this.programme = programme
}
def nextInput(item) {
assert state == State.AWAITING_INPUT || State.PAUSED
input += item
return process()
}
def process() {
state = State.PROCESSING
while (state == State.PROCESSING) {
def instructions = programme[position].toString().padLeft(5, '0')
def instruction = Integer.parseInt(instructions[-2..-1])
def one
def two
def move = 0
if (instruction in [1, 2, 4, 5, 6, 7, 8]) {
one = instructions[-3] == '0' ? programme[programme[position + 1]] : programme[position + 1]
if (instruction != 4) {
two = instructions[-4] == '0' ? programme[programme[position + 2]] : programme[position + 2]
}
}
// println "instruction: "+instruction
// println "one: "+one
// println "two: "+two
switch (instruction) {
case 1:
programme[programme[position + 3]] = one + two
move = 4
break
case 2:
programme[programme[position + 3]] = one * two
move = 4
break
case 3:
if (inputPointer >= input.size()) {
state = State.AWAITING_INPUT
} else {
programme[programme[position + 1]] = input[inputPointer++]
move = 2
}
break
case 4:
output = one
move = 2
state = State.PAUSED
break
case 5:
position = one != 0 ? two : position + 3
break
case 6:
position = one == 0 ? two : position + 3
break
case 7:
programme[programme[position + 3]] = one < two ? 1 : 0
move = 4
break
case 8:
programme[programme[position + 3]] = one == two ? 1 : 0
move = 4
break
default:
state = State.FINISHED
}
position += move
}
return output
}
}
def findCombinations = { phases ->
[phases, phases, phases, phases, phases].combinations().findAll { a, b, c, d, e ->
![b, c, d, e].contains(a) &&
![a, c, d, e].contains(b) &&
![a, b, d, e].contains(c) &&
![a, b, c, e].contains(d) &&
![a, b, c, d].contains(e)
}
}
def partOne = { combinations, prog ->
combinations.collect { combo ->
def next = 0
for (int i = 0; i < combo.size(); i++) {
next = new IntCode([combo[i], next], prog.clone()).process()
}
next
}.max()
}
def partTwo = { combinations, prog ->
combinations.collect { combo ->
def next = 0
combo = combo.collect { new IntCode(it, prog.clone()) }
for (int i = 0; i < combo.size(); i++) {
next = combo[i].nextInput(next)
if (i + 1 == combo.size() && combo[i].state != State.FINISHED) {
i = -1
}
}
next
}.max()
}
def puzzleInput = [3, 8, 1001, 8, 10, 8, 105, 1, 0, 0, 21, 42, 59, 76, 85, 106, 187, 268, 349, 430, 99999, 3, 9, 102, 3, 9, 9, 1001, 9, 2, 9, 1002, 9, 3, 9, 1001, 9, 3, 9, 4, 9, 99, 3, 9, 102, 3, 9, 9, 101, 3, 9, 9, 1002, 9, 2, 9, 4, 9, 99, 3, 9, 102, 3, 9, 9, 1001, 9, 4, 9, 1002, 9, 5, 9, 4, 9, 99, 3, 9, 102, 2, 9, 9, 4, 9, 99, 3, 9, 101, 3, 9, 9, 1002, 9, 2, 9, 1001, 9, 4, 9, 1002, 9, 2, 9, 4, 9, 99, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 99, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 99, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 3, 9, 101, 2, 9, 9, 4, 9, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 1001, 9, 1, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 99, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 99, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 1001, 9, 1, 9, 4, 9, 3, 9, 101, 1, 9, 9, 4, 9, 3, 9, 1002, 9, 2, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 1001, 9, 2, 9, 4, 9, 3, 9, 102, 2, 9, 9, 4, 9, 3, 9, 1002, 9, 2, 9, 4, 9, 99]
def phases = [0, 1, 2, 3, 4]
def combinations = findCombinations(phases)
assert 43210 == partOne(combinations, [3, 15, 3, 16, 1002, 16, 10, 16, 1, 16, 15, 15, 4, 15, 99, 0, 0])
assert 54321 == partOne(combinations, [3, 23, 3, 24, 1002, 24, 10, 24, 1002, 23, -1, 23, 101, 5, 23, 23, 1, 24, 23, 23, 4, 23, 99, 0, 0])
assert 65210 == partOne(combinations, [3, 31, 3, 32, 1002, 32, 10, 32, 1001, 31, -2, 31, 1007, 31, 0, 33, 1002, 33, 7, 33, 1, 33, 31, 31, 1, 32, 31, 31, 4, 31, 99, 0, 0, 0])
println "Part 1: " + partOne(combinations, puzzleInput.clone())
phases = [5, 6, 7, 8, 9]
combinations = findCombinations(phases)
assert 139629729 == partTwo(combinations, [3, 26, 1001, 26, -4, 26, 3, 27, 1002, 27, 2, 27, 1, 27, 26, 27, 4, 27, 1001, 28, -1, 28, 1005, 28, 6, 99, 0, 0, 5])
assert 18216 == partTwo(combinations, [3, 52, 1001, 52, -5, 52, 3, 53, 1, 52, 56, 54, 1007, 54, 5, 55, 1005, 55, 26, 1001, 54, -5, 54, 1105, 1, 12, 1, 53, 54, 53, 1008, 54, 0, 55, 1001, 55, 1, 55, 2, 53, 55, 53, 4, 53, 1001, 56, -1, 56, 1005, 56, 6, 99, 0, 0, 0, 0, 10])
println "Part 2: " + partTwo(combinations, puzzleInput.clone())
def findLayers = { width, height, input ->
input.collect().collate(width * height)
}
def countNumbers = { layer ->
('0'..'9').collect { num -> layer.count { it == num } }
}
def findColours = { layers ->
def result = layers[0].clone()
for (int i = 0; i < result.size(); i++) {
result[i] = layers.collect { it[i] }.find { it != '2' }
}
result
}
def puzzleInput = '221202222022222022021222222222122202202222222122002202221222222222202022202222222222222222222222022222022202221222022222222202222212202222202202222222220212222222222222122222022222022212222222222122002212220222222222202122222222222222222222222222022222022222221222022222222222222202202222212222222222222222222022222122022222122222022212202222222222002222222222222222222222222222222222222222222222222222222202222222022222222202222222002222212212222222220202222222222022121222122222122222212222222122112202220222220222212222202222222222222222222222022222222202222222222222222202222202102222202222222222221202212222222022222222222222022212212212222022202201222222222222212222202222222222222222222222222222222212220222222222222202222222122222212202222222220202222122222222220222122222122222202212222222222202221222220222212122212222222222222222222202222222222222220222022222222222222222222222222222222222221202222122222022222222222222222222202212222122122210222222220222222122222222222222222222222222222222122222222222122222222202222222002222202202220222220202212222222122120222122222222202222202222022012221220222222222202022212222222222222222222222022222222222220222022222222212222222202221202212222222222202222122222122021222122222122222222222222222202200222222222222202022212222222222222222222202122222122212221222022222222212222202122222212222220222221212202222222222121222222222022212222202222022222220221222221222202122212222222222222222222202222222122222222222022222222222222202122222212202221222221202212122222022221222222222022202202222222022011220220222222222202022202222222222222222222222222222222222220222122222222212222212112222222202220222221212222122222022020222022222120222202212222122202221220222222222222022222222222222222222222202222222022202221222022222221202222222222221212222222222221212212022222122020222222222021212212222222222120201220222221222202122202222222202222222222222022222022202221222022222221222222212122222212202220222220222202122222122020222122222220202202212222022000210221222220202202122202222222202222222222222022222022212221222022222220202222202102222202222220222221202222122222222220222022222121202212202222222120212221222222212222122222222222212222222222202222222222222222222222222221212222212002221202222222222221212212022222022122222122222122222222222222222110222222222220212212122212222222200222222212222222222122222222222022222222212222212002222222222220222221212202122222122022222222222121212202222022122120201222222220212222221212222222201222222202202222222022222221222122222220202222212102220202212222222222202202222222122121222122222121212202222122222010200021222221222212121212222222221222222222222122222122212220222222222221212222202002222222222222222221222222222222122121222222222020222212202122022201220120222220222212220212222222210222222222212222222022202220222222222222202222212012222221222222222222212212022222212221222012222220212222212222222200212220222220222222022202222222202222222222202112222022212222222022222222202222222122221222212220222220212212222222112022222002222121202202222022022212200220222220202212222212222222212222222212212122222222202221222022222222222222212022221201212221222220212212122222202022222022222122222212222022022122202220222220222202220222222222211222222222212222222022112221222022222221222222212102220221222220222221222212122222002121222012222122212212212122122120200122222221221222222202222222012222222222222022222122002220222222222220212222202212221212222020222220202222002222022221222102222022222222222122202111201022222222210212222212222222012222222222222100222222122220222122222221212222222002221200202221222222202202002222012020222012222120202222202222112021200220222220201222021222222222222222222212222021222122012222222122022220202222202012220212212121222222212202102202002021222212222222202222202022202210222020222201222202220222222222200222222212202120222122102221222022222220212222222002221222212220222220202222222212222121222212222021222212212022102121201021222202220212122202222222000222222212212010222122102221222022022220212222222102220220222021222220202202212222222222222222222122212202212222212200200121222200220222221222222222001222222222122100222222122220222122222220212222212102220210202222222222212222102202212221222212222222212212212022022202210021222222201212021212222222102222222212122221222022002222222022122220222222202002220212212221222221202221102212212222222222222022202222212222102102221022222200211222021222222222110222222212122220222122202221222022022221212222202212221201212020222221222210002212011122022112222120212222212022202210210022222200212222221202222222200222222222002112222222202220222022222221202222202002220212202020222222221210022212122120022112222121222222202122112200201121222201211212122222222222212222222222012212222122022222222222022220222222222022222210222122222221222222202212122021022022222021222202202222002210211221222210222212221212222222121222222202122010222022222222222022022220202222222002222222222211222220212210112222010222022112220021212202212122122011202122222220211222220202222222022222222222002112222222212220222022122220202222222112222222222102222220210220002222012120022212222122202202222122212110211020222221202212020222222222002222222222102112222122202220222122022221222222212002222220222100222221200222022202211021222222222122202202222122102020222020222202222222220212222222012222222222202202222122222220222222022222222222222222220201202010222222201221012222220121022202221121222222202022222020210121222200211212220202222222222222222222012002222122212221222222022221212222222222221200202102222221221221222210110222122012222222202222202022102200222222222210220212121212222222121222222202012112222122122222222122022221202222212202222201202002222222211210112222001022222222221020222212222220102221222220222200202212120212222222102222222222202101222122002222222022222220202222222022220212212020222222212200122220001121022112220122202212222120112211220121222201022222022220222222001222222202202101222122012221222022022221202222222212222212202000222221012201102221200120022022222220202202222121002101201020222211111212020212222222110222222222102222222222202222222222222220202222202102222201202020222222212210022222001121122220221120222212202022202202220220222211022202020210222222220212222222212202222122122220222122222222202222212222222210202012222220011211122221010021021000222222222212202220112000221222222220221202222221222222212202222212112001222222112220222122222221202222222122220001222210222220012202122220021020220121222122222202202222122012210120222211002212020200222222100212222202012201222122222222222022122222222222212002222121222100222221101211012201221222020221220220202202212021202220220020222211002222222201222222211202202222012111222022112222222022022221222222212212222210222210222221101212012202211022021102220020222222202021122000200021222200010212122220222222001202202202212001222222002222222022022220212222222102221200202021222221212201122212122021021011220220212212202021002022212020222222212222122201222222121212212212022110222122002221222222022220222222212122222002222002222222202200112202220122021112221121202212222220022021211220222210122222121212222222121202212202012222222222212222222222122221202222222202220112202010222220101211222202021222022012222222222222222020022221212120222221101202021222222222211222212222112110222022122221222022222222212222222022221211222222222221101221122202220220022121222120202222202221122010210122222222001222222221122222021212212202012221222222012220222022122220202222222222221222212111222222222200202222211222021112222022202212202221022000202220222212100222022201122222210202212222102201222022122221202122222221212222212012221121212102222220212220112221000222120022220120222202222022112102201120222221222212021222122222101222202222222011222222212220202222222220212222222122222210212002212220222222202222110022222102222120212202202120012122211220222200200202022222222222210222202202112110222222212221222022122221212222222112222012212220222222222211022200122221220212222221212202222122202112212022222212201202022211122222201222222212112121222222022222202222022220201222212112222012202012222220022200002211010121022112222122222222202222022001221122222210210202021200122222222202212201202102222022202221202222022220222222212202221101202200212221020211102212022122120111221021212212222020112120200022222222221212221202022222000222212211012020222022102222222222222220212222222002220222222222222222022200222202122021120000220220222222202021022000201020122211011222021221022222012212222222112220222222122222202022222220222222212022221111212002212222110210022221100222120210221220222202202211222011222222122221010222121201022222211202212202012102222122122222222222122221221222212122221012212011222221201202022210012021220220222222221202202100122012220020222202210212222211022222110202222201022000222122012221002122222221200222202202222100202221222222021200012200111222021112221222221212212012212110211020022221010202120222022222220212222201012012222122022220002222022221202222202000221212222001202220001201112202202022121211220021211002212222012222222021122121012202021200122222110202222221212202222222012220102122122220220222202002221211212112212221120200022200102022021210221022210012202101202212222120022222012212022211222222012212222221112002222022012222002022122221220222022202221212202102222220000220112220210221022010220020202002202102222011201220022002102222021212122222001222202222202202222122122222222022022221220222112010221110212220212220101221202201000120220211222022220122222000022000200022122102012222221222222222020212212112012020222122122220222222022222200222202121220001212011222220021211222200002020121010221122212022222010111202210220122121220202120210122222120222222122012220222222022221022020022222220222022010220111222112202221120100002221220120021010222022220222212222002102200221022110221012221222022222210222202202102200222122102220212121122222201222202121221021212111212220100010012221211122020100221121201122212110020121221121120001122222021220122222110202202121112002222222012221002022022221201222112112221102212222202222112011002201000120121102222222220212222221202000210220221121010022020201222222002202212001112002222122002221122220222221202222112221221020202000202222020121112210210122120212220221202012222220020011202020220112100212020220122222012202212000022122022122102222122120022220210222002220222011202210222221211201202212111122122221220122211022202211121202200121222212010122121210022222121202202100202101222122202221112120022222200222122100220111202211212220120110102221201121022220222022220202222122200212221121020011011012021222222222220222202001112000022022022222102020022220222222122122221111202212212221102100202202110022120022222121202002202200210111222222121111121202020201122222120222222212122202022122222221112121022221221222002220220222222201212222211010002220220122220020221021222012202202220211222120021001112122020220222222100222212011012121012122222220122222122220200222212021220212012212222222200012122211112222122000220221221021222220202012201211021211211002220212222222212202212212222110022122202220112222022220211222112011221001122002202222220122012211201122121210220120211012202212011221211020121101000022122222122222012222222212212221212022202222202021122222221222002012221211222202202220120222112210101120221102220021212221222220011110201220121100010122022221022222112212212001102221202122102222102021022222202222022210220220212202212222021011212222020220022021222020201110212001120122212001121202110122221212022222221212212012011011112022202220012220222220221222212021221102102212222221101211002222211122221022220021202102202222021211212012221011020102020222122222101222212111111210212022122220112110222220221222002202220001202212212221220210122210021020122220220022200010202222112021210002120001102202022220122222122202202211002001222222112221122201022220220222102212221220202112212220012120222212021120020022221022211201212221222202202200222202000112021210022222101222012022202102012222002222102022012220220222222020221110222212212221122222012222010221122021222220220110212001111210222022120021012222022200022222000200010220100212112022022220112221202220220222112212222200112110202222022221012210111100121020220121222020022001102202201010220122200202120202022222011220001220121000022222002220202121222120220222112112222100112221212221210210022212020011220202220022221010112222210212202111122202121122222222122222220210222120210200202222212221201122022021221222100021220200102220202221012112212211201121122221211121212002212100211022221101120221002202111201222222111222222021121221002022022222211221102021220222101022220101022121212222210220022202010221220001222022211102112221012010200002022022011212021201122222122210011121220001202122122221010101102120210222210121221012012211212220102001022210102201120012212022011201112022012222220122020100221222011021122222222210001221002122012122112220122220212221202222202112221121111112202222212120012222200220121222221020022112112212210011212200002211112122200222122222122222100022202200222222012221120220222020220222121102220021022200212221112011012210212100020010220220100021112020121001222000110221012112100201122222100222122122201110012222212221221122022120220222212201221200022010222220100120012212200210121202210120001111022202010010210221012212200112102000222222112222122220111212102122122221222120222020210222100020211012000121202222202021202120001122022011202022221002122120100020212022000021001102122222022222020211012212102210112022122220011201220221200222010000211201211221212220211200012201100101120122210022100122222101200002210122200201120022122021122222210222020011210010222122122221001011202221210222111102202122100220222220100020112101200221121222200220012022212022210221211120100220022202120122022222200202001122212010222222102220210020110220201222002112222012200010212222121202202211020200221220220222002102202220000111212101002112111102101222222222020221120201101220002222112221210001221021210222102120221112201121212222220022222101011121122200222122110022022121202002210002211012110102110020222222110221001100220021102022202221110102121220200222020212211101012112202221200211212112201201021001222022012021222010000221220010222012220012020201222222011220100111020202222022202222100012102220211222100111210012020022222221000112022001201122020021201222112122122012100200220210100211222222222212022222202222112111120101002022012220112022022021201222021021201211102021222220112112112211020222200100210222120020112202100002022001212122120022012010022022122202000201111001022222102221101212122020220222212002201112201211212220011020202010210220021102202220101212202110020200001011210220010122022001022222022222111210200100222122212222212202022222220222212220220220221211022221000212202121010120112211211020201001212202211000221112100122011202012202122022112200220201212011112022212222121212101220212222121002200102200222022110212210021212111120200110002102100002120001211101220211022221012021211101111001110020002010110001220000000000010122211201020000101211002111121122220'
println findLayers(3, 2, '123456789012').collect { countNumbers(it) }
def layers = findLayers(25, 6, puzzleInput)
def layer = layers.collect { countNumbers(it) }.sort { it[0] }[0]
println "Part 1: " + (layer[1] * layer[2])
assert '0110' == findColours(findLayers(2, 2, '0222112222120000')).join()
println "Part 2:"
findColours(layers).collate(25).each { println(it.join().replaceAll('0', ' ')) }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment