stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:
#include <cstdio>



const int MOD = 998244353;

const int INV2 = (MOD + 1) >> 1;



int add(int x, int y) {return (x + y >= MOD ? x + y - MOD : x + y);}

int sub(int x, int y) {return (x - y < 0 ? x - y + MOD : x - y);}

int mul(int x, int y) {return 1LL*x*y%MOD;}



int pow_mod(int b, int p) {

	int ret = 1;

	for(int i=p;i;i>>=1,b=mul(b,b))

		if( i & 1 ) ret = mul(ret,b);

	return ret;

}



struct node{

	int k, b;

	node() : k(0), b(0) {}

	node(int _k, int _b) : k(_k), b(_b) {}

	int get(int x) {return add(mul(k, x), b);}

	friend node operator + (node a, node b) {

		return node(add(a.k, b.k), add(a.b, b.b));

	}

	friend node operator - (node a, node b) {

		return node(sub(a.k, b.k), sub(a.b, b.b));

	}

	friend node operator * (node a, int k) {

		return node(mul(a.k, k), mul(a.b, k));

	}

	friend node operator / (node a, int k) {

		return a * pow_mod(k, MOD - 2);

	}

};



void fwt(node *A, int m, int type) {

	int n = (1 << m), f = (type == 1 ? 1 : INV2);

	for(int i=1;i<=m;i++) {

		int s = (1 << i), t = (s >> 1);

		for(int j=0;j<n;j+=s)

			for(int k=0;k<t;k++) {

				node x = A[j+k], y = A[j+k+t];

				A[j+k] = (x + y)*f, A[j+k+t] = (x - y)*f;

			}

	}

}



node A[1<<18], B[1<<18], C[1<<18], f[1<<18];



int main() {

	int N, M, S = 0; scanf("%d", &N), M = (1 << N);

	for(int i=0;i<M;i++) scanf("%d", &A[i].b), S = add(S, A[i].b);

	S = pow_mod(S, MOD - 2);

	for(int i=0;i<M;i++) A[i].b = sub(i == 0 ? 1 : 0, mul(A[i].b, S));

	for(int i=0;i<M;i++) B[i].b = 1;

	C[0].b = MOD - 1;

	fwt(A, N, 1), fwt(B, N, 1), fwt(C, N, 1);

	int tmp = mul(B[0].b, pow_mod(C[0].b, MOD-2));

	for(int i=1;i<M;i++)

		f[i] = (B[i] - C[i]*tmp) / A[i].b;

	f[0].k = 1; fwt(f, N, -1);

	int x = sub(0, mul(pow_mod(f[0].k, MOD-2), f[0].b));

	for(int i=0;i<M;i++) printf("%d\n", f[i].get(x));

}

// Faster C++ solution for the same problem (measured speedup: 9.040921017165067x):
#include<bits/stdc++.h>

#define int long long

using namespace std;

const int N=1000010;

const int mod=998244353;

const int inv=499122177;

int n,s,p[N],a[N];

int poww(int x,int y){

	int ans=1;

	while(y){

		if(y&1){

			ans=ans*x%mod;

		}

		x=x*x%mod;

		y>>=1;

	}

	return ans;

}

void fwt(int *a,int n,int x){

	for(int o=1,k=2;k<=n;o<<=1,k<<=1){

		for(int i=0;i<n;i+=k){

			for(int j=0;j<o;j++){

				a[i+j]+=a[i+j+o];

				a[i+j]%=mod;

				a[i+j+o]=a[i+j]+a[i+j+o]*(mod-2)%mod;

				a[i+j+o]%=mod;

				(a[i+j]*=x)%=mod;

				(a[i+j+o]*=x)%=mod;

			}

		}

	}

}

