#include using namespace std; int main(){ int N; cin >> N; int M; cin >> M; set S{}; for( int i = 1 ; i <= N ; i++ ){ // iのM乗をNで割った余りを繰り返し2乗法で計算する。 // int型だと計算途中でオーバーフローするのでlong long型を使う。 long long i_M = 1; long long power = i % N; int exponent = M; while( exponent > 0 ){ if( exponent % 2 == 1 ){ i_M = ( i_M * power ) % N; } power = ( power * power ) % N; exponent = exponent / 2; } S.insert( i_M ); } // Sの要素数がNの時"Yes"、そうでない時"No"を出力する。 cout << ( int( S.size() ) == N ? "Yes" : "No" ) << endl; }