#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n, p;
    scanf("%d%d", &n, &p);
    set<pair<int, int> > edges;
    edges.clear();
    for (int i = (0); i < (n); i++) {
      edges.insert(make_pair(i, (i + 1) % n));
      edges.insert(make_pair(i, (i + 2) % n));
    }
    int ile = 0;
    for (int i = (0); i < (n); i++) {
      for (int j = (i + 1); j < (n); j++) {
        if (ile < p) {
          if (edges.find(make_pair(i, j)) == edges.end() &&
              edges.find(make_pair(j, i)) == edges.end()) {
            ile++;
            edges.insert(make_pair(i, j));
          }
        }
      }
    }
    for (set<pair<int, int> >::iterator it = edges.begin(); it != edges.end();
         it++) {
      printf("%d %d\n", (it->first) + 1, (it->second) + 1);
    }
  }
  return 0;
}
