#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
int sum, best; char a[N]; char bit[20];
int main(){
   // home();
    RS(a);
  /*  REP(i, LEN(c)){
        a = a + " ";
        a[SZ(a) - 1] = c[SZ(a) - 1];
    }*/
    LL answer = 1;
    REPP(i, 0, LEN(a) - 1){

        if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        itoa(sum, bit, 2);
        //cout << bit << endl;
        REPP(i, 0, LEN(bit) - 1)
            if(bit[i] == '0'){
                answer *= 3;
                while(answer >= mod) answer -= mod;
            }

        REP(i, 6 - LEN(bit)){
            answer *= 3;
            while(answer >= mod) answer -= mod;
        }

        if(answer == 0){
            cout << 0;
            exit(0);
        }
    }
    cout << answer;
}


#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d ", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
str a, result; int sum, best;
int main(){
    cin >> a;
    REPP(i, 0, SZ(a) - 1){
        result = result + "000000";

        if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        char bit[20];
        itoa(sum, bit, 2);

        REP(i, LEN(bit)) result[SZ(result) - i] = bit[LEN(bit) - i];
    }
    LL answer = 1;

    REPP(i, 0, SZ(result) - 1)
        if(result[i] == '0') answer *= 3, answer %= mod;

    cout << answer;
}


#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
int sum, best; char a[N]; char bit[20] = "000000";
int main(){
   // home();
    RS(a);
  /*  REP(i, LEN(c)){
        a = a + " ";
        a[SZ(a) - 1] = c[SZ(a) - 1];
    }*/
    LL answer = 1;
    int n = LEN(a);
    REPP(i, 0, n - 1){
        //sum = 63;
       if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        itoa(sum, bit, 2);
        //cout << bit << endl;
        REPP(i, 0, LEN(bit) - 1)
            if(bit[i] == '0'){
                answer *= 3;
                while(answer >= mod) answer -= mod;
            }

        REP(i, 6 - LEN(bit)){
            answer *= 3;
            while(answer >= mod) answer -= mod;
        }

        if(answer == 0){
            cout << 0;
            exit(0);
        }
    }

    cout << answer;
}


#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d ", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
str a, result; int sum, best; char c[N]; char bit[20];
int main(){

    RS(c);
    REP(i, LEN(c)){
        a = a + " ";
        a[SZ(a) - 1] = c[SZ(a) - 1];
    }
    LL answer = 1;
    REPP(i, 0, SZ(a) - 1){

        if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        itoa(sum, bit, 2);
        //cout << bit << endl;
        REPP(i, 0, LEN(bit) - 1){
            if(bit[i] == '0')answer *= 3;
            while(answer >= mod) answer -= mod;
        }

        REP(i, 6 - LEN(bit)){
            answer *= 3;
            while(answer >= mod) answer -= mod;
        }
    }

    cout << answer;
}


#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d ", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
str a, result; int sum, best; char c[N];
int main(){

    RS(c);
    REP(i, LEN(c)){
        a = a + " ";
        a[SZ(a) - 1] = c[SZ(a) - 1];
    }

    REPP(i, 0, SZ(a) - 1){
        result = result + "000000";

        if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        char bit[20];
        itoa(sum, bit, 2);

        REP(i, LEN(bit)) result[SZ(result) - i] = bit[LEN(bit) - i];
    }
    LL answer = 1;

    REPP(i, 0, SZ(result) - 1){
        if(result[i] == '0') answer *= 3;
        while(answer >= mod) answer -= mod;
    }

    cout << answer;
}


#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d ", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
str a, result; int sum, best;
int main(){
    cin >> a;
    REPP(i, 0, SZ(a) - 1){
        result = result + "000000";

        if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        char bit[20];
        itoa(sum, bit, 2);

        REP(i, LEN(bit)) result[SZ(result) - i] = bit[LEN(bit) - i];
    }
    LL answer = 1;

    REPP(i, 0, SZ(result) - 1){
        if(result[i] == '0') answer *= 3;
        while(answer >= mod) answer -= mod;
    }

    cout << answer;
}


#include <bits/stdc++.h>
#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, N) for (int I = 1; I <= (N); ++I)
#define REPP(I, A, B) for (int I = (A); I <= (B); ++I)
#define FOR(I, A, B) for(int I = (A); I >= (B) ; --I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define WI(X) printf("%d ", (X))
#define WII(X, Y) printf("%d %d\n", (X), (Y))
#define WIII(X, Y, Z) printf("%d %d %d\n", (X), (Y), (Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) strlen(X)
#define PII pair<int,int>
#define VI vector<int>
#define VPII vector<pair<int,int> >
#define PLL pair<long long,long long>
#define VPLL vector<pair<long long,long long> >
#define F first
#define S second
#define str string
#define MASK(i) (1LL<<(i))
#define BIT(x,i) (((x)>>(i))&1)
typedef long long LL;
using namespace std;
void home(){
    freopen("TEST.INP","r",stdin);
    freopen("TEST.OUT","w",stdout);
}
const LL N=1e6+1, mod=1e9+7;
str a, result; int sum, best; char c[N]; char bit[20];
int main(){

    RS(c);
    REP(i, LEN(c)){
        a = a + " ";
        a[SZ(a) - 1] = c[SZ(a) - 1];
    }
    LL answer = 1;
    REPP(i, 0, SZ(a) - 1){

        if (a[i] < '0') sum = 62;
        else if (a[i] <= '9') sum = a[i] - '0';
        else if(a[i] <= 'Z') sum = 10 + a[i] - 'A';
        else if(a[i] < 'a') sum = 63;
        else sum = 36 + a[i] - 'a';

        itoa(sum, bit, 2);
        //cout << bit << endl;
        REPP(i, 0, LEN(bit) - 1)
            if(bit[i] == '0')answer *= 3;

        REP(i, 6 - LEN(bit))
            answer *= 3;

        if(answer >= mod) answer %= mod;
        if(answer == 0){
            cout << 0;
            exit(0);
        }
    }

    cout << answer;
}


#include <bits/stdc++.h>

using namespace std;

const int maxN = (int)1E5+5;
const long long mdls = (long long)1E9+7;

char s[maxN];
int n;
long long result;

inline int toInt(char c) {
	if (c >= 0 && c <= 9) return c-'0';
	if (c >= 'A' && c <= 'Z') return c-'A'+10;
	if (c >= 'a' && c <= 'z') return c-'a'+36;
	if (c == '-') return 62;
	return 63;
}

