stablegradients/pie-gem5-bysrc huggingface dataset:
// Original C++ solution (slower):
#include<cstdio>

#include<algorithm>

#include<bitset>

#define rep(i,l,r) for (int i=(l); i<=(r); i++)

using namespace std;



const int mod=998244353,N=305;

int mi[N],n,m,k,ans,a[N][N];

bitset<N>b[N],x;



int main(){

	mi[0]=1; rep(i,1,300) mi[i]=2ll*mi[i-1]%mod;

	scanf("%d%d",&n,&m);

	rep(i,1,n){

		x.reset(); int l=-1;

		rep(j,0,m-1) scanf("%d",a[i]+j),x.set(j,a[i][j]);

		rep(j,0,m-1) if (x[j]){

			if (b[j].any()) x^=b[j]; else{ b[j]=x; l=j; break; }

		}

		if (l==-1) k++;

	}

	ans=(1ll*mi[m]*mi[k]+1ll*mi[m-1]*(mi[n]+mod-mi[k]))%mod;

	printf("%lld\n",(1ll*mi[n]*mi[m]+mod-ans)%mod);

	return 0;

}

// Optimized solution to the same problem (faster):
#include<bitset>

#include<cstdio>

#include<algorithm>

#define rep(i,l,r) for (int i=(l); i<=(r); i++)

using namespace std;



const int N=510,mod=998244353;

int n,m,y,rk,ans,a[N][N],pw[N];

bitset<N> b[N];



int main(){

	scanf("%d%d",&n,&m); pw[0]=1;

	rep(i,1,n){

		bitset<N>x(0);

		rep(j,1,m) scanf("%d",&y),x[j-1]=y;

		for(int j=m-1; ~j; j--)

			if (x[j]){

				if (b[j].any()) x^=b[j];

				 else{ b[j]=x; break; }

			}

	}

	rep(i,1,max(n,m)) pw[i]=2*pw[i-1]%mod;

	rep(i,0,m-1) if (b[i].any()) rk++;

	ans=1ll*(pw[n]-pw[n-rk])*pw[m-1]%mod;

	printf("%d\n",(ans+mod)%mod);

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>

using namespace std;

#define ll  long long

struct triple{ll   x=0;ll   y=0;ll   z=0;void mt(ll   a,ll   b, ll   c){x=a;y=b;z=c;} void holify(){x=69;y=420;z=911;}};

#define pb push_back

#define x first 

#define y second

#define vec vector

#define pf(vec,val) vec.insert(vec.begin(),val)

#define mp make_pair

#define pii pair<ll  ,ll  >

#define maxll  69696991169

#define minll  -69696942069

#define sz(vec) (ll )vec.size()

#define speedup ios_base::sync_with_stdio(0); cin.tie(NUll ); cout.tie(NUll );

#define loop(mep) for(auto it = mep.begin();it!=mep.end();++it)

//#define usaco_crap(str)ifstream cin((string)str + (string)".in"); ofstream cout ((string)str+(string)".out");

#define range(n) =0;i<(n);i++

#define prll  (vec) for(auto it=vec.begin();it!=vec.end();++it)cerr<<*it<<" ";cerr<<endl;

// mt make triple // triple.mt(a,b,c) //

int  main(){

	int n; cin>>n;

	int flag = 0;

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

		for(int j = 1 ; j< 10 ; j++){

			if(i*j==n)flag=1;

		}

	}

	if(flag)cout<<"Yes";

	else cout<<"No";

}


// Optimized solution to the same problem (faster):
#include <stdio.h>



