#include<bits/stdc++.h>
using namespace std;

#define FOR(i, a, n) for(decltype(n) i = (a), i##__ = (n); i <= i##__; i++)
#define REP(i, n) FOR(i, 0, (n)-1)
#define FORD(i, a, n) for(decltype(a) i = (a), i##__ = (n); i >= i##__; i--)
#define REPD(i, n) FORD(i, (n)-1, 0)
#define V vector
#define ST first
#define ND second
#define EB emplace_back
#define RS resize
#define SZ(x) int(x.size())
#define ALL(x) x.begin(), x.end()
#define OS ostream

template<class A, class B> OS& operator<<(OS &os, pair<A, B> p) {
	return os << "(" << p.ST << ", " << p.ND << ")";
}
template<class A> OS& operator<<(OS &os, V<A> v) {
	os << "{ ";
	for(auto e : v) os << e << " ";
	return os << "}";
}
template<class A> OS& operator<<(OS &os, V<V<A>> v) {
	os << "[\n";
	for(auto e : v) os << "  " << e << "\n";
	return os << "]";
}

#ifdef DEBUG
# define D(a...) a
# define _D(a...)
#else
# define D(a...)
# define _D(a...) a
#endif
# define I(a...) #a << ": " << a << "\n"
# define J(a...) #a << ": " << a << "  "

using VI   = V<int>;
using VVI  = V<VI>;
using VB   = V<bool>;
using II   = pair<int, int>;
using L    = long long;
using VL   = V<L>;
using VVL  = V<VL>;


int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);

	int n; cin >> n;
	VI a(n);
	REP(i, n)
		cin >> a[i];
	VI sum = {0};
	REP(i, n) 
		sum.EB((sum.back() + a[i]) % 10);
	D(cerr << I(sum));
	VI prev(10, -1);
	VI ans(n, -1);
	REPD(i, n) {
		prev[sum[i + 1]] = i;
		int looked = sum[i] % 10;
		if(prev[looked] == -1)
			ans[i] = -1;
		else
			ans[i] = prev[looked] - i + 1;
	}
	for(int x : ans)
		cout << x << " ";
	cout << "\n";
}

