484 lines
160 KiB
C++
Executable File
484 lines
160 KiB
C++
Executable File
/*************************************************
|
||
* ADS Praktikum 3
|
||
* Unit-Testdatei
|
||
* Stand: 11.05.2021
|
||
*
|
||
*************************************************
|
||
* <20>nderungen untersagt!
|
||
*************************************************/
|
||
#include "catch.h"
|
||
#include "Tree.h"
|
||
#include "TreeNode.h"
|
||
#include <string>
|
||
#include <iostream>
|
||
#include <random>
|
||
#include <queue>
|
||
#include <tuple>
|
||
|
||
using namespace std;
|
||
|
||
// Friend-Methode fuer Testroutine
|
||
TreeNode* get_anker(Tree& Tr) {
|
||
return Tr.m_anker;
|
||
}
|
||
|
||
/***********************************************
|
||
* Testroutine des Baums:
|
||
* - Hinzufuegen von Nodes und Suche - simple
|
||
* - Hinzufuegen in Baum mit Linkssrotationen
|
||
* - Hinzufuegen in Baum mit Rechtsrotationen
|
||
* - Hinzufuegen in Baum mit Rechts-Linksrotationen
|
||
* - Hinzufuegen mit Rechtsrotationen - Anker
|
||
* - Hinzufuegen mit Linkssrotationen - Anker
|
||
* - Hinzufuegen mit Links-Rechtsrotationen - Anker
|
||
* - Hinzufuegen mit Rechts-Linksrotationen - Anker
|
||
* - Hinzufuegen von Nodes - Erzeuge Grossbaum + Ausgabe
|
||
* - Getter von TreeNode - simple
|
||
* - Setter von TreeNode - simple
|
||
*/
|
||
TEST_CASE("Tree Testing", "[TREE]") {
|
||
|
||
Tree* nTree = new Tree();
|
||
|
||
SECTION("Hinzufuegen von Nodes und Suche - simple") {
|
||
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 10, 0, 0);
|
||
nTree->addNode("Mayer3", 35, 0, 0);
|
||
nTree->addNode("Mayer4", 26, 0, 0);
|
||
nTree->addNode("Mayer5", 40, 0, 0);
|
||
nTree->addNode("Mayer6", 25, 0, 0);
|
||
nTree->addNode("Mayer7", 30, 0, 0);
|
||
|
||
REQUIRE(nTree->searchNode("Mayer") == true);
|
||
REQUIRE(nTree->searchNode("Mayer7") == true);
|
||
REQUIRE(nTree->searchNode("Mayer6") == true);
|
||
REQUIRE(nTree->searchNode("Mayer5") == true);
|
||
REQUIRE(nTree->searchNode("Mayer4") == true);
|
||
REQUIRE(nTree->searchNode("Mayer3") == true);
|
||
REQUIRE(nTree->searchNode("Mayer2") == true);
|
||
|
||
REQUIRE(nTree->searchNode("Mueller") == false);
|
||
REQUIRE(nTree->searchNode("Mayer99") == false);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getLeft()->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getLeft()->getRight()->getRed() == true);
|
||
}
|
||
|
||
SECTION("Hinzufuegen in Baum mit Linkssrotationen") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 10, 0, 0);
|
||
nTree->addNode("Mayer3", 30, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
|
||
nTree->addNode("Mayer4", 40, 0, 0);
|
||
nTree->addNode("Mayer5", 45, 0, 0);
|
||
|
||
REQUIRE(tanker->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 40);
|
||
REQUIRE(tanker->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getLeft()->getNodeOrderID() == 30);
|
||
REQUIRE(tanker->getRight()->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getRight()->getNodeOrderID() == 45);
|
||
REQUIRE(tanker->getRight()->getRight()->getRed() == true);
|
||
|
||
nTree->addNode("Mayer6", 50, 0, 0);
|
||
nTree->addNode("Mayer7", 42, 0, 0);
|
||
nTree->addNode("Mayer7", 55, 0, 0);
|
||
|
||
tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getLeft()->getRight()->getParent()->getNodeOrderID() == 20); // Test fuer Zeile 281 in Tree.cpp
|
||
}
|
||
|
||
SECTION("Hinzufuegen in Baum mit Rechtsrotationen") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 10, 0, 0);
|
||
nTree->addNode("Mayer3", 30, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
|
||
nTree->addNode("Mayer4", 7, 0, 0);
|
||
nTree->addNode("Mayer5", 3, 0, 0);
|
||
|
||
REQUIRE(tanker->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 7);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getNodeOrderID() == 3);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getLeft()->getRight()->getNodeOrderID() == 10);
|
||
REQUIRE(tanker->getLeft()->getRight()->getRed() == true);
|
||
|
||
nTree->addNode("Mayer6", 5, 0, 0);
|
||
nTree->addNode("Mayer7", 2, 0, 0);
|
||
nTree->addNode("Mayer8", 1, 0, 0);
|
||
|
||
tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getRight()->getLeft()->getParent()->getNodeOrderID() == 20); // Test fuer Zeile 311 in Tree.cpp
|
||
}
|
||
|
||
SECTION("Hinzufuegen in Baum mit Rechts-Linksrotationen") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 10, 0, 0);
|
||
nTree->addNode("Mayer3", 30, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
|
||
nTree->addNode("Mayer4", 40, 0, 0);
|
||
nTree->addNode("Mayer5", 35, 0, 0);
|
||
|
||
REQUIRE(tanker->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 35);
|
||
REQUIRE(tanker->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getLeft()->getNodeOrderID() == 30);
|
||
REQUIRE(tanker->getRight()->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getRight()->getNodeOrderID() == 40);
|
||
REQUIRE(tanker->getRight()->getRight()->getRed() == true);
|
||
}
|
||
|
||
SECTION("Hinzufuegen in Baum mit Links-Rechtsrotationen") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 10, 0, 0);
|
||
nTree->addNode("Mayer3", 30, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
|
||
nTree->addNode("Mayer4", 7, 0, 0);
|
||
nTree->addNode("Mayer5", 8, 0, 0);
|
||
|
||
REQUIRE(tanker->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 8);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getNodeOrderID() == 7);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getLeft()->getRight()->getNodeOrderID() == 10);
|
||
REQUIRE(tanker->getLeft()->getRight()->getRed() == true);
|
||
}
|
||
|
||
SECTION("Hinzufuegen mit Rechtsrotationen - Anker") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 10, 0, 0);
|
||
nTree->addNode("Mayer3", 5, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
|
||
REQUIRE(tanker->getNodeOrderID() == 10);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 5);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 20);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
}
|
||
|
||
SECTION("Hinzufuegen mit Linksrotationen - Anker") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 30, 0, 0);
|
||
nTree->addNode("Mayer3", 40, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
|
||
REQUIRE(tanker->getNodeOrderID() == 30);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 20);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 40);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
}
|
||
|
||
SECTION("Hinzufuegen mit Links-Rechtsrotationen - Anker") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 5, 0, 0);
|
||
nTree->addNode("Mayer3", 10, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
|
||
REQUIRE(tanker->getNodeOrderID() == 10);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 5);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 20);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
|
||
nTree->printLevelOrder();
|
||
}
|
||
|
||
SECTION("Hinzufuegen mit Rechts-Linksrotationen - Anker") {
|
||
nTree->addNode("Mayer", 20, 0, 0);
|
||
nTree->addNode("Mayer2", 40, 0, 0);
|
||
nTree->addNode("Mayer3", 30, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
|
||
REQUIRE(tanker->getNodeOrderID() == 30);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 20);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 40);
|
||
REQUIRE(tanker->getRight()->getRed() == true);
|
||
}
|
||
|
||
SECTION("Hinzufuegen des Baumes aus der Aufgabenstellung") {
|
||
nTree->addNode("Mustermann", 1, 1000, 1);
|
||
nTree->addNode("Ritter", 1, 2000, 1);
|
||
nTree->addNode("Kaiser", 1, 3000, 1);
|
||
nTree->addNode("Hans", 1, 500, 1);
|
||
nTree->addNode("Schmitt", 1, 500, 2);
|
||
nTree->addNode("Schmitz", 1, 400, 2);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
|
||
|
||
REQUIRE(tanker->getNodeOrderID() == 2002);
|
||
REQUIRE(tanker->getRed() == false);
|
||
REQUIRE(tanker->getParent() == nullptr);
|
||
|
||
REQUIRE(tanker->getRight()->getNodeOrderID() == 3002);
|
||
REQUIRE(tanker->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getRight()->getParent()->getNodeOrderID() == 2002);
|
||
|
||
REQUIRE(tanker->getRight()->getRight() == nullptr);
|
||
|
||
REQUIRE(tanker->getRight()->getLeft() == nullptr);
|
||
|
||
REQUIRE(tanker->getLeft()->getNodeOrderID() == 503);
|
||
REQUIRE(tanker->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getLeft()->getParent()->getNodeOrderID() == 2002);
|
||
|
||
REQUIRE(tanker->getLeft()->getRight()->getNodeOrderID() == 1002);
|
||
REQUIRE(tanker->getLeft()->getRight()->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getRight()->getParent()->getNodeOrderID() == 503);
|
||
|
||
REQUIRE(tanker->getLeft()->getRight()->getRight() == nullptr);
|
||
|
||
REQUIRE(tanker->getLeft()->getRight()->getLeft() == nullptr);
|
||
|
||
REQUIRE(tanker->getLeft()->getLeft()->getNodeOrderID() == 502);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getRed() == false);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getParent()->getNodeOrderID() == 503);
|
||
|
||
REQUIRE(tanker->getLeft()->getLeft()->getRight() == nullptr);
|
||
|
||
REQUIRE(tanker->getLeft()->getLeft()->getLeft()->getNodeOrderID() == 403);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getLeft()->getRed() == true);
|
||
REQUIRE(tanker->getLeft()->getLeft()->getLeft()->getParent()->getNodeOrderID() == 502);
|
||
|
||
REQUIRE(tanker->getLeft()->getLeft()->getLeft()->getRight() == nullptr);
|
||
|
||
REQUIRE(tanker->getLeft()->getLeft()->getLeft()->getLeft() == nullptr);
|
||
|
||
nTree->printAll();
|
||
|
||
nTree->printLevelOrder();
|
||
|
||
std::cout << "========================================" << endl;
|
||
std::cout << "Testausgabe des Baumes aus der Aufgabenstellung abgeschlossen" << endl;
|
||
}
|
||
|
||
SECTION("Schwarzausgeglichenheit ueberpruefen - Baum gueltig") {
|
||
nTree->addNode("Name1", 20, 0, 0);
|
||
nTree->addNode("Name2", 30, 0, 0);
|
||
nTree->addNode("Name3", 10, 0, 0);
|
||
nTree->addNode("Name4", 40, 0, 0);
|
||
nTree->addNode("Name5", 22, 0, 0);
|
||
nTree->addNode("Name6", 25, 0, 0);
|
||
nTree->addNode("Name7", 50, 0, 0);
|
||
nTree->addNode("Name8", 28, 0, 0);
|
||
nTree->addNode("Name9", 26, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
REQUIRE(nTree->proofRBCriterion(tanker) == 1);
|
||
nTree->printLevelOrder(0);
|
||
nTree->printLevelOrder(1);
|
||
}
|
||
|
||
SECTION("Schwarzausgeglichenheit ueberpruefen - Baum ungueltig - 2 schwaze Knoten hintereinander") {
|
||
nTree->addNode("Name1", 20, 0, 0);
|
||
nTree->addNode("Name2", 30, 0, 0);
|
||
nTree->addNode("Name3", 10, 0, 0);
|
||
nTree->addNode("Name4", 40, 0, 0);
|
||
nTree->addNode("Name5", 22, 0, 0);
|
||
nTree->addNode("Name6", 25, 0, 0);
|
||
nTree->addNode("Name7", 50, 0, 0);
|
||
nTree->addNode("Name8", 28, 0, 0);
|
||
nTree->addNode("Name9", 26, 0, 0);
|
||
|
||
TreeNode* tanker = get_anker(*nTree);
|
||
std::cout << "Manuelles Umfaerben des linken roten Nachfolgers der Wurzel:" << std::endl;
|
||
tanker->getLeft()->setRed(false);
|
||
REQUIRE(!tanker->getLeft()->getRed());
|
||
REQUIRE(nTree->proofRBCriterion(tanker) < 0);
|
||
nTree->printLevelOrder();
|
||
}
|
||
|
||
SECTION("Hinzufuegen von Nodes - Erzeuge Grossbaum") {
|
||
std::mt19937 rd(42); // seed: = 42 um die Ergebnisse zu reproduzieren
|
||
std::normal_distribution<double> dist_Age(/*mean*/ 42, /*std dev*/ 13);
|
||
std::uniform_int_distribution<int> dist_PostCode(1067, 99998);
|
||
std::uniform_int_distribution<int> dist_Income(0, 100000);
|
||
|
||
|
||
|
||
std::queue<TreeNode*> q;
|
||
|
||
#ifdef GENERATE_CORRECT_ARRAYS
|
||
std::vector<std::vector<int>> node_order_id;
|
||
std::vector<std::vector<int>> node_parent_order_id;
|
||
std::vector<std::vector<bool>> node_is_red;
|
||
#else
|
||
std::vector<std::vector<int>> correct_node_order_id{ std::vector<int>{156702, }, std::vector<int>{156702, 118882, }, std::vector<int>{118882, 117493, 156702, }, std::vector<int>{118882, 117493, 156702, 101815, }, std::vector<int>{118882, 101815, 156702, 11369, 117493, }, std::vector<int>{118882, 101815, 156702, 11369, 117493, 127034, }, std::vector<int>{118882, 101815, 156702, 11369, 117493, 127034, 92245, }, std::vector<int>{118882, 101815, 156702, 11369, 117493, 127034, 92245, 106914, }, std::vector<int>{118882, 101815, 156702, 11369, 117493, 127034, 178637, 92245, 106914, }, std::vector<int>{118882, 101815, 156702, 11369, 117493, 127034, 178637, 92245, 106914, 131191, }, std::vector<int>{118882, 101815, 156702, 92245, 117493, 127034, 178637, 11369, 101222, 106914, 131191, }, std::vector<int>{118882, 101815, 156702, 92245, 117493, 131191, 178637, 11369, 101222, 106914, 127034, 155776, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, 143466, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, 124019, 143466, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, 88515, 124019, 143466, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 158579, 181409, 88515, 124019, 143466, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155584, 158579, 181409, 88515, 124019, 143466, 155776, }, std::vector<int>{118882, 101815, 156702, 92245, 108902, 131191, 178637, 77989, 101222, 106914, 117493, 127034, 155584, 158579, 181409, 11369, 88515, 124019, 143466, 155776, }, std::vector<int>{118882, 101815, 155584, 92245, 108902, 131191, 156702, 77989, 101222, 106914, 117493, 127034, 143466, 155776, 178637, 11369, 88515, 124019, 155784, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 11369, 88515, 101222, 108902, 127034, 143466, 155776, 178637, 50958, 106914, 117493, 124019, 155784, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 11369, 88515, 101222, 108902, 127034, 143466, 155784, 178637, 50958, 106914, 117493, 124019, 155776, 155888, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 127034, 143466, 155784, 178637, 11369, 50958, 106914, 117493, 124019, 155776, 155888, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 127034, 143466, 155784, 178637, 11369, 50958, 106914, 117493, 124019, 147212, 155776, 155888, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 124019, 143466, 155784, 178637, 11369, 50958, 106914, 117493, 123119, 127034, 147212, 155776, 155888, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 124019, 143466, 155784, 178637, 11369, 50958, 81638, 106914, 117493, 123119, 127034, 147212, 155776, 155888, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 124019, 147212, 155784, 178637, 11369, 50958, 81638, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 124019, 147212, 155784, 178637, 11369, 50958, 81638, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 45901, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 124019, 147212, 155784, 178637, 11369, 50958, 81638, 99436, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 45901, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 101222, 108902, 124019, 147212, 155784, 178637, 11369, 50958, 81638, 99436, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 45901, 121994, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 50958, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 45901, 121994, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 50958, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 45901, 65293, 121994, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 99436, 108902, 124019, 147212, 155784, 178637, 34173, 50958, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 11369, 45901, 65293, 121994, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 99436, 108902, 124019, 147212, 155784, 178637, 34173, 50958, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 11369, 45901, 65293, 108417, 121994, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 99436, 108902, 124019, 147212, 155784, 178637, 34173, 50958, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 11369, 45901, 65293, 108417, 121994, 128410, }, std::vector<int>{118882, 92245, 155584, 77989, 101815, 131191, 156702, 47357, 88515, 99436, 108902, 124019, 147212, 155784, 178637, 34173, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 11369, 45901, 50958, 65293, 108417, 121994, 128410, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 88515, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 81638, 108417, 121994, 128410, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 88515, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 81638, 108417, 121994, 123810, 128410, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 88515, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 81638, 108417, 121994, 123810, 128410, 51124, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 108417, 121994, 123810, 128410, 51124, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 108417, 116494, 121994, 123810, 128410, 51124, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 102255, 108417, 116494, 121994, 123810, 128410, 51124, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 102255, 108417, 116494, 121994, 123810, 128410, 139772, 51124, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 128410, 139772, 51124, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 128410, 139772, 51124, 91856, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 45901, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 41289, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 128410, 139772, 153284, 51124, 91856, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 128410, 139772, 153284, 51124, 91856, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 128410, 139772, 153284, 51124, 91856, 107116, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 51124, 91856, 107116, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 51124, 87830, 91856, 107116, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 51124, 87830, 91856, 107116, 123932, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 87830, 91856, 107116, 123932, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 87830, 91856, 107116, 123932, 82242, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 62548, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 117493, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 100603, 102255, 108417, 116494, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 116494, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 139772, 153284, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 96734, 101222, 106914, 116494, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 94168, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 139772, 153284, 174602, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 94168, 101222, 106914, 116494, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 139772, 153284, 174602, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 94168, 101222, 106914, 116494, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 139772, 153284, 174602, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 112001, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 94168, 101222, 106914, 116494, 123119, 127034, 143466, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 139772, 153284, 174602, 181818, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 112001, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181818, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 112001, 123932, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181818, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 112001, 123932, 76628, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 81638, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 80230, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181818, 45490, 51124, 62548, 74006, 81356, 85528, 91856, 107116, 112001, 123932, 138594, 76628, 82242, 87830, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181409, 22290, 38138, 45901, 50958, 65293, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181818, 45490, 51124, 62548, 74006, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 76628, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 11369, 41289, 56700, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181818, 22290, 38138, 45901, 50958, 65293, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181409, 191776, 45490, 51124, 62548, 74006, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 76628, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 22290, 41289, 56700, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181818, 11369, 33023, 38138, 45901, 50958, 65293, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181409, 191776, 45490, 51124, 62548, 74006, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 76628, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 22290, 41289, 56700, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 158579, 181818, 11369, 33023, 38138, 45901, 50958, 65293, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 174602, 181409, 191776, 45490, 51124, 62548, 74006, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 73145, 76628, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 22290, 41289, 56700, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 169760, 181818, 11369, 33023, 38138, 45901, 50958, 65293, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 158579, 174602, 181409, 191776, 45490, 51124, 62548, 74006, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 73145, 76628, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 47357, 101815, 131191, 156702, 34173, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 22290, 41289, 65293, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 169760, 181818, 11369, 33023, 38138, 45901, 56700, 74006, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 158579, 174602, 181409, 191776, 45490, 50958, 62548, 73145, 76628, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 51124, 76989, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 65293, 101815, 131191, 156702, 47357, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 34173, 56700, 74006, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 169760, 181818, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 134952, 143466, 153284, 158579, 174602, 181409, 191776, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 138594, 45490, 81356, 83523, }, std::vector<int>{118882, 92245, 155584, 65293, 101815, 131191, 156702, 47357, 77989, 99436, 108902, 124019, 147212, 155784, 178637, 34173, 56700, 74006, 85528, 94168, 101222, 106914, 116494, 123119, 127034, 139772, 154382, 155776, 155888, 169760, 181818, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 121994, 123810, 126129, 128410, 136674, 143466, 153284, 158579, 174602, 181409, 191776, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 107116, 112001, 123932, 134952, 138594, 45490, 81356, 83523, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 156702, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 147212, 155784, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 139772, 154382, 155776, 155888, 169760, 181818, 15282, 45490, 81356, 83523, 107116, 112001, 121994, 123810, 126129, 128410, 136674, 143466, 153284, 158579, 174602, 181409, 191776, 123932, 134952, 138594, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 147212, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 139772, 154382, 155784, 158579, 174602, 181818, 15282, 45490, 81356, 83523, 107116, 112001, 121994, 123810, 126129, 128410, 136674, 143466, 153284, 155776, 155888, 157604, 181409, 191776, 123932, 134952, 138594, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 147212, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 139772, 154382, 155784, 158579, 174602, 181818, 15282, 45490, 81356, 83523, 107116, 112001, 121994, 123810, 126129, 128410, 136674, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 134952, 138594, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 45490, 81356, 83523, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 45490, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 38503, 45490, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 62548, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 81356, 83523, 96007, 107116, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 81356, 83523, 96007, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 81356, 83523, 96007, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 83523, 96007, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 83523, 96007, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 83523, 96007, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 81953, 83523, 96007, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 99436, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 101222, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96399, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 81953, 83523, 96007, 96734, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 81953, 83523, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 81953, 83523, 87485, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 81953, 83523, 87485, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 121346, 123932, 133954, 137742, 141314, 153284, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 154382, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 121346, 123932, 133954, 137742, 141314, 153284, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 121346, 123932, 133954, 137742, 141314, 149070, 154382, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 101222, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 100603, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 33023, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 27983, 38503, 45490, 46390, 55868, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 108417, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 107116, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 38503, 45490, 46390, 49419, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 51124, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 54337, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 51124, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 54337, 62548, 63918, 65875, 76989, 80230, 82242, 87830, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 51124, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87485, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, 155551, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 54337, 62548, 63918, 65875, 76989, 80230, 82242, 87485, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 51124, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87161, 87830, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, 155551, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 54337, 62548, 63918, 65875, 76989, 80230, 82242, 87485, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 51124, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87161, 87830, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 173147, 181409, 191776, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, 155551, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 54337, 62548, 63918, 65875, 76989, 80230, 82242, 87485, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 51124, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87161, 87830, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157604, 162969, 173147, 181409, 191776, 6755, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 192153, 141848, 155551, }, std::vector<int>{92245, 65293, 118882, 47357, 77989, 101815, 155584, 34173, 56700, 74006, 85528, 96399, 108902, 131191, 169760, 22290, 41289, 50958, 63114, 73145, 76628, 81638, 88515, 94168, 99436, 106914, 116494, 124019, 139772, 156702, 178637, 11369, 27983, 38138, 45901, 48189, 54337, 62548, 63918, 65875, 76989, 80230, 82242, 87485, 91856, 92668, 96007, 96734, 100603, 102255, 107116, 109814, 117493, 123119, 127034, 136674, 147212, 155784, 158579, 174602, 181818, 5083, 15282, 22324, 33023, 35428, 38503, 45490, 46390, 49419, 51124, 55868, 60254, 62927, 78689, 81356, 81953, 83523, 87161, 87830, 90723, 96768, 99664, 101222, 106988, 108417, 109512, 112001, 117890, 121994, 123810, 126129, 128410, 134952, 138594, 143466, 153284, 155776, 155888, 157349, 162969, 173147, 181409, 191776, 6755, 25051, 43533, 81315, 84509, 108781, 115506, 121346, 123932, 133954, 137742, 141314, 143710, 149070, 154382, 157051, 157604, 192153, 141848, 155551, }, };
|
||
std::vector<std::vector<int>> correct_node_parent_order_id{ std::vector<int>{-1, }, std::vector<int>{-1, 156702, }, std::vector<int>{-1, 118882, 118882, }, std::vector<int>{-1, 118882, 118882, 117493, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 11369, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 11369, 117493, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 11369, 117493, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 11369, 117493, 127034, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 117493, 127034, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 117493, 131191, 131191, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 155776, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 127034, 155776, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 11369, 127034, 155776, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 178637, 11369, 127034, 155776, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 178637, 11369, 127034, 155584, 155584, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 178637, 77989, 77989, 127034, 155584, 155584, }, std::vector<int>{-1, 118882, 118882, 101815, 101815, 155584, 155584, 92245, 92245, 108902, 108902, 131191, 131191, 156702, 156702, 77989, 77989, 127034, 155776, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 11369, 108902, 108902, 127034, 155776, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 11369, 108902, 108902, 127034, 155784, 155784, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 108902, 108902, 127034, 155784, 155784, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 108902, 108902, 127034, 143466, 155784, 155784, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 108902, 108902, 124019, 124019, 143466, 155784, 155784, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 108902, 108902, 124019, 124019, 143466, 155784, 155784, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 101222, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 101222, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 123119, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 123119, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 50958, 123119, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 34173, 34173, 50958, 123119, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 34173, 34173, 50958, 106914, 123119, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 34173, 34173, 50958, 106914, 123119, 127034, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 88515, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 34173, 34173, 56700, 56700, 106914, 123119, 127034, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 88515, 106914, 123119, 127034, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 88515, 106914, 123119, 123119, 127034, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 88515, 106914, 123119, 123119, 127034, 50958, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 106914, 123119, 123119, 127034, 50958, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 106914, 117493, 123119, 123119, 127034, 50958, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 106914, 106914, 117493, 123119, 123119, 127034, 50958, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 106914, 106914, 117493, 123119, 123119, 127034, 143466, 50958, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 143466, 50958, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 143466, 50958, 88515, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 45901, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 143466, 154382, 50958, 88515, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 143466, 154382, 50958, 88515, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 143466, 154382, 50958, 88515, 108417, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 50958, 88515, 108417, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 50958, 88515, 88515, 108417, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 50958, 88515, 88515, 108417, 123810, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 88515, 88515, 108417, 123810, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 88515, 88515, 108417, 123810, 87830, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 65293, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 101222, 106914, 106914, 117493, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 143466, 154382, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 96734, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 143466, 154382, 158579, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 143466, 154382, 158579, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 143466, 154382, 158579, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 109814, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 143466, 154382, 158579, 181409, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 109814, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181409, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 109814, 123810, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181409, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 109814, 123810, 74006, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 81638, 81638, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181409, 45901, 50958, 65293, 65293, 80230, 88515, 88515, 108417, 109814, 123810, 134952, 74006, 85528, 85528, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181409, 45901, 50958, 65293, 65293, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 74006, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 41289, 41289, 56700, 56700, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181818, 181818, 45901, 50958, 65293, 65293, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 74006, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 22290, 22290, 41289, 41289, 56700, 56700, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181818, 181818, 45901, 50958, 65293, 65293, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 74006, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 22290, 22290, 41289, 41289, 56700, 56700, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 158579, 181818, 181818, 45901, 50958, 65293, 65293, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 74006, 74006, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 22290, 22290, 41289, 41289, 56700, 56700, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 169760, 169760, 181818, 181818, 45901, 50958, 65293, 65293, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 74006, 74006, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 47357, 47357, 101815, 101815, 131191, 131191, 156702, 156702, 34173, 34173, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 22290, 22290, 41289, 41289, 65293, 65293, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 169760, 169760, 181818, 181818, 45901, 56700, 56700, 74006, 74006, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 50958, 76628, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 65293, 65293, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 169760, 169760, 181818, 181818, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 134952, 45901, 80230, 82242, }, std::vector<int>{-1, 118882, 118882, 92245, 92245, 155584, 155584, 65293, 65293, 101815, 101815, 131191, 131191, 156702, 156702, 47357, 47357, 77989, 77989, 99436, 99436, 108902, 108902, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 169760, 169760, 181818, 181818, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 108417, 109814, 123810, 136674, 136674, 45901, 80230, 82242, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 156702, 156702, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 147212, 147212, 155784, 155784, 178637, 178637, 11369, 45901, 80230, 82242, 108417, 109814, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 169760, 169760, 181818, 181818, 123810, 136674, 136674, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 147212, 147212, 156702, 156702, 178637, 178637, 11369, 45901, 80230, 82242, 108417, 109814, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 155784, 155784, 158579, 181818, 181818, 123810, 136674, 136674, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 147212, 147212, 156702, 156702, 178637, 178637, 11369, 45901, 80230, 82242, 108417, 109814, 123119, 123119, 127034, 127034, 139772, 139772, 154382, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 136674, 136674, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 45901, 80230, 82242, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 38138, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 62548, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 82242, 96734, 108417, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 82242, 96734, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 82242, 96734, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 96734, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 96734, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 96734, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 82242, 96734, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 99436, 99436, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 101222, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 82242, 96399, 96399, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 82242, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 82242, 87830, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 82242, 87830, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 121994, 123810, 134952, 138594, 143466, 154382, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 121994, 123810, 134952, 138594, 143466, 154382, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 121994, 123810, 134952, 138594, 143466, 153284, 153284, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 101222, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 33023, 38138, 45901, 45901, 51124, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 108417, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 51124, 62548, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 45901, 45901, 48189, 51124, 62548, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 51124, 62548, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 54337, 54337, 62548, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 54337, 54337, 62548, 62548, 80230, 80230, 82242, 82242, 87830, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 54337, 54337, 62548, 62548, 80230, 80230, 82242, 82242, 87485, 87485, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 54337, 54337, 62548, 62548, 80230, 80230, 82242, 82242, 87485, 87485, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 174602, 181818, 181818, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 54337, 54337, 62548, 62548, 80230, 80230, 82242, 82242, 87485, 87485, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 174602, 181818, 181818, 5083, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157604, 191776, 141314, 154382, }, std::vector<int>{-1, 92245, 92245, 65293, 65293, 118882, 118882, 47357, 47357, 77989, 77989, 101815, 101815, 155584, 155584, 34173, 34173, 56700, 56700, 74006, 74006, 85528, 85528, 96399, 96399, 108902, 108902, 131191, 131191, 169760, 169760, 22290, 22290, 41289, 41289, 50958, 50958, 63114, 63114, 73145, 76628, 81638, 81638, 88515, 88515, 94168, 94168, 99436, 99436, 106914, 106914, 116494, 116494, 124019, 124019, 139772, 139772, 156702, 156702, 178637, 178637, 11369, 11369, 27983, 27983, 38138, 38138, 45901, 45901, 48189, 54337, 54337, 62548, 62548, 80230, 80230, 82242, 82242, 87485, 87485, 91856, 96734, 100603, 100603, 107116, 107116, 109814, 109814, 117493, 123119, 123119, 127034, 127034, 136674, 136674, 147212, 147212, 155784, 155784, 158579, 158579, 174602, 181818, 181818, 5083, 22324, 45490, 81356, 83523, 108417, 112001, 121994, 123810, 134952, 138594, 143466, 143466, 153284, 153284, 157349, 157349, 191776, 141314, 154382, }, };
|
||
std::vector<std::vector<bool>> correct_node_is_red{ std::vector<bool>{0, }, std::vector<bool>{0, 1, }, std::vector<bool>{0, 1, 1, }, std::vector<bool>{0, 0, 0, 1, }, std::vector<bool>{0, 0, 0, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 1, 0, 0, 0, 0, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, }, std::vector<bool>{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, }, };
|
||
#endif // GENERATE_CORRECT_ARRAYS
|
||
|
||
|
||
for (int i = 0; i < 124; i++) {
|
||
string info = "Name-" + to_string(i);
|
||
|
||
// Neuen Knoten mit Zufallswerten erstellen
|
||
int age = dist_Age(rd);
|
||
double income = dist_Income(rd);
|
||
int postCode = dist_PostCode(rd);
|
||
|
||
nTree->addNode(info, age, income, postCode);
|
||
|
||
//#pragma region check_tree
|
||
|
||
#ifdef GENERATE_CORRECT_ARRAYS
|
||
node_order_id.push_back(std::vector<int>());
|
||
node_parent_order_id.push_back(std::vector<int>());
|
||
node_is_red.push_back(std::vector<bool>());
|
||
#endif
|
||
|
||
int j = 0;
|
||
|
||
// start search
|
||
q.push(get_anker(*nTree));
|
||
|
||
//while (!q.empty())
|
||
//{
|
||
TreeNode* node = q.front();
|
||
q.pop();
|
||
|
||
if (node) {
|
||
#ifdef GENERATE_CORRECT_ARRAYS
|
||
node_order_id[i].push_back(node->getNodeOrderID());
|
||
node_parent_order_id[i].push_back(node->getParent() ? node->getParent()->getNodeOrderID() : -1);
|
||
node_is_red[i].push_back(node->getRed());
|
||
#else
|
||
//REQUIRE(correct_node_order_id[i][j] == node->getNodeOrderID());
|
||
//REQUIRE(correct_node_parent_order_id[i][j] == (node->getParent() ? node->getParent()->getNodeOrderID() : -1));
|
||
//REQUIRE(correct_node_is_red[i][j] == node->getRed());
|
||
j++;
|
||
#endif // GENERATE_CORRECT_ARRAYS
|
||
|
||
q.push(node->getLeft());
|
||
q.push(node->getRight());
|
||
}
|
||
//}
|
||
//#pragma endregion
|
||
}
|
||
|
||
|
||
|
||
|
||
#ifdef GENERATE_CORRECT_ARRAYS
|
||
std::cout << "correct_node_order_id: {";
|
||
for (auto ids : node_order_id) {
|
||
std::cout << "std::vector<int>{";
|
||
for (auto id : ids) std::cout << id << ", ";
|
||
std::cout << "}, ";
|
||
}
|
||
std::cout << "}" << std::endl << std::endl << std::endl;
|
||
std::cout << "correct_node_parent_order_id: {";
|
||
for (auto ids : node_parent_order_id) {
|
||
std::cout << "std::vector<int>{";
|
||
for (auto id : ids) std::cout << id << ", ";
|
||
std::cout << "}, ";
|
||
}
|
||
std::cout << "}" << std::endl << std::endl << std::endl;
|
||
std::cout << "correct_node_is_red: {";
|
||
for (auto is_reds : node_is_red) {
|
||
std::cout << "std::vector<bool>{";
|
||
for (auto is_red : is_reds) std::cout << is_red << ", ";
|
||
std::cout << "}, ";
|
||
}
|
||
std::cout << "}" << std::endl << std::endl << std::endl;
|
||
#endif // GENERATE_CORRECT_ARRAYS
|
||
|
||
|
||
|
||
|
||
nTree->printAll();
|
||
|
||
nTree->printLevelOrder();
|
||
|
||
std::cout << "========================================" << endl;
|
||
std::cout << "Testausgabe des Grossbaums abgeschlossen" << endl;
|
||
}
|
||
delete nTree;
|
||
}
|
||
|
||
/***********************************************
|
||
* Testroutine des Knotens:
|
||
* - Einfaches pruefen der Getter und Setter in Ausf<73>hrung
|
||
*/
|
||
TEST_CASE("TreeNode Testing", "[TREENODE]") {
|
||
|
||
Tree* smallTree = new Tree();
|
||
smallTree->addNode("Scholl", 20, 0, 0);
|
||
TreeNode* ref = get_anker(*smallTree);
|
||
|
||
SECTION("Getter von TreeNode - simple") {
|
||
|
||
REQUIRE(ref->getName() == "Scholl");
|
||
REQUIRE(ref->getAge() == 20);
|
||
REQUIRE(ref->getIncome() == 0);
|
||
REQUIRE(ref->getLeft() == nullptr);
|
||
REQUIRE(ref->getRight() == nullptr);
|
||
REQUIRE(ref->getNodeChronologicalID() == 0);
|
||
REQUIRE(ref->getNodeOrderID() == 20);
|
||
REQUIRE(ref->getPostCode() == 0);
|
||
}
|
||
|
||
SECTION("Setter von TreeNode - simple") {
|
||
|
||
ref->setAge(22);
|
||
REQUIRE(ref->getAge() == 22);
|
||
|
||
ref->setIncome(1000);
|
||
REQUIRE(ref->getIncome() == 1000);
|
||
|
||
ref->setLeft(nullptr);
|
||
REQUIRE(ref->getLeft() == nullptr);
|
||
|
||
ref->setRight(nullptr);
|
||
REQUIRE(ref->getRight() == nullptr);
|
||
|
||
ref->setName("Kaiser");
|
||
REQUIRE(ref->getName() == "Kaiser");
|
||
|
||
ref->setPostCode(1000);
|
||
REQUIRE(ref->getPostCode() == 1000);
|
||
|
||
}
|
||
delete smallTree;
|
||
}
|
||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|