func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long mod = (long long)1e9 + 7;   const long long inf = (long long)1e16;   const long double eps = 1e-12;   const long long N = (int)1e5 + 5;   const long long LOGN = 19;   const long double PI = 3.14159265358979323846;   inline long long mul(long long a, long long b, long long m = mod) {     return (long long)(a * b) % m;   }   inline long long add(long long a, long long b, long long m = mod) {     a += b;     if (a >= m) a -= m;     if (a < 0) a += m;     return a;   }   inline long long power(long long a, long long b, long long m = mod) {     if (b == 0) return 1;     if (b == 1) return (a % m);     long long x = power(a, b / 2, m);     x = mul(x, x, m);     if (b % 2) x = mul(x, a, m);     return x;   }   bool check(string& k) {     int l = 0, r = k.size() - 1;     while (l < r) {       if (k[l] != k[r]) {         return false;       }       l++;       r--;     }     return true;   }   bool poss(string& k) {     map<char, int> mp;     int num = 0;     for (int i = 0; i < k.length(); i++) {       if (mp.find(k[i]) == mp.end()) {         mp[k[i]]++;         num++;       }     }     if (num == 1) return false;     return true;   }   int rec(string& s) {     int n = s.length();     if (!poss(s)) return -1;     if (!check(s)) return 0;     string k;     for (int i = 0; i < n / 2; i++) {       k += s[i];     }     bool ok = check(k);     if (!ok) {       if (n & 1) return 2;       return 1;     }     int ret = rec(k);     if (ret == -2) {       if (n & 1) return 2;       return 1;     }     if (ret == -1) {       if (n & 1) return -2;       return -1;     }     return ret;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     if (0) {       freopen( C:  Users  Dishant  Desktop  Collection-DEV c++  input.txt ,  r ,               stdin);       freopen( C:  Users  Dishant  Desktop  Collection-DEV c++  output.txt ,  w ,               stdout);     }     string s;     cin >> s;     int n = s.length();     int ans = rec(s);     if (ans <= -1) {       cout <<  Impossible ;     } else       cout << ans;     return 0;   }   