#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:66777216")
using namespace std;
struct impediment {
  int start;
  int finish;
};
int n, m, s, d;
int x[200005];
vector<impediment> im;
void compress() {
  impediment tmp;
  for (int i = 0; i < n; i++) {
    tmp.start = x[i];
    while (i + 1 < n && x[i + 1] - x[i] - 2 < s) i++;
    tmp.finish = x[i];
    im.push_back(tmp);
  }
}
void fail() {
  printf("IMPOSSIBLE");
  exit(0);
}
int main() {
  scanf("%d %d %d %d", &n, &m, &s, &d);
  for (int i = 0; i < n; i++) scanf("%d", &x[i]);
  sort(x, x + n);
  compress();
  for (int i = 0; i < im.size(); i++)
    if (im[i].finish - im[i].start + 2 > d) fail();
  if (im[0].start - 1 < s) fail();
  int prev_x = -1;
  for (int i = 0; i < im.size(); i++) {
    printf("RUN %d\n", im[i].start - prev_x - 2);
    printf("JUMP %d\n", im[i].finish - im[i].start + 2);
    prev_x = im[i].finish;
  }
  if (prev_x != m - 1) printf("RUN %d\n", m - prev_x - 1);
  return 0;
}
