#include <bits/stdc++.h>
using namespace std;
const int maxn = 100;
const int maxm = 100;
const int maxlen = maxn + maxm - 1;
struct point {
  int ind, p;
  bool operator<(const point& b) const { return p < b.p; }
} cell[maxlen];
char state[maxlen];
int n, m;
long long k;
int p;
long long dp[maxlen][maxlen];
long long Cnt() {
  memset(dp, 0, sizeof(dp));
  if (state[0] == ')') return 0;
  dp[0][1] = 1;
  for (int i = 1; i <= (n - 1) + (m - 1); ++i) {
    for (int j = 0; j <= (n - 1) + (m - 1); ++j) {
      if (state[i] == 0) {
        if (j > 0) dp[i][j] = dp[i - 1][j - 1];
        dp[i][j] += dp[i - 1][j + 1];
      } else if (state[i] == '(') {
        if (j > 0) dp[i][j] = dp[i - 1][j - 1];
      } else
        dp[i][j] = dp[i - 1][j + 1];
      if (dp[i][j] > k) dp[i][j] = k + 1;
    }
  }
  return dp[(n - 1) + (m - 1)][0];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> m >> k;
  for (int i = 0; i <= (n - 1) + (m - 1); ++i)
    cell[i].ind = i, cell[i].p = n * m + 1;
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j) {
      cin >> p;
      cell[i + j].p = min(cell[i + j].p, p);
    }
  sort(cell, cell + n + m - 1);
  for (int i = 0; i <= (n - 1) + (m - 1); ++i) {
    state[cell[i].ind] = '(';
    long long num = Cnt();
    if (num < k) {
      k -= num;
      state[cell[i].ind] = ')';
    }
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) cout << state[i + j];
    cout << endl;
  }
  return 0;
}
