package com.sky;
import java.util.Arrays;
import java.util.Scanner;
public class Test1 {
static long[] a, b, c, d;
static int n;
static long m;
public static boolean check(int mid) {
c = Arrays.copyOfRange(a, 0, mid);
d = Arrays.copyOfRange(b, 0, mid);
Arrays.sort(c);
Arrays.sort(d);
long res = 0;
for (int i = 0; i < mid; i++) {
res += c[i] * d[i];
}
return res >= m;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextLong();
a = new long[n];
b = new long[n];
c = new long[n];
d = new long[n];
for (int i = 0; i < n; i++) {
a[i] = scanner.nextLong();
}
for (int i = 0; i < n; i++) {
b[i] = scanner.nextLong();
}
int l = 1, r = n;
while (l < r) {
int mid = (l + r) >> 1;
if (check(mid)) {
r = mid;
} else {
l = mid + 1;
}
}
if (check(l)) {
System.out.println(l);
} else {
System.out.println(-1);
}
scanner.close();
}
}
二分