#include <bits/stdc++.h>
using namespace std;
long long a[66];
map<pair<int, int>, bool> vis;
int main() {
  long long m, n, i, j, k;
  cin >> m >> n;
  long long ans1 = 0, ans2 = 0, mm = m - 1, nn = n - 1;
  while (mm) {
    mm /= 7;
    ans1++;
  }
  while (nn) {
    nn /= 7;
    ans2++;
  }
  ans1 = max(ans1, 1LL);
  ans2 = max(ans2, 1LL);
  if ((ans1 + ans2) > 7) {
    cout << 0;
    return 0;
  }
  long long ans = 0;
  for (i = 0; i < 7; i++) a[i] = i;
  do {
    long long ans11 = 0, ans22 = 0;
    for (k = 0; k < ans1; k++) ans11 = ans11 * 7 + a[k];
    for (k = ans1; k < ans1 + ans2; k++) ans22 = ans22 * 7 + a[k];
    if (ans11 < m && ans22 < n && !vis[{ans11, ans22}]) ans++;
    vis[{ans11, ans22}] = 1;
  } while (next_permutation(a, a + 7));
  cout << ans << endl;
}
