#include <bits/stdc++.h>
using namespace std;
long long int n;
struct Vec {
  long long int x;
  long long int y;
  long long int ind;
  long long int mod;
};
struct Vec v[200005];
long long int ans[200005];
int comp(const void *p, const void *q) {
  struct Vec *a = (struct Vec *)p;
  struct Vec *b = (struct Vec *)q;
  if (a->mod > b->mod) {
    return 1;
  }
  return -1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  long long int i;
  for (i = 1; i <= n; ++i) {
    cin >> v[i].x >> v[i].y;
    v[i].ind = i;
    v[i].mod = v[i].x * v[i].x + v[i].y * v[i].y;
  }
  long double curx = 0;
  long double cury = 0;
  long long int p = 1500000;
  p = p * p;
  for (i = n; i >= 1; --i) {
    if ((curx + v[i].x) * (curx + v[i].x) + (cury + v[i].y) * (cury + v[i].y) <
        (curx - v[i].x) * (curx - v[i].x) + (cury - v[i].y) * (cury - v[i].y)) {
      curx += v[i].x;
      cury += v[i].y;
      ans[v[i].ind] = 1;
    } else {
      curx -= v[i].x;
      cury -= v[i].y;
      ans[v[i].ind] = -1;
    }
  }
  if (curx * curx + cury * cury <= p && curx * curx + cury * cury >= 0) {
    for (i = 1; i <= n; ++i) {
      cout << ans[i] << " ";
    }
    cout << endl;
  } else {
    cout << "-1" << endl;
  }
  return 0;
}
