#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef pair ii; typedef long long ll; typedef pair P; typedef unsigned long long int ull; const ll MOD=1e9+7; int dy[]={1,0,-1,0}; int dx[]={0,1,0,-1}; const int MAXN=100000; const int MAXE=100000; const int MAXV=10000; const ll INF=2e9; struct UnionFindTree{ vector par,rank; UnionFindTree(int n):par(n),rank(n,0){ for(int i=0;i0){ if(x&1) res*=a; a*=a; x>>=1; } return res; } int popcount(int x){ int res=0; while(x>0){ if(x&1) res++; x>>=1; } return res; } int f(int x){ if(x==0) return 1; return f(x%popcount(x))+1; } vector prime_factor(int n){ vector res(n+1,0); for(int i=2;i<=n;i++){ int m=i; for(int j=2;j*j<=m;j++){ if(m%j==0){ while(m%j==0){ res[j]++; m/=j; } } } if(m!=1) res[m]++; } return res; } int main(){ int a,b,c,d;cin>>a>>b>>c>>d; if(ad) cout<<"YES"<