package Ġcom . radix 2 . algorithms . extras Ċ Ċ import Ġjava . util .* Ċ Ċ fun Ġcookies ( k : ĠInt , Ġcookies : ĠArray < Int >): ĠInt Ġ{ ĊĠĠĠ Ġval Ġpq Ġ= ĠPriority Queue < Int >() ĊĊĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĊĠĠĠ Ġfor Ġ( cookie Ġin Ġcookies ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpq . add ( cookie ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwhile Ġ( pq . peek () Ġ< Ġk Ġ&& Ġpq . size Ġ>= Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc 1 Ġ= Ġpq . poll () ĊĊĠĠĠĠĠĠĠ Ġval Ġc 2 Ġ= Ġpq . poll () ĊĊĠĠĠĠĠĠĠ Ġpq . add ( c 1 Ġ+ Ġ 2 Ġ* Ġc 2 ) ĊĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġif Ġ( pq . peek () Ġ>= Ġk ) Ġcount Ġelse Ġ- 1 Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġscan Ġ= ĠScanner ( System .` in `) ĊĊĠĠĠ Ġval Ġn k Ġ= Ġscan . nextLine (). split (" Ġ") ĊĊĠĠĠ Ġval Ġn Ġ= Ġn k [ 0 ]. trim (). toInt () ĊĊĠĠĠ Ġval Ġk Ġ= Ġn k [ 1 ]. trim (). toInt () ĊĊĠĠĠ Ġval ĠA Ġ= Ġscan . nextLine (). split (" Ġ"). map Ġ{ Ġit . trim (). toInt () Ġ}. to Typed Array () ĊĊĠĠĠ Ġval Ġresult Ġ= Ġcookies ( k , ĠA ) ĊĊĠĠĠ Ġprintln ( result ) Ċ }