/*
* 解题思路:
* 已经不想说这题的恶心程度了!!有一个神坑,输入的时候利用空格判别而不是换行符,题目不输入换行符
*/
#include <stdio.h>
int p;
int num[ 110 ];
int searchMax( int k )
{
int i;
int max = 0,maxPos = k;
for( i=k;i>=0;i-- )
if( num[ i ] > max)
{
max = num[ i ];
maxPos = i;
}
return maxPos;
}
void reverse( int x )
{
int tmp;
int i,j;
for(i=x,j=0;i>=j;i--,j++)
{
tmp = num[ j ];
num[ j ] = num[ i ];
num[ i ] = tmp;
}
}
int main( )
{
int i,k;
int x,flag;
char c;
while( ~scanf("%d",&num[ 0 ]) )
{
p = 1;
while(1)
{
if(getchar() !=' ')break;
scanf("%d",&num[p++]);
}
printf("%d",num[ 0 ]);
for( i=1;i<p;i++ )
printf(" %d",num[ i ] );
puts("");
for( k=p-1;k>=0;k--)
{
x = searchMax( k );
if( x!=k )
{
if( x!=0 )
{
printf("%d ",p-x);
reverse( x );
}
reverse( k );
printf("%d ",p-k);
}
}
printf("0\n");
}
return 0;
}