signed main(){

	scanf("%lld",&n);

	for(int i=0;i<(1<<n);i++){

		scanf("%lld",&p[i]);

		(s+=p[i])%=mod;

	}

	s=poww(s,mod-2);

	for(int i=0;i<(1<<n);i++){

		(p[i]*=s)%=mod;

	}

	a[0]=(1<<n)-1;

	for(int i=1;i<(1<<n);i++){

		a[i]=mod-1;

	}

	(p[0]+=mod-1)%=mod;

	fwt(a,1<<n,1);

	fwt(p,1<<n,1);

	for(int i=0;i<(1<<n);i++){

		(a[i]*=poww(p[i],mod-2))%=mod;

	}

	fwt(a,1<<n,inv);

	for(int i=0;i<(1<<n);i++){

		printf("%lld\n",(a[i]-a[0]+mod)%mod);

	}

}
// Slower C++ solution:
#include <cstdio>



const int MOD = 998244353;

const int INV2 = (MOD + 1) >> 1;



int add(int x, int y) {return (x + y >= MOD ? x + y - MOD : x + y);}

int sub(int x, int y) {return (x - y < 0 ? x - y + MOD : x - y);}

int mul(int x, int y) {return 1LL*x*y%MOD;}



int pow_mod(int b, int p) {

	int ret = 1;

	for(int i=p;i;i>>=1,b=mul(b,b))

		if( i & 1 ) ret = mul(ret,b);

	return ret;

}



struct node{

	int k, b;

	node() : k(0), b(0) {}

	node(int _k, int _b) : k(_k), b(_b) {}

	int get(int x) {return add(mul(k, x), b);}

	friend node operator + (node a, node b) {

		return node(add(a.k, b.k), add(a.b, b.b));

	}

	friend node operator - (node a, node b) {

		return node(sub(a.k, b.k), sub(a.b, b.b));

	}

	friend node operator * (node a, int k) {

		return node(mul(a.k, k), mul(a.b, k));

	}

	friend node operator / (node a, int k) {

		return a * pow_mod(k, MOD - 2);

	}

};



void fwt(node *A, int m, int type) {

	int n = (1 << m), f = (type == 1 ? 1 : INV2);

	for(int i=1;i<=m;i++) {

		int s = (1 << i), t = (s >> 1);

		for(int j=0;j<n;j+=s)

			for(int k=0;k<t;k++) {

				node x = A[j+k], y = A[j+k+t];

				A[j+k] = (x + y)*f, A[j+k+t] = (x - y)*f;

			}

	}

}



node A[1<<18], B[1<<18], C[1<<18], f[1<<18];



int main() {

	int N, M, S = 0; scanf("%d", &N), M = (1 << N);

	for(int i=0;i<M;i++) scanf("%d", &A[i].b), S = add(S, A[i].b);

	S = pow_mod(S, MOD - 2);

	for(int i=0;i<M;i++) A[i].b = sub(i == 0 ? 1 : 0, mul(A[i].b, S));

	for(int i=0;i<M;i++) B[i].b = 1;

	C[0].b = MOD - 1;

	fwt(A, N, 1), fwt(B, N, 1), fwt(C, N, 1);

	int tmp = mul(B[0].b, pow_mod(C[0].b, MOD-2));

	for(int i=1;i<M;i++)

		f[i] = (B[i] - C[i]*tmp) / A[i].b;

	f[0].k = 1; fwt(f, N, -1);

	int x = sub(0, mul(pow_mod(f[0].k, MOD-2), f[0].b));

	for(int i=0;i<M;i++) printf("%d\n", f[i].get(x));

}

// Faster C++ solution for the same problem (measured speedup: 9.038618200615366x):
#include<iostream>

#include<cstdio>

#include<cstring>

#include<algorithm>

#include<cstring>

using namespace std;

typedef long long ll;

#define N 400102

const int p=998244353,iv=499122177;

int n,ps[N],m,a[N];

inline int ksm(int d,int k){int ret=1;while(k){if(k&1)ret=1ll*ret*d%p;d=1ll*d*d%p;k>>=1;}return ret;}

inline void fwt(int x[],int len,int mde)

{

    for(int i=2;i<=len;i<<=1)for(int j=0,stp=i>>1;j<len;j+=i)for(int k=j;k<j+stp;k++)

    {

        int t1=x[k],t2=x[k+stp];x[k]=(t1+t2)%p,x[k+stp]=(t1-t2+p)%p;

        if(mde<0)x[k]=1ll*x[k]*iv%p,x[k+stp]=1ll*x[k+stp]*iv%p;

    }

}

