#include <bits/stdc++.h>
using namespace std;
int N, D;
int i, A, B, ou;
struct MYDATA {
  long long tot;
  int id;
} d[100010];
int xi, yi;
bool comp(MYDATA a, MYDATA b) {
  if (a.tot < b.tot) return true;
  return false;
}
int main() {
  scanf("%d %d", &N, &D);
  scanf("%d %d", &A, &B);
  for (i = 0; i < N; ++i) {
    d[i].id = i + 1;
    scanf("%d %d", &xi, &yi);
    d[i].tot = (long long)xi * A + yi * B;
  }
  sort(d, d + N, comp);
  for (i = 0; i < N; ++i) {
    if (D - d[i].tot >= 0) {
      ou += 1;
      D -= d[i].tot;
    } else
      break;
  }
  printf("%d\n", ou);
  for (i = 0; i < ou; ++i) printf("%d%c", d[i].id, ((i < ou - 1) ? ' ' : '\n'));
  return 0;
}
