#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int x, y, tx, ty, vis[N];
int chk(int x, int y) {
  for (int i = 0; i < 7; i++) vis[i] = 0;
  for (int i = 1; i <= tx; i++) ++vis[x % 7], x /= 7;
  for (int i = 1; i <= ty; i++) ++vis[y % 7], y /= 7;
  for (int i = 0; i < 7; i++)
    if (vis[i] > 1) return 0;
  return 1;
}
int main() {
  scanf("%d%d", &x, &y), --x, --y;
  if ((long long)x * y > 6543210) return puts("0"), 0;
  for (int i = x; i; i /= 7) ++tx;
  for (int i = y; i; i /= 7) ++ty;
  tx = max(tx, 1), ty = max(ty, 1);
  int ans = 0;
  for (int i = 0; i <= x; i++)
    for (int j = 0; j <= y; j++) ans += chk(i, j);
  printf("%d\n", ans);
}
