#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
ll Fenwick_Get(vector<ll> &sum, int r) {
  ll res = 0;
  for (; r >= 0; r = ((r) & (r + 1)) - 1) {
    res += sum[r];
  }
  return res;
}
int dist(string &a, string &b) {
  int res = 0;
  for (int i = 0; i < 6; ++i) {
    if (a[i] != b[i]) {
      ++res;
    }
  }
  return res;
}
void Fenwick_Inc(vector<ll> &sum, int i, ll delta) {
  for (; i < sum.size(); i = (i) | (i + 1)) {
    sum[i] += delta;
  }
}
struct segment {
  int l;
  int r;
};
struct ans {
  string type;
  int d;
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n, m, s, d;
  cin >> n >> m >> s >> d;
  vector<int> v(n);
  for (int i = 0; i < n; ++i) {
    cin >> v[i];
  }
  sort(v.begin(), v.end());
  vector<segment> all;
  for (int i = 0; i < n; ++i) {
    segment next = {v[i], v[i]};
    while (all.size() && next.l - all.back().r - 2 < s) {
      next.l = all.back().l;
      all.pop_back();
    }
    all.push_back(next);
  }
  vector<ans> res;
  for (int i = 0; i < all.size(); ++i) {
    if (all[i].r - all[i].l + 2 > d) {
      cout << "IMPOSSIBLE" << endl;
      return 0;
    }
    if (!i) {
      if (all[0].l <= s) {
        cout << "IMPOSSIBLE" << endl;
        return 0;
      } else {
        res.push_back({"RUN", all[0].l - 1});
        res.push_back({"JUMP", all[0].r - all[0].l + 2});
      }
    } else {
      res.push_back({"RUN", (all[i].l - all[i - 1].r - 2)});
      res.push_back({"JUMP", all[i].r - all[i].l + 2});
    }
  }
  if (all.back().r + 1 != m) {
    res.push_back({"RUN", (m - all.back().r - 1)});
  }
  for (auto cur : res) printf("%s %d\n", cur.type.c_str(), cur.d);
}
