#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)1e9;
const long long MOD = (long long)1e9 + 7;
const long long p = 239;
const long long MAX_N = 100000;
const long double pi = 3.1415926535897932384626;
const long double eps = 1e-6;
int main() {
  long long n, m, s, d;
  scanf("%I64d %I64d %I64d %I64d", &n, &m, &s, &d);
  long long a[n];
  for (long long i = 0; i < n; i++) {
    scanf("%I64d", &a[i]);
    if (a[i] < s + 1) {
      printf("IMPOSSIBLE");
      return 0;
    }
  }
  sort(a, a + n);
  bool ok[n];
  ok[n - 1] = true;
  for (long long i = 0; i < n - 1; i++)
    if (a[i + 1] - a[i] < s + 2)
      ok[i] = false;
    else
      ok[i] = true;
  vector<long long> ans;
  long long i = 0, curr = 0;
  while (i < n) {
    ans.push_back(a[i] - 1 - curr);
    curr = a[i] - 1;
    for (long long j = i; j < n; j++) {
      if (a[j] - a[i] + 2 > d) {
        printf("IMPOSSIBLE");
        return 0;
      }
      if (ok[j]) {
        ans.push_back(a[j] - a[i] + 2);
        curr = a[j] + 1;
        i = j + 1;
        break;
      }
    }
  }
  ans.push_back(m - curr);
  for (long long i = 0; i < ans.size(); i++)
    if (i % 2 == 0) {
      if (ans[i] != 0) printf("RUN %I64d\n", ans[i]);
    } else
      printf("JUMP %I64d\n", ans[i]);
  return 0;
}
