#include <bits/stdc++.h>
using namespace std;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
long long N;
long long A[300010];
long long dp[300010];
long long func(long long s) {
  if (dp[s] != 1000000000) return dp[s];
  if (s + A[s] >= N && s - A[s] < 0) return dp[s] = -1;
  if (s + A[s] < N && A[s + A[s]] % 2 != A[s] % 2) return dp[s] = 1;
  if (s - A[s] >= 0 && A[s - A[s]] % 2 != A[s] % 2) return dp[s] = 1;
  if (s + A[s] < N && s - A[s] < 0) return dp[s] = func(s + A[s]) + 1;
  if (s + A[s] >= N && s - A[s] >= 0) return dp[s] = func(s - A[s]) + 1;
  return dp[s] = min(func(s + A[s]), func(s - A[s])) + 1;
}
signed main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> N;
  for (long long i = 0; i < N; i++) dp[i] = 1000000000;
  for (long long i = 0; i < N; i++) cin >> A[i];
  for (long long i = 0; i < N; i++) {
    cout << func(i);
    cout << ((i != N - 1) ? " " : "\n");
  }
  return 0;
}