int main()

{

    scanf("%d",&n);m=(1<<n);int sum=0;

    for(int i=0;i<m;i++)scanf("%d",&ps[i]),sum=(sum+ps[i])%p;sum=ksm(sum,p-2)%p;

    for(int i=0;i<m;i++)ps[i]=1ll*ps[i]*sum%p;

    a[0]=m-1;for(int i=1;i<m;i++)a[i]=p-1;

    ps[0]=(ps[0]+p-1)%p;

    fwt(a,m,1);fwt(ps,m,1);

    for(int i=0;i<m;i++)a[i]=1ll*a[i]*ksm(ps[i],p-2)%p;

    a[0]=0;

    fwt(a,m,-1);

    for(int i=1;i<m;i++)a[i]=(a[i]-a[0]+p)%p;

    a[0]=0;

    for(int i=0;i<m;i++)printf("%d\n",a[i]);

}
// Slower C++ solution:
#include <cstdio>



const int MOD = 998244353;

const int INV2 = (MOD + 1) >> 1;



int add(int x, int y) {return (x + y >= MOD ? x + y - MOD : x + y);}

int sub(int x, int y) {return (x - y < 0 ? x - y + MOD : x - y);}

int mul(int x, int y) {return 1LL*x*y%MOD;}



int pow_mod(int b, int p) {

	int ret = 1;

	for(int i=p;i;i>>=1,b=mul(b,b))

		if( i & 1 ) ret = mul(ret,b);

	return ret;

}



struct node{

	int k, b;

	node() : k(0), b(0) {}

	node(int _k, int _b) : k(_k), b(_b) {}

	int get(int x) {return add(mul(k, x), b);}

	friend node operator + (node a, node b) {

		return node(add(a.k, b.k), add(a.b, b.b));

	}

	friend node operator - (node a, node b) {

		return node(sub(a.k, b.k), sub(a.b, b.b));

	}

	friend node operator * (node a, int k) {

		return node(mul(a.k, k), mul(a.b, k));

	}

	friend node operator / (node a, int k) {

		return a * pow_mod(k, MOD - 2);

	}

};



void fwt(node *A, int m, int type) {

	int n = (1 << m), f = (type == 1 ? 1 : INV2);

	for(int i=1;i<=m;i++) {

		int s = (1 << i), t = (s >> 1);

		for(int j=0;j<n;j+=s)

			for(int k=0;k<t;k++) {

				node x = A[j+k], y = A[j+k+t];

				A[j+k] = (x + y)*f, A[j+k+t] = (x - y)*f;

			}

	}

}



node A[1<<18], B[1<<18], C[1<<18], f[1<<18];



int main() {

	int N, M, S = 0; scanf("%d", &N), M = (1 << N);

	for(int i=0;i<M;i++) scanf("%d", &A[i].b), S = add(S, A[i].b);

	S = pow_mod(S, MOD - 2);

	for(int i=0;i<M;i++) A[i].b = sub(i == 0 ? 1 : 0, mul(A[i].b, S));

	for(int i=0;i<M;i++) B[i].b = 1;

	C[0].b = MOD - 1;

	fwt(A, N, 1), fwt(B, N, 1), fwt(C, N, 1);

	int tmp = mul(B[0].b, pow_mod(C[0].b, MOD-2));

	for(int i=1;i<M;i++)

		f[i] = (B[i] - C[i]*tmp) / A[i].b;

	f[0].k = 1; fwt(f, N, -1);

	int x = sub(0, mul(pow_mod(f[0].k, MOD-2), f[0].b));

	for(int i=0;i<M;i++) printf("%d\n", f[i].get(x));

}

// Faster C++ solution for the same problem (measured speedup: 9.04320896517042x):
#include<bits/stdc++.h>

#define ll long long

using namespace std;

const int mod=998244353;

const int N=262150;

int n;

int p[N],f[N];

inline ll qpow(ll x,int k,ll r=1){

	for(;k;k>>=1,x=x*x%mod) if(k&1) r=r*x%mod;

	return r;

}

