#include <bits/stdc++.h>
const long long inf = 0x3f3f3f3f3f3f3f3LL;
const long long mod = (long long)1e9 + 7;
using namespace std;
template <class T>
void smin(T& a, T val) {
  if (a > val) a = val;
}
template <class T>
void smax(T& a, T val) {
  if (a < val) a = val;
}
const long long MAX = 1.5e6;
long long n;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
long long rand(long long l, long long r) {
  uniform_int_distribution<long long> uid(l, r);
  return uid(rng);
}
long long absolute(long long X, long long Y) { return X * X + Y * Y; }
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  vector<pair<pair<long long, long long>, long long>> v(n);
  long long idx = 0;
  for (auto& i : v) {
    cin >> i.first.first >> i.first.second;
    i.second = idx++;
  }
  while (1) {
    long long X = 0, Y = 0;
    vector<long long> ans(n);
    shuffle(v.begin(), v.end(), rng);
    for (long long j = 0; j < n; ++j) {
      long long x = v[j].first.first;
      long long y = v[j].first.second;
      long long idx = v[j].second;
      if (absolute(X + x, Y + y) < absolute(X - x, Y - y)) {
        X += x;
        Y += y;
        ans[idx] = 1;
      } else {
        X -= x;
        Y -= y;
        ans[idx] = -1;
      }
    }
    if (absolute(X, Y) <= MAX * MAX) {
      for (auto it : ans) cout << it << ' ';
      exit(0);
    }
  }
  assert(0);
  return 0;
}