int main() {
	scanf(" %s", s);
	n = strlen(s);
	result = 1;
	for(int i = 0; i < n; ++i) {
		int v = toInt(s[i]);
		long long t = 1;
		for(int j = 0; j < 6; ++j) {
			if (v&1) t *= (long long)1;
			else t *= (long long)3;
			t %= mdls;
			v >>= 1;
		}
		result = (result*t)%mdls;
	}
	cout << result << "\n";
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

const int maxN = (int)1E5+5;
const long long mdls = (long long)1E9+7;

char s[maxN];
int n;
long long result;

inline int toInt(char c) {
	if (c >= '0' && c <= '9') return (c-'0');
	if (c >= 'A' && c <= 'Z') return (c-'A')+10;
	if (c >= 'a' && c <= 'z') return (c-'a')+36;
	if (c == '-') return 62;
	return 63;
}

int main() {
	scanf(" %s", s);
	n = strlen(s);
	result = 1;
	for(int i = 0; i < n; ++i) {
		int v = toInt(s[i]);
		long long t = 1;
		for(int j = 0; j < 6; ++j, v /= 2)
			if (v%2 == 0)
				t = (t*3)%mdls;
		result = (result*t)%mdls;
	}
	cout << result << "\n";
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

const int maxN = (int)1E5+5;
const long long mdls = (int)1E9+7;

char s[maxN];
int n;
long long result;

inline int toInt(char c) {
	if (c >= 0 && c <= 9) return c-'0';
	if (c >= 'A' && c <= 'Z') return c-'A'+10;
	if (c >= 'a' && c <= 'z') return c-'a'+36;
	if (c == '-') return 62;
	return 63;
}

int main() {
	scanf(" %s", s);
	n = strlen(s);
	result = 1;
	for(int i = 0; i < n; ++i) {
		int v = toInt(s[i]);
		long long t = 1;
		for(int j = 0; j < 6; ++j) {
			if (v&1) t *= 1;
			else t *= 3;
			t %= mdls;
			v >>= 1;
		}
		result = (result*t)%mdls;
	}
	cout << result << "\n";
	return 0;
}


#include <iostream>
#include<algorithm>
#include<math.h>
#define ll long long
#define M 1000000007

using namespace std;
int n,m,k;

ll fast_mod(ll b, ll e)
{
    if(b==1 || e==1) return b;
    else if(e==0) return 1;
    else
    {
        ll a = fast_mod(b,e/2)%M;
        if(e%2)
            return (b*a*a)%M;
        else
            return (a*a)%M;
    }
}

int main()
{
    string str;
    cin>>str;
    int ctr = 0;
    for(int i=0; i<str.size(); i++)
    {
        int n;
        if(str[i]>='A' && str[i]<='Z') n = str[i]-'A'+10;
        else if(str[i]>='a' && str[i]<='z') n = str[i] - 'a' + 36;
        else if(str[i]=='-') n=62;
        else n=63;
        //cout<<n<<endl;
        for(int i=0; i<6; i++)
        {
           //cout<< "1: "<< (n>>i) <<endl;
            //cout<<"2: "<< ((n>>i)&1)<<endl;
            if( (n>>i&1) == 0) ctr++;
        }
    }
    //cout<<ctr<<endl;
    cout<<fast_mod(3,ctr)<<endl;
    return 0;
}


#include <iostream>
#include<algorithm>
#include<math.h>
#define ll long long
#define MOD 1000000007

using namespace std;
int n,m,k;

ll pow(ll a, ll b)
{
    ll x=1,y=a;
    while(b > 0)
    {
        if(b%2 == 1)
        {
            x=(x*y);
            if(x>MOD) x%=MOD;
        }
        y = (y*y);
        if(y>MOD) y%=MOD;
        b /= 2;
    }
    return x;
}

int main()
{
    string str;
    cin>>str;
    int ctr = 0;
    for(int i=0; i<str.size(); i++)
    {
        int n;
        if(str[i]>='0' && str[i]<='9') n = str[i] - '0';
        else if(str[i]>='A' && str[i]<='Z') n = str[i]-'A'+10;
        else if(str[i]>='a' && str[i]<='z') n = str[i] - 'a' + 36;
        else if(str[i]=='-') n=62;
        else n=63;
        //cout<<n<<endl;
        for(int i=0; i<6; i++)
        {
           //cout<< "1: "<< (n>>i) <<endl;
            //cout<<"2: "<< ((n>>i)&1)<<endl;
            if( (n>>i&1) == 0) ctr++;
        }
    }
    //cout<<ctr<<endl;
    cout<<pow( 3,(ll)ctr)<<endl;
    return 0;
}


#include <iostream>
#include<algorithm>
#include<math.h>
#define ll long long
#define M 1000000007

using namespace std;
int n,m,k;

ll fast_mod(ll b, ll e)
{
    if(b==1 || e==1) return b;
    else if(e==0) return 1;
    else
    {
        ll a = fast_mod(b, e/2)%M;
        if(e%2)
            return (b*a*a)%M;
        else
            return (a*a)%M;
    }
}

int main()
{
    string str;
    cin>>str;
    int ctr = 0;
    for(int i=0; i<str.size(); i++)
    {
        int n;
        if(str[i]>='A' && str[i]<='Z') n = str[i]-'A'+10;
        else if(str[i]>='a' && str[i]<='z') n = str[i] - 'a' + 36;
        else if(str[i]=='-') n=62;
        else n=63;
        //cout<<n<<endl;
        for(int i=0; i<6; i++)
        {
           //cout<< "1: "<< (n>>i) <<endl;
            //cout<<"2: "<< ((n>>i)&1)<<endl;
            if( (n>>i&1) == 0) ctr++;
        }
    }
    //cout<<ctr<<endl;
    cout<<fast_mod(3,ctr)<<endl;
    return 0;
}


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

typedef long long ll;
typedef long double ld;
#define pb push_back
#define ff first
#define ss second

const ll mod=1e9+7;
string s;
ll ans=1,k;

main()
{
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cout<<mod<<" ";
	cin>>s;
	ll n=s.size();
	for(ll i=0;i<n;i++)
    {
        if(s[i]=='-')
            k=62;
        if(s[i]=='_')
            k=63;
        if(s[i]-'a'<=25 && s[i]-'a'>=0)
            k=36+s[i]-'a';
        if(s[i]-'A'<=25 && s[i]-'A'>=0)
            k=10+s[i]-'A';
        if(s[i]-'0'<=9 && s[i]-'0'>=0)
            k=s[i]-'0';
        for(ll j=32;j>=1;j/=2)
        {
            if(k>=j)
            {
                k-=j;

            }
            else
                ans=(ans*3)%mod;
        }
    }
    cout<<ans;
}


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

typedef long long ll;
typedef long double ld;
#define pb push_back
#define ff first
#define ss second

const ll mod=1e9+7;
string s;
ll ans=1,k;

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

	cin>>s;
	ll n=s.size();
	for(ll i=0;i<n;i++)
    {
        if(s[i]=='-')
            k=62;
        if(s[i]=='_')
            k=63;
        if(s[i]-'a'<=25 && s[i]-'a'>=0)
            k=36+s[i]-'a';
        if(s[i]-'A'<=25 && s[i]-'A'>=0)
            k=10+s[i]-'A';

        for(ll j=32;j>=1;j/=2)
        {
            if(k>=j)
            {
                k-=j;

            }
            else
                ans=(ans*3)%mod;
        }
    }
    cout<<ans;
}


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

typedef long long ll;
typedef long double ld;
#define pb push_back
#define ff first
#define ss second

const ll mod=1e9+7;
string s;
ll ans=1,k;

main()
{
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin>>s;
	ll n=s.size();
	for(ll i=0;i<n;i++)
    {
        if(s[i]=='-')
            k=62;
        if(s[i]=='_')
            k=63;
        if(s[i]-'a'<=25 && s[i]-'a'>=0)
            k=36+s[i]-'a';
        if(s[i]-'A'<=25 && s[i]-'A'>=0)
            k=10+s[i]-'A';
        if(s[i]-'0'<=9 && s[i]-'0'>=0)
            k=s[i]-'0';
        for(ll j=32;j>=1;j/=2)
        {
            if(k>=j)
            {
                k-=j;

            }
            else
                ans=(ans*3)%mod;
        }
    }
    cout<<ans;
}


#include <bits/stdc++.h>

#define forn(i, n) for(int i = 0; i < int(n); i++)
#define form(i,a,b) for(int i=a;i<=b;i++)
#define lli long long
#define mp make_pair
#define pi pair<int,int>
#define pli pair<lli,lli>
#define pb push_back
#define x first
#define y second
#define sl(x) scanf("%I64d",&x)
#define pl(x) printf("%I64d\n",x)
#define sf(x) sort(x.begin(),x.end(),func)
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}

const double EPS = 1e-24;
const lli mod = 1000000007ll;
const lli mod1 = 1000000009ll;
const lli mod2 = 1100000009ll;
const double PI = 3.14159265359;
int INF = 2147483645;
lli INFINF = 9223372036854775807;

template <class T>T Max2(T a,T b){return a<b?b:a;}
template <class T>T Min2(T a,T b){return a<b?a:b;}
template <class T>T Max3(T a,T b,T c){return Max2(Max2(a,b),c);}
template <class T>T Min3(T a,T b,T c){return Min2(Min2(a,b),c);}
template <class T>T Max4(T a,T b,T c,T d){return Max2(Max2(a,b),Max2(c,d));}
template <class T>T Min4(T a,T b,T c,T d){return Min2(Min2(a,b),Max2(c,d));}

using namespace std;
lli bit_count(lli _x){lli _ret=0;while(_x){if(_x%2==1)_ret++;_x/=2;}return _ret;}
lli bit(lli _mask,lli _i){return (_mask&(1<<_i))==0?0:1;}
lli powermod(lli _a,lli _b,lli _m){lli _r=1;while(_b){if(_b%2==1)_r=(_r*_a)%_m;_b/=2;_a=(_a*_a)%_m;}return _r;}
lli add(lli a,lli b,lli m){lli x=a+b;while(x>=m)x-=m;return x;}
lli sub(lli a,lli b,lli m){lli x=a-b;while(x<0)x+=m;return x;}
lli mul(lli a,lli b,lli m){lli x=a*b;x%=m;return x;}

//pi operator + (pi A, pi B) { return mp(A.x + B.x, A.y + B.y); }
lli operator * (pi A,pi B) { return A.x*B.y-A.y*B.x; }
typedef vector< int > vi;
typedef vector< vi > vvi;
int s[64];
void precompute(){
	forn(i,64){
		s[i] = 0;
		for(int j = i+1;j<64;j++){
			s[(i&j)]++;
		}
	}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
string a;
getline(cin,a);
int n = a.length();
precompute();
int h[n];
forn(i,n){
	if((a[i]-'0') <= 9 && (a[i]-'0'>0))
		h[i] = a[i] - '0';
	else if(a[i]-'A' >=0 && 'Z'-a[i]>=0)
		h[i] = 10 + a[i]-'A';
	else if(a[i]-'a' >=0 && 'z'-a[i]>=0)
		h[i]= 36+a[i]-'a';
	else if(a[i] == '-')
		h[i] = 62;
	else if(a[i] =='_')
		h[i] = 63;
}
lli ans = 1;
forn(i,n){
	ans = mul(ans,2*s[h[i]]+1,mod);
}
cout<<ans%mod;
}


#include <bits/stdc++.h>

#define forn(i, n) for(int i = 0; i < int(n); i++)
#define form(i,a,b) for(int i=a;i<=b;i++)
#define lli long long
#define mp make_pair
#define pi pair<int,int>
#define pli pair<lli,lli>
#define pb push_back
#define x first
#define y second
#define sl(x) scanf("%I64d",&x)
#define pl(x) printf("%I64d\n",x)
#define sf(x) sort(x.begin(),x.end(),func)
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}

const double EPS = 1e-24;
const lli mod = 1000000007ll;
const lli mod1 = 1000000009ll;
const lli mod2 = 1100000009ll;
const double PI = 3.14159265359;
int INF = 2147483645;
lli INFINF = 9223372036854775807;

template <class T>T Max2(T a,T b){return a<b?b:a;}
template <class T>T Min2(T a,T b){return a<b?a:b;}
template <class T>T Max3(T a,T b,T c){return Max2(Max2(a,b),c);}
template <class T>T Min3(T a,T b,T c){return Min2(Min2(a,b),c);}
template <class T>T Max4(T a,T b,T c,T d){return Max2(Max2(a,b),Max2(c,d));}
template <class T>T Min4(T a,T b,T c,T d){return Min2(Min2(a,b),Max2(c,d));}

using namespace std;
lli bit_count(lli _x){lli _ret=0;while(_x){if(_x%2==1)_ret++;_x/=2;}return _ret;}
lli bit(lli _mask,lli _i){return (_mask&(1<<_i))==0?0:1;}
lli powermod(lli _a,lli _b,lli _m){lli _r=1;while(_b){if(_b%2==1)_r=(_r*_a)%_m;_b/=2;_a=(_a*_a)%_m;}return _r;}
lli add(lli a,lli b,lli m){lli x=a+b;while(x>=m)x-=m;return x;}
lli sub(lli a,lli b,lli m){lli x=a-b;while(x<0)x+=m;return x;}
lli mul(lli a,lli b,lli m){lli x=a*b;x%=m;return x;}

//pi operator + (pi A, pi B) { return mp(A.x + B.x, A.y + B.y); }
lli operator * (pi A,pi B) { return A.x*B.y-A.y*B.x; }
typedef vector< int > vi;
typedef vector< vi > vvi;
int s[64];
void precompute(){
	forn(i,64){
		s[i] = 0;
		for(int j = i+1;j<64;j++){
			s[(i&j)]++;
		}
	}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
string a;
cin>>a;
int n = a.length();
precompute();
int h[n];
forn(i,n){
	if((a[i]-'0') <= 9 && (a[i]-'0'>0))
		h[i] = a[i] - '0';
	else if(a[i]-'A' >=0 && 'Z'-a[i]>=0)
		h[i] = 10 + a[i]-'A';
	else if(a[i]-'a' >=0 && 'z'-a[i]>=0)
		h[i]= 36+a[i]-'a';
	else if(a[i] == '-')
		h[i] = 62;
	else if(a[i] =='_')
		h[i] = 63;
}
lli ans = 1;
forn(i,n){
	ans = mul(ans,2*s[h[i]]+1,mod);
}
cout<<ans%mod;
}


