#include<bits/stdc++.h>
using namespace std;
int k,num[1001]={1},m;
priority_queue<int, vector<int>, greater<int> > que;
void dfs(int x,int sum)
{
if(x==11)
{
que.push(sum);
return;
}
dfs(x+1,sum);
dfs(x+1,sum+num[x]);
}
int main()
{
cin>>k>>m;
for(int i=1;i<=11;i++)num[i]=num[i-1]*k;
dfs(0,0);
int cnt=0;
while(!que.empty())
{
cnt++;
if(cnt==m)
{
cout<<que.top();
return 0;
}
que.pop();
}
return 0;
}