class ĠDay 2 5 ( val Ġinput : ĠList < String >) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġgrid Ġ= Ġinput . map Ġ{ Ġit . toCharArray () Ġ}. to Typed Array () ĊĠĠĠ Ġprivate Ġval Ġeast Ġ= Ġ' >' ĊĠĠĠ Ġprivate Ġval Ġsouth Ġ= Ġ' v ' ĊĠĠĠ Ġprivate Ġval Ġblank Ġ= Ġ'.' ĊĊĠĠĠ Ġprivate Ġfun Ġmove East (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmoved Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( row Ġin Ġgrid . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmoved First Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcol Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( col Ġ< Ġgrid [ 0 ]. size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grid [ row ][ col ] Ġ== Ġeast ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( col Ġ<= Ġgrid [ 0 ]. size Ġ- Ġ 2 Ġ&& Ġgrid [ row ][ col Ġ+ Ġ 1 ] Ġ== Ġblank ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoved Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoved First Ġ= Ġmoved First Ġ|| Ġ( col Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row ][ col ] Ġ= Ġblank ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row ][ col Ġ+ Ġ 1 ] Ġ= Ġeast ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcol ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( col Ġ== Ġgrid [ 0 ]. size Ġ- Ġ 1 Ġ&& Ġgrid [ row ][ 0 ] Ġ== Ġblank Ġ&& Ġ! moved First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoved Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row ][ col ] Ġ= Ġblank ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row ][ 0 ] Ġ= Ġeast ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcol ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmoved ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove South (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmoved Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( col Ġin Ġgrid [ 0 ]. indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmoved First Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrow Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( row Ġ< Ġgrid . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grid [ row ][ col ] Ġ== Ġsouth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( row Ġ<= Ġgrid . size Ġ- Ġ 2 Ġ&& Ġgrid [ row Ġ+ Ġ 1 ][ col ] Ġ== Ġblank ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoved Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoved First Ġ= Ġmoved First Ġ|| Ġ( row Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row ][ col ] Ġ= Ġblank ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row Ġ+ Ġ 1 ][ col ] Ġ= Ġsouth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( row Ġ== Ġgrid . size Ġ- Ġ 1 Ġ&& Ġgrid [ 0 ][ col ] Ġ== Ġblank Ġ&& Ġ! moved First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoved Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ row ][ col ] Ġ= Ġblank ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid [ 0 ][ col ] Ġ= Ġsouth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmoved ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsolve 1 (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsteps Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsteps ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmoved East Ġ= Ġmove East () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmoved South Ġ= Ġmove South () ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( moved East Ġ|| Ġmoved South ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsteps ĊĠĠĠ Ġ} Ċ }