#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <map>
using namespace std ;
#define ll long long
long long arr[105] ;
int N = 0 ;
bool solve ( ll w1 , ll w2, int pos ){
if( pos ==N) return w1 == w2 ;
if( w1 == w2) return true;
return solve(w1+arr[pos],w2,pos+1) || solve(w1,w2+arr[pos],pos+1) || solve(w1,w2,pos+1) ;
}
int main (){
int w ;
ll m ;
cin >> w >> m ;
for ( int i = 0 ; i < 100; i++){
ll tt = pow(w,i);
if( tt > 1e9) break ;
N=i;
arr[i]=tt ;
}
if(w==2||solve(0LL,m,0)){
cout << "YES";
}else{
cout<< "NO";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxtYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOwojZGVmaW5lIGxsIGxvbmcgbG9uZwpsb25nIGxvbmcgYXJyWzEwNV0gOwoKaW50IE4gPSAwIDsKYm9vbCBzb2x2ZSAoIGxsIHcxICwgbGwgdzIsIGludCBwb3MgKXsKCWlmKCBwb3MgPT1OKSByZXR1cm4gdzEgPT0gdzIgOwoJaWYoIHcxID09IHcyKSByZXR1cm4gdHJ1ZTsKCXJldHVybiBzb2x2ZSh3MSthcnJbcG9zXSx3Mixwb3MrMSkgfHwgc29sdmUodzEsdzIrYXJyW3Bvc10scG9zKzEpIHx8IHNvbHZlKHcxLHcyLHBvcysxKSA7Cn0KaW50IG1haW4gKCl7CglpbnQgdyA7CglsbCBtIDsKCWNpbiA+PiB3ID4+IG0gOwoKCWZvciAoIGludCBpID0gMCA7IGkgPCAxMDA7IGkrKyl7CgkJbGwgdHQgPSBwb3codyxpKTsKCQlpZiggdHQgPiAxZTkpIGJyZWFrIDsKCQlOPWk7CgkJYXJyW2ldPXR0IDsKCX0KCWlmKHc9PTJ8fHNvbHZlKDBMTCxtLDApKXsKCQljb3V0IDw8ICJZRVMiOwoJfWVsc2V7CgkJY291dDw8ICJOTyI7Cgl9CglyZXR1cm4gMDsKfQ==