import Ġjava . util .* Ċ import Ġkotlin . math . ceil Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval ĠT Ġ= Ġread Line () !!. toInt () ĊĠĠĠ Ġrepeat ( T ) Ġ{ ĠtestCase () Ġ} Ċ } Ċ Ċ fun ĠtestCase () Ġ{ ĊĠĠĠ Ġval ĠA Ġ= Ġread Line () !!. toInt () ĊĊĠĠĠ Ġ// ĠBuild Ġa Ġrectangle Ġof Ġ 3 Ġ* Ġsome Ġlength . ĊĠĠĠ Ġval Ġrectangle Length Ġ= Ġceil ( A . toFloat () Ġ/ Ġ 3 ). toInt (). coerce At Least ( 3 ) ĊĠĠĠ Ġval Ġprepared Rectangle Ġ= ĠBit Set ( rectangle Length Ġ* Ġ 3 ) ĊĠĠĠ Ġfun ĠBit Set . rectangle Set ( x : ĠInt , Ġy : ĠInt ) Ġ= Ġset ( x Ġ* Ġ 3 Ġ+ Ġy ) ĊĠĠĠ Ġfun ĠBit Set . rectangle Get ( x : ĠInt , Ġy : ĠInt ) Ġ= Ġget ( x Ġ* Ġ 3 Ġ+ Ġy ) ĊĊĠĠĠ Ġfor Ġ( num Expected Empty Cells Ġin Ġ 9 Ġdown To Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( cx Ġin Ġ 1 Ġuntil Ġrectangle Length Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠBit Set . count Prepared ( cx : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġcx Ġ- Ġ 1 .. cx Ġ+ Ġ 1 ) Ġfor Ġ( y Ġin Ġ 0 .. 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rectangle Get ( x , Ġy )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnum Empty Cells Ġ= Ġ 9 Ġ- Ġprepared Rectangle . count Prepared ( cx ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( num Empty Cells Ġ> Ġnum Expected Empty Cells ) Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( num Empty Cells Ġ== Ġnum Expected Empty Cells ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= Ġcx Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= Ġ 1 Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ I Ġ$ J ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( Ip , ĠJ p ) Ġ= Ġread Line () !!. split To Sequence (' Ġ'). map Ġ{ Ġit . toInt () Ġ}. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Ip Ġ== Ġ- 1 Ġ&& ĠJ p Ġ== Ġ- 1 ) Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Ip Ġ== Ġ 0 Ġ&& ĠJ p Ġ== Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠIp Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= ĠJ p Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! prepared Rectangle . rectangle Get ( x , Ġy )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprepared Rectangle . rectangle Set ( x , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprintln (" 2 Ġ 2 ") ĊĠĠĠ Ġval Ġ( Ip , ĠJ p ) Ġ= Ġread Line () !!. split To Sequence (' Ġ'). map Ġ{ Ġit . toInt () Ġ}. toList () ĊĠĠĠ Ġif Ġ(!( Ip Ġ== Ġ 0 Ġ&& ĠJ p Ġ== Ġ 0 )) Ġthrow ĠIllegalStateException () Ċ }