#include <bits/stdc++.h>
using namespace std;
long long len;
long long memo[70][70];
const long long inf = LLONG_MAX;
string s;
long long n;
long long powers[70];
long long add(long long a, long long b) {
  if (a >= inf - b) return inf;
  return a + b;
}
long long mul(long long a, long long b) {
  if (a == 0 || b == 0) return 0;
  if (a >= inf / b) return inf;
  return a * b;
}
long long convert(int idx, int p) {
  if (idx >= len) {
    return 0;
  }
  long long &ret = memo[idx][p];
  if (ret != -1) {
    return ret;
  }
  ret = inf;
  long long temp = 0, ten = 1;
  for (int i = idx; i < len; i++) {
    temp += (s[i] - '0') * ten;
    ten *= 10;
    if (i > idx && s[i] == '0') {
      continue;
    }
    if (temp >= n) {
      break;
    }
    long long x = convert(i + 1, p + 1);
    ret = min(ret, add(x, mul(temp, powers[p])));
  }
  return ret;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> s;
  len = s.length();
  reverse(s.begin(), s.end());
  memset(memo, -1, sizeof(memo));
  long long num = 1;
  for (int i = 0; i < 65; i++) {
    powers[i] = num;
    num = mul(num, n);
  }
  long long res = convert(0, 0);
  cout << res << endl;
  return 0;
}