inline void fwt(int *a,int len,int opt){

	for(int i=1;i<len;i<<=1) for(int j=0;j<len;j+=i<<1) for(int k=0;k<i;++k){

		int x=a[j+k],y=a[j+k+i];

		a[j+k]=(x+y)%mod; a[j+k+i]=(x-y+mod)%mod;

	}

	if(~opt) return ;

	int inv=qpow(len,mod-2);

	for(int i=0;i<len;++i) a[i]=1ll*a[i]*inv%mod;

}

int main(){

	scanf("%d",&n); int len=1<<n,sum=0;

	for(int i=0;i<len;++i) scanf("%d",&p[i]),sum+=p[i]; sum=qpow(sum,mod-2);

	for(int i=0;i<len;++i) p[i]=1ll*p[i]*sum%mod; (p[0]+=mod-1)%=mod;

	for(int i=0;i<len;++i) f[i]=mod-1; (f[0]+=len)%=mod;

	fwt(f,len,1); fwt(p,len,1); sum=0;

	for(int i=1;i<len;++i) f[i]=f[i]*qpow(p[i],mod-2)%mod,(sum+=f[i])%=mod;

	f[0]=mod-sum; fwt(f,len,-1);

	for(int i=0;i<len;++i) printf("%d\n",f[i]);

	return 0;

}
// Slower C++ solution:
#include <cstdio>



const int MOD = 998244353;

const int INV2 = (MOD + 1) >> 1;



int add(int x, int y) {return (x + y >= MOD ? x + y - MOD : x + y);}

int sub(int x, int y) {return (x - y < 0 ? x - y + MOD : x - y);}

int mul(int x, int y) {return 1LL*x*y%MOD;}



int pow_mod(int b, int p) {

	int ret = 1;

	for(int i=p;i;i>>=1,b=mul(b,b))

		if( i & 1 ) ret = mul(ret,b);

	return ret;

}



struct node{

	int k, b;

	node() : k(0), b(0) {}

	node(int _k, int _b) : k(_k), b(_b) {}

	int get(int x) {return add(mul(k, x), b);}

	friend node operator + (node a, node b) {

		return node(add(a.k, b.k), add(a.b, b.b));

	}

	friend node operator - (node a, node b) {

		return node(sub(a.k, b.k), sub(a.b, b.b));

	}

	friend node operator * (node a, int k) {

		return node(mul(a.k, k), mul(a.b, k));

	}

	friend node operator / (node a, int k) {

		return a * pow_mod(k, MOD - 2);

	}

};



void fwt(node *A, int m, int type) {

	int n = (1 << m), f = (type == 1 ? 1 : INV2);

	for(int i=1;i<=m;i++) {

		int s = (1 << i), t = (s >> 1);

		for(int j=0;j<n;j+=s)

			for(int k=0;k<t;k++) {

				node x = A[j+k], y = A[j+k+t];

				A[j+k] = (x + y)*f, A[j+k+t] = (x - y)*f;

			}

	}

}



node A[1<<18], B[1<<18], C[1<<18], f[1<<18];



int main() {

	int N, M, S = 0; scanf("%d", &N), M = (1 << N);

	for(int i=0;i<M;i++) scanf("%d", &A[i].b), S = add(S, A[i].b);

	S = pow_mod(S, MOD - 2);

	for(int i=0;i<M;i++) A[i].b = sub(i == 0 ? 1 : 0, mul(A[i].b, S));

	for(int i=0;i<M;i++) B[i].b = 1;

	C[0].b = MOD - 1;

	fwt(A, N, 1), fwt(B, N, 1), fwt(C, N, 1);

	int tmp = mul(B[0].b, pow_mod(C[0].b, MOD-2));

	for(int i=1;i<M;i++)

		f[i] = (B[i] - C[i]*tmp) / A[i].b;

	f[0].k = 1; fwt(f, N, -1);

	int x = sub(0, mul(pow_mod(f[0].k, MOD-2), f[0].b));

	for(int i=0;i<M;i++) printf("%d\n", f[i].get(x));

}

// Faster C++ solution for the same problem (measured speedup: 9.040320460611833x):
#include<bits/stdc++.h>

#define maxn 1<<18|5

#define mod 998244353

