package Ġday 8 Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġif Ġ( args . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Must Ġprovide Ġinput Ġdata ") ĊĠĠĠĠĠĠĠ ĠSystem . exit ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġinput Ġ= Ġargs [ 0 ]. map Ġ{ ĠCharacter . get Numeric Value ( it ) Ġ} ĊĊĠĠĠ Ġval Ġimg Size Ġ= Ġ 2 5 Ġ* Ġ 6 ĊĊĠĠĠ Ġval Ġlayers Ġ= Ġinput . chunk ed ( img Size ) ĊĊĠĠĠ Ġval Ġlayer Ġ= Ġlayers . min By Ġ{ Ġit . count Ġ{ Ġit Ġ== Ġ 0 Ġ} Ġ} !! ĊĊĠĠĠ Ġval Ġpart 1 Answer Ġ= Ġlayer . count Ġ{ Ġit Ġ== Ġ 1 Ġ} Ġ* Ġlayer . count Ġ{ it Ġ== Ġ 2 } ĊĊĠĠĠ Ġprintln (" Part Ġ 1 : Ġ$ part 1 Answer ") ĊĊĠĠĠ Ġval Ġimg Ġ= Ġdecode ( layers ) ĊĠĠĠ Ġprintln ( img . replace (' 0 ', Ġ' Ġ')) Ċ } ĊĊ Ċ fun Ġdecode ( layers : ĠList < List < Int >> ): ĠString Ġ{ ĊĠĠĠ Ġval Ġfinal Ġ= Ġlayers . last (). to Mutable List () ĊĠĠĠ Ġlayers . drop Last ( 1 ). as Re versed (). forEach Ġ{ Ġlayer Ġ-> ĊĠĠĠĠĠĠĠ Ġlayer . forEach Indexed Ġ{ Ġindex , Ġpixel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pixel Ġ== Ġ 0 Ġ|| Ġpixel Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal [ index ] Ġ= Ġpixel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfinal . chunk ed ( 2 5 ). join ToString ("\ n ") Ġ{ Ġit . join ToString ("") Ġ} Ċ }