12
-6712 6
2375 73
4643 197
-5660 215
-378 223
2228 307
3305 340
3449 468
-4389 707
-7161 729
-1838 921
-1655 985
730
 5
1 5
6 7
17127 17
17072 42
17042 77
3
 7
-976754 20479
79929143 911181
9598220 82517
-51609349 810257
67416551 266544
-14170975 307690
-15476178 491195
352
 22
-5301 602
-1400 194
-8512 987
-282 962
6484 494
9091 523
-7744 92
6002 461
5053 305
-1339 272
-821 165
9308 785
929 421
8384 883
1266 157
8411 923
-2949 885
7725 687
6859 197
-7630 867
5031 918
5662 410
41

11 12
 2 3
 5 5
 9 9

#include <bits/stdc++.h>
using namespace std;
long long a, b, c, d, e, f[100005], g[100005], h[100005], i, j, top;
struct node {
  long long x, y;
  friend bool operator<(const node &x, const node &y) {
    return x.x < y.x || (x.x == y.x && x.y < y.y);
  }
};
struct node G[100005];
long long low, high, mid;
long long an1, an2;
int main() {
  scanf("%I64d", &a);
  for (i = 1; i <= a; i++) scanf("%I64d%I64d", &g[i], &h[i]);
  scanf("%I64d", &b);
  for (i = 1; i <= a; i++) {
    G[i].x = b * h[i] - g[i];
    G[i].y = b * h[i] + g[i];
  }
  sort(G + 1, G + a + 1);
  for (i = 1; i <= a; i++) {
    if (top == 0 || G[i].y >= f[top]) {
      f[++top] = G[i].y;
      continue;
    }
    low = 1;
    high = top;
    e = 0;
    while (low <= high) {
      mid = (low + high) >> 1;
      if (G[i].y >= f[mid]) {
        if (mid > e) e = mid;
        low = mid + 1;
      } else
        high = mid - 1;
    }
    f[e + 1] = G[i].y;
  }
  an2 = top;
  top = 0;
  G[a + 1].x = 0;
  G[a + 1].y = 0;
  sort(G + 1, G + a + 1 + 1);
  i = 1;
  while (G[i].x != 0 || G[i].y != 0) i++;
  i++;
  for (; i <= a + 1; i++)
    if (G[i].y >= 0) {
      if (top == 0 || G[i].y >= f[top]) {
        f[++top] = G[i].y;
        continue;
      }
      low = 1;
      high = top;
      e = 0;
      while (low <= high) {
        mid = (low + high) >> 1;
        if (G[i].y >= f[mid]) {
          if (mid > e) e = mid;
          low = mid + 1;
        } else
          high = mid - 1;
      }
      f[e + 1] = G[i].y;
    }
  an1 = top;
  printf("%I64d %I64d\n", an1, an2);
  return 0;
}
