var n:integer; a:array[1..2,0..10000]of longint; b:array[1..2,1..1000]of integer;
i,j,g,j2,j3:integer; min:longint;
begin
assign(input,'energii.in'); reset(input);
readln(n,g);
for i:=1 to n do readln(b[2,i],b[1,i]);
for i:=1 to 10000 do begin a[1,i]:=20000000; a[2,i]:=20000000 end;
for i:=1 to n do begin
if odd(i) then
for j:=1 to 10000 do
begin
if j=b[2,i] then begin if (a[2,j]>b[1,i]) or (a[2,j]=20000000) then a[1,j]:=b[1,i] else a[1,j]:=a[2,j]; end
else if j<b[2,i] then a[1,j]:=a[2,j] else if a[2,j-b[2,i]]<20000000 then begin if ((a[2,j-b[2,i]]+b[1,i])<a[2,j]) or (a[2,j]=20000000) then a[1,j]:=a[2,j-b[2,i]]+b[1,i] else a[1,j]:=a[2,j] end else a[1,j]:=a[2,j];
end
else
for j:=1 to 10000 do
begin
if j=b[2,i] then begin if (a[1,j]>b[1,i]) or (a[1,j]=20000000) then a[2,j]:=b[1,i] else a[2,j]:=a[1,j]; end
else if j<b[2,i] then a[2,j]:=a[1,j] else if a[1,j-b[2,i]]<20000000 then begin if ((a[1,j-b[2,i]]+b[1,i])<a[1,j]) or (a[1,j]=20000000) then a[2,j]:=a[1,j-b[2,i]]+b[1,i] else a[2,j]:=a[1,j] end else a[2,j]:=a[1,j];
end
end;
assign(output,'energii.out'); rewrite(output);
if odd(n) then n:=1 else n:=2;
min:=20000000;
for i:=g to 10000 do if a[n,i]<min then min:=a[n,i];
if min<>20000000 then writeln(min) else writeln('-1');
close(output);
end.