În orașul Beclean există N clădiri, numerotate de la 1 la N, înălțimile acestora fiind date de șirul H: H[1] este înălțimea primei clădiri, H[2] este înălțimea celei de a doua clădiri, ș.a.m.d.
Pentru oricare două clădiri i, j cu i < j definim gradul de diferențiere ca fiind diferența în valoare absolută dintre înălțimile celor două clădiri, deci grad(i,j) = |H[i] - H[j]|.
Arhitectul Gigel vrea să construiască o nouă clădire, care să se integreze optim în peisajul urban, însă nu este sigur care ar trebui să fie înălțimea ei. Pentru a se decide, Gigel vă roagă să aflați care este al K-lea cel mai mic grad de diferențiere dintre oricare două clădiri din cele date.
Cerința
Pentru un șir de N clădiri cu înălțimi cunoscute, aflați care este al K-lea cel mai mic grad de diferențiere.
Date de intrare
Fișierul de intrare cladiri.in va conține:
• pe prima linie N și K, cu semnificațiile din enunț;
• pe următoarea linie N numere naturale, reprezentând înălțimile clădirilor din oraș.
Date de ieșire
Fișierul de ieșire cladiri.out va conține un singur număr, reprezentând diferența căutată.
Restricții și precizări
• 1 ≤ H[i] ≤ 1.000.000, pentru orice i de la 1 la N
• 2 ≤ N ≤ 200.000
• 1 ≤ K ≤ N * (N - 1) / 2
• valorile gradelor de diferențiere se pot repeta, acestea diferă prin clădirile din care sunt obținute
• pentru teste în valoare de 25 puncte, N ≤ 1000
• pentru teste în valoare de 30 puncte, H[i] ≤ 1000, pentru orice i de la 1 la N
Exemplul 1:
cladiri.in
5 4 4 1 7 2 9
cladiri.out
3
Explicație
Gradele de diferențiere sunt: 3, 3, 2, 5, 6, 1, 8, 5, 2, 7. Dintre acestea, alegem al patrulea cel mai mic, adică pe 3.
Exemplul 2:
cladiri.in
5 2 3 7 3 5 3
cladiri.out
0
Explicație
Gradele de diferențiere sunt: 4, 0, 2, 0, 4, 2, 4, 2, 0, 2. Alegem al doilea cel mai mic, adică pe 0