'''关于Pancake sorting的一种简单情况。就是有种方法可以保证至多2n-3次完成。

类似于选择排序:
先找出n各数字种最大的一个数n,假设所在位置为sn,那么先翻转前sn个数字f(sn),
使得n在最顶部,之后再翻转前n个元素f(n),这样一来n就到了最底部。就是两次翻转。
之后再选择第二大的假设为n-1,位置在sn-1,那么先翻转前sn-1个数字f(sn-1),使得n-1在最
顶部,之后再翻转前n-1个元素f(n-1),这样一来n-1就到了倒数第二个。也是两次翻转。
注意:每次对于第x大的元素要判断它是不是在倒是第x个位置上,若在就不用翻转这个数字了。
一直进行n-2次,最多2n-4次翻转。剩下上面三个最小的1,2其它的都排序了。'''

def filp(s):

    return s[::-1]
def ifsort(s):
    tag = 1
    for i in range(len(s)-1):
        if int(s[i]) > int(s[i+1]):
            tag = 0
    if tag:
        return True
    return False

def ind(s):
    m = -1
    t = []
    for i in range(len(s)):
        if int(s[i]) > m:
            m = int(s[i])
            t.append(i)
    return t[-1]



def Sort_p(s, n):
    l = len(s)
    count = 0
    count_word = []

    while True:
        if l == 0 or ifsort(s):
            break
       
        m = ind(s[:l])
        if m == l-1:
            l -= 1
            continue
        ts = filp(s[:m+1])
        t = ts + s[1+m:]
        t_f = filp(t[:l])
        s = t_f + s[l:]
        
        
        if m >= 1:
            count += 1
            count_word.append(m+1)
        count_word.append(l)
        count += 1
        l -= 1

    return count, count_word

while True:
    try:
        s = input().split()
        n = s[0]
        s = s[1:]
        if n == '0':
            break
        c, w = Sort_p(s, n)
        w = ' '.join(map(str, w))
        print(c, w)
    except:
        break