#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,a[200005],d[200005],vis[200005];
vector <int> ve[200005];
struct cmp
{
bool operator()(pair <int,int> a, pair <int,int> b)
{
return a.second<b.second;
}
};
void BFS01()
{
priority_queue <pair<int,int>,vector<pair<int,int>>,cmp> q;
for (int i=1;i<=n;i++) if (!d[i]) d[i]=1e18;
for (int i=1;i<=n;i++) if (d[i]==1) q.push({i,1});
while (q.size())
{
int i=q.top().first,j=q.top().second;
q.pop();
for (int j : ve[i]) if (d[j]>d[i]+1) d[j]=d[i]+1,q.push({j,d[j]});
}
for (int i=1;i<=n;i++)
{
if (d[i]!=1e18) cout<<d[i]<<' ';
else cout<<-1<<' ';
}
}
signed main()
{
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=n;i++)
{
if (i-a[i]>=1 && (a[i]+a[i-a[i]])%2==1) d[i]=1;
if (i+a[i]<=n && (a[i]+a[i+a[i]])%2==1) d[i]=1;
}
for (int i=1;i<=n;i++)
{
if (i-a[i]>=1 && (a[i]+a[i-a[i]])%2==0) ve[i-a[i]].push_back(i);
if (i+a[i]<=n && (a[i]+a[i+a[i]])%2==0) ve[i+a[i]].push_back(i);
}
BFS01();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixhWzIwMDAwNV0sZFsyMDAwMDVdLHZpc1syMDAwMDVdOwp2ZWN0b3IgPGludD4gdmVbMjAwMDA1XTsKc3RydWN0IGNtcAp7CiAgICBib29sIG9wZXJhdG9yKCkocGFpciA8aW50LGludD4gYSwgcGFpciA8aW50LGludD4gYikKICAgIHsKICAgICAgICByZXR1cm4gYS5zZWNvbmQ8Yi5zZWNvbmQ7CiAgICB9Cn07CnZvaWQgQkZTMDEoKQp7CiAgICBwcmlvcml0eV9xdWV1ZSA8cGFpcjxpbnQsaW50Pix2ZWN0b3I8cGFpcjxpbnQsaW50Pj4sY21wPiBxOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBpZiAoIWRbaV0pIGRbaV09MWUxODsKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgaWYgKGRbaV09PTEpIHEucHVzaCh7aSwxfSk7CiAgICB3aGlsZSAocS5zaXplKCkpCiAgICB7CiAgICAgICAgaW50IGk9cS50b3AoKS5maXJzdCxqPXEudG9wKCkuc2Vjb25kOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgZm9yIChpbnQgaiA6IHZlW2ldKSBpZiAoZFtqXT5kW2ldKzEpIGRbal09ZFtpXSsxLHEucHVzaCh7aixkW2pdfSk7CiAgICB9CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIAogICAgewogICAgICAgIGlmIChkW2ldIT0xZTE4KSBjb3V0PDxkW2ldPDwnICc7CiAgICAgICAgZWxzZSBjb3V0PDwtMTw8JyAnOwogICAgfQp9CnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksY2luLnRpZSgwKSxjb3V0LnRpZSgwKTsKICAgIGNpbj4+bjsKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgY2luPj5hW2ldOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSAKICAgIHsKICAgICAgICBpZiAoaS1hW2ldPj0xICYmIChhW2ldK2FbaS1hW2ldXSklMj09MSkgZFtpXT0xOwogICAgICAgIGlmIChpK2FbaV08PW4gJiYgKGFbaV0rYVtpK2FbaV1dKSUyPT0xKSBkW2ldPTE7CiAgICB9CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIAogICAgewogICAgICAgIGlmIChpLWFbaV0+PTEgJiYgKGFbaV0rYVtpLWFbaV1dKSUyPT0wKSB2ZVtpLWFbaV1dLnB1c2hfYmFjayhpKTsKICAgICAgICBpZiAoaSthW2ldPD1uICYmIChhW2ldK2FbaSthW2ldXSklMj09MCkgdmVbaSthW2ldXS5wdXNoX2JhY2soaSk7CiAgICB9CiAgICBCRlMwMSgpOwogICAgcmV0dXJuIDA7Cn0=