#include <bits/stdc++.h>

#define forn(i, n) for(int i = 0; i < int(n); i++)
#define form(i,a,b) for(int i=a;i<=b;i++)
#define lli long long
#define mp make_pair
#define pi pair<int,int>
#define pli pair<lli,lli>
#define pb push_back
#define x first
#define y second
#define sl(x) scanf("%I64d",&x)
#define pl(x) printf("%I64d\n",x)
#define sf(x) sort(x.begin(),x.end(),func)
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}

const double EPS = 1e-24;
const lli mod = 1000000007ll;
const lli mod1 = 1000000009ll;
const lli mod2 = 1100000009ll;
const double PI = 3.14159265359;
int INF = 2147483645;
lli INFINF = 9223372036854775807;

template <class T>T Max2(T a,T b){return a<b?b:a;}
template <class T>T Min2(T a,T b){return a<b?a:b;}
template <class T>T Max3(T a,T b,T c){return Max2(Max2(a,b),c);}
template <class T>T Min3(T a,T b,T c){return Min2(Min2(a,b),c);}
template <class T>T Max4(T a,T b,T c,T d){return Max2(Max2(a,b),Max2(c,d));}
template <class T>T Min4(T a,T b,T c,T d){return Min2(Min2(a,b),Max2(c,d));}

using namespace std;
lli bit_count(lli _x){lli _ret=0;while(_x){if(_x%2==1)_ret++;_x/=2;}return _ret;}
lli bit(lli _mask,lli _i){return (_mask&(1<<_i))==0?0:1;}
lli powermod(lli _a,lli _b,lli _m){lli _r=1;while(_b){if(_b%2==1)_r=(_r*_a)%_m;_b/=2;_a=(_a*_a)%_m;}return _r;}
lli add(lli a,lli b,lli m){lli x=a+b;while(x>=m)x-=m;return x;}
lli sub(lli a,lli b,lli m){lli x=a-b;while(x<0)x+=m;return x;}
lli mul(lli a,lli b,lli m){lli x=a*b;x%=m;return x;}

//pi operator + (pi A, pi B) { return mp(A.x + B.x, A.y + B.y); }
lli operator * (pi A,pi B) { return A.x*B.y-A.y*B.x; }
typedef vector< int > vi;
typedef vector< vi > vvi;
int s[64];
void precompute(){
	forn(i,64){
		s[i] = 0;
		for(int j = i+1;j<64;j++){
			s[(i&j)]++;
		}
	}
	//forn(i,64) cout<<i<<" "<<s[i]<<endl;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
string a;
precompute();
cin>>a;
int n = a.length();
int h[n];
forn(i,n){
	if((a[i]-'0') <= 9 && (a[i]-'0'>0))
		h[i] = a[i] - '0';
	else if(a[i]-'A' >=0 && 'Z'-a[i]>=0)
		h[i] = 10 + a[i]-'A';
	else if(a[i]-'a' >=0 && 'z'-a[i]>=0)
		h[i]= 36+a[i]-'a';
	else if(a[i] == '-')
		h[i] = 62;
	else if(a[i] =='_')
		h[i] = 63;
	//cout<<h[i]<<" "<<s[h[i]]<<endl;
}
lli ans = 1;
forn(i,n){
	ans = mul(ans,2*s[h[i]]+1,mod);
}
cout<<ans%mod;
}


#include <bits/stdc++.h>

#define forn(i, n) for(int i = 0; i < int(n); i++)
#define form(i,a,b) for(int i=a;i<=b;i++)
#define lli long long
#define mp make_pair
#define pi pair<int,int>
#define pli pair<lli,lli>
#define pb push_back
#define x first
#define y second
#define sl(x) scanf("%I64d",&x)
#define pl(x) printf("%I64d\n",x)
#define sf(x) sort(x.begin(),x.end(),func)
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}

const double EPS = 1e-24;
const lli mod = 1000000007ll;
const lli mod1 = 1000000009ll;
const lli mod2 = 1100000009ll;
const double PI = 3.14159265359;
int INF = 2147483645;
lli INFINF = 9223372036854775807;

template <class T>T Max2(T a,T b){return a<b?b:a;}
template <class T>T Min2(T a,T b){return a<b?a:b;}
template <class T>T Max3(T a,T b,T c){return Max2(Max2(a,b),c);}
template <class T>T Min3(T a,T b,T c){return Min2(Min2(a,b),c);}
template <class T>T Max4(T a,T b,T c,T d){return Max2(Max2(a,b),Max2(c,d));}
template <class T>T Min4(T a,T b,T c,T d){return Min2(Min2(a,b),Max2(c,d));}

using namespace std;
lli bit_count(lli _x){lli _ret=0;while(_x){if(_x%2==1)_ret++;_x/=2;}return _ret;}
lli bit(lli _mask,lli _i){return (_mask&(1<<_i))==0?0:1;}
lli powermod(lli _a,lli _b,lli _m){lli _r=1;while(_b){if(_b%2==1)_r=(_r*_a)%_m;_b/=2;_a=(_a*_a)%_m;}return _r;}
lli add(lli a,lli b,lli m){lli x=a+b;while(x>=m)x-=m;return x;}
lli sub(lli a,lli b,lli m){lli x=a-b;while(x<0)x+=m;return x;}
lli mul(lli a,lli b,lli m){lli x=a*b;x%=m;return x;}

