#include "Annalib.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;
#define mid ((left+right)>>1)
void Anna(int N, long long X, int K, int P[]){
vector<int>sira={43,10,26,142,70,74,107,129,0,119,143,60,110,109,91,1,94,22,35,17,126,69,145,56,83,39,135,100,15,137,147,113,102,130,21,59,16,131,50,34,124,3,29,106,138,31,89,136,80,61,115,98,132,108,66,42,47,40,7,18,25,6,2,73,30,101,82,62,20,8,127,58,84,19,116,103,125,118,27,75,55,86,120,52,141,14,99,57,95,104,5,12,92,97,46,33,77,148,41,53,78,90,121,111,87,96,63,64,93,11,38,23,13,134,68,36,65,105,114,4,149,28,123,146,144,85,133,67,112,44,9,54,32,45,24,117,122,72,49,139,88,81,140,128,79,37,51,76,48,71};
int n;
int arr[150];
ll val;
vector<int>v;
n=N;
val=X;
for(int i=0;i<n;i++){
arr[i]=0;
}
for(int i=0;i<K;i++){
arr[P[i]]=1;
}
if(n!=150){
sira.resize(n);
iota(sira.begin(),sira.end(),0);
}
{
ll x=val;
int t=38;
while(t--){
v.pb(x%3);
x/=3;
}
reverse(v.begin(),v.end());
}
int p=0;
for(int i=0;i<n;i+=2){
if(p==v.size()||arr[sira[i]]||(i!=n-1&&arr[sira[i+1]])){
p--;
Set(sira[i],0);
if(i==n-1)break;
Set(sira[i+1],0);
}
else if(v[p]==0){
Set(sira[i],0);
if(i==n-1)break;
Set(sira[i+1],1);
}
else if(v[p]==1){
Set(sira[i],1);
if(i==n-1)break;
Set(sira[i+1],0);
}
else{
Set(sira[i],1);
if(i==n-1)break;
Set(sira[i+1],1);
}
p++;
}
}
#include "Brunolib.h"
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;
#define mid ((left+right)>>1)
long long Bruno(int N, int A[]){
int n;
vector<int>sira={43,10,26,142,70,74,107,129,0,119,143,60,110,109,91,1,94,22,35,17,126,69,145,56,83,39,135,100,15,137,147,113,102,130,21,59,16,131,50,34,124,3,29,106,138,31,89,136,80,61,115,98,132,108,66,42,47,40,7,18,25,6,2,73,30,101,82,62,20,8,127,58,84,19,116,103,125,118,27,75,55,86,120,52,141,14,99,57,95,104,5,12,92,97,46,33,77,148,41,53,78,90,121,111,87,96,63,64,93,11,38,23,13,134,68,36,65,105,114,4,149,28,123,146,144,85,133,67,112,44,9,54,32,45,24,117,122,72,49,139,88,81,140,128,79,37,51,76,48,71};
n=N;
if(n!=150){
sira.resize(n);
iota(sira.begin(),sira.end(),0);
}
ll ans=0;
for(int i=0;i<n;i+=2){
int x=A[sira[i]]*2;
if(i!=n-1)x+=A[sira[i+1]];
if(!x)continue;
ans*=3;
ans+=x-1;
}
return ans;
}