Problem:
Score : 300 points

Problem Statement

There is an empty array.
The following N operations will be performed to insert integers into the array.
In the i-th operation (1≤i≤N), b_i copies of an integer a_i are inserted into the array.
Find the K-th smallest integer in the array after the N operations.
For example, the 4-th smallest integer in the array \{1,2,2,3,3,3\} is 3.

Constraints

1≤N≤10^5

1≤a_i,b_i≤10^5

1≤K≤b_1…+…b_n

All input values are integers.

Input

Input is given from Standard Input in the following format:

N K
a_1 b_1
:
a_N b_N

Output

Print the K-th smallest integer in the array after the N operations.

Sample Input 1

3 4
1 1
2 2
3 3

Sample Output 1

3

The resulting array is the same as the one in the problem statement.

Sample Input 2

10 500000
1 100000
1 100000
1 100000
1 100000
1 100000
100000 100000
100000 100000
100000 100000
100000 100000
100000 100000

Sample Output 2

1

Solution in Pascal (FPC 2.6.2) (judge verdict: Wrong Answer)

var i,n:longint;
    a,b:array[1..200000] of longint;
    tmp,k:qword;
procedure sort(l,r:longint);
var i,j,x,y: longint;
begin
  i:=l; j:=r; x:=a[(l + r) >> 1];
  repeat
    while a[i] < x do i:=i + 1;
    while x < a[j] do j:=j - 1;
    if not(i > j) then
      begin
        y:=a[i];
        a[i]:=a[j];
        a[j]:=y;
        y:=b[i];
        b[i]:=b[j];
        b[j]:=y;
        i:=i + 1; j:=j - 1;
      end;
 until i > j;
 if l < j then sort(l,j);
 if i < r then sort(i,r);
end;
begin
  readln(n);
  for i:=1 to n do readln(a[i],b[i]);
  readln(k);
  sort(1,n);
  for i:=1 to n do 
    begin
      if b[i] + tmp < k then tmp+=b[i]
      else if b[i] + tmp >= k then
        begin
          write(a[i]);
          break;
        end;
    end;
end.