앨런은 컴퓨터 보안 회사에서 일한다. 그가 만든 공개키 암호에서 개인키는 {1,…,n}의 순열 π와 σ 두 개다. 공개키 (a1,…,an)은 1≤i≤n에 대해 ai≡πi+σi(modn)으로 정해진다. x≡y(modn)은 x와 y를 n으로 나눈 나머지가 같다는 뜻이다.
n=5이고
인 경우를 보자. 공개키는 a=(3,2,3,1,1)이 된다. 예를 들어 a5≡1≡4+2≡π5+σ5(mod5)이고, π와 σ에는 1부터 5까지가 각각 정확히 한 번씩 들어 있다.
동료들은 이 암호가 안전한지 의심한다. 공개키에 맞는 개인키를 하나라도 찾으면 암호가 뚫리기 때문이다. n과 수열 a=(a1,…,an)이 주어질 때, 모든 i에 대해 πi+σi≡ai(modn)을 만족하는 {1,…,n}의 순열 π와 σ가 존재하는지 판정하라.
첫째 줄에 수열의 길이 n이 주어진다 (1≤n≤1000).
둘째 줄에 정수 a1,…,an이 주어진다 (1≤ai≤n).
조건을 만족하는 순열 π와 σ가 존재하면 possible을, 존재하지 않으면 impossible을 출력한다.