#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second
int A=63, B=44, f[100];
int encode(vector<int> vect){
reverse(vect.begin(), vect.end());
int res=0;
for (int i=0; i<A; ++i)if (vect[i])res+=f[i];
return res;
}
void Anna(signed n, vector<char> s){
f[0]=1;
f[1]=2;
for (int i=2; i<=A; ++i)f[i]=f[i-1]+f[i-2];
vector<int> res;
int id=0;
while (id<n&&s[id]!='X')++id;
if (id==n){
Send(0);
return;
}
for (int i=0; i<17; ++i)Send(!!((1<<i)&id));
for (int i=id+1; i<n; ++i){
if (s[i]=='Z'&&(i==n-1||s[i+1]!='Z'))res.pb(1);
else res.pb(0);
}
while (res.size()%A)res.pb(0);
for (int i=0; i<res.size(); i+=A){
vector<int> temp(A);
for (int j=0; j<A; ++j)temp[j]=res[i+j];
int c=encode(temp);
for (int j=0; j<B; ++j)Send(!!(c&(1ll<<j)));
}
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second
int A=63, B=44, f[100];
vector<int> vals;
void decode(int a){
for (int i=A-1; i>=0; --i){
if (a>=f[i])a-=f[i], vals.pb(1);
else vals.pb(0);
}
}
void Bruno(signed n, signed l, vector<signed> a){
f[0]=1;
f[1]=2;
for (int i=2; i<=A; ++i)f[i]=f[i-1]+f[i-2];
if (l==1){
for (int i=0; i<n; ++i)Remove(i);
return;
}
int id=0;
for (int i=0; i<17; ++i)if (a[i])id+=(1<<i);
vector<int> vect(1, id);
for (int i=17; i<a.size(); i+=B){
int res=0;
for (int j=0; j<B; ++j)if (a[i+j])res+=(1ll<<j);
decode(res);
}
for (int i=0; i<vals.size(); ++i)if (vals[i])vect.pb(i+id+1);
for (int i=0; i<vect[0]; ++i)Remove(i);
for (int i=vect.back()+1; i<n; ++i)Remove(i);
for (int i=1; i<vect.size(); ++i){
for (int j=vect[i]-1; j>vect[i-1]; --j)Remove(j);
Remove(vect[i]);
}
Remove(vect[0]);
}