"use strict";

function main(input) {
  input = input.trim().split("\n");
  const line_one_arr = input[0].split(" ");
  const A = input[1].split(" ");
  const B = input[2].split(" ");
  let K = parseInt(line_one_arr[2]);

  let a = parseInt(A.length); // A counter
  let b = parseInt(B.length); // B counter
  let ab = a + b;

  let n = 0;
  let m = 0;
  while (true) {
    A[n] = parseInt(A[n]);
    B[m] = parseInt(B[m]);
    if (a == 0 && b == 0) break;

    if (A[n] > B[m] || a == 0) {
      if (K - B[m] < 0 || String(K - B[m]).match(/-/)) break;
      K = K - B[m];
      b--;
      m++;
    } else if (A[n] <= B[m] || b == 0) {
      if (K - A[n] < 0 || String(K - A[n]).match(/-/)) break;
      K = K - A[n];
      a--;
      n++;
    }
  }
  const ans = ab - (a + b);

  // console.log(K);
  // console.log(A[a]);
  // console.log(B[b]);
  // if (parseInt(line_one_arr[0]) > parseInt(line_one_arr[1])) {
  //   for (let i in A) {
  //     if (A[i] > B[i]) {
  //       if (K - B[i] < 0) {
  //         break;
  //       }
  //       K = K - B[i];
  //     } else {
  //       if (K - A[i] < 0) {
  //         break;
  //       }
  //       K = K - A[i];
  //     }
  //     ans++;
  //   }
  // } else {
  //   for (let i in B) {
  //     console.log(`K: ${K}`);
  //     console.log(`A: ${A[i]}`);
  //     console.log(`B: ${B[i]}`);
  //     if (B[i] > A[i]) {
  //       if (K - A[i] < 0) {
  //         break;
  //       }
  //       K = K - A[i];
  //     } else {
  //       if (K - B[i] < 0) {
  //         break;
  //       }
  //       K = K - B[i];
  //     }
  //     ans++;
  //   }
  // }

  console.log(ans);
}

function numberSort(array) {
  array.sort(f);
  return array;
}

var f = function (a, b) {
  return a - b;
};

main(require("fs").readFileSync("/dev/stdin", "utf-8"));
