#include <bits/stdc++.h>
using namespace std;
multiset<long long int> numere;
multiset<long long int>::reverse_iterator it;
multiset<long long int>::iterator it2;
long long int n, i, minim, maxim, nr[100005], rez[100005], st, dr, pasi, val;
int main() {
  cin >> n;
  for (i = 1; i <= n; ++i) scanf("%I64d", &nr[i]);
  minim = 1e9;
  maxim = -1;
  for (i = 1; i <= n; ++i) {
    if (nr[i] > maxim) maxim = nr[i];
    if (nr[i] < minim) minim = nr[i];
  }
  if (minim * 2 >= maxim) {
    for (i = 1; i <= n; ++i) printf("-1 ");
    cout << '\n';
    return 0;
  }
  dr = 1;
  int ok = 2;
  for (st = 1; st <= n;) {
    if (ok == 2) numere.insert(nr[dr]);
    it = numere.rbegin();
    if (nr[dr] * 2 < *it) {
      rez[st] = pasi;
      --pasi;
      it2 = numere.find(nr[st]);
      numere.erase(it2);
      ++st;
      ok = 1;
    } else {
      ++pasi;
      ++dr;
      if (dr == n + 1) dr = 1;
      ok = 2;
    }
  }
  for (i = 1; i <= n; ++i) printf("%I64d ", rez[i]);
  cout << '\n';
  return 0;
}
