시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB3631169832.776%

문제

욱제어는 욱제가 사용하는 언어이고, 알파벳으로 0과 1만 사용한다. 욱제어에는 N개의 단어가 있는데, 각 단어의 길이는 L1, L2, ..., LN이다. 욱제어를 사용하는 사람들은 단어를 끝까지 말하지 않아도, 서로 어떤 단어인지 이해하는 경우가 많다. 그 이유는 한 단어가 다른 단어의 접두어(Prefix)가 되는 경우가 없기 때문이다.

욱제어를 공부하고 싶었던 동탄 주민 준오는 욱제어에 대한 정보를 몰래 입수했다. 하지만, 단어는 입수하지 못하고 단어의 길이만 입수하는데 성공했다. N개의 단어 길이 L1, L2, ..., LN이 주어졌을 때, 한 단어가 다른 단어의 접두어가 되지 않게 단어를 만들 수 있는지 알아보자.

입력

첫째 줄에 단어의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 L1, L2, ..., LN이 주어진다. 단어 길이의 총합은 1,000보다 작거나 같은 자연수이다.

출력

욱제어 단어를 N개 만드는 것이 가능하면, 첫째 줄에 1을 출력하고, 둘째 줄부터 N개의 줄에 욱제어의 단어를 한 줄에 하나씩 출력한다. 단어는 입력으로 주어진 순서를 만족해야 한다. 즉, 길이가 L1인 단어, 길이가 L2인 단어, ..., 길이가 LN인 단어를 출력해야 한다.

욱제어 단어를 N개 만드는 것이 불가능하면 -1을 출력한다.

예제 입력 1

3
1 2 3

예제 출력 1

1
0
10
110

예제 입력 2

3
1 1 1

예제 출력 2

-1

출처