func_code_string: #include <bits/stdc++.h>   using namespace std;   long long min(long long a, long long b) {     if (a < b)       return a;     else       return b;   }   static long long gcd(long long a, long long b) {     long long r;     while (b != 0) {       r = a % b;       a = b;       b = r;     }     return a;   }   long long lcm(long long a, long long b) {     long long temp = gcd(a, b);     return temp ? (a / temp * b) : 0;   }   int solve() {     long long n;     cin >> n;     long long k;     cin >> k;     long long maxans = (n * (n - 1)) / 2LL;     if (k > maxans) {       cout <<  Impossible ;       return 0;     }     long long cnt = 0;     long long tmp;     for (long long i = 1; i <= n; i++) {       if (((i * (i - 1)) / 2LL) <= k) {         tmp = i;       } else {         break;       }     }     long long open = tmp;     cnt = open;     k = k - ((tmp * (tmp - 1)) / 2LL);     string s;     for (int i = 0; i < open; i++) {       s.push_back( ( );     }     if (open >= 1) {       s.push_back( ) );       open--;     }     while (k > 0 && open > 0 && cnt <= n) {       if (open <= k) {         s.push_back( ( );         s.push_back( ) );         cnt++;         k = k - open;       } else {         open--;         s.push_back( ) );       }     }     if (k == 0 && cnt <= n) {       for (int i = 0; i < open; i++) {         s.push_back( ) );       }       for (int i = 0; i < (n - cnt); i++) {         s.push_back( ( );         s.push_back( ) );       }       cout << s;       return 0;     } else {       cout <<  Impossible ;       return 0;     }     return 0;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int t = 1;     for (int i = 1; i <= t; i++) {       solve();     }     return 0;   }   