//pi operator + (pi A, pi B) { return mp(A.x + B.x, A.y + B.y); }
lli operator * (pi A,pi B) { return A.x*B.y-A.y*B.x; }
typedef vector< int > vi;
typedef vector< vi > vvi;
int s[64];
void precompute(){
	forn(i,64){
		s[i] = 0;
		for(int j = i+1;j<64;j++){
			s[(i&j)]++;
		}
	}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
precompute();
string a;
cin>>a;
int n = a.length();
int h[n];
forn(i,n){
	if((a[i]-'0') <= 9 && (a[i]-'0')>=0)
		h[i] = a[i] - '0';
	else if(a[i]-'A' >=0 && 'Z'-a[i]>=0)
		h[i] = 10 + a[i]-'A';
	else if(a[i]-'a' >=0 && 'z'-a[i]>=0)
		h[i]= 36+a[i]-'a';
	else if(a[i] == '-')
		h[i] = 62;
	else if(a[i] =='_')
		h[i] = 63;
}
lli ans = 1;
forn(i,n){
	ans = mul(ans,2*s[h[i]]+1,mod);
}
cout<<ans%mod;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#define LL long long
using namespace std;

inline int read(){
	char c=getchar(); int buf=0,f=1;
	while (c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while (c<='9'&&c>='0'){buf=buf*10+c-'0';c=getchar();}
	return buf*f;
}

const LL MAXN = 100000+9;
char pat[MAXN];
LL arr[MAXN],a[70],vout=1,MOD = 1000000;

inline void prework(){
	for (int i=0;i<64;i++)
		for (int j=0;j<64;j++)
			a[i&j]++;
	MOD = MOD*1000+7;
}

inline void transform(char *s, int n){
	for (int i=0;i<n;i++){
		if (s[i] >= '0' && s[i] <= '9') arr[i+1] = s[i]-'0';
		else if (s[i] >= 'a' && s[i] <= 'z') arr[i+1] = s[i]-'a'+36;
		else if (s[i] >= 'A' && s[i] <='Z') arr[i+1] = s[i]-'A'+10;
		else if (s[i] == '-') arr[i+1] = 62;
		else arr[i+1] = 63;
	}
}

int main(){
	prework();
	scanf("%s",pat);
	int len = strlen(pat);
	transform(pat,len);

	for (int i=1;i<=len;i++)
		vout = (vout*a[arr[i]])%MOD;

	cout<<vout;

	return 0;
}


#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;

inline int read(){
	char c=getchar(); int buf=0,f=1;
	while (c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while (c<='9'&&c>='0'){buf=buf*10+c-'0';c=getchar();}
	return buf*f;
}

const int MOD = 1000000000+7;
const int MAXN = 100000+9;
char pat[MAXN];
int arr[MAXN];
LL a[70],vout=1;

inline void prework(){
	for (int i=0;i<64;i++)
		for (int j=0;j<64;j++)
			a[i&j]++;
}

inline void transform(char *s, int n){
	for (int i=0;i<n;i++){
		if (s[i] >= '0' && s[i] <= '9') arr[i+1] = s[i]-'0';
		else if (s[i] >= 'a' && s[i] <= 'z') arr[i+1] = s[i]-'a'+36;
		else if (s[i] >= 'A' && s[i] <='Z') arr[i+1] = s[i]-'A'+10;
		else if (s[i] == '-') arr[i+1] = 62;
		else arr[i+1] = 63;
	}
}

int main(){
	prework();
	scanf("%s",pat);
	int len = strlen(pat);
	transform(pat,len);

	for (int i=1;i<=len;i++)
		vout = (vout*a[arr[i]])%MOD;

	cout<<vout;

	return 0;
}


#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;

inline int read(){
	char c=getchar(); int buf=0,f=1;
	while (c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while (c<='9'&&c>='0'){buf=buf*10+c-'0';c=getchar();}
	return buf*f;
}

const LL MAXN = 100000+9;
char pat[MAXN];
LL arr[MAXN],a[70],vout=1,MOD = 1000000;

inline void prework(){
	for (int i=0;i<64;i++)
		for (int j=0;j<64;j++)
			a[i&j]++;
	MOD = MOD*1000+7;
}

inline void transform(char *s, int n){
	for (int i=0;i<n;i++){
		if (s[i] >= '0' && s[i] <= '9') arr[i+1] = s[i]-'0';
		else if (s[i] >= 'a' && s[i] <= 'z') arr[i+1] = s[i]-'a'+36;
		else if (s[i] >= 'A' && s[i] <='Z') arr[i+1] = s[i]-'A'+10;
		else if (s[i] == '-') arr[i+1] = 62;
		else arr[i+1] = 63;
	}
}

int main(){
	prework();
	scanf("%s",pat);
	int len = strlen(pat);
	transform(pat,len);

	for (int i=1;i<=len;i++)
		vout = (vout*a[arr[i]])%MOD;

	cout<<vout;

	return 0;
}


/*بسم الله الرحمن الرحيم*/
#include <bits/stdc++.h>
using namespace std;
#define pi 3.1415926536
typedef long long ll;
typedef long double ld;
const int mod = 1000000007;
ll poww(ll a, ll b)
{
    if(b==0)return 1;
    ll res = 1;
    for(int i = 1; i<=b; ++i)
        res *= a;
    return res;
}
string x="0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyz-_";
int main(){
    string s;
    map<char,int>m;
    for(int i=0;i<64;i++)m[x[i]]=i;
    cin>>s;
    ll ans=1;
    for(int i=0;i<s.size();i++){
        ll a=m[s[i]],b=0;
        for(int j=0;j<64;j++){
            for(int k=0;k<64;k++){
                if((j&k)==a)b++;
            }
        }
        ans*=b;
        ans %= mod;
    }
    cout<<ans;
    return 0;
}


/*بسم الله الرحمن الرحيم*/
#include <bits/stdc++.h>
using namespace std;
#define pi 3.1415926536
typedef long long ll;
typedef long double ld;
const int mod = 1000000007;
ll poww(ll a, ll b)
{
    if(b==0)return 1;
    ll res = 1;
    for(int i = 1; i<=b; ++i)
        res *= a;
    return res;
}
int find(char x)
{
	if (x >= '0' && x <= '9')
		return x - '0';
	if (x >= 'A' && x <= 'Z')
		return x - 'A' + 10;
	if (x >= 'a' && x <= 'z')
		return x - 'a' + 36;
	if (x == '_')
		return 63;
	return 62;
}
int main(){
    string s;
    cin>>s;
    ll ans=1;
    for(int i=0;i<s.size();i++){
        ll a=find(s[i]),b=0;
        for(int j=0;j<64;j++){
            for(int k=0;k<64;k++){
                if((j&k)==a)b++;
            }
        }
        ans*=b;
        ans %= mod;
    }
    cout<<ans;
    return 0;
}


/*بسم الله الرحمن الرحيم*/
#include <bits/stdc++.h>
using namespace std;
#define pi 3.1415926536
typedef long long ll;
typedef long double ld;
const int mod = 1000000007;
ll poww(ll a, ll b)
{
    if(b==0)return 1;
    ll res = 1;
    for(int i = 1; i<=b; ++i)
        res *= a;
    return res;
}
string x="0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyz-_";
int main(){
    string s;
    map<char,int>m;
    for(int i=0;i<64;i++)m[x[i]]=i;
    cin>>s;
    ll ans=1;
    for(int i=0;i<s.size();i++){
        ll a=m[s[i]],b=0;
        for(int j=0;j<64;j++){
            for(int k=0;k<64;k++){
                if((j&k)==a)b++;
            }
        }
        ans*=b;
    }
    cout<<ans%mod;
    return 0;
}


#include<iostream>
#include<cstdio>
#define  mod 1000000007;
using namespace std;

int main()
{
	int i,j;
	int bin[10];
	long long ans[100];
	for(i=0;i<100;i++)
		ans[i]=1;
	int tmp;
	for(i=0;i<64;i++)
	{
		memset(bin,0,sizeof(bin));
		tmp=i;
		int c=0;
		while(tmp)
		{
			bin[c++]=tmp%2;
			tmp/=2;
		}

		for(j=0;j<=5;j++)
			if(bin[j]==0)
				ans[i]*=3;
	}

	for(i=0;i<64;i++)
		cout << ans[i] << " ";
	cout << endl;
	string input;
	cin >> input;
	long long sum=1;
	for(i=0;i<input.size();i++)
	{
		int num;
		if(input[i]>='0' && input[i]<='9')
			num=input[i]-'0';
		else if(input[i]>='A' && input[i]<='Z')
			num=input[i]-'A'+10;
		else if(input[i]>='a' && input[i]<='z')
			num=input[i]-'a'+36;
		else if(input[i]=='-')
			num=62;
		else
			num=63;

		//cout << ans[num] << endl;
		sum=(sum*ans[num])%mod;
	}

	cout << sum << endl;

	return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#define  mod 1000000007;
using namespace std;

int main()
{
	int i,j;
	int bin[10];
	long long ans[100];
	for(i=0;i<100;i++)
		ans[i]=1;
	int tmp;
	for(i=0;i<64;i++)
	{
		memset(bin,0,sizeof(bin));
		tmp=i;
		int c=0;
		while(tmp)
		{
			bin[c++]=tmp%2;
			tmp/=2;
		}

		for(j=0;j<=5;j++)
			if(bin[j]==0)
				ans[i]*=3;
	}

//	for(i=0;i<64;i++)
//		cout << ans[i] << " ";
//	cout << endl;
	string input;
	cin >> input;
	long long sum=1;
	for(i=0;i<input.size();i++)
	{
		int num;
		if(input[i]>='0' && input[i]<='9')
			num=input[i]-'0';
		else if(input[i]>='A' && input[i]<='Z')
			num=input[i]-'A'+10;
		else if(input[i]>='a' && input[i]<='z')
			num=input[i]-'a'+36;
		else if(input[i]=='-')
			num=62;
		else
			num=63;

		//cout << ans[num] << endl;
		sum=(sum*ans[num])%mod;
	}

	cout << sum << endl;

	return 0;
}


// Vayna and Label
#include <iostream>
#include <fstream>
#include <cmath>
#include <string>

using namespace std;

int zeros_in_binary(int n)
{
	int a=n;
	int count = 0;
	for (int i=0; i<6; i++)
	{
		if ((a>>i&1))
		{
			count++;
		}
	}
	return (6-count);
}

int main()
{
	string s;
	long long n=1;
	cin >> s;
	for (int i=0; i<s.length(); i++)
	{
		if ('0'<=s[i] && s[i]<='9')
		{
			n=n*(int)pow(3,zeros_in_binary((int)s[i]-(int)'0'))%1000000007;
		}
		else if ('A'<=s[i] && s[i]<='Z')
		{
			n=n*(int)pow(3,zeros_in_binary((int)s[i]-(int)'A'+10))%1000000007;
		}
		else if ('a'<=s[i] && s[i]<='z')
		{
			n=n*(int)pow(3,zeros_in_binary((int)s[i]-(int)'a'+36))%1000000007;
		}
		else if (s[i]=='-')
		{
			n=n*3%1000000007;
		}
	}
	cout << n << endl;
	return 0;
}


// Vayna and Label
#include <iostream>
#include <fstream>
#include <cmath>
#include <string>

using namespace std;

int zeros_in_binary(int n)
{
	int count = 0;
	while (n>0)
	{
		if ((n&1)==1)
		{
			count++;
		}
	}
	return 6-count;
}

int main()
{
	string s;
	long long n=1;
	getline(cin, s);
	for (int i=0; i<s.length(); i++)
	{
		if ((int)'0'<=(int)s[i] && (int)s[i]<=(int)'9')
		{
			n*=((long long)pow(2,1+zeros_in_binary((int)s[i]-(int)'0')))-1;
			n%=1000000007;
		}
		else if ((int)'A'<=(int)s[i] && (int)s[i]<=(int)'Z')
		{
			n*=((long long)pow(2,1+zeros_in_binary((int)s[i]-(int)'A'+10)))-1;
			n%=1000000007;
		}
		else if ((int)'a'<=(int)s[i] && (int)s[i]<=(int)'z')
		{
			n*=((long long)pow(2,1+zeros_in_binary((int)s[i]-(int)'a'+36)))-1;
			n%=1000000007;
		}
		else if (s[i]=='-')
		{
			n*=3;
			n%=1000000007;
		}
	}
	cout << n << endl;
	return 0;
}


// Vayna and Label
#include <iostream>
#include <fstream>
#include <cmath>
#include <string>

using namespace std;

int zeros_in_binary(int n)
{
	int count = 0;
	while (n>0)
	{
		if ((n&1)==1)
		{
			count++;
		}
	}
	return 6-count;
}

int main()
{
	string s;
	long long n=1;
	cin >> s;
	for (int i=0; i<s.length(); i++)
	{
		if ((int)'0'<=(int)s[i] && (int)s[i]<=(int)'9')
		{
			n*=((long long)pow(2,1+zeros_in_binary((int)s[i]-(int)'0')))-1;
			n%=1000000007;
		}
		else if ((int)'A'<=(int)s[i] && (int)s[i]<=(int)'Z')
		{
			n*=((long long)pow(2,1+zeros_in_binary((int)s[i]-(int)'A'+10)))-1;
			n%=1000000007;
		}
		else if ((int)'a'<=(int)s[i] && (int)s[i]<=(int)'z')
		{
			n*=((long long)pow(2,1+zeros_in_binary((int)s[i]-(int)'a'+36)))-1;
			n%=1000000007;
		}
		else if (s[i]=='-')
		{
			n*=3;
			n%=1000000007;
		}
	}
	cout << n << endl;
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
string con(char s){
    if (s == '>') return "1000";
    if (s == '<') return "1001";
    if (s == '+') return "1010";
    if (s == '-') return "1011";
    if (s == '.') return "1100";
    if (s == ',') return "1101";
    if (s == '[') return "1110";
    if (s == ']') return "1111";
}
int con(string s){
    int temp = 1;
    int ans = 0;
    for(int i=s.size()-1;i>=0;i--){
        ans += temp * (s[i] - '0');
        temp *= 2;
    }
    return ans;
}
const long long mod = 1e6 + 3;
int main(){
    string s;
    long long ans = 0;
    cin>>s;
    for(int i=0;i<s.size();i++){
        ans *= 16;
        ans += con(con(s[i]));
        ans %= mod;
    }
    cout<<ans;
}


#include<bits/stdc++.h>
using namespace std;
int conv(char s){
    if (s >= '0' and s <= '9'){
        return s - '0';
    }
    if (s >= 'A' and s <= 'Z'){
        return s - 'A' + 10;
    }
    if (s >= 'a' and s <= 'z'){
        return (s - 'a') + 36;
    }
    if (s == '-'){
        return 62;
    }
    return 63;
}
const int mod = 1e9 + 7;
int main(){
//    freopen("in.txt","r",stdin);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    string s;
    cin>>s;
    long long ans = 1;
    for(int i=0;i<s.size();i++){
        int temp = conv(s[i]);
        for(int j = 0;j<6;j++){
            if (temp % 2 == 0){
                ans = ans * 3 % mod;
            }
            temp >>= 1;
        }
    }
    cout<<ans;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;

const int mod=1e9+7;
int a[100];
ll ans=1;
string s;

inline int calc(char x){
	if(x=='-')return 62;
	if(x=='_')return 63;
	if(x>='0'&&x<='9')return x-'0';
	if(x>='A'&&x<='Z')return x-'A'+10;
	if(x>='a'&&x<='z')return x-'a'+36;
}

int main(){
	cin>>s;
	for(int i=0;i<=63;i++){
		for(int j=0;j<=63;j++){
			++a[i&j];
		}
	}
	for(int i=0;i<s.size();i++){
		ans=ans*a[calc(s[i])]%mod;
	}
	cout<<ans;
	return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;

const int mod=1e9+7;
int a[100];
ll ans=1;
string s;

inline int calc(char x){
	if(x=='-')return 62;
	if(x=='_')return 63;
	if(x>='0'&&x<='9')return x-'0';
	if(x>='A'&&x<='Z')return x-'A'+10;
	if(x>='a'&&x<='z')return x-'a'+36;
}

int main(){
	cin>>s;
	for(int i=0;i<=63;i++){
		for(int j=0;j<=63;j++){
			++a[i&j];
		}
	}
	for(int i=0;i<s.size();i++){
		ans=ans*a[calc(s[i])]%mod;
	}
	cout<<ans;
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
char s[1000005];
int a[100];
int b[100];
int mod=1e9+7;
typedef long long LL;
LL kc(LL a,LL b)
{
    LL ans=1;
    while(b)
    {
        if(b%2==1)
        {
            ans=(ans*a)%mod;
        }
        a=a*a%mod;
        b=b/2;
    }
    return ans;
}
void init()
{
    for(int i=0;i<64;i++)
    {
        for(int j=0;j<64;j++)
        {
            int k=i&j;
            b[k]++;
        }
    }
}
int main()
{
    init();
    while(~scanf("%s",s))
    {
        memset(a,0,sizeof(a));
        int len=strlen(s);
        for(int i=0;i<len;i++)
        {
             if(s[i]>='0'&&s[i]<='9')
             {
                 int k=s[i]-'0';
                 a[k]++;
             }
             else if(s[i]>='A'&&s[i]<='Z')
             {
                 int k=s[i]-'A'+10;
                 a[k]++;
             }
             else if(s[i]>='a'&&s[i]<='z')
             {
                 int k=s[i]-'a'+36;
                 a[k]++;
             }
             else if(s[i]=='-')
             {
                 int k=62;
                 a[k]++;
             }
             else if(s[i]=='_')
             {
                 int k=63;
                 a[k]++;
             }
        }
        LL ans=1;
        for(int i=0;i<64;i++)
        {
            if(a[i]!=0)
            {
                ans=(ans*(kc(b[i],a[i]))%mod)%mod;
      //          printf("%d %d\n",b[i],a[i]);
            }
        }
        printf("%I64d\n",ans);
    }
    return 0;
}


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
#include <string.h>

using namespace std;

#define SI(a)  scanf("%i", &(a));
#define SD(a)  scanf("%lf", &(a));
#define SLL(a)  scanf("%I64d", &(a));

#define PI(a)  printf("%i", (a));
#define PD(a)  printf("%lf", (a));
#define PLL(a)  printf("%I64d", (a));

#define max(a, b) (a) > (b) ? (a) : (b)
#define min(a, b) (a) < (b) ? (a) : (b)

int code(char c)
{
   char I[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_";

   for(int i = 0; i < 64; ++i)
	   if(I[i] == c)
		   return i;
   return -1;
}

void с(void)
{

	string str;
	long long unsigned res = 1, mod = 1e9+7;

	int L[] = {729, 243, 243, 81, 243, 81, 81,27,
		       243,  81,  81, 27,  81, 27, 27, 9,
			   243,  81,  81, 27,  81, 27, 27, 9,
			   81 ,  27,  27,  9,  27,  9,  9, 3,
			   243,  81,  81, 27,  81, 27, 27, 9,
			   81 ,  27,  27,  9,  27,  9,  9, 3,
			   81 ,  27,  27,  9,  27,  9,  9, 3,
			   27 ,   9,   9,  3,   9,  3,  3, 1};

    cin >> str;
	for(int i = 0; i < str.size(); ++i)
		res = (res * L[code( str[i] )] % mod);
	PI(res);
}

int main(void)
{
   с();
	//scanf("%i");
	//printf("%i");
}


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
#include <string.h>

using namespace std;

#define SI(a)  scanf("%i", &(a));
#define SD(a)  scanf("%lf", &(a));
#define SLL(a)  scanf("%I64d", &(a));

#define PI(a)  printf("%i", (a));
#define PD(a)  printf("%lf", (a));
#define PLL(a)  printf("%I64d", (a));

#define max(a, b) (a) > (b) ? (a) : (b)
#define min(a, b) (a) < (b) ? (a) : (b)

int code(char c)
{
   char I[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_";

   for(int i = 0; i < 64; ++i)
	   if(I[i] == c)
		   return i;
   return -1;
}

void c(void)
{

	string str;
	long long unsigned res = 1, mod = 1e9+7;

	int L[] = {729, 243, 243, 81, 243, 81, 81,27,
		       243,  81,  81, 27,  81, 27, 27, 9,
			   243,  81,  81, 27,  81, 27, 27, 9,
			   81 ,  27,  27,  9,  27,  9,  9, 3,
			   243,  81,  81, 27,  81, 27, 27, 9,
			   81 ,  27,  27,  9,  27,  9,  9, 3,
			   81 ,  27,  27,  9,  27,  9,  9, 3,
			   27 ,   9,   9,  3,   9,  3,  3, 1};

    cin >> str;
	for(int i = 0; i < str.size(); ++i)
		res = (res * L[code( str[i] )] % mod);
	PI(res);
}

int main(void)
{
   c();
	//scanf("%i");
	//printf("%i");
}


#include<stdio.h>
#include<string.h>
using namespace std;
const int MOD=1e9+7;
char s[100005];
int sum[65];
int change(char c)
{
    if(c>='0'&&c<='9')return c-'0';
    else if(c>='A'&&c<='Z')return c-'A'+10;
    else if(c>='a'&&c<='z')return c-'a'+36;
    else if(c=='-')return 62;
    else if(c=='_')return 63;
}
int main()
{
    for(int i=0;i<64;i++)
    {
        for(int j=0;j<64;j++)
        {
            sum[i&j]++;
        }
    }
    long long ans=1;
    scanf("%s",s);
    for(int i=0;i<strlen(s);i++)
    {
        ans=((ans*sum[change(s[i])]))%MOD;
    }
    printf("%d\n",ans);
}


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

int main()
{
#ifndef ONLINE_JUDGE
	//for getting input from input.txt
	freopen("input.txt", "r", stdin);
	//for writing output to output.txt
	freopen("output.txt", "w", stdout);
#endif

	//Program here
	int t;
	cin>>t;
	while(t--)
	{
		long long int a, b;
		long long int k, change = 0;
		cin>>a>>k;
		if((k+a)%2==0 && k<=a)
		{
			b = (a-k)/2;
		}
		else //if((k+a)%2 != 0)
		{
			change = abs(a-k);
		}
		cout<<change<<endl;
	}
}


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

int main()
{
#ifndef ONLINE_JUDGE
	//for getting input from input.txt
	freopen("input.txt", "r", stdin);
	//for writing output to output.txt
	freopen("output.txt", "w", stdout);
#endif

	//Program here
	int t;
	cin>>t;
	while(t--)
	{
		int a, b;
		int k, change = 0;
		cin>>a>>k;
		if((k+a)%2==0)
		{
			b = (k+a)/2;
		}
		else if((k+a)%2!=0)
		{
			change = abs(k-a);
		}
		cout<<change;
	}
}


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

int main()
{
// #ifndef ONLINE_JUDGE
// 	//for getting input from input.txt
// 	freopen("input.txt", "r", stdin);
// 	//for writing output to output.txt
// 	freopen("output.txt", "w", stdout);
// #endif

	//Program here
	int t;
	cin>>t;
	while(t--)
	{
		int a, b;
		int k, change = 0;
		cin>>a>>k;
		if((k+a)%2==0)
		{
			b = (k+a)/2;
		}
		else if((k+a)%2!=0)
		{
			change = abs(k-a);
		}
		cout<<change<<endl;
	}
}


#include <iostream>
using namespace std;
int main()
{
	int T;
	cin>>T;
	while (T--) {
		int n,k;
		cin>>n>>k;
		if (n<=k) cout<<k-n<<"\n";
		else cout<<(n-k)%2<<"\n";
	}
}


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

int main()
{
#ifndef ONLINE_JUDGE
	//for getting input from input.txt
	freopen("input.txt", "r", stdin);
	//for writing output to output.txt
	freopen("output.txt", "w", stdout);
#endif

	//Program here
	int t;
	cin>>t;
	while(t--)
	{
		long long int a, b;
		long long int k, change = 0;
		cin>>a>>k;
		if((k+a)%2==0 && k<=a)
		{
			b = (k+a)/2;
		}
		else //if((k+a)%2 != 0)
		{
			change = abs(k-a);
		}
		cout<<change<<endl;
	}
}


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

int main()
{
#ifndef ONLINE_JUDGE
	//for getting input from input.txt
	freopen("input.txt", "r", stdin);
	//for writing output to output.txt
	freopen("output.txt", "w", stdout);
#endif

	//Program here
	int t;
	cin>>t;
	while(t--)
	{
		long long int a, b;
		long long int k, change = 0;
		cin>>a>>k;
		if((k+a)%2==0 && k<a)
		{
			b = (k+a)/2;
		}
		else //if((k+a)%2 != 0)
		{
			change = abs(k-a);
		}
		cout<<change<<endl;
	}
}


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

int main()
{
#ifndef ONLINE_JUDGE
	//for getting input from input.txt
	freopen("input.txt", "r", stdin);
	//for writing output to output.txt
	freopen("output.txt", "w", stdout);
#endif

	//Program here
	int t;
	cin>>t;
	while(t--)
	{
		int a, b;
		int k, change = 0;
		cin>>a>>k;
		if((k+a)%2==0&&k<a)
		{
			b = (k+a)/2;
		}
		else //if((k+a)%2 != 0)
		{
			change = abs(k-a);
		}
		cout<<change<<endl;
	}
}


// Example program
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int a, k;
        cin >> a >> k;
        int total  = 0;

        if(a >= k)
            total += a % 2;
        else
            total += k - a;
        cout << total << endl;
    }
}


// Example program
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int a, k;
        cin >> a >> k;
        int total  = 0;

        if(a > k)
            total += a % 2;
        else
            total += k - a;
        cout << total << endl;
    }
}


// Example program
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int a, k;
        cin >> a >> k;
        int total  = 0;

        if(a > k)
            total += a % 2;
        else
            total += k - a + k % 2;
        cout << total << endl;
    }
}


// Example program
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int a, k;
        cin >> a >> k;
        int total  = 0;

        if(a > k)
            total += a % 2;
        else
            total += k - a + a % 2;
        cout << total << endl;
    }
}


// Example program
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while(t--)
    {
        int a, k;
        cin >> a >> k;
        int total  = 0;

        if(a >= k)
            total = a % 2;
        else
            total = k - a;
        cout << total << endl;
    }
}


// Example program
#include <iostream>
#include <string>

int main()
{
  int t;
  cin >> t;
  while(t--)
  {
      int n, k;
      cin >> n >> k;

      // abs(2b - a) = k

      int total = 0;
      if(n > k)
        total += (n % 2 ^ k % 2)
      else
        total += k - n;

     cout << total << endl;
  }
}


// Example program
#include <iostream>
#include <string>
using namespace std;

int main()
{
  int t;
  cin >> t;
  while(t--)
  {
      int n, k;
      cin >> n >> k;

      // abs(2b - a) = k

      int total = (n % 2 ^ k % 2);
      n += total;
      if(n <= k)
        total += k - n;

     cout << total << endl;
  }
}


// Example program
#include <iostream>
#include <string>

int main()
{
  int t;
  cin >> t;
  while(t--)
  {
      int n, k;
      cin >> n >> k;

      // abs(2b - a) = k

      int total = (n % 2 ^ k % 2);

      if(n <= k)
        total += k - n;

     cout << total << endl;
  }
}


// Example program
#include <iostream>
#include <string>
using namespace std;

int main()
{
  int t;
  cin >> t;
  while(t--)
  {
      int n, k;
      cin >> n >> k;

      // abs(2b - a) = k

      int total = (n % 2 ^ k % 2);

      if(n <= k)
        total += k - n;

     cout << total << endl;
  }
}


#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define gear puts("pasito")
#define pb push_back
#define mp make_pair
#define ps insert
#define read freopen("input.txt","r",stdin)
#define write freopen("output.txt","w",stdout)
#define mem(v,a) memset(v,int(a),sizeof(v))
#define FOR(i,a,b)     for(int i = (a) ; i < int(b) ;i++)
#define FORLL(i,a,b)   for( (long long)) i = (a) ; i < (long long) (b) ;i++)
#define run auto
#define ll long long
#define scll(a) scanf("%lld",&a);
#define sc(a) scanf("%d",&a);
///////////////////
int main() {

	ll t,n;
	cin>>t;
	while(t--){
		ll n,k;
		scll(n);
		scll(k);
		if(n<k){
			printf("%lld\n",(abs(n-k)));
		}else{
			if((n-k)%2==0){
				printf("%lld\n",0ll );
			}else{
				printf("%lld\n",1ll );
			}

		}

	}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define gear puts("pasito")
#define pb push_back
#define mp make_pair
#define ps insert
#define read freopen("input.txt","r",stdin)
#define write freopen("output.txt","w",stdout)
#define mem(v,a) memset(v,int(a),sizeof(v))
#define FOR(i,a,b)     for(int i = (a) ; i < int(b) ;i++)
#define FORLL(i,a,b)   for( (long long)) i = (a) ; i < (long long) (b) ;i++)
#define run auto
#define ll long long
#define scll(a) scanf("%lld",&a);
#define sc(a) scanf("%d",&a);
///////////////////
int main() {

	ll t,n;
	cin>>t;
	while(t--){
		ll a,n;
		scll(a);
		scll(n);
		if((a+n)%2==0&&a!=0){
			printf("%lld\n",0ll );
		}else{
			printf("%lld\n",(abs(a-n)));
		}
	}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define gear puts("pasito")
#define pb push_back
#define mp make_pair
#define ps insert
#define read freopen("input.txt","r",stdin)
#define write freopen("output.txt","w",stdout)
#define mem(v,a) memset(v,int(a),sizeof(v))
#define FOR(i,a,b)     for(int i = (a) ; i < int(b) ;i++)
#define FORLL(i,a,b)   for( (long long)) i = (a) ; i < (long long) (b) ;i++)
#define run auto
#define ll long long
#define scll(a) scanf("%lld",&a);
#define sc(a) scanf("%d",&a);
///////////////////
int main() {

	ll t,n;
	cin>>t;
	while(t--){
		ll a,n;
		scll(a);
		scll(n);
		if(a%2==0&&a!=0&&n==0){
			printf("%lld\n",0ll );
		}else{
			printf("%lld\n",(abs(a-n)));
		}
	}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define gear puts("pasito")
#define pb push_back
#define mp make_pair
#define ps insert
#define read freopen("input.txt","r",stdin)
#define write freopen("output.txt","w",stdout)
#define mem(v,a) memset(v,int(a),sizeof(v))
#define FOR(i,a,b)     for(int i = (a) ; i < int(b) ;i++)
#define FORLL(i,a,b)   for( (long long)) i = (a) ; i < (long long) (b) ;i++)
#define run auto
#define ll long long
#define scll(a) scanf("%lld",&a);
#define sc(a) scanf("%d",&a);
///////////////////
int main() {

	ll t,n;
	cin>>t;
	while(t--){
		ll a,n;
		scll(a);
		scll(n);
		if((a+n)%2==0&&a>n){
			printf("%lld\n",0ll );
		}else{
			printf("%lld\n",(abs(a-n)));
		}
	}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define gear puts("pasito")
#define pb push_back
#define mp make_pair
#define ps insert
#define read freopen("input.txt","r",stdin)
#define write freopen("output.txt","w",stdout)
#define mem(v,a) memset(v,int(a),sizeof(v))
#define FOR(i,a,b)     for(int i = (a) ; i < int(b) ;i++)
#define FORLL(i,a,b)   for( (long long)) i = (a) ; i < (long long) (b) ;i++)
#define run auto
#define ll long long
#define scll(a) scanf("%lld",&a);
#define sc(a) scanf("%d",&a);
///////////////////
int main() {

	ll t,n;
	cin>>t;
	while(t--){
		ll a,n;
		scll(a);
		scll(n);
		if(n==0&&(a%2==0)){
			printf("%lld\n",0ll );
		}else{
			printf("%lld\n",(abs(a-n)));
		}

	}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define gear puts("pasito")
#define pb push_back
#define mp make_pair
#define ps insert
#define read freopen("input.txt","r",stdin)
#define write freopen("output.txt","w",stdout)
#define mem(v,a) memset(v,int(a),sizeof(v))
#define FOR(i,a,b)     for(int i = (a) ; i < int(b) ;i++)
#define FORLL(i,a,b)   for( (long long)) i = (a) ; i < (long long) (b) ;i++)
#define run auto
#define ll long long
#define scll(a) scanf("%lld",&a);
#define sc(a) scanf("%d",&a);
///////////////////
int main() {

	ll t,n;
	cin>>t;
	while(t--){
		ll a,n;
		scll(a);
		scll(n);
		if(a%2==0&&a!=0){
			printf("%lld\n",0ll );
		}else{
			printf("%lld\n",(abs(a-n)));
		}
	}
    return 0;
}


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

int main()
{
    int t;
    cin>>t;
    int kq[t+1]={},i,j;
    for(i=1;i<=t;++i){
        int n,k;
        cin>>n>>k;
        if(n==1&&k==0)kq[i]=1;
        else if(k==0||n>=k)kq[i]=0;
        else {
            kq[i]=k-n;
        }
    }
    for(i=1;i<=t;++i){
        cout<<kq[i]<<endl;
    }
}


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

int main()
{
    int t;
    cin>>t;
    int kq[t+1]={},i,j;
    for(i=1;i<=t;++i){
        int n,k;
        cin>>n>>k;
        int n2;
        n2=n-k;
        if(n2%2==0){
            if(n2>=0)kq[i]=0;
            else kq[i]=n2*(-1);
        }
        else {
            if(n2>=0)kq[i]=1;
            else kq[i]=n2*(-1);
        }
    }
    for(i=1;i<=t;++i){
        cout<<kq[i]<<endl;
    }
}


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

int main()
{
    int t;
    cin>>t;
    int kq[t+1]={},i,j;
    for(i=1;i<=t;++i){
        int n,k;
        cin>>n>>k;
        if(n>=k){
            if(n%2==0)kq[i]=0;
            else kq[i]=1;
        }
        else kq[i]+=k-n;
        if(k%2==0);
        else ++kq[i];
    }
    for(i=1;i<=t;++i){
        cout<<kq[i]<<endl;
    }
}


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

int main()
{
    int t;
    cin>>t;
    int kq[t+1]={},i,j;
    for(i=1;i<=t;++i){
        int n,k;
        cin>>n>>k;
        int n2;
        n2=n-k;
        if(k==0){
            if(n%2!=0){
                ++kq[i];
            }
        }
        else if(n2>=0&&n2%2==0){
            kq[i]=0;
        }
        else kq[i]=abs(n2);
    }
    for(i=1;i<=t;++i){
        cout<<kq[i]<<endl;
    }
}


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

int main()
{
    int t;
    cin>>t;
    int kq[t+1]={},i,j;
    for(i=1;i<=t;++i){
        int n,k;
        cin>>n>>k;
        if(k==0||n>=k)kq[i]=0;
        else {
            kq[i]=k-n;
        }
    }
    for(i=1;i<=t;++i){
        cout<<kq[i]<<endl;
    }
}


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

int main()
{
    int t;
    cin>>t;
    int kq[t+1]={},i,j;
    for(i=1;i<=t;++i){
        int n,k;
        cin>>n>>k;
        int n2;
        n2=n-k;
        if(n2>=0&&n2%2==0){
            kq[i]=0;
        }
        else kq[i]=abs(n2);
    }
    for(i=1;i<=t;++i){
        cout<<kq[i]<<endl;
    }
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll n,k; cin>>n>>k;
        if(n==k) {cout<<0<<endl; continue;}
        if(n+k<2)
        {
        	if(k==0) cout<<2-n<<endl;
        	else cout<<1<<endl;
        	continue;
        }
        if(k>n) cout<<k-n<<endl;
        else cout<<0<<endl;
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll n,k; cin>>n>>k;
        if(n+k<2)
        {
        	if(k==0) cout<<2-n<<endl;
        	else cout<<1<<endl;
        	continue;
        }
        if(k>n) cout<<k-n<<endl;
        else cout<<0<<endl;
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll n,k; cin>>n>>k;
        if(n==k) {cout<<0<<endl; continue;}
        if(n+k<=2*n&&(n+k)%2==0)
        {
        	cout<<0<<endl; continue;
        }
        if(n-k<=2*n&&(n-k)%2==0&&n-k>=0)
        {
        	cout<<0<<endl; continue;
        }
        if((n+k)%2!=0&&n>k) {cout<<1<<endl; continue;}
        cout<<k-n<<endl;
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll x[3]; ll y[3];
        for(ll i=0;i<3;i++) cin>>x[i]; for(ll i=0;i<3;i++) cin>>y[i];
        ll sum=0; ll m=min(x[2],y[1]);
    	sum+=2*m; x[2]-=m; y[1]-=m;
    	if(x[2]==0)
    	{
    		m=min(y[2],x[0]); y[2]-=m; x[0]-=m;
    		if(y[2]==0)
    		{
    			cout<<sum<<endl; continue;
    		}
    		else
    		{
    			sum-=2*y[2]; cout<<sum<<endl; continue;
    		}
    	}
    	else
    	{
    		m=min(x[2],y[2]); x[2]-=m; y[2]-=m;
    		m=min(x[2],y[0]); x[2]-=m; y[0]-=m;
    		m=min(y[2],x[0]); y[2]-=m; x[0]-=m;
    		if(x[2]==0)
    		{
    			if(y[2]==0) {cout<<sum<<endl; continue;}
    			else
    			{
    				sum-=2*min(y[2],x[1]); cout<<sum<<endl; continue;
    			}
    		}
    		else
    		{
    			sum-=2*min(x[2],y[1]); cout<<sum<<endl; continue;
    		}
    	}
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll n,k; cin>>n>>k;
        if(n==k) {cout<<0<<endl; continue;}
        ll m1=(n+k)/2; ll m2=(n-k)/2;
        if((m1>=1&&m1<=n)||(m2>=1&&m2<=n)) {cout<<0<<endl; continue;}
        if(m1<1)
        {
        	if(k==0) cout<<2-n<<endl;
        	else cout<<1<<endl;
        	continue;
        }
        cout<<k-n<<endl;
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll n,k; cin>>n>>k;
        if(n==k) {cout<<0<<endl; continue;}
        if(n+k<=2*n&&n+k>=2)
        {
        	cout<<0<<endl; continue;
        }
        if(n-k<=2*n&&n-k>=2)
        {
        	cout<<0<<endl; continue;
        }
        if(n+k<2)
        {
        	if(k==0) cout<<2-n<<endl;
        	else cout<<1<<endl; continue;
        }
        cout<<k-n<<endl;
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
#define fastAF ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long
#define ull unsigned ll
#define ld long double
#define pb push_back
#define pf push_front
#define dll deque<ll>
#define vll vector<ll>
#define pll pair<ll,ll>
#define mapll map<ll,ll>
#define endl "\n"
#define all(v) v.begin(),v.end()
#define deb(x) cout<<x
#define ms(a,x) memset(a,x,sizeof(a))
using namespace std;
void swap(auto*,auto*);
int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    fastAF
    ll testcase; cin>>testcase;
    while(testcase--)
    {
        ll n,k; cin>>n>>k;
        if(n==k) {cout<<0<<endl; continue;}
        if(n+k<=2*n&&n+k>2)
        {
        	cout<<0<<endl; continue;
        }
        if(n-k<=2*n&&n-k>2)
        {
        	cout<<0<<endl; continue;
        }
        if(n+k<2)
        {
        	if(k==0) cout<<2-n<<endl;
        	else cout<<1<<endl; continue;
        }
        cout<<k-n<<endl;
    }
}
void swap(auto &a,auto &b)
{
    auto temp=a; a=b; b=temp;
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     if(n<=k){cout<<k-n<<endl;continue;}
     if(n%2==k%2){cout<<0<<endl;continue;}
     cout<<1<<endl;
    }
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     if(n==1&&k==0){cout<<1<<endl;continue;}
	 }
     int ans=max(0,int(k-n));
     cout<<ans<<endl;
    }
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     if(n==1&&k==0){cout<<1<<endl;continue;}
	 }
	 if(n-k==1){cout<<1<<endl;continue;}
     int ans=max(0,int(k-n));
     cout<<ans<<endl;
    }
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     if(n==1&&k==0){cout<<1<<endl;continue;}
	 if(n-k==1){cout<<1<<endl;continue;}
     int ans=max(0,int(k-n));
     cout<<ans<<endl;
    }
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     if(n==1&&k==0){cout<<1<<endl;continue;}
     int ans=max(0,int(k-n));
     cout<<ans<<endl;
    }
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     int ans=max(0,int(k-n));
     cout<<ans<<endl;
    }
}


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

