#include <bits/stdc++.h>
using namespace std;
struct node {
  long long a, b, c;
} a[111111];
bool cmp(node a, node b) { return a.c > b.c; }
int main() {
  long long n, m;
  scanf("%I64d%I64d", &n, &m);
  long long sum = 0;
  for (int i = 0; i < n; i++) {
    scanf("%I64d%I64d", &a[i].a, &a[i].b);
    a[i].c = a[i].a - a[i].b;
    sum += a[i].a;
  }
  sort(a, a + n, cmp);
  if (sum <= m) {
    printf("0\n");
  } else {
    int num = 0;
    for (int i = 0; i < n; i++) {
      if (sum <= m) break;
      sum -= a[i].c;
      num++;
    }
    if (sum > m)
      printf("-1\n");
    else
      printf("%d\n", num);
  }
  return 0;
}
