#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const double PI = acos(-1.0);
template <class Int>
Int __gcd(Int a, Int b) {
  return (b == 0 ? abs(a) : __gcd(b, a % b));
}
int dx[] = {0, 0, -1, 1, 1, 1, -1, -1};
int dy[] = {-1, 1, 0, 0, 1, -1, -1, 1};
const int N = 2e5 + 10;
void file() {}
int arr[1001][101];
int main() {
  file();
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m, ki;
  cin >> n >> m >> ki;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      cin >> arr[i][j];
      if (ki) arr[i][j] *= -1;
    }
  set<pair<int, int>> st;
  for (int i = 0; i < m; i++)
    for (int j = i + 1; j < m; j++) {
      for (int k = 0; k < n; k++) {
        if (arr[k][i] > arr[k][j]) {
          if (!ki)
            st.insert({i + 1, j + 1});
          else
            st.insert({j + 1, i + 1});
          swap(arr[k][i], arr[k][j]);
        }
      }
    }
  cout << ((int)(st).size()) << endl;
  for (auto it : st) cout << it.first << ' ' << it.second << endl;
}
