#include <bits/stdc++.h>
using namespace std;
const int maxl = 5 * 100 + 5;
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
char c[4] = {'R', 'D', 'L', 'U'};
char op[4] = {'L', 'U', 'R', 'D'};
bool a[maxl][maxl];
int n;
int xs, ys;
string ans;
bool marked[maxl][maxl];
void dfs(int x, int y) {
  marked[x][y] = true;
  marked[x][y] = true;
  if (!a[x][y]) a[x][y] = true, ans.push_back('1');
  for (int i = 0; i < 4; i++) {
    bool flag = false;
    for (int j = 1; j < n; j++) {
      int nx = x + dx[i] * j, ny = y + dy[i] * j;
      if (nx < 0 || nx >= n) break;
      if (ny < 0 || ny >= n) break;
      flag |= a[nx][ny];
    }
    if (!flag) continue;
    int nx = x + dx[i], ny = y + dy[i];
    if (!marked[nx][ny]) {
      ans.push_back(c[i]);
      dfs(nx, ny);
      ans.push_back(op[i]);
    }
  }
  if (a[x][y]) a[x][y] = false, ans.push_back('2');
}
int main() {
  cin >> n >> xs >> ys;
  xs--;
  ys--;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) cin >> a[i][j];
  dfs(xs, ys);
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (a[i][j]) {
        cout << "NO" << endl;
        return 0;
      }
  cout << "YES\n" << ans << endl;
}
