#define _CRT_SECURE_NO_WARNINGS #define _USE_MATH_DEFINES #include "bits/stdc++.h" #define REP(i,a,b) for(i=a;i> a;}; template void reader(T& t,U& u){reader(t); reader(u);} template void reader(T& t,U& u,V& v){reader(t); reader(u); reader(v);} void writer(int a,char c) {printf("%d",a); putchar(c);} void writer(ll a,char c) {printf("%lld",a); putchar(c);} void writer(ull a,char c) {printf("%llu",a); putchar(c);} void writer(double a,char c) {printf("%.20lf",a); putchar(c);} void writer(char a[]) {printf("%s",a);}; void writer(char a[],char c) {printf("%s",a);putchar(c);}; void writer(char a,char c) {putchar(a); putchar(c);}; templatevoid writerLn(T t){writer(t,'\n');} templatevoid writerLn(T t,U u){writer(t,' ');writer(u,'\n');} template void writerLn(T t,U u,V v){writer(t,' ');writer(u,' ');writer(v,'\n');} template void writerArr(T x[], int n){int i;if(!n){putchar('\n');return;}rep(i,n-1) writer(x[i],' ');writer(x[n-1],'\n');} template void writerVec(vector x){int n=x.size();int i;if(!n){putchar('\n');return;}rep(i,n-1) writer(x[i],' ');writer(x[n-1],'\n');} vector split(const string &str, char sep){vector v;stringstream ss(str);string buffer;while(getline(ss,buffer,sep)){v.push_back(buffer);}return v;} // #define int ll bool test = 1; int dx[] = {0,0,1,-1}; int dy[] = {1,-1,0,0}; #define MAX 300000 //..................... ll mod = (int)1e9+7; int A[50]; signed main() { int i,j,k; int N; multiset ms; cin >> N; rep(i,N) { reader(A[i]); ms.insert(A[i]); } bool correct = true; rep(i,N) { if(ms.count(i) == N) correct = false; } ifnot(correct) { puts("-1"); return 0; } set s2; vector v(N); rep(i,N) { rep(j,500) { int a = rand()%N; if(a == A[i]) continue; if(s2.find(a) != s2.end()) continue; s2.insert(a); v[i] = a; break; } if(j==500) { i = -1; s2.clear(); } } rep(i,v.size()) { printf("%d\n",v[i]); } return 0; }