#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e3 + 100;
inline long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - 48;
    ch = getchar();
  }
  return x * f;
}
char str[maxn];
char ans[maxn];
int main(void) {
  cin.tie(0);
  std::ios::sync_with_stdio(false);
  long long t;
  cin >> t;
  while (t--) {
    long long n, m;
    cin >> n >> m;
    for (long long i = 0; i <= n + 10; i++) str[i] = ans[i] = '/0';
    cin >> (str + 1);
    for (long long i = 1; i <= (m - 1) * 2; i++) {
      if (i & 1)
        ans[i] = '(';
      else
        ans[i] = ')';
    }
    long long pos1 = (m - 1) * 2;
    for (long long i = pos1 + 1; i <= pos1 + n / 2 - (m - 1); i++) {
      ans[i] = '(';
    }
    long long pos2 = pos1 + n / 2 - (m - 1);
    for (long long i = pos2 + 1; i <= n; i++) {
      ans[i] = ')';
    }
    vector<pair<long long, long long>> v;
    for (long long l = 1; l <= n; l++) {
      if (str[l] != ans[l]) {
        long long r = l;
        char p[maxn];
        long long tot = 0;
        for (r = l; r <= n; r++) {
          if (str[r] == ans[l]) {
            p[++tot] = str[r];
            break;
          } else
            p[++tot] = str[r];
        }
        v.push_back({l, r});
        for (long long k = l; k <= r; k++) {
          str[k] = p[tot--];
        }
      }
    }
    cout << v.size() << "\n";
    for (auto i : v) {
      cout << i.first << " " << i.second << "\n";
    }
  }
  return 0;
}
