#include <bits/stdc++.h>
using namespace std;
using LL = long long;
using LD = long double;
using vi = vector<int>;
using vll = vector<LL>;
using pii = pair<int, int>;
using vpii = vector<pair<int, int>>;
inline int sqr(int x) { return x * x; }
inline int cube(int x) { return x * x * x; }
inline LL sqrLL(LL x) { return x * x; }
inline LL cubeLL(LL x) { return x * x * x; }
const LL LLINF = 9223372036854775807LL;
const LL LLINF17 = 100000000000000000LL;
const int INF = 1000000000;
const int INF9 = 1000000000;
LL MOD = 1000000007;
const double eps = 1e-7;
const double PI = acos(-1.0);
template <typename T>
void check(T& a, const T& b) {
  if (a >= b) {
    a %= b;
  }
}
template <typename T>
T gcd(T u, T v) {
  if (u == v) return u;
  if (u == 0) return v;
  if (v == 0) return u;
  if (~u & 1) {
    if (v & 1)
      return gcd(u >> 1, v);
    else
      return gcd(u >> 1, v >> 1) << 1;
  }
  if (~v & 1) return gcd(u, v >> 1);
  if (u > v) return gcd((u - v) >> 1, v);
  return gcd((v - u) >> 1, u);
}
LL mulmod(LL a, LL b, LL m) {
  LL q = (LL)(((LD)a * (LD)b) / (LD)m);
  LL r = a * b - q * m;
  if (r > m) r %= m;
  if (r < 0) r += m;
  return r;
}
template <typename T, typename S>
T expo(T e, S n) {
  T x = 1, p = e;
  while (n) {
    if (n & 1) x = x * p;
    p = p * p;
    n >>= 1;
  }
  return x;
}
template <typename T>
T powerL(T e, T n, T& m) {
  T x = 1, p = e;
  while (n) {
    if (n & 1) x = mulmod(x, p, m);
    p = mulmod(p, p, m);
    n >>= 1;
  }
  return x;
}
const int N = (int)510;
int a[N], k1, b[N], pre[N];
map<int, vi> pos;
int possible[510];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> n;
  a[0] = (int)1e7;
  a[n + 1] = (int)1e7;
  for (int(i) = (1); (i) <= (n); (i)++)
    cin >> a[i], pre[i] += pre[i - 1] + a[i], pos[a[i]].push_back(i);
  cin >> k1;
  for (int(i) = (1); (i) <= (k1); (i)++) cin >> b[i];
  bool can = 0;
  int n1 = n;
  int last = 1;
  vector<pair<int, char>> ans;
  if (k1 == n) {
    for (int i = 1; i <= n; i++) {
      if (a[i] != b[i])
        cout << "NO"
             << "\n",
            exit(0);
    }
    cout << "YES"
         << "\n";
    return 0;
  }
  int temparr[510];
  int prev = 1;
  for (int i = 1; i <= k1; i++) {
    int found = 0;
    int found_pos = -1;
    for (int j = prev; j <= n; j++) {
      int idx = lower_bound(pre + j, pre + n, b[i] + pre[j - 1]) - pre;
      if (idx <= n && pre[idx] - pre[j - 1] == b[i]) {
        int maxn = -1;
        for (int k = j; k <= idx; k++) {
          maxn = max(maxn, a[k]);
        }
        if (idx == j) {
          found = 1;
        } else
          for (int k = j; k <= idx;) {
            if (maxn == a[k] && k == j && a[k + 1] != maxn) {
              found = 1;
              int prev = k;
              k++;
              while (k <= idx) {
                k++;
                ans.push_back({prev, 'R'});
              }
            } else if (maxn == a[k] && k == idx && a[k - 1] != maxn) {
              found = 1;
              int k2 = k;
              while (k2 > j) {
                ans.push_back({k2, 'L'});
                k2--;
              }
              k++;
            } else if (maxn == a[k] && k != j && a[k - 1] != maxn) {
              found = 1;
              int k2 = k;
              while (k2 > j) {
                ans.push_back({k2, 'L'});
                k2--;
              }
              while (k < idx) {
                ans.push_back({j, 'R'});
                k++;
              }
              k++;
            } else if (maxn == a[k] && k != idx && a[k + 1] != maxn) {
              found = 1;
              int k2 = k;
              k++;
              while (k <= idx) {
                ans.push_back({k2, 'R'});
                k++;
              }
              while (k2 > j) {
                ans.push_back({k2, 'L'});
                k2--;
              }
            } else
              k++;
          }
      }
      if (found) {
        a[j] = b[i];
        memset(temparr, -1, sizeof temparr);
        prev = j + 1;
        for (int k = idx + 1, x = 0; k <= n; x++, k++) {
          temparr[x] = a[k];
        }
        for (int k = j + 1, x = 0; k <= n; x++, k++) {
          a[k] = temparr[x];
        }
        int prevn = n;
        n = 0;
        for (int k = 1; k <= prevn && a[k] != -1; k++) {
          n++;
        }
        memset(pre, 0, sizeof pre);
        for (int k = 1; k <= n; k++) {
          pre[k] += pre[k - 1] + a[k];
        }
        break;
      }
    }
    if (!found) {
      cout << "NO"
           << "\n";
      return 0;
    }
  }
  if (n != k1) {
    cout << "NO"
         << "\n";
    return 0;
  }
  cout << "YES"
       << "\n";
  for (pair<int, char> i : ans) {
    cout << i.first << " " << i.second << "\n";
  }
  return 0;
}
