#include <bits/stdc++.h>
struct case1 {
  long long x1, y1, x2, y2;
} rec[205] = {{0, 0, 0, 0}};
int main() {
  long long n;
  long long i;
  long long j;
  long long x, y;
  long long s = 0;
  scanf("%I64d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%I64d%I64d%I64d%I64d", &rec[i].x1, &rec[i].y1, &rec[i].x2,
          &rec[i].y2);
    rec[i].x1 *= 2, rec[i].y1 *= 2, rec[i].x2 *= 2, rec[i].y2 *= 2;
  }
  for (i = 1; i <= n; i++) {
    s = ((rec[i].x1 - rec[i].x2) < 0 ? -(rec[i].x1 - rec[i].x2)
                                     : (rec[i].x1 - rec[i].x2)) *
        ((rec[i].x1 - rec[i].x2) < 0 ? -(rec[i].x1 - rec[i].x2)
                                     : (rec[i].x1 - rec[i].x2)) *
        ((rec[i].x1 - rec[i].x2) < 0 ? -(rec[i].x1 - rec[i].x2)
                                     : (rec[i].x1 - rec[i].x2));
    x = (rec[i].x1 + rec[i].x2) / 2 * s;
    y = (rec[i].y1 + rec[i].y2) / 2 * s;
    for (j = i - 1; j >= 1; j--) {
      if (x > ((rec[j].x1) > (rec[j].x2) ? (rec[j].x1) : (rec[j].x2)) * s ||
          x < ((rec[j].x1) < (rec[j].x2) ? (rec[j].x1) : (rec[j].x2)) * s ||
          y > ((rec[j].y1) > (rec[j].y2) ? (rec[j].y1) : (rec[j].y2)) * s ||
          y < ((rec[j].y1) < (rec[j].y2) ? (rec[j].y1) : (rec[j].y2)) * s)
        break;
      x += (rec[j].x1 + rec[j].x2) / 2 *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2)) *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2)) *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2));
      y += (rec[j].y1 + rec[j].y2) / 2 *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2)) *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2)) *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2));
      s += ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2)) *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2)) *
           ((rec[j].x1 - rec[j].x2) < 0 ? -(rec[j].x1 - rec[j].x2)
                                        : (rec[j].x1 - rec[j].x2));
    }
    if (j) break;
  }
  printf("%I64d\n", i - 1);
  return 0;
}
