stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

ll pow(ll x)

{

    ll ans=1;

    for(int i=0;i<5;i++)

        ans*=x;

    return ans;

}

int main()

{

    ll a,b;

    ll x; cin>>x;

    for(int a=-200;a<=200;a++)

    {

        for(int b=-200;b<=200;b++)

        {

            if(pow(a)-pow(b)==x)

            {

                cout<<a<<" "<<b<<endl;

                return 0;

            }

        }

    }

}






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

#include<cmath>

#define ll long long

#define f(i,l,r) for(ll i=l;i<=r;i++)

using namespace std;

int main(){

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

   ll X;

   cin >> X;

   ll a[1005] = {0};

   f(i,1,1004) a[i] = pow(i,5);

   bool Y = false;

   f(i,0,1004){

      if(a[i] == X){

          cout << i << " 0";

          return 0;

      }

      else{

         f(j,1,1004) if(a[i] - a[j] == X){

            cout << i << " " << j;

            Y  = true;

            return 0;

         }

         if(Y == false) f(j,1,1004) if(a[i] + a[j] == X){

             cout << i << " " << -j;

             return 0;

         }

      }

   }

   return 0;

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

#define rep(i,b) for(int i=1;i<=b;i++)

#define drep(i,b) for(int i=b;i>=1;i--)

#define Rep(i,a,b) for(int i=a;i<=b;i++)

#define pr pair<int,int>

#define ff first

#define ss second

#define int long long

#define endl '\n'

using namespace std;

const int N=2e5+5;

const int mod=1e9+7;

int n,m,k,t,x,y,z;



int poww(int x,int k) {

    if(k==0) return 1;

    int t=poww(x,k/2);

    if(k&1) return t*t*x;

    else return t*t;

}



void solve(int sum=0) {

    cin>>n;

    Rep(i,-200,200) Rep(j,-200,200) {

        if(poww(i,5)-poww(j,5)==n) {

            cout<<i<<' '<<j<<endl;

            return ;

        }

    }

}



#undef int

int main() {

    ios::sync_with_stdio(false);

    //int T;cin>>T;

    //while(T--)

        solve();

}


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



int main()

{

    unsigned long long x;

    std::cin>>x;

    for (long long int i=-120; i<120; i++)

        for (long long int j=-120; j<120; j++)

        {

            long long a=i*i*i*i*i, b=j*j*j*j*j;

            if (a-b==x)

            {

                std::cout<<i<<" "<<j;

                return 0;

            }

        }

    return 0;

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

using namespace std;

typedef long long ll;

ll pow(ll x)

{

    ll ans=1;

    for(int i=0;i<5;i++)

        ans*=x;

    return ans;

}

int main()

{

    ll a,b;

    ll x; cin>>x;

    for(int a=-200;a<=200;a++)

    {

        for(int b=-200;b<=200;b++)

        {

            if(pow(a)-pow(b)==x)

            {

                cout<<a<<" "<<b<<endl;

                return 0;

            }

        }

    }

}






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



int main()

{

    unsigned long long x;

    std::cin>>x;

    for (long long int i=-120; i<120; i++)

        for (long long int j=-120; j<120; j++)

        {

            long long a=i*i*i*i*i, b=j*j*j*j*j;

            if (a-b==x)

            {

                std::cout<<i<<" "<<j;

                return 0;

            }

        }

    return 0;

}
// Slower C++ solution:
#define _USE_MATH_DEFINES



//#include <bits/stdc++.h>

#include <cmath>

#include <iostream>

#include <vector>

    

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

using namespace std;

using ll = long long;



//int 最大値は2147483647 > 10^9





int main(){

	ll X;cin>>X;

	for(ll A=-200;A<=200;A++){

		for(ll B=-200;B<=200;B++){

			if(A*A*A*A*A-B*B*B*B*B==X){

				cout << A << " " << B;

				return 0;

			}

		}

	}

} // end of main

    

//実行は、Opt + Ctl + N





//pythonの入力

//s, w = map(int, input().split())


// Faster C++ solution for the same problem (measured speedup: 1.3124162168224982x):
#define _USE_MATH_DEFINES



//#include <bits/stdc++.h>

#include <cmath>

#include <iostream>

#include <vector>

    

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

using namespace std;

using ll = long long;



//int 最大値は2147483647 > 10^9



ll gojou[200];



int main(){

    ll x;

    cin>>x;



    rep(i,200)gojou[i]=ll(i)*ll(i)*ll(i)*ll(i)*ll(i);

    //rep(i,200)printf("%d,%lld\n", i, gojou[i]);



    rep(i,200)rep(j,200){

        if(x == gojou[i]-gojou[j]){

            printf("%d %d", i,j);

            return 0;

        }else if(x == gojou[i]+gojou[j]){

            printf("%d %d", i,-1*j);

            return 0;

        }else if(x == -1*gojou[i]+gojou[j]){

            printf("%d %d", -1*i,-1*j);

            return 0;

        }

    }





} // end of main

    

//実行は、Opt + Ctl + N





//pythonの入力

//s, w = map(int, input().split())
// Slower C++ solution:
#include <bits/stdc++.h>

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

using namespace std;

using ll = long long;

using P = pair<int, int>;



int main() {

  ll x;

  cin >> x;

  for (int i = -118; i < 120; i++) {

    for (int j = -119; j < 119; j++)

      if (pow(i, 5) - pow(j, 5) == x) {

        printf("%d %d\n", i, j);

        return 0;

      }

  }

  return 0;

}

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

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

using namespace std;

using ll = long long;

using P = pair<int, int>;



int main() {

  ll x;

  cin >> x;

  for (int i = 0; i < 120; i++) {

    for (int j = -119; j < 119; j++)

      if (pow(i, 5) - pow(j, 5) == x) {

        printf("%d %d\n", i, j);

        return 0;

      }

  }

  return 0;

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

using namespace std;



int main() {

    int x;

    cin >> x;

    for (int a = -118; a < 120; a++) {

        for (int b = -118; b < 120; b++) {

            if (pow(a,5) - pow(b,5) == x) {

                printf("%d %d\n", a, b);

                goto end;

            }

        }

    }

    end:

    return 0;

}

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

using namespace std;

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

#define repr(i, n) for (int i = n-1; i >= 0; i--)

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

using ll = long long;

using pii = pair<int, int>;

const int mod = 1e9+7;



int f(int x) {

    int r = 1;

    rep(i, 5) {

        r *= x;

    }

    return r;

}



int main() {

    int x;

    cin >> x;

    for (int a = -120; a <= 120; a++) {

        for (int b = -120; b <= 120; b++) {

            if (f(a) - f(b) == x) {

                cout << a << " " << b << endl;

                return 0;

            }

        }

    }

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

using namespace std;

using ll = long long;

int MAXN = int(1e3);



void solve(long long X){

    set<ll> A;

    map<ll,ll> mA;

    set<ll> B;

    map<ll,ll> mB;

    for(ll i=0LL;i<=MAXN;i++){

        ll v = i*i*i*i*i;

        A.insert(v);

        mA[v] = i;

        B.insert(v);

        B.insert(-v);

        mB[v] = i;

        mB[-v] =-i;

    }

    // for(auto x:A){

    //     cerr <<x  << endl;

    // }

    for(auto itr = A.begin();itr!=A.end();++itr){

        ll value = *itr;

        ll remain = value-X;

        if(B.find(remain) != B.end()){

            // cerr <<"itr="<< value << endl;

            // cerr <<remain << endl;

            cout << mA[value] <<" "<< mB[remain] << endl;

            return;

        }

    }

   

    



}



int main(){

    long long X;

    scanf("%lld",&X);

    solve(X);

    return 0;

}


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

using namespace std;

using ll = long long;

int MAXN = int(1e3);



void solve(long long X){

   

    for(ll i=0LL;i<=MAXN;i++){

        ll A = i*i*i*i*i;

        for(ll j=0LL;j<=MAXN;j++){

            ll B = j*j*j*j*j;

            if(A-B==X){

                cout <<i <<" "<<j<<endl;

                return;

            }

            if(A+B==X){

                cout <<i <<" "<<-j<<endl;

                return;

            }

        }

    }



}



int main(){

    long long X;

    scanf("%lld",&X);

    solve(X);

    return 0;

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



long long int Fibo(long long int n)

{

    if(n == 0 || n == 1) return 1;

    if(n == 44) return 1134903170;

    return Fibo(n-1) + Fibo(n-2);

}

int main(){

    long long int n;

    std::cin >> n;

    std::cout << Fibo(n) << std::endl;

    return 0;

}

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



long long int Fibo(int n)

{

    long long int a = 1;

    long long int pre = 1;

    long long int prepre = 1;

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

        a = pre + prepre;

        prepre = pre;

        pre = a;

    }

    return a;

}

int main(){

    int n;

    std::cin >> n;

    std::cout << Fibo(n) << std::endl;

    return 0;

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

using namespace std;

int main()

{

    int a,b;

    cin>>a>>b;

    if (a%b==0) cout<<"-1"; else cout<<a;

    cout<<endl;

    return 0;

}

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

int main()

{

	int x,y;

	scanf("%d %d",&x,&y);

	if(x%y) printf("%d\n",x);

	else printf("-1\n");

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

using namespace std;

int main()

{

    int a,b;

    cin>>a>>b;

    if (a%b==0) cout<<"-1"; else cout<<a;

    cout<<endl;

    return 0;

}

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

#include <math.h>

#include <string.h>

int _max(int x,int y){return x>y?x:y;}

int main(){

	int a,b;

	scanf("%d %d",&a,&b);

	if(a%b!=0)printf("%d\n",a);

	else printf("-1\n");

	return 0;

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

using namespace std;

int main()

{ 

    int x,y;

    cin>>x>>y;

    if(x%y)cout<<x;

    else cout<<-1;

    puts("");

}

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

#include <math.h>

#include <string.h>

int _max(int x,int y){return x>y?x:y;}

int main(){

	int a,b;

	scanf("%d %d",&a,&b);

	if(a%b!=0)printf("%d\n",a);

	else printf("-1\n");

	return 0;

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

using namespace std;



int main(){

    int a,b;

    cin>>a>>b;

    if (a%b){

        cout<<a;

    }    

    else{

        cout<<-1;

    }

}

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

#include <math.h>

#include <string.h>

int _max(int x,int y){return x>y?x:y;}

int main(){

	int a,b;

	scanf("%d %d",&a,&b);

	if(a%b!=0)printf("%d\n",a);

	else printf("-1\n");

	return 0;

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

using namespace std;

int a,b;

int main()

{

	cin>>a>>b;

	if(a%b!=0)

	{

		cout<<a;

	}

	else

	{

		cout<<-1;

	}

}

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

#include <math.h>

#include <string.h>

int _max(int x,int y){return x>y?x:y;}

int main(){

	int a,b;

	scanf("%d %d",&a,&b);

	if(a%b!=0)printf("%d\n",a);

	else printf("-1\n");

	return 0;

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

using namespace std;

int main()

{ 

    int x,y;

    cin>>x>>y;

    if(x%y)cout<<x;//除不尽输x

    else cout<<-1;//否则输-1

    puts("");//统一换行

}

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

#include <math.h>

#include <string.h>

int _max(int x,int y){return x>y?x:y;}

int main(){

	int a,b;

	scanf("%d %d",&a,&b);

	if(a%b!=0)printf("%d\n",a);

	else printf("-1\n");

	return 0;

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

using namespace std;

int a,b;

int main(){

	cin>>a>>b;

	if(a%b==0){

		cout<<-1;

	}

	else{

		cout<<a;

	}

    return 0;

}

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

#include <math.h>

#include <string.h>

int _max(int x,int y){return x>y?x:y;}

int main(){

	int a,b;

	scanf("%d %d",&a,&b);

	if(a%b!=0)printf("%d\n",a);

	else printf("-1\n");

	return 0;

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

using namespace std;

int x,y;

int main()

{

    cin>>x>>y;

    if(x%y!=0)cout<<x<<endl;

    else cout<<"-1"<<endl;

	return 0;

}

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



int main()

{

	int x,y;scanf("%d %d",&x,&y);

	if(x%y==0) printf("-1");

	else printf("%d",x);

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

using namespace std;

int x,y;

int main()

{

    cin>>x>>y;

    if(x%y!=0)cout<<x<<endl;

    else cout<<"-1"<<endl;

	return 0;

}

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



using namespace std;



typedef long long ll;



ll x, y;



int main() {

	scanf("%lld %lld", &x, &y);

	if (x == y) {

		printf("-1\n");

		return 0;

	}

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

		if ((x * i) % y) {

			printf("%lld\n", x * i);

			return 0;

		}

	}

	printf("-1\n");

	return 0;

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

using namespace std;

int main()

{ 

    int x,y;

    cin>>x>>y;

    if(x%y) cout<<x;

    else cout<<-1;

}

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



using namespace std;



typedef long long ll;



ll x, y;



int main() {

	scanf("%lld %lld", &x, &y);

	if (x == y) {

		printf("-1\n");

		return 0;

	}

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

		if ((x * i) % y) {

			printf("%lld\n", x * i);

			return 0;

		}

	}

	printf("-1\n");

	return 0;

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

using namespace std;



long long l,r;



int main(){

	cin>>l>>r;

	if(l%r) cout<<l;

	else cout<<"-1";

	cout<<endl;

	return 0;

}

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



using namespace std;



typedef long long ll;



ll x, y;



int main() {

	scanf("%lld %lld", &x, &y);

	if (x == y) {

		printf("-1\n");

		return 0;

	}

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

		if ((x * i) % y) {

			printf("%lld\n", x * i);

			return 0;

		}

	}

	printf("-1\n");

	return 0;

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

using namespace std;

int main()

{ 

    int x,y;

    cin>>x>>y;

    if(x%y)cout<<x;

    else cout<<-1;

    puts("");

}

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

int main(){

	int n,m;

	scanf("%d%d",&n,&m),printf("%d",n%m?n:-1);

	return 0;

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

using namespace std;

int main()

{ 

    int x,y;

    cin>>x>>y;

    if(x%y)cout<<x;

    else cout<<-1;

    puts("");

}

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

int main(){

	int x,y;

	scanf("%d %d",&x,&y);

	printf("%d\n",(x%y)?x:-1);

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

#include<cstdio>

using namespace std;

int main()

{

	int x,y,s=0;

	scanf("%d%d",&x,&y);

	if(x%y!=0)

	{

	printf("%d",x);

	return 0;

	}

	else 

	printf("-1\n");

	return 0;

}

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

int main(){

	int x,y;

	scanf("%d %d",&x,&y);

	printf("%d\n",(x%y)?x:-1);

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

using namespace std;

int main()

{

	long long x,y;

	cin>>x>>y;

	if(x%y&&max(x,y)<=1e18)

		cout<<x<<endl;

	else

		cout<<-1<<endl;

	return 0;

}

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

int main(){

	int x,y;

	scanf("%d %d",&x,&y);

	printf("%d\n",(x%y)?x:-1);

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

main(){int a,b;std::cin>>a>>b;if(a%b)std::cout<<a<<std::endl;else std::cout<<"-1"<<std::endl;}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

int main()

{ 

    int x,y;

    cin>>x>>y;

    if(x%y)cout<<x<<endl;

    else cout<<-1<<endl;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

int n,m;

int a;

int main()

{

	cin>>n>>m;

	if(n%m!=0)cout<<n;

	else cout<<-1;

	return 0;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

int main(){

    int a,b;

    scanf("%d%d",&a,&b);

    if(a == b){

        printf("-1\n");

        return 0;

    }

    for(int i = a; i < 1000000000; i += a){

        if(i % b != 0){

            printf("%d\n", i);

            return 0;

        }

    }

    printf("-1\n");

    return 0;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

#include<algorithm>

using namespace std;

int main()

{

	int a,b;

	cin>>a>>b;

	if(a%b)cout<<a<<endl;

	else cout<<-1<<endl;

	return 0;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

int main(){

	int x,y;

	cin>>x>>y;

	if(x%y!=0)cout<<x<<endl;

	else cout<<"-1"<<endl;

	return 0;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

int main(){

    int x,y;

    cin>>x>>y;

    if(x%y==0)

    cout<<-1;

    else cout<<x;

    return 0;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

long long  x,y;

bool flag;

main(){

	cin>>x>>y;

	if(x%y){

		cout<<x;

	}

	else{

	    cout<<-1;

	}

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;



int main()

{

	long long X, Y;

	cin >> X >> Y;

	if (X % Y == 0)

	{

		cout << -1 << endl;

	}

	else

	{

		cout << X << endl;

	}

	return 0;

}

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

int x,y;

int main()

{

    scanf("%d%d",&x,&y);

    if(x%y)printf("%d",x);

    else printf("-1");

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

using namespace std;

int main()

{ 

	int x,y;

	cin>>x>>y;

	cout<<(x%y==0?-1:x)<<endl;

}

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

using namespace std;

int main()

{

	int x,y;

	scanf("%d%d",&x,&y);

	

	if(x%y!=0)

	{

		printf("%d\n",x);

		return 0;

	}

	else

	{

		printf("-1\n");

		return 0;

	}

	return 0;

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

using namespace std;

int main()

{

	int a,b;

	cin>>a>>b;

	if(a%b==0)

	{

		cout<<-1<<endl;

	}

	else

	{

		cout<<a<<endl;

	}

    return 0;

}

//不想加注释

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

using namespace std;

int main()

{

	int x,y;

	scanf("%d%d",&x,&y);

	

	if(x%y!=0)

	{

		printf("%d\n",x);

		return 0;

	}

	else

	{

		printf("-1\n");

		return 0;

	}

	return 0;

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

using namespace std;

int a,b;

int main()

{

	cin>>a>>b;

	if(a%b) cout<<a;

	else

		cout<<-1;

	return 0;

}

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

using namespace std;

int main()

{

	int x,y;

	scanf("%d%d",&x,&y);

	

	if(x%y!=0)

	{

		printf("%d\n",x);

		return 0;

	}

	else

	{

		printf("-1\n");

		return 0;

	}

	return 0;

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

#include <assert.h>



using namespace std;



const int mod = 1e9 + 7;



int main()

{

  int H, W, K;

  cin >> H >> W >> K;

  vector<vector<int>> dp(H + 1, vector<int>(W, 0));

  dp[0][0] = 1;

  for (int i = 0; i < H; i++)

    for (int j = 0; j < W; j++)

      for (int bit = 0; bit < 1 << (W - 1); bit++)

      {

        cerr << bit << " " << 1 << (W - 1) << endl;

        bool ok = true;

        for (int k = 0; k < W - 2; k++)

          if (bit & (1 << k) && bit & (1 << (k + 1)))

            ok = false;

        if (!ok)

          continue;

        if (0 < j && (bit & (1 << (j - 1))))

        {

          dp[i + 1][j - 1] += dp[i][j];

          dp[i + 1][j - 1] %= mod;

        }

        else if (j < W - 1 && (bit & (1 << j)))

        {

          dp[i + 1][j + 1] += dp[i][j];

          dp[i + 1][j + 1] %= mod;

        }

        else

        {

          dp[i + 1][j] += dp[i][j];

          dp[i + 1][j] %= mod;

        }

      }

  cout << dp[H][K - 1] << endl;



  return 0;

}


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

#include <assert.h>



using namespace std;



const int mod = 1e9 + 7;



int main()

{

  int H, W, K;

  cin >> H >> W >> K;

  vector<vector<int>> dp(H + 1, vector<int>(W, 0));

  dp[0][0] = 1;

  for (int i = 0; i < H; i++)

    for (int j = 0; j < W; j++)

      for (int bit = 0; bit < 1 << (W - 1); bit++)

      {

        bool ok = true;

        for (int k = 0; k < W - 2; k++)

          if (bit & (1 << k) && bit & (1 << (k + 1)))

            ok = false;

        if (!ok)

          continue;

        if (0 < j && (bit & (1 << (j - 1))))

        {

          dp[i + 1][j - 1] += dp[i][j];

          dp[i + 1][j - 1] %= mod;

        }

        else if (j < W - 1 && (bit & (1 << j)))

        {

          dp[i + 1][j + 1] += dp[i][j];

          dp[i + 1][j + 1] %= mod;

        }

        else

        {

          dp[i + 1][j] += dp[i][j];

          dp[i + 1][j] %= mod;

        }

      }

  cout << dp[H][K - 1] << endl;



  return 0;

}