#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100010;
pair<long long, long long> a[MAXN];
int n;
long long v;
long long DP[MAXN];
void Init() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%I64d %I64d", &a[i].first, &a[i].second);
  }
  scanf("%I64d", &v);
  for (int i = 0; i < n; i++) {
    long long s = a[i].first;
    long long t = a[i].second;
    a[i] = pair<long long, long long>(s + v * t, -(s - v * t));
  }
}
void Solv() {
  a[n++] = pair<long long, long long>(0, 0);
  int sol1 = 0, sol2 = 0;
  sort(a, a + n);
  int top = 0;
  for (int i = n - 1; i >= 0; i--) {
    int now = upper_bound(DP, DP + top, -a[i].second) - DP;
    if (a[i].first == 0 and a[i].second == 0) {
      printf("%d ", now);
    } else {
      DP[now] = -a[i].second;
      if (now == top) top++;
    }
  }
  printf("%d\n", top);
}
int main() {
  Init();
  Solv();
}
