class ĠGrid ( val Ġgrid : ĠArray < IntArray >) Ġ{ ĊĊĠĠĠ Ġfun Ġget Ne ighbours ( row : ĠInt , Ġcol : ĠInt ): ĠList < Int > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlist : ĠMutable List < Int > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( col Ġ+ Ġ 1 Ġ< Ġgrid [ 0 ]. size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row ][ col Ġ+ Ġ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( col Ġ+ Ġ 1 Ġ< Ġgrid [ 0 ]. size Ġ&& Ġrow Ġ+ Ġ 1 Ġ< Ġgrid . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row Ġ+ Ġ 1 ][ col Ġ+ Ġ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( row Ġ+ Ġ 1 Ġ< Ġgrid . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row Ġ+ Ġ 1 ][ col ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( col Ġ- Ġ 1 Ġ>= Ġ 0 Ġ&& Ġrow Ġ+ Ġ 1 Ġ< Ġgrid . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row Ġ+ Ġ 1 ][ col Ġ- Ġ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( col Ġ- Ġ 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row ][ col Ġ- Ġ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( col Ġ- Ġ 1 Ġ>= Ġ 0 Ġ&& Ġrow Ġ- Ġ 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row Ġ- Ġ 1 ][ col Ġ- Ġ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( row Ġ- Ġ 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row Ġ- Ġ 1 ][ col ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( col Ġ+ Ġ 1 Ġ< Ġgrid [ 0 ]. size Ġ&& Ġrow Ġ- Ġ 1 Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( grid [ row Ġ- Ġ 1 ][ col Ġ+ Ġ 1 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Live Cells ( row : ĠInt , Ġcol : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Ne ighbours ( row , Ġcol ). sum () ĊĠĠĠ Ġ} Ċ }