func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:256000000 )   using namespace std;   const int INF = 1000001000;   const int mod = 1000 * 1000 * 1000 + 7;   const int mod9 = 1000 * 1000 * 1000 + 9;   const double PI = 3.1415926535897932;   double sqr(double first) { return first * first; };   long double sqr(long double first) { return first * first; };   long long sqr(long long first) { return first * first; };   long long sqr(int first) { return first * 1LL * first; };   long long gcd(long long a, long long b) {     while (b) a %= b, swap(a, b);     return a;   }   long long bpm(long long a, long long n = -2, long long m = mod) {     n = n >= 0 ? n : m + n;     long long r = 1;     while (n) {       if (n & 1) r = (r * a) % m;       a = (a * a) % m;       n >>= 1;     }     return r;   }   long long dist(long long x1, long long y1, long long x2, long long y2) {     return sqr(x1 - x2) + sqr(y1 - y2);   }   std::ostream& operator<<(std::ostream& os, pair<int, int> p) {     return os <<  {  << p.first <<     << p.second <<  } ;   }   const int N = 200005;   long long a[N];   pair<long long, long long> b[N];   int main() {     ios::sync_with_stdio(false);     long long n, m, s, d;     cin >> n >> m >> s >> d;     for (int i = 0; i < n; i++) {       cin >> a[i];     }     sort(a, a + n);     int nwn = -1;     for (int i = 0; i < n; i++) {       b[i] = {a[i], a[i]};       if (i && a[i] - a[i - 1] < s + 2) {         b[nwn].second = b[i].first;       } else {         b[++nwn] = b[i];       }     }     n = nwn + 1;     vector<pair<long long, long long> > res;     long long pos = 0;     for (int i = 0; i < n; i++) {       long long next = b[i].first;       long long runD = next - 1 - pos;       bool err = false;       if (runD < s) {         err = true;       }       res.push_back({1, runD});       pos += runD;       long long fin = b[i].second + 1;       if (fin > m || fin - pos > d) {         err = true;       }       res.push_back({0, fin - pos});       pos = fin;       if (err) {         pos = m;         res.clear();         res.push_back({-1, 0});         break;       }     }     if (pos != m) {       res.push_back({1, m - pos});     }     for (pair<int, int> d : res) {       switch (d.first) {         case -1:           cout <<  IMPOSSIBLE n ;           break;         case 0:           cout <<  JUMP   << d.second <<   n ;           break;         case 1:           cout <<  RUN   << d.second <<   n ;           break;       }     }     return 0;   }   