#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
const int maxn = 1e6 + 6;
const long long inf = 0x3f3f3f3f3f3f3f3f;
const int mod = 998244353;
long long qp(long long x, long long y) {
  long long ans = 1;
  x %= mod;
  while (y) {
    if (y & 1) ans = ans * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return ans;
}
long long inv(long long x) { return qp(x, mod - 2); }
int n, k, a[maxn], sum[maxn], dp[maxn];
char s[maxn];
vector<int> op[maxn * 9];
int main() {
  scanf("%d%d", &n, &k);
  scanf("%s", s + 1);
  int cnt = 0;
  for (int i = n; i >= 1; i--) {
    if (s[i] == 'L')
      cnt++;
    else
      sum[i] = cnt;
  }
  int ans = 0;
  for (int i = 1; i <= n; i++) ans += sum[i];
  if (ans < k) {
    puts("-1");
    return 0;
  }
  cnt = 0;
  while (1) {
    if (k == ans) {
      for (int i = n; i >= 1; i--) {
        int c = sum[i], now = i;
        while (c && now < n) {
          c--;
          op[++cnt].push_back(now++);
        }
      }
      for (int i = 1; i <= cnt; i++) {
        printf("%d", op[i].size());
        sort(op[i].begin(), op[i].end());
        for (int j : op[i]) printf(" %d", j);
        printf("\n");
      }
      return 0;
    }
    int flag = 0;
    cnt++;
    for (int i = 1; i < n; i++) {
      if ((sum[i]) && (!sum[i + 1])) {
        op[cnt].push_back(i);
        sum[i + 1] = sum[i] - 1;
        sum[i] = 0;
        ans--;
        if (!flag) k--;
        flag = 1;
        if (k == ans) break;
        i++;
      }
    }
    if (!flag) break;
  }
  printf("-1\n");
}
