#include <bits/stdc++.h>
using namespace std;
int n, a, b;
int A[509][509];
bool seen[509][509];
int dirx[] = {-1, +1, 0, 0};
int diry[] = {0, 0, +1, -1};
char dr[] = {"UDRL12"};
int ret, sm, yni;
int ans[3000009 + 9];
bool isout(int x, int y) {
  return ((x < y ? x : y) < 1 || (x > y ? x : y) > n);
}
int sumrow(int x, int a, int b) {
  ret = 0;
  for (int i = a; i <= b; i++) ret += A[x][i];
  return ret;
}
int sumcolumn(int x, int a, int b) {
  ret = 0;
  for (int i = a; i <= b; i++) ret += A[i][x];
  return ret;
}
void dfs(int x, int y, int wh) {
  seen[x][y] = 1;
  if (A[x][y] == 0) {
    A[x][y] = 1;
    ans[ans[3000009]++] = 4;
  }
  for (int i = 0; i < 4; i++) {
    int tox = x + dirx[i];
    int toy = y + diry[i];
    if (i == 0)
      sm = sumcolumn(y, 1, tox), yni = 1;
    else if (i == 1)
      sm = sumcolumn(y, tox, n), yni = 0;
    else if (i == 2)
      sm = sumrow(x, toy, n), yni = 3;
    else
      sm = sumrow(x, 1, toy), yni = 2;
    if (isout(tox, toy) || seen[tox][toy] || !sm) continue;
    ans[ans[3000009]++] = i;
    seen[tox][toy] = 1;
    dfs(tox, toy, yni);
  }
  A[x][y] = 0;
  ans[ans[3000009]++] = 5;
  if (wh != -1) ans[ans[3000009]++] = wh;
}
int main() {
  scanf("%d %d %d", &n, &a, &b);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) scanf("%d", A[i] + j);
  dfs(a, b, -1);
  bool flag = 0;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) flag |= A[i][j];
  if (flag)
    printf("NO");
  else {
    printf("YES\n");
    for (int i = 0; i < ans[3000009]; i++) printf("%c", dr[ans[i]]);
  }
}
