#include <bits/stdc++.h>
const long long INF = 1e18;
std::pair<int, int> p[205];
char ans[205];
void add(long long &x, long long val) {
  if (x + val > INF) {
    x = INF;
  } else
    x += val;
}
long long calc(int n) {
  static long long dp[205][205];
  std::fill(dp[0], dp[n + 1], 0);
  dp[0][0] = 1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= i; j++) {
      long long now = dp[i][j];
      if (!now) continue;
      if (ans[i] == '(') {
        add(dp[i + 1][j + 1], now);
      }
      if (ans[i] == '?') {
        add(dp[i + 1][j + 1], now);
        if (j > 0) add(dp[i + 1][j - 1], now);
      }
      if (ans[i] == ')' && j > 0) {
        add(dp[i + 1][j - 1], now);
      }
    }
  }
  return dp[n][0];
}
int main() {
  int N, M;
  long long K;
  std::cin >> N >> M >> K;
  for (int i = 0; i < N + M; i++) p[i].first = 1e9;
  for (int i = 0; i < N; i++) {
    for (int j = 0, x; j < M; j++) {
      std::cin >> x;
      p[i + j].first = std::min(p[i + j].first, x);
      p[i + j].second = i + j;
    }
  }
  int n = N + M - 1;
  std::sort(p, p + n);
  std::fill(ans, ans + n, '?');
  for (int i = 0; i < n; i++) {
    ans[p[i].second] = '(';
    long long k = calc(n);
    if (k < K) {
      K -= k;
      ans[p[i].second] = ')';
    }
  }
  for (int i = 0; i < N; i++) {
    for (int j = 0; j < M; j++) {
      putchar(ans[i + j]);
    }
    puts("");
  }
  return 0;
}
