#include "Anna.h"
#include <iostream>
#include <vector>
#include <cassert>
#include <algorithm>
using namespace std;
using ll=long long;
namespace encode
{
int Declare() { return 240; }
pair<vector<int>, vector<int>> Anna(ll A)
{
vector<int> S, T;
for (int i=0; i<60; i++)
{
if ((A>>i)&1)
{
S.push_back(1);
S.push_back(1);
S.push_back(1);
S.push_back(1);
}
else
{
S.push_back(0);
S.push_back(0);
S.push_back(0);
S.push_back(0);
}
T.push_back(0);
T.push_back(1);
T.push_back(0);
T.push_back(1);
}
//for (int i:S) cerr<<i<<' '; cerr<<endl;
//for (int i:T) cerr<<i<<' '; cerr<<endl;
return {S, T};
}
}
int Declare() { return encode::Declare(); }
pair<vector<int>, vector<int>> Anna(ll A) { return encode::Anna(A); }
#include "Bruno.h"
#include <iostream>
#include <vector>
#include <cassert>
#include <algorithm>
using namespace std;
using ll=long long;
namespace decode
{
ll Bruno(vector<int> V)
{
vector<int> rep; rep.clear();
int cur=0;
assert(V.size()==480);
for (int i=0; i<480; i++)
{
if (V[i]) cur++;
else cur--;
if (cur==4)
{
rep.push_back(1);
//cerr<<1;
cur=0;
}
else if (cur==-4)
{
rep.push_back(0);
//cerr<<0;
cur=0;
}
} //cerr<<endl;
ll ans=0;
for (int i=0; i<60; i++) if (rep[i]) ans^=(1ll<<i);
return ans;
}
}
ll Bruno(vector<int> u) { return decode::Bruno(u); }