#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int s = 0;
  bool f = 0;
  char ch = ' ';
  while (!isdigit(ch)) {
    f |= (ch == '-');
    ch = getchar();
  }
  while (isdigit(ch)) {
    s = (s << 3) + (s << 1) + (ch ^ 48);
    ch = getchar();
  }
  return (f) ? (-s) : (s);
}
inline void write(int x) {
  if (x < 0) {
    putchar('-');
    x = -x;
  }
  if (x < 10) {
    putchar(x + '0');
    return;
  }
  write(x / 10);
  putchar((x % 10) + '0');
}
const int N = 505;
int n, sx, sy, a[N][N];
string jyl;
bool vis[N][N];
inline void dfs(int x, int y) {
  vis[x][y] = 1;
  int i;
  if (!a[x][y]) jyl += '1';
  if (x > 1 && (!vis[x - 1][y])) {
    for (i = x - 1; i >= 1; i--)
      if (a[i][y]) {
        jyl += 'U';
        dfs(x - 1, y);
        jyl += 'D';
      }
  }
  if (x < n && (!vis[x + 1][y])) {
    for (i = x + 1; i <= n; i++)
      if (a[i][y]) {
        jyl += 'D';
        dfs(x + 1, y);
        jyl += 'U';
      }
  }
  if (y > 1 && (!vis[x][y - 1])) {
    for (i = y - 1; i >= 1; i--)
      if (a[x][i]) {
        jyl += 'L';
        dfs(x, y - 1);
        jyl += 'R';
      }
  }
  if (y < n && (!vis[x][y + 1])) {
    for (i = y + 1; i <= n; i++)
      if (a[x][i]) {
        jyl += 'R';
        dfs(x, y + 1);
        jyl += 'L';
      }
  }
  a[x][y] = 0;
  jyl += '2';
}
int main() {
  int i, j;
  n = read();
  sx = read();
  sy = read();
  for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++) a[i][j] = read();
  jyl = "";
  dfs(sx, sy);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++)
      if (a[i][j]) return puts("NO"), 0;
  puts("YES");
  cout << jyl << endl;
  return 0;
}