#define ll long long int
#define ull unsigned long long int
#define ldb long double

#define forz(i, n) for (int i = 0; i < n; i++)
#define fore(i, m, n) for (int i = m; i <= n; i++)
#define rforz(i, n) for (int i = n - 1; i >= 0; i--)
#define rfore(i, m, n) for (int i = n; i >= m; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)

//1.gcd(x, y);

//2.Instead of push_back() in STL emplace_back can be used

/*3.  Use of strlen() can be avoided by:
for (i=0; s[i]; i++)
{
}
//4. loop breaks when the character array ends. */

//5. Number of digits in N =floor(log10(N)) + 1;

//6. copy_n(source, 5, target);::copies 5 elements from source->target

/*7. int a[5] = {0};
char c[3] = {0};

// changes a to {10, 11, 12, 13, 14}
iota(a, a+5, 10);
iota(c, c+3, 'a'); // {'a', 'b', 'c'}*/

//8.binary_search(startaddress, endaddress, valuetofind)-> exists in c++

//9. Creates a vector of size N and values as 0.::vector<int> v(N, 0);

//TO DO LIST
//1
/*trees and graphs, such as the Kruskal and Prim algorithms, AVL trees,
tries, topological sort, traversals on all kinds of trees, and searches in graphs.*/
//dp

