#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 100;
struct node {
  int id;
  long long x, y;
} data[maxn];
int ans[maxn];
int main() {
  srand(time(NULL));
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld %lld", &data[i].x, &data[i].y);
    data[i].id = i;
  }
  while (true) {
    long long tmp = 0;
    long long prex = data[1].x, prey = data[1].y;
    ans[data[1].id] = 1;
    long long t1, t2;
    for (int i = 2; i <= n; i++) {
      long long tx1 = prex - data[i].x;
      long long ty1 = prey - data[i].y;
      t1 = tx1 * tx1 + ty1 * ty1;
      long long tx2 = data[i].x + prex;
      long long ty2 = data[i].y + prey;
      t2 = tx2 * tx2 + ty2 * ty2;
      if (t1 < t2) {
        ans[data[i].id] = -1;
        prex = tx1;
        prey = ty1;
      } else {
        ans[data[i].id] = 1;
        prex = tx2;
        prey = ty2;
      }
    }
    if (min(t1, t2) <= 2250000000000LL) {
      break;
    } else {
      random_shuffle(data + 1, data + n + 1);
    }
  }
  for (int i = 1; i <= n; i++) printf("%d%c", ans[i], i == n ? '\n' : ' ');
}
