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, s, d, f, g, h, j, k, l, i, n, m, inf = 110000000000;
pair<long long, long long> p[100002];
struct tre {
  tre *L;
  tre *R;
  int val;
  tre() {
    L = NULL;
    R = NULL;
    val = -1;
  }
};
void add(tre *&it, long long l, long long r, long long idx, int val) {
  if (l > idx || r <= idx) return;
  if (!it) it = new tre();
  it->val = max(it->val, val);
  if (l + 1 == r) {
    return;
  }
  add(it->L, l, (l + r) / 2, idx, val);
  add(it->R, (l + r) / 2, r, idx, val);
}
int mx(tre *&it, long long l, long long r, long long lf, long long rg) {
  if (l >= rg || r <= lf) return -1;
  if (!it) return -1;
  if (l >= lf && r <= rg) return it->val;
  int r1 = mx(it->L, l, (l + r) / 2, lf, rg);
  int r2 = mx(it->R, (l + r) / 2, r, lf, rg);
  return max(r1, r2);
}
int main() {
  cin >> n;
  tre *root1 = NULL, *root2 = NULL;
  for (i = 0; i < n; i++) {
    scanf("%I64d%I64d", &a, &s);
    p[i] = {a, s};
  }
  cin >> m;
  for (i = 0; i < n; i++) {
    p[i].second *= m;
    p[i] = {p[i].first + p[i].second, -p[i].first + p[i].second};
  }
  sort(p, p + n);
  add(root1, -inf, inf, 0, 0);
  for (i = 0; i < n; i++) {
    p[i].second *= -1;
    k = mx(root1, -inf, inf, p[i].second, inf);
    if (k == -1) continue;
    add(root1, -inf, inf, p[i].second, k + 1);
    l = max(l, k + 1);
  }
  cout << l << " ";
  l = 0;
  for (i = 0; i < n; i++) {
    k = mx(root2, -inf, inf, p[i].second, inf);
    if (k == -1) k = 0;
    add(root2, -inf, inf, p[i].second, k + 1);
    l = max(l, k + 1);
  }
  cout << l;
}