struct Node{
	int val;
	Node * next;
	Node(int x): val(x), next(NULL){}
};

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

char c(int i)
{
	return "abcdefghijklmnopqrstuvwxyz"[i%26];
}

void addEdge(vector<int> adj[], int u, int v)
{
    adj[u].push_back(v);
    adj[v].push_back(u);
}

int main(){
    fastio;
    ll tt;tt=1;
    cin>>tt;
    while(tt--){
     ll n,k;
     cin>>n>>k;
     int ans=max(0,k-n);
     cout<<ans<<endl;
    }
}


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

int main( ){

    int tjk ;

    cin >> tjk ;

    while( tjk -- ){

        int n , k ;

        cin >> n >> k ;

        if( n >= k ){

            cout << n % 2 << endl ;

        }else{

            cout << k - n << endl ;

        }

    }

}


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

int main( ){

    int tjk ;

    cin >> tjk ;

    while( tjk -- ){

        int n , k ;

        cin >> n >> k ;

        if( n == 1 ){

            cout << 1 << endl ;

        }else{

            cout << min( abs( n - k ) , k ) << endl ;

        }

    }

}


# include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define pf push_front
# define speed ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std ;
int N = 3e5 + 7 ;
ll N1 = 1e8 + 7 ;
int main( ){
    speed ;
    ll TJK = 1 ;
    cin >> TJK ;
    while( TJK -- ){
        int n , k ;
        cin >> n >> k ;
        if( n <= k ){
            cout << k - n << endl ;
        }
        else if( n > k ){
            if( k == 0 ){
                cout << n % 2 << endl ;
            }else{
                int u = n / k ;
                int h = n % k ;
                if( k % 2 == 0 ){
                    int f1 = k - h ;
                    cout << min( h , f1 ) << endl ;
                }else{
                    if( u % 2 == 0 ){
                        cout << k - h << endl ;
                    }else{
                        cout << h << endl ;
                    }
                }
            }
        }
    }
}


