#include <bits/stdc++.h>
using namespace std;
const int maxn = 511;
int n, m[maxn][maxn];
bool vis[maxn][maxn];
int x0, yy;
string ans;
bool check() {
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      if (m[i][j] == 1) return 0;
    }
  }
  return 1;
}
void dfs(int x, int y) {
  vis[x][y] = 1;
  if (!m[x][y]) {
    m[x][y] = 1;
    ans.push_back('1');
  }
  for (int i = x - 1; i > 0; --i) {
    if (m[i][y] == 1) {
      if (!vis[x - 1][y]) {
        ans.push_back('U');
        dfs(x - 1, y);
        ans.push_back('D');
      }
      break;
    }
  }
  for (int i = x + 1; i <= n; ++i) {
    if (m[i][y] == 1) {
      if (!vis[x + 1][y]) {
        ans.push_back('D');
        dfs(x + 1, y);
        ans.push_back('U');
      }
      break;
    }
  }
  for (int i = y - 1; i > 0; --i) {
    if (m[x][i] == 1) {
      if (!vis[x][y - 1]) {
        ans.push_back('L');
        dfs(x, y - 1);
        ans.push_back('R');
      }
      break;
    }
  }
  for (int i = y + 1; i <= n; ++i) {
    if (m[x][i] == 1) {
      if (!vis[x][y + 1]) {
        ans.push_back('R');
        dfs(x, y + 1);
        ans.push_back('L');
      }
      break;
    }
  }
  m[x][y] = 0;
  ans.push_back('2');
}
int main() {
  cin >> n >> x0 >> yy;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      cin >> m[i][j];
    }
  }
  dfs(x0, yy);
  if (check()) {
    cout << "YES" << endl;
    cout << ans << endl;
  } else
    cout << "NO" << endl;
  return 0;
}
