#include <bits/stdc++.h>usingnamespacestd;
int n, m;
bool vis[7];
bool ok (int x, int y, int cnt1, int cnt2) {
memset (vis, 0, sizeof vis);
while (cnt1) {
int bit = x%7; x /= 7;
if (vis[bit]) return0;
vis[bit] = 1;
cnt1--;
}
while (cnt2) {
int bit = y%7; y /= 7;
if (vis[bit]) return0;
vis[bit] = 1;
cnt2--;
}
return1;
}
int main () {
cin >> n >> m;
int cnt1 = 0, cnt2 = 0;
int nn = n-1, mm = m-1;
while (nn) {
cnt1++;
nn /= 7;
}
while (mm) {
cnt2++;
mm /= 7;
}
if (n == 1) cnt1 = 1; if (m == 1) cnt2 = 1;
if (cnt1+cnt2 > 7) {
printf ("0\n");
return0;
}
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (ok (i, j, cnt1, cnt2))
ans++;
}
}
cout << ans << "\n";
return0;
}