func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T, typename U>   inline void smin(T &a, const U &b) {     if (a > b) a = b;   }   template <typename T, typename U>   inline void smax(T &a, const U &b) {     if (a < b) a = b;   }   template <class T>   inline void gn(T &first) {     char c, sg = 0;     while (c = getchar(), (c >  9  || c <  0 ) && c !=  - )       ;     for ((c ==  -  ? sg = 1, c = getchar() : 0), first = 0; c >=  0  && c <=  9 ;          c = getchar())       first = (first << 1) + (first << 3) + c -  0 ;     if (sg) first = -first;   }   template <class T1, class T2>   inline void gn(T1 &x1, T2 &x2) {     gn(x1), gn(x2);   }   template <class T1, class T2, class T3>   inline void gn(T1 &x1, T2 &x2, T3 &x3) {     gn(x1, x2), gn(x3);   }   template <class T>   inline void print(T first) {     if (first < 0) {       putchar( - );       return print(-first);     }     if (first < 10) {       putchar( 0  + first);       return;     }     print(first / 10);     putchar(first % 10 +  0 );   }   template <class T>   inline void println(T first) {     print(first);     putchar(  n );   }   template <class T>   inline void printsp(T first) {     print(first);     putchar(   );   }   template <class T1, class T2>   inline void print(T1 x1, T2 x2) {     printsp(x1), println(x2);   }   template <class T1, class T2, class T3>   inline void print(T1 x1, T2 x2, T3 x3) {     printsp(x1), printsp(x2), println(x3);   }   int power(int a, int b, int m, int ans = 1) {     for (; b; b >>= 1, a = (long long)a * a % m)       if (b & 1) ans = (long long)ans * a % m;     return ans;   }   int size(int n) {     int ans = 0;     while (n) {       n /= 7;       ans++;     }     smax(ans, 1);     return ans;   }   int f[11], p[11];   int calc(int st, int ed) {     int ans = 0;     int nn = 0;     for (int i = ed; i >= st; i--) {       ans += p[i] * f[nn];       nn++;     }     return ans;   }   int main() {     int n, m;     gn(n, m);     int N = size(n - 1), M = size(m - 1);     if (N + M > 7) return puts( 0 );     f[0] = 1;     for (int i = 1; i < 11; i++) f[i] = f[i - 1] * 7;     for (int i = 0; i < 7; i++) p[i] = i;     int ans = 0;     do {       int a = calc(0, N - 1), b = calc(N, N + M - 1);       if (a < n && b < m) ans++;     } while (next_permutation(p, p + 7));     int num = 1;     for (int i = 2; i <= 7 - N - M; i++) num *= i;     println(ans / num);   }   