func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, T, a, b, c;   int x[4], y[4];   long long cost[4];   string ans;   long long f(long long x, long long y) { return (x + y) * (abs(y - x) + 1) / 2; }   long long Cal(int X, int Y, int x, int y) {     if (X <= x && Y <= y) return f(0, x + y - X - Y) + f(0, n + n - x - y);     if (X >= x && Y >= y) return f(X + Y - x - y, n + n - x - y);     if (X <= x && Y >= y)       return f(x + Y - X - y, Y - y + 1) + f(Y - y, n + n - x - y);     return f(X + y - x - Y, X - x + 1) + f(X - x, n + n - x - y);   }   long long rm[4];   bool ok(int X, int Y) {     for (int i = 0; i < 4; ++i)       if ((rm[i] = T - cost[i] - Cal(X, Y, x[i], y[i])) < 0) return false;     if (X < a + c && Y < b + c)       return ((rm[1] >> 1) + (rm[2] >> 1)) >=              (long long)(a + c - max((int)a, X)) * (b + c - max((int)b, Y));     return true;   }   int main() {     cin >> n >> T >> a >> b >> c;     --c;     x[1] = x[0] = a, y[2] = y[0] = b;     x[2] = x[3] = a + c, y[1] = y[3] = b + c;     int X = 1, Y = 1;     for (int i = 0; i < 4; ++i)       if (Cal(X, Y, x[i], y[i]) - abs(x[i] - X) - abs(y[i] - Y) > T)         return puts( Impossible ), 0;     while (X != n || Y != n) {       if (X < n && ok(X + 1, Y))         ++X, ans +=  R ;       else         ++Y, ans +=  U ;       for (int i = 0; i < 4; ++i) cost[i] += abs(x[i] - X) + abs(y[i] - Y);     }     cout << ans << endl;     return 0;   }   