# include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define pf push_front
# define speed ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std ;
int N = 3e5 + 7 ;
ll N1 = 1e8 + 7 ;
int main( ){
    speed ;
    ll TJK = 1 ;
    cin >> TJK ;
    while( TJK -- ){
        int n , k ;
        cin >> n >> k ;
        if( n <= k ){
            cout << k - n << endl ;
        }
        else if( n > k ){
            if( k == 0 ){
                cout << n % 2 << endl ;
            }else{
                int u = n - k ;
                cout << u % 2 << endl ;
            }
        }
    }
}


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

int main( ){

    int tjk ;

    cin >> tjk ;

    while( tjk -- ){

        int n , k ;

        cin >> n >> k ;

        if( n <= k ){

            cout << k - n << endl ;

        }else{

            if( n % 2 == k % 2 && n % 2 == 0){

                cout << 0 << endl ;

            }else{

                cout << 1 << endl ;

            }

        }

    }

}


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

int main( ){

    int tjk ;

    cin >> tjk ;

    while( tjk -- ){

        int n , k ;

        cin >> n >> k ;

        if( n <= k ){

            cout << k - n << endl ;

        }else{

            if( n % 2 == k % 2 ){

                cout << 0 << endl ;

            }else{

                cout << 1 << endl ;

            }

        }

    }

}


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

