#include <bits/stdc++.h>
using namespace std;
int n, sum, first, second, a[510][510], vis[510][510];
int dx[] = {-1, 0, 0, 1};
int dy[] = {0, 1, -1, 0};
char d[] = {'U', 'R', 'L', 'D'};
char ans[3001000];
void init() {
  memset(a, 0, sizeof(a));
  memset(vis, 0, sizeof(vis));
  for (int i = (1); i <= (n); ++i)
    for (int j = (1); j <= (n); ++j) scanf("%d", &a[i][j]);
  sum = 0;
}
void dfs1(int first, int second) {
  if (a[first][second] == 0) {
    a[first][second] = 1;
    ans[++sum] = '1';
  }
  vis[first][second] = 1;
  for (int i = (0); i <= (3); ++i) {
    int xx = first + dx[i], yy = second + dy[i], ok = 0;
    if (vis[xx][yy]) continue;
    int x1 = xx, y1 = yy;
    while (1) {
      if (a[x1][y1]) {
        ok = 1;
        break;
      }
      if (x1 > n || x1 < 1 || y1 > n || y1 < 1) break;
      x1 += dx[i], y1 += dy[i];
    }
    if (ok) {
      ans[++sum] = d[i];
      dfs1(xx, yy);
      ans[++sum] = d[3 - i];
    }
  }
}
void dfs2(int first, int second) {
  a[first][second] = 0;
  for (int i = (0); i <= (3); ++i) {
    int xx = first + dx[i], yy = second + dy[i];
    if (a[xx][yy]) {
      ans[++sum] = d[i];
      dfs2(xx, yy);
      ans[++sum] = d[3 - i];
    }
  }
  ans[++sum] = '2';
}
void work() {
  dfs1(first, second);
  dfs2(first, second);
  for (int i = (1); i <= (n); ++i)
    for (int j = (1); j <= (n); ++j)
      if (a[i][j]) {
        puts("NO");
        return;
      }
  puts("YES");
  for (int i = (1); i <= (sum); ++i) printf("%c", ans[i]);
  puts("");
}
int main() {
  while (cin >> n >> first >> second) {
    init();
    work();
  }
  return 0;
}
