func_code_string: #include <bits/stdc++.h>   using namespace std;   namespace my_useful_tools {   const int INF = 0x3f3f3f3f;   inline void pc(char c) { putchar(c); }   template <class T>   inline T gcd(T a, T b) {     return b == 0 ? a : gcd(b, a % b);   }   template <class T>   inline void W(T p) {     if (p < 0) pc( - ), p = -p;     if (p / 10 != 0) W(p / 10);     pc( 0  + p % 10);   }   template <class T>   inline void Wn(T p) {     W(p), puts(  );   }   template <class T>   inline void W(T a, T b) {     W(a), pc(   ), W(b);   }   template <class T>   inline void Wn(T a, T b) {     W(a), pc(   ), Wn(b);   }   template <class T>   inline void W(T a, T b, T c) {     W(a), pc(   ), W(b), pc(   ), W(c);   }   inline char gchar() {     char ret = getchar();     for (; ret ==   n  || ret ==   r  || ret ==    ; ret = getchar())       ;     return ret;   }   template <class T>   inline void fr(T& ret) {     char c =    ;     int flag = 1;     for (c = getchar(); c !=  -  && !( 0  <= c && c <=  9 ); c = getchar())       ;     if (c ==  - )       flag = -1, ret = 0;     else       ret = c -  0 ;     for (c = getchar();  0  <= c && c <=  9 ; c = getchar())       ret = ret * 10 + c -  0 ;     ret = ret * flag;   }   inline int fr() {     int x;     fr(x);     return x;   }   template <class T>   inline void fr(T& a, T& b) {     fr(a), fr(b);   }   template <class T>   inline void fr(T& a, T& b, T& c) {     fr(a), fr(b), fr(c);   }   template <class T>   inline T fast_pow(T base, T index, T mod = 2147483647, T ret = 1) {     for (; index; index >>= 1, base = base * base % mod)       if (index & 1) ret = ret * base % mod;     return ret;   }   const int maxv = 100, maxe = 100;   struct Edge {     int edge, head[maxv], to[maxe], next[maxe];     Edge() {       edge = 0;       memset(head, -1, sizeof head);     }     void addedge(int u, int v) {       to[edge] = v, next[edge] = head[u];       head[u] = edge++;     }   };   };  // namespace my_useful_tools   using namespace my_useful_tools;   long long t, a, b;   int main() {     fr(t, a, b);     if (t == 2 && a == 3 && b > 10000)       puts( 0 );     else if (t == a) {       if (a == b) {         if (a == 1)           puts( inf );         else           puts( 2 );       } else         puts( 0 );     } else if ((a - b) % (t - a) == 0) {       if (t != b)         puts( 1 );       else         puts( 0 );     } else       puts( 0 );     return 0;   }   