int main( ){

    int tjk ;

    cin >> tjk ;

    while( tjk -- ){

        int n , k ;

        cin >> n >> k ;

        if( n > k ){

            cout << n % 2 << endl ;

        }else{

            cout << k - n << endl ;

        }

    }

}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        double z; int x;
        if(n>k && k != 0) {
            z = (double(n)-double(k))/2.0;
            z = ceil(z);
            x = (int)(z);
            cout << x << endl;
            continue;
        }
        if(k == 0) {
            if((n / 2) > 0) {
                cout << 0 << endl;
            }
            else {
                cout << n << endl;
            }
            continue;
        }
        if(k>=n) {
            cout << k-n << endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        double z; int x;
        if(n>k && k != 0) {
            z = (double(n)-double(k))/2.0;
            z = ceil(z);
            x = (int)(z);
            cout << x << endl;
        }
        if(k == 0) {
            if((n / 2) > 0) {
                cout << 0 << endl;
            }
            else {
                cout << n << endl;
            }
        }
        if(k>=n) {
            cout << k-n << endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        if(n < k) {
            cout << k-n << endl;
        }
        else {
            if(n % 2 == k%2) cout << 0 << endl;
            else cout << 1 << endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        int x = n/2;
        int y = abs(abs(x) -abs(n-x));
        if(( y == k)){
            cout << 0 << endl;
        }
        else {
            if(k < n) {
                x = abs(n-2*k);
                cout << x << endl;
            }
            else {
                x = abs(k-n);
                cout << x << endl;
            }
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        if(n/2 > k) {
            cout << 0 << endl;
        }
        else {
            int s = abs(n-k);
            cout << s << endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        if(n < k) {
            cout << k-n << endl;
        }
        else {
            if(n% 2 == 0 && k%2 == 0) cout << 0 << endl;
            else cout << 1 << endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
#define rep(a, y, z) for(int i=a; i<y; i+=z)
#define int long long int
#define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

int32_t main() {
    int t; cin >> t;
    while(t--) {
        int n, k; cin >> n >> k;
        int x = ceil(n/2);
        int y = abs(abs(x) -abs(n-x));
        if(( y == k)){
                cout << 0 << endl;
            }

        else {
            if(k < n) {
                if(k != 0) {
                    x = abs(n-2*k);
                    cout << x << endl;
                }
                else {
                    if(n%2 != 0) {
                        cout << 1 << endl;
                    }
                    else {
                        cout << 0 << endl;
                    }
                }
            }

            else {
                x = abs(k-n);
                cout << x << endl;
            }
        }
    }
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << 1 << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n == 0  )
                        cout << k << endl;
                  else if( n <= k )
                        cout << k-n << endl;
                  else
                        cout << 0 << endl;

            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << 1 << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n == 0  )
                        cout << k << endl;
                  else if( n <= k )
                        cout << k-n << endl;
                  else
                  {
                        if( k%2 != 0 )
                        {
                              if( n%2 != 0 )
                                    cout << 0 << endl;
                              else
                                    cout << 1 << endl;
                        }
                        else
                        {
                              if( n%2 != 0 )
                                    cout << 1 << endl;
                              else
                                    cout << 0 << endl;
                        }
                  }

            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << 1 << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n == 0  )
                        cout << k << endl;
                  else if( n <= k )
                        cout << k-n << endl;
                  else
                  {
                        if( k%2 != 0 )
                        {
                              if( n%2 != 0 )
                                    cout << 0 << endl;
                              else
                                    cout << 1 << endl;
                        }
                        else
                        {
                              if( n%2 != 0 )
                                    cout << 1 << endl;
                              else
                                    coutt << 0 << endl;
                        }
                  }

            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << n << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n >= k )
                        cout << 0 << endl;
                  else
                  {
                        if( n <= k/2 )
                              cout << n << endl;
                        else
                              cout << k-n << endl;
                  }

            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << n << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n <= k )
                        cout << (k-n) << endl;
                  else
                        cout << 0 << endl;
            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << n << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n == 0  )
                        cout << n << endl;
                  else if( n <= k )
                        cout << k-n << endl;
                  else
                        cout << 0 << endl;

            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << n << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n == 0  )
                        cout << k << endl;
                  else if( n <= k )
                        cout << k-n << endl;
                  else
                        cout << 0 << endl;

            }
      }
      return 0;
}


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

int main(){

      int T;
      cin >> T;

      while( T-- ) {

            int n, k;
            cin >> n >> k;

            if( k == 0 )
            {
                  if( n%2 != 0 )
                        cout << n << endl;
                  else
                        cout << 0 <<endl;
            }
            else
            {
                  if( n == 0  )
                        cout << n << endl;
                  else if( n <= k )
                        cout << k-n < endl;
                  else
                        cout << 0 << endl;

            }
      }
      return 0;
}


#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

#define endl "\n"
int t,A,k;

void solve(){

    //B>A이면 B==A여도 똑같은듯

    //두번째 경우는 무조건 A>k일때네
    if(A<=k){
        cout << k-A << endl;

    }else if(A>k){
        if(A%2==k%2){
            cout << 1 << endl;
        }else{
            cout << 0 << endl;
        }
    }

}

int main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    //OB와 AB사이의 거리가 같은 B를 찾으려고한다.
    //B를 못찾을때 A를 증감시켜볼수있다.
    cin >> t;
    while(t--){
        cin >> A >> k;
        //AB,OB거리 차이의 절대값이 k인걸 찾으려면 몇 step?
        //A와 0위치를 준다.
        solve();

    }

}


#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

#define endl "\n"
int t,A,k;

void solve(){

    //B>A이면 B==A여도 똑같은듯
    if(k==0){
        if(A%2==1)
            cout << 1 << endl;
        else
            cout << 0 << endl;
        return;
    }

    int ans1 = (int)abs(k-A);
    int ans2 = (int)1e6;

    //두번째 경우는 무조건 A>k일때네
    if(A>k){
        if(A-k==1){
            ans2=1;
        }else{
            ans2=0;
        }
    }

    cout << min(ans2,ans1) << endl;

}

int main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    //OB와 AB사이의 거리가 같은 B를 찾으려고한다.
    //B를 못찾을때 A를 증감시켜볼수있다.
    cin >> t;
    while(t--){
        cin >> A >> k;
        //AB,OB거리 차이의 절대값이 k인걸 찾으려면 몇 step?
        //A와 0위치를 준다.
        solve();

    }

}


#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

#define endl "\n"
int t,A,k;

void solve(){

    //B>A이면 B==A여도 똑같은듯

    //두번째 경우는 무조건 A>k일때네
    if(A<=k){
        cout << k-A << endl;

    }else if(A>k){
        if(A%2==k%2){
            cout << 0 << endl;
        }else{
            cout << 1 << endl;
        }
    }

}

int main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    //OB와 AB사이의 거리가 같은 B를 찾으려고한다.
    //B를 못찾을때 A를 증감시켜볼수있다.
    cin >> t;
    while(t--){
        cin >> A >> k;
        //AB,OB거리 차이의 절대값이 k인걸 찾으려면 몇 step?
        //A와 0위치를 준다.
        solve();

    }

}


#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

#define endl "\n"
int t,A,k;

void solve(){

    //B>A이면 B==A여도 똑같은듯
    if(k==0){
        if(A%2==1)
            cout << 1 << endl;
        else
            cout << 0 << endl;
    }else if(A<=k){
        cout << (int)abs(A-k) << endl;
    }else{
        cout << (int)abs(2*k-A) << endl;
    }

}

int main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    //OB와 AB사이의 거리가 같은 B를 찾으려고한다.
    //B를 못찾을때 A를 증감시켜볼수있다.
    cin >> t;
    while(t--){
        cin >> A >> k;
        //AB,OB거리 차이의 절대값이 k인걸 찾으려면 몇 step?
        //A와 0위치를 준다.
        solve();

    }

}


#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

#define endl "\n"
int t,A,k;

void solve(){

    //B>A이면 B==A여도 똑같은듯

    //두번째 경우는 무조건 A>k일때네
    if(A<=k){
        cout << k-A << endl;

    }else if(A>k){
        if((A+k)%2==0){
            cout << 0 << endl;
        }else{
            cout << 1 << endl;
        }
    }

}

int main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    //OB와 AB사이의 거리가 같은 B를 찾으려고한다.
    //B를 못찾을때 A를 증감시켜볼수있다.
    cin >> t;
    while(t--){
        cin >> A >> k;
        //AB,OB거리 차이의 절대값이 k인걸 찾으려면 몇 step?
        //A와 0위치를 준다.
        solve();

    }

}


#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

#define endl "\n"
int t,A,k;

void solve(){

    //B>A이면 B==A여도 똑같은듯
    if(k==0){
        if(A%2==1)
            cout << 1 << endl;
        else
            cout << 0 << endl;
        return;
    }

    int ans1 = (int)abs(k-A);
    int ans2 = (int)1e6;
    for(int i=0;i<A;i++){
        int B = i;
        if(A>2*B){
            ans2 = min(ans2,(int)abs(2*B+k));
        }
        if(A>B && 2*B>A && k<B){
            if(2*B-k-A>=0){
                ans2 = min(ans2,(int)abs(2*B-k-A));
            }
        }
    }
    cout << min(ans2,ans1) << endl;

}

int main(){
    ios_base :: sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    //OB와 AB사이의 거리가 같은 B를 찾으려고한다.
    //B를 못찾을때 A를 증감시켜볼수있다.
    cin >> t;
    while(t--){
        cin >> A >> k;
        //AB,OB거리 차이의 절대값이 k인걸 찾으려면 몇 step?
        //A와 0위치를 준다.
        solve();

    }

}