#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define REP(i,n) for(int i=0,_n=(int)(n);i<_n;++i)
#define ALL(v) (v).begin(),(v).end()
#define CLR(t,v) memset(t,(v),sizeof(t))
template<class T1,class T2>ostream& operator<<(ostream& os,const pair<T1,T2>&a){return os<<"("<<a.first<<","<<a.second<< ")";}
template<class T>void pv(T a,T b){for(T i=a;i!=b;++i)cout<<(*i)<<" ";cout<<endl;}
template<class T>void chmin(T&a,const T&b){if(a>b)a=b;}
template<class T>void chmax(T&a,const T&b){if(a<b)a=b;}

ll nextLong() { ll x; scanf("%lld", &x); return x;}

int main2() {
  ll S = nextLong();
  ll P = nextLong();

  for (ll a = 1; a * a <= P; a++) {
    if (P % a == 0) {
      ll b = P / a;
      if (a + b == S) {
        return 1;
      }
    }
  }
  return 0;
}

int main() {

  bool ans = main2();
  cout << (ans ? "Yes":"No") << endl;

  return 0;
}
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;
#define pb(a) push_back(a)
#define set0(a) memset(a,0,sizeof(a))
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define dwn(i,a,b) for(int i=(a);i>=(b);i--)
#define INF 0x3f3f3f3f
typedef long long ll;

int main(){
	int T; cin>>T;
	while(T--){
		ll n; cin>>n;
		
		int d=0;
		while(n%2==0){
			n/=2;
			d++;
		}
		if(!d) puts("Odd");
		else if(d==1) puts("Same");
		else puts("Even");
	}
    return 0;
}