#include "Anna.h"
#include <bits/stdc++.h>
using i64 = long long;
namespace {
#ifdef DEBUG
#include "/home/ahmetalp/Desktop/Workplace/debug.h"
#else
#define debug(...) void(23)
#endif
};
int Declare() {
return 181;
}
std::pair<std::vector<int>, std::vector<int>> Anna(i64 A) {
--A;
i64 x = A;
std::vector<int> bits;
for (int i = 0; i < 60; ++i) {
bits.emplace_back(x % 2);
x /= 2;
}
std::reverse(bits.begin(), bits.end());
std::vector<int> s;
std::vector<int> t;
int b = 1;
s.emplace_back(b);
for (int i = 0; i < 60; ++i) {
int cnt;
if (b == bits[i]) {
cnt = 2;
} else {
cnt = 3;
}
for (int j = 0; j < cnt; ++j) {
s.emplace_back(bits[i]);
}
b = bits[i];
}
for (int i = 0; i < int(s.size()); ++i) {
t.emplace_back(1 - i % 2);
}
return {s, t};
}
#include "Bruno.h"
#include <bits/stdc++.h>
using i64 = long long;
namespace {
#ifdef DEBUG
#include "/home/ahmetalp/Desktop/Workplace/debug.h"
#else
#define debug(...) void(23)
#endif
};
i64 Bruno(std::vector<int> u) {
std::vector<int> bits;
int b = 1;
int sum = +1;
for (int i = 1; i < int(u.size()); ++i) {
sum += u[i] ? +1 : -1;
if (b == 1) {
if (sum == +3) {
bits.emplace_back(1);
b = 1;
sum = +1;
} else if (sum == -1) {
bits.emplace_back(0);
b = 0;
sum = 0;
}
} else {
if (sum == +2) {
bits.emplace_back(1);
b = 1;
sum = +1;
} else if (sum == -2) {
bits.emplace_back(0);
b = 0;
sum = 0;
}
}
}
assert(bits.size() == 60);
i64 A = 0;
for (auto i : bits) {
A = 2 * A + i;
}
return A + 1;
}