#include <bits/stdc++.h>
using namespace std;
const int maxn = 555;
int n, sx, sy, light[maxn][maxn];
bool check[maxn][maxn];
string ans;
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, -1, 0, 1};
char dd[4] = {'U', 'L', 'D', 'R'};
char zdd[4] = {'D', 'R', 'U', 'L'};
bool isvalid(int x, int y, int lol) {
  if (x < 0 || x >= n || y < 0 || y >= n) return false;
  if (check[x][y]) return false;
  while (x >= 0 && x < n && y < n && y >= 0) {
    if (light[x][y]) return true;
    x += dx[lol];
    y += dy[lol];
  }
  return false;
}
void dfs(int x, int y) {
  check[x][y] = true;
  if (!light[x][y]) {
    ans.push_back('1');
    light[x][y] = 1;
  }
  for (int i = 0; i < 4; i++) {
    int newx = dx[i] + x;
    int newy = dy[i] + y;
    if (isvalid(newx, newy, i)) {
      ans.push_back(dd[i]);
      dfs(newx, newy);
      ans.push_back(zdd[i]);
    }
  }
  ans.push_back('2');
  light[x][y] = 0;
}
int main() {
  cin >> n >> sx >> sy;
  sx--;
  sy--;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) cin >> light[i][j];
  dfs(sx, sy);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (light[i][j]) {
        cout << "NO";
        return 0;
      }
    }
  }
  cout << "YES" << endl;
  cout << ans;
}
