#include <bits/stdc++.h>
using namespace std;
long long n, m, s, d;
long long a[200005];
long long cnt;
struct node {
  long long l, r;
} e[200005];
signed main() {
  scanf("%lld%lld%lld%lld", &n, &m, &s, &d);
  for (long long i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
  }
  sort(a + 1, a + 1 + n);
  if (a[1] - 1 < s) {
    printf("IMPOSSIBLE\n");
    return 0;
  }
  a[0] = -(1e9 + 7);
  for (long long i = 1; i <= n; i++) {
    if (a[i] - a[i - 1] - 1 > s)
      e[++cnt].l = a[i], e[cnt].r = a[i];
    else
      e[cnt].r = a[i];
  }
  for (long long i = 1; i <= cnt; i++)
    if (e[i].r - e[i].l + 1 >= d) {
      printf("IMPOSSIBLE\n");
      return 0;
    }
  long long now = 0;
  for (long long i = 1; i <= cnt; i++) {
    if (e[i].l != 1) {
      printf("RUN %lld\n", e[i].l - 1 - now);
      printf("JUMP %lld\n", e[i].r + 1 - (e[i].l - 1));
      now = e[i].r + 1;
    }
  }
  if (now < m) printf("RUN %lld\n", m - now);
  return 0;
}
