#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int ans[maxn];
long long sqr(long long x) { return x * x; }
struct Node {
  long long x, y, id;
} s[maxn];
int main() {
  int n;
  scanf("%d", &n);
  long long P = 1500000;
  P = P * P;
  long long sumx = 0, sumy = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%I64d%I64d", &s[i].x, &s[i].y);
    s[i].id = i;
  }
  for (;;) {
    random_shuffle(s + 1, s + 1 + n);
    long long X = 0, Y = 0;
    memset(ans, 0, sizeof(ans));
    for (int i = 1; i <= n; i++) {
      long long valx = s[i].x, valy = s[i].y;
      if (sqr(X - valx) + sqr(Y - valy) > sqr(X + valx) + sqr(Y + valy)) {
        X += valx;
        Y += valy;
        ans[s[i].id] = -1;
      } else {
        X -= valx;
        Y -= valy;
        ans[s[i].id] = 1;
      }
    }
    if (sqr(X) + sqr(Y) <= P) {
      for (int i = 1; i <= n; i++) printf("%d ", ans[i]);
      return 0;
    }
  }
}
