#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 200 + 17, inf = 2e18 + 17;
long long a[MAXN], b[MAXN], n, m, k, t[MAXN][MAXN], np;
void fillA() {
  for (int i = 1; i <= m; i++)
    for (int j = 0; i - j > 0 && j < n; j++) a[i] = min(t[j + 1][i - j], a[i]);
  for (int i = 1; i <= n; i++)
    for (int j = 0; i + j <= n && j < m; j++)
      a[i + m - 1] = min(a[i + m - 1], t[i + j][m - j]);
}
void fillBackT() {
  for (int i = 1; i <= m; i++)
    for (int j = 0; i - j > 0 && j < n; j++) t[j + 1][i - j] = a[i];
  for (int i = 1; i <= n; i++)
    for (int j = 0; i + j <= n && j < m; j++) t[i + j][m - j] = a[i + m - 1];
}
long long count(int x) {
  a[x] = 0;
  long long dp[MAXN][MAXN] = {};
  if (a[1] == 1)
    dp[1][1] = 0;
  else
    dp[1][1] = 1;
  for (int i = 2; i <= np; i++)
    for (int j = 0; j <= np; j++) {
      if (a[i] == 1)
        dp[i][j] = dp[i - 1][j + 1];
      else if (a[i] == 0)
        dp[i][j] = (j > 0 ? dp[i - 1][j - 1] : 0);
      else
        dp[i][j] =
            min(inf, (dp[i - 1][j + 1] + (j > 0 ? dp[i - 1][j - 1] : 0)));
    }
  return dp[np][0];
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cin >> t[i][j];
  fill(a, a + MAXN, inf);
  fillA();
  np = n + m - 1;
  iota(b + 1, b + np + 1, 1);
  sort(b + 1, b + np + 1, [](int i, int j) { return a[i] < a[j]; });
  for (int i = 1; i <= np; i++) {
    long long tmp = count(b[i]);
    if (tmp >= k)
      a[b[i]] = 0;
    else {
      a[b[i]] = 1;
      k -= tmp;
    }
  }
  fillBackT();
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) cout << (t[i][j] ? ')' : '(');
    cout << endl;
  }
  return 0;
}
