#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};
int n, m;
string s, p;
long long power(long long x, long long y) {
  if (y == 0) return 1;
  if (y == 1)
    return x;
  else {
    long long res = power(x, y / 2);
    res = res * res;
    if (y % 2) res *= x;
    return res;
  }
}
long long toint(string s) {
  reverse(s.begin(), s.end());
  long long c = 0;
  for (int i = 0; i < s.size(); i++) {
    c *= 10;
    c += s[i] - '0';
  }
  return c;
}
long long dp[70][80];
long long solve(int idx, int k) {
  if (idx == s.size()) {
    return 0;
  }
  long long &ans = dp[idx][k];
  if (ans != 1e18 + 2)
    return ans;
  else {
    string c = "";
    for (int i = idx; i < s.size(); i++) {
      c += s[i];
      long long x = toint(c);
      long long p = x * power(n, k);
      if (p < 0) {
        break;
      }
      if (c.back() == '0' && c.size() > 1) continue;
      if (x < n) {
        long long temp = solve(i + 1, k + 1) + p;
        if (temp >= 0) ans = min(ans, temp);
      } else
        break;
    }
    return ans;
  }
}
int main() {
  for (int i = 0; i < 70; i++) {
    for (int j = 0; j < 80; j++) {
      dp[i][j] = 1e18 + 2;
    }
  }
  cin >> n;
  m = n / 10;
  m++;
  cin >> s;
  reverse(s.begin(), s.end());
  cout << solve(0, 0);
}
