#include <bits/stdc++.h>
using namespace std;
int n, x[1005][1005], y[1005][1005], dx[4] = {0, 0, 1, -1},
                                     dy[4] = {1, -1, 0, 0};
char ans[1005][1005], dc[4] = {'R', 'L', 'D', 'U'};
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  queue<pair<int, int> > q;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      cin >> x[i][j] >> y[i][j];
      if (x[i][j] == i && y[i][j] == j) {
        q.push({i, j});
        ans[i][j] = 'X';
      }
    }
  }
  pair<int, int> p;
  while (!q.empty()) {
    p = q.front();
    q.pop();
    if (p.first != 1) {
      if (x[p.first - 1][p.second] == x[p.first][p.second] &&
          y[p.first - 1][p.second] == y[p.first][p.second]) {
        if (!ans[p.first - 1][p.second]) {
          ans[p.first - 1][p.second] = 'D';
          q.push({p.first - 1, p.second});
        }
      }
    }
    if (p.first != n) {
      if (x[p.first + 1][p.second] == x[p.first][p.second] &&
          y[p.first + 1][p.second] == y[p.first][p.second]) {
        if (!ans[p.first + 1][p.second]) {
          ans[p.first + 1][p.second] = 'U';
          q.push({p.first + 1, p.second});
        }
      }
    }
    if (p.second != 1) {
      if (x[p.first][p.second - 1] == x[p.first][p.second] &&
          y[p.first][p.second - 1] == y[p.first][p.second]) {
        if (!ans[p.first][p.second - 1]) {
          ans[p.first][p.second - 1] = 'R';
          q.push({p.first, p.second - 1});
        }
      }
    }
    if (p.second != n) {
      if (x[p.first][p.second + 1] == x[p.first][p.second] &&
          y[p.first][p.second + 1] == y[p.first][p.second]) {
        if (!ans[p.first][p.second + 1]) {
          ans[p.first][p.second + 1] = 'L';
          q.push({p.first, p.second + 1});
        }
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (x[i][j] == -1) {
        for (int k = 0; k < 4; k++) {
          if (x[i + dx[k]][j + dy[k]] == -1) {
            ans[i][j] = dc[k];
            break;
          }
        }
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (ans[i][j] == 0) {
        cout << "INVALID\n";
        return 0;
      }
    }
  }
  cout << "VALID\n";
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      cout << ans[i][j];
    }
    cout << "\n";
  }
}
