func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   T gcd(T a, T b) {     while (b ^= a ^= b ^= a %= b)       ;     return a;   }   template <class T>   T lcm(T a, T b) {     return (a / gcd<T>(a, b) * b);   }   template <class T>   inline int countbit(T n) {     return (n == 0) ? 0 : (1 + countbit(n & (n - 1)));   }   template <class T>   inline bool isPrimeNumber(T n) {     if (n <= 1) return false;     for (T i = 2; i * i <= n; i++)       if (n % i == 0) return false;     return true;   }   template <class T>   inline T powerMod(T p, int e, T m) {     if (e == 0)       return 1 % m;     else if (e % 2 == 0) {       T t = powerMod(p, e / 2, m);       return multiplyMod(t, t, m);     } else       return multiplyMod(powerMod(p, e - 1, m), p, m);   }   bool isUpperCase(char c) { return c >=  A  && c <=  Z ; }   bool isLowerCase(char c) { return c >=  a  && c <=  z ; }   char toLowerCase(char c) { return (isUpperCase(c)) ? (c + 32) : c; }   char toUpperCase(char c) { return (isLowerCase(c)) ? (c - 32) : c; }   template <class T>   string toString(T n) {     ostringstream ost;     ost << n;     ost.flush();     return ost.str();   }   int toInt(string s) {     int r = 0;     istringstream sin(s);     sin >> r;     return r;   }   double toDouble(string s) {     double r = 0;     istringstream sin(s);     sin >> r;     return r;   }   const double pi = acos(-1.0);   int main() {     string s;     cin >> s;     int pos = -14;     vector<string> v = { 01:10 ,   02:20 ,  03:30 ,  04:40 ,  05:50 ,                          10:01 ,   11:11 ,  12:21 ,  13:31 ,  14:41 ,                           15:51 ,  20:02 ,  21:12 ,  22:22 ,  23:32 };     for (int i = 0; i < v.size(); i++) {       if (s < v[i]) {         pos = i;         break;       }     }     if (pos == -14)       cout <<  00:00 ;     else       cout << v[pos];     return 0;   }   