#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t = 1;
  while (t--) {
    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    deque<int> st;
    for (int i = 1; i < s.size(); i++) {
      if (s[i] == 'L' && s[i - 1] == 'R') st.push_back(i - 1);
    }
    long long tot = 0, cnt = 0;
    for (int i = s.size() - 1; i >= 0; i--) {
      if (s[i] == 'L') cnt++;
      if (s[i] == 'R') tot += cnt;
    }
    if (k > tot) {
      cout << -1 << endl;
    } else {
      int tt = 0;
      vector<int> ans[k];
      for (int i = 0; i < k; i++) {
        int rm = k - i;
        if (rm == tot) {
          tot--;
          int it = st.front();
          ans[i].push_back(it + 1);
          s[it] = 'L';
          s[it + 1] = 'R';
          int p = it;
          st.pop_front();
          if (p + 2 < s.size()) {
            if (s[p + 2] == 'L') st.push_back(p + 1);
          }
          if (p - 1 >= 0) {
            if (s[p - 1] == 'R') st.push_back(p - 1);
          }
        } else {
          for (int j = st.size() - 1; j >= 0; j--) {
            if (rm - 1 == tot) break;
            tot--;
            int it = st.front();
            ans[i].push_back(it + 1);
            s[it] = 'L';
            s[it + 1] = 'R';
            int p = it;
            st.pop_front();
            if (p + 2 < s.size()) {
              if (s[p + 2] == 'L') st.push_back(p + 1);
            }
            if (p - 1 >= 0) {
              if (s[p - 1] == 'R') st.push_back(p - 1);
            }
          }
        }
      }
      if (tot != 0) {
        cout << -1 << endl;
      } else {
        for (int i = 0; i < k; i++) {
          int sz = ans[i].size();
          printf("%d ", sz);
          for (auto it : ans[i]) printf("%d ", it);
          printf("\n");
        }
      }
    }
  }
  return 0;
}
