#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int N = 542;
int a[N][N], u[N][N];
int curon = 0, n = 0, xx = 0, yy = 0;
bool check(int x, int y, int dx, int dy) {
  while (true) {
    x += dx;
    y += dy;
    if (x < 0 || y < 0 || x >= n || y >= n) break;
    if (a[x][y]) return true;
  }
  return false;
}
char ans[N * N * 4];
int cpos = 0;
void go(int x, int y) {
  u[x][y] = true;
  if (!a[x][y]) {
    a[x][y] = 1;
    ans[cpos++] = '1';
    curon++;
  }
  if (check(x, y, -1, 0) && !u[x - 1][y]) {
    ans[cpos++] = 'U';
    go(x - 1, y);
    ans[cpos++] = 'D';
  }
  if (check(x, y, 1, 0) && !u[x + 1][y]) {
    ans[cpos++] = 'D';
    go(x + 1, y);
    ans[cpos++] = 'U';
  }
  if (check(x, y, 0, -1) && !u[x][y - 1]) {
    ans[cpos++] = 'L';
    go(x, y - 1);
    ans[cpos++] = 'R';
  }
  if (check(x, y, 0, 1) && !u[x][y + 1]) {
    ans[cpos++] = 'R';
    go(x, y + 1);
    ans[cpos++] = 'L';
  }
  if (a[x][y]) {
    a[x][y]--;
    ans[cpos++] = '2';
    curon--;
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> xx >> yy;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
      cin >> a[i][j];
      curon += a[i][j];
    }
  go(--xx, --yy);
  if (curon)
    cout << "NO\n";
  else {
    cout << "YES\n";
    for (int i = 0; i < cpos; i++) cout << ans[i];
  }
  return 0;
}
