#include <bits/stdc++.h>
using namespace std;
pair<int, int> a[1002][1002];
pair<int, int> p[1002][1002];
int s[1002][1002];
int n;
int dy[4] = {1, 0, -1, 0};
int dx[4] = {0, 1, 0, -1};
char ans[1002][1002];
char c[4] = {'L', 'U', 'R', 'D'};
pair<int, int> F(pair<int, int> k) {
  return p[k.first][k.second] == k
             ? k
             : p[k.first][k.second] = F(p[k.first][k.second]);
}
void U(pair<int, int> q, pair<int, int> w) {
  pair<int, int> qq = F(q);
  pair<int, int> ww = F(w);
  if (qq == ww) return;
  p[qq.first][qq.second] = ww;
  s[ww.first][ww.second] += s[qq.first][qq.second];
}
void dfs(int xx, int yy) {
  for (int i = 0; i < 4; i++) {
    int tx = xx + dx[i];
    int ty = yy + dy[i];
    if (tx >= 1 && tx <= n && ty >= 1 && ty <= n) {
      if (a[tx][ty] == a[xx][yy] && ans[tx][ty] == 0) {
        ans[tx][ty] = c[i];
        dfs(tx, ty);
      }
    }
  }
}
int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cin >> n;
  int i, j, k;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      cin >> a[i][j].first >> a[i][j].second;
      p[i][j] = {i, j};
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      for (k = 0; k < 4; k++) {
        int xx = i + dx[k];
        int yy = j + dy[k];
        if (xx >= 1 && xx <= n && yy >= 1 && yy <= n) {
          if (a[xx][yy] == a[i][j]) {
            U({xx, yy}, {i, j});
          }
        }
      }
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      if (ans[i][j]) continue;
      if (a[i][j].first == i && a[i][j].second == j) {
        ans[i][j] = 'X';
        dfs(i, j);
      }
      if (a[i][j].first == -1 && a[i][j].second == -1) {
        for (k = 0; k < 4; k++) {
          int xx = i + dx[k];
          int yy = j + dy[k];
          if (a[xx][yy] == (pair<int, int>){-1, -1}) {
            ans[xx][yy] = c[k];
            ans[i][j] = c[(k + 2) % 4];
            dfs(xx, yy);
            dfs(i, j);
          }
        }
      }
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      if (ans[i][j] == 0) {
        cout << "INVALID";
        return 0;
      }
    }
  }
  cout << "VALID";
  cout << endl;
  for (i = 1; i <= n; i++) {
    cout << ans[i] + 1;
    cout << "\n";
  }
  return 0;
}
