#include <bits/stdc++.h>
using namespace std;
const int N = 200100;
int pre[N], a[N];
void dfs(int x) {
  if (x == 0) {
    printf("RUN %d\n", a[1] - a[0] - 2);
    return;
  }
  dfs(pre[x]);
  printf("JUMP %d\n", a[x] - a[pre[x] + 1] + 2);
  if (a[x + 1] - a[x] - 2) printf("RUN %d\n", a[x + 1] - a[x] - 2);
}
int main() {
  int n, m, s, d;
  cin >> n >> m >> s >> d;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  a[n++] = m + 1;
  a[n++] = -1;
  sort(a, a + n);
  n = unique(a, a + n) - a;
  int now = 0;
  memset(pre, -1, sizeof pre);
  for (int i = 0; i < n - 1; i++) {
    if (a[i + 1] - a[i] - 2 < s) continue;
    if (i > now) {
      cout << "IMPOSSIBLE\n";
      return 0;
    }
    int pos = a[i + 1] - 1 + d;
    int p = lower_bound(a, a + n, pos) - a - 1;
    if (now < p) {
      for (int j = now + 1; j <= p; j++) pre[j] = i;
      now = p;
    }
  }
  if (pre[n - 2] == -1)
    cout << "IMPOSSIBLE\n";
  else
    dfs(n - 2);
}
