#include <iostream>
#include <vector>
#include <algorithm>
typedef std::vector<int> DType;
static const int VSize = 8;
//汎用性ないなー。Orz C++11 http://i...content-available-to-author-only...e.com/Moj4uK
bool FirstCheck(DType A, DType B){
if (A.size() != VSize) return false;
if (B.size() != VSize) return false;
if (std::count(A.begin(), A.end(), 0) !=
std::count(B.begin(), B.end(), 0)) return false;
return true;
}
DType MakeIndex(std::size_t N){
DType R;
for (std::size_t i = 0; i < N; i++)R.push_back(i);
return R;
}
bool RotX(DType &v){
// 23670145
std::swap(v[0], v[4]);//block move1
std::swap(v[1], v[5]);
std::swap(v[0], v[6]);//2
std::swap(v[1], v[7]);
std::swap(v[0], v[2]);//3
std::swap(v[1], v[3]);
return 0;
}
bool RotY(DType &v){
// 13025746
std::swap(v[0], v[2]);//block move1
std::swap(v[0], v[3]);
std::swap(v[0], v[1]);//2
std::swap(v[4], v[6]);
std::swap(v[4], v[7]);//3
std::swap(v[4], v[5]);
return 0;
}
bool RotZ(DType &v){
// 40625173
std::swap(v[0], v[1]);//block move1
std::swap(v[2], v[3]);
std::swap(v[0], v[5]);//2
std::swap(v[2], v[7]);
std::swap(v[0], v[4]);//3
std::swap(v[2], v[6]);
return 0;
}
bool Comp(DType& A, DType& B, DType& Idx){
for (std::size_t i = 0; i < VSize; i++)
{
if (A[Idx[i]] != B[i]) return false;
}
return true;
}
bool MakeHoge(DType A, DType B){
if (FirstCheck(A, B) == false) return false;
auto Idx = MakeIndex(VSize);
for (std::size_t i = 0; i < 4; i++)
{
for (std::size_t j = 0; j < 4; j++)
{
for (std::size_t k = 0; k < 4; k++)
{
if (Comp(A, B, Idx) == true) return true;
RotX(Idx);
}
RotY(Idx);
}
RotZ(Idx);
}
return false;
}
bool Show(DType& A, DType& B, bool b){
char S[][16] = { "偽", "真" };
for (auto& o : A) std::cout << o;
std::cout << ',';
for (auto& o : B) std::cout << o;
std::cout << " -> " << S[b] << std::endl;
return true;
}
int main(){
auto F = [](DType A, DType B)-> bool{
bool b = false;
b = MakeHoge(A, B);
Show(A, B, b);
return true;
};
// F({ 0, 0, 0, 0, 0, 0, 0, 1, }, { 1, 0, 0, 0, 0, 0, 0, 0, });
// F({ 0, 0, 0, 0, 1, 1, 1, 1, }, { 1, 0, 1, 0, 1, 0, 1, 0, });
/*
F({1,0,0,1,0,0,0,0,},{0,1,0,0,0,0,0,1,});
*/
F({0,0,0,0,0,0,0,0,},{0,0,0,0,0,0,0,0,});
F({0,0,0,0,0,0,0,1,},{0,0,0,0,0,0,0,1,});
F({0,0,0,0,0,0,1,0,},{0,0,0,0,0,0,0,1,});
F({0,0,0,0,0,0,1,1,},{0,0,0,0,0,0,1,1,});
F({0,0,0,0,0,1,0,0,},{0,0,0,0,0,0,0,1,});
F({0,0,0,0,0,1,0,1,},{0,0,0,0,0,0,1,1,});
F({0,0,0,0,0,1,1,0,},{0,0,0,0,0,1,1,0,});
F({0,0,0,0,0,1,1,1,},{0,0,0,0,0,1,1,1,});
F({0,0,0,0,1,0,0,0,},{0,0,0,0,0,0,0,1,});
F({0,0,0,0,1,0,0,1,},{0,0,0,0,0,1,1,0,});
F({0,0,0,0,1,0,1,0,},{0,0,0,0,0,0,1,1,});
F({0,0,0,0,1,0,1,1,},{0,0,0,0,0,1,1,1,});
F({0,0,0,0,1,1,0,0,},{0,0,0,0,0,0,1,1,});
F({0,0,0,0,1,1,0,1,},{0,0,0,0,0,1,1,1,});
F({0,0,0,0,1,1,1,0,},{0,0,0,0,0,1,1,1,});
F({0,0,0,0,1,1,1,1,},{0,0,0,0,1,1,1,1,});
F({0,0,0,1,0,0,0,0,},{0,0,0,0,0,0,0,1,});
F({0,0,0,1,0,0,0,1,},{0,0,0,0,0,0,1,1,});
F({0,0,0,1,0,0,1,0,},{0,0,0,0,0,1,1,0,});
F({0,0,0,1,0,0,1,1,},{0,0,0,0,0,1,1,1,});
F({0,0,0,1,0,1,0,0,},{0,0,0,0,0,1,1,0,});
F({0,0,0,1,0,1,0,1,},{0,0,0,0,0,1,1,1,});
F({0,0,0,1,0,1,1,0,},{0,0,0,1,0,1,1,0,});
F({0,0,0,1,0,1,1,1,},{0,0,0,1,0,1,1,1,});
F({0,0,0,1,1,0,0,0,},{0,0,0,1,1,0,0,0,});
F({0,0,0,1,1,0,0,1,},{0,0,0,1,1,0,0,1,});
F({0,0,0,1,1,0,1,0,},{0,0,0,1,1,0,0,1,});
F({0,0,0,1,1,0,1,1,},{0,0,0,1,1,0,1,1,});
F({0,0,0,1,1,1,0,0,},{0,0,0,1,1,0,0,1,});
F({0,0,0,1,1,1,0,1,},{0,0,0,1,1,1,0,1,});
F({0,0,0,1,1,1,1,0,},{0,0,0,1,1,1,1,0,});
F({0,0,0,1,1,1,1,1,},{0,0,0,1,1,1,1,1,});
F({0,0,1,0,0,0,0,0,},{0,0,0,0,0,0,0,1,});
F({0,0,1,0,0,0,0,1,},{0,0,0,0,0,1,1,0,});
F({0,0,1,0,0,0,1,0,},{0,0,0,0,0,0,1,1,});
F({0,0,1,0,0,0,1,1,},{0,0,0,0,0,1,1,1,});
F({0,0,1,0,0,1,0,0,},{0,0,0,1,1,0,0,0,});
F({0,0,1,0,0,1,0,1,},{0,0,0,1,1,0,0,1,});
F({0,0,1,0,0,1,1,0,},{0,0,0,1,1,0,0,1,});
F({0,0,1,0,0,1,1,1,},{0,0,0,1,1,1,0,1,});
F({0,0,1,0,1,0,0,0,},{0,0,0,0,0,1,1,0,});
F({0,0,1,0,1,0,0,1,},{0,0,0,1,0,1,1,0,});
F({0,0,1,0,1,0,1,0,},{0,0,0,0,0,1,1,1,});
F({0,0,1,0,1,0,1,1,},{0,0,0,1,0,1,1,1,});
F({0,0,1,0,1,1,0,0,},{0,0,0,1,1,0,0,1,});
F({0,0,1,0,1,1,0,1,},{0,0,0,1,1,1,1,0,});
F({0,0,1,0,1,1,1,0,},{0,0,0,1,1,0,1,1,});
F({0,0,1,0,1,1,1,1,},{0,0,0,1,1,1,1,1,});
F({0,0,1,1,0,0,0,0,},{0,0,0,0,0,0,1,1,});
F({0,0,1,1,0,0,0,1,},{0,0,0,0,0,1,1,1,});
F({0,0,1,1,0,0,1,0,},{0,0,0,0,0,1,1,1,});
F({0,0,1,1,0,0,1,1,},{0,0,0,0,1,1,1,1,});
F({0,0,1,1,0,1,0,0,},{0,0,0,1,1,0,0,1,});
F({0,0,1,1,0,1,0,1,},{0,0,0,1,1,0,1,1,});
F({0,0,1,1,0,1,1,0,},{0,0,0,1,1,1,1,0,});
F({0,0,1,1,0,1,1,1,},{0,0,0,1,1,1,1,1,});
F({0,0,1,1,1,0,0,0,},{0,0,0,1,1,0,0,1,});
F({0,0,1,1,1,0,0,1,},{0,0,0,1,1,1,1,0,});
F({0,0,1,1,1,0,1,0,},{0,0,0,1,1,1,0,1,});
F({0,0,1,1,1,0,1,1,},{0,0,0,1,1,1,1,1,});
F({0,0,1,1,1,1,0,0,},{0,0,1,1,1,1,0,0,});
F({0,0,1,1,1,1,0,1,},{0,0,1,1,1,1,0,1,});
F({0,0,1,1,1,1,1,0,},{0,0,1,1,1,1,0,1,});
F({0,0,1,1,1,1,1,1,},{0,0,1,1,1,1,1,1,});
F({0,1,0,0,0,0,0,0,},{0,0,0,0,0,0,0,1,});
F({0,1,0,0,0,0,0,1,},{0,0,0,0,0,1,1,0,});
F({0,1,0,0,0,0,1,0,},{0,0,0,1,1,0,0,0,});
F({0,1,0,0,0,0,1,1,},{0,0,0,1,1,0,0,1,});
F({0,1,0,0,0,1,0,0,},{0,0,0,0,0,0,1,1,});
F({0,1,0,0,0,1,0,1,},{0,0,0,0,0,1,1,1,});
F({0,1,0,0,0,1,1,0,},{0,0,0,1,1,0,0,1,});
F({0,1,0,0,0,1,1,1,},{0,0,0,1,1,0,1,1,});
F({0,1,0,0,1,0,0,0,},{0,0,0,0,0,1,1,0,});
F({0,1,0,0,1,0,0,1,},{0,0,0,1,0,1,1,0,});
F({0,1,0,0,1,0,1,0,},{0,0,0,1,1,0,0,1,});
F({0,1,0,0,1,0,1,1,},{0,0,0,1,1,1,1,0,});
F({0,1,0,0,1,1,0,0,},{0,0,0,0,0,1,1,1,});
F({0,1,0,0,1,1,0,1,},{0,0,0,1,0,1,1,1,});
F({0,1,0,0,1,1,1,0,},{0,0,0,1,1,1,0,1,});
F({0,1,0,0,1,1,1,1,},{0,0,0,1,1,1,1,1,});
F({0,1,0,1,0,0,0,0,},{0,0,0,0,0,0,1,1,});
F({0,1,0,1,0,0,0,1,},{0,0,0,0,0,1,1,1,});
F({0,1,0,1,0,0,1,0,},{0,0,0,1,1,0,0,1,});
F({0,1,0,1,0,0,1,1,},{0,0,0,1,1,1,0,1,});
F({0,1,0,1,0,1,0,0,},{0,0,0,0,0,1,1,1,});
F({0,1,0,1,0,1,0,1,},{0,0,0,0,1,1,1,1,});
F({0,1,0,1,0,1,1,0,},{0,0,0,1,1,1,1,0,});
F({0,1,0,1,0,1,1,1,},{0,0,0,1,1,1,1,1,});
F({0,1,0,1,1,0,0,0,},{0,0,0,1,1,0,0,1,});
F({0,1,0,1,1,0,0,1,},{0,0,0,1,1,1,1,0,});
F({0,1,0,1,1,0,1,0,},{0,0,1,1,1,1,0,0,});
F({0,1,0,1,1,0,1,1,},{0,0,1,1,1,1,0,1,});
F({0,1,0,1,1,1,0,0,},{0,0,0,1,1,0,1,1,});
F({0,1,0,1,1,1,0,1,},{0,0,0,1,1,1,1,1,});
F({0,1,0,1,1,1,1,0,},{0,0,1,1,1,1,0,1,});
F({0,1,0,1,1,1,1,1,},{0,0,1,1,1,1,1,1,});
F({0,1,1,0,0,0,0,0,},{0,0,0,0,0,1,1,0,});
F({0,1,1,0,0,0,0,1,},{0,0,0,1,0,1,1,0,});
F({0,1,1,0,0,0,1,0,},{0,0,0,1,1,0,0,1,});
F({0,1,1,0,0,0,1,1,},{0,0,0,1,1,1,1,0,});
F({0,1,1,0,0,1,0,0,},{0,0,0,1,1,0,0,1,});
F({0,1,1,0,0,1,0,1,},{0,0,0,1,1,1,1,0,});
F({0,1,1,0,0,1,1,0,},{0,0,1,1,1,1,0,0,});
F({0,1,1,0,0,1,1,1,},{0,0,1,1,1,1,0,1,});
F({0,1,1,0,1,0,0,0,},{0,0,0,1,0,1,1,0,});
F({0,1,1,0,1,0,0,1,},{0,1,1,0,1,0,0,1,});
F({0,1,1,0,1,0,1,0,},{0,0,0,1,1,1,1,0,});
F({0,1,1,0,1,0,1,1,},{0,1,1,0,1,0,1,1,});
F({0,1,1,0,1,1,0,0,},{0,0,0,1,1,1,1,0,});
F({0,1,1,0,1,1,0,1,},{0,1,1,0,1,0,1,1,});
F({0,1,1,0,1,1,1,0,},{0,0,1,1,1,1,0,1,});
F({0,1,1,0,1,1,1,1,},{0,1,1,0,1,1,1,1,});
F({0,1,1,1,0,0,0,0,},{0,0,0,0,0,1,1,1,});
F({0,1,1,1,0,0,0,1,},{0,0,0,1,0,1,1,1,});
F({0,1,1,1,0,0,1,0,},{0,0,0,1,1,0,1,1,});
F({0,1,1,1,0,0,1,1,},{0,0,0,1,1,1,1,1,});
F({0,1,1,1,0,1,0,0,},{0,0,0,1,1,1,0,1,});
F({0,1,1,1,0,1,0,1,},{0,0,0,1,1,1,1,1,});
F({0,1,1,1,0,1,1,0,},{0,0,1,1,1,1,0,1,});
F({0,1,1,1,0,1,1,1,},{0,0,1,1,1,1,1,1,});
F({0,1,1,1,1,0,0,0,},{0,0,0,1,1,1,1,0,});
F({0,1,1,1,1,0,0,1,},{0,1,1,0,1,0,1,1,});
F({0,1,1,1,1,0,1,0,},{0,0,1,1,1,1,0,1,});
F({0,1,1,1,1,0,1,1,},{0,1,1,0,1,1,1,1,});
F({0,1,1,1,1,1,0,0,},{0,0,1,1,1,1,0,1,});
F({0,1,1,1,1,1,0,1,},{0,1,1,0,1,1,1,1,});
F({0,1,1,1,1,1,1,0,},{0,1,1,1,1,1,1,0,});
F({0,1,1,1,1,1,1,1,},{0,1,1,1,1,1,1,1,});
F({1,0,0,0,0,0,0,0,},{0,0,0,0,0,0,0,1,});
F({1,0,0,0,0,0,0,1,},{0,0,0,1,1,0,0,0,});
F({1,0,0,0,0,0,1,0,},{0,0,0,0,0,1,1,0,});
F({1,0,0,0,0,0,1,1,},{0,0,0,1,1,0,0,1,});
F({1,0,0,0,0,1,0,0,},{0,0,0,0,0,1,1,0,});
F({1,0,0,0,0,1,0,1,},{0,0,0,1,1,0,0,1,});
F({1,0,0,0,0,1,1,0,},{0,0,0,1,0,1,1,0,});
F({1,0,0,0,0,1,1,1,},{0,0,0,1,1,1,1,0,});
F({1,0,0,0,1,0,0,0,},{0,0,0,0,0,0,1,1,});
F({1,0,0,0,1,0,0,1,},{0,0,0,1,1,0,0,1,});
F({1,0,0,0,1,0,1,0,},{0,0,0,0,0,1,1,1,});
F({1,0,0,0,1,0,1,1,},{0,0,0,1,1,1,0,1,});
F({1,0,0,0,1,1,0,0,},{0,0,0,0,0,1,1,1,});
F({1,0,0,0,1,1,0,1,},{0,0,0,1,1,0,1,1,});
F({1,0,0,0,1,1,1,0,},{0,0,0,1,0,1,1,1,});
F({1,0,0,0,1,1,1,1,},{0,0,0,1,1,1,1,1,});
F({1,0,0,1,0,0,0,0,},{0,0,0,0,0,1,1,0,});
F({1,0,0,1,0,0,0,1,},{0,0,0,1,1,0,0,1,});
F({1,0,0,1,0,0,1,0,},{0,0,0,1,0,1,1,0,});
F({1,0,0,1,0,0,1,1,},{0,0,0,1,1,1,1,0,});
F({1,0,0,1,0,1,0,0,},{0,0,0,1,0,1,1,0,});
F({1,0,0,1,0,1,0,1,},{0,0,0,1,1,1,1,0,});
F({1,0,0,1,0,1,1,0,},{0,1,1,0,1,0,0,1,});
F({1,0,0,1,0,1,1,1,},{0,1,1,0,1,0,1,1,});
F({1,0,0,1,1,0,0,0,},{0,0,0,1,1,0,0,1,});
F({1,0,0,1,1,0,0,1,},{0,0,1,1,1,1,0,0,});
F({1,0,0,1,1,0,1,0,},{0,0,0,1,1,1,1,0,});
F({1,0,0,1,1,0,1,1,},{0,0,1,1,1,1,0,1,});
F({1,0,0,1,1,1,0,0,},{0,0,0,1,1,1,1,0,});
F({1,0,0,1,1,1,0,1,},{0,0,1,1,1,1,0,1,});
F({1,0,0,1,1,1,1,0,},{0,1,1,0,1,0,1,1,});
F({1,0,0,1,1,1,1,1,},{0,1,1,0,1,1,1,1,});
F({1,0,1,0,0,0,0,0,},{0,0,0,0,0,0,1,1,});
F({1,0,1,0,0,0,0,1,},{0,0,0,1,1,0,0,1,});
F({1,0,1,0,0,0,1,0,},{0,0,0,0,0,1,1,1,});
F({1,0,1,0,0,0,1,1,},{0,0,0,1,1,0,1,1,});
F({1,0,1,0,0,1,0,0,},{0,0,0,1,1,0,0,1,});
F({1,0,1,0,0,1,0,1,},{0,0,1,1,1,1,0,0,});
F({1,0,1,0,0,1,1,0,},{0,0,0,1,1,1,1,0,});
F({1,0,1,0,0,1,1,1,},{0,0,1,1,1,1,0,1,});
F({1,0,1,0,1,0,0,0,},{0,0,0,0,0,1,1,1,});
F({1,0,1,0,1,0,0,1,},{0,0,0,1,1,1,1,0,});
F({1,0,1,0,1,0,1,0,},{0,0,0,0,1,1,1,1,});
F({1,0,1,0,1,0,1,1,},{0,0,0,1,1,1,1,1,});
F({1,0,1,0,1,1,0,0,},{0,0,0,1,1,1,0,1,});
F({1,0,1,0,1,1,0,1,},{0,0,1,1,1,1,0,1,});
F({1,0,1,0,1,1,1,0,},{0,0,0,1,1,1,1,1,});
F({1,0,1,0,1,1,1,1,},{0,0,1,1,1,1,1,1,});
F({1,0,1,1,0,0,0,0,},{0,0,0,0,0,1,1,1,});
F({1,0,1,1,0,0,0,1,},{0,0,0,1,1,1,0,1,});
F({1,0,1,1,0,0,1,0,},{0,0,0,1,0,1,1,1,});
F({1,0,1,1,0,0,1,1,},{0,0,0,1,1,1,1,1,});
F({1,0,1,1,0,1,0,0,},{0,0,0,1,1,1,1,0,});
F({1,0,1,1,0,1,0,1,},{0,0,1,1,1,1,0,1,});
F({1,0,1,1,0,1,1,0,},{0,1,1,0,1,0,1,1,});
F({1,0,1,1,0,1,1,1,},{0,1,1,0,1,1,1,1,});
F({1,0,1,1,1,0,0,0,},{0,0,0,1,1,0,1,1,});
F({1,0,1,1,1,0,0,1,},{0,0,1,1,1,1,0,1,});
F({1,0,1,1,1,0,1,0,},{0,0,0,1,1,1,1,1,});
F({1,0,1,1,1,0,1,1,},{0,0,1,1,1,1,1,1,});
F({1,0,1,1,1,1,0,0,},{0,0,1,1,1,1,0,1,});
F({1,0,1,1,1,1,0,1,},{0,1,1,1,1,1,1,0,});
F({1,0,1,1,1,1,1,0,},{0,1,1,0,1,1,1,1,});
F({1,0,1,1,1,1,1,1,},{0,1,1,1,1,1,1,1,});
F({1,1,0,0,0,0,0,0,},{0,0,0,0,0,0,1,1,});
F({1,1,0,0,0,0,0,1,},{0,0,0,1,1,0,0,1,});
F({1,1,0,0,0,0,1,0,},{0,0,0,1,1,0,0,1,});
F({1,1,0,0,0,0,1,1,},{0,0,1,1,1,1,0,0,});
F({1,1,0,0,0,1,0,0,},{0,0,0,0,0,1,1,1,});
F({1,1,0,0,0,1,0,1,},{0,0,0,1,1,1,0,1,});
F({1,1,0,0,0,1,1,0,},{0,0,0,1,1,1,1,0,});
F({1,1,0,0,0,1,1,1,},{0,0,1,1,1,1,0,1,});
F({1,1,0,0,1,0,0,0,},{0,0,0,0,0,1,1,1,});
F({1,1,0,0,1,0,0,1,},{0,0,0,1,1,1,1,0,});
F({1,1,0,0,1,0,1,0,},{0,0,0,1,1,0,1,1,});
F({1,1,0,0,1,0,1,1,},{0,0,1,1,1,1,0,1,});
F({1,1,0,0,1,1,0,0,},{0,0,0,0,1,1,1,1,});
F({1,1,0,0,1,1,0,1,},{0,0,0,1,1,1,1,1,});
F({1,1,0,0,1,1,1,0,},{0,0,0,1,1,1,1,1,});
F({1,1,0,0,1,1,1,1,},{0,0,1,1,1,1,1,1,});
F({1,1,0,1,0,0,0,0,},{0,0,0,0,0,1,1,1,});
F({1,1,0,1,0,0,0,1,},{0,0,0,1,1,0,1,1,});
F({1,1,0,1,0,0,1,0,},{0,0,0,1,1,1,1,0,});
F({1,1,0,1,0,0,1,1,},{0,0,1,1,1,1,0,1,});
F({1,1,0,1,0,1,0,0,},{0,0,0,1,0,1,1,1,});
F({1,1,0,1,0,1,0,1,},{0,0,0,1,1,1,1,1,});
F({1,1,0,1,0,1,1,0,},{0,1,1,0,1,0,1,1,});
F({1,1,0,1,0,1,1,1,},{0,1,1,0,1,1,1,1,});
F({1,1,0,1,1,0,0,0,},{0,0,0,1,1,1,0,1,});
F({1,1,0,1,1,0,0,1,},{0,0,1,1,1,1,0,1,});
F({1,1,0,1,1,0,1,0,},{0,0,1,1,1,1,0,1,});
F({1,1,0,1,1,0,1,1,},{0,1,1,1,1,1,1,0,});
F({1,1,0,1,1,1,0,0,},{0,0,0,1,1,1,1,1,});
F({1,1,0,1,1,1,0,1,},{0,0,1,1,1,1,1,1,});
F({1,1,0,1,1,1,1,0,},{0,1,1,0,1,1,1,1,});
F({1,1,0,1,1,1,1,1,},{0,1,1,1,1,1,1,1,});
F({1,1,1,0,0,0,0,0,},{0,0,0,0,0,1,1,1,});
F({1,1,1,0,0,0,0,1,},{0,0,0,1,1,1,1,0,});
F({1,1,1,0,0,0,1,0,},{0,0,0,1,1,1,0,1,});
F({1,1,1,0,0,0,1,1,},{0,0,1,1,1,1,0,1,});
F({1,1,1,0,0,1,0,0,},{0,0,0,1,1,0,1,1,});
F({1,1,1,0,0,1,0,1,},{0,0,1,1,1,1,0,1,});
F({1,1,1,0,0,1,1,0,},{0,0,1,1,1,1,0,1,});
F({1,1,1,0,0,1,1,1,},{0,1,1,1,1,1,1,0,});
F({1,1,1,0,1,0,0,0,},{0,0,0,1,0,1,1,1,});
F({1,1,1,0,1,0,0,1,},{0,1,1,0,1,0,1,1,});
F({1,1,1,0,1,0,1,0,},{0,0,0,1,1,1,1,1,});
F({1,1,1,0,1,0,1,1,},{0,1,1,0,1,1,1,1,});
F({1,1,1,0,1,1,0,0,},{0,0,0,1,1,1,1,1,});
F({1,1,1,0,1,1,0,1,},{0,1,1,0,1,1,1,1,});
F({1,1,1,0,1,1,1,0,},{0,0,1,1,1,1,1,1,});
F({1,1,1,0,1,1,1,1,},{0,1,1,1,1,1,1,1,});
F({1,1,1,1,0,0,0,0,},{0,0,0,0,1,1,1,1,});
F({1,1,1,1,0,0,0,1,},{0,0,0,1,1,1,1,1,});
F({1,1,1,1,0,0,1,0,},{0,0,0,1,1,1,1,1,});
F({1,1,1,1,0,0,1,1,},{0,0,1,1,1,1,1,1,});
F({1,1,1,1,0,1,0,0,},{0,0,0,1,1,1,1,1,});
F({1,1,1,1,0,1,0,1,},{0,0,1,1,1,1,1,1,});
F({1,1,1,1,0,1,1,0,},{0,1,1,0,1,1,1,1,});
F({1,1,1,1,0,1,1,1,},{0,1,1,1,1,1,1,1,});
F({1,1,1,1,1,0,0,0,},{0,0,0,1,1,1,1,1,});
F({1,1,1,1,1,0,0,1,},{0,1,1,0,1,1,1,1,});
F({1,1,1,1,1,0,1,0,},{0,0,1,1,1,1,1,1,});
F({1,1,1,1,1,0,1,1,},{0,1,1,1,1,1,1,1,});
F({1,1,1,1,1,1,0,0,},{0,0,1,1,1,1,1,1,});
F({1,1,1,1,1,1,0,1,},{0,1,1,1,1,1,1,1,});
F({1,1,1,1,1,1,1,0,},{0,1,1,1,1,1,1,1,});
F({1,1,1,1,1,1,1,1,},{1,1,1,1,1,1,1,1,});
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdHlwZWRlZiBzdGQ6OnZlY3RvcjxpbnQ+IERUeXBlOwpzdGF0aWMgY29uc3QgaW50IFZTaXplID0gODsKCi8v5rGO55So5oCn44Gq44GE44Gq44O844CCT3J6ICAgICAgIEMrKzExICAgaHR0cDovL2kuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL01vajR1SwoKYm9vbCBGaXJzdENoZWNrKERUeXBlIEEsIERUeXBlIEIpewoJaWYgKEEuc2l6ZSgpICE9IFZTaXplKSByZXR1cm4gZmFsc2U7CglpZiAoQi5zaXplKCkgIT0gVlNpemUpIHJldHVybiBmYWxzZTsKCglpZiAoc3RkOjpjb3VudChBLmJlZ2luKCksIEEuZW5kKCksIDApICE9CgkJc3RkOjpjb3VudChCLmJlZ2luKCksIEIuZW5kKCksIDApKSByZXR1cm4gZmFsc2U7CgoJcmV0dXJuIHRydWU7Cn0KCkRUeXBlIE1ha2VJbmRleChzdGQ6OnNpemVfdCBOKXsKCglEVHlwZSBSOwoJZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IE47IGkrKylSLnB1c2hfYmFjayhpKTsKCglyZXR1cm4gUjsKfQoKYm9vbCBSb3RYKERUeXBlICZ2KXsKLy8JMjM2NzAxNDUKCXN0ZDo6c3dhcCh2WzBdLCB2WzRdKTsvL2Jsb2NrIG1vdmUxCglzdGQ6OnN3YXAodlsxXSwgdls1XSk7CglzdGQ6OnN3YXAodlswXSwgdls2XSk7Ly8yCglzdGQ6OnN3YXAodlsxXSwgdls3XSk7CglzdGQ6OnN3YXAodlswXSwgdlsyXSk7Ly8zCglzdGQ6OnN3YXAodlsxXSwgdlszXSk7CgoJcmV0dXJuIDA7Cgp9CmJvb2wgUm90WShEVHlwZSAmdil7Ci8vCTEzMDI1NzQ2CglzdGQ6OnN3YXAodlswXSwgdlsyXSk7Ly9ibG9jayBtb3ZlMQoJc3RkOjpzd2FwKHZbMF0sIHZbM10pOwoJc3RkOjpzd2FwKHZbMF0sIHZbMV0pOy8vMgoJc3RkOjpzd2FwKHZbNF0sIHZbNl0pOwoJc3RkOjpzd2FwKHZbNF0sIHZbN10pOy8vMwoJc3RkOjpzd2FwKHZbNF0sIHZbNV0pOwoKCXJldHVybiAwOwp9CmJvb2wgUm90WihEVHlwZSAmdil7Ci8vCTQwNjI1MTczCglzdGQ6OnN3YXAodlswXSwgdlsxXSk7Ly9ibG9jayBtb3ZlMQoJc3RkOjpzd2FwKHZbMl0sIHZbM10pOwoJc3RkOjpzd2FwKHZbMF0sIHZbNV0pOy8vMgoJc3RkOjpzd2FwKHZbMl0sIHZbN10pOwoJc3RkOjpzd2FwKHZbMF0sIHZbNF0pOy8vMwoJc3RkOjpzd2FwKHZbMl0sIHZbNl0pOwoKCXJldHVybiAwOwp9Cgpib29sIENvbXAoRFR5cGUmIEEsIERUeXBlJiBCLCBEVHlwZSYgSWR4KXsKCWZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBWU2l6ZTsgaSsrKQoJewoJCWlmIChBW0lkeFtpXV0gIT0gQltpXSkgcmV0dXJuIGZhbHNlOwoJfQoKCXJldHVybiB0cnVlOwp9Cgpib29sIE1ha2VIb2dlKERUeXBlIEEsIERUeXBlIEIpewoKCWlmIChGaXJzdENoZWNrKEEsIEIpID09IGZhbHNlKSByZXR1cm4gZmFsc2U7CgoJYXV0byBJZHggPSBNYWtlSW5kZXgoVlNpemUpOwoJZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IDQ7IGkrKykKCXsKCQlmb3IgKHN0ZDo6c2l6ZV90IGogPSAwOyBqIDwgNDsgaisrKQoJCXsKCQkJZm9yIChzdGQ6OnNpemVfdCBrID0gMDsgayA8IDQ7IGsrKykKCQkJewoJCQkJaWYgKENvbXAoQSwgQiwgSWR4KSA9PSB0cnVlKSByZXR1cm4gdHJ1ZTsKCQkJCVJvdFgoSWR4KTsKCQkJfQoJCQlSb3RZKElkeCk7CgkJfQoJCVJvdFooSWR4KTsKCX0KCXJldHVybiBmYWxzZTsKfQoKYm9vbCBTaG93KERUeXBlJiBBLCBEVHlwZSYgQiwgYm9vbCBiKXsKCgljaGFyIFNbXVsxNl0gPSB7ICLlgb0iLCAi55yfIiB9OwoKCWZvciAoYXV0byYgbyA6IEEpIHN0ZDo6Y291dCA8PCBvOwoJc3RkOjpjb3V0IDw8ICcsJzsKCWZvciAoYXV0byYgbyA6IEIpIHN0ZDo6Y291dCA8PCBvOwoJc3RkOjpjb3V0IDw8ICIgLT4gIiA8PCBTW2JdIDw8IHN0ZDo6ZW5kbDsKCglyZXR1cm4gdHJ1ZTsKfQoKCgppbnQgbWFpbigpewoKCglhdXRvIEYgPSBbXShEVHlwZSBBLCBEVHlwZSBCKS0+IGJvb2x7CgkJYm9vbCBiID0gZmFsc2U7CgoJCWIgPSBNYWtlSG9nZShBLCBCKTsKCQlTaG93KEEsIEIsIGIpOwoJCXJldHVybiB0cnVlOwoJfTsKCi8vCUYoeyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCB9LCB7IDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIH0pOwovLwlGKHsgMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgfSwgeyAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCB9KTsKLyoKRih7MSwwLDAsMSwwLDAsMCwwLH0sezAsMSwwLDAsMCwwLDAsMSx9KTsKKi8KRih7MCwwLDAsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDAsMCx9KTsKRih7MCwwLDAsMCwwLDAsMCwxLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwwLDAsMCwwLDAsMSwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwwLDAsMCwwLDAsMSwxLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDAsMCwwLDEsMCwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwwLDAsMCwwLDEsMCwxLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDAsMCwwLDEsMSwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwwLDAsMCwwLDEsMSwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDAsMCwxLDAsMCwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwwLDAsMCwxLDAsMCwxLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwwLDAsMCwxLDAsMSwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDAsMCwxLDAsMSwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDAsMCwxLDEsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDAsMCwxLDEsMCwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDAsMCwxLDEsMSwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDAsMCwxLDEsMSwxLH0sezAsMCwwLDAsMSwxLDEsMSx9KTsKRih7MCwwLDAsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwwLDAsMSwwLDAsMCwxLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDAsMSwwLDAsMSwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwwLDAsMSwwLDAsMSwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDAsMSwwLDEsMCwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwwLDAsMSwwLDEsMCwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDAsMSwwLDEsMSwwLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MCwwLDAsMSwwLDEsMSwxLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MCwwLDAsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwwLDAsMCx9KTsKRih7MCwwLDAsMSwxLDAsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDAsMSwxLDAsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDAsMSwxLDAsMSwxLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MCwwLDAsMSwxLDEsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDAsMSwxLDEsMCwxLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MCwwLDAsMSwxLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwwLDAsMSwxLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwwLDEsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwwLDEsMCwwLDAsMCwxLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwwLDEsMCwwLDAsMSwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDEsMCwwLDAsMSwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDEsMCwwLDEsMCwwLH0sezAsMCwwLDEsMSwwLDAsMCx9KTsKRih7MCwwLDEsMCwwLDEsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDEsMCwwLDEsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDEsMCwwLDEsMSwxLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MCwwLDEsMCwxLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwwLDEsMCwxLDAsMCwxLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MCwwLDEsMCwxLDAsMSwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDEsMCwxLDAsMSwxLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MCwwLDEsMCwxLDEsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDEsMCwxLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwwLDEsMCwxLDEsMSwwLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MCwwLDEsMCwxLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwwLDEsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwwLDEsMSwwLDAsMCwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDEsMSwwLDAsMSwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwwLDEsMSwwLDAsMSwxLH0sezAsMCwwLDAsMSwxLDEsMSx9KTsKRih7MCwwLDEsMSwwLDEsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDEsMSwwLDEsMCwxLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MCwwLDEsMSwwLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwwLDEsMSwwLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwwLDEsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwwLDEsMSwxLDAsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwwLDEsMSwxLDAsMSwwLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MCwwLDEsMSwxLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwwLDEsMSwxLDEsMCwwLH0sezAsMCwxLDEsMSwxLDAsMCx9KTsKRih7MCwwLDEsMSwxLDEsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwwLDEsMSwxLDEsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwwLDEsMSwxLDEsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MCwxLDAsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MCwxLDAsMCwwLDAsMCwxLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwxLDAsMCwwLDAsMSwwLH0sezAsMCwwLDEsMSwwLDAsMCx9KTsKRih7MCwxLDAsMCwwLDAsMSwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDAsMCwwLDEsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwxLDAsMCwwLDEsMCwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwxLDAsMCwwLDEsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDAsMCwwLDEsMSwxLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MCwxLDAsMCwxLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwxLDAsMCwxLDAsMCwxLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MCwxLDAsMCwxLDAsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDAsMCwxLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDAsMCwxLDEsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwxLDAsMCwxLDEsMCwxLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MCwxLDAsMCwxLDEsMSwwLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MCwxLDAsMCwxLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwxLDAsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MCwxLDAsMSwwLDAsMCwxLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwxLDAsMSwwLDAsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDAsMSwwLDAsMSwxLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MCwxLDAsMSwwLDEsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwxLDAsMSwwLDEsMCwxLH0sezAsMCwwLDAsMSwxLDEsMSx9KTsKRih7MCwxLDAsMSwwLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDAsMSwwLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwxLDAsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDAsMSwxLDAsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDAsMSwxLDAsMSwwLH0sezAsMCwxLDEsMSwxLDAsMCx9KTsKRih7MCwxLDAsMSwxLDAsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDAsMSwxLDEsMCwwLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MCwxLDAsMSwxLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwxLDAsMSwxLDEsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDAsMSwxLDEsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MCwxLDEsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MCwxLDEsMCwwLDAsMCwxLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MCwxLDEsMCwwLDAsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDEsMCwwLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDEsMCwwLDEsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MCwxLDEsMCwwLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDEsMCwwLDEsMSwwLH0sezAsMCwxLDEsMSwxLDAsMCx9KTsKRih7MCwxLDEsMCwwLDEsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDEsMCwxLDAsMCwwLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MCwxLDEsMCwxLDAsMCwxLH0sezAsMSwxLDAsMSwwLDAsMSx9KTsKRih7MCwxLDEsMCwxLDAsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDEsMCwxLDAsMSwxLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MCwxLDEsMCwxLDEsMCwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDEsMCwxLDEsMCwxLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MCwxLDEsMCwxLDEsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDEsMCwxLDEsMSwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MCwxLDEsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MCwxLDEsMSwwLDAsMCwxLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MCwxLDEsMSwwLDAsMSwwLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MCwxLDEsMSwwLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwxLDEsMSwwLDEsMCwwLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MCwxLDEsMSwwLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MCwxLDEsMSwwLDEsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDEsMSwwLDEsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MCwxLDEsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MCwxLDEsMSwxLDAsMCwxLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MCwxLDEsMSwxLDAsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDEsMSwxLDAsMSwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MCwxLDEsMSwxLDEsMCwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MCwxLDEsMSwxLDEsMCwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MCwxLDEsMSwxLDEsMSwwLH0sezAsMSwxLDEsMSwxLDEsMCx9KTsKRih7MCwxLDEsMSwxLDEsMSwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwwLDAsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDAsMSx9KTsKRih7MSwwLDAsMCwwLDAsMCwxLH0sezAsMCwwLDEsMSwwLDAsMCx9KTsKRih7MSwwLDAsMCwwLDAsMSwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MSwwLDAsMCwwLDAsMSwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDAsMCwwLDEsMCwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MSwwLDAsMCwwLDEsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDAsMCwwLDEsMSwwLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MSwwLDAsMCwwLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDAsMCwxLDAsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MSwwLDAsMCwxLDAsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDAsMCwxLDAsMSwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwwLDAsMCwxLDAsMSwxLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MSwwLDAsMCwxLDEsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwwLDAsMCwxLDEsMCwxLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MSwwLDAsMCwxLDEsMSwwLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MSwwLDAsMCwxLDEsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwwLDAsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMCx9KTsKRih7MSwwLDAsMSwwLDAsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDAsMSwwLDAsMSwwLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MSwwLDAsMSwwLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDAsMSwwLDEsMCwwLH0sezAsMCwwLDEsMCwxLDEsMCx9KTsKRih7MSwwLDAsMSwwLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDAsMSwwLDEsMSwwLH0sezAsMSwxLDAsMSwwLDAsMSx9KTsKRih7MSwwLDAsMSwwLDEsMSwxLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MSwwLDAsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDAsMSwxLDAsMCwxLH0sezAsMCwxLDEsMSwxLDAsMCx9KTsKRih7MSwwLDAsMSwxLDAsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDAsMSwxLDAsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDAsMSwxLDEsMCwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDAsMSwxLDEsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDAsMSwxLDEsMSwwLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MSwwLDAsMSwxLDEsMSwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwwLDEsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MSwwLDEsMCwwLDAsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDEsMCwwLDAsMSwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwwLDEsMCwwLDAsMSwxLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MSwwLDEsMCwwLDEsMCwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwwLDEsMCwwLDEsMCwxLH0sezAsMCwxLDEsMSwxLDAsMCx9KTsKRih7MSwwLDEsMCwwLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDEsMCwwLDEsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMCwxLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwwLDEsMCwxLDAsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDEsMCwxLDAsMSwwLH0sezAsMCwwLDAsMSwxLDEsMSx9KTsKRih7MSwwLDEsMCwxLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwwLDEsMCwxLDEsMCwwLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMCwxLDEsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMCwxLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwwLDEsMCwxLDEsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwwLDEsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwwLDEsMSwwLDAsMCwxLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMSwwLDAsMSwwLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MSwwLDEsMSwwLDAsMSwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwwLDEsMSwwLDEsMCwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwwLDEsMSwwLDEsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMSwwLDEsMSwwLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MSwwLDEsMSwwLDEsMSwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwwLDEsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MSwwLDEsMSwxLDAsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMSwxLDAsMSwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwwLDEsMSwxLDAsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwwLDEsMSwxLDEsMCwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwwLDEsMSwxLDEsMCwxLH0sezAsMSwxLDEsMSwxLDEsMCx9KTsKRih7MSwwLDEsMSwxLDEsMSwwLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwwLDEsMSwxLDEsMSwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwwLDEsMSx9KTsKRih7MSwxLDAsMCwwLDAsMCwxLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwxLDAsMCwwLDAsMSwwLH0sezAsMCwwLDEsMSwwLDAsMSx9KTsKRih7MSwxLDAsMCwwLDAsMSwxLH0sezAsMCwxLDEsMSwxLDAsMCx9KTsKRih7MSwxLDAsMCwwLDEsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwxLDAsMCwwLDEsMCwxLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMCwwLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwxLDAsMCwwLDEsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMCwxLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwxLDAsMCwxLDAsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwxLDAsMCwxLDAsMSwwLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MSwxLDAsMCwxLDAsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMCwxLDEsMCwwLH0sezAsMCwwLDAsMSwxLDEsMSx9KTsKRih7MSwxLDAsMCwxLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMCwxLDEsMSwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMCwxLDEsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMSwwLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwxLDAsMSwwLDAsMCwxLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MSwxLDAsMSwwLDAsMSwwLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwxLDAsMSwwLDAsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMSwwLDEsMCwwLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MSwxLDAsMSwwLDEsMCwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMSwwLDEsMSwwLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MSwxLDAsMSwwLDEsMSwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwxLDAsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMSwxLDAsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMSwxLDAsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDAsMSwxLDAsMSwxLH0sezAsMSwxLDEsMSwxLDEsMCx9KTsKRih7MSwxLDAsMSwxLDEsMCwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMSwxLDEsMCwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDAsMSwxLDEsMSwwLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwxLDAsMSwxLDEsMSwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMCwwLDAsMCwwLH0sezAsMCwwLDAsMCwxLDEsMSx9KTsKRih7MSwxLDEsMCwwLDAsMCwxLH0sezAsMCwwLDEsMSwxLDEsMCx9KTsKRih7MSwxLDEsMCwwLDAsMSwwLH0sezAsMCwwLDEsMSwxLDAsMSx9KTsKRih7MSwxLDEsMCwwLDAsMSwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDEsMCwwLDEsMCwwLH0sezAsMCwwLDEsMSwwLDEsMSx9KTsKRih7MSwxLDEsMCwwLDEsMCwxLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDEsMCwwLDEsMSwwLH0sezAsMCwxLDEsMSwxLDAsMSx9KTsKRih7MSwxLDEsMCwwLDEsMSwxLH0sezAsMSwxLDEsMSwxLDEsMCx9KTsKRih7MSwxLDEsMCwxLDAsMCwwLH0sezAsMCwwLDEsMCwxLDEsMSx9KTsKRih7MSwxLDEsMCwxLDAsMCwxLH0sezAsMSwxLDAsMSwwLDEsMSx9KTsKRih7MSwxLDEsMCwxLDAsMSwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMCwxLDAsMSwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwxLDEsMCwxLDEsMCwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMCwxLDEsMCwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwxLDEsMCwxLDEsMSwwLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMCwxLDEsMSwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDAsMCwwLH0sezAsMCwwLDAsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDAsMCwxLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDAsMSwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDAsMSwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDEsMCwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDEsMCwxLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDEsMSwwLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwwLDEsMSwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDAsMCwwLH0sezAsMCwwLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDAsMCwxLH0sezAsMSwxLDAsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDAsMSwwLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDAsMSwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDEsMCwwLH0sezAsMCwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDEsMCwxLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDEsMSwwLH0sezAsMSwxLDEsMSwxLDEsMSx9KTsKRih7MSwxLDEsMSwxLDEsMSwxLH0sezEsMSwxLDEsMSwxLDEsMSx9KTsKCglyZXR1cm4gMDsKCn0K