#include <bits/stdc++.h>
using namespace std;
const int mx[4] = {-1, 1, 0, 0};
const int my[4] = {0, 0, 1, -1};
const char ch[4] = {'U', 'D', 'R', 'L'};
int n, sx, sy;
int M[550][550];
int Need, All;
int A[550][550];
bool vis[550][550];
bool mk[550][550][4];
string Ans;
bool see(int x, int y, int l) {
  for (int t = 1, nx, ny; t <= n; t++) {
    nx = x + t * mx[l];
    ny = y + t * my[l];
    if (1 <= nx && nx <= n && 1 <= ny && ny <= n) {
      if (A[nx][ny]) return 1;
    } else
      break;
  }
  return 0;
}
void dfs(int x, int y) {
  if (M[x][y] == 1)
    All++;
  else
    Ans += '1';
  A[x][y] = vis[x][y] = 1;
  for (int l = 0; l <= 3; l++)
    if (see(x, y, l)) {
      int nx = x + mx[l], ny = y + my[l];
      if (1 <= nx && nx <= n && 1 <= ny && ny <= n)
        if (!vis[nx][ny]) {
          mk[x][y][l] = 1;
          Ans += ch[l];
          dfs(nx, ny);
          Ans += ch[l ^ 1];
        }
    }
}
void endit(int x, int y) {
  for (int l = 3; l >= 0; l--)
    if (mk[x][y][l]) {
      Ans += ch[l];
      endit(x + mx[l], y + my[l]);
      Ans += ch[l ^ 1];
    }
  Ans += '2';
}
int main() {
  cin >> n >> sx >> sy;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      cin >> M[i][j];
      if (M[i][j]) Need++, A[i][j] = 1;
    }
  dfs(sx, sy);
  if (All < Need) {
    cout << "NO" << endl;
    exit(0);
  } else
    cout << "YES" << endl;
  endit(sx, sy);
  cout << Ans << endl;
}
