type re=record
        s:longint;
        w:longint;
        num:longint;
     end;
var  n,n1,r,q,i,j,x,y,p,c:longint;
     t:re;
     f:array[0..1,0..1000000]of re;
procedure qsort(l,r:longint);
var i,j:longint;
    w:re;
  begin
    i:=l;
    j:=r;
    w:=f[1,(l+r)div 2];
    while(i<=j)do
      begin
        while( (f[1,i].s>w.s) or ((f[1,i].s=w.s) and (f[1,i].num<w.num) ) )do
          inc(i);
        while( (f[1,j].s<w.s) or ((f[1,j].s=w.s) and (f[1,j].num>w.num) ) )do
          dec(j);
        if i<=j then begin
          t:=f[1,i];
          f[1,i]:=f[1,j];
          f[1,j]:=t;
          inc(i);
          dec(j);
        end;
  end;
    if i<r then
      qsort(i,r);
    if j>l then
      qsort(l,j);
end;
begin
  readln(n,r,q);
  n1:=n;
  n:=n*2;
  for i:=1 to n do read(f[1,i].s);
  for i:=1 to n do
    begin
      read(f[1,i].w);
      f[1,i].num:=i;
    end;
  c:=1;
  qsort(1,n);
  for p:=1 to r do
    begin
      for i:=1 to n1 do
        begin
          if f[c,i*2-1].w<f[c,i*2].w then
            begin
              inc(f[c,i*2].s);
              t:=f[c,i*2-1];
              f[c,i*2-1]:=f[c,i*2];
              f[c,i*2]:=t;
            end
          else
            inc(f[c,i*2-1].s);
        end;
      x:=1;
      y:=2;
      for i:=1 to n do
        begin
          if (x<n)and((f[c,x].s>f[c,y].s) or
             ((f[c,x].s=f[c,y].s)and(f[c,x].num<f[c,y].num))) then
             begin
               f[1-c,i]:=f[c,x];
               inc(x,2);
             end
          else
             begin
               f[1-c,i]:=f[c,y];
               inc(y,2);
             end;
        end;
      c:=1-c;
    end;
  writeln(f[c,q].num);
end.
/**************************************************************
	Problem: 2302
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/