import java.io.*;
import java.util.*;

public class n1{

	public static void main(String[] args) throws Exception{
		int n=I.readInt();
		int[]q=new int[n];
		for(int i=0;i<q.length;i++) {
			q[i]=I.readInt();
		}
		int[]ps=new int[n+1];
		for(int i=0;i<n;i++) {
			ps[i+1]=(ps[i]+q[i])%10;
		}
		ArrayList<Integer>[]pos = new ArrayList[10];
		for(int i=0;i<10;i++) {
			pos[i]=new ArrayList<Integer>();
		}
		for(int i=0;i<n+1;i++) {
//			System.out.println(i+" "+ps[i]);
			pos[ps[i]].add(i);
		}
		int[]ans=new int[n];
		for(int i=0;i<n;i++) {
			int find=ps[i];
			int location = Collections.binarySearch(pos[find],i+1);
			if(location<0) {
				location=-(location+1);
			}
			if(pos[find].size()>location) {
				int pr=pos[find].get(location);
//				System.out.println(find+" "+location+" "+i+" "+pr);
				ans[i]=pr-i;
			}else {
				ans[i]=-1;
			}
			
		}
//		System.out.println(Arrays.toString(pos));
		for(int i:ans) {
			System.out.print(i+" ");
		}
		System.out.println();
	}

}

class I{
	static BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer st;

	public static String nextToken() throws Exception{
		while(st==null||!st.hasMoreTokens()){
			st=new StringTokenizer(in.readLine(),"[ ,:]");
		}
		return st.nextToken();
	}

	public static int readInt() throws Exception{
		return Integer.parseInt(nextToken());
	}

	public static long readLong() throws Exception{
		return Long.parseLong(nextToken());
	}

	public static double readDouble() throws Exception{
		return Double.parseDouble(nextToken());
	}

	public static String readString() throws Exception{
		return nextToken();
	}

	public static String readLine() throws Exception{
		return in.readLine();
	}
}
