#include <iostream>
#include <vector>
#include <string>

using namespace std;

int max_len = -1;
vector<int> best_fence1;
vector<int> best_fence2;

// Рекурсивна функция за обхождане на всички 3^N възможности
void solve_brute_force_3n(int idx, int n, const string& s, 
                          vector<int>& f1, vector<int>& f2, 
                          string& s1, string& s2) {
    // Дъно на рекурсията - стигнали сме края на низа
    if (idx == n) {
        // Проверяваме дали двете огради са напълно идентични
        if (s1 == s2) {
            // Ако са идентични и са по-дълги от досегашния ни рекорд, ги запазваме
            if ((int)f1.size() > max_len) {
                max_len = f1.size();
                best_fence1 = f1;
                best_fence2 = f2;
            }
        }
        return;
    }

    // ИЗБОР 1: Изхвърляме текущия пикет (не правим нищо)
    solve_brute_force_3n(idx + 1, n, s, f1, f2, s1, s2);

    // ИЗБОР 2: Слагаме текущия пикет в Ограда 1
    f1.push_back(idx);
    s1.push_back(s[idx]);
    solve_brute_force_3n(idx + 1, n, s, f1, f2, s1, s2);
    s1.pop_back(); // Backtracking (връщаме състоянието)
    f1.pop_back();

    // ИЗБОР 3: Слагаме текущия пикет в Ограда 2
    f2.push_back(idx);
    s2.push_back(s[idx]);
    solve_brute_force_3n(idx + 1, n, s, f1, f2, s1, s2);
    s2.pop_back(); // Backtracking (връщаме състоянието)
    f2.pop_back();
}

int main() {
    ios_base::sync_with_stdio(false); 
    cin.tie(NULL);
    
    int n, g;
    if (cin >> n >> h) {
        string s;
        cin >> s;
        
        vector<int> current_f1, current_f2;
        string current_s1 = "", current_s2 = "";
        
        // Стартираме рекурсията от индекс 0
        solve_brute_force_3n(0, n, s, current_f1, current_f2, current_s1, current_s2);
        
        // Извеждаме най-добрия намерен резултат
        cout << max_len << "\n";
        for (int i = 0; i < max_len; ++i) {
            cout << best_fence1[i] << (i == max_len - 1 ? "" : " ");
        }
        cout << "\n";
        for (int i = 0; i < max_len; ++i) {
            cout << best_fence2[i] << (i == max_len - 1 ? "" : " ");
        }
        cout << "\n";
    }
    
    return 0;
}
