#include <bits/stdc++.h>
using namespace std;
int ckmax(string s) {
  int n, i, m, res;
  n = s.size();
  m = 0;
  res = 0;
  for (i = 0; i < n; i++) {
    if (s[i] == 'L') {
      res += i;
      m++;
    }
  }
  m = m * (m - 1) / 2;
  return res - m;
}
int move(string& s) {
  int n, i, t;
  n = s.size();
  t = 0;
  for (i = 0; i < n - 1; i++) {
    if (s[i] == 'R') {
      if (s[i + 1] == 'L') {
        s[i] = 'L';
        s[i + 1] = 'R';
        t++;
        i++;
      }
    }
  }
  return t;
}
int ckmin(string s) {
  int t;
  t = 0;
  while (move(s)) {
    t++;
  }
  return t;
}
int p(string& s, int k) {
  int n, i;
  vector<int> op;
  n = s.size();
  for (i = 0; i < n - 1; i++) {
    if (s[i] == 'R') {
      if (s[i + 1] == 'L') {
        s[i] = 'L';
        s[i + 1] = 'R';
        i++;
        op.push_back(i);
      }
    }
  }
  if (op.size() - 1 < k) {
    k = k - op.size() + 1;
    printf("%d", op.size());
    for (i = 0; i < op.size(); i++) {
      printf(" %d", op[i]);
    }
    printf("\n");
  } else {
    cout << k + 1;
    for (i = 0; i <= k; i++) {
      printf(" %d", op[i]);
    }
    printf("\n");
    for (i = k + 1; i < op.size(); i++) {
      printf("1 %d\n", op[i]);
    }
    k = 0;
  }
  return k;
}
int main() {
  int n, k, max, i, j;
  char c;
  string s;
  vector<int> op;
  scanf("%d %d", &n, &k);
  s.resize(n);
  getchar();
  for (i = 0; i < n; i++) {
    scanf("%c", &s[i]);
  }
  max = ckmax(s);
  if (k < ckmin(s) || k > max) {
    printf("-1");
  } else {
    max = max - k;
    while (max) {
      max = p(s, max);
    }
    for (i = 0; i < n; i++) {
      if (s[i] == 'L') {
        op.push_back(i);
      }
    }
    for (i = 0; i < op.size(); i++) {
      for (j = op[i]; j > i; j--) {
        printf("1 %d\n", j);
      }
    }
  }
  return 0;
}
