/************************************************* * ADS Praktikum 3 * Unit-Testdatei * Stand: 11.05.2021 * ************************************************* * �nderungen untersagt! *************************************************/ #include "catch.h" #include "Tree.h" #include "TreeNode.h" #include #include #include #include #include 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 dist_Age(/*mean*/ 42, /*std dev*/ 13); std::uniform_int_distribution dist_PostCode(1067, 99998); std::uniform_int_distribution dist_Income(0, 100000); std::queue q; #ifdef GENERATE_CORRECT_ARRAYS std::vector> node_order_id; std::vector> node_parent_order_id; std::vector> node_is_red; #else std::vector> correct_node_order_id{ std::vector{156702, }, std::vector{156702, 118882, }, std::vector{118882, 117493, 156702, }, std::vector{118882, 117493, 156702, 101815, }, std::vector{118882, 101815, 156702, 11369, 117493, }, std::vector{118882, 101815, 156702, 11369, 117493, 127034, }, std::vector{118882, 101815, 156702, 11369, 117493, 127034, 92245, }, std::vector{118882, 101815, 156702, 11369, 117493, 127034, 92245, 106914, }, std::vector{118882, 101815, 156702, 11369, 117493, 127034, 178637, 92245, 106914, }, std::vector{118882, 101815, 156702, 11369, 117493, 127034, 178637, 92245, 106914, 131191, }, std::vector{118882, 101815, 156702, 92245, 117493, 127034, 178637, 11369, 101222, 106914, 131191, }, std::vector{118882, 101815, 156702, 92245, 117493, 131191, 178637, 11369, 101222, 106914, 127034, 155776, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, 143466, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, 124019, 143466, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 181409, 88515, 124019, 143466, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155776, 158579, 181409, 88515, 124019, 143466, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 11369, 101222, 106914, 117493, 127034, 155584, 158579, 181409, 88515, 124019, 143466, 155776, }, std::vector{118882, 101815, 156702, 92245, 108902, 131191, 178637, 77989, 101222, 106914, 117493, 127034, 155584, 158579, 181409, 11369, 88515, 124019, 143466, 155776, }, std::vector{118882, 101815, 155584, 92245, 108902, 131191, 156702, 77989, 101222, 106914, 117493, 127034, 143466, 155776, 178637, 11369, 88515, 124019, 155784, 158579, 181409, }, std::vector{118882, 92245, 155584, 77989, 101815, 131191, 156702, 11369, 88515, 101222, 108902, 127034, 143466, 155776, 178637, 50958, 106914, 117493, 124019, 155784, 158579, 181409, }, std::vector{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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> correct_node_parent_order_id{ std::vector{-1, }, std::vector{-1, 156702, }, std::vector{-1, 118882, 118882, }, std::vector{-1, 118882, 118882, 117493, }, std::vector{-1, 118882, 118882, 101815, 101815, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 11369, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 11369, 117493, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 11369, 117493, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 11369, 117493, 127034, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 117493, 127034, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 117493, 131191, 131191, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 155776, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 127034, 155776, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 11369, 127034, 155776, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 178637, 11369, 127034, 155776, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 178637, 11369, 127034, 155584, 155584, }, std::vector{-1, 118882, 118882, 101815, 101815, 156702, 156702, 92245, 92245, 108902, 108902, 131191, 131191, 178637, 178637, 77989, 77989, 127034, 155584, 155584, }, std::vector{-1, 118882, 118882, 101815, 101815, 155584, 155584, 92245, 92245, 108902, 108902, 131191, 131191, 156702, 156702, 77989, 77989, 127034, 155776, 178637, 178637, }, std::vector{-1, 118882, 118882, 92245, 92245, 155584, 155584, 77989, 77989, 101815, 101815, 131191, 131191, 156702, 156702, 11369, 108902, 108902, 127034, 155776, 178637, 178637, }, std::vector{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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{-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> correct_node_is_red{ std::vector{0, }, std::vector{0, 1, }, std::vector{0, 1, 1, }, std::vector{0, 0, 0, 1, }, std::vector{0, 0, 0, 1, 1, }, std::vector{0, 0, 0, 1, 1, 1, }, std::vector{0, 1, 0, 0, 0, 1, 1, }, std::vector{0, 1, 0, 0, 0, 1, 1, 1, }, std::vector{0, 1, 0, 0, 0, 1, 1, 1, 1, }, std::vector{0, 1, 1, 0, 0, 0, 0, 1, 1, 1, }, std::vector{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, }, std::vector{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, }, std::vector{0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, }, std::vector{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }, std::vector{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, }, std::vector{0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, }, std::vector{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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{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()); node_parent_order_id.push_back(std::vector()); node_is_red.push_back(std::vector()); #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{"; 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{"; 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{"; 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�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; } // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++