#define rep(i,j,k) for(int i=(j),LIM=(k);i<=LIM;i++)

#define per(i,j,k) for(int i=(j),LIM=(k);i>=LIM;i--)

using namespace std;



int n,N;

int a[maxn],b[maxn];



int Pow(int b,int k){ int r=1;for(;k;k>>=1,b=1ll*b*b%mod) if(k&1) r=1ll*r*b%mod; return r; }

void FWT(int *a){

	rep(i,0,n-1) rep(j,0,N-1) if(!(j>>i&1)){

		int v = j ^ (1 << i) , x = (a[j] + a[v]) % mod , y = (a[j] - a[v]) % mod;

		a[j] = x , a[v] = y;

	}

}



int main(){

	scanf("%d",&n);N = 1 << n;int S=0;

	rep(i,0,N-1) scanf("%d",&a[i]),S+=a[i];

	S = Pow(S , mod-2);

	rep(i,0,N-1) a[i] = 1ll * a[i] * S % mod;

	a[0]-- , b[0] = 1 << n;

	rep(i,0,N-1) b[i]--;

	FWT(a),FWT(b);

	rep(i,0,N-1) a[i] = 1ll * Pow(a[i],mod-2) * b[i] % mod;

	FWT(a);int ivN = Pow(N , mod-2);

	rep(i,0,N-1) a[i] = 1ll * a[i] * ivN % mod;

	per(i,N-1,0) a[i] = (a[i] - a[0]) % mod;

	rep(i,0,N-1) printf("%d\n",(a[i]+mod)%mod);

}
// Slower C++ solution:
#include <cstdio>



const int MOD = 998244353;

const int INV2 = (MOD + 1) >> 1;



int add(int x, int y) {return (x + y >= MOD ? x + y - MOD : x + y);}

int sub(int x, int y) {return (x - y < 0 ? x - y + MOD : x - y);}

int mul(int x, int y) {return 1LL*x*y%MOD;}



int pow_mod(int b, int p) {

	int ret = 1;

	for(int i=p;i;i>>=1,b=mul(b,b))

		if( i & 1 ) ret = mul(ret,b);

	return ret;

}



struct node{

	int k, b;

	node() : k(0), b(0) {}

	node(int _k, int _b) : k(_k), b(_b) {}

	int get(int x) {return add(mul(k, x), b);}

	friend node operator + (node a, node b) {

		return node(add(a.k, b.k), add(a.b, b.b));

	}

	friend node operator - (node a, node b) {

		return node(sub(a.k, b.k), sub(a.b, b.b));

	}

	friend node operator * (node a, int k) {

		return node(mul(a.k, k), mul(a.b, k));

	}

	friend node operator / (node a, int k) {

		return a * pow_mod(k, MOD - 2);

	}

};



void fwt(node *A, int m, int type) {

	int n = (1 << m), f = (type == 1 ? 1 : INV2);

	for(int i=1;i<=m;i++) {

		int s = (1 << i), t = (s >> 1);

		for(int j=0;j<n;j+=s)

			for(int k=0;k<t;k++) {

				node x = A[j+k], y = A[j+k+t];

				A[j+k] = (x + y)*f, A[j+k+t] = (x - y)*f;

			}

	}

}



node A[1<<18], B[1<<18], C[1<<18], f[1<<18];



int main() {

	int N, M, S = 0; scanf("%d", &N), M = (1 << N);

	for(int i=0;i<M;i++) scanf("%d", &A[i].b), S = add(S, A[i].b);

	S = pow_mod(S, MOD - 2);

	for(int i=0;i<M;i++) A[i].b = sub(i == 0 ? 1 : 0, mul(A[i].b, S));

	for(int i=0;i<M;i++) B[i].b = 1;

	C[0].b = MOD - 1;

	fwt(A, N, 1), fwt(B, N, 1), fwt(C, N, 1);

	int tmp = mul(B[0].b, pow_mod(C[0].b, MOD-2));

	for(int i=1;i<M;i++)

		f[i] = (B[i] - C[i]*tmp) / A[i].b;

	f[0].k = 1; fwt(f, N, -1);

	int x = sub(0, mul(pow_mod(f[0].k, MOD-2), f[0].b));

	for(int i=0;i<M;i++) printf("%d\n", f[i].get(x));

}