int main() {

	int n;

    scanf("%d", &n);

    int temp = 0;

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

        for(int j = 1; j <= 9; j++){

            if(i * j == n){

                temp = 1;

                break;

            }

        }

    }

    if(temp == 1){

        puts("Yes");

    }else{

        puts("No");

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <math.h>



using namespace std;



int main()

{

    int N; cin >> N;

    

    for (double i = 1; i <= 9; i++) {

        if ((N / i) == floor(N/i) and (N / i) >= 1 and (N / i) <= 9) {

            cout << "Yes";

            return 0;

        }

    }



    cout << "No";

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h>



int main() {

	int n;

    scanf("%d", &n);

    int temp = 0;

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

        for(int j = 1; j <= 9; j++){

            if(i * j == n){

                temp = 1;

                break;

            }

        }

    }

    if(temp == 1){

        puts("Yes");

    }else{

        puts("No");

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

#define ll long long

#define gcd(a,b) __gcd(a,b)

#define lcm(a,b) (a*b)/gcd(a,b)

#define ff first

#define ss second

#define p pair<int,int>

#define pb push_back

#define endl '\n'

#define w(t) ll test;cin>>test;while(test--)

#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(0);

#define pi acos(-1)



int main()

{

    fast;

    int n;

    cin>>n;

    //bool flag=false;

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

    {

        int temp;

        if(n%i==0)

        {

            temp=n/i;

       // cout<<i<<" "<<temp<<endl;

        if(temp<=9&&temp>=1)

        {

            cout<<"Yes"<<endl;

            return 0;

        }



        }

    }

    cout<<"No"<<endl;

}




// Optimized solution to the same problem (faster):
#include <stdio.h>



int main() {

	int n;

    scanf("%d", &n);

    int temp = 0;

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

        for(int j = 1; j <= 9; j++){

            if(i * j == n){

                temp = 1;

                break;

            }

        }

    }

    if(temp == 1){

        puts("Yes");

    }else{

        puts("No");

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

#define lli long long int

#define pii pair<int,int>

#define pll pair<lli,lli>

#define vi  vector<int>

#define vii vector<pair<int,int>>

#define vll vector<lli>

#define pb  push_back

#define mp  make_pair

#define ss  second

#define ff  first

#define all(x) x.begin(),x.end()

const lli mod = 1e9+7;

//#ifndef ONLINE_JUDGE

//    freopen("input.txt", "r", stdin);

//    freopen("output.txt", "w", stdout);

//    #endif

lli p2(lli n){lli ans=0;while(n>=1){n=n/2;ans++;}return ans;}

lli b_ex(lli n,lli a){lli res=1;while(n){if(n%2==1)res*=a;n>>=1;a=a*a;}return res;}

lli ncr(lli n,lli k){lli ans=1;if(k>n-k)k=n-k;for(lli i=1;i<=k;i++){ans*=(n-i+1),ans=ans/i;}return ans;}

lli add(lli a,lli b){return(a+b)%mod;}

lli mul(lli a,lli b){return (a*b)%mod;}

lli power(lli a , lli n){lli ans = 1;while(n){if(n % 2)ans = (ans * a) % mod;n /= 2;a = (a * a) % mod;}return ans;}

lli lcm(lli a,lli b)

{

    lli ans=(a*b)/(__gcd(a,b));

    return ans;

}



int main()

{

    int n;cin>>n;

    if(n<=0 or n>81)cout<<"No\n";

    else

    {

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

        {

            if(n%i==0 and n/i <= 9)

            {

                cout<<"Yes\n";return 0;

            }

        }

        cout<<"No\n";

    }

}








// Optimized solution to the same problem (faster):
#include <stdio.h>



int main() {

	int n;

    scanf("%d", &n);

    int temp = 0;

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

        for(int j = 1; j <= 9; j++){

            if(i * j == n){

                temp = 1;

                break;

            }

        }

    }

    if(temp == 1){

        puts("Yes");

    }else{

        puts("No");

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
//Bismillahir Rahmanir Rahim

//In the name of Allah the Most Merciful

//Astagfirullahil laji Rabbi Minkulli Jamio Watubi elai

#include<bits/stdc++.h>

using namespace std;

#define ll long long int

#define double long double

#define MX 10000008

#define cs int t;cin>>t;while(t--)

int i,j,k;

int r,s;

int main()

 {

    int x;

    cin>>x;

    int p=0;

    for(i=1;i<=9;i++)

    {

        if(x%i==0)

        {

            int k=x/i;

            if(k>=1&&k<=9)

            {

                p=k;



            }

        }

    }

    if(p) cout<<"Yes"<<endl;

    else cout<<"No"<<endl;

 }


// Optimized solution to the same problem (faster):
#include <stdio.h>



int main() {

	int n;

    scanf("%d", &n);

    int temp = 0;

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

        for(int j = 1; j <= 9; j++){

            if(i * j == n){

                temp = 1;

                break;

            }

        }

    }

    if(temp == 1){

        puts("Yes");

    }else{

        puts("No");

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
//

// author  : Abhishek

//

#include <bits/stdc++.h>



#define ll long long

#define db double

#define deb(x) cout<<#x<<": "<<x<<"\n"

#define all(x) x.begin(),x.end()

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

#define Fo(i, k, n) for(i=k ; i<n ; i++)



using namespace std;



const ll mod = 1000000007;

const ll N = 300005;  // array size

const ll inf = 10000000000000000;





void print(vector<ll> v) {

    ll i;

    fo(i, v.size())cout << v[i] << " ";

    cout << "\n";

}



vector<ll> read(ll n) {

    ll i;

    vector<ll> arr(n, 0);

    fo(i, n)cin >> arr[i];

    return arr;

}



vector<ll> read(ll n, ll k) {

    ll i;

    vector<ll> arr(n + k, 0);

    Fo(i, k, n + k)cin >> arr[i];

    return arr;

}



bool isEven(ll n) {

    return n % 2 == 0;

}



bool isOdd(ll n) {

    return n % 2 != 0;

}





void solve() {

    ll t;

    cin >> (t);

    while (t--) {



        ll i, j, k, n, m, p, q, x, y, a, b, l, r;





    }

}



int main() {



//#ifndef ONLINE_JUDGE

//    freopen("input.txt", "r", stdin);

//    freopen("output.txt", "w", stdout);

//#endif



    ios_base::sync_with_stdio(false);

    cin.tie(NULL);



    ll i, j, k, n, m, p, q, x, y, a, b, l, r;





    cin>>n;



    Fo(i,1,10){

        Fo(j,1,10){

            if(i*j == n){

                cout<<"Yes\n";

                return 0;

            }

        }

    }



    cout<<"No\n";



    return 0;

}






// Optimized solution to the same problem (faster):
#include <stdio.h>



int main() {

	int n;

    scanf("%d", &n);

    int temp = 0;

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

        for(int j = 1; j <= 9; j++){

            if(i * j == n){

                temp = 1;

                break;

            }

        }

    }

    if(temp == 1){

        puts("Yes");

    }else{

        puts("No");

    }

    return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

    int a,n,i,flag=0,j;

    cin>>n;

    for(i=1;i<=9;i++)

    {

        for(j=1;j<=9;j++)

        {

            if(i*j==n)

               flag=1;

        }

    }

    if(flag==1)

        cout<<"Yes";

    else

        cout<<"No";



}

// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <bits/stdc++.h>



using namespace std;



#define ll long long 

#define endl '\n'

#define IOS ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define SIZE 100005



int main()

{

    int a;

    

    cin >> a;

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

    {

		if(a%i==0 && a/i>=1 && a/i <= 9) {cout <<"Yes\n";return 0;}

	}

	cout << "No" << endl;

	return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>



using namespace std;



int main()

{

    int n=0;

    int x=0;

    cin>>n;

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

    {

        if(x==1)

        {

            break;

        }

        for(int i2=1;i2<=9;i2++)

        {

            if(i*i2==n)

            {

               x++;

               break;

            }

            else

            {

                x=x;

            }

        }

    }

    if(x==1)

    {

        cout<<"Yes";

    }

    else

    {

        cout<<"No";

    }

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <cstdio>

#include <cstring>

#include <cstdlib>

#include <algorithm>

using namespace std;



int main()

{

    int n;scanf("%d",&n);

    if(n==1||n==2||n==3||n==4||n==5||n==6||n==7||n==8||n==9||n==10||n==12||n==14||n==15||n==16||n==18||n==20||n==21||n==24||n==25||n==27||n==28||n==30||n==32||n==35||n==36||n==40||n==42||n==45||n==48||n==49||n==54||n==56||n==63||n==64||n==72||n==81)

        printf("Yes\n");

    else

        printf("No\n");

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

#include <cstdio>

#include <cstring>

#include <cstdlib>

#include <algorithm>

using namespace std;



int main()

{

    int n;scanf("%d",&n);

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

    {

        for(int j=1;j<10;j++)

        {

            if(i*j==n)

            {

                printf("Yes\n");

                return 0;

            }

        }

    }

    printf("No\n");

    return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
//-- In The Name of God --

#include<bits/stdc++.h>

using namespace std;





#define      mod     1e9+7

#define      pai     acos(-1)

#define      ff      first

#define      ss      second

#define      ll      long long

#define      pb      push_back

#define      mp      make_pair

#define      endl    "\n"

#define      fii     freopen("input.txt","r",stdin);

#define      foo     freopen("output.txt","w",stdout);

#define      fast    ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);



const   ll   mx=1e5+100;



int main()

{

    fast;

    ll i,j,a,b,c,d,n,m,t;

    cin>>n;

    ll l=1,r=9;

    if(n%1==0||n%2==0||n%3==0||n%4==0||n%5==0||n%6==0||n%7==0||n%8==0||n%9==0)

    {

        if(n%1==0&&((n/1)>=l&&(n/1)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%2==0&&((n/2)>=l&&(n/2)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%3==0&&((n/3)>=l&&(n/3)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%4==0&&((n/4)>=l&&(n/4)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%5==0&&((n/5)>=l&&(n/5)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%6==0&&((n/6)>=l&&(n/6)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%7==0&&((n/7)>=l&&(n/7)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%8==0&&((n/8)>=l&&(n/8)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else if(n%9==0&&((n/9)>=l&&(n/9)<=r))

        {

            cout<<"Yes"<<endl;

        }

        else

        {

            cout<<"No"<<endl;

        }



    }

    else

    {

        cout<<"No"<<endl;

    }

    return 0;

}




// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

int main()

{

    int i,n,m=1;

    cin>>n;

    for(i=1;i<=9;i++)

    {

        if(!(n%i)&&(n/i>=1&&n/i<=9))

        {

            puts("Yes");

            m=0;

            break;



        }

    }

    if(m)

        puts("No");

    return 0;

}


// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
//----------------------Shanu Garg here---------------------

//-------------Search on youtube : Shanu Garg---------------

//-Studying at National Institute of Technology Delhi(NITD)-

//---------------------From Delhi, India--------------------



#include<bits/stdc++.h>

#include<algorithm>

using namespace std;



#define f(i,n) for(auto i=0;i<n;i++)

#define fr(i,n) for(auto i=n-1;i>=0;i--)

#define fs(i,a,b,c) for(auto i=a;i!=b;i+=c)

#define fl(i,x) for(auto i : x)

#define nl cout<<"\n";

#define chk(x) cout<<#x<<x<<" ", nl

#define ll long long int

#define ull unsigned long long int

#define vi vector<int>

#define vvi vector<vi>

#define pr pair<ll, ll>

#define vii vector<pair<int, int>>

#define vll vector<pr>

#define vl vector<ll>

#define m(a,b) map<a, b>

#define mid(a,b) ((a+b)/2)

#define pb push_back

#define LCM(a,b) ((a*b)/__gcd(x,y))

const int INF = 0x3f3f3f3f, mod = 1e9 + 7;



class triplet{

    ll f, s, t;};



vl in(ll n){vl v;ll x;

    f(i,n)

    cin>>x, v.pb(x);

    return v;}



vll in_pr(ll n){

    vll ar;

    ll x,y;

    f(i,n)

    {cin>>x>>y;

    ar[i]={x,y};

    }

    return ar;

}

void out(vl v, char ch='\0'){

    fl(i,v)

    cout<<i<<ch;

}



void solve(){

    ll N;

    cin>>N;

    bool flag=false;

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

    if(N%i == 0)

    if(N/i < 10  &&  N/i > 0)

    flag=true;



    flag ? cout<<"Yes" : cout<<"No";

}



int main(){

    ios_base::sync_with_stdio(false);

    cin.tie(NULL);

    solve();

   return 0;

}

// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

#define int  long long

#define tc(t)  int t; cin>>t; while(t--)

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

#define endl   "\n"

int32_t main()

{

    ios_base::sync_with_stdio(false);

    cin.tie(NULL);

 int n;

 cin>>n;

 if(n==0) cout<<"Yes"<<endl;

 else {

     bool flag=true;

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

         if (n % i == 0) {

             int b=n/i;

             if(b>=1&&b<=9) 

             { flag=false;

                 cout<<"Yes"<<endl;

                 break;

             }



         }



     }

     if(flag) cout<<"No"<<endl;

 }



}

// Optimized solution to the same problem (faster):
#include <stdio.h> 



int main () {

	int n;

	scanf("%d", &n);

	

	int count = 0;

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

		for (int j = 1; j < 10; j++) {

			if (i * j == n) {

				count++;

			}

		}

	}

	

	if (count == 0) {

		puts("No");

	}

	else {

		puts("Yes");

	}

	

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

using namespace std;



int main() {

	int r;

	bool band=false;

	cin>>r;

	for (int a=1; a<10;a++) {

		for (int b=1; b<10;b++) {

			if (a*b==r)

				band=true;

		}

	}

	if (band)

		cout<<"Yes";

	else

		cout<<"No";

	return 0;

}

// Optimized solution to the same problem (faster):
#include<stdio.h>

int main(){

	int a, b, temp=0;

	scanf("%d", &a);

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

		for(int j=1; j<=9; j++){

			if(i*j==a){

				temp=1;

				break;

			}

		}

	}

	if(temp == 1){

        puts("Yes");

    }

	else{

        puts("No");	

    }

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include <iostream>

using namespace std;



int n;



int main(){

    cin>>n;

    bool valid=false;

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

        for(int j=1;j<=9;j++){

            if(i*j==n){

                valid=true;

            }

        }

    }

    if(valid){

        cout<<"Yes"<<endl;

    }else{

        cout<<"No"<<endl;

    }

}

// Optimized solution to the same problem (faster):
#include<stdio.h>

int main(){

	int a, b, temp=0;

	scanf("%d", &a);

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

		for(int j=1; j<=9; j++){

			if(i*j==a){

				temp=1;

				break;

			}

		}

	}

	if(temp == 1){

        puts("Yes");

    }

	else{

        puts("No");	

    }

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

int main()

{

    long long int n,m,flag=0,i;

    cin>>n;

    for(i=9;i>0;i--)

    {

        if(n%i==0)

        {

            m=n/i;

            if(m>=1&&m<=9)

            {

                flag=1;

                break;

            }

        }

    }

    if(flag==1) cout<<"Yes"<<endl;

    else cout<<"No"<<endl;

    return 0;

}




// Optimized solution to the same problem (faster):
#include<stdio.h>

int main(){

	int a, b, temp=0;

	scanf("%d", &a);

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

		for(int j=1; j<=9; j++){

			if(i*j==a){

				temp=1;

				break;

			}

		}

	}

	if(temp == 1){

        puts("Yes");

    }

	else{

        puts("No");	

    }

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<iostream>

using namespace std;

int main()

{

    int n,Count=0;

    cin>>n;

    for(int a=1; a<=9; ++a)

    {

        for(int b=1; b<=9; ++b)

        {

            if(a*b==n)

            {

                Count++;

            }

        }

    }

    if(Count==0)

    {

        cout<<"No"<<endl;

    }

    else

    {

        cout<<"Yes"<<endl;

    }

    return 0;

}


// Optimized solution to the same problem (faster):
#include<stdio.h>

int main(){

	int a, b, temp=0;

	scanf("%d", &a);

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

		for(int j=1; j<=9; j++){

			if(i*j==a){

				temp=1;

				break;

			}

		}

	}

	if(temp == 1){

        puts("Yes");

    }

	else{

        puts("No");	

    }

	return 0;

}

// Fastest known solution for this problem:
// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

int main()

{

    int n,flag=0,a=0,b=0;

    cin>>n;

    flag=0;

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

    {

        if(n%i==0)

        {

            a=n/i;

            b=i;



            if((a>=1&&a<=9)&&(b>=1&&b<=9))

            {

                cout<<"Yes"<<endl;

                flag=1;

                break;



            }

        }

        else continue;

    }

    if(flag==0) cout<<"No"<<endl;



}


// Optimized solution to the same problem (faster):
#include<stdio.h>

int main(){

	int a, b, temp=0;

	scanf("%d", &a);

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

		for(int j=1; j<=9; j++){

			if(i*j==a){

				temp=1;

				break;

			}

		}

	}

	if(temp == 1){

        puts("Yes");

    }

	else{

        puts("No");	

    }

	return 0;

}

// Fastest known solution for this problem: