미르코는 파티를 좋아해서 친구들을 위해 파티를 끝없이 열기로 했다. 그래서 테이블 N개를 놓고 테이블마다 사탕을 올려 두었다. i번째 테이블에 놓인 사탕은 bi개다. 첫날에는 테이블마다 친구 한 명을 초대하고, 둘째 날에는 테이블마다 두 명, 셋째 날에는 세 명을 초대한다. 즉 k번째 날에는 테이블마다 친구 k명을 초대한다.
친구들이 방에 들어오면 테이블마다 k명이 앉아서 그 테이블의 사탕을 똑같이 나누어 가지고, 나누어떨어지지 않고 남는 사탕은 버린다. 따라서 k번째 날에 i번째 테이블에 앉은 사람은 사탕을 ⌊bi/k⌋개씩 받는다. 사탕을 나눈 뒤에는 1인당 받은 개수가 같은 테이블끼리만 어울린다. 즉 테이블은 1인당 개수에 따라 무리로 나뉜다.
미르코는 1부터 N까지 각 s에 대해 테이블이 정확히 s개인 무리가 처음 생기는 날이 언제인지 알고 싶다. 답 N개를 모두 구하는 프로그램을 작성하라.
미르코는 파티를 열기 전마다 테이블의 사탕을 처음 개수만큼 다시 채워 놓고, 이전 파티에 온 사람이 모두 돌아간 뒤에 다음 파티를 시작한다.
첫째 줄에 테이블의 개수 N이 주어진다. (1≤N≤100)
둘째 줄에 정수 b1,b2,…,bN이 공백으로 구분되어 주어진다. bi는 i번째 테이블에 놓인 사탕의 개수다. (1≤bi≤108)
N개의 줄을 출력한다. s번째 줄에는 테이블이 정확히 s개인 무리가 처음 생기는 날의 번호를 출력한다. 그런 날이 오지 않으면 −1을 출력한다.
첫 번째 예제에서 첫날에는 1인당 개수가 같은 테이블이 없어서 모든 테이블이 혼자 무리를 이룬다. 그래서 크기가 1인 무리의 답은 1이다. 둘째 날에는 1번 테이블과 2번 테이블이 모두 1인당 5개를 받아 함께 어울리므로 크기가 2인 무리의 답은 2다. 셋째 날에는 1번, 2번, 3번 테이블이 모두 1인당 3개를 받는다. 여섯째 날에는 1번부터 4번까지 네 테이블이 모두 1인당 1개를 받는다. 열두째 날에는 모든 테이블이 1인당 0개를 받아 다섯 테이블이 한 무리가 된다.
두 번째 예제에서는 모든 테이블의 사탕 개수가 같아서 1인당 개수도 늘 같다. 그래서 크기가 3보다 작은 무리는 영원히 생기지 않는다.