import java.util.Scanner; public class MarchingOrders2_Bon { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); String s = in.next(); int [] a = new int[n-1]; int [] m = new int[n-1]; // system of equations a[i] = n mod n[i] for(int i=0; i b + y*a such that (b+y*a) mod i = q[n-i] // a -> a*i/gcd(a,i) // { int n = q.length+1; long a = 2; long b = q[n-2]; // System.out.println(a + " " + b); for(int i=3; i<=n; i++) { if (a % i == 0) { if (b%i != q[n-i]) return -1; // else keep b the same value } else { b = getNextB(a, b, i, q[n-i]); if (b == -1) return -1; } a *= i/gcd(a,i); // System.out.println(a + " " + b); } return b; } public static long getNextB(long a, long b, int r, int q) { long target = (q - b%r + r)%r; long newa = a % r; for(int i=0; i