#include <iostream>
#include <sstream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
std::ostringstream turns_oss;
unsigned int length;
unsigned int turns_count = 0;
cin >> length;
int array[length];
for (unsigned int i=0; i<length-1; i++) {
char input[6];
cin.getline(input, 6, ' ');
array[i] = atoi(input);
}
char input[6];
cin.getline(input, 6);
array[length-1] = atoi(input);
int lastnotdone(length); // This is same as:
lastnotdone--; // int lastnotdone = length-1
int nextmax(0);
while (lastnotdone > 0) {
int max(0);
int max_i(0);
for (int i=0; i<=lastnotdone; i++) {
if (array[i] > max) {
max = array[i];
max_i = i;
}
if (max == nextmax) {
break;
}
}
nextmax = max;
nextmax--;
if (max_i == lastnotdone) {
lastnotdone--;
continue;
}
/*int temp;
if (max_i != 0) {
for (int i=0; i<=max_i/2; i++) {
temp = array[i];
array[i] = array[max_i-i];
array[max_i-i] = temp;
}
}
for (int i=0; i<=lastnotdone/2; i++) {
temp = array[i];
array[i] = array[lastnotdone-i];
array[lastnotdone-i] = temp;
}*/
/*cout << "bef. ";
for (int i=0; i<length; i++) {
cout << array[i] << " ";
}
cout << '\n';*/
int old_arr[lastnotdone+1] = {0};
/*for (int i=0; i<=lastnotdone; i++) {
old_arr[i] = array[i];
}*/
for (int i=0; i<=lastnotdone; i++) {
if (old_arr[i] == 0) {
old_arr[i] = array[i];
}
if (i<max_i) {
old_arr[i+max_i] = array[i+max_i];
array[i+max_i] = old_arr[i];
} else {
old_arr[lastnotdone-i] = array[lastnotdone-i];
array[lastnotdone-i] = old_arr[i];
}
}
/*cout << "aft. ";
for (int i=0; i<length; i++) {
cout << array[i] << " ";
}
cout << '\n' << '\n';*/
if (max_i != 0) {
turns_oss << (max_i+1) << (lastnotdone+1) << " ";
turns_count += 2;
} else {
turns_oss << (lastnotdone+1) << " ";
turns_count++;
}
lastnotdone--;
}
cout << turns_count << '\n';
cout << turns_oss.str() << endl;
}