#include <bits/stdc++.h>
using namespace std;
int n, m;
int d1 = 1, d2 = 1;
int res = 0;
int a[10];
int t[10];
void check() {
  long long c = 0;
  for (int i = 0; i < d1; i++) {
    c *= 7;
    c += a[i];
  }
  if (c >= n) return;
  c = 0;
  for (int i = 0; i < d2; i++) {
    c *= 7;
    c += a[d1 + i];
  }
  if (c >= m) return;
  res++;
}
void funk(int c) {
  if (c == d1 + d2)
    check();
  else {
    for (int i = 0; i < 7; i++)
      if (!t[i]) {
        t[i] = 1;
        a[c] = i;
        funk(c + 1);
        t[i] = 0;
      }
  }
}
int main() {
  cin >> n >> m;
  long long k = 7;
  while (k < n) {
    k *= 7;
    d1++;
  }
  k = 7;
  while (k < m) {
    k *= 7;
    d2++;
  }
  if (d1 + d2 > 7) {
    printf("0\n");
    return 0;
  }
  funk(0);
  cout << res << endl;
}
