func main() var n: int :: cui@inputInt() var a: []int :: #[10]int var sum: int :: 0 var f2: bool :: true var f4: bool :: true for i(1, 9) do a[i] :: cui@inputInt() if(a[i] <> 0) if(i % 2 <> 0) do f2 :: false end if if(i % 4 <> 0) do f4 :: false end if end if if(a[i] = n) do cui@print("\{['0'.offset(i)].repeat(n)}\n") ret end if do sum :+ a[i] end for if(n < 6) var b: []int :: #[n]int var j: int :: 0 for i(1, 9) for(1, a[i]) do b[j] :: i do j :+ 1 end for end for var ans: int :: f(b) while(@permutationNext(b), skip) do ans :: math@gcd(ans, f(b)) end while do cui@print("\{ans}\n") ret end if var ans: int :: 1 if(sum % 9 = 0) do ans :: 9 elif(sum % 3 = 0) do ans :: 3 end if if(f4) do ans :* 4 elif(f2) do ans :* 2 end if do cui@print("\{ans}\n") func f(b: []int): int var res: int :: 0 for i(0, ^b - 1) do res :* 10 do res :+ b[i] end for ret res end func end func func permutationNext(array: []int): bool var left: int :: ^array - 2 while(left >= 0 & array[left] >= array[left + 1]) do left :- 1 end while if(left < 0) ret false end if var right: int :: ^array - 1 while(array[left] >= array[right]) do right :- 1 end while var tmp: int :: array[left] do array[left] :: array[right] do array[right] :: tmp do left :+ 1 do right :: ^array - 1 while(left < right) do tmp :: array[left] do array[left] :: array[right] do array[right] :: tmp do left :+ 1 do right :- 1 end while ret true end func