#include <bits/stdc++.h>

using namespace std;


int sizeRes=0;
vector<pair<int,int> > res;
bool mergeSort(vector<int> &v, int from, int to, bool rev) {
   if(from==to) return true;
    if(rev) {
        for(int c=from;c<to;c++) {
            if(v[c+1]<=c && v[c] >= c+1) {
                res[sizeRes++]=(make_pair(c,c+1));
                swap(v[c],v[c+1]);
                if(!mergeSort(v,from,c,false)) return false;
                if(!mergeSort(v,c+1,to,true)) return false;
                return true;
            }
        }
    } else {
        for(int c=to-1;c>=from;c--) {
            if(v[c+1]<=c && v[c] >= c+1) {
                res[sizeRes++]=(make_pair(c,c+1));
                swap(v[c],v[c+1]);
                if(!mergeSort(v,from,c,false)) return false;
                if(!mergeSort(v,c+1,to,true)) return false;
                return true;
            }
        }
    }
    return false;
}


int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int N;
    cin>>N;
    vector<int> v(N);
    res.resize(N-1);
    for(int c=0;c<N;c++) {
        cin>>v[c];
        v[c]--;
    }


    if(!mergeSort(v,0,N-1,true)) {
        cout<<-1;
        return 0;
    }
    for(int c=0;c+1<v.size();c++) {
        if(v[c]>v[c+1]) {
            cout<<-1;
            return 0;
        }
    }
    for(auto z:res) {
        cout<<z.first+1<<"\n";
    }

}

#pragma warning(disable:4996)
#include <stdio.h>
#include <set>
using namespace std;
set<int> a;
int main()
{
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		int c;
		scanf("%d", &c);
		a.insert(c);
	}
	while (*a.begin() != *(--a.end()))
	{
		int mn = *a.begin();
		int mx = *(--a.end());
		a.erase(mx);
		a.insert(mx - mn);
	}
	printf("%d", *a.begin());
}