#include <bits/stdc++.h>
using namespace std;
int a[200001];
void qs(int q, int w) {
  int e = q, r = w, t = a[q + (rand() % (w - q + 1))];
  do {
    while (a[e] < t) e++;
    while (a[r] > t) r--;
    if (e <= r) {
      swap(a[e], a[r]);
      e++;
      r--;
    }
  } while (e < r);
  if (q < r) qs(q, r);
  if (e < w) qs(e, w);
}
int ans1[400001], ans2[400001];
int main() {
  int q, w, e, r, t, finish, needToJump, jump;
  scanf("%d%d%d%d", &q, &finish, &needToJump, &jump);
  for (w = 0; w < q; w++) {
    scanf("%d", &a[w]);
  }
  a[q] = -1;
  q++;
  qs(0, q - 1);
  if (a[1] <= needToJump) {
    cout << "IMPOSSIBLE";
    return 0;
  }
  int numAns = 0;
  for (w = 1; w < q;) {
    ans1[numAns] = 0;
    ans2[numAns] = a[w] - a[w - 1] - 2;
    numAns++;
    for (e = w + 1; e < q; e++) {
      if (a[e - 1] - a[w] + 2 > jump) {
        cout << "IMPOSSIBLE";
        return 0;
      }
      if (a[e] - a[e - 1] >= needToJump + 2) {
        ans1[numAns] = 1;
        ans2[numAns] = a[e - 1] - a[w] + 2;
        numAns++;
        break;
      }
    }
    if (e == q) {
      if (a[q - 1] - a[w] + 2 <= jump) {
        ans1[numAns] = 1;
        ans2[numAns] = a[q - 1] - a[w] + 2;
        numAns++;
        if (a[q - 1] + 1 < finish) {
          ans1[numAns] = 0;
          ans2[numAns] = finish - a[q - 1] - 1;
          numAns++;
        }
        break;
      } else {
        cout << "IMPOSSIBLE";
        return 0;
      }
    }
    w = e;
  }
  for (w = 0; w < numAns; w++) {
    if (ans1[w] == 0) {
      printf("RUN ");
    } else {
      printf("JUMP ");
    }
    printf("%d\n", ans2[w]);
  }
  return 0;
}
