Drinking Game

In the way back home from the World Finals, Mr. Ed and his pals are visiting Madrid, but Mr. Ed is actually very tired and decided to rest a few days, so this problem is not about him. Ethan and the gang are going to drink some shots in the Gran Via; there, they have a good time drinking and talking about monsters and other terrifying adventures. After several minutes, Ethan came up with a fun drinking game he heard about at the World Finals called “Coprime Shots”, he explains: “Everybody has n piles of empty shot glasses, numbered from 1 to n, the i-th pile has gi glasses piled up. The objective of the game is to add or remove an arbitrary number of glasses to some of your piles in a way such that, for any pair of distinct piles (i, j) in the set G (result of adding and removing glasses to the original n piles), it holds that gcd(Gi,Gj) = 1. Sounds cool, huh? Anyway, you better play smart, because for every single shot glass you add or remove, you have to fill it up and drink!” Being a decent programmer, you have no plans on getting wasted tonight, so you decided to minimize the number of shots you have to take in order to win the game. Input The input will contain several test cases. The first line of each test contains an integer n: the number of piles in the game (1 ≤ n ≤ 100). The next line contains n integers: the i-th integer represents gi, the number of shot glasses in the i-th pile (1 ≤ gi ≤ 20). The last test case is followed by a single line containing 1 zero. Output For each test case, print n positive integers separated by a single space, describing a winning configura- tion of piles that requires the minimum number of additions and removals to accomplish. Piles should be printed in the same order as in the input. See details in the format below. If there are multiples solutions to a test, any one of them will be accepted. Sample Input 3 123 5 2 4 6 9 10 0 Sample Output Case #1: 1 2 3 Case #2: 1 4 7 9 11