#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
using namespace std;
const long long mod = 1e9 + 7;
const long long modp = 1999999973;
const long long modulo = 998244353;
long long n, k, le, ri, sec, moves;
vector<long long> pack[6000005];
string s;
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cerr.tie(0);
  cout.tie(0);
  srand(chrono::steady_clock::now().time_since_epoch().count());
  cin >> n >> k >> s;
  string tz = "";
  for (long long i = 0; i < s.size(); i++) {
    if (s[i] == 'L')
      le++;
    else
      ri++;
  }
  if (le)
    for (long long i = 1; i <= le; i++) tz += 'L';
  if (ri)
    for (long long i = 1; i <= ri; i++) tz += 'R';
  while (tz != s) {
    sec++;
    for (long long i = 0; i < s.size() - 1; i++) {
      if (s[i] == 'R' && s[i + 1] == 'L') {
        pack[sec].push_back(i + 1);
        swap(s[i], s[i + 1]);
        ++i;
        ++moves;
      }
    }
  }
  if (k < sec) return cout << -1, 0;
  if (k > moves)
    return cout << -1, 0;
  else {
    long long curr = 0, j = 0;
    while (true) {
      if (curr == 0 || pack[curr].size() == j) {
        j = 0;
        curr++;
      }
      if (curr > sec) break;
      if (sec - curr + 1 == k) {
        for (long long lmao = curr; lmao <= sec; lmao++) {
          cout << pack[lmao].size() - j << ' ';
          for (long long t = j; t < pack[lmao].size(); t++)
            cout << pack[lmao][t] << ' ';
          j = 0;
          cout << '\n';
        }
        return 0;
      }
      cout << 1 << ' ' << pack[curr][j] << '\n';
      j++;
      k--;
    }
  }
}
