#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int N(1009),M(2100000000);
long long num[N]={0},data[21]={0};
bool comp(const long long &x,const long long &y)
{
	return x<y;
}
int main()
{
	int k,n,b,count(0);
	cin>>k>>n;
	b=ceil(log(M)/log(k));
	data[0]=1;
	for(int i=1;i<=b;i++)
		data[i]=data[i-1]*k;
	for(int i=0;count<n;i++)
	{
		fill(num,num+N,0);
		num[0]=1;num[1]=data[i];
		for(int j=i-1;j>=0;j--)
		{
			int t=num[0];
			for(int k=1;k<=t;k++)
			{
				num[0]++;
				num[num[0]]=data[j]+num[k];
			}
		}
		count+=num[0];
	}
	count-=num[0];
	sort(num+1,num+1+num[0],comp);
	cout<<(int)num[n-count]<<endl;
	return 0;
}
/**************************************************************
	Problem: 2263
	User: admin
	Language: C++
	Result: Accepted
	Time:50 ms
	Memory:2200 kb
****************************************************************/