signedmain(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n, m, x; std::cin >> n >> m >> x;
std::vector<int> a(n), b(m); for (int i = 0; i < n; i++) { std::cin >> a[i]; } for (int i = 0; i < m; i++) { std::cin >> b[i]; } std::sort(a.rbegin(), a.rend()); std::sort(b.rbegin(), b.rend());
int ne = x; std::vector<int> an(2); for (int i = 0; i < m; i++) { if (ne <= 0) { break; } if (ne >= b[i]) { ne -= b[i]; an[1] += 1; } }
for (int i = 0; i < std::min(n, m); i++) { int t = a[i] * b[i]; if (x <= 0) { break; } if (x >= t) { x -= t; an[0] += 2; } else { if (x <= b[i]) { an[0] += 1; x -= b[i]; } else { x -= t; an[0] += 2; } } }
if (x) { if (n < m) { for (int i = std::min(n, m); i < m; i++) { if (x <= 0) { break; } if (x >= b[i]) { x -= b[i]; an[0] += 1; } } } }
if (x > 0 && ne > 0) { std::cout << "-1\n"; return0; }