// Faster C++ solution for the same problem (measured speedup: 8.939821108043452x):
#include<bits/stdc++.h>

using namespace std;

const int maxn=1<<18,mod=998244353;

inline int add(int a,int b){return a+b>=mod?a+b-mod:a+b;}

inline int dic(int a,int b){return a-b<0?a-b+mod:a-b;}

inline int mul(int a,int b){return 1ll*a*b%mod;}

inline int qpow(int a,int b,int c=1){for(;b;b>>=1,a=mul(a,a)) if(b&1) c=mul(c,a);return c;}

const int inv2=qpow(2,mod-2);

int p[maxn],n,c[maxn],len,e[maxn];

void FWT(int *f,bool typ){

	for(int i=2;i<=len;i<<=1)

		for(int j=0;j<len;j+=i)

			for(int k=j;k<j+i/2;++k){

				int u=f[k],t=f[k+i/2];

				if(!typ) f[k]=add(u,t),f[k+i/2]=dic(u,t);

				else f[k]=mul(add(u,t),inv2),f[k+i/2]=mul(dic(u,t),inv2);

			}

	return ;

}

int main(){

	int inv=0;cin>>n;len=1<<n;for(int i=0;i<1<<n;++i) scanf("%d",&p[i]),inv=add(inv,p[i]);

	inv=qpow(inv,mod-2);for(int i=0;i<1<<n;++i) p[i]=mul(p[i],inv),c[i]=mod-1;p[0]=dic(p[0],1);

	c[0]=add(len,c[0]);

	FWT(p,0),FWT(c,0);

	for(int i=1;i<len;++i) e[i]=mul(c[i],qpow(p[i],mod-2));

	FWT(e,1);

	for(int i=0;i<len;++i) printf("%d\n",dic(e[i],e[0]));

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

    int n,m;

    cin>>n>>m;

    if(n==m){cout<<"Yes"<<endl;}

    else{cout<<"No"<<endl;}

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.312423744459663x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>



using namespace std;



int main() {



    int n,m;

    cin>>n>>m;

    n==m?cout<<"Yes"<<endl:cout<<"No"<<endl;



    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.312423744459663x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
#include <iostream>

using namespace std;



int main() {

	int n,m;

	cin>>n>>m;

	if(n==m){

	    cout<<"Yes"<<endl;

	}

	else{

	    cout<<"No"<<endl;

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.312423744459663x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

      ios::sync_with_stdio(false);

      cin.tie(0);

    int n,m;

    cin>>n>>m;

    if(n==m){

        cout<<"Yes";

    }

    else

        cout<<"No";

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.375992663103387x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

    int N,M;

    cin>>N>>M;

    if(N==M){

        cout<<"Yes";

    }else{

        cout<<"No";

    }

return 0;}


// Faster C++ solution for the same problem (measured speedup: 5.2986994637801095x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

typedef long long ll;

using namespace std;

#define fi0 for(ll i=0;i<n;i++)

void solve()

{

    int n,m;

    cin>>n>>m;

    if(n==m){

        cout<<"Yes\n";

    }

    else{

        cout<<"No\n";

    }

}

int main()

{

   /// int t;cin>>t;while(t--){

        solve();



}


// Faster C++ solution for the same problem (measured speedup: 5.291974413900554x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
//BISMILLAHIR RAHMANIR RAHIM



#include <bits/stdc++.h>

#define loop(i,n) for(int i=0;i<n;i++)

#define pi acos(-1.00)



using namespace std;







int main()

{

    int n,m;

    cin>>n>>m;

    if(n==m)

        cout<<"Yes"<<endl;

    else

        cout<<"No"<<endl;







}




// Faster C++ solution for the same problem (measured speedup: 5.312423744459663x):
#include<stdio.h>

int main(){

	int N=1-100, M=1-100;

	scanf("%d", &N);

	scanf("%d", &M);

	

	if(N==M){

		printf("Yes");

	}else if(N!=M){

		printf("No");

	}

	

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

    int n,m;

    cin>>n>>m;

    if(n==m){cout<<"Yes"<<endl;}

    else{cout<<"No"<<endl;}

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.31233734138494x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>



using namespace std;



int main() {



    int n,m;

    cin>>n>>m;

    n==m?cout<<"Yes"<<endl:cout<<"No"<<endl;



    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.31233734138494x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
#include <iostream>

using namespace std;



int main() {

	int n,m;

	cin>>n>>m;

	if(n==m){

	    cout<<"Yes"<<endl;

	}

	else{

	    cout<<"No"<<endl;

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.31233734138494x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

      ios::sync_with_stdio(false);

      cin.tie(0);

    int n,m;

    cin>>n>>m;

    if(n==m){

        cout<<"Yes";

    }

    else

        cout<<"No";

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.375905226122055x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

    int N,M;

    cin>>N>>M;

    if(N==M){

        cout<<"Yes";

    }else{

        cout<<"No";

    }

return 0;}


// Faster C++ solution for the same problem (measured speedup: 5.298613283921777x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

typedef long long ll;

using namespace std;

#define fi0 for(ll i=0;i<n;i++)

void solve()

{

    int n,m;

    cin>>n>>m;

    if(n==m){

        cout<<"Yes\n";

    }

    else{

        cout<<"No\n";

    }

}

int main()

{

   /// int t;cin>>t;while(t--){

        solve();



}


// Faster C++ solution for the same problem (measured speedup: 5.29188834342073x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
//BISMILLAHIR RAHMANIR RAHIM



#include <bits/stdc++.h>

#define loop(i,n) for(int i=0;i<n;i++)

#define pi acos(-1.00)



using namespace std;







int main()

{

    int n,m;

    cin>>n>>m;

    if(n==m)

        cout<<"Yes"<<endl;

    else

        cout<<"No"<<endl;







}




// Faster C++ solution for the same problem (measured speedup: 5.31233734138494x):
#include <stdio.h>

int main(){

	int num1;

	int num2;

	scanf("%d %d", &num1, &num2);

	(num1 != num2) ? printf("No") : printf("Yes");

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

    int n,m;

    cin>>n>>m;

    if(n==m){cout<<"Yes"<<endl;}

    else{cout<<"No"<<endl;}

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.312841588959272x):
#include <stdio.h>



int main()

{

    int N, M;

    scanf("%d%d", &N,&M);

    if (N == M){

        printf("Yes");

    }

    else {

        printf("No");

    }



}
// Slower C++ solution:
#include <bits/stdc++.h>



using namespace std;



int main() {



    int n,m;

    cin>>n>>m;

    n==m?cout<<"Yes"<<endl:cout<<"No"<<endl;



    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.312841588959272x):
#include <stdio.h>



int main()

{

    int N, M;

    scanf("%d%d", &N,&M);

    if (N == M){

        printf("Yes");

    }

    else {

        printf("No");

    }



}
// Slower C++ solution:
#include <iostream>

using namespace std;



int main() {

	int n,m;

	cin>>n>>m;

	if(n==m){

	    cout<<"Yes"<<endl;

	}

	else{

	    cout<<"No"<<endl;

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.312841588959272x):
#include <stdio.h>



int main()

{

    int N, M;

    scanf("%d%d", &N,&M);

    if (N == M){

        printf("Yes");

    }

    else {

        printf("No");

    }



}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

      ios::sync_with_stdio(false);

      cin.tie(0);

    int n,m;

    cin>>n>>m;

    if(n==m){

        cout<<"Yes";

    }

    else

        cout<<"No";

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.376415507566154x):
#include <stdio.h>



int main()

{

    int N, M;

    scanf("%d%d", &N,&M);

    if (N == M){

        printf("Yes");

    }

    else {

        printf("No");

    }



}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

    int N,M;

    cin>>N>>M;

    if(N==M){

        cout<<"Yes";

    }else{

        cout<<"No";

    }

return 0;}


// Faster C++ solution for the same problem (measured speedup: 5.299116228807247x):
#include <stdio.h>



int main()

{

    int N, M;

    scanf("%d%d", &N,&M);

    if (N == M){

        printf("Yes");

    }

    else {

        printf("No");

    }



}