#include <bits/stdc++.h>
using namespace std;
void getDigit(int num, vector<int>& v) {
  for (int i = 0; i < v.size() && num; i++) {
    v[i] = num % 7;
    num /= 7;
  }
}
bool nomatch(vector<int>& a, vector<int>& b) {
  map<int, int> m;
  for (int i = 0; i < a.size(); i++) m[a[i]]++;
  for (int i = 0; i < b.size(); i++) m[b[i]]++;
  for (int i = 0; i < 7; i++) {
    if (m[i] > 1) return false;
  }
  return true;
}
int main() {
  long long n, m;
  cin >> n >> m;
  long long dubn = n - 1;
  long long dubm = m - 1;
  long long cntn = 0, cntm = 0;
  while (dubn) {
    dubn /= 7;
    cntn++;
  }
  while (dubm) {
    dubm /= 7;
    cntm++;
  }
  if (cntn == 0) cntn = 1;
  if (cntm == 0) cntm = 1;
  long long cnt = cntm + cntn;
  if (cnt > 7) {
    cout << 0 << endl;
  } else {
    cnt = 0;
    for (int i = 0; i < n; i++) {
      vector<int> digitn(cntn, 0);
      vector<int> digitm(cntm, 0);
      getDigit(i, digitn);
      for (int j = 0; j < m; j++) {
        getDigit(j, digitm);
        if (nomatch(digitn, digitm)) {
          cnt++;
        }
      }
    }
    cout << cnt << endl;
  }
}
