#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
#include<math.h>
#include<string>
#include<string.h>
#include<map>
#include<unordered_map>
#include<unordered_set>
#include<set>
#include<stack>
#include<sstream>
//#include <Eigen/Dense>
//#include <Eigen/Geometry>
//using namespace Eigen;
using namespace std;
vector<int> a(100), b(100);
int cmp(int i, int j)
{
return i > j;
}
int main()
{
while (cin >> a[0])
{
int n = 1;
b[0] = a[0];
while (getchar() != '\n')
{
cin >> a[n++];
b[n - 1] = a[n - 1];
}
for (int i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
sort(b.begin(), b.begin() + n, cmp);
reverse(a.begin(), a.begin() + n);
vector<int> ans;
int k = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[j] == b[i])
{
if (j != k)
{
if (j != n - 1)
{
reverse(a.begin() + j, a.begin() + n);
ans.push_back(j + 1);
}
reverse(a.begin() + k, a.begin() + n);
ans.push_back(k + 1);
}
k++;
break;
}
}
}
for (int i = 0; i < ans.size(); i++)
cout << ans[i] << " ";
cout << "0" << endl;
}
return 0;
}