#include <bits/stdc++.h>
using namespace std;
int n, k, v[105], l[105], r[105];
vector<int> a[105];
struct seg {
  int val, l, r;
} c[105];
bool operator<(seg a, seg b) { return a.r < b.r; }
int main() {
  int t = 0, x;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n * k; ++i) {
    scanf("%d", &x);
    a[x].push_back(i);
  }
  int i = 1, p = n;
  while (n) {
    int t = 0;
    for (int j = 1; j <= p; ++j) {
      if (!v[j]) c[++t] = {j, a[j][i - 1], a[j][i]};
    }
    sort(c + 1, c + 1 + t);
    for (int j = 1; n && j <= (p + k - 2) / (k - 1); ++j) {
      v[c[j].val] = 1;
      l[c[j].val] = c[j].l;
      r[c[j].val] = c[j].r;
      n--;
    }
    ++i;
  }
  for (int i = 1; i <= p; ++i) printf("%d %d\n", l[i], r[i]);
  return 0;
}
