From d097e5e3e59a1ad6a44eaa18b84c3ad6325a716f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 1 Dec 2020 00:50:17 +0100 Subject: [PATCH 001/385] First signs of life. --- hello.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 hello.txt diff --git a/hello.txt b/hello.txt new file mode 100644 index 00000000..8ecf0093 --- /dev/null +++ b/hello.txt @@ -0,0 +1 @@ +testing if git is set up correctly From e4e33a2ed26383a0dc5110f46634865a8cec6d84 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 1 Dec 2020 00:50:43 +0100 Subject: [PATCH 002/385] First signs of life detected. --- hello.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 hello.txt diff --git a/hello.txt b/hello.txt deleted file mode 100644 index 8ecf0093..00000000 --- a/hello.txt +++ /dev/null @@ -1 +0,0 @@ -testing if git is set up correctly From 43ec0997d3269a8abdc2f3b80986e7fca7a51b5d Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 8 Jan 2021 17:56:47 +0100 Subject: [PATCH 003/385] Progress towards vectorization setup. --- .../Dialect/SPN/Analysis/SLP/SLPGraph.h | 44 ++++++++++++++++++ mlir/include/Dialect/SPN/SPNPasses.h | 4 ++ mlir/include/Dialect/SPN/SPNPasses.td | 5 +++ .../lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp | 45 +++++++++++++++++++ mlir/lib/Dialect/SPN/CMakeLists.txt | 2 + .../Dialect/SPN/Passes/SPNVectorization.cpp | 42 +++++++++++++++++ mlir/tools/spnc-opt/spnc-opt.cpp | 4 ++ 7 files changed, 146 insertions(+) create mode 100644 mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp create mode 100644 mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h new file mode 100644 index 00000000..8933c35b --- /dev/null +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h @@ -0,0 +1,44 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPGRAPH_H +#define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPGRAPH_H + +#include "mlir/IR/Operation.h" +#include "mlir/IR/OpDefinition.h" +#include "llvm/ADT/SmallPtrSet.h" +#include "llvm/ADT/StringMap.h" + +namespace mlir { + namespace spn { + namespace slp { + + /// + /// Graph class storing Use-Def chains of an SPN. + class SLPGraph { + + public: + + /// Constructor, initialize analysis. + /// \param root Root node of a (sub-)graph or query operation. + explicit SLPGraph(Operation* root); + + /// + /// \return All seed operations. + const SmallPtrSet& getSeeds() const; + + private: + + void analyzeGraph(Operation* root); + void traverseSubgraph(Operation* root); + + SmallPtrSet seeds; + + }; + } + } +} + +#endif //SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPGRAPH_H diff --git a/mlir/include/Dialect/SPN/SPNPasses.h b/mlir/include/Dialect/SPN/SPNPasses.h index 4f8816d8..0ae66fbe 100644 --- a/mlir/include/Dialect/SPN/SPNPasses.h +++ b/mlir/include/Dialect/SPN/SPNPasses.h @@ -21,6 +21,10 @@ namespace mlir { /// \return Pass instance. std::unique_ptr> createSPNTypePinningPass(); + /// Instantiate the SPNVectorization pass vectorizing the computation of the SPN. + /// \return Pass instance. + std::unique_ptr> createSPNVectorizationPass(); + #define GEN_PASS_REGISTRATION #include "SPN/SPNPasses.h.inc" } diff --git a/mlir/include/Dialect/SPN/SPNPasses.td b/mlir/include/Dialect/SPN/SPNPasses.td index 93a59794..bbbd7ac3 100644 --- a/mlir/include/Dialect/SPN/SPNPasses.td +++ b/mlir/include/Dialect/SPN/SPNPasses.td @@ -13,4 +13,9 @@ def SPNTypePinning : Pass<"spn-type-pinning", "ModuleOp"> { let constructor = "mlir::spn::createSPNTypePinningPass()"; } +def SPNVectorization : Pass<"spn-vectorization", "ModuleOp"> { + let summary = "Vectorize SPN execution"; + let constructor = "mlir::spn::createSPNVectorizationPass()"; +} + #endif // MLIR_DIALECT_SPN_PASSES \ No newline at end of file diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp new file mode 100644 index 00000000..7216e4ff --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp @@ -0,0 +1,45 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "SPN/Analysis/SLP/SLPGraph.h" +#include "SPN/SPNInterfaces.h" + +#include + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::slp; + +SLPGraph::SLPGraph(Operation* root) : seeds{} { + assert(root); + analyzeGraph(root); +} + +const SmallPtrSet& SLPGraph::getSeeds() const { return seeds; } + +void SLPGraph::analyzeGraph(Operation* root) { + if (auto query = dyn_cast(root)) { + // If this is a query op, traverse all root nodes stored in the query. + for (auto r : query.getRootNodes()) { + analyzeGraph(r); + } + + } else { + traverseSubgraph(root); + } +} + +void SLPGraph::traverseSubgraph(Operation* root) { + std::cout << root->getName().getStringRef().str() << std::endl; + if (auto leaf = dyn_cast(root)) { + std::cout << "\tis a leaf." << std::endl; + } else { + std::cout << "\tis an inner node." << std::endl; + for (auto op : root->getOperands()) { + traverseSubgraph(op.getDefiningOp()); + } + } + +} diff --git a/mlir/lib/Dialect/SPN/CMakeLists.txt b/mlir/lib/Dialect/SPN/CMakeLists.txt index 23272bb7..d3305475 100644 --- a/mlir/lib/Dialect/SPN/CMakeLists.txt +++ b/mlir/lib/Dialect/SPN/CMakeLists.txt @@ -5,11 +5,13 @@ add_mlir_dialect_library(MLIRSPN SPNEnums.cpp Analysis/SPNNodeLevel.cpp Analysis/SPNGraphStatistics.cpp + Analysis/SLP/SLPGraph.cpp Canonicalization/CanonicalizationPatterns.cpp Simplification/SimplificationPatterns.cpp TypeAnalysis/TypePinningPatterns.cpp Passes/SPNOpSimplifier.cpp Passes/SPNTypePinning.cpp + Passes/SPNVectorization.cpp ADDITIONAL_HEADER_DIRS ${PROJECT_SOURCE_DIR}/mlir/include/Dialect diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp new file mode 100644 index 00000000..38bd8e01 --- /dev/null +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -0,0 +1,42 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "mlir/IR/Matchers.h" +#include "mlir/IR/PatternMatch.h" +#include "SPN/SPNPasses.h" +#include "SPNPassDetails.h" +#include +#include +#include "SPN/Analysis/SLP/SLPGraph.h" +using namespace mlir; +using namespace mlir::spn; + +namespace { + + struct SPNVectorization : public SPNVectorizationBase { + + protected: + void runOnOperation() override { + // TODO + std::cout << "Starting SPN vectorization..." << std::endl; + auto module = getOperation(); + llvm::SmallVector queries; + module.walk([&queries](Operation* op) { + if (auto query = dyn_cast(op)) { + queries.push_back(op); + } + }); + slp::SLPGraph graph(queries.front()); + std::cout << queries.front()->getName().getStringRef().str() << std::endl; + + } + }; + +} + +std::unique_ptr> mlir::spn::createSPNVectorizationPass() { + return std::make_unique(); +} + diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 8f7ffbaf..07d9c0be 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -71,6 +71,10 @@ int main(int argc, char** argv) { return mlir::spn::createSPNTypePinningPass(); }); + mlir::registerPass("spn-vectorize", "Vectorize the SPN execution", []() -> std::unique_ptr { + return mlir::spn::createSPNVectorizationPass(); + }); + mlir::registerPass("spn-to-standard", "Lower SPN to Standard dialect", []() -> std::unique_ptr { return mlir::spn::createSPNtoStandardConversionPass(); }); From 8a58225798206638a19bd32f464e847b1f5c883f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 10 Jan 2021 02:52:58 +0100 Subject: [PATCH 004/385] Build graph progress. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 39 ++++++++ .../Analysis/SLP/{SLPGraph.h => SLPTree.h} | 22 +++-- .../lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp | 45 --------- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 20 ++++ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 94 +++++++++++++++++++ mlir/lib/Dialect/SPN/CMakeLists.txt | 3 +- .../Dialect/SPN/Passes/SPNVectorization.cpp | 16 ++-- 7 files changed, 175 insertions(+), 64 deletions(-) create mode 100644 mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h rename mlir/include/Dialect/SPN/Analysis/SLP/{SLPGraph.h => SLPTree.h} (63%) delete mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h new file mode 100644 index 00000000..90a45bca --- /dev/null +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -0,0 +1,39 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPNODE_H +#define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPNODE_H + +#include "mlir/IR/Operation.h" +#include "mlir/IR/OpDefinition.h" +#include "llvm/ADT/SmallVector.h" + +namespace mlir { + namespace spn { + namespace slp { + + /// + /// Stores vectorizable instructions. + class SLPNode { + + public: + + /// Constructor, initialize empty SLP node. + /// \param width The width of the operations vector. + explicit SLPNode(size_t const& width); + + explicit SLPNode(std::vector const& values); + + private: + + size_t const width; + std::vector operations; + + }; + } + } +} + +#endif //SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPNODE_H diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h similarity index 63% rename from mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h rename to mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 8933c35b..1e916729 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPGraph.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -10,6 +10,10 @@ #include "mlir/IR/OpDefinition.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/StringMap.h" +#include "SLPNode.h" + +#include +#include namespace mlir { namespace spn { @@ -17,24 +21,24 @@ namespace mlir { /// /// Graph class storing Use-Def chains of an SPN. - class SLPGraph { + class SLPTree { public: /// Constructor, initialize analysis. /// \param root Root node of a (sub-)graph or query operation. - explicit SLPGraph(Operation* root); - - /// - /// \return All seed operations. - const SmallPtrSet& getSeeds() const; + explicit SLPTree(Operation* op); private: - void analyzeGraph(Operation* root); - void traverseSubgraph(Operation* root); + void buildGraph(std::vector const& values); + + bool vectorizable(std::vector const& values) const; + bool commutative(std::vector const& values) const; + + std::vector getOperands(std::vector const& values) const; - SmallPtrSet seeds; + std::vector graph; }; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp deleted file mode 100644 index 7216e4ff..00000000 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPGraph.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#include "SPN/Analysis/SLP/SLPGraph.h" -#include "SPN/SPNInterfaces.h" - -#include - -using namespace mlir; -using namespace mlir::spn; -using namespace mlir::spn::slp; - -SLPGraph::SLPGraph(Operation* root) : seeds{} { - assert(root); - analyzeGraph(root); -} - -const SmallPtrSet& SLPGraph::getSeeds() const { return seeds; } - -void SLPGraph::analyzeGraph(Operation* root) { - if (auto query = dyn_cast(root)) { - // If this is a query op, traverse all root nodes stored in the query. - for (auto r : query.getRootNodes()) { - analyzeGraph(r); - } - - } else { - traverseSubgraph(root); - } -} - -void SLPGraph::traverseSubgraph(Operation* root) { - std::cout << root->getName().getStringRef().str() << std::endl; - if (auto leaf = dyn_cast(root)) { - std::cout << "\tis a leaf." << std::endl; - } else { - std::cout << "\tis an inner node." << std::endl; - for (auto op : root->getOperands()) { - traverseSubgraph(op.getDefiningOp()); - } - } - -} diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp new file mode 100644 index 00000000..179ac72e --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -0,0 +1,20 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "SPN/Analysis/SLP/SLPNode.h" + +#include + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::slp; + +SLPNode::SLPNode(size_t const& width) : width{width}, operations{} { +} + +SLPNode::SLPNode(std::vector const& values) : width{values.size()}, operations{values} { +} + + diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp new file mode 100644 index 00000000..365b9909 --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -0,0 +1,94 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "SPN/Analysis/SLP/SLPTree.h" +#include "SPN/SPNInterfaces.h" + +#include +#include "llvm/ADT/StringMap.h" + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::slp; + +SLPTree::SLPTree(Operation* root) { + assert(root); + llvm::StringMap> operationsByOpCode; + for (auto& op : root->getBlock()->getOperations()) { + operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); + } + for (auto const& entry : operationsByOpCode) { + buildGraph(entry.getValue()); + } + +} + +/* +void SLPTree::analyzeGraph(Operation* root) { + traverseSubgraph(root); +} + +void SLPTree::traverseSubgraph(Operation* root) { + std::cout << root->getName().getStringRef().str() << std::endl; + if (auto leaf = dyn_cast(root)) { + std::cout << "\tis a leaf." << std::endl; + } else { + std::cout << "\tis an inner node." << std::endl; + for (auto op : root->getOperands()) { + traverseSubgraph(op.getDefiningOp()); + } + } + +}*/ + + +void SLPTree::buildGraph(std::vector const& values) { + for (auto const& op : values) { + std::cout << op->getName().getStringRef().str() << std::endl; + } + // Stop growing graph + if (!vectorizable(values)) { + // Create new node for values and add to graph + graph.emplace_back(values); + // Recursion call to grow graph further + // 1. Commutative + if (commutative(values)) { + // A. Coarsening Mode + for (auto const& operation : values) { + auto const& valueOpCode = values.front()->getName(); + bool sameOpCode = true; + for (auto const& operand : operation->getOperands()) { + if (operand.getDefiningOp()->getName() != valueOpCode) { + sameOpCode = false; + break; + } + } + + if (!sameOpCode) { + + } + + } + } + } +} + +bool SLPTree::vectorizable(std::vector const& values) const { + // TODO + assert(false); + return false; +} + +bool SLPTree::commutative(std::vector const& values) const { + // TODO + assert(false); + return false; +} + +std::vector SLPTree::getOperands(std::vector const& values) const { + // TODO + assert(false); + return {}; +} \ No newline at end of file diff --git a/mlir/lib/Dialect/SPN/CMakeLists.txt b/mlir/lib/Dialect/SPN/CMakeLists.txt index d3305475..d940db7e 100644 --- a/mlir/lib/Dialect/SPN/CMakeLists.txt +++ b/mlir/lib/Dialect/SPN/CMakeLists.txt @@ -5,7 +5,8 @@ add_mlir_dialect_library(MLIRSPN SPNEnums.cpp Analysis/SPNNodeLevel.cpp Analysis/SPNGraphStatistics.cpp - Analysis/SLP/SLPGraph.cpp + Analysis/SLP/SLPTree.cpp + Analysis/SLP/SLPNode.cpp Canonicalization/CanonicalizationPatterns.cpp Simplification/SimplificationPatterns.cpp TypeAnalysis/TypePinningPatterns.cpp diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 38bd8e01..7dd92a03 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -9,7 +9,7 @@ #include "SPNPassDetails.h" #include #include -#include "SPN/Analysis/SLP/SLPGraph.h" +#include "SPN/Analysis/SLP/SLPTree.h" using namespace mlir; using namespace mlir::spn; @@ -19,18 +19,16 @@ namespace { protected: void runOnOperation() override { - // TODO std::cout << "Starting SPN vectorization..." << std::endl; - auto module = getOperation(); - llvm::SmallVector queries; - module.walk([&queries](Operation* op) { + auto func = getOperation(); + + func.walk([](Operation* op) { if (auto query = dyn_cast(op)) { - queries.push_back(op); + for (auto r : query.getRootNodes()) { + slp::SLPTree graph(r); + } } }); - slp::SLPGraph graph(queries.front()); - std::cout << queries.front()->getName().getStringRef().str() << std::endl; - } }; From aba65c8a928c48c805ee830334648bed21e3b863 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 10 Jan 2021 03:45:45 +0100 Subject: [PATCH 005/385] SLP Node changes. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 7 ++- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 5 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 4 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 53 ++++++++++--------- 4 files changed, 34 insertions(+), 35 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 90a45bca..919070fd 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -14,14 +14,10 @@ namespace mlir { namespace spn { namespace slp { - /// - /// Stores vectorizable instructions. class SLPNode { public: - /// Constructor, initialize empty SLP node. - /// \param width The width of the operations vector. explicit SLPNode(size_t const& width); explicit SLPNode(std::vector const& values); @@ -29,7 +25,10 @@ namespace mlir { private: size_t const width; + + /// List of operations that can be executed in any order/in parallel when width > 1. std::vector operations; + std::vector operands; }; } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 1e916729..b29323a3 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -35,10 +35,9 @@ namespace mlir { bool vectorizable(std::vector const& values) const; bool commutative(std::vector const& values) const; + bool attachableOperands(Operation* operation) const; - std::vector getOperands(std::vector const& values) const; - - std::vector graph; + SLPNode graph; }; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 179ac72e..0ace5dce 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -11,10 +11,10 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPNode::SLPNode(size_t const& width) : width{width}, operations{} { +SLPNode::SLPNode(size_t const& width) : width{width}, operations{}, operands{} { } -SLPNode::SLPNode(std::vector const& values) : width{values.size()}, operations{values} { +SLPNode::SLPNode(std::vector const& values) : width{values.size()}, operations{values}, operands{} { } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 365b9909..8efed9f5 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -50,45 +50,46 @@ void SLPTree::buildGraph(std::vector const& values) { } // Stop growing graph if (!vectorizable(values)) { - // Create new node for values and add to graph - graph.emplace_back(values); - // Recursion call to grow graph further - // 1. Commutative - if (commutative(values)) { - // A. Coarsening Mode - for (auto const& operation : values) { - auto const& valueOpCode = values.front()->getName(); - bool sameOpCode = true; - for (auto const& operand : operation->getOperands()) { - if (operand.getDefiningOp()->getName() != valueOpCode) { - sameOpCode = false; - break; - } - } - - if (!sameOpCode) { - + return; + } + // Create new node for values and add to graph + graph.emplace_back(values); + // Recursion call to grow graph further + // 1. Commutative + if (commutative(values)) { + // A. Coarsening Mode + for (auto const& operation : values) { + if (attachableOperands(operation)) { + std::vector operands; + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); } + buildGraph(operands); + } else { } + } + } } bool SLPTree::vectorizable(std::vector const& values) const { // TODO - assert(false); - return false; + return true; } bool SLPTree::commutative(std::vector const& values) const { // TODO - assert(false); - return false; + return true; } -std::vector SLPTree::getOperands(std::vector const& values) const { - // TODO - assert(false); - return {}; +bool SLPTree::attachableOperands(Operation* operation) const { + // TODO operands escape multi-node? + for (auto const& operand : operation->getOperands()) { + if (operand.getDefiningOp()->getName() != operation->getName()) { + return false; + } + } + return true; } \ No newline at end of file From 43ee1675e7989d94e0b5d1ee4cbdfb88c20ba7ae Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 10 Jan 2021 20:11:35 +0100 Subject: [PATCH 006/385] Operands fix. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 2 ++ .../Dialect/SPN/Analysis/SLP/SLPTree.h | 7 ++-- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 5 ++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 32 +++++++++---------- .../Dialect/SPN/Passes/SPNVectorization.cpp | 2 +- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 919070fd..b8d000d3 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -22,6 +22,8 @@ namespace mlir { explicit SLPNode(std::vector const& values); + SLPNode& addOperands(std::vector const& values); + private: size_t const width; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index b29323a3..9420793b 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -27,15 +27,16 @@ namespace mlir { /// Constructor, initialize analysis. /// \param root Root node of a (sub-)graph or query operation. - explicit SLPTree(Operation* op); + /// \param width The target width of the SLP vectors. + explicit SLPTree(Operation* op, size_t width); private: - void buildGraph(std::vector const& values); + void buildGraph(std::vector const& values, SLPNode& parentNode); bool vectorizable(std::vector const& values) const; bool commutative(std::vector const& values) const; - bool attachableOperands(Operation* operation) const; + bool attachableOperands(OperationName const& currentOperation, std::vector const& operands) const; SLPNode graph; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 0ace5dce..67165865 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -17,4 +17,7 @@ SLPNode::SLPNode(size_t const& width) : width{width}, operations{}, operands{} { SLPNode::SLPNode(std::vector const& values) : width{values.size()}, operations{values}, operands{} { } - +SLPNode& SLPNode::addOperands(std::vector const& values) { + operands.emplace_back(SLPNode{values}); + return operands.back(); +} diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 8efed9f5..ce5f9554 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -13,14 +13,14 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPTree::SLPTree(Operation* root) { +SLPTree::SLPTree(Operation* root, size_t width) : graph{width} { assert(root); llvm::StringMap> operationsByOpCode; for (auto& op : root->getBlock()->getOperations()) { operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); } for (auto const& entry : operationsByOpCode) { - buildGraph(entry.getValue()); + buildGraph(entry.getValue(), graph); } } @@ -44,7 +44,7 @@ void SLPTree::traverseSubgraph(Operation* root) { }*/ -void SLPTree::buildGraph(std::vector const& values) { +void SLPTree::buildGraph(std::vector const& values, SLPNode& parentNode) { for (auto const& op : values) { std::cout << op->getName().getStringRef().str() << std::endl; } @@ -53,25 +53,25 @@ void SLPTree::buildGraph(std::vector const& values) { return; } // Create new node for values and add to graph - graph.emplace_back(values); + SLPNode currentNode = parentNode.addOperands(values); // Recursion call to grow graph further // 1. Commutative if (commutative(values)) { // A. Coarsening Mode + std::vector operands; for (auto const& operation : values) { - if (attachableOperands(operation)) { - std::vector operands; - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); - } - buildGraph(operands); - } else { - + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); } - + } + if (attachableOperands(values.front()->getName(), operands)) { + currentNode.addOperands(operands); + } else { + buildGraph(operands, currentNode); } } + } bool SLPTree::vectorizable(std::vector const& values) const { @@ -84,10 +84,10 @@ bool SLPTree::commutative(std::vector const& values) const { return true; } -bool SLPTree::attachableOperands(Operation* operation) const { +bool SLPTree::attachableOperands(OperationName const& currentOperation, std::vector const& operands) const { // TODO operands escape multi-node? - for (auto const& operand : operation->getOperands()) { - if (operand.getDefiningOp()->getName() != operation->getName()) { + for (auto const& operand : operands) { + if (operand->getName() != currentOperation) { return false; } } diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 7dd92a03..15c1df0f 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -25,7 +25,7 @@ namespace { func.walk([](Operation* op) { if (auto query = dyn_cast(op)) { for (auto r : query.getRootNodes()) { - slp::SLPTree graph(r); + slp::SLPTree graph(r, 4); } } }); From f523062733e74922d7106dd7557d854ea1a3680f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 11 Jan 2021 03:02:51 +0100 Subject: [PATCH 007/385] Better commutative check, better multi-node graph formation. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 6 +++ .../Dialect/SPN/Analysis/SLP/SLPTree.h | 6 ++- mlir/include/Dialect/SPN/SPNOps.td | 2 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 28 ++++++++++ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 51 +++++++++++++------ 5 files changed, 75 insertions(+), 18 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index b8d000d3..ecf7211a 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -24,6 +24,12 @@ namespace mlir { SLPNode& addOperands(std::vector const& values); + std::vector const& getOperations(); + OperationName operationName(); + + bool isMultiNode() const; + bool attachable(std::vector const& otherOperations); + private: size_t const width; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 9420793b..543c375a 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -36,7 +36,11 @@ namespace mlir { bool vectorizable(std::vector const& values) const; bool commutative(std::vector const& values) const; - bool attachableOperands(OperationName const& currentOperation, std::vector const& operands) const; + std::vector getOperands(std::vector const& values) const; + std::vector getOperands(Operation* value) const; + bool attachableOperands(OperationName const& currentOperation, OperandRange operands) const; + + void reorderOperands(SLPNode& node); SLPNode graph; diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 5cff217d..19830170 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -213,7 +213,7 @@ def JointQuery : SPN_Op<"joint_query", let description = [{ Represents a joint probability computation by bottom-up evaluation of the SPN-graph. - The single region associated with this operation represents the the SPN graph. + The single region associated with this operation represents the SPN graph. }]; let arguments = (ins UI32Attr:$numFeatures, diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 67165865..afcd60d6 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -18,6 +18,34 @@ SLPNode::SLPNode(std::vector const& values) : width{values.size()}, } SLPNode& SLPNode::addOperands(std::vector const& values) { + //assert(values.size() == width); + if (attachable(values)) { + operations.insert(std::end(operations), std::begin(values), std::end(values)); + return *this; + } operands.emplace_back(SLPNode{values}); return operands.back(); + +} + +std::vector const& SLPNode::getOperations() { + return operations; +} + +OperationName SLPNode::operationName() { + return operations.front()->getName(); +} + +bool SLPNode::isMultiNode() const { + return (operations.size() / width) > 1; +} + +bool SLPNode::attachable(std::vector const& otherOperations) { + // TODO operands escape multi-node? + if (operations.empty()) { + return true; + } + return std::all_of(std::begin(otherOperations), + std::end(otherOperations), + [&](auto const& operation) { return operation->getName() == operationName(); }); } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index ce5f9554..f81255fd 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -7,6 +7,7 @@ #include "SPN/SPNInterfaces.h" #include +#include #include "llvm/ADT/StringMap.h" using namespace mlir; @@ -58,18 +59,18 @@ void SLPTree::buildGraph(std::vector const& values, SLPNode& parentN // 1. Commutative if (commutative(values)) { // A. Coarsening Mode - std::vector operands; for (auto const& operation : values) { - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); - } + buildGraph(getOperands(operation), currentNode); } - if (attachableOperands(values.front()->getName(), operands)) { - currentNode.addOperands(operands); - } else { - buildGraph(operands, currentNode); + // B. Normal Mode: Finished building multi-node + if (currentNode.isMultiNode()) { + reorderOperands(currentNode); + // TODO buildGraph() needed for operands? Currently don't think so because of smarter node.addOperands() handling. } - + } + // 2. Non-Commutative + else { + buildGraph(getOperands(values), currentNode); } } @@ -80,16 +81,34 @@ bool SLPTree::vectorizable(std::vector const& values) const { } bool SLPTree::commutative(std::vector const& values) const { - // TODO - return true; + return values.front()->hasTrait(); } -bool SLPTree::attachableOperands(OperationName const& currentOperation, std::vector const& operands) const { +bool SLPTree::attachableOperands(OperationName const& currentOperation, OperandRange operands) const { // TODO operands escape multi-node? - for (auto const& operand : operands) { - if (operand->getName() != currentOperation) { - return false; + return std::all_of(std::begin(operands), + std::end(operands), + [&](auto const& operand) { return operand.getDefiningOp()->getName() == currentOperation; }); +} + +std::vector SLPTree::getOperands(std::vector const& values) const { + std::vector operands; + for (auto const& operation : values) { + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); } } - return true; + return operands; +} + +std::vector SLPTree::getOperands(Operation* operation) const { + std::vector operands; + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); + } + return operands; +} + +void SLPTree::reorderOperands(SLPNode& node) { + // TODO } \ No newline at end of file From de6d661fa0ec104d7426fdb2f6217cd25edb3728 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 11 Jan 2021 04:41:51 +0100 Subject: [PATCH 008/385] Trait attempt (WIP). --- mlir/include/Dialect/SPN/SPNOps.h | 9 +++++++++ mlir/include/Dialect/SPN/SPNOps.td | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/mlir/include/Dialect/SPN/SPNOps.h b/mlir/include/Dialect/SPN/SPNOps.h index c37fd81d..807e73bc 100644 --- a/mlir/include/Dialect/SPN/SPNOps.h +++ b/mlir/include/Dialect/SPN/SPNOps.h @@ -13,6 +13,15 @@ #include "SPN/SPNInterfaces.h" #include "SPN/SPNEnums.h" +namespace mlir { + namespace spn { +/* + template + class Vectorizable : public OpTrait::TraitBase { + };*/ + } +} + #define GET_OP_CLASSES #include "SPN/SPNOps.h.inc" diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 19830170..93664020 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -6,6 +6,11 @@ include "SPNInterfaces.td" include "mlir/Interfaces/SideEffectInterfaces.td" include "mlir/IR/RegionKindInterface.td" +/// +/// Trait which can be attached to operations to mark them as vectorizable (such as sums or products). +/// +//def Vectorizable : NativeOpTrait<"Vectorizable">; + /// /// Abstract base class of n-ary arithmetic operations /// From 4b64af50f538233b8b8563748f4220de25a3537e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 11 Jan 2021 23:39:29 +0100 Subject: [PATCH 009/385] Proper Vectorizable trait handling. --- mlir/include/Dialect/SPN/SPNOpTraits.h | 21 +++++++++++++++++++ mlir/include/Dialect/SPN/SPNOpTraits.td | 11 ++++++++++ mlir/include/Dialect/SPN/SPNOps.h | 10 +-------- mlir/include/Dialect/SPN/SPNOps.td | 8 ++----- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 20 +++++++----------- 5 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 mlir/include/Dialect/SPN/SPNOpTraits.h create mode 100644 mlir/include/Dialect/SPN/SPNOpTraits.td diff --git a/mlir/include/Dialect/SPN/SPNOpTraits.h b/mlir/include/Dialect/SPN/SPNOpTraits.h new file mode 100644 index 00000000..2e1b6c4a --- /dev/null +++ b/mlir/include/Dialect/SPN/SPNOpTraits.h @@ -0,0 +1,21 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_COMPILER_SRC_CODEGEN_MLIR_INCLUDE_SPN_SPNOPTRAITS_H +#define SPNC_COMPILER_SRC_CODEGEN_MLIR_INCLUDE_SPN_SPNOPTRAITS_H + +#include "mlir/IR/OpDefinition.h" + +namespace mlir { + namespace OpTrait { + namespace spn { + + template + class Vectorizable : public TraitBase {}; + } + } +} + +#endif //SPNC_COMPILER_SRC_CODEGEN_MLIR_INCLUDE_SPN_SPNOPTRAITS_H diff --git a/mlir/include/Dialect/SPN/SPNOpTraits.td b/mlir/include/Dialect/SPN/SPNOpTraits.td new file mode 100644 index 00000000..ca8b9d6d --- /dev/null +++ b/mlir/include/Dialect/SPN/SPNOpTraits.td @@ -0,0 +1,11 @@ +#ifndef SPNOpTraits +#define SPNOpTraits + +include "SPNDialect.td" + +/// +/// Trait which can be attached to operations to mark them as vectorizable (such as sums or products). +/// +def Vectorizable : NativeOpTrait<"spn::Vectorizable">; + +#endif // SPNOpTraits \ No newline at end of file diff --git a/mlir/include/Dialect/SPN/SPNOps.h b/mlir/include/Dialect/SPN/SPNOps.h index 807e73bc..2057128b 100644 --- a/mlir/include/Dialect/SPN/SPNOps.h +++ b/mlir/include/Dialect/SPN/SPNOps.h @@ -11,17 +11,9 @@ #include "mlir/Interfaces/SideEffectInterfaces.h" #include "mlir/IR/RegionKindInterface.h" #include "SPN/SPNInterfaces.h" +#include "SPN/SPNOpTraits.h" #include "SPN/SPNEnums.h" -namespace mlir { - namespace spn { -/* - template - class Vectorizable : public OpTrait::TraitBase { - };*/ - } -} - #define GET_OP_CLASSES #include "SPN/SPNOps.h.inc" diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 93664020..4a88e288 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -3,19 +3,15 @@ include "SPNDialect.td" include "SPNInterfaces.td" +include "SPNOpTraits.td" include "mlir/Interfaces/SideEffectInterfaces.td" include "mlir/IR/RegionKindInterface.td" -/// -/// Trait which can be attached to operations to mark them as vectorizable (such as sums or products). -/// -//def Vectorizable : NativeOpTrait<"Vectorizable">; - /// /// Abstract base class of n-ary arithmetic operations /// class SPN_NAry_Op : SPN_Op]> { + [NoSideEffect, Commutative, Vectorizable, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { /// Operands: Child nodes /// opcount: Number of child nodes let arguments = (ins Variadic: $operands); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index f81255fd..faecb7c3 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -4,11 +4,10 @@ // #include "SPN/Analysis/SLP/SLPTree.h" -#include "SPN/SPNInterfaces.h" +#include "SPN/SPNOpTraits.h" #include #include -#include "llvm/ADT/StringMap.h" using namespace mlir; using namespace mlir::spn; @@ -20,6 +19,7 @@ SLPTree::SLPTree(Operation* root, size_t width) : graph{width} { for (auto& op : root->getBlock()->getOperations()) { operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); } + // TODO compute seeds in a proper fashion for (auto const& entry : operationsByOpCode) { buildGraph(entry.getValue(), graph); } @@ -76,19 +76,15 @@ void SLPTree::buildGraph(std::vector const& values, SLPNode& parentN } bool SLPTree::vectorizable(std::vector const& values) const { - // TODO - return true; + return std::all_of(std::begin(values), std::end(values), [&](Operation* operation) { + return operation->hasTrait(); + }); } bool SLPTree::commutative(std::vector const& values) const { - return values.front()->hasTrait(); -} - -bool SLPTree::attachableOperands(OperationName const& currentOperation, OperandRange operands) const { - // TODO operands escape multi-node? - return std::all_of(std::begin(operands), - std::end(operands), - [&](auto const& operand) { return operand.getDefiningOp()->getName() == currentOperation; }); + return std::all_of(std::begin(values), std::end(values), [&](Operation* operation) { + return operation->hasTrait(); + }); } std::vector SLPTree::getOperands(std::vector const& values) const { From fa84c6f9a64cf944bc7c4845b08a8bd3862906a4 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 12 Jan 2021 03:33:07 +0100 Subject: [PATCH 010/385] Node refactoring. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 12 +++-- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 8 +++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 46 +++++++++++++------ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 24 ++++++++-- 4 files changed, 66 insertions(+), 24 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index ecf7211a..4b04c2dc 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -18,14 +18,15 @@ namespace mlir { public: - explicit SLPNode(size_t const& width); - explicit SLPNode(std::vector const& values); SLPNode& addOperands(std::vector const& values); + std::vector& getOperands(); + SLPNode& getOperand(size_t index); - std::vector const& getOperations(); - OperationName operationName(); + std::vector getLane(size_t index); + Operation* getOperation(size_t lane, size_t index); + OperationName const& name(); bool isMultiNode() const; bool attachable(std::vector const& otherOperations); @@ -33,9 +34,10 @@ namespace mlir { private: size_t const width; + OperationName const operationName; /// List of operations that can be executed in any order/in parallel when width > 1. - std::vector operations; + std::vector> lanes; std::vector operands; }; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 543c375a..0a0f7688 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -40,9 +40,15 @@ namespace mlir { std::vector getOperands(Operation* value) const; bool attachableOperands(OperationName const& currentOperation, OperandRange operands) const; + enum MODE { + CONST, LOAD, OPCODE + }; + + SLPTree::MODE modeFromOperation(Operation const* operation) const; + void reorderOperands(SLPNode& node); - SLPNode graph; + std::vector graphs; }; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index afcd60d6..405c3a05 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -11,16 +11,18 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPNode::SLPNode(size_t const& width) : width{width}, operations{}, operands{} { -} - -SLPNode::SLPNode(std::vector const& values) : width{values.size()}, operations{values}, operands{} { +SLPNode::SLPNode(std::vector const& values) : width{values.size()}, + operationName{values.front()->getName()}, lanes{}, + operands{} { + lanes.emplace_back(values); } SLPNode& SLPNode::addOperands(std::vector const& values) { - //assert(values.size() == width); + // If the operations are attachable (i.e. same opcode), insert them into this node (forming a multinode). if (attachable(values)) { - operations.insert(std::end(operations), std::begin(values), std::end(values)); + for (size_t lane = 0; lane < values.size(); ++lane) { + lanes.at(lane).emplace_back(values.at(lane)); + } return *this; } operands.emplace_back(SLPNode{values}); @@ -28,24 +30,38 @@ SLPNode& SLPNode::addOperands(std::vector const& values) { } -std::vector const& SLPNode::getOperations() { - return operations; +std::vector& SLPNode::getOperands() { + return operands; +} + +SLPNode& SLPNode::getOperand(size_t index) { + return operands.at(index); +} + +std::vector SLPNode::getLane(size_t index) { + std::vector lane; + for (auto const& operations : lanes) { + lane.emplace_back(operations.at(index)); + } + return lane; } -OperationName SLPNode::operationName() { - return operations.front()->getName(); +Operation* SLPNode::getOperation(size_t lane, size_t index) { + return lanes.at(lane).at(index); +} + +OperationName const& SLPNode::name() { + return operationName; } bool SLPNode::isMultiNode() const { - return (operations.size() / width) > 1; + return lanes.front().size() > 1; } bool SLPNode::attachable(std::vector const& otherOperations) { // TODO operands escape multi-node? - if (operations.empty()) { - return true; - } + assert(lanes.size() == otherOperations.size()); return std::all_of(std::begin(otherOperations), std::end(otherOperations), - [&](auto const& operation) { return operation->getName() == operationName(); }); + [&](auto const& operation) { return operation->getName() == operationName; }); } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index faecb7c3..80d80143 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -4,6 +4,7 @@ // #include "SPN/Analysis/SLP/SLPTree.h" +#include "SPN/SPNOps.h" #include "SPN/SPNOpTraits.h" #include @@ -13,7 +14,7 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPTree::SLPTree(Operation* root, size_t width) : graph{width} { +SLPTree::SLPTree(Operation* root, size_t width) : graphs{} { assert(root); llvm::StringMap> operationsByOpCode; for (auto& op : root->getBlock()->getOperations()) { @@ -21,7 +22,8 @@ SLPTree::SLPTree(Operation* root, size_t width) : graph{width} { } // TODO compute seeds in a proper fashion for (auto const& entry : operationsByOpCode) { - buildGraph(entry.getValue(), graph); + SLPNode rootNode{entry.getValue()}; + buildGraph(entry.getValue(), rootNode); } } @@ -105,6 +107,22 @@ std::vector SLPTree::getOperands(Operation* operation) const { return operands; } +SLPTree::MODE SLPTree::modeFromOperation(Operation const* operation) const { + if (dyn_cast(operation)) { + return MODE::CONST; + } else if (dyn_cast(operation) || dyn_cast(operation)) { + return MODE::LOAD; + } + return MODE::OPCODE; +} + void SLPTree::reorderOperands(SLPNode& node) { - // TODO + std::vector finalOrder; + std::vector mode; + // 1. Strip first lane + for (size_t i = 0; i < node.getOperands().size(); ++i) { + auto& operand = node.getOperand(i); + finalOrder.emplace_back(operand); + //mode.emplace_back(modeFromOperation(node.getOperation(i))); + } } \ No newline at end of file From 178a47726a9cdfacdb445ea5e905b3fb4abc57e2 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 12 Jan 2021 03:54:45 +0100 Subject: [PATCH 011/385] Operand reordering skeleton. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 3 +- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 8 +++-- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 8 +++-- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 31 ++++++++++++++++--- 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 4b04c2dc..852224dc 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -29,6 +29,7 @@ namespace mlir { OperationName const& name(); bool isMultiNode() const; + size_t numLanes() const; bool attachable(std::vector const& otherOperations); private: @@ -36,7 +37,7 @@ namespace mlir { size_t const width; OperationName const operationName; - /// List of operations that can be executed in any order/in parallel when width > 1. + /// Stores lists of operations for each lane for multinode use cases. std::vector> lanes; std::vector operands; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 0a0f7688..e2ff14fc 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -38,18 +38,20 @@ namespace mlir { bool commutative(std::vector const& values) const; std::vector getOperands(std::vector const& values) const; std::vector getOperands(Operation* value) const; - bool attachableOperands(OperationName const& currentOperation, OperandRange operands) const; enum MODE { - CONST, LOAD, OPCODE + CONST, LOAD, OPCODE, FAILED, SPLAT }; SLPTree::MODE modeFromOperation(Operation const* operation) const; - void reorderOperands(SLPNode& node); + void reorderOperands(SLPNode& multinode); std::vector graphs; + std::pair getBest(SLPTree::MODE const& mode, + SLPNode const& last, + std::vector const& candidates) const; }; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 405c3a05..e00f2d5f 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -38,10 +38,10 @@ SLPNode& SLPNode::getOperand(size_t index) { return operands.at(index); } -std::vector SLPNode::getLane(size_t index) { +std::vector SLPNode::getLane(size_t laneIndex) { std::vector lane; for (auto const& operations : lanes) { - lane.emplace_back(operations.at(index)); + lane.emplace_back(operations.at(laneIndex)); } return lane; } @@ -58,6 +58,10 @@ bool SLPNode::isMultiNode() const { return lanes.front().size() > 1; } +size_t SLPNode::numLanes() const { + return width; +} + bool SLPNode::attachable(std::vector const& otherOperations) { // TODO operands escape multi-node? assert(lanes.size() == otherOperations.size()); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 80d80143..3f5f307b 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -116,13 +116,34 @@ SLPTree::MODE SLPTree::modeFromOperation(Operation const* operation) const { return MODE::OPCODE; } -void SLPTree::reorderOperands(SLPNode& node) { +void SLPTree::reorderOperands(SLPNode& multinode) { + assert(multinode.isMultiNode()); std::vector finalOrder; std::vector mode; // 1. Strip first lane - for (size_t i = 0; i < node.getOperands().size(); ++i) { - auto& operand = node.getOperand(i); + for (size_t i = 0; i < multinode.getOperands().size(); ++i) { + auto& operand = multinode.getOperand(i); finalOrder.emplace_back(operand); - //mode.emplace_back(modeFromOperation(node.getOperation(i))); + mode.emplace_back(modeFromOperation(multinode.getOperation(0, i))); } -} \ No newline at end of file + + // 2. For all other lanes, find best candidate + for (size_t lane = 1; lane < multinode.numLanes(); ++lane) { + std::vector candidates = multinode.getLane(lane); + // Look for a matching candidate + for (size_t i = 0; i < multinode.getOperands().size(); ++i) { + // Skip if we can't vectorize + if (mode.at(i) == MODE::FAILED) { + continue; + } + auto const& last = finalOrder.at(i); + auto const& bestResult = getBest(mode.at(i), last, candidates); + } + } +} + +std::pair SLPTree::getBest(SLPTree::MODE const& mode, + SLPNode const& last, + std::vector const& candidates) const { + return {last, mode}; +} From 9e362b2387adb792618cd01bc557134c44b8146b Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 12 Jan 2021 04:04:14 +0100 Subject: [PATCH 012/385] More reordering. --- mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h | 9 +++++++++ mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h | 2 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 14 +++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 852224dc..dcc8d1c1 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -32,6 +32,15 @@ namespace mlir { size_t numLanes() const; bool attachable(std::vector const& otherOperations); + friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { + return std::tie(lhs.width, lhs.operationName, lhs.lanes, lhs.operands) + == std::tie(rhs.width, rhs.operationName, rhs.lanes, rhs.operands); + } + + friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { + return !(lhs == rhs); + } + private: size_t const width; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index e2ff14fc..44e3150c 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -45,7 +45,7 @@ namespace mlir { SLPTree::MODE modeFromOperation(Operation const* operation) const; - void reorderOperands(SLPNode& multinode); + std::vector reorderOperands(SLPNode& multinode); std::vector graphs; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 3f5f307b..e5ed82d8 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -116,7 +116,7 @@ SLPTree::MODE SLPTree::modeFromOperation(Operation const* operation) const { return MODE::OPCODE; } -void SLPTree::reorderOperands(SLPNode& multinode) { +std::vector SLPTree::reorderOperands(SLPNode& multinode) { assert(multinode.isMultiNode()); std::vector finalOrder; std::vector mode; @@ -138,12 +138,24 @@ void SLPTree::reorderOperands(SLPNode& multinode) { } auto const& last = finalOrder.at(i); auto const& bestResult = getBest(mode.at(i), last, candidates); + + // Update output + // TODO: funky two dimensional stuff + finalOrder.emplace_back(bestResult.first); + + // Detect SPLAT mode + if (i == 1 && bestResult.first == last) { + mode.at(i) = MODE::SPLAT; + } + } } + return finalOrder; } std::pair SLPTree::getBest(SLPTree::MODE const& mode, SLPNode const& last, std::vector const& candidates) const { + // TODO return {last, mode}; } From ce0e94e161179ccc627335b2112ebbb57ba13d52 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 12 Jan 2021 05:27:19 +0100 Subject: [PATCH 013/385] Some comments. --- mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 44e3150c..6da8a82c 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -40,7 +40,16 @@ namespace mlir { std::vector getOperands(Operation* value) const; enum MODE { - CONST, LOAD, OPCODE, FAILED, SPLAT + // look for a constant + CONST, + // look for a consecutive load to that in the previous lane + LOAD, + // look for an operation of the same opcode + OPCODE, + // look for the exact same operation + SPLAT, + // vectorization has failed, give higher priority to others + FAILED }; SLPTree::MODE modeFromOperation(Operation const* operation) const; From 55f2de996766f1e98f2e2af5090deaddb8d7e889 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 20 Jan 2021 21:48:52 +0100 Subject: [PATCH 014/385] WIP node refactoring. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 22 +++--- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 8 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 65 ++++++++++------- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 73 +++++++++++++------ 4 files changed, 105 insertions(+), 63 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index dcc8d1c1..58e91458 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -20,21 +20,21 @@ namespace mlir { explicit SLPNode(std::vector const& values); - SLPNode& addOperands(std::vector const& values); - std::vector& getOperands(); - SLPNode& getOperand(size_t index); + void addOperands(std::vector> const& operandsPerLane); + void addOperands(std::vector const& operations, size_t const& lane); + std::vector& getOperands(size_t lane); - std::vector getLane(size_t index); + std::vector& getLane(size_t lane); Operation* getOperation(size_t lane, size_t index); OperationName const& name(); bool isMultiNode() const; size_t numLanes() const; - bool attachable(std::vector const& otherOperations); + bool attachable(std::vector> const& operations); friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.width, lhs.operationName, lhs.lanes, lhs.operands) - == std::tie(rhs.width, rhs.operationName, rhs.lanes, rhs.operands); + return std::tie(lhs.operationName, lhs.lanes, lhs.operands) + == std::tie(rhs.operationName, rhs.lanes, rhs.operands); } friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { @@ -43,12 +43,14 @@ namespace mlir { private: - size_t const width; OperationName const operationName; - /// Stores lists of operations for each lane for multinode use cases. + /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation + /// if this node is a multinode. std::vector> lanes; - std::vector operands; + + /// A list of operands for each lane. + std::vector> operands; }; } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 6da8a82c..58ac1cec 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -32,10 +32,10 @@ namespace mlir { private: - void buildGraph(std::vector const& values, SLPNode& parentNode); + void buildGraph(std::vector const& operations, SLPNode& parentNode); - bool vectorizable(std::vector const& values) const; - bool commutative(std::vector const& values) const; + bool vectorizable(std::vector const& operations) const; + bool commutative(std::vector const& operations) const; std::vector getOperands(std::vector const& values) const; std::vector getOperands(Operation* value) const; @@ -60,7 +60,7 @@ namespace mlir { std::pair getBest(SLPTree::MODE const& mode, SLPNode const& last, - std::vector const& candidates) const; + std::vector const& candidates) const; }; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index e00f2d5f..3c2e676a 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -11,39 +11,46 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPNode::SLPNode(std::vector const& values) : width{values.size()}, - operationName{values.front()->getName()}, lanes{}, - operands{} { - lanes.emplace_back(values); +SLPNode::SLPNode(std::vector const& operations) : operationName{operations.front()->getName()}, + lanes{operations.size()}, + operands{operations.size()} { + for (size_t i = 0; i < operations.size(); ++i) { + lanes.at(i).emplace_back(operations.at(i)); + } } -SLPNode& SLPNode::addOperands(std::vector const& values) { +void SLPNode::addOperands(std::vector> const& operandsPerLane) { + assert(operandsPerLane.size() == numLanes()); // If the operations are attachable (i.e. same opcode), insert them into this node (forming a multinode). - if (attachable(values)) { - for (size_t lane = 0; lane < values.size(); ++lane) { - lanes.at(lane).emplace_back(values.at(lane)); + if (attachable(operandsPerLane)) { + for (size_t lane = 0; lane < numLanes(); ++lane) { + lanes.at(lane).insert(std::end(lanes.at(lane)), + std::begin(operandsPerLane.at(lane)), + std::end(operandsPerLane.at(lane))); + } + } + // Otherwise, add don't modify this node's operations and add the operands as true operands. + else { + for (size_t lane = 0; lane < numLanes(); ++lane) { + addOperands(operandsPerLane.at(lane), lane); } - return *this; } - operands.emplace_back(SLPNode{values}); - return operands.back(); } -std::vector& SLPNode::getOperands() { - return operands; +void SLPNode::addOperands(std::vector const& operations, size_t const& lane) { + assert(operations.size() == lanes.at(lane).back()->getNumOperands()); + for (auto const& operand : operations) { + operands.at(lane).emplace_back(SLPNode{{operand}}); + } } -SLPNode& SLPNode::getOperand(size_t index) { - return operands.at(index); +std::vector& SLPNode::getOperands(size_t lane) { + return operands.at(lane); } -std::vector SLPNode::getLane(size_t laneIndex) { - std::vector lane; - for (auto const& operations : lanes) { - lane.emplace_back(operations.at(laneIndex)); - } - return lane; +std::vector& SLPNode::getLane(size_t lane) { + return lanes.at(lane); } Operation* SLPNode::getOperation(size_t lane, size_t index) { @@ -59,13 +66,17 @@ bool SLPNode::isMultiNode() const { } size_t SLPNode::numLanes() const { - return width; + return lanes.size(); } -bool SLPNode::attachable(std::vector const& otherOperations) { +bool SLPNode::attachable(std::vector> const& operations) { // TODO operands escape multi-node? - assert(lanes.size() == otherOperations.size()); - return std::all_of(std::begin(otherOperations), - std::end(otherOperations), - [&](auto const& operation) { return operation->getName() == operationName; }); + for (auto const& laneOperands : operations) { + if (std::any_of(std::begin(laneOperands), + std::end(laneOperands), + [&](auto const& operandOperation) { return operandOperation->getName() != operationName; })) { + return false; + } + } + return true; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index e5ed82d8..3648950f 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -17,9 +17,18 @@ using namespace mlir::spn::slp; SLPTree::SLPTree(Operation* root, size_t width) : graphs{} { assert(root); llvm::StringMap> operationsByOpCode; + std::set operations; for (auto& op : root->getBlock()->getOperations()) { operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); + operations.insert(&op); + for(auto const& operand : op.getOperands()) { + if(operations.find(operand.getDefiningOp()) != std::end(operations)) { + std::cout << "it's not a tree!" << std::endl; + return; + } + } } + // TODO compute seeds in a proper fashion for (auto const& entry : operationsByOpCode) { SLPNode rootNode{entry.getValue()}; @@ -47,44 +56,52 @@ void SLPTree::traverseSubgraph(Operation* root) { }*/ -void SLPTree::buildGraph(std::vector const& values, SLPNode& parentNode) { - for (auto const& op : values) { +void SLPTree::buildGraph(std::vector const& operations, SLPNode& parentNode) { + for (auto const& op : operations) { std::cout << op->getName().getStringRef().str() << std::endl; } // Stop growing graph - if (!vectorizable(values)) { + if (!vectorizable(operations)) { return; } // Create new node for values and add to graph - SLPNode currentNode = parentNode.addOperands(values); + SLPNode* currentNode = &parentNode; // Recursion call to grow graph further // 1. Commutative - if (commutative(values)) { + if (commutative(operations)) { // A. Coarsening Mode - for (auto const& operation : values) { - buildGraph(getOperands(operation), currentNode); + for (auto const& operation : operations) { + buildGraph(getOperands(operation), *currentNode); } // B. Normal Mode: Finished building multi-node - if (currentNode.isMultiNode()) { - reorderOperands(currentNode); - // TODO buildGraph() needed for operands? Currently don't think so because of smarter node.addOperands() handling. + if (currentNode->isMultiNode()) { + reorderOperands(*currentNode); + // TODO buildGraph() } } // 2. Non-Commutative else { - buildGraph(getOperands(values), currentNode); + buildGraph(getOperands(operations), *currentNode); } } -bool SLPTree::vectorizable(std::vector const& values) const { - return std::all_of(std::begin(values), std::end(values), [&](Operation* operation) { - return operation->hasTrait(); - }); +/// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're +/// vectorizable and they all share the same opcode. +/// \param operations The potentially vectorizable operations. +/// \return True if the operations can be vectorized, otherwise false. +bool SLPTree::vectorizable(std::vector const& operations) const { + for (size_t i = 0; i < operations.size(); ++i) { + if (!operations.at(i)->hasTrait() + || (i > 0 && operations.at(i)->getName() != operations.front()->getName())) { + return false; + } + } + return true; } -bool SLPTree::commutative(std::vector const& values) const { - return std::all_of(std::begin(values), std::end(values), [&](Operation* operation) { +bool SLPTree::commutative(std::vector const& operations) const { + return std::all_of(std::begin(operations), std::end(operations), [&](Operation* operation) { return operation->hasTrait(); }); } @@ -119,7 +136,7 @@ SLPTree::MODE SLPTree::modeFromOperation(Operation const* operation) const { std::vector SLPTree::reorderOperands(SLPNode& multinode) { assert(multinode.isMultiNode()); std::vector finalOrder; - std::vector mode; + /*std::vector mode; // 1. Strip first lane for (size_t i = 0; i < multinode.getOperands().size(); ++i) { auto& operand = multinode.getOperand(i); @@ -129,7 +146,7 @@ std::vector SLPTree::reorderOperands(SLPNode& multinode) { // 2. For all other lanes, find best candidate for (size_t lane = 1; lane < multinode.numLanes(); ++lane) { - std::vector candidates = multinode.getLane(lane); + std::vector candidates = multinode.getLane(lane); // Look for a matching candidate for (size_t i = 0; i < multinode.getOperands().size(); ++i) { // Skip if we can't vectorize @@ -149,13 +166,25 @@ std::vector SLPTree::reorderOperands(SLPNode& multinode) { } } - } + }*/ return finalOrder; } std::pair SLPTree::getBest(SLPTree::MODE const& mode, SLPNode const& last, - std::vector const& candidates) const { - // TODO + std::vector const& candidates) const { + Operation* best; + + if (mode == MODE::FAILED) { + // Don't select now, let others choose first + // ... + } else if (mode == MODE::SPLAT) { + // Look for other splat candidates + for (auto const& value : candidates) { + if (*value == last) { + + } + } + } return {last, mode}; } From b35953cbff374f25e43a3f5df22a52af807b23e8 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 22 Jan 2021 01:07:04 +0100 Subject: [PATCH 015/385] GetBest() and GetLookAheadScore(). --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 2 +- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 11 ++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 6 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 81 ++++++++++++++++--- .../Dialect/SPN/Passes/SPNVectorization.cpp | 2 +- 5 files changed, 83 insertions(+), 19 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 58e91458..734fbcbf 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -21,7 +21,7 @@ namespace mlir { explicit SLPNode(std::vector const& values); void addOperands(std::vector> const& operandsPerLane); - void addOperands(std::vector const& operations, size_t const& lane); + void addOperandsToLane(std::vector const& operations, size_t const& lane); std::vector& getOperands(size_t lane); std::vector& getLane(size_t lane); diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 58ac1cec..69174bc9 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -28,7 +28,7 @@ namespace mlir { /// Constructor, initialize analysis. /// \param root Root node of a (sub-)graph or query operation. /// \param width The target width of the SLP vectors. - explicit SLPTree(Operation* op, size_t width); + explicit SLPTree(Operation* op, size_t width, size_t maxLookAhead); private: @@ -58,9 +58,12 @@ namespace mlir { std::vector graphs; - std::pair getBest(SLPTree::MODE const& mode, - SLPNode const& last, - std::vector const& candidates) const; + size_t const maxLookAhead; + + std::pair getBest(SLPTree::MODE& mode, + SLPNode& last, + std::vector& candidates) const; + int getLookAheadScore(SLPNode& last, SLPNode& candidate, size_t const& maxLevel) const; }; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 3c2e676a..1fec5eb7 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -29,16 +29,16 @@ void SLPNode::addOperands(std::vector> const& operandsPe std::end(operandsPerLane.at(lane))); } } - // Otherwise, add don't modify this node's operations and add the operands as true operands. + // Otherwise, don't modify this node's operations and add the operands as true operands. else { for (size_t lane = 0; lane < numLanes(); ++lane) { - addOperands(operandsPerLane.at(lane), lane); + addOperandsToLane(operandsPerLane.at(lane), lane); } } } -void SLPNode::addOperands(std::vector const& operations, size_t const& lane) { +void SLPNode::addOperandsToLane(std::vector const& operations, size_t const& lane) { assert(operations.size() == lanes.at(lane).back()->getNumOperands()); for (auto const& operand : operations) { operands.at(lane).emplace_back(SLPNode{{operand}}); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 3648950f..779a01ea 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -14,15 +14,15 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPTree::SLPTree(Operation* root, size_t width) : graphs{} { +SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, maxLookAhead{maxLookAhead} { assert(root); llvm::StringMap> operationsByOpCode; std::set operations; for (auto& op : root->getBlock()->getOperations()) { operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); operations.insert(&op); - for(auto const& operand : op.getOperands()) { - if(operations.find(operand.getDefiningOp()) != std::end(operations)) { + for (auto const& operand : op.getOperands()) { + if (operations.find(operand.getDefiningOp()) != std::end(operations)) { std::cout << "it's not a tree!" << std::endl; return; } @@ -170,21 +170,82 @@ std::vector SLPTree::reorderOperands(SLPNode& multinode) { return finalOrder; } -std::pair SLPTree::getBest(SLPTree::MODE const& mode, - SLPNode const& last, - std::vector const& candidates) const { - Operation* best; - +std::pair SLPTree::getBest(SLPTree::MODE& mode, + SLPNode& last, + std::vector& candidates) const { + SLPNode* best = nullptr; + std::vector bestCandidates; if (mode == MODE::FAILED) { // Don't select now, let others choose first - // ... + best = nullptr; } else if (mode == MODE::SPLAT) { // Look for other splat candidates for (auto const& value : candidates) { if (*value == last) { + best = value; + break; + } + } + } else { + // Default value + best = candidates.front(); + for (auto const& candidate : candidates) { + // We don't have consecutive memory accesses, therefore we're only interested in opcode comparisons. + if (candidate->name() == last.name()) { + bestCandidates.emplace_back(candidate); + } + } + // 1. If we have a trivial solution, use it + if (bestCandidates.empty()) { + mode = MODE::FAILED; + } + // Single match + else if (bestCandidates.size() == 1) { + best = bestCandidates.front(); + } + // 2. Look-ahead to choose from best candidates + else { + if (mode == MODE::OPCODE) { + // Look-ahead on various levels + for (size_t level = 1; level <= maxLookAhead; ++level) { + // Best is the candidate with max score + int bestScore = 0; + std::set scores; + for (auto const& candidate : bestCandidates) { + // Get the look-ahead score + auto const& score = getLookAheadScore(last, *candidate, level); + if (scores.empty() || score > bestScore) { + best = candidate; + bestScore = score; + scores.insert(score); + } + } + // If found best at level don't go deeper + if (best != nullptr && scores.size() > 1) { + break; + } + } + } + } + } + // Remove best from candidates + if (best != nullptr) { + candidates.erase(std::remove(std::begin(candidates), std::end(candidates), best), std::end(candidates)); + } + return {best, mode}; +} +int SLPTree::getLookAheadScore(SLPNode& last, SLPNode& candidate, size_t const& maxLevel) const { + if (maxLevel == 0 || last.name() != candidate.name()) { + return 0; + } + auto scoreSum = 0; + for (size_t lane = 0; lane < last.numLanes(); ++lane) { + for (auto& lastOperand : last.getOperands(lane)) { + for (auto& candidateOperand : candidate.getOperands(lane)) { + scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); } } } - return {last, mode}; + return scoreSum; } diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 15c1df0f..f77c7133 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -25,7 +25,7 @@ namespace { func.walk([](Operation* op) { if (auto query = dyn_cast(op)) { for (auto r : query.getRootNodes()) { - slp::SLPTree graph(r, 4); + slp::SLPTree graph(r, 4, 3); } } }); From 4b3e0c55a3343d20b9336fd0a4720f4ee6cac015 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 22 Jan 2021 03:32:15 +0100 Subject: [PATCH 016/385] C++ refactoring. --- .../Dialect/SPN/Analysis/SLP/SLPMode.h | 30 +++++++++ .../Dialect/SPN/Analysis/SLP/SLPNode.h | 9 +-- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 26 ++------ mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 15 +++-- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 65 ++++++++++--------- 5 files changed, 86 insertions(+), 59 deletions(-) create mode 100644 mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h new file mode 100644 index 00000000..96a881a6 --- /dev/null +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h @@ -0,0 +1,30 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPMODE_H +#define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPMODE_H + +namespace mlir { + namespace spn { + namespace slp { + + enum MODE { + // look for a constant + CONST, + // look for a consecutive load to that in the previous lane + LOAD, + // look for an operation of the same opcode + OPCODE, + // look for the exact same operation + SPLAT, + // vectorization has failed, give higher priority to others + FAILED + }; + + } + } +} + +#endif //SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPMODE_H diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 734fbcbf..9b6386b0 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -18,15 +18,16 @@ namespace mlir { public: - explicit SLPNode(std::vector const& values); + explicit SLPNode(std::vector const& operations); + explicit SLPNode(Operation* operation); void addOperands(std::vector> const& operandsPerLane); void addOperandsToLane(std::vector const& operations, size_t const& lane); - std::vector& getOperands(size_t lane); + std::vector const& getOperands(size_t const& lane) const; + SLPNode const& getOperand(size_t const& lane, size_t const& index) const; - std::vector& getLane(size_t lane); Operation* getOperation(size_t lane, size_t index); - OperationName const& name(); + OperationName const& name() const; bool isMultiNode() const; size_t numLanes() const; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 69174bc9..0ef98844 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -11,6 +11,7 @@ #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/StringMap.h" #include "SLPNode.h" +#include "SLPMode.h" #include #include @@ -39,31 +40,18 @@ namespace mlir { std::vector getOperands(std::vector const& values) const; std::vector getOperands(Operation* value) const; - enum MODE { - // look for a constant - CONST, - // look for a consecutive load to that in the previous lane - LOAD, - // look for an operation of the same opcode - OPCODE, - // look for the exact same operation - SPLAT, - // vectorization has failed, give higher priority to others - FAILED - }; + MODE modeFromOperation(Operation const* operation) const; - SLPTree::MODE modeFromOperation(Operation const* operation) const; - - std::vector reorderOperands(SLPNode& multinode); + std::vector> reorderOperands(SLPNode& multinode); std::vector graphs; size_t const maxLookAhead; - std::pair getBest(SLPTree::MODE& mode, - SLPNode& last, - std::vector& candidates) const; - int getLookAheadScore(SLPNode& last, SLPNode& candidate, size_t const& maxLevel) const; + std::pair, MODE> getBest(MODE& mode, + SLPNode const& last, + std::vector& candidates) const; + int getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const; }; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 1fec5eb7..82c5e3c2 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -15,10 +15,15 @@ SLPNode::SLPNode(std::vector const& operations) : operationName{oper lanes{operations.size()}, operands{operations.size()} { for (size_t i = 0; i < operations.size(); ++i) { + assert(i == 0 || operations.at(i)->getName() == operationName); lanes.at(i).emplace_back(operations.at(i)); } } +SLPNode::SLPNode(Operation* operation) : operationName{operation->getName()}, + lanes{}, + operands{} {} + void SLPNode::addOperands(std::vector> const& operandsPerLane) { assert(operandsPerLane.size() == numLanes()); // If the operations are attachable (i.e. same opcode), insert them into this node (forming a multinode). @@ -41,23 +46,23 @@ void SLPNode::addOperands(std::vector> const& operandsPe void SLPNode::addOperandsToLane(std::vector const& operations, size_t const& lane) { assert(operations.size() == lanes.at(lane).back()->getNumOperands()); for (auto const& operand : operations) { - operands.at(lane).emplace_back(SLPNode{{operand}}); + operands.at(lane).emplace_back(operand); } } -std::vector& SLPNode::getOperands(size_t lane) { +std::vector const& SLPNode::getOperands(size_t const& lane) const { return operands.at(lane); } -std::vector& SLPNode::getLane(size_t lane) { - return lanes.at(lane); +SLPNode const& SLPNode::getOperand(size_t const& lane, size_t const& index) const { + return operands.at(lane).at(index); } Operation* SLPNode::getOperation(size_t lane, size_t index) { return lanes.at(lane).at(index); } -OperationName const& SLPNode::name() { +OperationName const& SLPNode::name() const { return operationName; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 779a01ea..cd8900c7 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -124,41 +124,44 @@ std::vector SLPTree::getOperands(Operation* operation) const { return operands; } -SLPTree::MODE SLPTree::modeFromOperation(Operation const* operation) const { +MODE SLPTree::modeFromOperation(Operation const* operation) const { if (dyn_cast(operation)) { return MODE::CONST; - } else if (dyn_cast(operation) || dyn_cast(operation)) { + } + // TODO: can this really be considered a load? I doubt it... + else if (dyn_cast(operation) || dyn_cast(operation)) { return MODE::LOAD; } return MODE::OPCODE; } -std::vector SLPTree::reorderOperands(SLPNode& multinode) { +std::vector> SLPTree::reorderOperands(SLPNode& multinode) { assert(multinode.isMultiNode()); - std::vector finalOrder; - /*std::vector mode; + std::vector> finalOrder{multinode.numLanes()}; + std::vector mode; + auto const& numOperands = multinode.getOperands(0).size(); // 1. Strip first lane - for (size_t i = 0; i < multinode.getOperands().size(); ++i) { - auto& operand = multinode.getOperand(i); - finalOrder.emplace_back(operand); - mode.emplace_back(modeFromOperation(multinode.getOperation(0, i))); + for (size_t i = 0; i < numOperands; ++i) { + auto operand = multinode.getOperand(0, i); + finalOrder.at(0).emplace_back(operand); + mode.emplace_back(modeFromOperation(operand.getOperation(0, 0))); } // 2. For all other lanes, find best candidate for (size_t lane = 1; lane < multinode.numLanes(); ++lane) { - std::vector candidates = multinode.getLane(lane); + std::vector candidates{multinode.getOperands(lane)}; // Look for a matching candidate - for (size_t i = 0; i < multinode.getOperands().size(); ++i) { + for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize if (mode.at(i) == MODE::FAILED) { continue; } - auto const& last = finalOrder.at(i); + auto const& last = finalOrder.at(lane - 1).at(i); auto const& bestResult = getBest(mode.at(i), last, candidates); // Update output // TODO: funky two dimensional stuff - finalOrder.emplace_back(bestResult.first); + finalOrder.at(lane).emplace_back(bestResult.first.getValue()); // Detect SPLAT mode if (i == 1 && bestResult.first == last) { @@ -166,32 +169,32 @@ std::vector SLPTree::reorderOperands(SLPNode& multinode) { } } - }*/ + } return finalOrder; } -std::pair SLPTree::getBest(SLPTree::MODE& mode, - SLPNode& last, - std::vector& candidates) const { - SLPNode* best = nullptr; - std::vector bestCandidates; +std::pair, MODE> SLPTree::getBest(MODE& mode, + SLPNode const& last, + std::vector& candidates) const { + Optional best; + std::vector bestCandidates; if (mode == MODE::FAILED) { // Don't select now, let others choose first - best = nullptr; + best.reset(); } else if (mode == MODE::SPLAT) { // Look for other splat candidates - for (auto const& value : candidates) { - if (*value == last) { - best = value; + for (auto& operand : candidates) { + if (operand == last) { + best = operand; break; } } } else { // Default value best = candidates.front(); - for (auto const& candidate : candidates) { + for (auto& candidate : candidates) { // We don't have consecutive memory accesses, therefore we're only interested in opcode comparisons. - if (candidate->name() == last.name()) { + if (candidate.name() == last.name()) { bestCandidates.emplace_back(candidate); } } @@ -213,7 +216,7 @@ std::pair SLPTree::getBest(SLPTree::MODE& mode, std::set scores; for (auto const& candidate : bestCandidates) { // Get the look-ahead score - auto const& score = getLookAheadScore(last, *candidate, level); + auto const& score = getLookAheadScore(last, candidate, level); if (scores.empty() || score > bestScore) { best = candidate; bestScore = score; @@ -221,7 +224,7 @@ std::pair SLPTree::getBest(SLPTree::MODE& mode, } } // If found best at level don't go deeper - if (best != nullptr && scores.size() > 1) { + if (best.hasValue() && scores.size() > 1) { break; } } @@ -230,19 +233,19 @@ std::pair SLPTree::getBest(SLPTree::MODE& mode, } // Remove best from candidates - if (best != nullptr) { + if (best.hasValue()) { candidates.erase(std::remove(std::begin(candidates), std::end(candidates), best), std::end(candidates)); } return {best, mode}; } -int SLPTree::getLookAheadScore(SLPNode& last, SLPNode& candidate, size_t const& maxLevel) const { +int SLPTree::getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const { if (maxLevel == 0 || last.name() != candidate.name()) { return 0; } auto scoreSum = 0; for (size_t lane = 0; lane < last.numLanes(); ++lane) { - for (auto& lastOperand : last.getOperands(lane)) { - for (auto& candidateOperand : candidate.getOperands(lane)) { + for (auto const& lastOperand : last.getOperands(lane)) { + for (auto const& candidateOperand : candidate.getOperands(lane)) { scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); } } From fe7b697f83a316e2b458707bd984dd1c6df24cc2 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 22 Jan 2021 04:19:32 +0100 Subject: [PATCH 017/385] LookAhead fix, removed a const qualifier. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 2 +- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 2 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 39 ++++++++++--------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 9b6386b0..8ee7385e 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -44,7 +44,7 @@ namespace mlir { private: - OperationName const operationName; + OperationName operationName; /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation /// if this node is a multinode. diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 0ef98844..66ea42a1 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -48,7 +48,7 @@ namespace mlir { size_t const maxLookAhead; - std::pair, MODE> getBest(MODE& mode, + std::pair, MODE> getBest(MODE const& mode, SLPNode const& last, std::vector& candidates) const; int getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index cd8900c7..584a9dc9 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -126,13 +126,10 @@ std::vector SLPTree::getOperands(Operation* operation) const { MODE SLPTree::modeFromOperation(Operation const* operation) const { if (dyn_cast(operation)) { - return MODE::CONST; + return CONST; } - // TODO: can this really be considered a load? I doubt it... - else if (dyn_cast(operation) || dyn_cast(operation)) { - return MODE::LOAD; - } - return MODE::OPCODE; + // We don't have LOADs. Therefore just return OPCODE. + return OPCODE; } std::vector> SLPTree::reorderOperands(SLPNode& multinode) { @@ -153,19 +150,21 @@ std::vector> SLPTree::reorderOperands(SLPNode& multinode) { // Look for a matching candidate for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize - if (mode.at(i) == MODE::FAILED) { + if (mode.at(i) == FAILED) { continue; } auto const& last = finalOrder.at(lane - 1).at(i); auto const& bestResult = getBest(mode.at(i), last, candidates); // Update output - // TODO: funky two dimensional stuff finalOrder.at(lane).emplace_back(bestResult.first.getValue()); // Detect SPLAT mode + // TODO: determine whether SPLAT mode is actually relevant (are the same operands used in more than one lane?) if (i == 1 && bestResult.first == last) { - mode.at(i) = MODE::SPLAT; + mode.at(i) = SPLAT; + } else { + mode.at(i) = bestResult.second; } } @@ -173,15 +172,17 @@ std::vector> SLPTree::reorderOperands(SLPNode& multinode) { return finalOrder; } -std::pair, MODE> SLPTree::getBest(MODE& mode, +std::pair, MODE> SLPTree::getBest(MODE const& mode, SLPNode const& last, std::vector& candidates) const { Optional best; + MODE resultMode = mode; std::vector bestCandidates; - if (mode == MODE::FAILED) { + + if (mode == FAILED) { // Don't select now, let others choose first best.reset(); - } else if (mode == MODE::SPLAT) { + } else if (mode == SPLAT) { // Look for other splat candidates for (auto& operand : candidates) { if (operand == last) { @@ -199,8 +200,9 @@ std::pair, MODE> SLPTree::getBest(MODE& mode, } } // 1. If we have a trivial solution, use it + // No matches if (bestCandidates.empty()) { - mode = MODE::FAILED; + resultMode = FAILED; } // Single match else if (bestCandidates.size() == 1) { @@ -208,11 +210,11 @@ std::pair, MODE> SLPTree::getBest(MODE& mode, } // 2. Look-ahead to choose from best candidates else { - if (mode == MODE::OPCODE) { + if (mode == OPCODE) { // Look-ahead on various levels for (size_t level = 1; level <= maxLookAhead; ++level) { // Best is the candidate with max score - int bestScore = 0; + auto bestScore = 0; std::set scores; for (auto const& candidate : bestCandidates) { // Get the look-ahead score @@ -236,11 +238,12 @@ std::pair, MODE> SLPTree::getBest(MODE& mode, if (best.hasValue()) { candidates.erase(std::remove(std::begin(candidates), std::end(candidates), best), std::end(candidates)); } - return {best, mode}; + return {best, resultMode}; } int SLPTree::getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const { - if (maxLevel == 0 || last.name() != candidate.name()) { - return 0; + if (maxLevel == 0) { + // No consecutive loads to check, only opcodes. + return last.name() == candidate.name() ? 1 : 0; } auto scoreSum = 0; for (size_t lane = 0; lane < last.numLanes(); ++lane) { From d6281b148ceb4d316b6be9d017e5c961a4f44e2d Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 22 Jan 2021 04:20:55 +0100 Subject: [PATCH 018/385] Added TODOs. --- mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h | 2 ++ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h index 96a881a6..847abdb0 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h @@ -14,10 +14,12 @@ namespace mlir { // look for a constant CONST, // look for a consecutive load to that in the previous lane + // TODO: do we have load operations? or something that can be treated equivalently? LOAD, // look for an operation of the same opcode OPCODE, // look for the exact same operation + // TODO: determine whether SPLAT mode is actually relevant (are the same operands used in more than one lane?) SPLAT, // vectorization has failed, give higher priority to others FAILED diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 584a9dc9..e2efb9f1 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -160,7 +160,6 @@ std::vector> SLPTree::reorderOperands(SLPNode& multinode) { finalOrder.at(lane).emplace_back(bestResult.first.getValue()); // Detect SPLAT mode - // TODO: determine whether SPLAT mode is actually relevant (are the same operands used in more than one lane?) if (i == 1 && bestResult.first == last) { mode.at(i) = SPLAT; } else { From 49600281eaedd753a84fc66b9c1ce945ba5f9a80 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 23 Jan 2021 03:17:34 +0100 Subject: [PATCH 019/385] Some static refactoring. --- .../Dialect/SPN/Analysis/SLP/SLPMode.h | 10 ++++ .../Dialect/SPN/Analysis/SLP/SLPTree.h | 44 ++++++++++++++--- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 48 ------------------- 3 files changed, 48 insertions(+), 54 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h index 847abdb0..45683205 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h @@ -6,6 +6,8 @@ #ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPMODE_H #define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPMODE_H +#include "SPN/SPNOps.h" + namespace mlir { namespace spn { namespace slp { @@ -25,6 +27,14 @@ namespace mlir { FAILED }; + static MODE modeFromOperation(Operation const* operation) { + if (dyn_cast(operation)) { + return CONST; + } + // We don't have LOADs. Therefore just return OPCODE. + return OPCODE; + } + } } } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 66ea42a1..0077759a 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -10,6 +10,7 @@ #include "mlir/IR/OpDefinition.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/StringMap.h" +#include "SPN/SPNOpTraits.h" #include "SLPNode.h" #include "SLPMode.h" @@ -35,12 +36,43 @@ namespace mlir { void buildGraph(std::vector const& operations, SLPNode& parentNode); - bool vectorizable(std::vector const& operations) const; - bool commutative(std::vector const& operations) const; - std::vector getOperands(std::vector const& values) const; - std::vector getOperands(Operation* value) const; - - MODE modeFromOperation(Operation const* operation) const; + /// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're + /// vectorizable and they all share the same opcode. + /// \param operations The potentially vectorizable operations. + /// \return True if the operations can be vectorized, otherwise false. + static bool vectorizable(std::vector const& operations) { + for (size_t i = 0; i < operations.size(); ++i) { + if (!operations.at(i)->hasTrait() + || (i > 0 && operations.at(i)->getName() != operations.front()->getName())) { + return false; + } + } + return true; + } + + static bool commutative(std::vector const& operations) { + return std::all_of(std::begin(operations), std::end(operations), [&](Operation* operation) { + return operation->hasTrait(); + }); + } + + static std::vector getOperands(std::vector const& values) { + std::vector operands; + for (auto const& operation : values) { + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); + } + } + return operands; + } + + static std::vector getOperands(Operation* operation) { + std::vector operands; + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); + } + return operands; + } std::vector> reorderOperands(SLPNode& multinode); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index e2efb9f1..5277a265 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -4,8 +4,6 @@ // #include "SPN/Analysis/SLP/SLPTree.h" -#include "SPN/SPNOps.h" -#include "SPN/SPNOpTraits.h" #include #include @@ -86,52 +84,6 @@ void SLPTree::buildGraph(std::vector const& operations, SLPNode& par } -/// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're -/// vectorizable and they all share the same opcode. -/// \param operations The potentially vectorizable operations. -/// \return True if the operations can be vectorized, otherwise false. -bool SLPTree::vectorizable(std::vector const& operations) const { - for (size_t i = 0; i < operations.size(); ++i) { - if (!operations.at(i)->hasTrait() - || (i > 0 && operations.at(i)->getName() != operations.front()->getName())) { - return false; - } - } - return true; -} - -bool SLPTree::commutative(std::vector const& operations) const { - return std::all_of(std::begin(operations), std::end(operations), [&](Operation* operation) { - return operation->hasTrait(); - }); -} - -std::vector SLPTree::getOperands(std::vector const& values) const { - std::vector operands; - for (auto const& operation : values) { - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); - } - } - return operands; -} - -std::vector SLPTree::getOperands(Operation* operation) const { - std::vector operands; - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); - } - return operands; -} - -MODE SLPTree::modeFromOperation(Operation const* operation) const { - if (dyn_cast(operation)) { - return CONST; - } - // We don't have LOADs. Therefore just return OPCODE. - return OPCODE; -} - std::vector> SLPTree::reorderOperands(SLPNode& multinode) { assert(multinode.isMultiNode()); std::vector> finalOrder{multinode.numLanes()}; From ff4e89416f799a56ab020eb7a32e73d345f0b341 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 23 Jan 2021 18:26:55 +0100 Subject: [PATCH 020/385] Added SPN -> .dot pass. --- mlir/tools/spnc-opt/spnc-opt.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 07d9c0be..719a2582 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -83,6 +83,10 @@ int main(int argc, char** argv) { return mlir::spn::createSPNtoLLVMConversionPass(); }); + mlir::registerPass("spn-to-dot", "Prints the SPN to a dot file", []() -> std::unique_ptr { + return mlir::createPrintOpGraphPass(llvm::errs(), false, llvm::Twine("test.dot")); + }); + llvm::InitLLVM y(argc, argv); // Register any pass manager command line options. From 35398d9a32b8b06f28db26ecb81910e43635f538 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 23 Jan 2021 18:27:57 +0100 Subject: [PATCH 021/385] Better .dot pass parameters. --- mlir/tools/spnc-opt/spnc-opt.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 719a2582..8cbf73bd 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -83,8 +83,8 @@ int main(int argc, char** argv) { return mlir::spn::createSPNtoLLVMConversionPass(); }); - mlir::registerPass("spn-to-dot", "Prints the SPN to a dot file", []() -> std::unique_ptr { - return mlir::createPrintOpGraphPass(llvm::errs(), false, llvm::Twine("test.dot")); + mlir::registerPass("spn-to-dot", "Prints the SPN to stderr", []() -> std::unique_ptr { + return mlir::createPrintOpGraphPass(); }); llvm::InitLLVM y(argc, argv); From b1f0b12939044efac139fe4d07c8d9dc4df530a9 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 23 Jan 2021 19:13:07 +0100 Subject: [PATCH 022/385] Better tree check. --- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 5277a265..55156179 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -15,15 +15,11 @@ using namespace mlir::spn::slp; SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, maxLookAhead{maxLookAhead} { assert(root); llvm::StringMap> operationsByOpCode; - std::set operations; for (auto& op : root->getBlock()->getOperations()) { operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); - operations.insert(&op); - for (auto const& operand : op.getOperands()) { - if (operations.find(operand.getDefiningOp()) != std::end(operations)) { - std::cout << "it's not a tree!" << std::endl; - return; - } + auto const& uses = std::distance(op.getUses().begin(), op.getUses().end()); + if (uses > 1) { + std::cerr << "SPN is not a tree!" << std::endl; } } @@ -63,23 +59,23 @@ void SLPTree::buildGraph(std::vector const& operations, SLPNode& par return; } // Create new node for values and add to graph - SLPNode* currentNode = &parentNode; + SLPNode& currentNode = parentNode; // Recursion call to grow graph further // 1. Commutative if (commutative(operations)) { // A. Coarsening Mode for (auto const& operation : operations) { - buildGraph(getOperands(operation), *currentNode); + buildGraph(getOperands(operation), currentNode); } // B. Normal Mode: Finished building multi-node - if (currentNode->isMultiNode()) { - reorderOperands(*currentNode); + if (currentNode.isMultiNode()) { + reorderOperands(currentNode); // TODO buildGraph() } } // 2. Non-Commutative else { - buildGraph(getOperands(operations), *currentNode); + buildGraph(getOperands(operations), currentNode); } } From 62b2cc202159aebe4ced3a24c2003546c23d9681 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 24 Jan 2021 00:45:57 +0100 Subject: [PATCH 023/385] WIP seed computation. --- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 43 +++++++++++++++++++ mlir/include/Dialect/SPN/SPNOpTraits.h | 3 ++ mlir/include/Dialect/SPN/SPNOpTraits.td | 5 +++ mlir/include/Dialect/SPN/SPNOps.td | 2 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 2 + 5 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h new file mode 100644 index 00000000..964e67d7 --- /dev/null +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -0,0 +1,43 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H +#define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H + +#include "llvm/ADT/StringMap.h" + +#include "SPN/SPNOps.h" + +namespace mlir { + namespace spn { + namespace slp { + namespace seeding { + + typedef llvm::SmallVector seed; + + static std::vector getSeeds(Operation* root) { + llvm::StringMap> operationsByName; + + for (auto& op : root->getBlock()->getOperations()) { + if (op.hasTrait() || op.hasTrait()) { + operationsByName[op.getName().getStringRef()].emplace_back(&op); + } + } + + // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. + for (auto& entry : operationsByName) { + std::sort(std::begin(entry.second), std::end(entry.second), [&](Operation* a, Operation* b) { + return a->getNumOperands() > b->getNumOperands(); + }); + } + + return {}; + } + } + } + } +} + +#endif //SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H diff --git a/mlir/include/Dialect/SPN/SPNOpTraits.h b/mlir/include/Dialect/SPN/SPNOpTraits.h index 2e1b6c4a..b0dfc62e 100644 --- a/mlir/include/Dialect/SPN/SPNOpTraits.h +++ b/mlir/include/Dialect/SPN/SPNOpTraits.h @@ -14,6 +14,9 @@ namespace mlir { template class Vectorizable : public TraitBase {}; + + template + class Binarizable : public TraitBase {}; } } } diff --git a/mlir/include/Dialect/SPN/SPNOpTraits.td b/mlir/include/Dialect/SPN/SPNOpTraits.td index ca8b9d6d..0b6fb1c0 100644 --- a/mlir/include/Dialect/SPN/SPNOpTraits.td +++ b/mlir/include/Dialect/SPN/SPNOpTraits.td @@ -8,4 +8,9 @@ include "SPNDialect.td" /// def Vectorizable : NativeOpTrait<"spn::Vectorizable">; +/// +/// Trait which can be attached to operations to mark them as binarizable (such as weighted sums or products). +/// +def Binarizable : NativeOpTrait<"spn::Binarizable">; + #endif // SPNOpTraits \ No newline at end of file diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 4a88e288..2bd1494b 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -42,7 +42,7 @@ def SumOp : SPN_NAry_Op<"sum"> { /// Weighted N-ary sum operation. /// def WeightedSumOp : SPN_Op<"weighted_sum", - [NoSideEffect, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { + [NoSideEffect, Binarizable, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { let summary = "Weighted, N-ary Sum Operation"; let description = [{ diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 55156179..03fbc3a9 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -4,6 +4,7 @@ // #include "SPN/Analysis/SLP/SLPTree.h" +#include "SPN/Analysis/SLP/SLPSeeding.h" #include #include @@ -24,6 +25,7 @@ SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, } // TODO compute seeds in a proper fashion + auto const& seeds = seeding::getSeeds(root); for (auto const& entry : operationsByOpCode) { SLPNode rootNode{entry.getValue()}; buildGraph(entry.getValue(), rootNode); From ef957d5c485f169d61848a5500ad359e5047288b Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 24 Jan 2021 02:01:46 +0100 Subject: [PATCH 024/385] Basic seeding setup. --- .../Dialect/SPN/Analysis/SLP/SLPMode.h | 10 ++-------- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 20 +++++++++++++++---- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 4 ++-- mlir/include/Dialect/SPN/SPNOps.td | 2 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp | 19 ++++++++++++++++++ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 8 ++++---- mlir/lib/Dialect/SPN/CMakeLists.txt | 1 + 7 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h index 45683205..c2b82880 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPMode.h @@ -12,7 +12,7 @@ namespace mlir { namespace spn { namespace slp { - enum MODE { + enum Mode { // look for a constant CONST, // look for a consecutive load to that in the previous lane @@ -27,13 +27,7 @@ namespace mlir { FAILED }; - static MODE modeFromOperation(Operation const* operation) { - if (dyn_cast(operation)) { - return CONST; - } - // We don't have LOADs. Therefore just return OPCODE. - return OPCODE; - } + Mode modeFromOperation(Operation const* operation); } } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h index 964e67d7..8bced896 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -17,23 +17,35 @@ namespace mlir { typedef llvm::SmallVector seed; - static std::vector getSeeds(Operation* root) { - llvm::StringMap> operationsByName; + enum Mode { + // Look for disjoint subgraphs in the operation tree. + DISJOINT, + // Look for the largest possible subgraph. + SIZE, + // Stop looking for subgraphs. + FAILED + }; + + static std::vector getSeeds(Operation* root, size_t const& width) { + llvm::StringMap> operationsByName; for (auto& op : root->getBlock()->getOperations()) { if (op.hasTrait() || op.hasTrait()) { operationsByName[op.getName().getStringRef()].emplace_back(&op); } } - // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. + std::vector seeds; for (auto& entry : operationsByName) { + // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. std::sort(std::begin(entry.second), std::end(entry.second), [&](Operation* a, Operation* b) { return a->getNumOperands() > b->getNumOperands(); }); + Mode searchMode = DISJOINT; + } - return {}; + return seeds; } } } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 0077759a..ed190374 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -11,8 +11,8 @@ #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/StringMap.h" #include "SPN/SPNOpTraits.h" -#include "SLPNode.h" #include "SLPMode.h" +#include "SLPNode.h" #include #include @@ -80,7 +80,7 @@ namespace mlir { size_t const maxLookAhead; - std::pair, MODE> getBest(MODE const& mode, + std::pair, Mode> getBest(Mode const& mode, SLPNode const& last, std::vector& candidates) const; int getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const; diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 2bd1494b..da5e9240 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -11,7 +11,7 @@ include "mlir/IR/RegionKindInterface.td" /// Abstract base class of n-ary arithmetic operations /// class SPN_NAry_Op : SPN_Op]> { + [NoSideEffect, Commutative, Binarizable, Vectorizable, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { /// Operands: Child nodes /// opcount: Number of child nodes let arguments = (ins Variadic: $operands); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp new file mode 100644 index 00000000..f53bfd9e --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp @@ -0,0 +1,19 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "SPN/Analysis/SLP/SLPMode.h" + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::slp; + +Mode mlir::spn::slp::modeFromOperation(Operation const* operation) { + if (dyn_cast(operation)) { + return CONST; + } + // We don't have LOADs. Therefore just return OPCODE. + return OPCODE; +} + diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 03fbc3a9..0e2bbb0c 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -25,7 +25,7 @@ SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, } // TODO compute seeds in a proper fashion - auto const& seeds = seeding::getSeeds(root); + auto const& seeds = seeding::getSeeds(root, 4); for (auto const& entry : operationsByOpCode) { SLPNode rootNode{entry.getValue()}; buildGraph(entry.getValue(), rootNode); @@ -85,7 +85,7 @@ void SLPTree::buildGraph(std::vector const& operations, SLPNode& par std::vector> SLPTree::reorderOperands(SLPNode& multinode) { assert(multinode.isMultiNode()); std::vector> finalOrder{multinode.numLanes()}; - std::vector mode; + std::vector mode; auto const& numOperands = multinode.getOperands(0).size(); // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { @@ -121,11 +121,11 @@ std::vector> SLPTree::reorderOperands(SLPNode& multinode) { return finalOrder; } -std::pair, MODE> SLPTree::getBest(MODE const& mode, +std::pair, Mode> SLPTree::getBest(Mode const& mode, SLPNode const& last, std::vector& candidates) const { Optional best; - MODE resultMode = mode; + Mode resultMode = mode; std::vector bestCandidates; if (mode == FAILED) { diff --git a/mlir/lib/Dialect/SPN/CMakeLists.txt b/mlir/lib/Dialect/SPN/CMakeLists.txt index d940db7e..0706efc6 100644 --- a/mlir/lib/Dialect/SPN/CMakeLists.txt +++ b/mlir/lib/Dialect/SPN/CMakeLists.txt @@ -6,6 +6,7 @@ add_mlir_dialect_library(MLIRSPN Analysis/SPNNodeLevel.cpp Analysis/SPNGraphStatistics.cpp Analysis/SLP/SLPTree.cpp + Analysis/SLP/SLPMode.cpp Analysis/SLP/SLPNode.cpp Canonicalization/CanonicalizationPatterns.cpp Simplification/SimplificationPatterns.cpp From b0e8b623fc2ad7d43849d7c40ed2288a12d86273 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 24 Jan 2021 04:38:28 +0100 Subject: [PATCH 025/385] Seeding test. --- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 34 ++------- mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp | 2 +- .../Dialect/SPN/Analysis/SLP/SLPSeeding.cpp | 72 +++++++++++++++++++ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 30 ++------ mlir/lib/Dialect/SPN/CMakeLists.txt | 3 +- 5 files changed, 87 insertions(+), 54 deletions(-) create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h index 8bced896..091a5573 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -6,8 +6,6 @@ #ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H #define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H -#include "llvm/ADT/StringMap.h" - #include "SPN/SPNOps.h" namespace mlir { @@ -15,38 +13,18 @@ namespace mlir { namespace slp { namespace seeding { - typedef llvm::SmallVector seed; + typedef std::vector seed_t; - enum Mode { - // Look for disjoint subgraphs in the operation tree. + enum SearchMode { + /// Look for disjoint subgraphs in the operation tree. DISJOINT, - // Look for the largest possible subgraph. + /// Look for the largest possible subgraph. SIZE, - // Stop looking for subgraphs. + /// Stop looking for subgraphs. FAILED }; - static std::vector getSeeds(Operation* root, size_t const& width) { - - llvm::StringMap> operationsByName; - for (auto& op : root->getBlock()->getOperations()) { - if (op.hasTrait() || op.hasTrait()) { - operationsByName[op.getName().getStringRef()].emplace_back(&op); - } - } - - std::vector seeds; - for (auto& entry : operationsByName) { - // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. - std::sort(std::begin(entry.second), std::end(entry.second), [&](Operation* a, Operation* b) { - return a->getNumOperands() > b->getNumOperands(); - }); - Mode searchMode = DISJOINT; - - } - - return seeds; - } + std::vector getSeeds(Operation* root, size_t const& width); } } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp index f53bfd9e..47cdd5d1 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPMode.cpp @@ -9,7 +9,7 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -Mode mlir::spn::slp::modeFromOperation(Operation const* operation) { +Mode slp::modeFromOperation(Operation const* operation) { if (dyn_cast(operation)) { return CONST; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp new file mode 100644 index 00000000..14a124b9 --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp @@ -0,0 +1,72 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "SPN/Analysis/SLP/SLPSeeding.h" +#include "llvm/ADT/StringMap.h" + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::slp; +using namespace mlir::spn::slp::seeding; + +std::vector seeding::getSeeds(Operation* root, size_t const& width) { + + llvm::StringMap> operationsByName; + for (auto& op : root->getBlock()->getOperations()) { + if (op.hasTrait() || op.hasTrait()) { + operationsByName[op.getName().getStringRef()].emplace_back(&op); + } + } + + std::vector seeds; + for (auto& entry : operationsByName) { + auto& operations = entry.second; + // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. + std::sort(std::begin(operations), std::end(operations), [&](Operation* a, Operation* b) { + return a->getNumOperands() > b->getNumOperands(); + }); + SearchMode searchMode = SIZE; + std::vector assignedOps(operations.size()); + for (size_t i = 0; i < operations.size() - width; ++i) { + + if (assignedOps.at(i)) { + continue; + } + + // Begin a new seed. + seed_t seed; + auto& firstOp = operations.at(i); + seed.emplace_back(firstOp); + assignedOps.at(i) = true; + + for (size_t j = i + 1; j < operations.size() && seed.size() < width; ++j) { + + if (assignedOps.at(j)) { + continue; + } + + auto& nextOp = operations.at(j); + // When in SIZE mode, simply add the next biggest operation to the seed. + if (searchMode == SIZE) { + seed.emplace_back(nextOp); + assignedOps.at(j) = true; + } + + if (seed.size() == width) { + break; + } + } + if (seed.size() == width) { + seeds.emplace_back(seed); + } else { + searchMode = FAILED; + } + } + + } + + return seeds; + +} diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 0e2bbb0c..4f848118 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -24,38 +24,20 @@ SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, } } - // TODO compute seeds in a proper fashion auto const& seeds = seeding::getSeeds(root, 4); - for (auto const& entry : operationsByOpCode) { - SLPNode rootNode{entry.getValue()}; - buildGraph(entry.getValue(), rootNode); + for (auto const& seed : seeds) { + SLPNode rootNode{seed}; + buildGraph(seed, rootNode); } + std::cout << "seeds computed" << std::endl; } -/* -void SLPTree::analyzeGraph(Operation* root) { - traverseSubgraph(root); -} - -void SLPTree::traverseSubgraph(Operation* root) { - std::cout << root->getName().getStringRef().str() << std::endl; - if (auto leaf = dyn_cast(root)) { - std::cout << "\tis a leaf." << std::endl; - } else { - std::cout << "\tis an inner node." << std::endl; - for (auto op : root->getOperands()) { - traverseSubgraph(op.getDefiningOp()); - } - } - -}*/ - - void SLPTree::buildGraph(std::vector const& operations, SLPNode& parentNode) { for (auto const& op : operations) { - std::cout << op->getName().getStringRef().str() << std::endl; + op->dump(); } + // TODO: handle binarizable > multinode conversion: if binarizable node, binarize it before going through here // Stop growing graph if (!vectorizable(operations)) { return; diff --git a/mlir/lib/Dialect/SPN/CMakeLists.txt b/mlir/lib/Dialect/SPN/CMakeLists.txt index 0706efc6..464dd953 100644 --- a/mlir/lib/Dialect/SPN/CMakeLists.txt +++ b/mlir/lib/Dialect/SPN/CMakeLists.txt @@ -5,9 +5,10 @@ add_mlir_dialect_library(MLIRSPN SPNEnums.cpp Analysis/SPNNodeLevel.cpp Analysis/SPNGraphStatistics.cpp - Analysis/SLP/SLPTree.cpp Analysis/SLP/SLPMode.cpp Analysis/SLP/SLPNode.cpp + Analysis/SLP/SLPTree.cpp + Analysis/SLP/SLPSeeding.cpp Canonicalization/CanonicalizationPatterns.cpp Simplification/SimplificationPatterns.cpp TypeAnalysis/TypePinningPatterns.cpp From 15111526c484dd598c7cf7f6066c123a24353686 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 24 Jan 2021 21:33:57 +0100 Subject: [PATCH 026/385] Converted seeding into proper MLIR analysis. --- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 21 ++++++++--- .../Dialect/SPN/Analysis/SLP/SLPSeeding.cpp | 34 ++++++++++------- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 4 +- .../Dialect/SPN/Passes/SPNVectorization.cpp | 37 +++++++++++++++++-- mlir/tools/spnc-opt/spnc-opt.cpp | 3 -- 5 files changed, 72 insertions(+), 27 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h index 091a5573..6dcec9da 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -7,25 +7,36 @@ #define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H #include "SPN/SPNOps.h" +#include "llvm/ADT/StringMap.h" namespace mlir { namespace spn { namespace slp { - namespace seeding { - typedef std::vector seed_t; + typedef std::vector seed_t; + + class SeedAnalysis { + + public: + + explicit SeedAnalysis(Operation* module); + + std::vector getSeeds(size_t const& width) const; + + private: enum SearchMode { /// Look for disjoint subgraphs in the operation tree. DISJOINT, /// Look for the largest possible subgraph. - SIZE, + GREEDY, /// Stop looking for subgraphs. FAILED }; - std::vector getSeeds(Operation* root, size_t const& width); - } + llvm::StringMap> operationsByName; + + }; } } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp index 14a124b9..7e610854 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp @@ -4,30 +4,38 @@ // #include "SPN/Analysis/SLP/SLPSeeding.h" -#include "llvm/ADT/StringMap.h" +#include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -using namespace mlir::spn::slp::seeding; -std::vector seeding::getSeeds(Operation* root, size_t const& width) { +SeedAnalysis::SeedAnalysis(Operation* module) : operationsByName{} { - llvm::StringMap> operationsByName; - for (auto& op : root->getBlock()->getOperations()) { - if (op.hasTrait() || op.hasTrait()) { - operationsByName[op.getName().getStringRef()].emplace_back(&op); + module->walk([&](Operation* op) { + if (op->hasTrait() || op->hasTrait()) { + operationsByName[op->getName().getStringRef()].emplace_back(op); } + }); + + // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. + for (auto& entry : operationsByName) { + std::sort(std::begin(entry.second), std::end(entry.second), [&](Operation* a, Operation* b) { + return a->getNumOperands() > b->getNumOperands(); + }); } +} + +std::vector SeedAnalysis::getSeeds(size_t const& width) const { + + std::cout << "Starting seed computation!" << std::endl; std::vector seeds; + for (auto& entry : operationsByName) { + auto& operations = entry.second; - // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. - std::sort(std::begin(operations), std::end(operations), [&](Operation* a, Operation* b) { - return a->getNumOperands() > b->getNumOperands(); - }); - SearchMode searchMode = SIZE; + SearchMode searchMode = GREEDY; std::vector assignedOps(operations.size()); for (size_t i = 0; i < operations.size() - width; ++i) { @@ -49,7 +57,7 @@ std::vector seeding::getSeeds(Operation* root, size_t const& width) { auto& nextOp = operations.at(j); // When in SIZE mode, simply add the next biggest operation to the seed. - if (searchMode == SIZE) { + if (searchMode == GREEDY) { seed.emplace_back(nextOp); assignedOps.at(j) = true; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 4f848118..1d14e91c 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -23,14 +23,14 @@ SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, std::cerr << "SPN is not a tree!" << std::endl; } } - +/* auto const& seeds = seeding::getSeeds(root, 4); for (auto const& seed : seeds) { SLPNode rootNode{seed}; buildGraph(seed, rootNode); } std::cout << "seeds computed" << std::endl; - +*/ } void SLPTree::buildGraph(std::vector const& operations, SLPNode& parentNode) { diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index f77c7133..7c8f4176 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -9,7 +9,10 @@ #include "SPNPassDetails.h" #include #include +#include #include "SPN/Analysis/SLP/SLPTree.h" +#include "SPN/Analysis/SLP/SLPSeeding.h" + using namespace mlir; using namespace mlir::spn; @@ -22,10 +25,36 @@ namespace { std::cout << "Starting SPN vectorization..." << std::endl; auto func = getOperation(); - func.walk([](Operation* op) { - if (auto query = dyn_cast(op)) { - for (auto r : query.getRootNodes()) { - slp::SLPTree graph(r, 4, 3); + func.walk([&](Operation* topLevelOp) { + if (auto query = dyn_cast(topLevelOp)) { + for (auto root : query.getRootNodes()) { + + // ============ TREE CHECK ============ + llvm::StringMap> operationsByOpCode; + for (auto& op : root->getBlock()->getOperations()) { + operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); + auto const& uses = std::distance(op.getUses().begin(), op.getUses().end()); + if (uses > 1) { + std::cerr << "SPN is not a tree!" << std::endl; + } + } + // ==================================== + + auto& seedAnalysis = getAnalysis(); + + auto const& seeds = seedAnalysis.getSeeds(4); + + if (!seeds.empty()) { + // Run simplification on seeds to binarize them into trees. + OpPassManager binarizer("operation", mlir::OpPassManager::Nesting::Explicit); + binarizer.addPass(createSPNOpSimplifierPass()); + runPipeline(binarizer, seeds.front().front()); + std::cout << "binarized a seed!" << std::endl; + } + + std::cout << "seeds computed" << std::endl; + + slp::SLPTree graph(root, 4, 3); } } }); diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 8cbf73bd..482ef220 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -4,14 +4,11 @@ // #include "mlir/IR/Dialect.h" -#include "mlir/IR/MLIRContext.h" #include "mlir/InitAllDialects.h" #include "mlir/InitAllPasses.h" -#include "mlir/Pass/Pass.h" #include "mlir/Pass/PassManager.h" #include "mlir/Support/FileUtilities.h" #include "mlir/Support/MlirOptMain.h" -#include "llvm/Support/CommandLine.h" #include "llvm/Support/InitLLVM.h" #include "llvm/Support/ToolOutputFile.h" From fbe708528f677b64eb72918972913ec1628f9ae3 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 31 Jan 2021 21:31:37 +0100 Subject: [PATCH 027/385] Included node level analysis in seeding computation. --- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 6 +- mlir/include/Dialect/SPN/SPNOpTraits.h | 3 - mlir/include/Dialect/SPN/SPNOpTraits.td | 5 -- mlir/include/Dialect/SPN/SPNOps.td | 4 +- .../Dialect/SPN/Analysis/SLP/SLPSeeding.cpp | 82 +++++++------------ .../Dialect/SPN/Passes/SPNVectorization.cpp | 29 +++---- 6 files changed, 46 insertions(+), 83 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h index 6dcec9da..0abc84c5 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -6,8 +6,8 @@ #ifndef SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H #define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPSEEDING_H +#include #include "SPN/SPNOps.h" -#include "llvm/ADT/StringMap.h" namespace mlir { namespace spn { @@ -21,7 +21,7 @@ namespace mlir { explicit SeedAnalysis(Operation* module); - std::vector getSeeds(size_t const& width) const; + std::vector getSeeds(size_t const& op, SPNNodeLevel const& nodeLevels) const; private: @@ -34,7 +34,7 @@ namespace mlir { FAILED }; - llvm::StringMap> operationsByName; + Operation* module; }; } diff --git a/mlir/include/Dialect/SPN/SPNOpTraits.h b/mlir/include/Dialect/SPN/SPNOpTraits.h index b0dfc62e..2e1b6c4a 100644 --- a/mlir/include/Dialect/SPN/SPNOpTraits.h +++ b/mlir/include/Dialect/SPN/SPNOpTraits.h @@ -14,9 +14,6 @@ namespace mlir { template class Vectorizable : public TraitBase {}; - - template - class Binarizable : public TraitBase {}; } } } diff --git a/mlir/include/Dialect/SPN/SPNOpTraits.td b/mlir/include/Dialect/SPN/SPNOpTraits.td index 0b6fb1c0..ca8b9d6d 100644 --- a/mlir/include/Dialect/SPN/SPNOpTraits.td +++ b/mlir/include/Dialect/SPN/SPNOpTraits.td @@ -8,9 +8,4 @@ include "SPNDialect.td" /// def Vectorizable : NativeOpTrait<"spn::Vectorizable">; -/// -/// Trait which can be attached to operations to mark them as binarizable (such as weighted sums or products). -/// -def Binarizable : NativeOpTrait<"spn::Binarizable">; - #endif // SPNOpTraits \ No newline at end of file diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index da5e9240..4a88e288 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -11,7 +11,7 @@ include "mlir/IR/RegionKindInterface.td" /// Abstract base class of n-ary arithmetic operations /// class SPN_NAry_Op : SPN_Op]> { + [NoSideEffect, Commutative, Vectorizable, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { /// Operands: Child nodes /// opcount: Number of child nodes let arguments = (ins Variadic: $operands); @@ -42,7 +42,7 @@ def SumOp : SPN_NAry_Op<"sum"> { /// Weighted N-ary sum operation. /// def WeightedSumOp : SPN_Op<"weighted_sum", - [NoSideEffect, Binarizable, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { + [NoSideEffect, SameOperandsAndResultType, DeclareOpInterfaceMethods]> { let summary = "Weighted, N-ary Sum Operation"; let description = [{ diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp index 7e610854..af34f8c8 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp @@ -5,76 +5,50 @@ #include "SPN/Analysis/SLP/SLPSeeding.h" #include +#include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SeedAnalysis::SeedAnalysis(Operation* module) : operationsByName{} { +SeedAnalysis::SeedAnalysis(Operation* module) : module{module} {} - module->walk([&](Operation* op) { - if (op->hasTrait() || op->hasTrait()) { - operationsByName[op->getName().getStringRef()].emplace_back(op); - } - }); - - // Sort operations by their number of operands in descending order to maximize vectorization tree sizes. - for (auto& entry : operationsByName) { - std::sort(std::begin(entry.second), std::end(entry.second), [&](Operation* a, Operation* b) { - return a->getNumOperands() > b->getNumOperands(); - }); - } -} - -std::vector SeedAnalysis::getSeeds(size_t const& width) const { +std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel const& nodeLevels) const { std::cout << "Starting seed computation!" << std::endl; - std::vector seeds; - - for (auto& entry : operationsByName) { + llvm::StringMap> seedsByOpName; - auto& operations = entry.second; - SearchMode searchMode = GREEDY; - std::vector assignedOps(operations.size()); - for (size_t i = 0; i < operations.size() - width; ++i) { - - if (assignedOps.at(i)) { - continue; + module->walk([&](Operation* op) { + auto depth = nodeLevels.getOperationDepth(op); + if (!op->hasTrait() || depth < log2(width)) { + return; + } + bool needsNewSeed = true; + for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { + if (seed.size() < width) { + seed.emplace_back(op); + needsNewSeed = false; + break; } + } + if (needsNewSeed) { + seed_t seed{op}; + seedsByOpName[op->getName().getStringRef()].emplace_back(seed); + } - // Begin a new seed. - seed_t seed; - auto& firstOp = operations.at(i); - seed.emplace_back(firstOp); - assignedOps.at(i) = true; - - for (size_t j = i + 1; j < operations.size() && seed.size() < width; ++j) { - - if (assignedOps.at(j)) { - continue; - } - - auto& nextOp = operations.at(j); - // When in SIZE mode, simply add the next biggest operation to the seed. - if (searchMode == GREEDY) { - seed.emplace_back(nextOp); - assignedOps.at(j) = true; - } + }); - if (seed.size() == width) { - break; - } - } - if (seed.size() == width) { - seeds.emplace_back(seed); - } else { - searchMode = FAILED; + std::vector seeds; + // Flatten the map that maps opcode to seeds. + for (auto const& entry : seedsByOpName) { + for (auto const& seed : entry.second) { + if (seed.size() != width) { + continue; } + seeds.emplace_back(seed); } - } - return seeds; } diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 7c8f4176..3c7377bf 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -12,6 +12,7 @@ #include #include "SPN/Analysis/SLP/SLPTree.h" #include "SPN/Analysis/SLP/SLPSeeding.h" +#include "SPN/Analysis/SPNNodeLevel.h" using namespace mlir; using namespace mlir::spn; @@ -23,9 +24,18 @@ namespace { protected: void runOnOperation() override { std::cout << "Starting SPN vectorization..." << std::endl; - auto func = getOperation(); + auto module = getOperation(); - func.walk([&](Operation* topLevelOp) { + auto& depthAnalysis = getAnalysis(); + auto& seedAnalysis = getAnalysis(); + auto seeds = seedAnalysis.getSeeds(4, depthAnalysis); + std::cout << "seeds computed" << std::endl; + + if (!seeds.empty()) { + std::cout << "binarized spn!" << std::endl; + } + + module.walk([&](Operation* topLevelOp) { if (auto query = dyn_cast(topLevelOp)) { for (auto root : query.getRootNodes()) { @@ -40,25 +50,12 @@ namespace { } // ==================================== - auto& seedAnalysis = getAnalysis(); - - auto const& seeds = seedAnalysis.getSeeds(4); - - if (!seeds.empty()) { - // Run simplification on seeds to binarize them into trees. - OpPassManager binarizer("operation", mlir::OpPassManager::Nesting::Explicit); - binarizer.addPass(createSPNOpSimplifierPass()); - runPipeline(binarizer, seeds.front().front()); - std::cout << "binarized a seed!" << std::endl; - } - - std::cout << "seeds computed" << std::endl; - slp::SLPTree graph(root, 4, 3); } } }); } + }; } From 4295622b829497bfa3359e360a4245043223ae0c Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 31 Jan 2021 22:31:19 +0100 Subject: [PATCH 028/385] Marked Gaussian leaves as vectorizable. --- mlir/include/Dialect/SPN/SPNOps.td | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 4a88e288..beb2c073 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -133,7 +133,7 @@ def CategoricalOp : SPN_Op<"categorical", /// Gaussian distribution as SPN leaf node. /// def GaussianOp : SPN_Op<"gaussian", - [NoSideEffect, DeclareOpInterfaceMethods]> { + [NoSideEffect, Vectorizable, DeclareOpInterfaceMethods]> { let summary = "Gaussian leaf distribution"; From ae77bfccfa8e1d29fe61525e5a7346c17bb67b62 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 31 Jan 2021 22:31:52 +0100 Subject: [PATCH 029/385] Changed vectorization pass to run on JointQueries instead of ModuleOps. --- mlir/include/Dialect/SPN/SPNPasses.h | 3 ++- mlir/include/Dialect/SPN/SPNPasses.td | 3 ++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp | 1 + mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp | 6 +----- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/mlir/include/Dialect/SPN/SPNPasses.h b/mlir/include/Dialect/SPN/SPNPasses.h index 0ae66fbe..4163b61c 100644 --- a/mlir/include/Dialect/SPN/SPNPasses.h +++ b/mlir/include/Dialect/SPN/SPNPasses.h @@ -7,6 +7,7 @@ #define SPNC_MLIR_DIALECTS_INCLUDE_SPN_SPNPASSES_H #include "mlir/Pass/Pass.h" +#include "SPNOps.h" namespace mlir { namespace spn { @@ -23,7 +24,7 @@ namespace mlir { /// Instantiate the SPNVectorization pass vectorizing the computation of the SPN. /// \return Pass instance. - std::unique_ptr> createSPNVectorizationPass(); + std::unique_ptr> createSPNVectorizationPass(); #define GEN_PASS_REGISTRATION #include "SPN/SPNPasses.h.inc" diff --git a/mlir/include/Dialect/SPN/SPNPasses.td b/mlir/include/Dialect/SPN/SPNPasses.td index bbbd7ac3..829a07e2 100644 --- a/mlir/include/Dialect/SPN/SPNPasses.td +++ b/mlir/include/Dialect/SPN/SPNPasses.td @@ -2,6 +2,7 @@ #define MLIR_DIALECT_SPN_PASSES include "mlir/Pass/PassBase.td" +include "SPNOps.td" def SPNOpSimplifier : Pass<"spn-op-simplifier", "ModuleOp"> { let summary = "Simplify SPN operations"; @@ -13,7 +14,7 @@ def SPNTypePinning : Pass<"spn-type-pinning", "ModuleOp"> { let constructor = "mlir::spn::createSPNTypePinningPass()"; } -def SPNVectorization : Pass<"spn-vectorization", "ModuleOp"> { +def SPNVectorization : Pass<"spn-vectorization", "JointQuery"> { let summary = "Vectorize SPN execution"; let constructor = "mlir::spn::createSPNVectorizationPass()"; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp index af34f8c8..f1f5d9ff 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp @@ -20,6 +20,7 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel con llvm::StringMap> seedsByOpName; module->walk([&](Operation* op) { + op->getLoc().dump(); auto depth = nodeLevels.getOperationDepth(op); if (!op->hasTrait() || depth < log2(width)) { return; diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 3c7377bf..2c41b9dd 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -3,13 +3,9 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "mlir/IR/Matchers.h" -#include "mlir/IR/PatternMatch.h" #include "SPN/SPNPasses.h" #include "SPNPassDetails.h" #include -#include -#include #include "SPN/Analysis/SLP/SLPTree.h" #include "SPN/Analysis/SLP/SLPSeeding.h" #include "SPN/Analysis/SPNNodeLevel.h" @@ -60,7 +56,7 @@ namespace { } -std::unique_ptr> mlir::spn::createSPNVectorizationPass() { +std::unique_ptr> mlir::spn::createSPNVectorizationPass() { return std::make_unique(); } From 0ef4766b3af48e3d0fbb91cc45f77a110e356135 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 1 Feb 2021 02:48:01 +0100 Subject: [PATCH 030/385] Added seed sorting. --- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 22 ++++++++++--------- .../Dialect/SPN/Analysis/SLP/SLPSeeding.cpp | 19 +++++++++++++--- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h index 0abc84c5..92349881 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -15,25 +15,27 @@ namespace mlir { typedef std::vector seed_t; + enum SearchMode { + /// + RootToLeaf, + /// + LeafToRoot, + /// TODO? + Chain + }; + class SeedAnalysis { public: explicit SeedAnalysis(Operation* module); - std::vector getSeeds(size_t const& op, SPNNodeLevel const& nodeLevels) const; + std::vector getSeeds(size_t const& op, + SPNNodeLevel const& nodeLevels, + SearchMode const& mode = RootToLeaf) const; private: - enum SearchMode { - /// Look for disjoint subgraphs in the operation tree. - DISJOINT, - /// Look for the largest possible subgraph. - GREEDY, - /// Stop looking for subgraphs. - FAILED - }; - Operation* module; }; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp index f1f5d9ff..7ebbfc9e 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp @@ -13,7 +13,9 @@ using namespace mlir::spn::slp; SeedAnalysis::SeedAnalysis(Operation* module) : module{module} {} -std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel const& nodeLevels) const { +std::vector SeedAnalysis::getSeeds(size_t const& width, + SPNNodeLevel const& nodeLevels, + SearchMode const& mode) const { std::cout << "Starting seed computation!" << std::endl; @@ -27,7 +29,7 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel con } bool needsNewSeed = true; for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { - if (seed.size() < width) { + if (seed.size() < width && nodeLevels.getOperationDepth(seed.front()) == depth) { seed.emplace_back(op); needsNewSeed = false; break; @@ -37,7 +39,6 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel con seed_t seed{op}; seedsByOpName[op->getName().getStringRef()].emplace_back(seed); } - }); std::vector seeds; @@ -50,6 +51,18 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel con seeds.emplace_back(seed); } } + // Sort the seeds such that either the seeds closest to the root come first (RootToLeaf), + // or those closest to the leaves (LeafToRoot). + std::sort(seeds.begin(), seeds.end(), [&](seed_t const& seed1, seed_t const& seed2) { + if (mode == RootToLeaf) { + return nodeLevels.getOperationDepth(seed1.front()) < nodeLevels.getOperationDepth(seed2.front()); + } else if (mode == LeafToRoot) { + return nodeLevels.getOperationDepth(seed1.front()) > nodeLevels.getOperationDepth(seed2.front()); + } else { + // Unused so far. + assert(false); + } + }); return seeds; } From 66f9f1ab84c37badbdd2465431ae1d8c1dd660e1 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 1 Feb 2021 03:03:40 +0100 Subject: [PATCH 031/385] Updated graph building to new seed analysis. --- .../Dialect/SPN/Analysis/SLP/SLPSeeding.h | 4 +- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 8 +--- .../Dialect/SPN/Analysis/SLP/SLPSeeding.cpp | 8 +--- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 23 ++-------- .../Dialect/SPN/Passes/SPNVectorization.cpp | 46 +++++++++---------- 5 files changed, 32 insertions(+), 57 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h index 92349881..3f784237 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPSeeding.h @@ -28,7 +28,7 @@ namespace mlir { public: - explicit SeedAnalysis(Operation* module); + explicit SeedAnalysis(Operation* jointQuery); std::vector getSeeds(size_t const& op, SPNNodeLevel const& nodeLevels, @@ -36,7 +36,7 @@ namespace mlir { private: - Operation* module; + Operation* jointQuery; }; } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index ed190374..35df6081 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -13,6 +13,7 @@ #include "SPN/SPNOpTraits.h" #include "SLPMode.h" #include "SLPNode.h" +#include "SLPSeeding.h" #include #include @@ -21,16 +22,11 @@ namespace mlir { namespace spn { namespace slp { - /// - /// Graph class storing Use-Def chains of an SPN. class SLPTree { public: - /// Constructor, initialize analysis. - /// \param root Root node of a (sub-)graph or query operation. - /// \param width The target width of the SLP vectors. - explicit SLPTree(Operation* op, size_t width, size_t maxLookAhead); + explicit SLPTree(seed_t const& seed, size_t maxLookAhead); private: diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp index 7ebbfc9e..db529f46 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPSeeding.cpp @@ -4,25 +4,21 @@ // #include "SPN/Analysis/SLP/SLPSeeding.h" -#include #include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SeedAnalysis::SeedAnalysis(Operation* module) : module{module} {} +SeedAnalysis::SeedAnalysis(Operation* jointQuery) : jointQuery{jointQuery} {} std::vector SeedAnalysis::getSeeds(size_t const& width, SPNNodeLevel const& nodeLevels, SearchMode const& mode) const { - std::cout << "Starting seed computation!" << std::endl; - llvm::StringMap> seedsByOpName; - module->walk([&](Operation* op) { - op->getLoc().dump(); + jointQuery->walk([&](Operation* op) { auto depth = nodeLevels.getOperationDepth(op); if (!op->hasTrait() || depth < log2(width)) { return; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 1d14e91c..251885ff 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -4,7 +4,6 @@ // #include "SPN/Analysis/SLP/SLPTree.h" -#include "SPN/Analysis/SLP/SLPSeeding.h" #include #include @@ -13,31 +12,15 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPTree::SLPTree(Operation* root, size_t width, size_t maxLookAhead) : graphs{}, maxLookAhead{maxLookAhead} { - assert(root); - llvm::StringMap> operationsByOpCode; - for (auto& op : root->getBlock()->getOperations()) { - operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); - auto const& uses = std::distance(op.getUses().begin(), op.getUses().end()); - if (uses > 1) { - std::cerr << "SPN is not a tree!" << std::endl; - } - } -/* - auto const& seeds = seeding::getSeeds(root, 4); - for (auto const& seed : seeds) { - SLPNode rootNode{seed}; - buildGraph(seed, rootNode); - } - std::cout << "seeds computed" << std::endl; -*/ +SLPTree::SLPTree(seed_t const& seed, size_t maxLookAhead) : graphs{}, maxLookAhead{maxLookAhead} { + SLPNode rootNode{seed}; + buildGraph(seed, rootNode); } void SLPTree::buildGraph(std::vector const& operations, SLPNode& parentNode) { for (auto const& op : operations) { op->dump(); } - // TODO: handle binarizable > multinode conversion: if binarizable node, binarize it before going through here // Stop growing graph if (!vectorizable(operations)) { return; diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 2c41b9dd..53d702f2 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -19,37 +19,37 @@ namespace { protected: void runOnOperation() override { + std::cout << "Starting SPN vectorization..." << std::endl; - auto module = getOperation(); + auto query = getOperation(); + + // ============ TREE CHECK ============ // + query.walk([&](Operation* topLevelOp) { + for (auto root : query.getRootNodes()) { + + llvm::StringMap> operationsByOpCode; + for (auto& op : root->getBlock()->getOperations()) { + operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); + auto const& uses = std::distance(op.getUses().begin(), op.getUses().end()); + if (uses > 1) { + std::cerr << "SPN is not a tree!" << std::endl; + // TODO: how to handle such cases? and is special handling required at all? + assert(false); + } + } + } + }); + // ==================================== // auto& depthAnalysis = getAnalysis(); auto& seedAnalysis = getAnalysis(); + std::cout << "Starting seed computation!" << std::endl; auto seeds = seedAnalysis.getSeeds(4, depthAnalysis); - std::cout << "seeds computed" << std::endl; + std::cout << "Seeds computed" << std::endl; if (!seeds.empty()) { - std::cout << "binarized spn!" << std::endl; + slp::SLPTree graph(seeds.front(), 3); } - - module.walk([&](Operation* topLevelOp) { - if (auto query = dyn_cast(topLevelOp)) { - for (auto root : query.getRootNodes()) { - - // ============ TREE CHECK ============ - llvm::StringMap> operationsByOpCode; - for (auto& op : root->getBlock()->getOperations()) { - operationsByOpCode[op.getName().getStringRef().str()].emplace_back(&op); - auto const& uses = std::distance(op.getUses().begin(), op.getUses().end()); - if (uses > 1) { - std::cerr << "SPN is not a tree!" << std::endl; - } - } - // ==================================== - - slp::SLPTree graph(root, 4, 3); - } - } - }); } }; From 9001da6587264fe76ab75ebac554958c0fccdcbb Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 1 Feb 2021 04:38:26 +0100 Subject: [PATCH 032/385] Added subgraph printing method for debugging purposes. --- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 42 +++++++++++++++++++ mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 1 + 2 files changed, 43 insertions(+) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 35df6081..9f6f560d 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -17,6 +17,8 @@ #include #include +#include +#include namespace mlir { namespace spn { @@ -79,7 +81,47 @@ namespace mlir { std::pair, Mode> getBest(Mode const& mode, SLPNode const& last, std::vector& candidates) const; + int getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const; + + /// For debugging purposes. + static void printSubgraph(std::vector const& operations) { + std::set nodes; + std::vector> edges; + + std::stack worklist; + for (auto& op : operations) { + worklist.push(op); + } + + while (!worklist.empty()) { + + auto op = worklist.top(); + worklist.pop(); + + if (nodes.find(op) == nodes.end()) { + nodes.insert(op); + for (auto operand : op->getOperands()) { + if (operand.getDefiningOp() != nullptr) { + edges.emplace_back(std::make_pair(op, operand.getDefiningOp())); + worklist.push(operand.getDefiningOp()); + } + } + } + } + + llvm::errs() << "digraph debug_graph {\n"; + llvm::errs() << "rankdir = BT;\n"; + llvm::errs() << "node[shape=box];\n"; + for (auto& op : nodes) { + llvm::errs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op << "\"];\n"; + } + for (auto& edge : edges) { + llvm::errs() << "node_" << edge.first << " -> node_" << edge.second << ";\n"; + } + llvm::errs() << "}\n"; + } + }; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 251885ff..c37e0d38 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -20,6 +20,7 @@ SLPTree::SLPTree(seed_t const& seed, size_t maxLookAhead) : graphs{}, maxLookAhe void SLPTree::buildGraph(std::vector const& operations, SLPNode& parentNode) { for (auto const& op : operations) { op->dump(); + op->getLoc()->dump(); } // Stop growing graph if (!vectorizable(operations)) { From 4ae217790228bb2a8bb461f0d56d495e6337f147 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 2 Feb 2021 04:44:37 +0100 Subject: [PATCH 033/385] Refactoring of buildGraph(). --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 21 ++--- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 79 ++++++++++------ mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 60 ++---------- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 93 ++++++++++++------- 4 files changed, 124 insertions(+), 129 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 8ee7385e..eeed2cb1 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -19,23 +19,17 @@ namespace mlir { public: explicit SLPNode(std::vector const& operations); - explicit SLPNode(Operation* operation); - - void addOperands(std::vector> const& operandsPerLane); - void addOperandsToLane(std::vector const& operations, size_t const& lane); - std::vector const& getOperands(size_t const& lane) const; - SLPNode const& getOperand(size_t const& lane, size_t const& index) const; + void addOperationToLane(Operation* operation, size_t const& lane); + std::vector getLastOperations() const; Operation* getOperation(size_t lane, size_t index); - OperationName const& name() const; bool isMultiNode() const; size_t numLanes() const; - bool attachable(std::vector> const& operations); friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.operationName, lhs.lanes, lhs.operands) - == std::tie(rhs.operationName, rhs.lanes, rhs.operands); + return std::tie(lhs.lanes, lhs.operands) + == std::tie(rhs.lanes, rhs.operands); } friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { @@ -44,16 +38,15 @@ namespace mlir { private: - OperationName operationName; - /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation /// if this node is a multinode. std::vector> lanes; - /// A list of operands for each lane. - std::vector> operands; + /// A list of operands in the form of other SLPNodes. + std::vector operands; }; + } } } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 9f6f560d..68a59887 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -7,32 +7,36 @@ #define SPNC_MLIR_DIALECTS_INCLUDE_DIALECT_SPN_ANALYSIS_SLP_SLPGRAPH_H #include "mlir/IR/Operation.h" -#include "mlir/IR/OpDefinition.h" -#include "llvm/ADT/SmallPtrSet.h" -#include "llvm/ADT/StringMap.h" #include "SPN/SPNOpTraits.h" #include "SLPMode.h" #include "SLPNode.h" #include "SLPSeeding.h" -#include -#include -#include #include namespace mlir { namespace spn { namespace slp { + typedef std::shared_ptr node_t; + class SLPTree { public: - explicit SLPTree(seed_t const& seed, size_t maxLookAhead); + SLPTree(seed_t const& seed, size_t const& maxLookAhead); private: - void buildGraph(std::vector const& operations, SLPNode& parentNode); + void buildGraph(std::vector const& operations, node_t const& currentNode); + + std::vector> reorderOperands(node_t const& multinode); + + std::pair, Mode> getBest(Mode const& mode, + node_t const& last, + std::vector& candidates) const; + + int getLookAheadScore(node_t const& last, node_t const& candidate, size_t const& maxLevel) const; /// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're /// vectorizable and they all share the same opcode. @@ -54,35 +58,50 @@ namespace mlir { }); } - static std::vector getOperands(std::vector const& values) { - std::vector operands; - for (auto const& operation : values) { + static bool escapesMultinode(Operation* operation) { + // TODO: check if some intermediate, temporary value of a multinode is used outside of it + return false; + } + + static std::vector> getOperands(std::vector const& operations) { + std::vector> allOperands; + for (auto* operation : operations) { + std::vector operands; + operands.reserve(operation->getNumOperands()); for (auto operand : operation->getOperands()) { operands.emplace_back(operand.getDefiningOp()); } + allOperands.emplace_back(operands); } - return operands; + return allOperands; } - static std::vector getOperands(Operation* operation) { - std::vector operands; - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); + static std::vector> getOperandsTransposed(std::vector const& operations) { + std::vector> allOperands; + for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { + std::vector operand; + operand.reserve(operations.size()); + for (auto* operation : operations) { + operand.emplace_back(operation->getOperand(i).getDefiningOp()); + } + allOperands.emplace_back(operand); } - return operands; + return allOperands; } - std::vector> reorderOperands(SLPNode& multinode); - - std::vector graphs; - - size_t const maxLookAhead; - - std::pair, Mode> getBest(Mode const& mode, - SLPNode const& last, - std::vector& candidates) const; - - int getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const; + static void sortByOpcode(std::vector& operations, + Optional const& smallestOpcode) { + std::sort(std::begin(operations), std::end(operations), [&](Operation* lhs, Operation* rhs) { + if (smallestOpcode.hasValue()) { + if (lhs->getName() == *smallestOpcode) { + return rhs->getName() != *smallestOpcode; + } else if (rhs->getName() == *smallestOpcode) { + return false; + } + } + return lhs->getName().getStringRef() < rhs->getName().getStringRef(); + }); + } /// For debugging purposes. static void printSubgraph(std::vector const& operations) { @@ -122,6 +141,10 @@ namespace mlir { llvm::errs() << "}\n"; } + std::map> operandsOf; + + size_t const maxLookAhead; + }; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 82c5e3c2..efb790a8 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -11,61 +11,29 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPNode::SLPNode(std::vector const& operations) : operationName{operations.front()->getName()}, - lanes{operations.size()}, +SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()}, operands{operations.size()} { for (size_t i = 0; i < operations.size(); ++i) { - assert(i == 0 || operations.at(i)->getName() == operationName); lanes.at(i).emplace_back(operations.at(i)); } } -SLPNode::SLPNode(Operation* operation) : operationName{operation->getName()}, - lanes{}, - operands{} {} - -void SLPNode::addOperands(std::vector> const& operandsPerLane) { - assert(operandsPerLane.size() == numLanes()); - // If the operations are attachable (i.e. same opcode), insert them into this node (forming a multinode). - if (attachable(operandsPerLane)) { - for (size_t lane = 0; lane < numLanes(); ++lane) { - lanes.at(lane).insert(std::end(lanes.at(lane)), - std::begin(operandsPerLane.at(lane)), - std::end(operandsPerLane.at(lane))); - } - } - // Otherwise, don't modify this node's operations and add the operands as true operands. - else { - for (size_t lane = 0; lane < numLanes(); ++lane) { - addOperandsToLane(operandsPerLane.at(lane), lane); - } - } - +void SLPNode::addOperationToLane(Operation* operation, size_t const& lane) { + lanes.at(lane).emplace_back(operation); } -void SLPNode::addOperandsToLane(std::vector const& operations, size_t const& lane) { - assert(operations.size() == lanes.at(lane).back()->getNumOperands()); - for (auto const& operand : operations) { - operands.at(lane).emplace_back(operand); +std::vector SLPNode::getLastOperations() const { + std::vector lastOperations; + for (size_t lane = 0; lane < numLanes(); ++lane) { + lastOperations.emplace_back(lanes.at(lane).back()); } -} - -std::vector const& SLPNode::getOperands(size_t const& lane) const { - return operands.at(lane); -} - -SLPNode const& SLPNode::getOperand(size_t const& lane, size_t const& index) const { - return operands.at(lane).at(index); + return lastOperations; } Operation* SLPNode::getOperation(size_t lane, size_t index) { return lanes.at(lane).at(index); } -OperationName const& SLPNode::name() const { - return operationName; -} - bool SLPNode::isMultiNode() const { return lanes.front().size() > 1; } @@ -73,15 +41,3 @@ bool SLPNode::isMultiNode() const { size_t SLPNode::numLanes() const { return lanes.size(); } - -bool SLPNode::attachable(std::vector> const& operations) { - // TODO operands escape multi-node? - for (auto const& laneOperands : operations) { - if (std::any_of(std::begin(laneOperands), - std::end(laneOperands), - [&](auto const& operandOperation) { return operandOperation->getName() != operationName; })) { - return false; - } - } - return true; -} diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index c37e0d38..9ce23f58 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -5,64 +5,86 @@ #include "SPN/Analysis/SLP/SLPTree.h" -#include #include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPTree::SLPTree(seed_t const& seed, size_t maxLookAhead) : graphs{}, maxLookAhead{maxLookAhead} { - SLPNode rootNode{seed}; - buildGraph(seed, rootNode); +SLPTree::SLPTree(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{}, maxLookAhead{maxLookAhead} { + auto const& currentNode = std::make_shared(seed); + operandsOf[currentNode] = {}; + buildGraph(seed, currentNode); } -void SLPTree::buildGraph(std::vector const& operations, SLPNode& parentNode) { - for (auto const& op : operations) { +void SLPTree::buildGraph(std::vector const& operations, node_t const& currentNode) { + llvm::errs() << "Building graph with:\n"; + for (auto* op : operations) { + llvm::errs() << op << ": "; op->dump(); - op->getLoc()->dump(); } // Stop growing graph if (!vectorizable(operations)) { return; } - // Create new node for values and add to graph - SLPNode& currentNode = parentNode; + auto const& currentOpCode = operations.front()->getName(); // Recursion call to grow graph further // 1. Commutative if (commutative(operations)) { // A. Coarsening Mode - for (auto const& operation : operations) { - buildGraph(getOperands(operation), currentNode); + auto allOperands = getOperands(operations); + for (auto& operands : allOperands) { + sortByOpcode(operands, currentOpCode); } + for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { + auto const& operand = allOperands.at(i); + if (std::all_of(std::begin(operand), std::end(operand), [&](auto* operation) { + return operation->getName() == currentOpCode && !escapesMultinode(operation); + })) { + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + currentNode->addOperationToLane(operand.at(lane), lane); + } + buildGraph(currentNode->getLastOperations(), currentNode); + } else { + operandsOf[currentNode].emplace_back(std::make_shared(operand)); + } + } + // B. Normal Mode: Finished building multi-node - if (currentNode.isMultiNode()) { + if (currentNode->isMultiNode()) { reorderOperands(currentNode); - // TODO buildGraph() + for (auto& operandNode : operandsOf.at(currentNode)) { + buildGraph(operandNode->getLastOperations(), currentNode); + } } } // 2. Non-Commutative else { - buildGraph(getOperands(operations), currentNode); + std::vector> operands; + for (auto const& operandOperations : getOperandsTransposed(operations)) { + auto const& operandNode = std::make_shared(operandOperations); + operandsOf[currentNode].emplace_back(operandNode); + buildGraph(operandOperations, operandNode); + } } } -std::vector> SLPTree::reorderOperands(SLPNode& multinode) { - assert(multinode.isMultiNode()); - std::vector> finalOrder{multinode.numLanes()}; +std::vector> SLPTree::reorderOperands(node_t const& multinode) { + assert(multinode->isMultiNode()); + std::vector> finalOrder{multinode->numLanes()}; std::vector mode; - auto const& numOperands = multinode.getOperands(0).size(); + auto const& numOperands = operandsOf.at(multinode).size(); // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { - auto operand = multinode.getOperand(0, i); + auto operand = operandsOf.at(multinode).at(i); finalOrder.at(0).emplace_back(operand); - mode.emplace_back(modeFromOperation(operand.getOperation(0, 0))); + mode.emplace_back(modeFromOperation(operand->getOperation(0, 0))); } // 2. For all other lanes, find best candidate - for (size_t lane = 1; lane < multinode.numLanes(); ++lane) { - std::vector candidates{multinode.getOperands(lane)}; + for (size_t lane = 1; lane < multinode->numLanes(); ++lane) { + std::vector candidates{operandsOf.at(multinode)}; // Look for a matching candidate for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize @@ -87,12 +109,12 @@ std::vector> SLPTree::reorderOperands(SLPNode& multinode) { return finalOrder; } -std::pair, Mode> SLPTree::getBest(Mode const& mode, - SLPNode const& last, - std::vector& candidates) const { - Optional best; +std::pair, Mode> SLPTree::getBest(Mode const& mode, + node_t const& last, + std::vector& candidates) const { + Optional best; Mode resultMode = mode; - std::vector bestCandidates; + std::vector bestCandidates; if (mode == FAILED) { // Don't select now, let others choose first @@ -110,9 +132,9 @@ std::pair, Mode> SLPTree::getBest(Mode const& mode, best = candidates.front(); for (auto& candidate : candidates) { // We don't have consecutive memory accesses, therefore we're only interested in opcode comparisons. - if (candidate.name() == last.name()) { - bestCandidates.emplace_back(candidate); - } + //if (candidate.name() == last.name()) { + bestCandidates.emplace_back(candidate); + //} } // 1. If we have a trivial solution, use it // No matches @@ -155,15 +177,16 @@ std::pair, Mode> SLPTree::getBest(Mode const& mode, } return {best, resultMode}; } -int SLPTree::getLookAheadScore(SLPNode const& last, SLPNode const& candidate, size_t const& maxLevel) const { + +int SLPTree::getLookAheadScore(node_t const& last, node_t const& candidate, size_t const& maxLevel) const { if (maxLevel == 0) { // No consecutive loads to check, only opcodes. - return last.name() == candidate.name() ? 1 : 0; + return /*last.name() == candidate.name() ? 1 :*/ 0; } auto scoreSum = 0; - for (size_t lane = 0; lane < last.numLanes(); ++lane) { - for (auto const& lastOperand : last.getOperands(lane)) { - for (auto const& candidateOperand : candidate.getOperands(lane)) { + for (size_t lane = 0; lane < last->numLanes(); ++lane) { + for (auto const& lastOperand : operandsOf.at(last)) { + for (auto const& candidateOperand : operandsOf.at(candidate)) { scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); } } From d68e83c812e712ee3558ce248cd0296bdd10a349 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 2 Feb 2021 05:08:16 +0100 Subject: [PATCH 034/385] Fixed operand construction. --- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 9ce23f58..04585d06 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -37,16 +37,19 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const sortByOpcode(operands, currentOpCode); } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - auto const& operand = allOperands.at(i); - if (std::all_of(std::begin(operand), std::end(operand), [&](auto* operation) { - return operation->getName() == currentOpCode && !escapesMultinode(operation); + if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { + return operandOperations.at(i)->getName() == currentOpCode && !escapesMultinode(operandOperations.at(i)); })) { for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - currentNode->addOperationToLane(operand.at(lane), lane); + currentNode->addOperationToLane(allOperands.at(lane).at(i), lane); } buildGraph(currentNode->getLastOperations(), currentNode); } else { - operandsOf[currentNode].emplace_back(std::make_shared(operand)); + std::vector operandOperations; + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + operandOperations.emplace_back(allOperands.at(lane).at(i)); + } + operandsOf[currentNode].emplace_back(std::make_shared(operandOperations)); } } From a28654cdcf5c747c9916a29121d109ed8e0d73cb Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 2 Feb 2021 05:53:43 +0100 Subject: [PATCH 035/385] Added rootNode() check, better typedef encapsulation. --- mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h | 8 +++----- mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h | 4 ++-- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 12 ++++++++++-- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 13 ++++++++----- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index eeed2cb1..1c99135f 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -25,11 +25,12 @@ namespace mlir { Operation* getOperation(size_t lane, size_t index); bool isMultiNode() const; + bool areRootOfNode(std::vector const& operations) const; size_t numLanes() const; friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.lanes, lhs.operands) - == std::tie(rhs.lanes, rhs.operands); + return std::tie(lhs.lanes) + == std::tie(rhs.lanes); } friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { @@ -42,9 +43,6 @@ namespace mlir { /// if this node is a multinode. std::vector> lanes; - /// A list of operands in the form of other SLPNodes. - std::vector operands; - }; } diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 68a59887..090399ad 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -18,10 +18,10 @@ namespace mlir { namespace spn { namespace slp { - typedef std::shared_ptr node_t; - class SLPTree { + typedef std::shared_ptr node_t; + public: SLPTree(seed_t const& seed, size_t const& maxLookAhead); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index efb790a8..47660bf3 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -11,8 +11,7 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()}, - operands{operations.size()} { +SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()} { for (size_t i = 0; i < operations.size(); ++i) { lanes.at(i).emplace_back(operations.at(i)); } @@ -38,6 +37,15 @@ bool SLPNode::isMultiNode() const { return lanes.front().size() > 1; } +bool SLPNode::areRootOfNode(std::vector const& operations) const { + for (size_t lane = 0; lane < numLanes(); ++lane) { + if (operations.at(lane) != lanes.at(lane).front()) { + return false; + } + } + return true; +} + size_t SLPNode::numLanes() const { return lanes.size(); } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 04585d06..3d94937e 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -49,12 +49,15 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandOperations.emplace_back(allOperands.at(lane).at(i)); } + for (auto const& tmp : operandOperations) { + tmp->dump(); + } operandsOf[currentNode].emplace_back(std::make_shared(operandOperations)); } } // B. Normal Mode: Finished building multi-node - if (currentNode->isMultiNode()) { + if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { reorderOperands(currentNode); for (auto& operandNode : operandsOf.at(currentNode)) { buildGraph(operandNode->getLastOperations(), currentNode); @@ -73,7 +76,7 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } -std::vector> SLPTree::reorderOperands(node_t const& multinode) { +std::vector> SLPTree::reorderOperands(node_t const& multinode) { assert(multinode->isMultiNode()); std::vector> finalOrder{multinode->numLanes()}; std::vector mode; @@ -112,9 +115,9 @@ std::vector> SLPTree::reorderOperands(node_t const& multinod return finalOrder; } -std::pair, Mode> SLPTree::getBest(Mode const& mode, - node_t const& last, - std::vector& candidates) const { +std::pair, Mode> SLPTree::getBest(Mode const& mode, + node_t const& last, + std::vector& candidates) const { Optional best; Mode resultMode = mode; std::vector bestCandidates; From c41ca5b24c1cf3928edec713104807c82ad0442f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 9 Feb 2021 20:45:24 +0100 Subject: [PATCH 036/385] Vectorization progress: operand reordering. --- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 34 +++++---- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 69 ++++++++++--------- 2 files changed, 57 insertions(+), 46 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 090399ad..fb0af69e 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -30,13 +30,13 @@ namespace mlir { void buildGraph(std::vector const& operations, node_t const& currentNode); - std::vector> reorderOperands(node_t const& multinode); + std::vector> reorderOperands(node_t const& multinode); - std::pair, Mode> getBest(Mode const& mode, - node_t const& last, - std::vector& candidates) const; + std::pair getBest(Mode const& mode, + Operation* last, + std::vector& candidates) const; - int getLookAheadScore(node_t const& last, node_t const& candidate, size_t const& maxLevel) const; + int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; /// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're /// vectorizable and they all share the same opcode. @@ -60,18 +60,24 @@ namespace mlir { static bool escapesMultinode(Operation* operation) { // TODO: check if some intermediate, temporary value of a multinode is used outside of it + assert(operation); return false; } + static std::vector getOperands(Operation* operation) { + std::vector operands; + operands.reserve(operation->getNumOperands()); + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); + } + return operands; + } + static std::vector> getOperands(std::vector const& operations) { std::vector> allOperands; + allOperands.reserve(operations.size()); for (auto* operation : operations) { - std::vector operands; - operands.reserve(operation->getNumOperands()); - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); - } - allOperands.emplace_back(operands); + allOperands.emplace_back(getOperands(operation)); } return allOperands; } @@ -93,9 +99,9 @@ namespace mlir { Optional const& smallestOpcode) { std::sort(std::begin(operations), std::end(operations), [&](Operation* lhs, Operation* rhs) { if (smallestOpcode.hasValue()) { - if (lhs->getName() == *smallestOpcode) { - return rhs->getName() != *smallestOpcode; - } else if (rhs->getName() == *smallestOpcode) { + if (lhs->getName() == smallestOpcode.getValue()) { + return rhs->getName() != smallestOpcode.getValue(); + } else if (rhs->getName() == smallestOpcode.getValue()) { return false; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 3d94937e..2cbf8025 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -45,6 +45,7 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } buildGraph(currentNode->getLastOperations(), currentNode); } else { + // TODO: here might be a good place to implement variable vector width std::vector operandOperations; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandOperations.emplace_back(allOperands.at(lane).at(i)); @@ -58,7 +59,8 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const // B. Normal Mode: Finished building multi-node if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { - reorderOperands(currentNode); + auto const& order = reorderOperands(currentNode); + // TODO: reorder based on reordering results for (auto& operandNode : operandsOf.at(currentNode)) { buildGraph(operandNode->getLastOperations(), currentNode); } @@ -76,38 +78,41 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } -std::vector> SLPTree::reorderOperands(node_t const& multinode) { +std::vector> SLPTree::reorderOperands(node_t const& multinode) { assert(multinode->isMultiNode()); - std::vector> finalOrder{multinode->numLanes()}; - std::vector mode; auto const& numOperands = operandsOf.at(multinode).size(); + std::vector> finalOrder{multinode->numLanes()}; + std::vector> mode{multinode->numLanes()}; // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { - auto operand = operandsOf.at(multinode).at(i); - finalOrder.at(0).emplace_back(operand); - mode.emplace_back(modeFromOperation(operand->getOperation(0, 0))); + auto operation = operandsOf.at(multinode).at(i)->getOperation(0, 0); + finalOrder.at(0).emplace_back(operation); + mode.at(0).emplace_back(modeFromOperation(operation)); } // 2. For all other lanes, find best candidate for (size_t lane = 1; lane < multinode->numLanes(); ++lane) { - std::vector candidates{operandsOf.at(multinode)}; + std::vector candidates; + for (auto const& operand : operandsOf.at(multinode)) { + candidates.emplace_back(operand->getOperation(lane, 0)); + } // Look for a matching candidate for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize - if (mode.at(i) == FAILED) { + if (mode.at(lane - 1).at(i) == FAILED) { continue; } - auto const& last = finalOrder.at(lane - 1).at(i); - auto const& bestResult = getBest(mode.at(i), last, candidates); + auto* last = finalOrder.at(lane - 1).at(i); + auto const& bestResult = getBest(mode.at(lane - 1).at(i), last, candidates); // Update output - finalOrder.at(lane).emplace_back(bestResult.first.getValue()); + finalOrder.at(lane).emplace_back(bestResult.first); // Detect SPLAT mode if (i == 1 && bestResult.first == last) { - mode.at(i) = SPLAT; + mode.at(lane).at(i) = SPLAT; } else { - mode.at(i) = bestResult.second; + mode.at(lane).at(i) = bestResult.second; } } @@ -115,16 +120,16 @@ std::vector> SLPTree::reorderOperands(node_t const& return finalOrder; } -std::pair, Mode> SLPTree::getBest(Mode const& mode, - node_t const& last, - std::vector& candidates) const { - Optional best; +std::pair SLPTree::getBest(Mode const& mode, + Operation* last, + std::vector& candidates) const { + Operation* best = nullptr; Mode resultMode = mode; - std::vector bestCandidates; + std::vector bestCandidates; if (mode == FAILED) { // Don't select now, let others choose first - best.reset(); + best = nullptr; } else if (mode == SPLAT) { // Look for other splat candidates for (auto& operand : candidates) { @@ -138,9 +143,9 @@ std::pair, Mode> SLPTree::getBest(Mode const& mode, best = candidates.front(); for (auto& candidate : candidates) { // We don't have consecutive memory accesses, therefore we're only interested in opcode comparisons. - //if (candidate.name() == last.name()) { - bestCandidates.emplace_back(candidate); - //} + if (candidate->getName() == last->getName()) { + bestCandidates.emplace_back(candidate); + } } // 1. If we have a trivial solution, use it // No matches @@ -169,7 +174,7 @@ std::pair, Mode> SLPTree::getBest(Mode const& mode, } } // If found best at level don't go deeper - if (best.hasValue() && scores.size() > 1) { + if (best != nullptr && scores.size() > 1) { break; } } @@ -178,23 +183,23 @@ std::pair, Mode> SLPTree::getBest(Mode const& mode, } // Remove best from candidates - if (best.hasValue()) { + if (best != nullptr) { candidates.erase(std::remove(std::begin(candidates), std::end(candidates), best), std::end(candidates)); } return {best, resultMode}; } -int SLPTree::getLookAheadScore(node_t const& last, node_t const& candidate, size_t const& maxLevel) const { +int SLPTree::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { if (maxLevel == 0) { // No consecutive loads to check, only opcodes. - return /*last.name() == candidate.name() ? 1 :*/ 0; + return last->getName() == candidate->getName() ? 1 : 0; } auto scoreSum = 0; - for (size_t lane = 0; lane < last->numLanes(); ++lane) { - for (auto const& lastOperand : operandsOf.at(last)) { - for (auto const& candidateOperand : operandsOf.at(candidate)) { - scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); - } + for (auto const& lastOperand : getOperands(last)) { + for (auto const& candidateOperand : getOperands(candidate)) { + // TODO: if operands are commutative, sort operands + scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); + } } return scoreSum; From 97653250415733f02b3b4a4468aeefd423c640e8 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 10 Feb 2021 03:27:41 +0100 Subject: [PATCH 037/385] Fixed segmentation fault, added TODOs. --- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 2cbf8025..9fa04012 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -100,6 +100,7 @@ std::vector> SLPTree::reorderOperands(node_t const& mult for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize if (mode.at(lane - 1).at(i) == FAILED) { + mode.at(lane).emplace_back(FAILED); continue; } auto* last = finalOrder.at(lane - 1).at(i); @@ -112,7 +113,7 @@ std::vector> SLPTree::reorderOperands(node_t const& mult if (i == 1 && bestResult.first == last) { mode.at(lane).at(i) = SPLAT; } else { - mode.at(lane).at(i) = bestResult.second; + mode.at(lane).emplace_back(bestResult.second); } } @@ -160,6 +161,7 @@ std::pair SLPTree::getBest(Mode const& mode, else { if (mode == OPCODE) { // Look-ahead on various levels + // TODO: when the level is increased, we recompute everything from the level before. change that maybe? for (size_t level = 1; level <= maxLookAhead; ++level) { // Best is the candidate with max score auto bestScore = 0; @@ -195,9 +197,9 @@ int SLPTree::getLookAheadScore(Operation* last, Operation* candidate, size_t con return last->getName() == candidate->getName() ? 1 : 0; } auto scoreSum = 0; + // TODO: if operands are commutative, sort operands to speed up lookahead? for (auto const& lastOperand : getOperands(last)) { for (auto const& candidateOperand : getOperands(candidate)) { - // TODO: if operands are commutative, sort operands scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); } From 429a94b7d0bbfe5d7658192de700eeaa5859b7fd Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 11 Feb 2021 03:39:05 +0100 Subject: [PATCH 038/385] Fix: final order not containing every operand. --- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 9fa04012..fcb77640 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -99,7 +99,9 @@ std::vector> SLPTree::reorderOperands(node_t const& mult // Look for a matching candidate for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize + // TODO: here might also be a good place to start looking for variable-width if (mode.at(lane - 1).at(i) == FAILED) { + finalOrder.at(lane).emplace_back(nullptr); mode.at(lane).emplace_back(FAILED); continue; } @@ -117,6 +119,15 @@ std::vector> SLPTree::reorderOperands(node_t const& mult } } + // Distribute remaining candidates in case we encountered a FAILED. + for (auto* candidate : candidates) { + for (size_t i = 0; i < numOperands; ++i) { + if (finalOrder.at(lane).at(i) == nullptr) { + finalOrder.at(lane).at(i) = candidate; + break; + } + } + } } return finalOrder; } From 433a75db53eeb386619c618112f044fea4ed34ce Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 11 Feb 2021 04:05:07 +0100 Subject: [PATCH 039/385] Fix: reordering now actually reorders operations. --- mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h | 3 ++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 6 +++++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 6 +++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 1c99135f..85553029 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -22,7 +22,8 @@ namespace mlir { void addOperationToLane(Operation* operation, size_t const& lane); std::vector getLastOperations() const; - Operation* getOperation(size_t lane, size_t index); + Operation* getOperation(size_t lane, size_t index) const; + void setOperation(size_t lane, size_t index, Operation* operation); bool isMultiNode() const; bool areRootOfNode(std::vector const& operations) const; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 47660bf3..deba5205 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -29,10 +29,14 @@ std::vector SLPNode::getLastOperations() const { return lastOperations; } -Operation* SLPNode::getOperation(size_t lane, size_t index) { +Operation* SLPNode::getOperation(size_t lane, size_t index) const { return lanes.at(lane).at(index); } +void SLPNode::setOperation(size_t lane, size_t index, Operation* operation) { + lanes.at(lane).at(index) = operation; +} + bool SLPNode::isMultiNode() const { return lanes.front().size() > 1; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index fcb77640..2bc4e1b4 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -60,7 +60,11 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const // B. Normal Mode: Finished building multi-node if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { auto const& order = reorderOperands(currentNode); - // TODO: reorder based on reordering results + for (size_t operandIndex = 0; operandIndex < operandsOf.at(currentNode).size(); ++operandIndex) { + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + operandsOf.at(currentNode).at(operandIndex)->setOperation(lane, 0, order.at(lane).at(operandIndex)); + } + } for (auto& operandNode : operandsOf.at(currentNode)) { buildGraph(operandNode->getLastOperations(), currentNode); } From 1d9ec5fc130b9ad9f24766480b2049de4940d917 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 11 Feb 2021 04:32:39 +0100 Subject: [PATCH 040/385] Better subgraph printing. --- mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h | 3 ++- mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h | 10 ++++++---- mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 2 -- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 4 +--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index 85553029..c7ebb343 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -41,7 +41,8 @@ namespace mlir { private: /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation - /// if this node is a multinode. + /// if this node is a multinode. Operations with smaller indices inside a lane are executed "after" the higher + /// ones in the source code. std::vector> lanes; }; diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index fb0af69e..7591941c 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -112,7 +112,7 @@ namespace mlir { /// For debugging purposes. static void printSubgraph(std::vector const& operations) { std::set nodes; - std::vector> edges; + std::vector> edges; std::stack worklist; for (auto& op : operations) { @@ -126,9 +126,10 @@ namespace mlir { if (nodes.find(op) == nodes.end()) { nodes.insert(op); - for (auto operand : op->getOperands()) { + for (size_t i = 0; i < op->getNumOperands(); ++i) { + auto const& operand = op->getOperand(i); if (operand.getDefiningOp() != nullptr) { - edges.emplace_back(std::make_pair(op, operand.getDefiningOp())); + edges.emplace_back(std::make_tuple(op, operand.getDefiningOp(), i)); worklist.push(operand.getDefiningOp()); } } @@ -142,7 +143,8 @@ namespace mlir { llvm::errs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op << "\"];\n"; } for (auto& edge : edges) { - llvm::errs() << "node_" << edge.first << " -> node_" << edge.second << ";\n"; + llvm::errs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" + << std::get<2>(edge) << "\"];\n"; } llvm::errs() << "}\n"; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index deba5205..0f6c4648 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -5,8 +5,6 @@ #include "SPN/Analysis/SLP/SLPNode.h" -#include - using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 2bc4e1b4..c3635369 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -5,8 +5,6 @@ #include "SPN/Analysis/SLP/SLPTree.h" -#include - using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; @@ -66,7 +64,7 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } } for (auto& operandNode : operandsOf.at(currentNode)) { - buildGraph(operandNode->getLastOperations(), currentNode); + buildGraph(operandNode->getLastOperations(), operandNode); } } } From 332e561c4a42e04c4ce62613d01e664c98fdb638 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 7 Mar 2021 16:53:23 +0100 Subject: [PATCH 041/385] Better feature index comparison for vectorizing leaf operations. --- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 22 ++++++++++++++++++- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 21 +++++++++++++----- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 7591941c..1a91a39e 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -38,6 +38,15 @@ namespace mlir { int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; + static bool areConsecutive(Operation* op1, Operation* op2) { + if (auto leaf1 = dyn_cast(op1)) { + if (auto leaf2 = dyn_cast(op2)) { + return leaf2.getFeatureIndex() == leaf1.getFeatureIndex() + 1; + } + } + return false; + } + /// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're /// vectorizable and they all share the same opcode. /// \param operations The potentially vectorizable operations. @@ -49,6 +58,13 @@ namespace mlir { return false; } } + if (dyn_cast(operations.front())) { + for (size_t i = 1; i < operations.size(); ++i) { + if (!areConsecutive(operations.at(i - 1), operations.at(i))) { + return false; + } + } + } return true; } @@ -140,7 +156,11 @@ namespace mlir { llvm::errs() << "rankdir = BT;\n"; llvm::errs() << "node[shape=box];\n"; for (auto& op : nodes) { - llvm::errs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op << "\"];\n"; + llvm::errs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; + if (auto leaf = dyn_cast(op)) { + llvm::errs() << "\\narg: " << leaf.getFeatureIndex() << "\\n"; + } + llvm::errs() << "\", fillcolor=\"#a0522d\"];\n"; } for (auto& edge : edges) { llvm::errs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index c3635369..87cabc07 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -206,15 +206,24 @@ std::pair SLPTree::getBest(Mode const& mode, int SLPTree::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { if (maxLevel == 0) { - // No consecutive loads to check, only opcodes. - return last->getName() == candidate->getName() ? 1 : 0; + if (last->getName() != candidate->getName()) { + return 0; + } + if (dyn_cast(last)) { + return areConsecutive(last, candidate) ? 1 : 0; + } + return 1; } auto scoreSum = 0; // TODO: if operands are commutative, sort operands to speed up lookahead? - for (auto const& lastOperand : getOperands(last)) { - for (auto const& candidateOperand : getOperands(candidate)) { - scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); - + for (auto& lastOperand : getOperands(last)) { + for (auto& candidateOperand : getOperands(candidate)) { + // Can be null if the operand is a block argument. + if (!lastOperand || !candidateOperand) { + scoreSum += getLookAheadScore(last, candidate, 0); + } else { + scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); + } } } return scoreSum; From 86a631e2daa4fa3c3a894a524c6d6f84d962cbda Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 7 Mar 2021 17:01:04 +0100 Subject: [PATCH 042/385] Fixed Segfault when regarding leaf node operands. --- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 87cabc07..8b3588a6 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -69,15 +69,14 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } } // 2. Non-Commutative - else { - std::vector> operands; + // Only consider operands further when the current operations aren't leaf nodes. + else if (!dyn_cast(operations.front())) { for (auto const& operandOperations : getOperandsTransposed(operations)) { auto const& operandNode = std::make_shared(operandOperations); operandsOf[currentNode].emplace_back(operandNode); buildGraph(operandOperations, operandNode); } } - } std::vector> SLPTree::reorderOperands(node_t const& multinode) { From 6c0e0f4cea696e05c398707fc898b6359115105e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 9 Mar 2021 03:29:19 +0100 Subject: [PATCH 043/385] Fixed vectorization pass looping endlessly. --- .../SPNtoStandard/SPNtoStandardPatterns.h | 4 +- mlir/include/Dialect/SPN/SPNOps.td | 22 ++++++++++ .../SPNtoStandard/SPNtoStandardPatterns.cpp | 2 +- .../SPN/Analysis/SLP/VectorPatterns.cpp | 21 ++++++++++ .../Dialect/SPN/Analysis/SLP/VectorPatterns.h | 40 +++++++++++++++++++ mlir/lib/Dialect/SPN/CMakeLists.txt | 1 + .../Dialect/SPN/Passes/SPNVectorization.cpp | 13 +++++- mlir/lib/Dialect/SPN/SPNOps.cpp | 21 ++++++++++ 8 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h diff --git a/mlir/include/Conversion/SPNtoStandard/SPNtoStandardPatterns.h b/mlir/include/Conversion/SPNtoStandard/SPNtoStandardPatterns.h index f0d7543a..39dacecf 100644 --- a/mlir/include/Conversion/SPNtoStandard/SPNtoStandardPatterns.h +++ b/mlir/include/Conversion/SPNtoStandard/SPNtoStandardPatterns.h @@ -40,7 +40,7 @@ namespace mlir { /// /// Pattern for lowering SPN Gaussian leaf to actual computation of /// Gaussian distribution in the Standard dialect. - struct GaussionOpLowering : public OpConversionPattern { + struct GaussianOpLowering : public OpConversionPattern { using OpConversionPattern::OpConversionPattern; @@ -96,7 +96,7 @@ namespace mlir { static void populateSPNtoStandardConversionPatterns(OwningRewritePatternList& patterns, MLIRContext* context, TypeConverter& typeConverter) { patterns.insert(context); - patterns.insert(context); + patterns.insert(context); patterns.insert(typeConverter, context); } diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index beb2c073..484dcff7 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -151,6 +151,28 @@ def GaussianOp : SPN_Op<"gaussian", } +/// +/// Vectorized Gaussian distribution as SPN leaf node. +/// +def GaussianVectorOp : SPN_Op<"vgaussian", + [NoSideEffect, DeclareOpInterfaceMethods]> { + + let summary = "Vectorized Gaussian leaf distribution"; + + let description = [{ + A vector of univariate Gaussian leaf distributions. + }]; + + let arguments = (ins AnyFloat:$index, F64ArrayAttr:$means, F64ArrayAttr:$stddevs); + + let results = (outs Variadic); + + let builders = [ + OpBuilderDAG<(ins "Value":$indexVal, "llvm::ArrayRef":$means, "llvm::ArrayRef":$stddevs)> + ]; + +} + /// /// Return operation, returning 0 or 1 probability values. /// diff --git a/mlir/lib/Conversion/SPNtoStandard/SPNtoStandardPatterns.cpp b/mlir/lib/Conversion/SPNtoStandard/SPNtoStandardPatterns.cpp index 76e7a034..63aa4a4f 100644 --- a/mlir/lib/Conversion/SPNtoStandard/SPNtoStandardPatterns.cpp +++ b/mlir/lib/Conversion/SPNtoStandard/SPNtoStandardPatterns.cpp @@ -26,7 +26,7 @@ mlir::LogicalResult mlir::spn::ReturnOpLowering::matchAndRewrite(mlir::spn::Retu return failure(); } -mlir::LogicalResult mlir::spn::GaussionOpLowering::matchAndRewrite(mlir::spn::GaussianOp op, +mlir::LogicalResult mlir::spn::GaussianOpLowering::matchAndRewrite(mlir::spn::GaussianOp op, llvm::ArrayRef operands, mlir::ConversionPatternRewriter& rewriter) const { assert(operands.size() == 1); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp new file mode 100644 index 00000000..0107770b --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp @@ -0,0 +1,21 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include +#include "mlir/IR/Module.h" +#include "VectorPatterns.h" +#include "mlir/IR/BlockAndValueMapping.h" + +mlir::LogicalResult mlir::spn::slp::GaussianOpVectorization::matchAndRewrite(mlir::spn::GaussianOp op, + mlir::PatternRewriter& rewriter) const { + if (!op.mean().isExactlyValue(-7.0)) { + rewriter.replaceOpWithNewOp(op, + op.getType(), + op.index(), + llvm::APFloat(-7.0), /*op.mean(),*/ + op.stddev()); + } + return success(); +} \ No newline at end of file diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h new file mode 100644 index 00000000..edd7ddc4 --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h @@ -0,0 +1,40 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H +#define SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H + +#include "mlir/Transforms/DialectConversion.h" +#include "mlir/IR/StandardTypes.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "SPN/SPNOps.h" +#include "SPN/SPNDialect.h" + +namespace mlir { + namespace spn { + namespace slp { + + /// Pattern for transforming SPN Gaussian ops to a vectorized version. + struct GaussianOpVectorization : public OpRewritePattern { + + using OpRewritePattern::OpRewritePattern; + + LogicalResult matchAndRewrite(GaussianOp op, PatternRewriter& rewriter) const override; + + }; + + /// Populate list with all patterns required to transform SPN operations into vectorized operations. + /// \param patterns Pattern list to fill. + /// \param context MLIR context. + /// \param typeConverter Type converter. + static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, + TypeConverter& typeConverter) { + patterns.insert(context); + } + } + } +} + +#endif //SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H diff --git a/mlir/lib/Dialect/SPN/CMakeLists.txt b/mlir/lib/Dialect/SPN/CMakeLists.txt index 464dd953..db4ecb31 100644 --- a/mlir/lib/Dialect/SPN/CMakeLists.txt +++ b/mlir/lib/Dialect/SPN/CMakeLists.txt @@ -9,6 +9,7 @@ add_mlir_dialect_library(MLIRSPN Analysis/SLP/SLPNode.cpp Analysis/SLP/SLPTree.cpp Analysis/SLP/SLPSeeding.cpp + Analysis/SLP/VectorPatterns.cpp Canonicalization/CanonicalizationPatterns.cpp Simplification/SimplificationPatterns.cpp TypeAnalysis/TypePinningPatterns.cpp diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index 53d702f2..c8636f8d 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -6,9 +6,10 @@ #include "SPN/SPNPasses.h" #include "SPNPassDetails.h" #include +#include +#include "../Analysis/SLP/VectorPatterns.h" #include "SPN/Analysis/SLP/SLPTree.h" -#include "SPN/Analysis/SLP/SLPSeeding.h" -#include "SPN/Analysis/SPNNodeLevel.h" +#include "mlir/Transforms/GreedyPatternRewriteDriver.h" using namespace mlir; using namespace mlir::spn; @@ -50,6 +51,14 @@ namespace { if (!seeds.empty()) { slp::SLPTree graph(seeds.front(), 3); } + + OwningRewritePatternList patterns; + TypeConverter converter; + slp::populateVectorizationPatterns(patterns, &getContext(), converter); + auto op = getOperation(); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + applyPatternsAndFoldGreedily(op, frozenPatterns); + } }; diff --git a/mlir/lib/Dialect/SPN/SPNOps.cpp b/mlir/lib/Dialect/SPN/SPNOps.cpp index 0fe32a87..78821656 100644 --- a/mlir/lib/Dialect/SPN/SPNOps.cpp +++ b/mlir/lib/Dialect/SPN/SPNOps.cpp @@ -251,6 +251,27 @@ unsigned int mlir::spn::GaussianOp::getFeatureIndex() { assert(false); } +//===----------------------------------------------------------------------===// +// GaussianVectorOp +//===----------------------------------------------------------------------===// + +void mlir::spn::GaussianVectorOp::build(::mlir::OpBuilder& odsBuilder, + ::mlir::OperationState& odsState, + Value indexVal, + llvm::ArrayRef means, + llvm::ArrayRef stddevs) { + build(odsBuilder, odsState, ProbabilityType::get(odsBuilder.getContext()), indexVal, + odsBuilder.getF64ArrayAttr(means), odsBuilder.getF64ArrayAttr(stddevs)); +} + +unsigned int mlir::spn::GaussianVectorOp::getFeatureIndex() { + if (auto blockArg = index().dyn_cast()) { + return blockArg.getArgNumber(); + } + // Expecting the index to be a block argument. + assert(false); +} + //===----------------------------------------------------------------------===// // ReturnOp //===----------------------------------------------------------------------===// From 98d26a9641d45929700cbfefb830ce672f77d2f7 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 10 Mar 2021 02:32:35 +0100 Subject: [PATCH 044/385] More memory-efficient pattern matching. --- .../Dialect/SPN/Analysis/SLP/SLPNode.h | 5 +- .../Dialect/SPN/Analysis/SLP/SLPTree.h | 2 + mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp | 30 ++++++---- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 47 +++++++++------ .../SPN/Analysis/SLP/VectorPatterns.cpp | 21 ------- .../Dialect/SPN/Analysis/SLP/VectorPatterns.h | 40 ------------- .../Analysis/SLP/VectorizationPatterns.cpp | 52 ++++++++++++++++ .../SPN/Analysis/SLP/VectorizationPatterns.h | 59 +++++++++++++++++++ mlir/lib/Dialect/SPN/CMakeLists.txt | 2 +- .../Dialect/SPN/Passes/SPNVectorization.cpp | 20 ++++--- mlir/test/CMakeLists.txt | 8 +-- 11 files changed, 179 insertions(+), 107 deletions(-) delete mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp delete mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp create mode 100644 mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h index c7ebb343..d18aea5f 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPNode.h @@ -21,13 +21,16 @@ namespace mlir { explicit SLPNode(std::vector const& operations); void addOperationToLane(Operation* operation, size_t const& lane); - std::vector getLastOperations() const; Operation* getOperation(size_t lane, size_t index) const; void setOperation(size_t lane, size_t index, Operation* operation); bool isMultiNode() const; bool areRootOfNode(std::vector const& operations) const; + size_t numLanes() const; + size_t numVectors() const; + + std::vector getVector(size_t index) const; friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { return std::tie(lhs.lanes) diff --git a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h index 1a91a39e..28816400 100644 --- a/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h +++ b/mlir/include/Dialect/SPN/Analysis/SLP/SLPTree.h @@ -26,6 +26,8 @@ namespace mlir { SLPTree(seed_t const& seed, size_t const& maxLookAhead); + std::vector> getNodes() const; + private: void buildGraph(std::vector const& operations, node_t const& currentNode); diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp index 0f6c4648..52494c7a 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPNode.cpp @@ -11,28 +11,20 @@ using namespace mlir::spn::slp; SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()} { for (size_t i = 0; i < operations.size(); ++i) { - lanes.at(i).emplace_back(operations.at(i)); + lanes[i].emplace_back(operations[i]); } } void SLPNode::addOperationToLane(Operation* operation, size_t const& lane) { - lanes.at(lane).emplace_back(operation); -} - -std::vector SLPNode::getLastOperations() const { - std::vector lastOperations; - for (size_t lane = 0; lane < numLanes(); ++lane) { - lastOperations.emplace_back(lanes.at(lane).back()); - } - return lastOperations; + lanes[lane].emplace_back(operation); } Operation* SLPNode::getOperation(size_t lane, size_t index) const { - return lanes.at(lane).at(index); + return lanes[lane][index]; } void SLPNode::setOperation(size_t lane, size_t index, Operation* operation) { - lanes.at(lane).at(index) = operation; + lanes[lane][index] = operation; } bool SLPNode::isMultiNode() const { @@ -41,7 +33,7 @@ bool SLPNode::isMultiNode() const { bool SLPNode::areRootOfNode(std::vector const& operations) const { for (size_t lane = 0; lane < numLanes(); ++lane) { - if (operations.at(lane) != lanes.at(lane).front()) { + if (operations[lane] != lanes[lane].front()) { return false; } } @@ -51,3 +43,15 @@ bool SLPNode::areRootOfNode(std::vector const& operations) const { size_t SLPNode::numLanes() const { return lanes.size(); } + +size_t SLPNode::numVectors() const { + return lanes.front().size(); +} + +std::vector SLPNode::getVector(size_t index) const { + std::vector vector; + for (size_t lane = 0; lane < numLanes(); ++lane) { + vector.emplace_back(lanes[lane][index]); + } + return vector; +} diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 8b3588a6..9a5cc3fd 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -12,9 +12,18 @@ using namespace mlir::spn::slp; SLPTree::SLPTree(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{}, maxLookAhead{maxLookAhead} { auto const& currentNode = std::make_shared(seed); operandsOf[currentNode] = {}; + printSubgraph(seed); buildGraph(seed, currentNode); } +std::vector> SLPTree::getNodes() const { + std::vector> nodes; + for (auto const& entry : operandsOf) { + nodes.emplace_back(entry.first); + } + return nodes; +} + void SLPTree::buildGraph(std::vector const& operations, node_t const& currentNode) { llvm::errs() << "Building graph with:\n"; for (auto* op : operations) { @@ -36,17 +45,17 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { - return operandOperations.at(i)->getName() == currentOpCode && !escapesMultinode(operandOperations.at(i)); + return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i]); })) { for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - currentNode->addOperationToLane(allOperands.at(lane).at(i), lane); + currentNode->addOperationToLane(allOperands[lane][i], lane); } - buildGraph(currentNode->getLastOperations(), currentNode); + buildGraph(currentNode->getVector(currentNode->numVectors() - 1), currentNode); } else { // TODO: here might be a good place to implement variable vector width std::vector operandOperations; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - operandOperations.emplace_back(allOperands.at(lane).at(i)); + operandOperations.emplace_back(allOperands[lane][i]); } for (auto const& tmp : operandOperations) { tmp->dump(); @@ -60,11 +69,11 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const auto const& order = reorderOperands(currentNode); for (size_t operandIndex = 0; operandIndex < operandsOf.at(currentNode).size(); ++operandIndex) { for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - operandsOf.at(currentNode).at(operandIndex)->setOperation(lane, 0, order.at(lane).at(operandIndex)); + operandsOf.at(currentNode).at(operandIndex)->setOperation(lane, 0, order[lane][operandIndex]); } } for (auto& operandNode : operandsOf.at(currentNode)) { - buildGraph(operandNode->getLastOperations(), operandNode); + buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); } } } @@ -86,9 +95,9 @@ std::vector> SLPTree::reorderOperands(node_t const& mult std::vector> mode{multinode->numLanes()}; // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { - auto operation = operandsOf.at(multinode).at(i)->getOperation(0, 0); - finalOrder.at(0).emplace_back(operation); - mode.at(0).emplace_back(modeFromOperation(operation)); + auto operation = operandsOf.at(multinode)[i]->getOperation(0, 0); + finalOrder[0].emplace_back(operation); + mode[0].emplace_back(modeFromOperation(operation)); } // 2. For all other lanes, find best candidate @@ -101,30 +110,30 @@ std::vector> SLPTree::reorderOperands(node_t const& mult for (size_t i = 0; i < numOperands; ++i) { // Skip if we can't vectorize // TODO: here might also be a good place to start looking for variable-width - if (mode.at(lane - 1).at(i) == FAILED) { - finalOrder.at(lane).emplace_back(nullptr); - mode.at(lane).emplace_back(FAILED); + if (mode[lane - 1][i] == FAILED) { + finalOrder[lane].emplace_back(nullptr); + mode[lane].emplace_back(FAILED); continue; } - auto* last = finalOrder.at(lane - 1).at(i); - auto const& bestResult = getBest(mode.at(lane - 1).at(i), last, candidates); + auto* last = finalOrder[lane - 1][i]; + auto const& bestResult = getBest(mode[lane - 1][i], last, candidates); // Update output - finalOrder.at(lane).emplace_back(bestResult.first); + finalOrder[lane].emplace_back(bestResult.first); // Detect SPLAT mode if (i == 1 && bestResult.first == last) { - mode.at(lane).at(i) = SPLAT; + mode[lane][i] = SPLAT; } else { - mode.at(lane).emplace_back(bestResult.second); + mode[lane].emplace_back(bestResult.second); } } // Distribute remaining candidates in case we encountered a FAILED. for (auto* candidate : candidates) { for (size_t i = 0; i < numOperands; ++i) { - if (finalOrder.at(lane).at(i) == nullptr) { - finalOrder.at(lane).at(i) = candidate; + if (finalOrder[lane][i] == nullptr) { + finalOrder[lane][i] = candidate; break; } } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp deleted file mode 100644 index 0107770b..00000000 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#include -#include "mlir/IR/Module.h" -#include "VectorPatterns.h" -#include "mlir/IR/BlockAndValueMapping.h" - -mlir::LogicalResult mlir::spn::slp::GaussianOpVectorization::matchAndRewrite(mlir::spn::GaussianOp op, - mlir::PatternRewriter& rewriter) const { - if (!op.mean().isExactlyValue(-7.0)) { - rewriter.replaceOpWithNewOp(op, - op.getType(), - op.index(), - llvm::APFloat(-7.0), /*op.mean(),*/ - op.stddev()); - } - return success(); -} \ No newline at end of file diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h deleted file mode 100644 index edd7ddc4..00000000 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorPatterns.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#ifndef SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H -#define SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H - -#include "mlir/Transforms/DialectConversion.h" -#include "mlir/IR/StandardTypes.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "SPN/SPNOps.h" -#include "SPN/SPNDialect.h" - -namespace mlir { - namespace spn { - namespace slp { - - /// Pattern for transforming SPN Gaussian ops to a vectorized version. - struct GaussianOpVectorization : public OpRewritePattern { - - using OpRewritePattern::OpRewritePattern; - - LogicalResult matchAndRewrite(GaussianOp op, PatternRewriter& rewriter) const override; - - }; - - /// Populate list with all patterns required to transform SPN operations into vectorized operations. - /// \param patterns Pattern list to fill. - /// \param context MLIR context. - /// \param typeConverter Type converter. - static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter) { - patterns.insert(context); - } - } - } -} - -#endif //SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp new file mode 100644 index 00000000..baa67982 --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp @@ -0,0 +1,52 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include +#include "mlir/IR/Module.h" +#include "VectorizationPatterns.h" +#include "mlir/IR/BlockAndValueMapping.h" +#include "mlir/Dialect/Vector/VectorOps.h" + +mlir::LogicalResult mlir::spn::slp::GaussianOpVectorization::matchAndRewrite(mlir::spn::GaussianOp op, + mlir::PatternRewriter& rewriter) const { + + if (!assignedToVector(op.getOperation())) { + return failure(); + } + + // llvm::ArrayRef means, llvm::ArrayRef stddevs + auto const& vector = vectors[3]; + auto const& n = vector.size(); + Value indices[n]; + double means[n]; + double stddevs[n]; + + for (size_t i = 0; i < n; ++i) { + indices[i] = dyn_cast(vector[i]).index(); + means[i] = dyn_cast(vector[i]).mean().convertToDouble(); + stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); + } + + rewriter.create(op.getLoc(), + op.index(), + llvm::ArrayRef(means, n), + llvm::ArrayRef(stddevs, n)); + + for (auto const& gaussianOp : vector) { + rewriter.eraseOp(gaussianOp); + } + + if (false) { + if (!op.mean().isExactlyValue(-7.0)) { + rewriter.replaceOpWithNewOp(op, + op.getType(), + op.index(), llvm::APFloat(-7.0)/*op.mean()*/, + op.stddev()); + + } + } + + return success(); +} \ No newline at end of file diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h new file mode 100644 index 00000000..bff0c417 --- /dev/null +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h @@ -0,0 +1,59 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H +#define SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H + +#include + +#include "mlir/Transforms/DialectConversion.h" +#include "mlir/IR/StandardTypes.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "SPN/SPNOps.h" +#include "SPN/SPNDialect.h" + +namespace mlir { + namespace spn { + namespace slp { + + template + class VectorizationPattern : public mlir::OpRewritePattern { + public: + VectorizationPattern(MLIRContext* context, std::vector> const& vectors) + : OpRewritePattern(context, 1), vectors{vectors} { + for (size_t i = 0; i < vectors.size(); ++i) { + for (auto* op : vectors[i]) { + vectorIndices[op].emplace_back(i); + } + } + } + protected: + + bool assignedToVector(Operation* op) const { + return vectorIndices.count(op); + } + + std::map> vectorIndices; + std::vector> const& vectors; + }; + + /// Pattern for transforming SPN Gaussian ops to a vectorized version. + struct GaussianOpVectorization : public VectorizationPattern { + + using VectorizationPattern::VectorizationPattern; + + LogicalResult matchAndRewrite(GaussianOp op, PatternRewriter& rewriter) const override; + + }; + + static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, + std::vector> const& vectors) { + patterns.insert(context, vectors); + } + } + } +} + +#endif //SPNC_MLIR_DIALECTS_LIB_DIALECT_SPN_ANALYSIS_SLP_VECTOR_PATTERNS_H diff --git a/mlir/lib/Dialect/SPN/CMakeLists.txt b/mlir/lib/Dialect/SPN/CMakeLists.txt index db4ecb31..fcd05075 100644 --- a/mlir/lib/Dialect/SPN/CMakeLists.txt +++ b/mlir/lib/Dialect/SPN/CMakeLists.txt @@ -9,7 +9,7 @@ add_mlir_dialect_library(MLIRSPN Analysis/SLP/SLPNode.cpp Analysis/SLP/SLPTree.cpp Analysis/SLP/SLPSeeding.cpp - Analysis/SLP/VectorPatterns.cpp + Analysis/SLP/VectorizationPatterns.cpp Canonicalization/CanonicalizationPatterns.cpp Simplification/SimplificationPatterns.cpp TypeAnalysis/TypePinningPatterns.cpp diff --git a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp index c8636f8d..1f551792 100644 --- a/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp +++ b/mlir/lib/Dialect/SPN/Passes/SPNVectorization.cpp @@ -7,7 +7,7 @@ #include "SPNPassDetails.h" #include #include -#include "../Analysis/SLP/VectorPatterns.h" +#include "../Analysis/SLP/VectorizationPatterns.h" #include "SPN/Analysis/SLP/SLPTree.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" @@ -50,15 +50,19 @@ namespace { if (!seeds.empty()) { slp::SLPTree graph(seeds.front(), 3); + OwningRewritePatternList patterns; + std::vector> vectors; + for (auto const& node_ptr : graph.getNodes()) { + for (size_t i = 0; i < node_ptr->numVectors(); ++i) { + vectors.emplace_back(node_ptr->getVector(i)); + } + } + slp::populateVectorizationPatterns(patterns, &getContext(), vectors); + auto op = getOperation(); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + applyPatternsAndFoldGreedily(op, frozenPatterns); } - OwningRewritePatternList patterns; - TypeConverter converter; - slp::populateVectorizationPatterns(patterns, &getContext(), converter); - auto op = getOperation(); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - applyPatternsAndFoldGreedily(op, frozenPatterns); - } }; diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt index a52434e3..4e6a3f16 100644 --- a/mlir/test/CMakeLists.txt +++ b/mlir/test/CMakeLists.txt @@ -13,10 +13,10 @@ configure_lit_site_cfg( set(CHECK_SPNC_LIT_ARGS "") # Add verbose flag if requested -if(${CHECK_SPNC_VERBOSE}) - message(STATUS "Running llvm-lit in verbose mode") - set(CHECK_SPNC_LIT_ARGS "${CHECK_SPNC_LIT_ARGS};-v") -endif() +if (${CHECK_SPNC_VERBOSE}) + message(STATUS "Running llvm-lit in verbose mode") + set(CHECK_SPNC_LIT_ARGS "${CHECK_SPNC_LIT_ARGS};-v") +endif () # Run regression tests add_lit_testsuite(check-spnc-mlir-tests "Running spnc-mlir regression tests" From 901e223ca2175a11da13b432ce95a707f7c10dee Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 16 Mar 2021 23:33:45 +0100 Subject: [PATCH 045/385] Merge preparations. --- mlir/include/Dialect/SPN/SPNDialect.td | 1 + mlir/include/Dialect/SPN/SPNOps.td | 10 +- mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp | 5 + .../Analysis/SLP/VectorizationPatterns.cpp | 127 +++++++++++++++--- .../SPN/Analysis/SLP/VectorizationPatterns.h | 18 ++- mlir/lib/Dialect/SPN/SPNOps.cpp | 10 +- 6 files changed, 142 insertions(+), 29 deletions(-) diff --git a/mlir/include/Dialect/SPN/SPNDialect.td b/mlir/include/Dialect/SPN/SPNDialect.td index eaebe8cd..706818b1 100644 --- a/mlir/include/Dialect/SPN/SPNDialect.td +++ b/mlir/include/Dialect/SPN/SPNDialect.td @@ -37,4 +37,5 @@ def SPNProbabilityType : DialectType; + #endif // SPN_DIALECT \ No newline at end of file diff --git a/mlir/include/Dialect/SPN/SPNOps.td b/mlir/include/Dialect/SPN/SPNOps.td index 484dcff7..2c185d26 100644 --- a/mlir/include/Dialect/SPN/SPNOps.td +++ b/mlir/include/Dialect/SPN/SPNOps.td @@ -163,13 +163,13 @@ def GaussianVectorOp : SPN_Op<"vgaussian", A vector of univariate Gaussian leaf distributions. }]; - let arguments = (ins AnyFloat:$index, F64ArrayAttr:$means, F64ArrayAttr:$stddevs); + let arguments = (ins VectorOf<[AnyFloat]>:$indices, F64ArrayAttr:$means, F64ArrayAttr:$stddevs); - let results = (outs Variadic); + let results = (outs VectorOf<[AnyProbabilityType]>); - let builders = [ - OpBuilderDAG<(ins "Value":$indexVal, "llvm::ArrayRef":$means, "llvm::ArrayRef":$stddevs)> - ]; +/// let builders = [ +/// OpBuilderDAG<(ins "llvm::ArrayRef":$indices, "llvm::ArrayRef":$means, "llvm::ArrayRef":$stddevs)> +/// ]; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp index 9a5cc3fd..7d77e499 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/SLPTree.cpp @@ -20,6 +20,11 @@ std::vector> SLPTree::getNodes() const { std::vector> nodes; for (auto const& entry : operandsOf) { nodes.emplace_back(entry.first); + for (auto const& operand : entry.second) { + if (std::find(std::begin(nodes), std::end(nodes), operand) == std::end(nodes)) { + nodes.emplace_back(operand); + } + } } return nodes; } diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp index baa67982..d3542739 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.cpp @@ -8,34 +8,53 @@ #include "VectorizationPatterns.h" #include "mlir/IR/BlockAndValueMapping.h" #include "mlir/Dialect/Vector/VectorOps.h" +#include "mlir/Dialect/Vector/VectorTransforms.h" mlir::LogicalResult mlir::spn::slp::GaussianOpVectorization::matchAndRewrite(mlir::spn::GaussianOp op, mlir::PatternRewriter& rewriter) const { - if (!assignedToVector(op.getOperation())) { + return failure(); + + if (!isAssignedToVector(op.getOperation())) { return failure(); } - // llvm::ArrayRef means, llvm::ArrayRef stddevs - auto const& vector = vectors[3]; - auto const& n = vector.size(); - Value indices[n]; - double means[n]; - double stddevs[n]; + auto a = op.getOperation(); - for (size_t i = 0; i < n; ++i) { - indices[i] = dyn_cast(vector[i]).index(); - means[i] = dyn_cast(vector[i]).mean().convertToDouble(); - stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); - } + for (auto const& index : vectorIndices.at(op.getOperation())) { + auto const& vector = vectors[index]; + + if (!isVectorMixed(vector)) { + auto const& n = vector.size(); + Value values[n]; + Value indices[n]; + double means[n]; + double stddevs[n]; - rewriter.create(op.getLoc(), - op.index(), - llvm::ArrayRef(means, n), - llvm::ArrayRef(stddevs, n)); + for (size_t i = 0; i < n; ++i) { + indices[i] = dyn_cast(vector[i]).index(); + means[i] = dyn_cast(vector[i]).mean().convertToDouble(); + stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); + indices[i].dump(); + values[i] = dyn_cast(vector[i]).getOperand(); + } +/* + auto t = rewriter.create(op.getLoc(), + op.index(), + llvm::ArrayRef(means, n), + llvm::ArrayRef(stddevs, n)); + ValueRange valueRange{}; + rewriter.replaceOp(t.getOperation(), {}); + t.getOperation()->dump(); + auto x = dyn_cast(t.getOperation()).getFeatureIndex(); - for (auto const& gaussianOp : vector) { - rewriter.eraseOp(gaussianOp); + x = x - 1;*/ + } else { + + } + for (auto const& gaussianOp : vector) { + rewriter.eraseOp(gaussianOp); + } } if (false) { @@ -49,4 +68,76 @@ mlir::LogicalResult mlir::spn::slp::GaussianOpVectorization::matchAndRewrite(mli } return success(); +} + +mlir::LogicalResult mlir::spn::slp::SumOpVectorization::matchAndRewrite(mlir::spn::SumOp op, + mlir::PatternRewriter& rewriter) const { + + if (!isAssignedToVector(op.getOperation())) { + return failure(); + } + + auto a = op.getOperation(); + + for (auto const& index : vectorIndices.at(op.getOperation())) { + auto const& vector = vectors[index]; + Type vectorType = VectorType::get(vector.size(), op.getType()); + Type memrefType = MemRefType::get(vector.size(), op.getType()); + ValueRange range; + rewriter.create(op.getLoc(), memrefType, range); + op.getOperation()->getBlock()->dump(); + } + /* + if (isVectorMixed(vector)) { + OpBuilder builder(op.getContext()); + builder.setInsertionPoint(op); + llvm::SmallVector values; + values.reserve(vector.size()); + for (size_t i = 0; i < vector.size(); ++i) { + values[i] = vector[i]->getResult(0); + } + //DenseElementsAttr::get(vectorType, llvm::ArrayRef{values}); + } + + for (size_t i = 0; i < n; ++i) { + indices[i] = dyn_cast(vector[i]).index(); + means[i] = dyn_cast(vector[i]).mean().convertToDouble(); + stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); + indices[i].dump(); + values[i] = dyn_cast(vector[i]).getOperand(); + } + + auto t = rewriter.create(op.getLoc(), + op.index(), + llvm::ArrayRef(means, n), + llvm::ArrayRef(stddevs, n)); + ValueRange valueRange{}; + rewriter.replaceOp(t.getOperation(), {}); + t.getOperation()->dump(); + for (size_t i = 0; i < vector.size(); ++i) { + values[i] = vector[i]->getResult(0); + } + //DenseElementsAttr::get(vectorType, llvm::ArrayRef{values}); + } + + for (size_t i = 0; i < n; ++i) { + indices[i] = dyn_cast(vector[i]).index(); + means[i] = dyn_cast(vector[i]).mean().convertToDouble(); + stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); + indices[i].dump(); + values[i] = dyn_cast(vector[i]).getOperand(); + } + + x = x - 1; +} else { + +} +for (auto const& gaussianOp : vector) { + rewriter.eraseOp(gaussianOp); +} +} + +} + */ + return success(); } \ No newline at end of file diff --git a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h index bff0c417..76b59286 100644 --- a/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h +++ b/mlir/lib/Dialect/SPN/Analysis/SLP/VectorizationPatterns.h @@ -31,10 +31,16 @@ namespace mlir { } protected: - bool assignedToVector(Operation* op) const { + bool isAssignedToVector(Operation* op) const { return vectorIndices.count(op); } + bool isVectorMixed(std::vector vector) const { + return std::any_of(std::begin(vector), std::end(vector), [&](Operation* op) { + return op->getName() != vector.front()->getName(); + }); + } + std::map> vectorIndices; std::vector> const& vectors; }; @@ -48,9 +54,19 @@ namespace mlir { }; + /// Pattern for transforming SPN sum ops to a vectorized version. + struct SumOpVectorization : public VectorizationPattern { + + using VectorizationPattern::VectorizationPattern; + + LogicalResult matchAndRewrite(SumOp op, PatternRewriter& rewriter) const override; + + }; + static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, std::vector> const& vectors) { patterns.insert(context, vectors); + patterns.insert(context, vectors); } } } diff --git a/mlir/lib/Dialect/SPN/SPNOps.cpp b/mlir/lib/Dialect/SPN/SPNOps.cpp index 78821656..ff874f8d 100644 --- a/mlir/lib/Dialect/SPN/SPNOps.cpp +++ b/mlir/lib/Dialect/SPN/SPNOps.cpp @@ -254,18 +254,18 @@ unsigned int mlir::spn::GaussianOp::getFeatureIndex() { //===----------------------------------------------------------------------===// // GaussianVectorOp //===----------------------------------------------------------------------===// - +/* void mlir::spn::GaussianVectorOp::build(::mlir::OpBuilder& odsBuilder, ::mlir::OperationState& odsState, - Value indexVal, + llvm::ArrayRef indices, llvm::ArrayRef means, llvm::ArrayRef stddevs) { - build(odsBuilder, odsState, ProbabilityType::get(odsBuilder.getContext()), indexVal, + build(odsBuilder, odsState, ProbabilityType::get(odsBuilder.getContext()), VectorType::get(indices, indices.front().getType()), odsBuilder.getF64ArrayAttr(means), odsBuilder.getF64ArrayAttr(stddevs)); } - +*/ unsigned int mlir::spn::GaussianVectorOp::getFeatureIndex() { - if (auto blockArg = index().dyn_cast()) { + if (auto blockArg = indices().dyn_cast()) { return blockArg.getArgNumber(); } // Expecting the index to be a block argument. From 828c27e377f3861f984e4fe03b9e6801df423362 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 17 Mar 2021 17:37:04 +0100 Subject: [PATCH 046/385] Fixed some dependencies. --- .../HiSPNtoLoSPNConversionPasses.h | 12 ++-- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 5 +- .../LoSPNtoCPU/Vectorization/SLP/SLPTree.h | 28 ++++---- .../SLP/SLPVectorizationPatterns.h | 66 ++++++++++--------- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 10 +-- .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 8 +-- .../Vectorization/SLP/SLPSeeding.cpp | 12 ++-- .../LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp | 11 +++- .../SLP/SLPVectorizationPatterns.cpp | 4 +- 9 files changed, 80 insertions(+), 76 deletions(-) diff --git a/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h b/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h index 8025fbd1..9b51faf1 100644 --- a/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h +++ b/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h @@ -11,38 +11,34 @@ namespace mlir { namespace spn { - struct HiSPNtoLoSPNNodeConversionPass : - public PassWrapper> { + struct HiSPNtoLoSPNNodeConversionPass : public PassWrapper> { public: explicit HiSPNtoLoSPNNodeConversionPass(bool useLogSpaceComputation) : computeLogSpace{useLogSpaceComputation} {} protected: - void runOnOperation() override; private: - bool computeLogSpace; }; std::unique_ptr createHiSPNtoLoSPNNodeConversionPass(bool useLogSpaceComputation); - struct HiSPNtoLoSPNQueryConversionPass : - public PassWrapper> { + struct HiSPNtoLoSPNQueryConversionPass : public PassWrapper> { public: explicit HiSPNtoLoSPNQueryConversionPass(bool useLogSpaceComputation) : computeLogSpace{useLogSpaceComputation} {} protected: - void runOnOperation() override; private: - bool computeLogSpace; }; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index b802f607..a72a3105 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -6,8 +6,7 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H -#include "SPN/Analysis/SPNNodeLevel.h" -#include "SPN/SPNOps.h" +#include "LoSPN/LoSPNOps.h" namespace mlir { namespace spn { @@ -31,7 +30,7 @@ namespace mlir { explicit SeedAnalysis(Operation* jointQuery); std::vector getSeeds(size_t const& op, - SPNNodeLevel const& nodeLevels, + std::map const& nodeLevels, SearchMode const& mode = RootToLeaf) const; private: diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h index 5314f37b..38c7899c 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h @@ -7,7 +7,7 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPTREE_H #include "mlir/IR/Operation.h" -#include "SPN/SPNOpTraits.h" +#include "LoSPN/LoSPNTraits.h" #include "SLPMode.h" #include "SLPNode.h" #include "SLPSeeding.h" @@ -41,11 +41,7 @@ namespace mlir { int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; static bool areConsecutive(Operation* op1, Operation* op2) { - if (auto leaf1 = dyn_cast(op1)) { - if (auto leaf2 = dyn_cast(op2)) { - return leaf2.getFeatureIndex() == leaf1.getFeatureIndex() + 1; - } - } + assert(false); return false; } @@ -55,11 +51,12 @@ namespace mlir { /// \return True if the operations can be vectorized, otherwise false. static bool vectorizable(std::vector const& operations) { for (size_t i = 0; i < operations.size(); ++i) { - if (!operations.at(i)->hasTrait() + if (!operations.at(i)->hasTrait() || (i > 0 && operations.at(i)->getName() != operations.front()->getName())) { return false; } } + /* if (dyn_cast(operations.front())) { for (size_t i = 1; i < operations.size(); ++i) { if (!areConsecutive(operations.at(i - 1), operations.at(i))) { @@ -67,6 +64,8 @@ namespace mlir { } } } + */ + assert(false); return true; } @@ -129,7 +128,7 @@ namespace mlir { /// For debugging purposes. static void printSubgraph(std::vector const& operations) { - std::set nodes; + std::vector nodes; std::vector> edges; std::stack worklist; @@ -142,8 +141,8 @@ namespace mlir { auto op = worklist.top(); worklist.pop(); - if (nodes.find(op) == nodes.end()) { - nodes.insert(op); + if (std::find(std::begin(nodes), std::end(nodes), op) == nodes.end()) { + nodes.emplace_back(op); for (size_t i = 0; i < op->getNumOperands(); ++i) { auto const& operand = op->getOperand(i); if (operand.getDefiningOp() != nullptr) { @@ -159,9 +158,12 @@ namespace mlir { llvm::errs() << "node[shape=box];\n"; for (auto& op : nodes) { llvm::errs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; - if (auto leaf = dyn_cast(op)) { - llvm::errs() << "\\narg: " << leaf.getFeatureIndex() << "\\n"; - } + assert(false); + /* + if (auto leaf = dyn_cast(op)) { + llvm::errs() << "\\narg: " << leaf.getFeatureIndex() << "\\n"; + } + */ llvm::errs() << "\", fillcolor=\"#a0522d\"];\n"; } for (auto& edge : edges) { diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 5663dd34..dc439242 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -10,52 +10,54 @@ #include "mlir/Transforms/DialectConversion.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "SPN/SPNOps.h" -#include "SPN/SPNDialect.h" +#include "LoSPN/LoSPNOps.h" +#include "LoSPN/LoSPNDialect.h" namespace mlir { namespace spn { - namespace slp { + namespace low { + namespace slp { - template - class VectorizationPattern : public mlir::OpRewritePattern { - public: - VectorizationPattern(MLIRContext* context, std::vector> const& vectors) - : OpRewritePattern(context, 1), vectors{vectors} { - for (size_t i = 0; i < vectors.size(); ++i) { - for (auto* op : vectors[i]) { - vectorIndices[op].emplace_back(i); + template + class VectorizationPattern : public mlir::OpRewritePattern { + public: + VectorizationPattern(MLIRContext* context, std::vector> const& vectors) + : OpRewritePattern(context, 1), vectors{vectors} { + for (size_t i = 0; i < vectors.size(); ++i) { + for (auto* op : vectors[i]) { + vectorIndices[op].emplace_back(i); + } } } - } - protected: + protected: - bool isAssignedToVector(Operation* op) const { - return vectorIndices.count(op); - } + bool isAssignedToVector(Operation* op) const { + return vectorIndices.count(op); + } - bool isVectorMixed(std::vector vector) const { - return std::any_of(std::begin(vector), std::end(vector), [&](Operation* op) { - return op->getName() != vector.front()->getName(); - }); - } + bool isVectorMixed(std::vector vector) const { + return std::any_of(std::begin(vector), std::end(vector), [&](Operation* op) { + return op->getName() != vector.front()->getName(); + }); + } - std::map> vectorIndices; - std::vector> const& vectors; - }; + std::map> vectorIndices; + std::vector> const& vectors; + }; - /// Pattern for transforming SPN sum ops to a vectorized version. - struct SumOpVectorization : public VectorizationPattern { + /// Pattern for transforming SPN sum ops to a vectorized version. + struct SumOpVectorization : public VectorizationPattern { - using VectorizationPattern::VectorizationPattern; + using VectorizationPattern::VectorizationPattern; - LogicalResult matchAndRewrite(SumOp op, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const override; - }; + }; - static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - std::vector> const& vectors) { - patterns.insert(context, vectors); + static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, + std::vector> const& vectors) { + patterns.insert(context, vectors); + } } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index c39f41ab..9f792047 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -5,11 +5,11 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/VectorizeNodePatterns.cpp Vectorization/TargetInformation.cpp Vectorization/ReplaceGatherWithShuffle.cpp - #Vectorization/SLP/SLPMode.cpp - #Vectorization/SLP/SLPNode.cpp - #Vectorization/SLP/SLPSeeding.cpp - #Vectorization/SLP/SLPTree.cpp - #Vectorization/SLP/SLPVectorizationPatterns.cpp + Vectorization/SLP/SLPMode.cpp + Vectorization/SLP/SLPNode.cpp + Vectorization/SLP/SLPSeeding.cpp + Vectorization/SLP/SLPTree.cpp + Vectorization/SLP/SLPVectorizationPatterns.cpp LoSPNtoCPUConversionPasses.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index df73b523..1d0c941d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -15,7 +15,6 @@ #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Math/IR/Math.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" -#include "SPN/Analysis/SPNNodeLevel.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { @@ -35,6 +34,7 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { OwningRewritePatternList patterns; if (vectorize) { + // auto& depthAnalysis = getAnalysis(); // Try to vectorize tasks if vectorization was requested. mlir::spn::populateLoSPNCPUVectorizationStructurePatterns(patterns, &getContext(), typeConverter); } @@ -56,13 +56,13 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { auto const& uses = std::distance(op->getUses().begin(), op->getUses().end()); if (uses > 1) { // TODO: how to handle such cases? and is special handling required at all? - assert(false && "SPN is not a tree!"); + //assert(false && "SPN is not a tree!"); } }); // ==================================== // - //auto& depthAnalysis = getAnalysis(); - //auto& seedAnalysis = getAnalysis(); + // auto& depthAnalysis = getAnalysis(); + auto& seedAnalysis = getAnalysis(); /*auto seeds = seedAnalysis.getSeeds(4, depthAnalysis); if (!seeds.empty()) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index c046c3da..79d7c0ed 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -13,19 +13,19 @@ using namespace mlir::spn::slp; SeedAnalysis::SeedAnalysis(Operation* jointQuery) : jointQuery{jointQuery} {} std::vector SeedAnalysis::getSeeds(size_t const& width, - SPNNodeLevel const& nodeLevels, + std::map const& nodeLevels, SearchMode const& mode) const { llvm::StringMap> seedsByOpName; jointQuery->walk([&](Operation* op) { - auto depth = nodeLevels.getOperationDepth(op); - if (!op->hasTrait() || depth < log2(width)) { + auto depth = nodeLevels.at(op); + if (!op->hasTrait() || depth < log2(width)) { return; } bool needsNewSeed = true; for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { - if (seed.size() < width && nodeLevels.getOperationDepth(seed.front()) == depth) { + if (seed.size() < width && nodeLevels.at(seed.front()) == depth) { seed.emplace_back(op); needsNewSeed = false; break; @@ -51,9 +51,9 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, // or those closest to the leaves (LeafToRoot). std::sort(seeds.begin(), seeds.end(), [&](seed_t const& seed1, seed_t const& seed2) { if (mode == RootToLeaf) { - return nodeLevels.getOperationDepth(seed1.front()) < nodeLevels.getOperationDepth(seed2.front()); + return nodeLevels.at(seed1.front()) < nodeLevels.at(seed2.front()); } else if (mode == LeafToRoot) { - return nodeLevels.getOperationDepth(seed1.front()) > nodeLevels.getOperationDepth(seed2.front()); + return nodeLevels.at(seed1.front()) > nodeLevels.at(seed2.front()); } else { // Unused so far. assert(false); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp index a265debc..bf54345f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp @@ -4,6 +4,7 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPTree.h" +#include using namespace mlir; using namespace mlir::spn; @@ -84,6 +85,8 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } // 2. Non-Commutative // Only consider operands further when the current operations aren't leaf nodes. + assert(false); + /* else if (!dyn_cast(operations.front())) { for (auto const& operandOperations : getOperandsTransposed(operations)) { auto const& operandNode = std::make_shared(operandOperations); @@ -91,6 +94,7 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const buildGraph(operandOperations, operandNode); } } + */ } std::vector> SLPTree::reorderOperands(node_t const& multinode) { @@ -222,9 +226,10 @@ int SLPTree::getLookAheadScore(Operation* last, Operation* candidate, size_t con if (last->getName() != candidate->getName()) { return 0; } - if (dyn_cast(last)) { - return areConsecutive(last, candidate) ? 1 : 0; - } + assert(false); + /* if (dyn_cast(last)) { + return areConsecutive(last, candidate) ? 1 : 0; + }*/ return 1; } auto scoreSum = 0; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 2cfc38f8..278e5a3d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -8,8 +8,8 @@ #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Vector/VectorTransforms.h" -mlir::LogicalResult mlir::spn::slp::SumOpVectorization::matchAndRewrite(mlir::spn::SumOp op, - mlir::PatternRewriter& rewriter) const { +mlir::LogicalResult mlir::spn::low::slp::SumOpVectorization::matchAndRewrite(mlir::spn::low::SPNAdd op, + mlir::PatternRewriter& rewriter) const { if (!isAssignedToVector(op.getOperation())) { return failure(); From 9bb66e84888938eeb469ee5f81c800df907b6a4d Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 18 Mar 2021 17:46:40 +0100 Subject: [PATCH 047/385] Adapted seed analysis to LoSPN Dialect. --- .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.h | 40 +++++------ .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 3 +- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 8 ++- .../Vectorization/SLP/SLPVectorizationPass.h | 31 +++++++++ .../Vectorization/TargetInformation.h | 0 .../Vectorization/VectorOptimizationPasses.h | 11 ++-- .../Vectorization/VectorizationPatterns.h | 28 ++++---- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 + .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 41 ------------ .../Vectorization/SLP/SLPSeeding.cpp | 35 +++++++--- .../LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp | 28 ++++---- .../SLP/SLPVectorizationPass.cpp | 66 +++++++++++++++++++ .../Vectorization/TargetInformation.cpp | 2 +- .../Vectorization/VectorizeNodePatterns.cpp | 2 +- .../VectorizeStructurePatterns.cpp | 2 +- mlir/tools/spnc-opt/spnc-opt.cpp | 6 ++ 16 files changed, 190 insertions(+), 114 deletions(-) create mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h rename mlir/{lib => include}/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.h (100%) create mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.h b/mlir/include/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.h index 3406b9c8..886dbb1c 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.h +++ b/mlir/include/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.h @@ -11,47 +11,43 @@ namespace mlir { namespace spn { - struct LoSPNtoCPUStructureConversionPass : - public PassWrapper> { + struct LoSPNtoCPUStructureConversionPass : public PassWrapper> { public: - explicit LoSPNtoCPUStructureConversionPass(bool enableVectorization) : vectorize{enableVectorization} {} + explicit LoSPNtoCPUStructureConversionPass(bool enableVectorization) : vectorize{enableVectorization} {} protected: - void runOnOperation() - override; + void runOnOperation() override; private: - bool vectorize; + bool vectorize; - }; + }; - std::unique_ptr createLoSPNtoCPUStructureConversionPass(bool enableVectorization); + std::unique_ptr createLoSPNtoCPUStructureConversionPass(bool enableVectorization); - struct LoSPNtoCPUNodeConversionPass : - public PassWrapper> { + struct LoSPNtoCPUNodeConversionPass : public PassWrapper> { - protected: - void runOnOperation() - override; + protected: + void runOnOperation() override; -}; + }; -std::unique_ptr createLoSPNtoCPUNodeConversionPass(); + std::unique_ptr createLoSPNtoCPUNodeConversionPass(); -struct LoSPNNodeVectorizationPass : public PassWrapper> { + struct LoSPNNodeVectorizationPass : public PassWrapper> { -protected: -void runOnOperation() -override; + protected: + void runOnOperation() override; -}; + }; -std::unique_ptr createLoSPNNodeVectorizationPass(); + std::unique_ptr createLoSPNNodeVectorizationPass(); -} + } } #endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_LOSPNTOCPUCONVERSIONPASSES_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 7a925769..f93396d6 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -33,8 +33,7 @@ namespace mlir { std::vector getVector(size_t index) const; friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.lanes) - == std::tie(rhs.lanes); + return std::tie(lhs.lanes) == std::tie(rhs.lanes); } friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index a72a3105..37de9fb3 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -27,15 +27,17 @@ namespace mlir { public: - explicit SeedAnalysis(Operation* jointQuery); + explicit SeedAnalysis(Operation* rootOp); + + std::map getOpDepths() const; std::vector getSeeds(size_t const& op, - std::map const& nodeLevels, + std::map const& depthsOf, SearchMode const& mode = RootToLeaf) const; private: - Operation* jointQuery; + Operation* rootOp; }; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h new file mode 100644 index 00000000..834e1401 --- /dev/null +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -0,0 +1,31 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H + +#include "mlir/Pass/Pass.h" + +namespace mlir { + namespace spn { + + struct SLPVectorizationPass : public PassWrapper> { + + public: + + explicit SLPVectorizationPass() = default; + + protected: + void runOnOperation() override; + + private: + + }; + + std::unique_ptr createSLPVectorizationPass(); + } +} + +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.h similarity index 100% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.h diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorOptimizationPasses.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorOptimizationPasses.h index a7fecad3..22380b2b 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorOptimizationPasses.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorOptimizationPasses.h @@ -11,16 +11,15 @@ namespace mlir { namespace spn { - struct ReplaceGatherWithShufflePass : public PassWrapper> { + struct ReplaceGatherWithShufflePass : public PassWrapper> { protected: - void runOnOperation() - override; + void runOnOperation() override; - }; + }; - std::unique_ptr createReplaceGatherWithShufflePass(); + std::unique_ptr createReplaceGatherWithShufflePass(); -} + } } #endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_VECTOROPTIMIZATIONPASSES_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h index cf35c705..57f2c49c 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h @@ -19,7 +19,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNTask op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -34,7 +34,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNBatchRead op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -43,7 +43,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNBatchWrite op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -52,7 +52,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNMul op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -61,7 +61,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNMul op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -70,7 +70,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNAdd op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -79,7 +79,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNAdd op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -88,7 +88,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNLog op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -97,7 +97,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNGaussianLeaf op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -106,7 +106,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNGaussianLeaf op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -115,7 +115,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNCategoricalLeaf op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -124,7 +124,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNHistogramLeaf op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -133,7 +133,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNConstant op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; @@ -142,7 +142,7 @@ namespace mlir { using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNStripLog op, - ArrayRef operands, + ArrayRef operands, ConversionPatternRewriter& rewriter) const override; }; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index 9f792047..e38e2f1a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -10,6 +10,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPSeeding.cpp Vectorization/SLP/SLPTree.cpp Vectorization/SLP/SLPVectorizationPatterns.cpp + Vectorization/SLP/SLPVectorizationPass.cpp LoSPNtoCPUConversionPasses.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 1d0c941d..49fafffe 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -10,12 +10,9 @@ #include "LoSPNtoCPU/NodePatterns.h" #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Vector/VectorOps.h" -#include "mlir/Dialect/Math/IR/Math.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { ConversionTarget target(getContext()); @@ -34,7 +31,6 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { OwningRewritePatternList patterns; if (vectorize) { - // auto& depthAnalysis = getAnalysis(); // Try to vectorize tasks if vectorization was requested. mlir::spn::populateLoSPNCPUVectorizationStructurePatterns(patterns, &getContext(), typeConverter); } @@ -45,43 +41,6 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { if (failed(applyPartialConversion(op, target, frozenPatterns))) { signalPassFailure(); } - - if (vectorize) { - auto module = getOperation(); - - // ============ TREE CHECK ============ // - module.walk([&](Operation* op) { - llvm::StringMap> operationsByOpCode; - operationsByOpCode[op->getName().getStringRef().str()].emplace_back(op); - auto const& uses = std::distance(op->getUses().begin(), op->getUses().end()); - if (uses > 1) { - // TODO: how to handle such cases? and is special handling required at all? - //assert(false && "SPN is not a tree!"); - } - }); - // ==================================== // - - // auto& depthAnalysis = getAnalysis(); - auto& seedAnalysis = getAnalysis(); - /*auto seeds = seedAnalysis.getSeeds(4, depthAnalysis); - - if (!seeds.empty()) { - slp::SLPTree graph(seeds.front(), 3); - OwningRewritePatternList patterns; - std::vector> vectors; - for (auto const& node_ptr : graph.getNodes()) { - for (size_t i = 0; i < node_ptr->numVectors(); ++i) { - vectors.emplace_back(node_ptr->getVector(i)); - } - } - slp::populateVectorizationPatterns(patterns, &getContext(), vectors); - auto op = getOperation(); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - applyPatternsAndFoldGreedily(op, frozenPatterns); - } -*/ - } - } std::unique_ptr mlir::spn::createLoSPNtoCPUStructureConversionPass(bool enableVectorization) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 79d7c0ed..f32cdb62 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -4,28 +4,45 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" -#include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SeedAnalysis::SeedAnalysis(Operation* jointQuery) : jointQuery{jointQuery} {} +SeedAnalysis::SeedAnalysis(Operation* rootOp) : rootOp{rootOp} {} + +std::map SeedAnalysis::getOpDepths() const { + + std::map opDepths; + + rootOp->walk([&](Operation* op) { + if (!opDepths.count(op)) { + opDepths[op] = 0; + } + for (auto const& use : op->getUsers()) { + if (!opDepths.count(use) || opDepths[op] + 1 > opDepths[use]) { + opDepths[use] = opDepths[op] + 1; + } + } + }); + + return opDepths; +} std::vector SeedAnalysis::getSeeds(size_t const& width, - std::map const& nodeLevels, + std::map const& depthsOf, SearchMode const& mode) const { llvm::StringMap> seedsByOpName; - jointQuery->walk([&](Operation* op) { - auto depth = nodeLevels.at(op); - if (!op->hasTrait() || depth < log2(width)) { + rootOp->walk([&](Operation* op) { + auto depth = depthsOf.at(op); + if (!op->hasTrait() || depth < log2(width)) { return; } bool needsNewSeed = true; for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { - if (seed.size() < width && nodeLevels.at(seed.front()) == depth) { + if (seed.size() < width && depthsOf.at(seed.front()) == depth) { seed.emplace_back(op); needsNewSeed = false; break; @@ -51,9 +68,9 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, // or those closest to the leaves (LeafToRoot). std::sort(seeds.begin(), seeds.end(), [&](seed_t const& seed1, seed_t const& seed2) { if (mode == RootToLeaf) { - return nodeLevels.at(seed1.front()) < nodeLevels.at(seed2.front()); + return depthsOf.at(seed1.front()) < depthsOf.at(seed2.front()); } else if (mode == LeafToRoot) { - return nodeLevels.at(seed1.front()) > nodeLevels.at(seed2.front()); + return depthsOf.at(seed1.front()) > depthsOf.at(seed2.front()); } else { // Unused so far. assert(false); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp index bf54345f..16c9f81e 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp @@ -83,18 +83,18 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } } } - // 2. Non-Commutative - // Only consider operands further when the current operations aren't leaf nodes. - assert(false); - /* - else if (!dyn_cast(operations.front())) { - for (auto const& operandOperations : getOperandsTransposed(operations)) { - auto const& operandNode = std::make_shared(operandOperations); - operandsOf[currentNode].emplace_back(operandNode); - buildGraph(operandOperations, operandNode); - } + // 2. Non-Commutative + // Only consider operands further when the current operations aren't leaf nodes. + assert(false); + /* +else if (!dyn_cast(operations.front())) { + for (auto const& operandOperations : getOperandsTransposed(operations)) { + auto const& operandNode = std::make_shared(operandOperations); + operandsOf[currentNode].emplace_back(operandNode); + buildGraph(operandOperations, operandNode); } - */ +} + */ } std::vector> SLPTree::reorderOperands(node_t const& multinode) { @@ -227,9 +227,9 @@ int SLPTree::getLookAheadScore(Operation* last, Operation* candidate, size_t con return 0; } assert(false); - /* if (dyn_cast(last)) { - return areConsecutive(last, candidate) ? 1 : 0; - }*/ + /* if (dyn_cast(last)) { + return areConsecutive(last, candidate) ? 1 : 0; + }*/ return 1; } auto scoreSum = 0; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp new file mode 100644 index 00000000..6f0f4eb5 --- /dev/null +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -0,0 +1,66 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" +#include "LoSPNtoCPU/Vectorization/TargetInformation.h" +#include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" +#include "LoSPNtoCPU/StructurePatterns.h" +#include "LoSPNtoCPU/NodePatterns.h" +#include "mlir/Dialect/SCF/SCF.h" +#include "mlir/Dialect/Vector/VectorOps.h" +#include "mlir/Dialect/Linalg/IR/LinalgOps.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" + +void mlir::spn::SLPVectorizationPass::runOnOperation() { + llvm::StringRef funcName = getOperation().getName(); + if (!funcName.contains("task_")) { + return; + } + + ConversionTarget target(getContext()); + + target.addLegalDialect(); + target.addLegalDialect(); + target.addLegalDialect(); + target.addLegalOp(); + target.addLegalOp(); + + target.addLegalDialect(); + + auto function = getOperation(); + + auto& seedAnalysis = getAnalysis(); + + auto computationType = function.getArguments().back().getType().dyn_cast().getElementType(); + auto width = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); + + getOperation()->dump(); + + auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths()); + llvm::outs() << "nnn\n"; +/* + if (!seeds.empty()) { + slp::SLPTree graph(seeds.front(), 3); + OwningRewritePatternList patterns; + std::vector> vectors; + for (auto const& node_ptr : graph.getNodes()) { + for (size_t i = 0; i < node_ptr->numVectors(); ++i) { + vectors.emplace_back(node_ptr->getVector(i)); + } + } + slp::populateVectorizationPatterns(patterns, &getContext(), vectors); + auto op = getOperation(); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + applyPatternsAndFoldGreedily(op, frozenPatterns); + } +*/ + + +} + +std::unique_ptr mlir::spn::createSLPVectorizationPass() { + return std::make_unique(); +} + diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.cpp index 00f29f02..3e1d6026 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/TargetInformation.cpp @@ -3,7 +3,7 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "TargetInformation.h" +#include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "llvm/Support/Host.h" #include "llvm/ADT/StringRef.h" #include diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeNodePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeNodePatterns.cpp index b6eb977c..087f27a1 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeNodePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeNodePatterns.cpp @@ -5,7 +5,7 @@ #include #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" -#include "TargetInformation.h" +#include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "llvm/Support/FormatVariadic.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/SCF/SCF.h" diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index 02c84ff8..50e293b7 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -5,7 +5,7 @@ #include #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" -#include "TargetInformation.h" +#include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "llvm/Support/FormatVariadic.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/SCF/SCF.h" diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 0579fd33..54777e09 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -17,6 +17,7 @@ #include "LoSPN/LoSPNPasses.h" #include "HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h" #include "LoSPNtoCPU/LoSPNtoCPUConversionPasses.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" static llvm::cl::opt inputFilename(llvm::cl::Positional, llvm::cl::desc(""), @@ -98,6 +99,11 @@ int main(int argc, char** argv) { return mlir::spn::createLoSPNNodeVectorizationPass(); }); + mlir::registerPass("slp-vectorize-structure", "Run SLP vectorization of the structure for CPU target", + []() -> std::unique_ptr { + return mlir::spn::createSLPVectorizationPass(); + }); + mlir::registerPass("spn-to-dot", "Prints the SPN to stderr", []() -> std::unique_ptr { return mlir::createPrintOpGraphPass(); }); From ba4494553f6dc657387664538c9a19485d59a80d Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 19 Mar 2021 03:14:03 +0100 Subject: [PATCH 048/385] Adapted SLP graph generation to standard dialect. --- .../SLP/{SLPTree.h => SLPGraph.h} | 100 +++++++++++------- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.h | 2 - .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 6 +- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 2 +- .../SLP/{SLPTree.cpp => SLPGraph.cpp} | 57 +++++----- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 8 +- .../Vectorization/SLP/SLPSeeding.cpp | 10 +- .../SLP/SLPVectorizationPass.cpp | 32 +++--- 8 files changed, 122 insertions(+), 95 deletions(-) rename mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPTree.h => SLPGraph.h} (65%) rename mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPTree.cpp => SLPGraph.cpp} (83%) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h similarity index 65% rename from mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 38c7899c..83daa706 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -3,10 +3,11 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPTREE_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPTREE_H +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H #include "mlir/IR/Operation.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "LoSPN/LoSPNTraits.h" #include "SLPMode.h" #include "SLPNode.h" @@ -18,13 +19,13 @@ namespace mlir { namespace spn { namespace slp { - class SLPTree { + class SLPGraph { typedef std::shared_ptr node_t; public: - SLPTree(seed_t const& seed, size_t const& maxLookAhead); + SLPGraph(seed_t const& seed, size_t const& maxLookAhead); std::vector> getNodes() const; @@ -41,37 +42,53 @@ namespace mlir { int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; static bool areConsecutive(Operation* op1, Operation* op2) { - assert(false); + auto load1 = dyn_cast(op1); + auto load2 = dyn_cast(op2); + if (!load1 || !load2) { + return false; + } + if (load1.indices().size() != load2.indices().size()) { + return false; + } + for (size_t i = 0; i < load1.indices().size(); ++i) { + auto const1 = load1.indices()[i].getDefiningOp(); + auto const2 = load2.indices()[i].getDefiningOp(); + if (!const1 || !const2) { + return false; + } + auto index1 = const1.value().dyn_cast(); + auto index2 = const2.value().dyn_cast(); + if (!index1 || !index2) { + return false; + } + if (i == load1.indices().size() - 1) { + return index1.getInt() == index2.getInt() - 1; + } else if (index1.getInt() != index2.getInt()) { + return false; + } + } return false; } - /// Checks if the given operations are vectorizable. Operations are vectorizable iff the SPN dialect says they're - /// vectorizable and they all share the same opcode. + /// Checks if the given operations are vectorizable. /// \param operations The potentially vectorizable operations. /// \return True if the operations can be vectorized, otherwise false. static bool vectorizable(std::vector const& operations) { for (size_t i = 0; i < operations.size(); ++i) { - if (!operations.at(i)->hasTrait() - || (i > 0 && operations.at(i)->getName() != operations.front()->getName())) { + auto* op = operations[i]; + if (!op->hasTrait() || (i > 0 && op->getName() != operations.front()->getName())) { return false; } } - /* - if (dyn_cast(operations.front())) { - for (size_t i = 1; i < operations.size(); ++i) { - if (!areConsecutive(operations.at(i - 1), operations.at(i))) { - return false; - } - } - } - */ - assert(false); return true; } static bool commutative(std::vector const& operations) { - return std::all_of(std::begin(operations), std::end(operations), [&](Operation* operation) { - return operation->hasTrait(); + return std::all_of(std::begin(operations), std::end(operations), [&](Operation* op) { + if (op->hasTrait()) { + return true; + } + return dyn_cast(op) || dyn_cast(op); }); } @@ -153,24 +170,35 @@ namespace mlir { } } - llvm::errs() << "digraph debug_graph {\n"; - llvm::errs() << "rankdir = BT;\n"; - llvm::errs() << "node[shape=box];\n"; + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; for (auto& op : nodes) { - llvm::errs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; - assert(false); - /* - if (auto leaf = dyn_cast(op)) { - llvm::errs() << "\\narg: " << leaf.getFeatureIndex() << "\\n"; - } - */ - llvm::errs() << "\", fillcolor=\"#a0522d\"];\n"; + printNode(op); } for (auto& edge : edges) { - llvm::errs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" - << std::get<2>(edge) << "\"];\n"; + printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); } - llvm::errs() << "}\n"; + llvm::dbgs() << "}\n"; + } + + /// For debugging purposes. + static void printNode(Operation* op) { + llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; + if (auto constantOp = dyn_cast(op)) { + if (constantOp.value().getType().isIntOrIndex()) { + llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); + } else if (constantOp.value().getType().isIntOrFloat()) { + llvm::dbgs() << "\\nvalue: " + << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); + } + } + llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; + } + + /// For debugging purposes. + static void printEdge(Operation* src, Operation* dst, size_t index) { + llvm::dbgs() << "node_" << src << " -> node_" << dst << "[label=\"" << std::to_string(index) << "\"];\n"; } std::map> operandsOf; @@ -182,4 +210,4 @@ namespace mlir { } } -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPTREE_H +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h index 3b032bba..c829b394 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h @@ -16,12 +16,10 @@ namespace mlir { // look for a constant CONST, // look for a consecutive load to that in the previous lane - // TODO: do we have load operations? or something that can be treated equivalently? LOAD, // look for an operation of the same opcode OPCODE, // look for the exact same operation - // TODO: determine whether SPLAT mode is actually relevant (are the same operands used in more than one lane?) SPLAT, // vectorization has failed, give higher priority to others FAILED diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index 37de9fb3..43d89569 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -16,9 +16,9 @@ namespace mlir { enum SearchMode { /// - RootToLeaf, + DefBeforeUse, /// - LeafToRoot, + UseBeforeDef, /// TODO? Chain }; @@ -33,7 +33,7 @@ namespace mlir { std::vector getSeeds(size_t const& op, std::map const& depthsOf, - SearchMode const& mode = RootToLeaf) const; + SearchMode const& mode) const; private: diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index e38e2f1a..e7574654 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -8,7 +8,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPMode.cpp Vectorization/SLP/SLPNode.cpp Vectorization/SLP/SLPSeeding.cpp - Vectorization/SLP/SLPTree.cpp + Vectorization/SLP/SLPGraph.cpp Vectorization/SLP/SLPVectorizationPatterns.cpp Vectorization/SLP/SLPVectorizationPass.cpp LoSPNtoCPUConversionPasses.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp similarity index 83% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp rename to mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index 16c9f81e..6e741fc9 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPTree.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -3,21 +3,25 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "LoSPNtoCPU/Vectorization/SLP/SLPTree.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" #include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPTree::SLPTree(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{}, maxLookAhead{maxLookAhead} { +SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{}, maxLookAhead{maxLookAhead} { auto const& currentNode = std::make_shared(seed); operandsOf[currentNode] = {}; - printSubgraph(seed); + //printSubgraph(seed); + llvm::dbgs() << "Building graph with seed:\n"; + for (auto* op : seed) { + printNode(op); + } buildGraph(seed, currentNode); } -std::vector> SLPTree::getNodes() const { +std::vector> SLPGraph::getNodes() const { std::vector> nodes; for (auto const& entry : operandsOf) { nodes.emplace_back(entry.first); @@ -30,12 +34,7 @@ std::vector> SLPTree::getNodes() const { return nodes; } -void SLPTree::buildGraph(std::vector const& operations, node_t const& currentNode) { - llvm::errs() << "Building graph with:\n"; - for (auto* op : operations) { - llvm::errs() << op << ": "; - op->dump(); - } +void SLPGraph::buildGraph(std::vector const& operations, node_t const& currentNode) { // Stop growing graph if (!vectorizable(operations)) { return; @@ -50,6 +49,11 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const sortByOpcode(operands, currentOpCode); } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { + llvm::dbgs() << "\n"; + for (auto* op : operations) { + printNode(op->getOperand(i).getDefiningOp()); + printEdge(op, op->getOperand(i).getDefiningOp(), i); + } if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i]); })) { @@ -63,9 +67,6 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandOperations.emplace_back(allOperands[lane][i]); } - for (auto const& tmp : operandOperations) { - tmp->dump(); - } operandsOf[currentNode].emplace_back(std::make_shared(operandOperations)); } } @@ -83,21 +84,19 @@ void SLPTree::buildGraph(std::vector const& operations, node_t const } } } - // 2. Non-Commutative - // Only consider operands further when the current operations aren't leaf nodes. - assert(false); - /* -else if (!dyn_cast(operations.front())) { - for (auto const& operandOperations : getOperandsTransposed(operations)) { - auto const& operandNode = std::make_shared(operandOperations); - operandsOf[currentNode].emplace_back(operandNode); - buildGraph(operandOperations, operandNode); + // 2. Non-Commutative + // Only consider operands further when the current operations aren't leaf nodes. + else if (!dyn_cast(operations.front())) { + for (auto const& operandOperations : getOperandsTransposed(operations)) { + auto const& operandNode = std::make_shared(operandOperations); + operandsOf[currentNode].emplace_back(operandNode); + buildGraph(operandOperations, operandNode); + } } -} - */ + } -std::vector> SLPTree::reorderOperands(node_t const& multinode) { +std::vector> SLPGraph::reorderOperands(node_t const& multinode) { assert(multinode->isMultiNode()); auto const& numOperands = operandsOf.at(multinode).size(); std::vector> finalOrder{multinode->numLanes()}; @@ -151,9 +150,9 @@ std::vector> SLPTree::reorderOperands(node_t const& mult return finalOrder; } -std::pair SLPTree::getBest(Mode const& mode, - Operation* last, - std::vector& candidates) const { +std::pair SLPGraph::getBest(Mode const& mode, + Operation* last, + std::vector& candidates) const { Operation* best = nullptr; Mode resultMode = mode; std::vector bestCandidates; @@ -221,7 +220,7 @@ std::pair SLPTree::getBest(Mode const& mode, return {best, resultMode}; } -int SLPTree::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { +int SLPGraph::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { if (maxLevel == 0) { if (last->getName() != candidate->getName()) { return 0; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp index 6eef770f..4263d620 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp @@ -3,17 +3,19 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // +#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPMode.h" using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -Mode slp::modeFromOperation(Operation const* operation) { - if (dyn_cast(operation)) { +Mode slp::modeFromOperation(const Operation* operation) { + if (dyn_cast(operation)) { return CONST; + } else if (dyn_cast(operation)) { + return LOAD; } - // We don't have LOADs. Therefore just return OPCODE. return OPCODE; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index f32cdb62..3706fb1c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -19,7 +19,7 @@ std::map SeedAnalysis::getOpDepths() const { if (!opDepths.count(op)) { opDepths[op] = 0; } - for (auto const& use : op->getUsers()) { + for (auto* use : op->getUsers()) { if (!opDepths.count(use) || opDepths[op] + 1 > opDepths[use]) { opDepths[use] = opDepths[op] + 1; } @@ -64,12 +64,12 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, seeds.emplace_back(seed); } } - // Sort the seeds such that either the seeds closest to the root come first (RootToLeaf), - // or those closest to the leaves (LeafToRoot). + // Sort the seeds such that either the seeds closest to the beginning of the function come first (DefBeforeUse), + // or those closest to the return statement (UseBeforeDef). std::sort(seeds.begin(), seeds.end(), [&](seed_t const& seed1, seed_t const& seed2) { - if (mode == RootToLeaf) { + if (mode == DefBeforeUse) { return depthsOf.at(seed1.front()) < depthsOf.at(seed2.front()); - } else if (mode == LeafToRoot) { + } else if (mode == UseBeforeDef) { return depthsOf.at(seed1.front()) > depthsOf.at(seed2.front()); } else { // Unused so far. diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 6f0f4eb5..c45e5623 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -12,6 +12,7 @@ #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" void mlir::spn::SLPVectorizationPass::runOnOperation() { llvm::StringRef funcName = getOperation().getName(); @@ -38,24 +39,23 @@ void mlir::spn::SLPVectorizationPass::runOnOperation() { getOperation()->dump(); - auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths()); - llvm::outs() << "nnn\n"; -/* - if (!seeds.empty()) { - slp::SLPTree graph(seeds.front(), 3); - OwningRewritePatternList patterns; - std::vector> vectors; - for (auto const& node_ptr : graph.getNodes()) { - for (size_t i = 0; i < node_ptr->numVectors(); ++i) { - vectors.emplace_back(node_ptr->getVector(i)); - } + auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), slp::UseBeforeDef); + assert(!seeds.empty() && "couldn't find a seed!"); + + slp::SLPGraph tree(seeds.front(), 3); + std::vector> vectors; + for (auto const& node_ptr : tree.getNodes()) { + for (size_t i = 0; i < node_ptr->numVectors(); ++i) { + vectors.emplace_back(node_ptr->getVector(i)); } - slp::populateVectorizationPatterns(patterns, &getContext(), vectors); - auto op = getOperation(); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - applyPatternsAndFoldGreedily(op, frozenPatterns); } -*/ + /* + OwningRewritePatternList patterns; + slp::populateVectorizationPatterns(patterns, &getContext(), vectors); + auto op = getOperation(); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + applyPatternsAndFoldGreedily(op, frozenPatterns); + */ } From 622c72c6b0f06b932c4e7b318ce46708b5caa20c Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 21 Mar 2021 04:17:37 +0100 Subject: [PATCH 049/385] Added some consecutive fixes, did some code movement. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 89 ++++++++----------- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 1 + .../Vectorization/SLP/SLPVectorizationPass.h | 59 ++++++++++++ .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 65 +++++++------- 4 files changed, 131 insertions(+), 83 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 83daa706..89ca13f5 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -33,7 +33,7 @@ namespace mlir { void buildGraph(std::vector const& operations, node_t const& currentNode); - std::vector> reorderOperands(node_t const& multinode); + void reorderOperands(node_t const& multinode); std::pair getBest(Mode const& mode, Operation* last, @@ -116,15 +116,19 @@ namespace mlir { return allOperands; } - static std::vector> getOperandsTransposed(std::vector const& operations) { + static std::vector> getOperandsVectorized(std::vector const& operations) { + for (auto* operation : operations) { + assert(operation->getNumOperands() == operations.front()->getNumOperands() + && "operations must have same numbers of operands"); + } std::vector> allOperands; for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - std::vector operand; - operand.reserve(operations.size()); + std::vector operands; + operands.reserve(operations.size()); for (auto* operation : operations) { - operand.emplace_back(operation->getOperand(i).getDefiningOp()); + operands.emplace_back(operation->getOperand(i).getDefiningOp()); } - allOperands.emplace_back(operand); + allOperands.emplace_back(operands); } return allOperands; } @@ -143,62 +147,43 @@ namespace mlir { }); } - /// For debugging purposes. - static void printSubgraph(std::vector const& operations) { - std::vector nodes; - std::vector> edges; - - std::stack worklist; - for (auto& op : operations) { - worklist.push(op); - } - - while (!worklist.empty()) { - - auto op = worklist.top(); - worklist.pop(); - - if (std::find(std::begin(nodes), std::end(nodes), op) == nodes.end()) { - nodes.emplace_back(op); - for (size_t i = 0; i < op->getNumOperands(); ++i) { - auto const& operand = op->getOperand(i); - if (operand.getDefiningOp() != nullptr) { - edges.emplace_back(std::make_tuple(op, operand.getDefiningOp(), i)); - worklist.push(operand.getDefiningOp()); - } - } - } - } - + static void print(SLPGraph const& graph) { llvm::dbgs() << "digraph debug_graph {\n"; llvm::dbgs() << "rankdir = BT;\n"; llvm::dbgs() << "node[shape=box];\n"; - for (auto& op : nodes) { - printNode(op); - } - for (auto& edge : edges) { - printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); + for (auto const& entry : graph.operandsOf) { + printNode(entry.first.get()); + for (auto const& operand : entry.second) { + llvm::dbgs() << "node_" << entry.first.get() << "->" << "node_" << operand.get() << ";\n"; + } } llvm::dbgs() << "}\n"; } /// For debugging purposes. - static void printNode(Operation* op) { - llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; - if (auto constantOp = dyn_cast(op)) { - if (constantOp.value().getType().isIntOrIndex()) { - llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); - } else if (constantOp.value().getType().isIntOrFloat()) { - llvm::dbgs() << "\\nvalue: " - << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); + static void printNode(SLPNode const* node) { + llvm::dbgs() << "node_" << node << "[label=<\n"; + llvm::dbgs() + << "\t\n"; + for (size_t i = node->numVectors(); i-- > 0;) { + llvm::dbgs() << "\t\t\n"; + for (size_t j = 0; j < node->numLanes(); ++j) { + auto* operation = node->getOperation(j, i); + if (std::intptr_t(operation) == 0x903a08) { + llvm::dbgs(); + } + llvm::dbgs() << "\t\t\t\n"; + if (j < node->numLanes() - 1) { + llvm::dbgs() << "\t\t\t\n"; + } } + llvm::dbgs() << "\t\t\n"; } - llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; - } - - /// For debugging purposes. - static void printEdge(Operation* src, Operation* dst, size_t index) { - llvm::dbgs() << "node_" << src << " -> node_" << dst << "[label=\"" << std::to_string(index) << "\"];\n"; + llvm::dbgs() << "\t
\n"; + llvm::dbgs() << "\t\t\t\t" << operation->getName() << " (" << operation + << ")\n"; + llvm::dbgs() << "\t\t\t
\n"; + llvm::dbgs() << ">];\n"; } std::map> operandsOf; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index f93396d6..e8019a52 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -18,6 +18,7 @@ namespace mlir { public: + SLPNode() = delete; explicit SLPNode(std::vector const& operations); void addOperationToLane(Operation* operation, size_t const& lane); diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 834e1401..e78075b0 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -7,6 +7,7 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H #include "mlir/Pass/Pass.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" namespace mlir { namespace spn { @@ -22,6 +23,64 @@ namespace mlir { private: + /// For debugging purposes. + static void printSubgraph(std::vector const& operations) { + std::vector nodes; + std::vector> edges; + + std::stack worklist; + for (auto& op : operations) { + worklist.push(op); + } + + while (!worklist.empty()) { + + auto op = worklist.top(); + worklist.pop(); + + if (std::find(std::begin(nodes), std::end(nodes), op) == nodes.end()) { + nodes.emplace_back(op); + for (size_t i = 0; i < op->getNumOperands(); ++i) { + auto const& operand = op->getOperand(i); + if (operand.getDefiningOp() != nullptr) { + edges.emplace_back(std::make_tuple(op, operand.getDefiningOp(), i)); + worklist.push(operand.getDefiningOp()); + } + } + } + } + + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + for (auto& op : nodes) { + printNode(op); + } + for (auto& edge : edges) { + printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); + } + llvm::dbgs() << "}\n"; + } + + /// For debugging purposes. + static void printNode(Operation* op) { + llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; + if (auto constantOp = dyn_cast(op)) { + if (constantOp.value().getType().isIntOrIndex()) { + llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); + } else if (constantOp.value().getType().isIntOrFloat()) { + llvm::dbgs() << "\\nvalue: " + << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); + } + } + llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; + } + + /// For debugging purposes. + static void printEdge(Operation* src, Operation* dst, size_t index) { + llvm::dbgs() << "node_" << src << " -> node_" << dst << "[label=\"" << std::to_string(index) << "\"];\n"; + } + }; std::unique_ptr createSLPVectorizationPass(); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index 6e741fc9..2e61210f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -13,12 +13,8 @@ using namespace mlir::spn::slp; SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{}, maxLookAhead{maxLookAhead} { auto const& currentNode = std::make_shared(seed); operandsOf[currentNode] = {}; - //printSubgraph(seed); - llvm::dbgs() << "Building graph with seed:\n"; - for (auto* op : seed) { - printNode(op); - } buildGraph(seed, currentNode); + print(*this); } std::vector> SLPGraph::getNodes() const { @@ -35,6 +31,9 @@ std::vector> SLPGraph::getNodes() const { } void SLPGraph::buildGraph(std::vector const& operations, node_t const& currentNode) { + if (std::intptr_t(operations.front()) == 0x5ebd28) { + llvm::dbgs(); + } // Stop growing graph if (!vectorizable(operations)) { return; @@ -49,11 +48,6 @@ void SLPGraph::buildGraph(std::vector const& operations, node_t cons sortByOpcode(operands, currentOpCode); } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - llvm::dbgs() << "\n"; - for (auto* op : operations) { - printNode(op->getOperand(i).getDefiningOp()); - printEdge(op, op->getOperand(i).getDefiningOp(), i); - } if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i]); })) { @@ -67,36 +61,40 @@ void SLPGraph::buildGraph(std::vector const& operations, node_t cons for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandOperations.emplace_back(allOperands[lane][i]); } - operandsOf[currentNode].emplace_back(std::make_shared(operandOperations)); + auto const& operandNode = std::make_shared(operandOperations); + operandsOf[currentNode].emplace_back(operandNode); + operandsOf[operandNode] = {}; } } // B. Normal Mode: Finished building multi-node if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { - auto const& order = reorderOperands(currentNode); - for (size_t operandIndex = 0; operandIndex < operandsOf.at(currentNode).size(); ++operandIndex) { - for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - operandsOf.at(currentNode).at(operandIndex)->setOperation(lane, 0, order[lane][operandIndex]); - } - } + reorderOperands(currentNode); for (auto& operandNode : operandsOf.at(currentNode)) { buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); } } } // 2. Non-Commutative + else { // Only consider operands further when the current operations aren't leaf nodes. - else if (!dyn_cast(operations.front())) { - for (auto const& operandOperations : getOperandsTransposed(operations)) { - auto const& operandNode = std::make_shared(operandOperations); + for (auto* operation : operations) { + for (auto const& operand : operation->getOperands()) { + if (operand.isa()) { + return; + } + } + } + for (auto const& operandVector : getOperandsVectorized(operations)) { + auto const& operandNode = std::make_shared(operandVector); operandsOf[currentNode].emplace_back(operandNode); - buildGraph(operandOperations, operandNode); + operandsOf[operandNode] = {}; + buildGraph(operandVector, operandNode); } } - } -std::vector> SLPGraph::reorderOperands(node_t const& multinode) { +void SLPGraph::reorderOperands(node_t const& multinode) { assert(multinode->isMultiNode()); auto const& numOperands = operandsOf.at(multinode).size(); std::vector> finalOrder{multinode->numLanes()}; @@ -147,7 +145,11 @@ std::vector> SLPGraph::reorderOperands(node_t const& mul } } } - return finalOrder; + for (size_t operandIndex = 0; operandIndex < operandsOf.at(multinode).size(); ++operandIndex) { + for (size_t lane = 0; lane < multinode->numLanes(); ++lane) { + operandsOf.at(multinode)[operandIndex]->setOperation(lane, 0, finalOrder[lane][operandIndex]); + } + } } std::pair SLPGraph::getBest(Mode const& mode, @@ -172,8 +174,11 @@ std::pair SLPGraph::getBest(Mode const& mode, // Default value best = candidates.front(); for (auto& candidate : candidates) { - // We don't have consecutive memory accesses, therefore we're only interested in opcode comparisons. - if (candidate->getName() == last->getName()) { + if (mode == LOAD) { + if (areConsecutive(last, candidate)) { + bestCandidates.emplace_back(candidate); + } + } else if (candidate->getName() == last->getName()) { bestCandidates.emplace_back(candidate); } } @@ -215,7 +220,7 @@ std::pair SLPGraph::getBest(Mode const& mode, } // Remove best from candidates if (best != nullptr) { - candidates.erase(std::remove(std::begin(candidates), std::end(candidates), best), std::end(candidates)); + candidates.erase(std::find(std::begin(candidates), std::end(candidates), best)); } return {best, resultMode}; } @@ -225,14 +230,12 @@ int SLPGraph::getLookAheadScore(Operation* last, Operation* candidate, size_t co if (last->getName() != candidate->getName()) { return 0; } - assert(false); - /* if (dyn_cast(last)) { + if (dyn_cast(last)) { return areConsecutive(last, candidate) ? 1 : 0; - }*/ + } return 1; } auto scoreSum = 0; - // TODO: if operands are commutative, sort operands to speed up lookahead? for (auto& lastOperand : getOperands(last)) { for (auto& candidateOperand : getOperands(candidate)) { // Can be null if the operand is a block argument. From be82c7d044eb1b90b34a94cbf009b6174e921ec1 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 21 Mar 2021 04:40:08 +0100 Subject: [PATCH 050/385] Better dot output. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 16 +++++++--------- .../Vectorization/SLP/SLPVectorizationPass.h | 6 +++--- .../Vectorization/SLP/SLPVectorizationPass.cpp | 6 ++---- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 89ca13f5..ca4eec7c 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -164,21 +164,19 @@ namespace mlir { static void printNode(SLPNode const* node) { llvm::dbgs() << "node_" << node << "[label=<\n"; llvm::dbgs() - << "\t\n"; + << "\t
\n"; for (size_t i = node->numVectors(); i-- > 0;) { llvm::dbgs() << "\t\t\n"; for (size_t j = 0; j < node->numLanes(); ++j) { auto* operation = node->getOperation(j, i); - if (std::intptr_t(operation) == 0x903a08) { - llvm::dbgs(); - } - llvm::dbgs() << "\t\t\t\n"; + llvm::dbgs() << "\t\t\t"; if (j < node->numLanes() - 1) { - llvm::dbgs() << "\t\t\t\n"; + llvm::dbgs() << ""; } + llvm::dbgs() << "\n"; } llvm::dbgs() << "\t\t\n"; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index e78075b0..414a8455 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -24,7 +24,7 @@ namespace mlir { private: /// For debugging purposes. - static void printSubgraph(std::vector const& operations) { + static void printSPN(std::vector const& operations) { std::vector nodes; std::vector> edges; @@ -54,7 +54,7 @@ namespace mlir { llvm::dbgs() << "rankdir = BT;\n"; llvm::dbgs() << "node[shape=box];\n"; for (auto& op : nodes) { - printNode(op); + printOperation(op); } for (auto& edge : edges) { printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); @@ -63,7 +63,7 @@ namespace mlir { } /// For debugging purposes. - static void printNode(Operation* op) { + static void printOperation(Operation* op) { llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; if (auto constantOp = dyn_cast(op)) { if (constantOp.value().getType().isIntOrIndex()) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index c45e5623..ca2f9eb5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -37,14 +37,12 @@ void mlir::spn::SLPVectorizationPass::runOnOperation() { auto computationType = function.getArguments().back().getType().dyn_cast().getElementType(); auto width = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - getOperation()->dump(); - auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), slp::UseBeforeDef); assert(!seeds.empty() && "couldn't find a seed!"); - slp::SLPGraph tree(seeds.front(), 3); + slp::SLPGraph graph(seeds.front(), 3); std::vector> vectors; - for (auto const& node_ptr : tree.getNodes()) { + for (auto const& node_ptr : graph.getNodes()) { for (size_t i = 0; i < node_ptr->numVectors(); ++i) { vectors.emplace_back(node_ptr->getVector(i)); } From 9701ef89c50f861273da26596b5f0b2f2b246cc9 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 21 Mar 2021 05:21:02 +0100 Subject: [PATCH 051/385] Code movement. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 39 +------------------ .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 32 ++++++++++++++- .../SLP/SLPVectorizationPass.cpp | 1 + 3 files changed, 34 insertions(+), 38 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index ca4eec7c..100ddc36 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -29,6 +29,8 @@ namespace mlir { std::vector> getNodes() const; + void dump() const; + private: void buildGraph(std::vector const& operations, node_t const& currentNode); @@ -147,43 +149,6 @@ namespace mlir { }); } - static void print(SLPGraph const& graph) { - llvm::dbgs() << "digraph debug_graph {\n"; - llvm::dbgs() << "rankdir = BT;\n"; - llvm::dbgs() << "node[shape=box];\n"; - for (auto const& entry : graph.operandsOf) { - printNode(entry.first.get()); - for (auto const& operand : entry.second) { - llvm::dbgs() << "node_" << entry.first.get() << "->" << "node_" << operand.get() << ";\n"; - } - } - llvm::dbgs() << "}\n"; - } - - /// For debugging purposes. - static void printNode(SLPNode const* node) { - llvm::dbgs() << "node_" << node << "[label=<\n"; - llvm::dbgs() - << "\t
\n"; - llvm::dbgs() << "\t\t\t\t" << operation->getName() << " (" << operation - << ")\n"; - llvm::dbgs() << "\t\t\t"; + llvm::dbgs() << "" << operation->getName() << " (" << operation + << ")"; + llvm::dbgs() << "
\n"; - for (size_t i = node->numVectors(); i-- > 0;) { - llvm::dbgs() << "\t\t\n"; - for (size_t j = 0; j < node->numLanes(); ++j) { - auto* operation = node->getOperation(j, i); - llvm::dbgs() << "\t\t\t"; - if (j < node->numLanes() - 1) { - llvm::dbgs() << ""; - } - llvm::dbgs() << "\n"; - } - llvm::dbgs() << "\t\t\n"; - } - llvm::dbgs() << "\t
"; - llvm::dbgs() << "" << operation->getName() << " (" << operation - << ")"; - llvm::dbgs() << "
\n"; - llvm::dbgs() << ">];\n"; - } - std::map> operandsOf; size_t const maxLookAhead; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index 2e61210f..efc448bc 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -14,7 +14,6 @@ SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{ auto const& currentNode = std::make_shared(seed); operandsOf[currentNode] = {}; buildGraph(seed, currentNode); - print(*this); } std::vector> SLPGraph::getNodes() const { @@ -248,3 +247,34 @@ int SLPGraph::getLookAheadScore(Operation* last, Operation* candidate, size_t co } return scoreSum; } + +void SLPGraph::dump() const { + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + for (auto const& entry : operandsOf) { + auto const* node = entry.first.get(); + llvm::dbgs() << "node_" << node << "[label=<\n"; + llvm::dbgs() << "\t\n"; + for (size_t i = node->numVectors(); i-- > 0;) { + llvm::dbgs() << "\t\t\n"; + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto* operation = node->getOperation(lane, i); + llvm::dbgs() << "\t\t\t"; + if (lane < node->numLanes() - 1) { + llvm::dbgs() << ""; + } + llvm::dbgs() << "\n"; + } + llvm::dbgs() << "\t\t\n"; + } + llvm::dbgs() << "\t
"; + llvm::dbgs() << "" << operation->getName() << " (" << operation << ")"; + llvm::dbgs() << "
\n"; + llvm::dbgs() << ">];\n"; + for (auto const& operand : entry.second) { + llvm::dbgs() << "node_" << entry.first.get() << "->" << "node_" << operand.get() << ";\n"; + } + } + llvm::dbgs() << "}\n"; +} \ No newline at end of file diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index ca2f9eb5..da102161 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -41,6 +41,7 @@ void mlir::spn::SLPVectorizationPass::runOnOperation() { assert(!seeds.empty() && "couldn't find a seed!"); slp::SLPGraph graph(seeds.front(), 3); + graph.dump(); std::vector> vectors; for (auto const& node_ptr : graph.getNodes()) { for (size_t i = 0; i < node_ptr->numVectors(); ++i) { From 937d776b7110a30ae129784dae3884f79a193ae6 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 22 Mar 2021 02:03:00 +0100 Subject: [PATCH 052/385] SLP graph & node refactoring. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 118 +-------- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 9 +- .../Vectorization/SLP/SLPVectorizationPass.h | 4 + .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 240 ++++++++++++------ .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 29 +++ .../SLP/SLPVectorizationPass.cpp | 24 +- 6 files changed, 225 insertions(+), 199 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 100ddc36..9eff0e9a 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -21,21 +21,19 @@ namespace mlir { class SLPGraph { - typedef std::shared_ptr node_t; - public: SLPGraph(seed_t const& seed, size_t const& maxLookAhead); - std::vector> getNodes() const; + SLPNode& getRoot(); void dump() const; private: - void buildGraph(std::vector const& operations, node_t const& currentNode); + void buildGraph(std::vector const& operations, SLPNode& currentNode); - void reorderOperands(node_t const& multinode); + void reorderOperands(SLPNode const& multinode); std::pair getBest(Mode const& mode, Operation* last, @@ -43,116 +41,10 @@ namespace mlir { int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; - static bool areConsecutive(Operation* op1, Operation* op2) { - auto load1 = dyn_cast(op1); - auto load2 = dyn_cast(op2); - if (!load1 || !load2) { - return false; - } - if (load1.indices().size() != load2.indices().size()) { - return false; - } - for (size_t i = 0; i < load1.indices().size(); ++i) { - auto const1 = load1.indices()[i].getDefiningOp(); - auto const2 = load2.indices()[i].getDefiningOp(); - if (!const1 || !const2) { - return false; - } - auto index1 = const1.value().dyn_cast(); - auto index2 = const2.value().dyn_cast(); - if (!index1 || !index2) { - return false; - } - if (i == load1.indices().size() - 1) { - return index1.getInt() == index2.getInt() - 1; - } else if (index1.getInt() != index2.getInt()) { - return false; - } - } - return false; - } - - /// Checks if the given operations are vectorizable. - /// \param operations The potentially vectorizable operations. - /// \return True if the operations can be vectorized, otherwise false. - static bool vectorizable(std::vector const& operations) { - for (size_t i = 0; i < operations.size(); ++i) { - auto* op = operations[i]; - if (!op->hasTrait() || (i > 0 && op->getName() != operations.front()->getName())) { - return false; - } - } - return true; - } - - static bool commutative(std::vector const& operations) { - return std::all_of(std::begin(operations), std::end(operations), [&](Operation* op) { - if (op->hasTrait()) { - return true; - } - return dyn_cast(op) || dyn_cast(op); - }); - } - - static bool escapesMultinode(Operation* operation) { - // TODO: check if some intermediate, temporary value of a multinode is used outside of it - assert(operation); - return false; - } - - static std::vector getOperands(Operation* operation) { - std::vector operands; - operands.reserve(operation->getNumOperands()); - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); - } - return operands; - } - - static std::vector> getOperands(std::vector const& operations) { - std::vector> allOperands; - allOperands.reserve(operations.size()); - for (auto* operation : operations) { - allOperands.emplace_back(getOperands(operation)); - } - return allOperands; - } - - static std::vector> getOperandsVectorized(std::vector const& operations) { - for (auto* operation : operations) { - assert(operation->getNumOperands() == operations.front()->getNumOperands() - && "operations must have same numbers of operands"); - } - std::vector> allOperands; - for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - std::vector operands; - operands.reserve(operations.size()); - for (auto* operation : operations) { - operands.emplace_back(operation->getOperand(i).getDefiningOp()); - } - allOperands.emplace_back(operands); - } - return allOperands; - } - - static void sortByOpcode(std::vector& operations, - Optional const& smallestOpcode) { - std::sort(std::begin(operations), std::end(operations), [&](Operation* lhs, Operation* rhs) { - if (smallestOpcode.hasValue()) { - if (lhs->getName() == smallestOpcode.getValue()) { - return rhs->getName() != smallestOpcode.getValue(); - } else if (rhs->getName() == smallestOpcode.getValue()) { - return false; - } - } - return lhs->getName().getStringRef() < rhs->getName().getStringRef(); - }); - } - - std::map> operandsOf; - size_t const maxLookAhead; + SLPNode root; + }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index e8019a52..0b66c84a 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -18,7 +18,6 @@ namespace mlir { public: - SLPNode() = delete; explicit SLPNode(std::vector const& operations); void addOperationToLane(Operation* operation, size_t const& lane); @@ -26,6 +25,7 @@ namespace mlir { void setOperation(size_t lane, size_t index, Operation* operation); bool isMultiNode() const; + bool isUniform() const; bool areRootOfNode(std::vector const& operations) const; size_t numLanes() const; @@ -33,6 +33,11 @@ namespace mlir { std::vector getVector(size_t index) const; + SLPNode& addOperand(std::vector const& operations); + SLPNode& getOperand(size_t index) const; + std::vector getOperands() const; + size_t numOperands() const; + friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { return std::tie(lhs.lanes) == std::tie(rhs.lanes); } @@ -48,6 +53,8 @@ namespace mlir { /// ones in the source code. std::vector> lanes; + std::vector> operandNodes; + }; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 414a8455..30f8bfdc 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -8,6 +8,7 @@ #include "mlir/Pass/Pass.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "SLPGraph.h" namespace mlir { namespace spn { @@ -23,6 +24,9 @@ namespace mlir { private: + void transform(slp::SLPGraph& graph); + Operation* transform(slp::SLPNode& node, bool isRoot); + /// For debugging purposes. static void printSPN(std::vector const& operations) { std::vector nodes; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index efc448bc..fb88a8de 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -5,34 +5,169 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" #include +#include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::slp; -SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : operandsOf{}, maxLookAhead{maxLookAhead} { - auto const& currentNode = std::make_shared(seed); - operandsOf[currentNode] = {}; - buildGraph(seed, currentNode); +SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : maxLookAhead{maxLookAhead}, root{seed} { + buildGraph(seed, root); } -std::vector> SLPGraph::getNodes() const { - std::vector> nodes; - for (auto const& entry : operandsOf) { - nodes.emplace_back(entry.first); - for (auto const& operand : entry.second) { - if (std::find(std::begin(nodes), std::end(nodes), operand) == std::end(nodes)) { - nodes.emplace_back(operand); +SLPNode& SLPGraph::getRoot() { + return root; +} + +void SLPGraph::dump() const { + + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + + std::queue worklist; + worklist.emplace(&root); + + while (!worklist.empty()) { + auto const* node = worklist.front(); + worklist.pop(); + + llvm::dbgs() << "node_" << node << "[label=<\n"; + llvm::dbgs() << "\t\n"; + for (size_t i = node->numVectors(); i-- > 0;) { + llvm::dbgs() << "\t\t\n"; + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto* operation = node->getOperation(lane, i); + llvm::dbgs() << "\t\t\t"; + if (lane < node->numLanes() - 1) { + llvm::dbgs() << ""; + } + llvm::dbgs() << "\n"; } + llvm::dbgs() << "\t\t\n"; + } + llvm::dbgs() << "\t
"; + llvm::dbgs() << "" << operation->getName() << " (" << operation << ")"; + llvm::dbgs() << "
\n"; + llvm::dbgs() << ">];\n"; + + for (auto const& operand : node->getOperands()) { + llvm::dbgs() << "node_" << node << "->" << "node_" << operand << ";\n"; + worklist.emplace(operand); } } - return nodes; + llvm::dbgs() << "}\n"; } -void SLPGraph::buildGraph(std::vector const& operations, node_t const& currentNode) { - if (std::intptr_t(operations.front()) == 0x5ebd28) { - llvm::dbgs(); +// Some helper functions in an anonymous namespace. +namespace { + + bool areConsecutive(Operation* op1, Operation* op2) { + auto load1 = dyn_cast(op1); + auto load2 = dyn_cast(op2); + if (!load1 || !load2) { + return false; + } + if (load1.indices().size() != load2.indices().size()) { + return false; + } + for (size_t i = 0; i < load1.indices().size(); ++i) { + auto const1 = load1.indices()[i].getDefiningOp(); + auto const2 = load2.indices()[i].getDefiningOp(); + if (!const1 || !const2) { + return false; + } + auto index1 = const1.value().dyn_cast(); + auto index2 = const2.value().dyn_cast(); + if (!index1 || !index2) { + return false; + } + if (i == load1.indices().size() - 1) { + return index1.getInt() == index2.getInt() - 1; + } else if (index1.getInt() != index2.getInt()) { + return false; + } + } + return false; + } + + bool vectorizable(std::vector const& operations) { + for (size_t i = 0; i < operations.size(); ++i) { + auto* op = operations[i]; + if (!op->hasTrait() || (i > 0 && op->getName() != operations.front()->getName())) { + return false; + } + } + return true; } + + bool commutative(std::vector const& operations) { + return std::all_of(std::begin(operations), std::end(operations), [&](Operation* op) { + if (op->hasTrait()) { + return true; + } + return dyn_cast(op) || dyn_cast(op); + }); + } + + bool escapesMultinode(Operation* operation) { + // TODO: check if some intermediate, temporary value of a multinode is used outside of it + assert(operation); + return false; + } + + std::vector getOperands(Operation* operation) { + std::vector operands; + operands.reserve(operation->getNumOperands()); + for (auto operand : operation->getOperands()) { + operands.emplace_back(operand.getDefiningOp()); + } + return operands; + } + + std::vector> getOperands(std::vector const& operations) { + std::vector> allOperands; + allOperands.reserve(operations.size()); + for (auto* operation : operations) { + allOperands.emplace_back(getOperands(operation)); + } + return allOperands; + } + + std::vector> getOperandsVectorized(std::vector const& operations) { + for (auto* operation : operations) { + assert(operation->getNumOperands() == operations.front()->getNumOperands() + && "operations must have same numbers of operands"); + } + std::vector> allOperands; + for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { + std::vector operands; + operands.reserve(operations.size()); + for (auto* operation : operations) { + operands.emplace_back(operation->getOperand(i).getDefiningOp()); + } + allOperands.emplace_back(operands); + } + return allOperands; + } + + void sortByOpcode(std::vector& operations, + Optional const& smallestOpcode) { + std::sort(std::begin(operations), std::end(operations), [&](Operation* lhs, Operation* rhs) { + if (smallestOpcode.hasValue()) { + if (lhs->getName() == smallestOpcode.getValue()) { + return rhs->getName() != smallestOpcode.getValue(); + } else if (rhs->getName() == smallestOpcode.getValue()) { + return false; + } + } + return lhs->getName().getStringRef() < rhs->getName().getStringRef(); + }); + } + +} + +void SLPGraph::buildGraph(std::vector const& operations, SLPNode& currentNode) { // Stop growing graph if (!vectorizable(operations)) { return; @@ -50,27 +185,25 @@ void SLPGraph::buildGraph(std::vector const& operations, node_t cons if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i]); })) { - for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - currentNode->addOperationToLane(allOperands[lane][i], lane); + for (size_t lane = 0; lane < currentNode.numLanes(); ++lane) { + currentNode.addOperationToLane(allOperands[lane][i], lane); } - buildGraph(currentNode->getVector(currentNode->numVectors() - 1), currentNode); + buildGraph(currentNode.getVector(currentNode.numVectors() - 1), currentNode); } else { // TODO: here might be a good place to implement variable vector width std::vector operandOperations; - for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + for (size_t lane = 0; lane < currentNode.numLanes(); ++lane) { operandOperations.emplace_back(allOperands[lane][i]); } - auto const& operandNode = std::make_shared(operandOperations); - operandsOf[currentNode].emplace_back(operandNode); - operandsOf[operandNode] = {}; + currentNode.addOperand(operandOperations); } } // B. Normal Mode: Finished building multi-node - if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { + if (currentNode.isMultiNode() && currentNode.areRootOfNode(operations)) { reorderOperands(currentNode); - for (auto& operandNode : operandsOf.at(currentNode)) { - buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); + for (auto* operandNode : currentNode.getOperands()) { + buildGraph(operandNode->getVector(operandNode->numVectors() - 1), *operandNode); } } } @@ -85,30 +218,26 @@ void SLPGraph::buildGraph(std::vector const& operations, node_t cons } } for (auto const& operandVector : getOperandsVectorized(operations)) { - auto const& operandNode = std::make_shared(operandVector); - operandsOf[currentNode].emplace_back(operandNode); - operandsOf[operandNode] = {}; - buildGraph(operandVector, operandNode); + buildGraph(operandVector, currentNode.addOperand(operandVector)); } } } -void SLPGraph::reorderOperands(node_t const& multinode) { - assert(multinode->isMultiNode()); - auto const& numOperands = operandsOf.at(multinode).size(); - std::vector> finalOrder{multinode->numLanes()}; - std::vector> mode{multinode->numLanes()}; +void SLPGraph::reorderOperands(SLPNode const& multinode) { + auto const& numOperands = multinode.numOperands(); + std::vector> finalOrder{multinode.numLanes()}; + std::vector> mode{multinode.numLanes()}; // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { - auto operation = operandsOf.at(multinode)[i]->getOperation(0, 0); + auto operation = multinode.getOperand(i).getOperation(0, 0); finalOrder[0].emplace_back(operation); mode[0].emplace_back(modeFromOperation(operation)); } // 2. For all other lanes, find best candidate - for (size_t lane = 1; lane < multinode->numLanes(); ++lane) { + for (size_t lane = 1; lane < multinode.numLanes(); ++lane) { std::vector candidates; - for (auto const& operand : operandsOf.at(multinode)) { + for (auto const& operand : multinode.getOperands()) { candidates.emplace_back(operand->getOperation(lane, 0)); } // Look for a matching candidate @@ -144,9 +273,9 @@ void SLPGraph::reorderOperands(node_t const& multinode) { } } } - for (size_t operandIndex = 0; operandIndex < operandsOf.at(multinode).size(); ++operandIndex) { - for (size_t lane = 0; lane < multinode->numLanes(); ++lane) { - operandsOf.at(multinode)[operandIndex]->setOperation(lane, 0, finalOrder[lane][operandIndex]); + for (size_t operandIndex = 0; operandIndex < multinode.numOperands(); ++operandIndex) { + for (size_t lane = 0; lane < multinode.numLanes(); ++lane) { + multinode.getOperand(operandIndex).setOperation(lane, 0, finalOrder[lane][operandIndex]); } } } @@ -247,34 +376,3 @@ int SLPGraph::getLookAheadScore(Operation* last, Operation* candidate, size_t co } return scoreSum; } - -void SLPGraph::dump() const { - llvm::dbgs() << "digraph debug_graph {\n"; - llvm::dbgs() << "rankdir = BT;\n"; - llvm::dbgs() << "node[shape=box];\n"; - for (auto const& entry : operandsOf) { - auto const* node = entry.first.get(); - llvm::dbgs() << "node_" << node << "[label=<\n"; - llvm::dbgs() << "\t\n"; - for (size_t i = node->numVectors(); i-- > 0;) { - llvm::dbgs() << "\t\t\n"; - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto* operation = node->getOperation(lane, i); - llvm::dbgs() << "\t\t\t"; - if (lane < node->numLanes() - 1) { - llvm::dbgs() << ""; - } - llvm::dbgs() << "\n"; - } - llvm::dbgs() << "\t\t\n"; - } - llvm::dbgs() << "\t
"; - llvm::dbgs() << "" << operation->getName() << " (" << operation << ")"; - llvm::dbgs() << "
\n"; - llvm::dbgs() << ">];\n"; - for (auto const& operand : entry.second) { - llvm::dbgs() << "node_" << entry.first.get() << "->" << "node_" << operand.get() << ";\n"; - } - } - llvm::dbgs() << "}\n"; -} \ No newline at end of file diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index b9328bdd..1ee78aaf 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -33,6 +33,12 @@ bool SLPNode::isMultiNode() const { return lanes.front().size() > 1; } +bool SLPNode::isUniform() const { + return std::all_of(std::begin(lanes), std::end(lanes), [&](auto const& operations) { + return operations[0]->getName() == lanes[0][0]->getName(); + }); +} + bool SLPNode::areRootOfNode(std::vector const& operations) const { for (size_t lane = 0; lane < numLanes(); ++lane) { if (operations[lane] != lanes[lane].front()) { @@ -58,3 +64,26 @@ std::vector SLPNode::getVector(size_t index) const { } return vector; } + +SLPNode& SLPNode::addOperand(std::vector const& operations) { + operandNodes.emplace_back(std::make_unique(operations)); + return *operandNodes.back(); +} + +SLPNode& SLPNode::getOperand(size_t index) const { + assert(index <= operandNodes.size()); + return *operandNodes[index]; +} + +std::vector SLPNode::getOperands() const { + std::vector operands; + operands.reserve(operands.size()); + for (auto const& operand : operandNodes) { + operands.emplace_back(operand.get()); + } + return operands; +} + +size_t SLPNode::numOperands() const { + return operandNodes.size(); +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index da102161..721dc1fd 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -41,22 +41,18 @@ void mlir::spn::SLPVectorizationPass::runOnOperation() { assert(!seeds.empty() && "couldn't find a seed!"); slp::SLPGraph graph(seeds.front(), 3); - graph.dump(); - std::vector> vectors; - for (auto const& node_ptr : graph.getNodes()) { - for (size_t i = 0; i < node_ptr->numVectors(); ++i) { - vectors.emplace_back(node_ptr->getVector(i)); - } - } - /* - OwningRewritePatternList patterns; - slp::populateVectorizationPatterns(patterns, &getContext(), vectors); - auto op = getOperation(); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - applyPatternsAndFoldGreedily(op, frozenPatterns); - */ + transform(graph); + +} +void mlir::spn::SLPVectorizationPass::transform(slp::SLPGraph& graph) { + graph.dump(); + transform(graph.getRoot(), true); +} +mlir::Operation* mlir::spn::SLPVectorizationPass::transform(slp::SLPNode& node, bool isRoot) { + bool isMixed = false; + return node.getVector(0).front(); } std::unique_ptr mlir::spn::createSLPVectorizationPass() { From 36319424d77e33a30b1258987cdce27cf9f35a3e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 22 Mar 2021 23:18:58 +0100 Subject: [PATCH 053/385] Some refactoring. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 36 +++--- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.h | 30 +++-- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 63 +++++----- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 43 ++++--- .../Vectorization/SLP/SLPVectorizationPass.h | 66 +--------- .../SLP/SLPVectorizationPatterns.h | 53 ++------ .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 5 +- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 3 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 1 - .../Vectorization/SLP/SLPSeeding.cpp | 3 +- .../SLP/SLPVectorizationPass.cpp | 117 ++++++++++++++++-- .../SLP/SLPVectorizationPatterns.cpp | 74 ++--------- 12 files changed, 212 insertions(+), 282 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 9eff0e9a..6b3256fe 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -7,46 +7,40 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H #include "mlir/IR/Operation.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "LoSPN/LoSPNTraits.h" #include "SLPMode.h" #include "SLPNode.h" #include "SLPSeeding.h" -#include - namespace mlir { namespace spn { - namespace slp { - class SLPGraph { + class SLPGraph { - public: + public: - SLPGraph(seed_t const& seed, size_t const& maxLookAhead); + SLPGraph(seed_t const& seed, size_t const& maxLookAhead); - SLPNode& getRoot(); + SLPNode& getRoot(); - void dump() const; + void dump() const; - private: + private: - void buildGraph(std::vector const& operations, SLPNode& currentNode); + void buildGraph(std::vector const& operations, SLPNode& currentNode); - void reorderOperands(SLPNode const& multinode); + void reorderOperands(SLPNode const& multinode); - std::pair getBest(Mode const& mode, - Operation* last, - std::vector& candidates) const; + std::pair getBest(Mode const& mode, + Operation* last, + std::vector& candidates) const; - int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; + int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; - size_t const maxLookAhead; + size_t const maxLookAhead; - SLPNode root; + SLPNode root; - }; - } + }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h index c829b394..1afa8aeb 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h @@ -6,28 +6,26 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPMODE_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPMODE_H -#include "LoSPN/LoSPNOps.h" +#include "mlir/IR/Operation.h" namespace mlir { namespace spn { - namespace slp { - enum Mode { - // look for a constant - CONST, - // look for a consecutive load to that in the previous lane - LOAD, - // look for an operation of the same opcode - OPCODE, - // look for the exact same operation - SPLAT, - // vectorization has failed, give higher priority to others - FAILED - }; + enum Mode { + // look for a constant + CONST, + // look for a consecutive load to that in the previous lane + LOAD, + // look for an operation of the same opcode + OPCODE, + // look for the exact same operation + SPLAT, + // vectorization has failed, give higher priority to others + FAILED + }; - Mode modeFromOperation(Operation const* operation); + Mode modeFromOperation(Operation const* operation); - } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 0b66c84a..ee7b8f59 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -7,57 +7,52 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPNODE_H #include "mlir/IR/Operation.h" -#include "mlir/IR/OpDefinition.h" -#include "llvm/ADT/SmallVector.h" namespace mlir { namespace spn { - namespace slp { - class SLPNode { + class SLPNode { - public: + public: - explicit SLPNode(std::vector const& operations); + explicit SLPNode(std::vector const& operations); - void addOperationToLane(Operation* operation, size_t const& lane); - Operation* getOperation(size_t lane, size_t index) const; - void setOperation(size_t lane, size_t index, Operation* operation); + void addOperationToLane(Operation* operation, size_t const& lane); + Operation* getOperation(size_t lane, size_t index) const; + void setOperation(size_t lane, size_t index, Operation* operation); - bool isMultiNode() const; - bool isUniform() const; - bool areRootOfNode(std::vector const& operations) const; + bool isMultiNode() const; + bool isUniform() const; + bool areRootOfNode(std::vector const& operations) const; - size_t numLanes() const; - size_t numVectors() const; + size_t numLanes() const; + size_t numVectors() const; - std::vector getVector(size_t index) const; + std::vector getVector(size_t index) const; - SLPNode& addOperand(std::vector const& operations); - SLPNode& getOperand(size_t index) const; - std::vector getOperands() const; - size_t numOperands() const; + SLPNode& addOperand(std::vector const& operations); + SLPNode& getOperand(size_t index) const; + std::vector getOperands() const; + size_t numOperands() const; - friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.lanes) == std::tie(rhs.lanes); - } + friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { + return std::tie(lhs.lanes) == std::tie(rhs.lanes); + } - friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { - return !(lhs == rhs); - } + friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { + return !(lhs == rhs); + } - private: + private: - /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation - /// if this node is a multinode. Operations with smaller indices inside a lane are executed "after" the higher - /// ones in the source code. - std::vector> lanes; + /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation + /// if this node is a multinode. Operations with smaller indices inside a lane are executed "after" the higher + /// ones in the source code. + std::vector> lanes; - std::vector> operandNodes; + std::vector> operandNodes; - }; - - } + }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index 43d89569..7e53a526 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -6,41 +6,40 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H -#include "LoSPN/LoSPNOps.h" +#include "mlir/IR/Operation.h" +#include namespace mlir { namespace spn { - namespace slp { - typedef std::vector seed_t; + typedef std::vector seed_t; - enum SearchMode { - /// - DefBeforeUse, - /// - UseBeforeDef, - /// TODO? - Chain - }; + enum SearchMode { + /// + DefBeforeUse, + /// + UseBeforeDef, + /// TODO? + Chain + }; - class SeedAnalysis { + class SeedAnalysis { - public: + public: - explicit SeedAnalysis(Operation* rootOp); + explicit SeedAnalysis(Operation* rootOp); - std::map getOpDepths() const; + std::map getOpDepths() const; - std::vector getSeeds(size_t const& op, - std::map const& depthsOf, - SearchMode const& mode) const; + std::vector getSeeds(size_t const& op, + std::map const& depthsOf, + SearchMode const& mode) const; - private: + private: - Operation* rootOp; + Operation* rootOp; - }; - } + }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 30f8bfdc..68dbd57a 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -6,8 +6,8 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H +#include "mlir/IR/Operation.h" #include "mlir/Pass/Pass.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "SLPGraph.h" namespace mlir { @@ -17,73 +17,15 @@ namespace mlir { public: - explicit SLPVectorizationPass() = default; - protected: void runOnOperation() override; private: - void transform(slp::SLPGraph& graph); - Operation* transform(slp::SLPNode& node, bool isRoot); - - /// For debugging purposes. - static void printSPN(std::vector const& operations) { - std::vector nodes; - std::vector> edges; - - std::stack worklist; - for (auto& op : operations) { - worklist.push(op); - } - - while (!worklist.empty()) { - - auto op = worklist.top(); - worklist.pop(); - - if (std::find(std::begin(nodes), std::end(nodes), op) == nodes.end()) { - nodes.emplace_back(op); - for (size_t i = 0; i < op->getNumOperands(); ++i) { - auto const& operand = op->getOperand(i); - if (operand.getDefiningOp() != nullptr) { - edges.emplace_back(std::make_tuple(op, operand.getDefiningOp(), i)); - worklist.push(operand.getDefiningOp()); - } - } - } - } - - llvm::dbgs() << "digraph debug_graph {\n"; - llvm::dbgs() << "rankdir = BT;\n"; - llvm::dbgs() << "node[shape=box];\n"; - for (auto& op : nodes) { - printOperation(op); - } - for (auto& edge : edges) { - printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); - } - llvm::dbgs() << "}\n"; - } - - /// For debugging purposes. - static void printOperation(Operation* op) { - llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; - if (auto constantOp = dyn_cast(op)) { - if (constantOp.value().getType().isIntOrIndex()) { - llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); - } else if (constantOp.value().getType().isIntOrFloat()) { - llvm::dbgs() << "\\nvalue: " - << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); - } - } - llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; - } + void transform(SLPGraph& graph); + Operation* transform(SLPNode& node, bool isRoot); - /// For debugging purposes. - static void printEdge(Operation* src, Operation* dst, size_t index) { - llvm::dbgs() << "node_" << src << " -> node_" << dst << "[label=\"" << std::to_string(index) << "\"];\n"; - } + std::map>> extractOps; }; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index dc439242..7f8f77e9 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -6,60 +6,23 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H -#include - #include "mlir/Transforms/DialectConversion.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "LoSPN/LoSPNOps.h" -#include "LoSPN/LoSPNDialect.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" namespace mlir { namespace spn { - namespace low { - namespace slp { - - template - class VectorizationPattern : public mlir::OpRewritePattern { - public: - VectorizationPattern(MLIRContext* context, std::vector> const& vectors) - : OpRewritePattern(context, 1), vectors{vectors} { - for (size_t i = 0; i < vectors.size(); ++i) { - for (auto* op : vectors[i]) { - vectorIndices[op].emplace_back(i); - } - } - } - protected: - - bool isAssignedToVector(Operation* op) const { - return vectorIndices.count(op); - } - - bool isVectorMixed(std::vector vector) const { - return std::any_of(std::begin(vector), std::end(vector), [&](Operation* op) { - return op->getName() != vector.front()->getName(); - }); - } - - std::map> vectorIndices; - std::vector> const& vectors; - }; - /// Pattern for transforming SPN sum ops to a vectorized version. - struct SumOpVectorization : public VectorizationPattern { + struct VectorizeTask : OpRewritePattern { - using VectorizationPattern::VectorizationPattern; + using OpRewritePattern::OpRewritePattern; - LogicalResult matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const override; + explicit VectorizeTask(MLIRContext* context, SLPGraph& graph); - }; + LogicalResult matchAndRewrite(FuncOp op, PatternRewriter& rewriter) const override; - static void populateVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - std::vector> const& vectors) { - patterns.insert(context, vectors); - } - } - } + private: + SLPGraph& graph; + }; } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index fb88a8de..e9bba80f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -3,13 +3,14 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "llvm/Support/Debug.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" #include #include using namespace mlir; using namespace mlir::spn; -using namespace mlir::spn::slp; SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : maxLookAhead{maxLookAhead}, root{seed} { buildGraph(seed, root); @@ -90,7 +91,7 @@ namespace { } return false; } - + bool vectorizable(std::vector const& operations) { for (size_t i = 0; i < operations.size(); ++i) { auto* op = operations[i]; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp index 4263d620..6bf645fa 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp @@ -8,9 +8,8 @@ using namespace mlir; using namespace mlir::spn; -using namespace mlir::spn::slp; -Mode slp::modeFromOperation(const Operation* operation) { +Mode mlir::spn::modeFromOperation(const Operation* operation) { if (dyn_cast(operation)) { return CONST; } else if (dyn_cast(operation)) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 1ee78aaf..d23c482a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -7,7 +7,6 @@ using namespace mlir; using namespace mlir::spn; -using namespace mlir::spn::slp; SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()} { for (size_t i = 0; i < operations.size(); ++i) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 3706fb1c..f5131211 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -4,10 +4,11 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" +#include "llvm/ADT/StringMap.h" +#include "mlir/Dialect/Traits.h" using namespace mlir; using namespace mlir::spn; -using namespace mlir::spn::slp; SeedAnalysis::SeedAnalysis(Operation* rootOp) : rootOp{rootOp} {} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 721dc1fd..2ddc07cd 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -3,16 +3,76 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // +#include "LoSPN/LoSPNDialect.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" -#include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" -#include "LoSPNtoCPU/StructurePatterns.h" -#include "LoSPNtoCPU/NodePatterns.h" +#include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Vector/VectorOps.h" -#include "mlir/Dialect/Linalg/IR/LinalgOps.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/Transforms/DialectConversion.h" + +// Anonymous namespace for helper functions. +namespace { + + /// For debugging purposes. + void printOperation(mlir::Operation* op) { + llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; + if (auto constantOp = llvm::dyn_cast(op)) { + if (constantOp.value().getType().isIntOrIndex()) { + llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); + } else if (constantOp.value().getType().isIntOrFloat()) { + llvm::dbgs() << "\\nvalue: " + << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); + } + } + llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; + } + + /// For debugging purposes. + void printEdge(mlir::Operation* src, mlir::Operation* dst, size_t index) { + llvm::dbgs() << "node_" << src << " -> node_" << dst << "[label=\"" << std::to_string(index) << "\"];\n"; + } + + /// For debugging purposes. + void printSeedTree(std::vector const& operations) { + std::vector nodes; + std::vector> edges; + + std::stack worklist; + for (auto& op : operations) { + worklist.push(op); + } + + while (!worklist.empty()) { + + auto op = worklist.top(); + worklist.pop(); + + if (std::find(std::begin(nodes), std::end(nodes), op) == nodes.end()) { + nodes.emplace_back(op); + for (size_t i = 0; i < op->getNumOperands(); ++i) { + auto const& operand = op->getOperand(i); + if (operand.getDefiningOp() != nullptr) { + edges.emplace_back(std::make_tuple(op, operand.getDefiningOp(), i)); + worklist.push(operand.getDefiningOp()); + } + } + } + } + + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + for (auto& op : nodes) { + printOperation(op); + } + for (auto& edge : edges) { + printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); + } + llvm::dbgs() << "}\n"; + } +} void mlir::spn::SLPVectorizationPass::runOnOperation() { llvm::StringRef funcName = getOperation().getName(); @@ -32,26 +92,59 @@ void mlir::spn::SLPVectorizationPass::runOnOperation() { auto function = getOperation(); - auto& seedAnalysis = getAnalysis(); + auto& seedAnalysis = getAnalysis(); auto computationType = function.getArguments().back().getType().dyn_cast().getElementType(); auto width = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), slp::UseBeforeDef); + auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), SearchMode::UseBeforeDef); assert(!seeds.empty() && "couldn't find a seed!"); - slp::SLPGraph graph(seeds.front(), 3); + SLPGraph graph(seeds.front(), 3); transform(graph); } -void mlir::spn::SLPVectorizationPass::transform(slp::SLPGraph& graph) { +void mlir::spn::SLPVectorizationPass::transform(SLPGraph& graph) { graph.dump(); - transform(graph.getRoot(), true); + auto* rootOperation = transform(graph.getRoot(), true); + assert(false); + // Update users of vector operations that aren't contained in the graph. + for (auto const& entry : extractOps) { + for (auto const& extractOpData : entry.second) { + extractOpData.first->setOperand(extractOpData.second, nullptr); + } + } } -mlir::Operation* mlir::spn::SLPVectorizationPass::transform(slp::SLPNode& node, bool isRoot) { +mlir::Operation* mlir::spn::SLPVectorizationPass::transform(SLPNode& node, bool isRoot) { + + for (size_t vectorIndex = 0; vectorIndex < node.numVectors(); ++vectorIndex) { + if (node.isUniform()) { + + for (size_t lane = 0; lane < node.numLanes(); ++lane) { + auto* operation = node.getOperation(lane, vectorIndex); + + auto type = VectorType::get(node.numLanes(), operation->getResult(0).getType()); + auto operands = llvm::SmallVector{}; + auto* vectorOperation = Operation::create(operation->getLoc(), + operation->getName(), + type, + operands, + operation->getAttrs(), + operation->getSuccessors(), + operation->getNumRegions()); + + operation->dropAllUses(); + + } + } else { + + } + } bool isMixed = false; + assert(false); + extractOps[nullptr]; return node.getVector(0).front(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 278e5a3d..4b2c9527 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -8,74 +8,20 @@ #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Vector/VectorTransforms.h" -mlir::LogicalResult mlir::spn::low::slp::SumOpVectorization::matchAndRewrite(mlir::spn::low::SPNAdd op, - mlir::PatternRewriter& rewriter) const { +using namespace mlir; +using namespace mlir::spn; - if (!isAssignedToVector(op.getOperation())) { - return failure(); - } - - auto a = op.getOperation(); - - for (auto const& index : vectorIndices.at(op.getOperation())) { - auto const& vector = vectors[index]; - Type vectorType = VectorType::get(vector.size(), op.getType()); - Type memrefType = MemRefType::get(vector.size(), op.getType()); - ValueRange range; - rewriter.create(op.getLoc(), memrefType, range); - op.getOperation()->getBlock()->dump(); - } - /* - if (isVectorMixed(vector)) { - OpBuilder builder(op.getContext()); - builder.setInsertionPoint(op); - llvm::SmallVector values; - values.reserve(vector.size()); - for (size_t i = 0; i < vector.size(); ++i) { - values[i] = vector[i]->getResult(0); - } - //DenseElementsAttr::get(vectorType, llvm::ArrayRef{values}); - } - - for (size_t i = 0; i < n; ++i) { - indices[i] = dyn_cast(vector[i]).index(); - means[i] = dyn_cast(vector[i]).mean().convertToDouble(); - stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); - indices[i].dump(); - values[i] = dyn_cast(vector[i]).getOperand(); - } +LogicalResult VectorizeTask::matchAndRewrite(FuncOp op, + PatternRewriter& rewriter) const { - auto t = rewriter.create(op.getLoc(), - op.index(), - llvm::ArrayRef(means, n), - llvm::ArrayRef(stddevs, n)); - ValueRange valueRange{}; - rewriter.replaceOp(t.getOperation(), {}); - t.getOperation()->dump(); - for (size_t i = 0; i < vector.size(); ++i) { - values[i] = vector[i]->getResult(0); - } - //DenseElementsAttr::get(vectorType, llvm::ArrayRef{values}); - } - - for (size_t i = 0; i < n; ++i) { - indices[i] = dyn_cast(vector[i]).index(); - means[i] = dyn_cast(vector[i]).mean().convertToDouble(); - stddevs[i] = dyn_cast(vector[i]).stddev().convertToDouble(); - indices[i].dump(); - values[i] = dyn_cast(vector[i]).getOperand(); + if (!op->getName().getStringRef().contains("task_")) { + return failure(); } + //op->replaceUsesOfWith(); - x = x - 1; -} else { - -} -for (auto const& gaussianOp : vector) { - rewriter.eraseOp(gaussianOp); -} + return success(); } +VectorizeTask::VectorizeTask(MLIRContext* context, + SLPGraph& graph) : OpRewritePattern(context), graph{graph} { } - */ - return success(); -} \ No newline at end of file From 505f9574bb6259e1cc0a4d624fac3ee0be65ed32 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 22 Mar 2021 23:54:21 +0100 Subject: [PATCH 054/385] Namespace changes. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 34 +++++----- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.h | 30 +++++---- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 62 ++++++++++--------- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 42 +++++++------ .../Vectorization/SLP/SLPVectorizationPass.h | 23 ++++--- .../SLP/SLPVectorizationPatterns.h | 18 +++--- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 4 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 1 + .../Vectorization/SLP/SLPSeeding.cpp | 2 +- .../SLP/SLPVectorizationPass.cpp | 11 ++-- .../SLP/SLPVectorizationPatterns.cpp | 8 +-- 12 files changed, 130 insertions(+), 107 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 6b3256fe..088cf419 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -13,34 +13,38 @@ namespace mlir { namespace spn { + namespace low { + namespace slp { - class SLPGraph { + class SLPGraph { - public: + public: - SLPGraph(seed_t const& seed, size_t const& maxLookAhead); + SLPGraph(seed_t const& seed, size_t const& maxLookAhead); - SLPNode& getRoot(); + SLPNode& getRoot(); - void dump() const; + void dump() const; - private: + private: - void buildGraph(std::vector const& operations, SLPNode& currentNode); + void buildGraph(std::vector const& operations, SLPNode& currentNode); - void reorderOperands(SLPNode const& multinode); + void reorderOperands(SLPNode const& multinode); - std::pair getBest(Mode const& mode, - Operation* last, - std::vector& candidates) const; + std::pair getBest(Mode const& mode, + Operation* last, + std::vector& candidates) const; - int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; + int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; - size_t const maxLookAhead; + size_t const maxLookAhead; - SLPNode root; + SLPNode root; - }; + }; + } + } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h index 1afa8aeb..421ecd5b 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h @@ -10,22 +10,26 @@ namespace mlir { namespace spn { + namespace low { + namespace slp { - enum Mode { - // look for a constant - CONST, - // look for a consecutive load to that in the previous lane - LOAD, - // look for an operation of the same opcode - OPCODE, - // look for the exact same operation - SPLAT, - // vectorization has failed, give higher priority to others - FAILED - }; + enum Mode { + // look for a constant + CONST, + // look for a consecutive load to that in the previous lane + LOAD, + // look for an operation of the same opcode + OPCODE, + // look for the exact same operation + SPLAT, + // vectorization has failed, give higher priority to others + FAILED + }; - Mode modeFromOperation(Operation const* operation); + Mode modeFromOperation(Operation const* operation); + } + } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index ee7b8f59..1ea7e546 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -10,49 +10,53 @@ namespace mlir { namespace spn { + namespace low { + namespace slp { - class SLPNode { + class SLPNode { - public: + public: - explicit SLPNode(std::vector const& operations); + explicit SLPNode(std::vector const& operations); - void addOperationToLane(Operation* operation, size_t const& lane); - Operation* getOperation(size_t lane, size_t index) const; - void setOperation(size_t lane, size_t index, Operation* operation); + void addOperationToLane(Operation* operation, size_t const& lane); + Operation* getOperation(size_t lane, size_t index) const; + void setOperation(size_t lane, size_t index, Operation* operation); - bool isMultiNode() const; - bool isUniform() const; - bool areRootOfNode(std::vector const& operations) const; + bool isMultiNode() const; + bool isUniform() const; + bool areRootOfNode(std::vector const& operations) const; - size_t numLanes() const; - size_t numVectors() const; + size_t numLanes() const; + size_t numVectors() const; - std::vector getVector(size_t index) const; + std::vector getVector(size_t index) const; - SLPNode& addOperand(std::vector const& operations); - SLPNode& getOperand(size_t index) const; - std::vector getOperands() const; - size_t numOperands() const; + SLPNode& addOperand(std::vector const& operations); + SLPNode& getOperand(size_t index) const; + std::vector getOperands() const; + size_t numOperands() const; - friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.lanes) == std::tie(rhs.lanes); - } + friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { + return std::tie(lhs.lanes) == std::tie(rhs.lanes); + } - friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { - return !(lhs == rhs); - } + friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { + return !(lhs == rhs); + } - private: + private: - /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation - /// if this node is a multinode. Operations with smaller indices inside a lane are executed "after" the higher - /// ones in the source code. - std::vector> lanes; + /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation + /// if this node is a multinode. Operations with smaller indices inside a lane are executed "after" the higher + /// ones in the source code. + std::vector> lanes; - std::vector> operandNodes; + std::vector> operandNodes; - }; + }; + } + } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index 7e53a526..ed5910b2 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -11,35 +11,39 @@ namespace mlir { namespace spn { + namespace low { + namespace slp { - typedef std::vector seed_t; + typedef std::vector seed_t; - enum SearchMode { - /// - DefBeforeUse, - /// - UseBeforeDef, - /// TODO? - Chain - }; + enum SearchMode { + /// + DefBeforeUse, + /// + UseBeforeDef, + /// TODO? + Chain + }; - class SeedAnalysis { + class SeedAnalysis { - public: + public: - explicit SeedAnalysis(Operation* rootOp); + explicit SeedAnalysis(Operation* rootOp); - std::map getOpDepths() const; + std::map getOpDepths() const; - std::vector getSeeds(size_t const& op, - std::map const& depthsOf, - SearchMode const& mode) const; + std::vector getSeeds(size_t const& op, + std::map const& depthsOf, + SearchMode const& mode) const; - private: + private: - Operation* rootOp; + Operation* rootOp; - }; + }; + } + } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 68dbd57a..33eb9c88 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -12,23 +12,26 @@ namespace mlir { namespace spn { + namespace low { + namespace slp { - struct SLPVectorizationPass : public PassWrapper> { + struct SLPVectorizationPass : public PassWrapper> { - public: + public: - protected: - void runOnOperation() override; + protected: + void runOnOperation() override; - private: + private: - void transform(SLPGraph& graph); - Operation* transform(SLPNode& node, bool isRoot); + void transform(SLPGraph& graph); + Operation* transform(SLPNode& node, bool isRoot); - std::map>> extractOps; - - }; + std::map>> extractOps; + }; + } + } std::unique_ptr createSLPVectorizationPass(); } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 7f8f77e9..c3afecee 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -11,18 +11,22 @@ namespace mlir { namespace spn { + namespace low { + namespace slp { - struct VectorizeTask : OpRewritePattern { + struct VectorizeTask : OpRewritePattern { - using OpRewritePattern::OpRewritePattern; + using OpRewritePattern::OpRewritePattern; - explicit VectorizeTask(MLIRContext* context, SLPGraph& graph); + explicit VectorizeTask(MLIRContext* context, SLPGraph& graph); - LogicalResult matchAndRewrite(FuncOp op, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(FuncOp op, PatternRewriter& rewriter) const override; - private: - SLPGraph& graph; - }; + private: + SLPGraph& graph; + }; + } + } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index e9bba80f..125cbc14 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -10,7 +10,7 @@ #include using namespace mlir; -using namespace mlir::spn; +using namespace mlir::spn::low::slp; SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : maxLookAhead{maxLookAhead}, root{seed} { buildGraph(seed, root); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp index 6bf645fa..98db6588 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp @@ -7,9 +7,9 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPMode.h" using namespace mlir; -using namespace mlir::spn; +using namespace mlir::spn::low::slp; -Mode mlir::spn::modeFromOperation(const Operation* operation) { +Mode mlir::spn::low::slp::modeFromOperation(const Operation* operation) { if (dyn_cast(operation)) { return CONST; } else if (dyn_cast(operation)) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index d23c482a..73032b2a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -7,6 +7,7 @@ using namespace mlir; using namespace mlir::spn; +using namespace mlir::spn::low::slp; SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()} { for (size_t i = 0; i < operations.size(); ++i) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index f5131211..6c685517 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -8,7 +8,7 @@ #include "mlir/Dialect/Traits.h" using namespace mlir; -using namespace mlir::spn; +using namespace mlir::spn::low::slp; SeedAnalysis::SeedAnalysis(Operation* rootOp) : rootOp{rootOp} {} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 2ddc07cd..3625978c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -6,6 +6,7 @@ #include "LoSPN/LoSPNDialect.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" +#include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Vector/VectorOps.h" @@ -74,7 +75,7 @@ namespace { } } -void mlir::spn::SLPVectorizationPass::runOnOperation() { +void mlir::spn::low::slp::SLPVectorizationPass::runOnOperation() { llvm::StringRef funcName = getOperation().getName(); if (!funcName.contains("task_")) { return; @@ -105,7 +106,7 @@ void mlir::spn::SLPVectorizationPass::runOnOperation() { } -void mlir::spn::SLPVectorizationPass::transform(SLPGraph& graph) { +void mlir::spn::low::slp::SLPVectorizationPass::transform(SLPGraph& graph) { graph.dump(); auto* rootOperation = transform(graph.getRoot(), true); assert(false); @@ -117,8 +118,8 @@ void mlir::spn::SLPVectorizationPass::transform(SLPGraph& graph) { } } -mlir::Operation* mlir::spn::SLPVectorizationPass::transform(SLPNode& node, bool isRoot) { - +mlir::Operation* mlir::spn::low::slp::SLPVectorizationPass::transform(SLPNode& node, bool isRoot) { + LoSPNVectorizationTypeConverter typeConverter{4}; for (size_t vectorIndex = 0; vectorIndex < node.numVectors(); ++vectorIndex) { if (node.isUniform()) { @@ -149,6 +150,6 @@ mlir::Operation* mlir::spn::SLPVectorizationPass::transform(SLPNode& node, bool } std::unique_ptr mlir::spn::createSLPVectorizationPass() { - return std::make_unique(); + return std::make_unique(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 4b2c9527..b675697b 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -9,10 +9,9 @@ #include "mlir/Dialect/Vector/VectorTransforms.h" using namespace mlir; -using namespace mlir::spn; +using namespace mlir::spn::low::slp; -LogicalResult VectorizeTask::matchAndRewrite(FuncOp op, - PatternRewriter& rewriter) const { +LogicalResult VectorizeTask::matchAndRewrite(FuncOp op, PatternRewriter& rewriter) const { if (!op->getName().getStringRef().contains("task_")) { return failure(); @@ -21,7 +20,6 @@ LogicalResult VectorizeTask::matchAndRewrite(FuncOp op, return success(); } -VectorizeTask::VectorizeTask(MLIRContext* context, - SLPGraph& graph) : OpRewritePattern(context), graph{graph} { +VectorizeTask::VectorizeTask(MLIRContext* context, SLPGraph& graph) : OpRewritePattern(context), graph{graph} { } From 6e1b77acd9c3e0b3a303c80d2de60dd62b341f74 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 24 Mar 2021 10:40:42 +0100 Subject: [PATCH 055/385] Vectorization pass progress (SLPGraph dismantling). --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 6 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 24 +++ .../Vectorization/SLP/SLPVectorizationPass.h | 13 +- .../SLP/SLPVectorizationPatterns.h | 33 ---- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 40 +---- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 19 ++- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 57 +++++++ .../SLP/SLPVectorizationPass.cpp | 142 ++++++++++++------ .../SLP/SLPVectorizationPatterns.cpp | 25 --- 11 files changed, 223 insertions(+), 140 deletions(-) create mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h delete mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h create mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp delete mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 088cf419..1bad7555 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -22,7 +22,7 @@ namespace mlir { SLPGraph(seed_t const& seed, size_t const& maxLookAhead); - SLPNode& getRoot(); + SLPNode const& getRoot() const; void dump() const; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 1ea7e546..1d19539d 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -28,8 +28,8 @@ namespace mlir { bool areRootOfNode(std::vector const& operations) const; size_t numLanes() const; - size_t numVectors() const; + size_t numVectors() const; std::vector getVector(size_t index) const; SLPNode& addOperand(std::vector const& operations); @@ -37,6 +37,10 @@ namespace mlir { std::vector getOperands() const; size_t numOperands() const; + Type getResultType() const; + + void dump() const; + friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { return std::tie(lhs.lanes) == std::tie(rhs.lanes); } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h new file mode 100644 index 00000000..d29f8e81 --- /dev/null +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -0,0 +1,24 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H + +#include "mlir/IR/Operation.h" + +namespace mlir { + namespace spn { + namespace low { + namespace slp { + + bool areConsecutiveLoads(Operation* load1, Operation* load2); + bool areConsecutiveLoads(std::vector const& loads); + + } + } + } +} + +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 33eb9c88..84852bf5 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -15,6 +15,10 @@ namespace mlir { namespace low { namespace slp { + namespace { + typedef std::pair Extraction; + } + struct SLPVectorizationPass : public PassWrapper> { public: @@ -24,10 +28,13 @@ namespace mlir { private: - void transform(SLPGraph& graph); - Operation* transform(SLPNode& node, bool isRoot); + void transform(SLPGraph const& graph); + Operation* transform(SLPNode const& node, size_t vectorIndex, size_t spill); + void updateExtractions(SLPNode const& node, size_t const& vectorIndex, Operation* vectorOp); - std::map>> extractOps; + /// Stores where operations can find their operands after vectorization in case their defining operations + /// were deleted during vectorization. + std::map> extractions; }; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h deleted file mode 100644 index c3afecee..00000000 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H - -#include "mlir/Transforms/DialectConversion.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" - -namespace mlir { - namespace spn { - namespace low { - namespace slp { - - struct VectorizeTask : OpRewritePattern { - - using OpRewritePattern::OpRewritePattern; - - explicit VectorizeTask(MLIRContext* context, SLPGraph& graph); - - LogicalResult matchAndRewrite(FuncOp op, PatternRewriter& rewriter) const override; - - private: - SLPGraph& graph; - }; - } - } - } -} - -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index e7574654..3a8e992d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -9,7 +9,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPNode.cpp Vectorization/SLP/SLPSeeding.cpp Vectorization/SLP/SLPGraph.cpp - Vectorization/SLP/SLPVectorizationPatterns.cpp + Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPass.cpp LoSPNtoCPUConversionPasses.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index 125cbc14..d541163c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -6,6 +6,7 @@ #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "llvm/Support/Debug.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include #include @@ -16,7 +17,7 @@ SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : maxLookAhea buildGraph(seed, root); } -SLPNode& SLPGraph::getRoot() { +SLPNode const& SLPGraph::getRoot() const { return root; } @@ -63,35 +64,6 @@ void SLPGraph::dump() const { // Some helper functions in an anonymous namespace. namespace { - bool areConsecutive(Operation* op1, Operation* op2) { - auto load1 = dyn_cast(op1); - auto load2 = dyn_cast(op2); - if (!load1 || !load2) { - return false; - } - if (load1.indices().size() != load2.indices().size()) { - return false; - } - for (size_t i = 0; i < load1.indices().size(); ++i) { - auto const1 = load1.indices()[i].getDefiningOp(); - auto const2 = load2.indices()[i].getDefiningOp(); - if (!const1 || !const2) { - return false; - } - auto index1 = const1.value().dyn_cast(); - auto index2 = const2.value().dyn_cast(); - if (!index1 || !index2) { - return false; - } - if (i == load1.indices().size() - 1) { - return index1.getInt() == index2.getInt() - 1; - } else if (index1.getInt() != index2.getInt()) { - return false; - } - } - return false; - } - bool vectorizable(std::vector const& operations) { for (size_t i = 0; i < operations.size(); ++i) { auto* op = operations[i]; @@ -225,6 +197,10 @@ void SLPGraph::buildGraph(std::vector const& operations, SLPNode& cu } void SLPGraph::reorderOperands(SLPNode const& multinode) { + if(std::uintptr_t(multinode.getOperation(0, 0)) == 12345) { + multinode.dump(); + llvm::dbgs() << "\n"; + } auto const& numOperands = multinode.numOperands(); std::vector> finalOrder{multinode.numLanes()}; std::vector> mode{multinode.numLanes()}; @@ -304,7 +280,7 @@ std::pair SLPGraph::getBest(Mode const& mode, best = candidates.front(); for (auto& candidate : candidates) { if (mode == LOAD) { - if (areConsecutive(last, candidate)) { + if (areConsecutiveLoads(last, candidate)) { bestCandidates.emplace_back(candidate); } } else if (candidate->getName() == last->getName()) { @@ -360,7 +336,7 @@ int SLPGraph::getLookAheadScore(Operation* last, Operation* candidate, size_t co return 0; } if (dyn_cast(last)) { - return areConsecutive(last, candidate) ? 1 : 0; + return areConsecutiveLoads(last, candidate) ? 1 : 0; } return 1; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 73032b2a..1c0f1a74 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -4,6 +4,7 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" +#include "llvm/Support/Debug.h" using namespace mlir; using namespace mlir::spn; @@ -30,7 +31,7 @@ void SLPNode::setOperation(size_t lane, size_t index, Operation* operation) { } bool SLPNode::isMultiNode() const { - return lanes.front().size() > 1; + return numVectors() > 1; } bool SLPNode::isUniform() const { @@ -87,3 +88,19 @@ std::vector SLPNode::getOperands() const { size_t SLPNode::numOperands() const { return operandNodes.size(); } + +Type SLPNode::getResultType() const { + return lanes[0][0]->getResult(0).getType(); +} + +void SLPNode::dump() const { + for (size_t i = numVectors(); i-- > 0;) { + for (size_t lane = 0; lane < numLanes(); ++lane) { + llvm::dbgs() << *getOperation(lane, i) << "(" << getOperation(lane, i) << ")"; + if (lane < numLanes() - 1) { + llvm::dbgs() << "\t|\t"; + } + } + llvm::dbgs() << "\n"; + } +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp new file mode 100644 index 00000000..36be35c0 --- /dev/null +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -0,0 +1,57 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" + +using namespace mlir; + +bool mlir::spn::low::slp::areConsecutiveLoads(Operation* load1, Operation* load2) { + + if (load1 == load2) { + return false; + } + + auto loadOp1 = dyn_cast(load1); + auto loadOp2 = dyn_cast(load2); + + if (!loadOp1 || !loadOp2) { + return false; + } + + if (loadOp1.indices().size() != loadOp2.indices().size()) { + return false; + } + + for (size_t index = 0; index < loadOp1.indices().size(); ++index) { + auto constOp1 = loadOp1.indices()[index].getDefiningOp(); + auto constOp2 = loadOp2.indices()[index].getDefiningOp(); + if (!constOp1 || !constOp2) { + return false; + } + auto indexVal1 = constOp1.value().dyn_cast(); + auto indexVal2 = constOp2.value().dyn_cast(); + if (!indexVal1 || !indexVal2) { + return false; + } + if ((index == loadOp1.indices().size() - 1 && indexVal1.getInt() != indexVal2.getInt() - 1) + || indexVal1.getInt() != indexVal2.getInt()) { + return false; + } + } + return true; +} + +bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loads) { + for (size_t i = 0; i < loads.size() - 1; ++i) { + auto* loadOp1 = loads[i]; + auto* loadOp2 = loads[i + 1]; + if (!areConsecutiveLoads(loadOp1, loadOp2)) { + return false; + } + } + return true; +} + diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 3625978c..266511c6 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -5,17 +5,25 @@ #include "LoSPN/LoSPNDialect.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "mlir/Transforms/DialectConversion.h" + +using namespace mlir::spn::low::slp; // Anonymous namespace for helper functions. namespace { + bool isBroadcastable(std::vector const& vector) { + return std::all_of(std::begin(vector), std::end(vector), [&](mlir::Operation* op) { + return op == vector.front(); + }); + } + /// For debugging purposes. void printOperation(mlir::Operation* op) { llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; @@ -73,24 +81,15 @@ namespace { } llvm::dbgs() << "}\n"; } + } -void mlir::spn::low::slp::SLPVectorizationPass::runOnOperation() { +void SLPVectorizationPass::runOnOperation() { llvm::StringRef funcName = getOperation().getName(); if (!funcName.contains("task_")) { return; } - ConversionTarget target(getContext()); - - target.addLegalDialect(); - target.addLegalDialect(); - target.addLegalDialect(); - target.addLegalOp(); - target.addLegalOp(); - - target.addLegalDialect(); - auto function = getOperation(); auto& seedAnalysis = getAnalysis(); @@ -106,50 +105,107 @@ void mlir::spn::low::slp::SLPVectorizationPass::runOnOperation() { } -void mlir::spn::low::slp::SLPVectorizationPass::transform(SLPGraph& graph) { - graph.dump(); - auto* rootOperation = transform(graph.getRoot(), true); +void SLPVectorizationPass::transform(SLPGraph const& graph) { + //graph.dump(); + auto* rootOperation = transform(graph.getRoot(), 0, 1); assert(false); // Update users of vector operations that aren't contained in the graph. - for (auto const& entry : extractOps) { - for (auto const& extractOpData : entry.second) { - extractOpData.first->setOperand(extractOpData.second, nullptr); - } - } } -mlir::Operation* mlir::spn::low::slp::SLPVectorizationPass::transform(SLPNode& node, bool isRoot) { - LoSPNVectorizationTypeConverter typeConverter{4}; - for (size_t vectorIndex = 0; vectorIndex < node.numVectors(); ++vectorIndex) { - if (node.isUniform()) { - - for (size_t lane = 0; lane < node.numLanes(); ++lane) { - auto* operation = node.getOperation(lane, vectorIndex); +mlir::Operation* SLPVectorizationPass::transform(SLPNode const& node, size_t vectorIndex, size_t spill) { - auto type = VectorType::get(node.numLanes(), operation->getResult(0).getType()); - auto operands = llvm::SmallVector{}; - auto* vectorOperation = Operation::create(operation->getLoc(), - operation->getName(), - type, - operands, - operation->getAttrs(), - operation->getSuccessors(), - operation->getNumRegions()); + node.dump(); + llvm::dbgs() << "\n"; + if (std::uintptr_t(node.getOperation(0, 0)) == 0x9033b8) { + llvm::dbgs() << "\n"; + } - operation->dropAllUses(); + LoSPNVectorizationTypeConverter typeConverter{static_cast(node.numLanes())}; + auto vectorType = typeConverter.convertType(node.getResultType()); + auto builder = OpBuilder{&getContext()}; + + auto const& vectorizableOps = node.getVector(vectorIndex); + auto const& firstOp = vectorizableOps.front(); + builder.setInsertionPointAfter(firstOp); + + Operation* vectorOp; + + if (isBroadcastable(vectorizableOps)) { + auto value = firstOp->getResult(0); + vectorOp = builder.create(firstOp->getLoc(), vectorType, value); + } else if (node.isUniform()) { + if (areConsecutiveLoads(vectorizableOps)) { + auto base = firstOp->getResult(0); + auto zero = builder.create(firstOp->getLoc(), builder.getIndexAttr(0)); + auto indices = ValueRange{zero.getResult()}; + vectorOp = builder.create(firstOp->getLoc(), vectorType, base, indices); + } else { + llvm::SmallVector operands; + for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { + + SLPNode const* operandNode = &node; + size_t operandNodeIndex = 0; + + unsigned availableOperands = node.numVectors(); + unsigned usedOperands = vectorIndex * firstOp->getNumOperands() + spill; + size_t nextIndex = usedOperands + i; + size_t nodeSpill = spill; + + while (availableOperands <= nextIndex) { + if (operandNodeIndex == 0) { + nodeSpill = ((firstOp->getNumOperands() - 1) * node.numVectors()) + spill; + } else { + nodeSpill -= availableOperands; + } + operandNode = &node.getOperand(operandNodeIndex++); + nextIndex -= availableOperands; + availableOperands = operandNode->numVectors(); + } + operands.emplace_back(transform(*operandNode, nextIndex, nodeSpill)->getResult(0)); } - } else { + vectorOp = Operation::create(firstOp->getLoc(), + firstOp->getName(), + vectorType, + operands, + firstOp->getAttrs(), + firstOp->getSuccessors(), + firstOp->getNumRegions()); + builder.insert(vectorOp); + } + } else { + vectorOp = builder.create(firstOp->getLoc(), vectorType, firstOp->getResult(0)); + for (size_t lane = 1; lane < node.numLanes(); ++lane) { + vectorOp = builder.create(vectorOp->getLoc(), + vectorizableOps[lane]->getResult(0), + vectorOp->getResult(0), + lane); } } - bool isMixed = false; - assert(false); - extractOps[nullptr]; - return node.getVector(0).front(); + + vectorOp->dump(); + updateExtractions(node, vectorIndex, vectorOp); + + return vectorOp; +} + +void SLPVectorizationPass::updateExtractions(SLPNode const& node, size_t const& vectorIndex, Operation* vectorOp) { + for (size_t lane = 0; lane < node.numLanes(); ++lane) { + auto* operation = node.getOperation(lane, vectorIndex); + for (auto* use : operation->getUsers()) { + for (size_t i = 0; i < use->getNumOperands(); ++i) { + if (use->getOperand(i) == operation->getResult(0)) { + extractions[use][i] = std::make_pair(vectorOp, i); + break; + } + } + } + extractions.erase(operation); + } } std::unique_ptr mlir::spn::createSLPVectorizationPass() { - return std::make_unique(); + return std::make_unique(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp deleted file mode 100644 index b675697b..00000000 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" -#include "mlir/IR/BlockAndValueMapping.h" -#include "mlir/Dialect/Vector/VectorOps.h" -#include "mlir/Dialect/Vector/VectorTransforms.h" - -using namespace mlir; -using namespace mlir::spn::low::slp; - -LogicalResult VectorizeTask::matchAndRewrite(FuncOp op, PatternRewriter& rewriter) const { - - if (!op->getName().getStringRef().contains("task_")) { - return failure(); - } - //op->replaceUsesOfWith(); - - return success(); -} -VectorizeTask::VectorizeTask(MLIRContext* context, SLPGraph& graph) : OpRewritePattern(context), graph{graph} { - -} From 611f8603e72183cc57ebcfffef86a1edb0f4ebe5 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 24 Mar 2021 14:49:31 +0100 Subject: [PATCH 056/385] Better dismantling. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 2 +- .../SLP/SLPVectorizationPass.cpp | 53 ++++++++++--------- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index d541163c..c556552c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -197,7 +197,7 @@ void SLPGraph::buildGraph(std::vector const& operations, SLPNode& cu } void SLPGraph::reorderOperands(SLPNode const& multinode) { - if(std::uintptr_t(multinode.getOperation(0, 0)) == 12345) { + if (std::uintptr_t(multinode.getOperation(0, 0)) == 12345) { multinode.dump(); llvm::dbgs() << "\n"; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 266511c6..f8338897 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -133,27 +133,29 @@ mlir::Operation* SLPVectorizationPass::transform(SLPNode const& node, size_t vec if (isBroadcastable(vectorizableOps)) { auto value = firstOp->getResult(0); vectorOp = builder.create(firstOp->getLoc(), vectorType, value); - } else if (node.isUniform()) { - if (areConsecutiveLoads(vectorizableOps)) { - auto base = firstOp->getResult(0); - auto zero = builder.create(firstOp->getLoc(), builder.getIndexAttr(0)); - auto indices = ValueRange{zero.getResult()}; - vectorOp = builder.create(firstOp->getLoc(), vectorType, base, indices); - } else { - llvm::SmallVector operands; - for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { - - SLPNode const* operandNode = &node; + } else if (areConsecutiveLoads(vectorizableOps)) { + auto base = firstOp->getResult(0); + auto zero = builder.create(firstOp->getLoc(), builder.getIndexAttr(0)); + auto indices = ValueRange{zero.getResult()}; + vectorOp = builder.create(firstOp->getLoc(), vectorType, base, indices); + } else if (node.isUniform() && firstOp->getNumOperands() > 0) { + llvm::SmallVector operands; + for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { + + if (node.isMultiNode()) { + // TODO: visit non-multinode-operands first? size_t operandNodeIndex = 0; + SLPNode const* operandNode = &node; + + size_t nodeSpill = spill; unsigned availableOperands = node.numVectors(); - unsigned usedOperands = vectorIndex * firstOp->getNumOperands() + spill; + unsigned usedOperands = vectorIndex * firstOp->getNumOperands() + nodeSpill; size_t nextIndex = usedOperands + i; - size_t nodeSpill = spill; while (availableOperands <= nextIndex) { if (operandNodeIndex == 0) { - nodeSpill = ((firstOp->getNumOperands() - 1) * node.numVectors()) + spill; + nodeSpill = ((firstOp->getNumOperands() - 1) * node.numVectors()) + nodeSpill; } else { nodeSpill -= availableOperands; } @@ -161,19 +163,21 @@ mlir::Operation* SLPVectorizationPass::transform(SLPNode const& node, size_t vec nextIndex -= availableOperands; availableOperands = operandNode->numVectors(); } - + assert(nodeSpill > 0); operands.emplace_back(transform(*operandNode, nextIndex, nodeSpill)->getResult(0)); + } else { + operands.emplace_back(transform(node.getOperand(i), 0, 1)->getResult(0)); } - vectorOp = Operation::create(firstOp->getLoc(), - firstOp->getName(), - vectorType, - operands, - firstOp->getAttrs(), - firstOp->getSuccessors(), - firstOp->getNumRegions()); - builder.insert(vectorOp); - } + } + vectorOp = Operation::create(firstOp->getLoc(), + firstOp->getName(), + vectorType, + operands, + firstOp->getAttrs(), + firstOp->getSuccessors(), + firstOp->getNumRegions()); + builder.insert(vectorOp); } else { vectorOp = builder.create(firstOp->getLoc(), vectorType, firstOp->getResult(0)); for (size_t lane = 1; lane < node.numLanes(); ++lane) { @@ -208,4 +212,3 @@ void SLPVectorizationPass::updateExtractions(SLPNode const& node, size_t const& std::unique_ptr mlir::spn::createSLPVectorizationPass() { return std::make_unique(); } - From ccb280d391676cffcd47a55c82a9990540765675 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 26 Mar 2021 06:55:32 +0100 Subject: [PATCH 057/385] Better SLPGraph > vector instructions conversion. --- .../Vectorization/SLP/SLPVectorizationPass.h | 6 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 32 ++---- .../SLP/SLPVectorizationPass.cpp | 108 +++++++++--------- 3 files changed, 67 insertions(+), 79 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 84852bf5..77bc0e1a 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -29,8 +29,10 @@ namespace mlir { private: void transform(SLPGraph const& graph); - Operation* transform(SLPNode const& node, size_t vectorIndex, size_t spill); - void updateExtractions(SLPNode const& node, size_t const& vectorIndex, Operation* vectorOp); + Value transform(SLPNode const& node, + size_t vectorIndex, + std::map& vectorsDone); + Operation* updateExtractions(SLPNode const& node, size_t const& vectorIndex, Operation* vectorOp); /// Stores where operations can find their operands after vectorization in case their defining operations /// were deleted during vectorization. diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 36be35c0..f8b36387 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -4,44 +4,32 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "LoSPN/LoSPNOps.h" using namespace mlir; -bool mlir::spn::low::slp::areConsecutiveLoads(Operation* load1, Operation* load2) { +bool mlir::spn::low::slp::areConsecutiveLoads(Operation* op1, Operation* op2) { - if (load1 == load2) { + if (op1 == op2) { return false; } - auto loadOp1 = dyn_cast(load1); - auto loadOp2 = dyn_cast(load2); + auto loadOp1 = dyn_cast(op1); + auto loadOp2 = dyn_cast(op2); if (!loadOp1 || !loadOp2) { return false; } - if (loadOp1.indices().size() != loadOp2.indices().size()) { + if (loadOp1.batchMem() != loadOp2.batchMem()) { return false; } - for (size_t index = 0; index < loadOp1.indices().size(); ++index) { - auto constOp1 = loadOp1.indices()[index].getDefiningOp(); - auto constOp2 = loadOp2.indices()[index].getDefiningOp(); - if (!constOp1 || !constOp2) { - return false; - } - auto indexVal1 = constOp1.value().dyn_cast(); - auto indexVal2 = constOp2.value().dyn_cast(); - if (!indexVal1 || !indexVal2) { - return false; - } - if ((index == loadOp1.indices().size() - 1 && indexVal1.getInt() != indexVal2.getInt() - 1) - || indexVal1.getInt() != indexVal2.getInt()) { - return false; - } + if (loadOp1.batchIndex() != loadOp2.batchIndex()) { + return false; } - return true; + + return loadOp1.sampleIndex() == loadOp2.sampleIndex(); } bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loads) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index f8338897..9c05bcd8 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -34,6 +34,10 @@ namespace { llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); } + } else if (auto batchReadOp = llvm::dyn_cast(op)) { + llvm::dbgs() << "\\nbatch mem: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); + llvm::dbgs() << "\\nbatch index: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); + llvm::dbgs() << "\\nsample index: " << batchReadOp.sampleIndex(); } llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; } @@ -99,7 +103,7 @@ void SLPVectorizationPass::runOnOperation() { auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), SearchMode::UseBeforeDef); assert(!seeds.empty() && "couldn't find a seed!"); - + printSeedTree(seeds.front()); SLPGraph graph(seeds.front(), 3); transform(graph); @@ -107,19 +111,25 @@ void SLPVectorizationPass::runOnOperation() { void SLPVectorizationPass::transform(SLPGraph const& graph) { //graph.dump(); - auto* rootOperation = transform(graph.getRoot(), 0, 1); + std::map vectorsDone; + auto rootOperation = transform(graph.getRoot(), 0, vectorsDone); + llvm::dbgs() << extractions.size() << "\n"; assert(false); // Update users of vector operations that aren't contained in the graph. } -mlir::Operation* SLPVectorizationPass::transform(SLPNode const& node, size_t vectorIndex, size_t spill) { +mlir::Value SLPVectorizationPass::transform(SLPNode const& node, + size_t vectorIndex, + std::map& vectorsDone) { node.dump(); llvm::dbgs() << "\n"; - if (std::uintptr_t(node.getOperation(0, 0)) == 0x9033b8) { + if (std::uintptr_t(node.getOperation(0, 0)) == 0x716008) { llvm::dbgs() << "\n"; } + vectorsDone[&node]++; + LoSPNVectorizationTypeConverter typeConverter{static_cast(node.numLanes())}; auto vectorType = typeConverter.convertType(node.getResultType()); auto builder = OpBuilder{&getContext()}; @@ -128,73 +138,60 @@ mlir::Operation* SLPVectorizationPass::transform(SLPNode const& node, size_t vec auto const& firstOp = vectorizableOps.front(); builder.setInsertionPointAfter(firstOp); - Operation* vectorOp; - if (isBroadcastable(vectorizableOps)) { auto value = firstOp->getResult(0); - vectorOp = builder.create(firstOp->getLoc(), vectorType, value); - } else if (areConsecutiveLoads(vectorizableOps)) { + auto vectorOp = builder.create(firstOp->getLoc(), vectorType, value); + return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); + } + + if (areConsecutiveLoads(vectorizableOps)) { auto base = firstOp->getResult(0); auto zero = builder.create(firstOp->getLoc(), builder.getIndexAttr(0)); auto indices = ValueRange{zero.getResult()}; - vectorOp = builder.create(firstOp->getLoc(), vectorType, base, indices); - } else if (node.isUniform() && firstOp->getNumOperands() > 0) { - llvm::SmallVector operands; - for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { - - if (node.isMultiNode()) { - // TODO: visit non-multinode-operands first? - size_t operandNodeIndex = 0; - SLPNode const* operandNode = &node; + auto vectorOp = builder.create(firstOp->getLoc(), vectorType, base, indices); + return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); + } - size_t nodeSpill = spill; + if (node.isUniform()) { - unsigned availableOperands = node.numVectors(); - unsigned usedOperands = vectorIndex * firstOp->getNumOperands() + nodeSpill; - size_t nextIndex = usedOperands + i; + llvm::SmallVector operands; - while (availableOperands <= nextIndex) { - if (operandNodeIndex == 0) { - nodeSpill = ((firstOp->getNumOperands() - 1) * node.numVectors()) + nodeSpill; - } else { - nodeSpill -= availableOperands; - } - operandNode = &node.getOperand(operandNodeIndex++); - nextIndex -= availableOperands; - availableOperands = operandNode->numVectors(); - } - assert(nodeSpill > 0); - operands.emplace_back(transform(*operandNode, nextIndex, nodeSpill)->getResult(0)); - } else { - operands.emplace_back(transform(node.getOperand(i), 0, 1)->getResult(0)); + for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { + size_t operandNodeIndex = vectorIndex % node.getOperands().size(); + auto* operandNode = (i == 0) ? &node : &node.getOperand(operandNodeIndex); + size_t nextIndex = vectorsDone[operandNode]; + while (nextIndex >= operandNode->numVectors()) { + operandNode = &node.getOperand(operandNodeIndex++ % node.getOperands().size()); + nextIndex = vectorsDone[operandNode]; } - + operands.emplace_back(transform(*operandNode, nextIndex, vectorsDone)); } - vectorOp = Operation::create(firstOp->getLoc(), - firstOp->getName(), - vectorType, - operands, - firstOp->getAttrs(), - firstOp->getSuccessors(), - firstOp->getNumRegions()); + + auto vectorOp = Operation::create(firstOp->getLoc(), + firstOp->getName(), + vectorType, + operands, + firstOp->getAttrs(), + firstOp->getSuccessors(), + firstOp->getNumRegions()); builder.insert(vectorOp); - } else { - vectorOp = builder.create(firstOp->getLoc(), vectorType, firstOp->getResult(0)); - for (size_t lane = 1; lane < node.numLanes(); ++lane) { - vectorOp = builder.create(vectorOp->getLoc(), - vectorizableOps[lane]->getResult(0), - vectorOp->getResult(0), - lane); - } + return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); } - vectorOp->dump(); - updateExtractions(node, vectorIndex, vectorOp); + Operation* vectorOp = builder.create(firstOp->getLoc(), vectorType, firstOp->getResult(0)); + for (size_t lane = 1; lane < node.numLanes(); ++lane) { + vectorOp = builder.create(vectorOp->getLoc(), + vectorizableOps[lane]->getResult(0), + vectorOp->getResult(0), + lane); + } - return vectorOp; + return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); } -void SLPVectorizationPass::updateExtractions(SLPNode const& node, size_t const& vectorIndex, Operation* vectorOp) { +mlir::Operation* SLPVectorizationPass::updateExtractions(SLPNode const& node, + size_t const& vectorIndex, + Operation* vectorOp) { for (size_t lane = 0; lane < node.numLanes(); ++lane) { auto* operation = node.getOperation(lane, vectorIndex); for (auto* use : operation->getUsers()) { @@ -207,6 +204,7 @@ void SLPVectorizationPass::updateExtractions(SLPNode const& node, size_t const& } extractions.erase(operation); } + return vectorOp; } std::unique_ptr mlir::spn::createSLPVectorizationPass() { From c6890bf31cbb7b4e0fb1adf505b78ca2d4e6669c Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 27 Mar 2021 07:59:34 +0100 Subject: [PATCH 058/385] Reworked SLPGraph class, better SLPNode > code conversion. --- .../SLP/{SLPGraph.h => SLPGraphBuilder.h} | 20 +-- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 10 +- .../Vectorization/SLP/SLPVectorizationPass.h | 13 +- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 2 +- .../SLP/{SLPGraph.cpp => SLPGraphBuilder.cpp} | 164 ++++++------------ .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 59 ++++++- .../SLP/SLPVectorizationPass.cpp | 132 +++++++++----- 7 files changed, 226 insertions(+), 174 deletions(-) rename mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPGraph.h => SLPGraphBuilder.h} (76%) rename mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPGraph.cpp => SLPGraphBuilder.cpp} (62%) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h similarity index 76% rename from mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index 1bad7555..0a26463b 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -3,8 +3,8 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPHBUILDER_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPHBUILDER_H #include "mlir/IR/Operation.h" #include "SLPMode.h" @@ -16,21 +16,19 @@ namespace mlir { namespace low { namespace slp { - class SLPGraph { + class SLPGraphBuilder { public: - SLPGraph(seed_t const& seed, size_t const& maxLookAhead); + explicit SLPGraphBuilder(size_t maxLookAhead); - SLPNode const& getRoot() const; - - void dump() const; + std::unique_ptr build(seed_t const& seed) const; private: - void buildGraph(std::vector const& operations, SLPNode& currentNode); + void buildGraph(std::vector const& operations, SLPNode* currentNode) const; - void reorderOperands(SLPNode const& multinode); + void reorderOperands(SLPNode* multinode) const; std::pair getBest(Mode const& mode, Operation* last, @@ -40,12 +38,10 @@ namespace mlir { size_t const maxLookAhead; - SLPNode root; - }; } } } } -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPHBUILDER_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 1d19539d..fa62e340 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -32,14 +32,18 @@ namespace mlir { size_t numVectors() const; std::vector getVector(size_t index) const; - SLPNode& addOperand(std::vector const& operations); - SLPNode& getOperand(size_t index) const; + SLPNode* addOperand(std::vector const& operations); + SLPNode* getOperand(size_t index) const; std::vector getOperands() const; size_t numOperands() const; + void addNodeInput(Value const& value); + Value const& getNodeInput(size_t index) const; + Type getResultType() const; void dump() const; + void dumpGraph() const; friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { return std::tie(lhs.lanes) == std::tie(rhs.lanes); @@ -58,6 +62,8 @@ namespace mlir { std::vector> operandNodes; + std::vector nodeInputs; + }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 77bc0e1a..4376b071 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -8,7 +8,7 @@ #include "mlir/IR/Operation.h" #include "mlir/Pass/Pass.h" -#include "SLPGraph.h" +#include "SLPGraphBuilder.h" namespace mlir { namespace spn { @@ -28,11 +28,12 @@ namespace mlir { private: - void transform(SLPGraph const& graph); - Value transform(SLPNode const& node, - size_t vectorIndex, - std::map& vectorsDone); - Operation* updateExtractions(SLPNode const& node, size_t const& vectorIndex, Operation* vectorOp); + void transform(SLPNode* root); + Value transform(SLPNode* node, + size_t vectorIndex, + std::map& vectorsDone, + std::map& nodeInputsDone); + Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp); /// Stores where operations can find their operands after vectorization in case their defining operations /// were deleted during vectorization. diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index 3a8e992d..c2dd9829 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -8,7 +8,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPMode.cpp Vectorization/SLP/SLPNode.cpp Vectorization/SLP/SLPSeeding.cpp - Vectorization/SLP/SLPGraph.cpp + Vectorization/SLP/SLPGraphBuilder.cpp Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPass.cpp LoSPNtoCPUConversionPasses.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp similarity index 62% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp rename to mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index c556552c..4006b5a7 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -5,69 +5,30 @@ #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "llvm/Support/Debug.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include #include +#include using namespace mlir; using namespace mlir::spn::low::slp; -SLPGraph::SLPGraph(seed_t const& seed, size_t const& maxLookAhead) : maxLookAhead{maxLookAhead}, root{seed} { - buildGraph(seed, root); -} +SLPGraphBuilder::SLPGraphBuilder(size_t maxLookAhead) : maxLookAhead{maxLookAhead} {} -SLPNode const& SLPGraph::getRoot() const { +std::unique_ptr SLPGraphBuilder::build(seed_t const& seed) const { + auto root = std::make_unique(SLPNode{seed}); + buildGraph(seed, root.get()); return root; } -void SLPGraph::dump() const { - - llvm::dbgs() << "digraph debug_graph {\n"; - llvm::dbgs() << "rankdir = BT;\n"; - llvm::dbgs() << "node[shape=box];\n"; - - std::queue worklist; - worklist.emplace(&root); - - while (!worklist.empty()) { - auto const* node = worklist.front(); - worklist.pop(); - - llvm::dbgs() << "node_" << node << "[label=<\n"; - llvm::dbgs() << "\t\n"; - for (size_t i = node->numVectors(); i-- > 0;) { - llvm::dbgs() << "\t\t\n"; - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto* operation = node->getOperation(lane, i); - llvm::dbgs() << "\t\t\t"; - if (lane < node->numLanes() - 1) { - llvm::dbgs() << ""; - } - llvm::dbgs() << "\n"; - } - llvm::dbgs() << "\t\t\n"; - } - llvm::dbgs() << "\t
"; - llvm::dbgs() << "" << operation->getName() << " (" << operation << ")"; - llvm::dbgs() << "
\n"; - llvm::dbgs() << ">];\n"; - - for (auto const& operand : node->getOperands()) { - llvm::dbgs() << "node_" << node << "->" << "node_" << operand << ";\n"; - worklist.emplace(operand); - } - } - llvm::dbgs() << "}\n"; -} - // Some helper functions in an anonymous namespace. namespace { bool vectorizable(std::vector const& operations) { for (size_t i = 0; i < operations.size(); ++i) { auto* op = operations[i]; - if (!op->hasTrait() || (i > 0 && op->getName() != operations.front()->getName())) { + if (!op->hasTrait() || (op->getName() != operations.front()->getName())) { return false; } } @@ -107,25 +68,7 @@ namespace { return allOperands; } - std::vector> getOperandsVectorized(std::vector const& operations) { - for (auto* operation : operations) { - assert(operation->getNumOperands() == operations.front()->getNumOperands() - && "operations must have same numbers of operands"); - } - std::vector> allOperands; - for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - std::vector operands; - operands.reserve(operations.size()); - for (auto* operation : operations) { - operands.emplace_back(operation->getOperand(i).getDefiningOp()); - } - allOperands.emplace_back(operands); - } - return allOperands; - } - - void sortByOpcode(std::vector& operations, - Optional const& smallestOpcode) { + void sortByOpcode(std::vector& operations, Optional const& smallestOpcode) { std::sort(std::begin(operations), std::end(operations), [&](Operation* lhs, Operation* rhs) { if (smallestOpcode.hasValue()) { if (lhs->getName() == smallestOpcode.getValue()) { @@ -137,10 +80,10 @@ namespace { return lhs->getName().getStringRef() < rhs->getName().getStringRef(); }); } +} // end namespace -} - -void SLPGraph::buildGraph(std::vector const& operations, SLPNode& currentNode) { +void SLPGraphBuilder::buildGraph(std::vector const& operations, + SLPNode* currentNode) const { // Stop growing graph if (!vectorizable(operations)) { return; @@ -156,65 +99,75 @@ void SLPGraph::buildGraph(std::vector const& operations, SLPNode& cu } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { - return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i]); + return operandOperations[i]->getName() == currentOpCode + && !escapesMultinode(operandOperations[i]); })) { - for (size_t lane = 0; lane < currentNode.numLanes(); ++lane) { - currentNode.addOperationToLane(allOperands[lane][i], lane); + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + currentNode->addOperationToLane(allOperands[lane][i], lane); } - buildGraph(currentNode.getVector(currentNode.numVectors() - 1), currentNode); + buildGraph(currentNode->getVector(currentNode->numVectors() - 1), currentNode); } else { // TODO: here might be a good place to implement variable vector width std::vector operandOperations; - for (size_t lane = 0; lane < currentNode.numLanes(); ++lane) { + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandOperations.emplace_back(allOperands[lane][i]); } - currentNode.addOperand(operandOperations); + currentNode->addOperand(operandOperations); } } - // B. Normal Mode: Finished building multi-node - if (currentNode.isMultiNode() && currentNode.areRootOfNode(operations)) { + if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { reorderOperands(currentNode); - for (auto* operandNode : currentNode.getOperands()) { - buildGraph(operandNode->getVector(operandNode->numVectors() - 1), *operandNode); + for (auto* operandNode : currentNode->getOperands()) { + buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); } } } // 2. Non-Commutative else { - // Only consider operands further when the current operations aren't leaf nodes. - for (auto* operation : operations) { - for (auto const& operand : operation->getOperands()) { - if (operand.isa()) { - return; + for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { + std::vector operands; + bool containsBlockArgument = false; + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + auto operand = currentNode->getOperation(lane, 0)->getOperand(i); + operands.emplace_back(operand); + containsBlockArgument |= operand.isa(); + } + // Only consider operands that don't contain block arguments for further graph building. + if (containsBlockArgument) { + for (auto const& operand : operands) { + currentNode->addNodeInput(operand); } + } else { + std::vector operandOperations; + operandOperations.reserve(operands.size()); + for (auto const& operand : operands) { + operandOperations.emplace_back(operand.getDefiningOp()); + } + buildGraph(operandOperations, currentNode->addOperand(operandOperations)); } } - for (auto const& operandVector : getOperandsVectorized(operations)) { - buildGraph(operandVector, currentNode.addOperand(operandVector)); - } } } -void SLPGraph::reorderOperands(SLPNode const& multinode) { - if (std::uintptr_t(multinode.getOperation(0, 0)) == 12345) { - multinode.dump(); +void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { + if (std::uintptr_t(multinode->getOperation(0, 0)) == 12345) { + multinode->dump(); llvm::dbgs() << "\n"; } - auto const& numOperands = multinode.numOperands(); - std::vector> finalOrder{multinode.numLanes()}; - std::vector> mode{multinode.numLanes()}; + auto const& numOperands = multinode->numOperands(); + std::vector> finalOrder{multinode->numLanes()}; + std::vector> mode{multinode->numLanes()}; // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { - auto operation = multinode.getOperand(i).getOperation(0, 0); + auto operation = multinode->getOperand(i)->getOperation(0, 0); finalOrder[0].emplace_back(operation); mode[0].emplace_back(modeFromOperation(operation)); } - // 2. For all other lanes, find best candidate - for (size_t lane = 1; lane < multinode.numLanes(); ++lane) { + for (size_t lane = 1; lane < multinode->numLanes(); ++lane) { std::vector candidates; - for (auto const& operand : multinode.getOperands()) { + for (auto const& operand : multinode->getOperands()) { candidates.emplace_back(operand->getOperation(lane, 0)); } // Look for a matching candidate @@ -228,17 +181,14 @@ void SLPGraph::reorderOperands(SLPNode const& multinode) { } auto* last = finalOrder[lane - 1][i]; auto const& bestResult = getBest(mode[lane - 1][i], last, candidates); - // Update output finalOrder[lane].emplace_back(bestResult.first); - // Detect SPLAT mode if (i == 1 && bestResult.first == last) { mode[lane][i] = SPLAT; } else { mode[lane].emplace_back(bestResult.second); } - } // Distribute remaining candidates in case we encountered a FAILED. for (auto* candidate : candidates) { @@ -250,20 +200,19 @@ void SLPGraph::reorderOperands(SLPNode const& multinode) { } } } - for (size_t operandIndex = 0; operandIndex < multinode.numOperands(); ++operandIndex) { - for (size_t lane = 0; lane < multinode.numLanes(); ++lane) { - multinode.getOperand(operandIndex).setOperation(lane, 0, finalOrder[lane][operandIndex]); + for (size_t operandIndex = 0; operandIndex < multinode->numOperands(); ++operandIndex) { + for (size_t lane = 0; lane < multinode->numLanes(); ++lane) { + multinode->getOperand(operandIndex)->setOperation(lane, 0, finalOrder[lane][operandIndex]); } } } -std::pair SLPGraph::getBest(Mode const& mode, - Operation* last, - std::vector& candidates) const { +std::pair SLPGraphBuilder::getBest(Mode const& mode, + Operation* last, + std::vector& candidates) const { Operation* best = nullptr; Mode resultMode = mode; std::vector bestCandidates; - if (mode == FAILED) { // Don't select now, let others choose first best = nullptr; @@ -321,7 +270,6 @@ std::pair SLPGraph::getBest(Mode const& mode, } } } - } // Remove best from candidates if (best != nullptr) { @@ -330,7 +278,7 @@ std::pair SLPGraph::getBest(Mode const& mode, return {best, resultMode}; } -int SLPGraph::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { +int SLPGraphBuilder::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { if (maxLevel == 0) { if (last->getName() != candidate->getName()) { return 0; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 1c0f1a74..16598d01 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -5,12 +5,13 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" #include "llvm/Support/Debug.h" +#include using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::low::slp; -SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()} { +SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()}, operandNodes{}, nodeInputs{} { for (size_t i = 0; i < operations.size(); ++i) { lanes[i].emplace_back(operations[i]); } @@ -66,14 +67,14 @@ std::vector SLPNode::getVector(size_t index) const { return vector; } -SLPNode& SLPNode::addOperand(std::vector const& operations) { +SLPNode* SLPNode::addOperand(std::vector const& operations) { operandNodes.emplace_back(std::make_unique(operations)); - return *operandNodes.back(); + return operandNodes.back().get(); } -SLPNode& SLPNode::getOperand(size_t index) const { +SLPNode* SLPNode::getOperand(size_t index) const { assert(index <= operandNodes.size()); - return *operandNodes[index]; + return operandNodes[index].get(); } std::vector SLPNode::getOperands() const { @@ -89,6 +90,14 @@ size_t SLPNode::numOperands() const { return operandNodes.size(); } +void SLPNode::addNodeInput(Value const& value) { + nodeInputs.emplace_back(value); +} + +Value const& SLPNode::getNodeInput(size_t index) const { + return nodeInputs[index]; +} + Type SLPNode::getResultType() const { return lanes[0][0]->getResult(0).getType(); } @@ -104,3 +113,43 @@ void SLPNode::dump() const { llvm::dbgs() << "\n"; } } + +void SLPNode::dumpGraph() const { + + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + + std::queue worklist; + worklist.emplace(this); + + while (!worklist.empty()) { + auto const* node = worklist.front(); + worklist.pop(); + + llvm::dbgs() << "node_" << node << "[label=<\n"; + llvm::dbgs() << "\t\n"; + for (size_t i = node->numVectors(); i-- > 0;) { + llvm::dbgs() << "\t\t\n"; + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto* operation = node->getOperation(lane, i); + llvm::dbgs() << "\t\t\t"; + if (lane < node->numLanes() - 1) { + llvm::dbgs() << ""; + } + llvm::dbgs() << "\n"; + } + llvm::dbgs() << "\t\t\n"; + } + llvm::dbgs() << "\t
"; + llvm::dbgs() << "" << operation->getName() << " (" << operation << ")"; + llvm::dbgs() << "
\n"; + llvm::dbgs() << ">];\n"; + + for (auto const& operand : node->getOperands()) { + llvm::dbgs() << "node_" << node << "->" << "node_" << operand << ";\n"; + worklist.emplace(operand); + } + } + llvm::dbgs() << "}\n"; +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 9c05bcd8..3cbf2af0 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -6,6 +6,7 @@ #include "LoSPN/LoSPNDialect.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" @@ -104,70 +105,121 @@ void SLPVectorizationPass::runOnOperation() { auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), SearchMode::UseBeforeDef); assert(!seeds.empty() && "couldn't find a seed!"); printSeedTree(seeds.front()); - SLPGraph graph(seeds.front(), 3); - transform(graph); + SLPGraphBuilder builder{3}; + auto graph = builder.build(seeds.front()); + transform(graph.get()); } -void SLPVectorizationPass::transform(SLPGraph const& graph) { - //graph.dump(); - std::map vectorsDone; - auto rootOperation = transform(graph.getRoot(), 0, vectorsDone); +void SLPVectorizationPass::transform(SLPNode* root) { + root->dumpGraph(); + std::map vectorsDone; + std::map nodeInputsDone; + auto rootOperation = transform(root, 0, vectorsDone, nodeInputsDone); + getOperation()->dump(); llvm::dbgs() << extractions.size() << "\n"; assert(false); // Update users of vector operations that aren't contained in the graph. } -mlir::Value SLPVectorizationPass::transform(SLPNode const& node, +mlir::Value SLPVectorizationPass::transform(SLPNode* node, size_t vectorIndex, - std::map& vectorsDone) { + std::map& vectorsDone, + std::map& nodeInputsDone) { - node.dump(); + node->dump(); llvm::dbgs() << "\n"; - if (std::uintptr_t(node.getOperation(0, 0)) == 0x716008) { + if (std::uintptr_t(node->getOperation(0, 0)) == 0x716008) { llvm::dbgs() << "\n"; } - vectorsDone[&node]++; + vectorsDone[node]++; - LoSPNVectorizationTypeConverter typeConverter{static_cast(node.numLanes())}; - auto vectorType = typeConverter.convertType(node.getResultType()); + LoSPNVectorizationTypeConverter typeConverter{static_cast(node->numLanes())}; + auto vectorType = typeConverter.convertType(node->getResultType()); auto builder = OpBuilder{&getContext()}; - auto const& vectorizableOps = node.getVector(vectorIndex); + auto const& vectorizableOps = node->getVector(vectorIndex); auto const& firstOp = vectorizableOps.front(); - builder.setInsertionPointAfter(firstOp); + auto const& loc = firstOp->getLoc(); + builder.setInsertionPoint(firstOp); if (isBroadcastable(vectorizableOps)) { auto value = firstOp->getResult(0); - auto vectorOp = builder.create(firstOp->getLoc(), vectorType, value); - return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); + auto vectorOp = builder.create(loc, vectorType, value); + return applyCreation(node, vectorIndex, vectorOp); } if (areConsecutiveLoads(vectorizableOps)) { auto base = firstOp->getResult(0); - auto zero = builder.create(firstOp->getLoc(), builder.getIndexAttr(0)); + auto zero = builder.create(loc, builder.getIndexAttr(0)); auto indices = ValueRange{zero.getResult()}; - auto vectorOp = builder.create(firstOp->getLoc(), vectorType, base, indices); - return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); + auto vectorOp = builder.create(loc, vectorType, base, indices); + return applyCreation(node, vectorIndex, vectorOp); } - if (node.isUniform()) { + if (node->isUniform() && firstOp->getNumOperands() > 0) { llvm::SmallVector operands; for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { - size_t operandNodeIndex = vectorIndex % node.getOperands().size(); - auto* operandNode = (i == 0) ? &node : &node.getOperand(operandNodeIndex); - size_t nextIndex = vectorsDone[operandNode]; - while (nextIndex >= operandNode->numVectors()) { - operandNode = &node.getOperand(operandNodeIndex++ % node.getOperands().size()); - nextIndex = vectorsDone[operandNode]; + + if (node->numOperands() == 0) { + size_t nextIndex = vectorsDone[node]; + if (nextIndex < node->numVectors()) { + operands.emplace_back(transform(node, nextIndex, vectorsDone, nodeInputsDone)); + } else { + auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); + nodeInput.dump(); + Operation* vectorOp = builder.create(loc, vectorType, nodeInput); + for (size_t lane = 1; lane < node->numLanes(); ++lane) { + nodeInput = node->getNodeInput(nodeInputsDone[node]++); + vectorOp = builder.create(vectorOp->getLoc(), + nodeInput, + vectorOp->getResult(0), + lane); + } + operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); + } + } else { + + size_t initialOperandIndex = vectorIndex % node->getOperands().size(); + + size_t operandNodeIndex = initialOperandIndex; + SLPNode* operandNode = (i == 0) ? node : node->getOperand(operandNodeIndex); + bool useNodeInputs = false; + + size_t nextVectorIndex = vectorsDone[operandNode]; + while (nextVectorIndex >= operandNode->numVectors()) { + operandNode = node->getOperand(operandNodeIndex % node->getOperands().size()); + nextVectorIndex = vectorsDone[operandNode]; + // Check if we have looped through all operands already. + if (operandNodeIndex++ == initialOperandIndex + node->numOperands()) { + useNodeInputs = true; + break; + } + } + + if (useNodeInputs) { + auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); + nodeInput.dump(); + Operation* vectorOp = builder.create(loc, vectorType, nodeInput); + for (size_t lane = 1; lane < node->numLanes(); ++lane) { + nodeInput = node->getNodeInput(nodeInputsDone[node]++); + vectorOp = builder.create(vectorOp->getLoc(), + nodeInput, + vectorOp->getResult(0), + lane); + } + operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); + } else { + operands.emplace_back(transform(operandNode, nextVectorIndex, vectorsDone, nodeInputsDone)); + } + } - operands.emplace_back(transform(*operandNode, nextIndex, vectorsDone)); } - auto vectorOp = Operation::create(firstOp->getLoc(), + auto vectorOp = Operation::create(loc, firstOp->getName(), vectorType, operands, @@ -175,36 +227,36 @@ mlir::Value SLPVectorizationPass::transform(SLPNode const& node, firstOp->getSuccessors(), firstOp->getNumRegions()); builder.insert(vectorOp); - return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); + return applyCreation(node, vectorIndex, vectorOp); } - Operation* vectorOp = builder.create(firstOp->getLoc(), vectorType, firstOp->getResult(0)); - for (size_t lane = 1; lane < node.numLanes(); ++lane) { + Operation* vectorOp = builder.create(loc, vectorType, firstOp->getResult(0)); + for (size_t lane = 1; lane < node->numLanes(); ++lane) { vectorOp = builder.create(vectorOp->getLoc(), vectorizableOps[lane]->getResult(0), vectorOp->getResult(0), lane); } - return updateExtractions(node, vectorIndex, vectorOp)->getResult(0); + return applyCreation(node, vectorIndex, vectorOp); } -mlir::Operation* SLPVectorizationPass::updateExtractions(SLPNode const& node, - size_t const& vectorIndex, - Operation* vectorOp) { - for (size_t lane = 0; lane < node.numLanes(); ++lane) { - auto* operation = node.getOperation(lane, vectorIndex); +mlir::Value SLPVectorizationPass::applyCreation(SLPNode* node, + size_t vectorIndex, + Operation* createdVectorOp) { + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto* operation = node->getOperation(lane, vectorIndex); for (auto* use : operation->getUsers()) { for (size_t i = 0; i < use->getNumOperands(); ++i) { if (use->getOperand(i) == operation->getResult(0)) { - extractions[use][i] = std::make_pair(vectorOp, i); + extractions[use][i] = std::make_pair(createdVectorOp, i); break; } } } extractions.erase(operation); } - return vectorOp; + return createdVectorOp->getResult(0); } std::unique_ptr mlir::spn::createSLPVectorizationPass() { From ddfeea6b2acdffa1ccf9e47d892d78aefb12eccd Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 27 Mar 2021 08:04:49 +0100 Subject: [PATCH 059/385] Formatting. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 4006b5a7..53cbd31a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -7,9 +7,8 @@ #include "llvm/Support/Debug.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPN/LoSPNTraits.h" #include -#include -#include using namespace mlir; using namespace mlir::spn::low::slp; @@ -82,8 +81,7 @@ namespace { } } // end namespace -void SLPGraphBuilder::buildGraph(std::vector const& operations, - SLPNode* currentNode) const { +void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPNode* currentNode) const { // Stop growing graph if (!vectorizable(operations)) { return; From ee74a7eb720f1ebee7647675902fe9e5a93f198f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 3 Apr 2021 01:57:57 +0200 Subject: [PATCH 060/385] Added examples. --- mini-example.mlir | 29 + mini-example_blockargs.mlir | 60 ++ mini-example_blockargs_only.mlir | 50 ++ speaker.mlir | 1386 ++++++++++++++++++++++++++++++ 4 files changed, 1525 insertions(+) create mode 100644 mini-example.mlir create mode 100644 mini-example_blockargs.mlir create mode 100644 mini-example_blockargs_only.mlir create mode 100644 speaker.mlir diff --git a/mini-example.mlir b/mini-example.mlir new file mode 100644 index 00000000..ae45c2e8 --- /dev/null +++ b/mini-example.mlir @@ -0,0 +1,29 @@ +module { + "hi_spn.joint_query"() ( { + "hi_spn.graph"() ( { + ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64): // no predecessors + %0 = "hi_spn.gaussian"(%arg0) {mean = 1.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability + %1 = "hi_spn.gaussian"(%arg1) {mean = 1.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability + %2 = "hi_spn.gaussian"(%arg2) {mean = 1.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability + %3 = "hi_spn.gaussian"(%arg3) {mean = 1.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability + %4 = "hi_spn.product"(%0, %1, %2, %3) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %5 = "hi_spn.gaussian"(%arg4) {mean = 2.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability + %6 = "hi_spn.gaussian"(%arg5) {mean = 2.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability + %7 = "hi_spn.gaussian"(%arg6) {mean = 2.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability + %8 = "hi_spn.gaussian"(%arg7) {mean = 2.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability + %9 = "hi_spn.product"(%5, %6, %7, %8) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %10 = "hi_spn.gaussian"(%arg8) {mean = 3.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability + %11 = "hi_spn.gaussian"(%arg9) {mean = 3.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability + %12 = "hi_spn.gaussian"(%arg10) {mean = 3.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability + %13 = "hi_spn.gaussian"(%arg11) {mean = 3.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability + %14 = "hi_spn.product"(%10, %11, %12, %13) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %15 = "hi_spn.gaussian"(%arg12) {mean = 4.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability + %16 = "hi_spn.gaussian"(%arg13) {mean = 4.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability + %17 = "hi_spn.gaussian"(%arg14) {mean = 4.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability + %18 = "hi_spn.gaussian"(%arg15) {mean = 4.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability + %19 = "hi_spn.product"(%15, %16, %17, %18) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %20 = "hi_spn.sum"(%4, %9, %14, %19) {weights = [2.500000e-01, 2.500000e-01, 2.500000e-01, 2.500000e-01]} : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + "hi_spn.root"(%20) : (!hi_spn.probability) -> () + }) {numFeatures = 16 : ui32} : () -> () + }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "spn_vector", maxError = 2.000000e-02 : f64, numFeatures = 16 : ui32} : () -> () +} \ No newline at end of file diff --git a/mini-example_blockargs.mlir b/mini-example_blockargs.mlir new file mode 100644 index 00000000..c9279581 --- /dev/null +++ b/mini-example_blockargs.mlir @@ -0,0 +1,60 @@ +module { + "hi_spn.joint_query"() ( { + "hi_spn.graph"() ( { + ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64): // no predecessors + %0 = "lo_spn.gaussian"(%arg0) {mean = 1.100000e-01 : f64, stddev = 1.000000e+00 : f64, supportMarginal = false} : (f64) -> f64 + %1 = "lo_spn.gaussian"(%arg1) {mean = 1.200000e-01 : f64, stddev = 7.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %2 = "lo_spn.gaussian"(%arg2) {mean = 1.300000e-01 : f64, stddev = 5.000000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %3 = "lo_spn.gaussian"(%arg3) {mean = 1.400000e-01 : f64, stddev = 2.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %4 = "lo_spn.mul"(%0, %1) : (f64, f64) -> f64 + %5 = "lo_spn.mul"(%2, %3) : (f64, f64) -> f64 + %6 = "lo_spn.mul"(%4, %5) : (f64, f64) -> f64 + + %7 = "lo_spn.gaussian"(%arg4) {mean = 2.100000e-01 : f64, stddev = 1.000000e+00 : f64, supportMarginal = false} : (f64) -> f64 + %8 = "lo_spn.gaussian"(%arg5) {mean = 2.200000e-01 : f64, stddev = 7.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %9 = "lo_spn.gaussian"(%arg6) {mean = 2.300000e-01 : f64, stddev = 5.000000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %10 = "lo_spn.gaussian"(%arg7) {mean = 2.400000e-01 : f64, stddev = 2.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %11 = "lo_spn.mul"(%7, %8) : (f64, f64) -> f64 + %12 = "lo_spn.mul"(%9, %10) : (f64, f64) -> f64 + %13 = "lo_spn.mul"(%11, %12) : (f64, f64) -> f64 + + %14 = "lo_spn.mul"(%arg8, %arg9) : (f64, f64) -> f64 + %15 = "lo_spn.mul"(%arg10, %arg11) : (f64, f64) -> f64 + %16 = "lo_spn.mul"(%14, %15) : (f64, f64) -> f64 + + %17 = "lo_spn.gaussian"(%arg12) {mean = 4.100000e-01 : f64, stddev = 1.000000e+00 : f64, supportMarginal = false} : (f64) -> f64 + %18 = "lo_spn.gaussian"(%arg13) {mean = 4.200000e-01 : f64, stddev = 7.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 + %19 = "lo_spn.mul"(%arg14, %17) : (f64, f64) -> f64 + %20 = "lo_spn.mul"(%18, %arg15) : (f64, f64) -> f64 + %21 = "lo_spn.mul"(%19, %20) : (f64, f64) -> f64 + + + %22 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %23 = "lo_spn.mul"(%6, %22) : (f64, f64) -> f64 + + + %24 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %25 = "lo_spn.mul"(%13, %24) : (f64, f64) -> f64 + + %26 = "lo_spn.add"(%23, %25) : (f64, f64) -> f64 + + + %27 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %28 = "lo_spn.mul"(%16, %27) : (f64, f64) -> f64 + + + %29 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %30 = "lo_spn.mul"(%21, %29) : (f64, f64) -> f64 + + + %31 = "lo_spn.add"(%28, %30) : (f64, f64) -> f64 + + + %32 = "lo_spn.add"(%26, %31) : (f64, f64) -> f64 + + + %33 = "lo_spn.log"(%32) : (f64) -> f64 + "lo_spn.yield"(%33) : (f64) -> () + }) {numFeatures = 16 : ui32} : () -> () + }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "spn_vector", maxError = 2.000000e-02 : f64, numFeatures = 16 : ui32} : () -> () +} \ No newline at end of file diff --git a/mini-example_blockargs_only.mlir b/mini-example_blockargs_only.mlir new file mode 100644 index 00000000..215d8606 --- /dev/null +++ b/mini-example_blockargs_only.mlir @@ -0,0 +1,50 @@ +module { + "hi_spn.joint_query"() ( { + "hi_spn.graph"() ( { + ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64): // no predecessors + %4 = "lo_spn.mul"(%arg0, %arg1) : (f64, f64) -> f64 + %5 = "lo_spn.mul"(%arg2, %arg3) : (f64, f64) -> f64 + %6 = "lo_spn.mul"(%4, %5) : (f64, f64) -> f64 + + %11 = "lo_spn.mul"(%arg4, %arg5) : (f64, f64) -> f64 + %12 = "lo_spn.mul"(%arg6, %arg7) : (f64, f64) -> f64 + %13 = "lo_spn.mul"(%11, %12) : (f64, f64) -> f64 + + %14 = "lo_spn.mul"(%arg8, %arg9) : (f64, f64) -> f64 + %15 = "lo_spn.mul"(%arg10, %arg11) : (f64, f64) -> f64 + %16 = "lo_spn.mul"(%14, %15) : (f64, f64) -> f64 + + %19 = "lo_spn.mul"(%arg12, %arg13) : (f64, f64) -> f64 + %20 = "lo_spn.mul"(%arg14, %arg15) : (f64, f64) -> f64 + %21 = "lo_spn.mul"(%19, %20) : (f64, f64) -> f64 + + + %22 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %23 = "lo_spn.mul"(%6, %22) : (f64, f64) -> f64 + + + %24 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %25 = "lo_spn.mul"(%13, %24) : (f64, f64) -> f64 + + %26 = "lo_spn.add"(%23, %25) : (f64, f64) -> f64 + + + %27 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %28 = "lo_spn.mul"(%16, %27) : (f64, f64) -> f64 + + + %29 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 + %30 = "lo_spn.mul"(%21, %29) : (f64, f64) -> f64 + + + %31 = "lo_spn.add"(%28, %30) : (f64, f64) -> f64 + + + %32 = "lo_spn.add"(%26, %31) : (f64, f64) -> f64 + + + %33 = "lo_spn.log"(%32) : (f64) -> f64 + "lo_spn.yield"(%33) : (f64) -> () + }) {numFeatures = 16 : ui32} : () -> () + }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "spn_vector", maxError = 2.000000e-02 : f64, numFeatures = 16 : ui32} : () -> () +} \ No newline at end of file diff --git a/speaker.mlir b/speaker.mlir new file mode 100644 index 00000000..831132f9 --- /dev/null +++ b/speaker.mlir @@ -0,0 +1,1386 @@ +module { + "hi_spn.joint_query"() ( { + "hi_spn.graph"() ( { + ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64, %arg16: f64, %arg17: f64, %arg18: f64, %arg19: f64, %arg20: f64, %arg21: f64, %arg22: f64, %arg23: f64, %arg24: f64, %arg25: f64): // no predecessors + %0 = "hi_spn.gaussian"(%arg0) {mean = -17.008344650268555 : f64, stddev = 1.2322918176651001 : f64} : (f64) -> !hi_spn.probability + %1 = "hi_spn.gaussian"(%arg1) {mean = -17.51667594909668 : f64, stddev = 0.83712685108184814 : f64} : (f64) -> !hi_spn.probability + %2 = "hi_spn.gaussian"(%arg2) {mean = -18.007946014404297 : f64, stddev = 0.80053895711898804 : f64} : (f64) -> !hi_spn.probability + %3 = "hi_spn.gaussian"(%arg3) {mean = -19.112228393554688 : f64, stddev = 1.1566277742385864 : f64} : (f64) -> !hi_spn.probability + %4 = "hi_spn.gaussian"(%arg4) {mean = -19.001440048217773 : f64, stddev = 1.4131922721862793 : f64} : (f64) -> !hi_spn.probability + %5 = "hi_spn.gaussian"(%arg5) {mean = -18.086399078369141 : f64, stddev = 1.3832533359527588 : f64} : (f64) -> !hi_spn.probability + %6 = "hi_spn.gaussian"(%arg6) {mean = -17.926259994506836 : f64, stddev = 1.826938271522522 : f64} : (f64) -> !hi_spn.probability + %7 = "hi_spn.gaussian"(%arg7) {mean = -17.839334487915039 : f64, stddev = 1.7523599863052368 : f64} : (f64) -> !hi_spn.probability + %8 = "hi_spn.gaussian"(%arg8) {mean = -17.57574462890625 : f64, stddev = 1.6010535955429077 : f64} : (f64) -> !hi_spn.probability + %9 = "hi_spn.gaussian"(%arg9) {mean = -17.946182250976563 : f64, stddev = 1.6547287702560425 : f64} : (f64) -> !hi_spn.probability + %10 = "hi_spn.gaussian"(%arg10) {mean = -18.620752334594727 : f64, stddev = 1.9146925210952759 : f64} : (f64) -> !hi_spn.probability + %11 = "hi_spn.gaussian"(%arg11) {mean = -19.343420028686523 : f64, stddev = 0.48160973191261292 : f64} : (f64) -> !hi_spn.probability + %12 = "hi_spn.gaussian"(%arg12) {mean = -18.635164260864258 : f64, stddev = 0.74348711967468262 : f64} : (f64) -> !hi_spn.probability + %13 = "hi_spn.gaussian"(%arg13) {mean = -18.961502075195313 : f64, stddev = 1.1531294584274292 : f64} : (f64) -> !hi_spn.probability + %14 = "hi_spn.gaussian"(%arg14) {mean = -19.183233261108398 : f64, stddev = 0.78505074977874755 : f64} : (f64) -> !hi_spn.probability + %15 = "hi_spn.gaussian"(%arg15) {mean = -19.083650588989258 : f64, stddev = 1.1194009780883789 : f64} : (f64) -> !hi_spn.probability + %16 = "hi_spn.gaussian"(%arg16) {mean = -18.983146667480469 : f64, stddev = 1.1276484727859497 : f64} : (f64) -> !hi_spn.probability + %17 = "hi_spn.gaussian"(%arg17) {mean = -19.001323699951172 : f64, stddev = 1.0364922285079956 : f64} : (f64) -> !hi_spn.probability + %18 = "hi_spn.gaussian"(%arg18) {mean = -19.279079437255859 : f64, stddev = 0.85322260856628418 : f64} : (f64) -> !hi_spn.probability + %19 = "hi_spn.gaussian"(%arg19) {mean = -18.933378219604492 : f64, stddev = 0.86298847198486328 : f64} : (f64) -> !hi_spn.probability + %20 = "hi_spn.gaussian"(%arg20) {mean = -19.706975936889648 : f64, stddev = 1.2289904356002808 : f64} : (f64) -> !hi_spn.probability + %21 = "hi_spn.gaussian"(%arg21) {mean = -20.154388427734375 : f64, stddev = 1.258030891418457 : f64} : (f64) -> !hi_spn.probability + %22 = "hi_spn.gaussian"(%arg22) {mean = -19.222892761230469 : f64, stddev = 0.88799136877059937 : f64} : (f64) -> !hi_spn.probability + %23 = "hi_spn.gaussian"(%arg23) {mean = -19.150226593017578 : f64, stddev = 1.1795535087585449 : f64} : (f64) -> !hi_spn.probability + %24 = "hi_spn.gaussian"(%arg24) {mean = -19.51652717590332 : f64, stddev = 1.4334899187088013 : f64} : (f64) -> !hi_spn.probability + %25 = "hi_spn.gaussian"(%arg25) {mean = -19.534236907958984 : f64, stddev = 1.4469033479690552 : f64} : (f64) -> !hi_spn.probability + %26 = "hi_spn.product"(%0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24, %25) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %27 = "hi_spn.gaussian"(%arg0) {mean = -11.691486358642578 : f64, stddev = 0.9555012583732605 : f64} : (f64) -> !hi_spn.probability + %28 = "hi_spn.gaussian"(%arg1) {mean = -13.05181884765625 : f64, stddev = 0.853557288646698 : f64} : (f64) -> !hi_spn.probability + %29 = "hi_spn.gaussian"(%arg2) {mean = -12.82150936126709 : f64, stddev = 0.85313618183135986 : f64} : (f64) -> !hi_spn.probability + %30 = "hi_spn.gaussian"(%arg3) {mean = -12.261768341064453 : f64, stddev = 1.241553783416748 : f64} : (f64) -> !hi_spn.probability + %31 = "hi_spn.gaussian"(%arg4) {mean = -13.287029266357422 : f64, stddev = 0.94631612300872802 : f64} : (f64) -> !hi_spn.probability + %32 = "hi_spn.gaussian"(%arg5) {mean = -13.460000991821289 : f64, stddev = 0.79668718576431274 : f64} : (f64) -> !hi_spn.probability + %33 = "hi_spn.gaussian"(%arg6) {mean = -13.672939300537109 : f64, stddev = 0.64314866065979004 : f64} : (f64) -> !hi_spn.probability + %34 = "hi_spn.gaussian"(%arg7) {mean = -14.173128128051758 : f64, stddev = 0.6592138409614563 : f64} : (f64) -> !hi_spn.probability + %35 = "hi_spn.gaussian"(%arg8) {mean = -14.192937850952148 : f64, stddev = 0.66672509908676147 : f64} : (f64) -> !hi_spn.probability + %36 = "hi_spn.gaussian"(%arg9) {mean = -14.56330394744873 : f64, stddev = 0.62382203340530396 : f64} : (f64) -> !hi_spn.probability + %37 = "hi_spn.gaussian"(%arg10) {mean = -14.593165397644043 : f64, stddev = 0.60054910182952881 : f64} : (f64) -> !hi_spn.probability + %38 = "hi_spn.gaussian"(%arg11) {mean = -14.720823287963867 : f64, stddev = 0.3894939124584198 : f64} : (f64) -> !hi_spn.probability + %39 = "hi_spn.gaussian"(%arg12) {mean = -14.746555328369141 : f64, stddev = 0.33225619792938232 : f64} : (f64) -> !hi_spn.probability + %40 = "hi_spn.gaussian"(%arg13) {mean = -14.828187942504883 : f64, stddev = 0.45201334357261658 : f64} : (f64) -> !hi_spn.probability + %41 = "hi_spn.gaussian"(%arg14) {mean = -14.910123825073242 : f64, stddev = 0.39101448655128479 : f64} : (f64) -> !hi_spn.probability + %42 = "hi_spn.gaussian"(%arg15) {mean = -14.75367259979248 : f64, stddev = 0.39089170098304749 : f64} : (f64) -> !hi_spn.probability + %43 = "hi_spn.gaussian"(%arg16) {mean = -14.679332733154297 : f64, stddev = 0.45400753617286682 : f64} : (f64) -> !hi_spn.probability + %44 = "hi_spn.gaussian"(%arg17) {mean = -14.763216018676758 : f64, stddev = 0.37351292371749878 : f64} : (f64) -> !hi_spn.probability + %45 = "hi_spn.gaussian"(%arg18) {mean = -14.893037796020508 : f64, stddev = 0.38001608848571777 : f64} : (f64) -> !hi_spn.probability + %46 = "hi_spn.gaussian"(%arg19) {mean = -14.931450843811035 : f64, stddev = 0.3294711709022522 : f64} : (f64) -> !hi_spn.probability + %47 = "hi_spn.gaussian"(%arg20) {mean = -14.875664710998535 : f64, stddev = 0.28642129898071289 : f64} : (f64) -> !hi_spn.probability + %48 = "hi_spn.gaussian"(%arg21) {mean = -14.765348434448242 : f64, stddev = 0.30316087603569031 : f64} : (f64) -> !hi_spn.probability + %49 = "hi_spn.gaussian"(%arg22) {mean = -14.788684844970703 : f64, stddev = 0.46982544660568237 : f64} : (f64) -> !hi_spn.probability + %50 = "hi_spn.gaussian"(%arg23) {mean = -14.712668418884277 : f64, stddev = 0.69984894990921021 : f64} : (f64) -> !hi_spn.probability + %51 = "hi_spn.gaussian"(%arg24) {mean = -14.619635581970215 : f64, stddev = 0.6502000093460083 : f64} : (f64) -> !hi_spn.probability + %52 = "hi_spn.gaussian"(%arg25) {mean = -14.570056915283203 : f64, stddev = 0.77849054336547852 : f64} : (f64) -> !hi_spn.probability + %53 = "hi_spn.product"(%27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40, %41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51, %52) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %54 = "hi_spn.gaussian"(%arg0) {mean = -14.705244064331055 : f64, stddev = 0.0081562995910644531 : f64} : (f64) -> !hi_spn.probability + %55 = "hi_spn.gaussian"(%arg1) {mean = -15.727216720581055 : f64, stddev = 0.46601295471191406 : f64} : (f64) -> !hi_spn.probability + %56 = "hi_spn.gaussian"(%arg2) {mean = -15.293563842773438 : f64, stddev = 0.76385116577148438 : f64} : (f64) -> !hi_spn.probability + %57 = "hi_spn.gaussian"(%arg3) {mean = -15.602492332458496 : f64, stddev = 1.0235662460327148 : f64} : (f64) -> !hi_spn.probability + %58 = "hi_spn.gaussian"(%arg4) {mean = -15.725742340087891 : f64, stddev = 0.058207988739013672 : f64} : (f64) -> !hi_spn.probability + %59 = "hi_spn.gaussian"(%arg5) {mean = -15.370358467102051 : f64, stddev = 0.21091938018798828 : f64} : (f64) -> !hi_spn.probability + %60 = "hi_spn.gaussian"(%arg6) {mean = -15.42354679107666 : f64, stddev = 0.043168067932128906 : f64} : (f64) -> !hi_spn.probability + %61 = "hi_spn.gaussian"(%arg7) {mean = -14.921604156494141 : f64, stddev = 0.013431072235107422 : f64} : (f64) -> !hi_spn.probability + %62 = "hi_spn.gaussian"(%arg8) {mean = -14.780827522277832 : f64, stddev = 0.23374462127685547 : f64} : (f64) -> !hi_spn.probability + %63 = "hi_spn.gaussian"(%arg9) {mean = -14.073673248291016 : f64, stddev = 0.50023126602172852 : f64} : (f64) -> !hi_spn.probability + %64 = "hi_spn.gaussian"(%arg10) {mean = -14.851292610168457 : f64, stddev = 1.1555185317993164 : f64} : (f64) -> !hi_spn.probability + %65 = "hi_spn.gaussian"(%arg11) {mean = -14.301946640014648 : f64, stddev = 0.36252355575561523 : f64} : (f64) -> !hi_spn.probability + %66 = "hi_spn.gaussian"(%arg12) {mean = -13.973554611206055 : f64, stddev = 0.11240434646606445 : f64} : (f64) -> !hi_spn.probability + %67 = "hi_spn.gaussian"(%arg13) {mean = -14.852415084838867 : f64, stddev = 0.75914144515991211 : f64} : (f64) -> !hi_spn.probability + %68 = "hi_spn.gaussian"(%arg14) {mean = -16.232814788818359 : f64, stddev = 1.2697248458862305 : f64} : (f64) -> !hi_spn.probability + %69 = "hi_spn.gaussian"(%arg15) {mean = -16.982036590576172 : f64, stddev = 0.39824199676513672 : f64} : (f64) -> !hi_spn.probability + %70 = "hi_spn.gaussian"(%arg16) {mean = -16.325704574584961 : f64, stddev = 0.52779197692871094 : f64} : (f64) -> !hi_spn.probability + %71 = "hi_spn.gaussian"(%arg17) {mean = -15.555004119873047 : f64, stddev = 0.54830408096313477 : f64} : (f64) -> !hi_spn.probability + %72 = "hi_spn.gaussian"(%arg18) {mean = -15.379636764526367 : f64, stddev = 1.258521556854248 : f64} : (f64) -> !hi_spn.probability + %73 = "hi_spn.gaussian"(%arg19) {mean = -15.570907592773438 : f64, stddev = 0.74476194381713867 : f64} : (f64) -> !hi_spn.probability + %74 = "hi_spn.gaussian"(%arg20) {mean = -17.015893936157227 : f64, stddev = 0.55658721923828125 : f64} : (f64) -> !hi_spn.probability + %75 = "hi_spn.gaussian"(%arg21) {mean = -17.795625686645508 : f64, stddev = 0.55001449584960938 : f64} : (f64) -> !hi_spn.probability + %76 = "hi_spn.gaussian"(%arg22) {mean = -17.125846862792969 : f64, stddev = 0.33589649200439453 : f64} : (f64) -> !hi_spn.probability + %77 = "hi_spn.gaussian"(%arg23) {mean = -17.304031372070313 : f64, stddev = 0.54722881317138672 : f64} : (f64) -> !hi_spn.probability + %78 = "hi_spn.gaussian"(%arg24) {mean = -18.064449310302734 : f64, stddev = 0.40894603729248047 : f64} : (f64) -> !hi_spn.probability + %79 = "hi_spn.gaussian"(%arg25) {mean = -17.569829940795898 : f64, stddev = 0.30439567565917969 : f64} : (f64) -> !hi_spn.probability + %80 = "hi_spn.product"(%54, %55, %56, %57, %58, %59, %60, %61, %62, %63, %64, %65, %66, %67, %68, %69, %70, %71, %72, %73, %74, %75, %76, %77, %78, %79) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %81 = "hi_spn.gaussian"(%arg0) {mean = -12.278669357299805 : f64, stddev = 0.70607328414916992 : f64} : (f64) -> !hi_spn.probability + %82 = "hi_spn.gaussian"(%arg1) {mean = -13.748607635498047 : f64, stddev = 0.59538811445236206 : f64} : (f64) -> !hi_spn.probability + %83 = "hi_spn.gaussian"(%arg2) {mean = -14.028950691223145 : f64, stddev = 0.57415688037872314 : f64} : (f64) -> !hi_spn.probability + %84 = "hi_spn.gaussian"(%arg3) {mean = -14.098723411560059 : f64, stddev = 0.68949049711227417 : f64} : (f64) -> !hi_spn.probability + %85 = "hi_spn.gaussian"(%arg4) {mean = -14.483530044555664 : f64, stddev = 0.5110512375831604 : f64} : (f64) -> !hi_spn.probability + %86 = "hi_spn.gaussian"(%arg5) {mean = -14.239527702331543 : f64, stddev = 0.45093455910682678 : f64} : (f64) -> !hi_spn.probability + %87 = "hi_spn.gaussian"(%arg6) {mean = -14.486002922058105 : f64, stddev = 0.65600454807281494 : f64} : (f64) -> !hi_spn.probability + %88 = "hi_spn.gaussian"(%arg7) {mean = -14.59147834777832 : f64, stddev = 0.57572072744369507 : f64} : (f64) -> !hi_spn.probability + %89 = "hi_spn.gaussian"(%arg8) {mean = -14.403834342956543 : f64, stddev = 0.46818867325782776 : f64} : (f64) -> !hi_spn.probability + %90 = "hi_spn.gaussian"(%arg9) {mean = -14.677604675292969 : f64, stddev = 0.47902008891105652 : f64} : (f64) -> !hi_spn.probability + %91 = "hi_spn.gaussian"(%arg10) {mean = -14.663904190063477 : f64, stddev = 0.50219011306762695 : f64} : (f64) -> !hi_spn.probability + %92 = "hi_spn.gaussian"(%arg11) {mean = -14.690372467041016 : f64, stddev = 0.44716405868530273 : f64} : (f64) -> !hi_spn.probability + %93 = "hi_spn.gaussian"(%arg12) {mean = -14.6632080078125 : f64, stddev = 0.38495475053787231 : f64} : (f64) -> !hi_spn.probability + %94 = "hi_spn.gaussian"(%arg13) {mean = -14.72645378112793 : f64, stddev = 0.55035674571990967 : f64} : (f64) -> !hi_spn.probability + %95 = "hi_spn.gaussian"(%arg14) {mean = -14.78395938873291 : f64, stddev = 0.54925638437271118 : f64} : (f64) -> !hi_spn.probability + %96 = "hi_spn.gaussian"(%arg15) {mean = -14.858743667602539 : f64, stddev = 0.53312361240386963 : f64} : (f64) -> !hi_spn.probability + %97 = "hi_spn.gaussian"(%arg16) {mean = -14.806643486022949 : f64, stddev = 0.4745364785194397 : f64} : (f64) -> !hi_spn.probability + %98 = "hi_spn.gaussian"(%arg17) {mean = -14.853967666625977 : f64, stddev = 0.43914061784744263 : f64} : (f64) -> !hi_spn.probability + %99 = "hi_spn.gaussian"(%arg18) {mean = -14.963318824768066 : f64, stddev = 0.33155733346939087 : f64} : (f64) -> !hi_spn.probability + %100 = "hi_spn.gaussian"(%arg19) {mean = -14.783291816711426 : f64, stddev = 0.37577581405639648 : f64} : (f64) -> !hi_spn.probability + %101 = "hi_spn.gaussian"(%arg20) {mean = -14.804089546203613 : f64, stddev = 0.32199788093566895 : f64} : (f64) -> !hi_spn.probability + %102 = "hi_spn.gaussian"(%arg21) {mean = -14.762737274169922 : f64, stddev = 0.3795318603515625 : f64} : (f64) -> !hi_spn.probability + %103 = "hi_spn.gaussian"(%arg22) {mean = -14.827932357788086 : f64, stddev = 0.29625844955444336 : f64} : (f64) -> !hi_spn.probability + %104 = "hi_spn.gaussian"(%arg23) {mean = -14.874870300292969 : f64, stddev = 0.31367933750152588 : f64} : (f64) -> !hi_spn.probability + %105 = "hi_spn.gaussian"(%arg24) {mean = -14.777741432189941 : f64, stddev = 0.4508415162563324 : f64} : (f64) -> !hi_spn.probability + %106 = "hi_spn.gaussian"(%arg25) {mean = -14.7742919921875 : f64, stddev = 0.40639781951904297 : f64} : (f64) -> !hi_spn.probability + %107 = "hi_spn.product"(%81, %82, %83, %84, %85, %86, %87, %88, %89, %90, %91, %92, %93, %94, %95, %96, %97, %98, %99, %100, %101, %102, %103, %104, %105, %106) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %108 = "hi_spn.gaussian"(%arg0) {mean = -12.921130180358887 : f64, stddev = 0.76062649488449097 : f64} : (f64) -> !hi_spn.probability + %109 = "hi_spn.gaussian"(%arg1) {mean = -13.843625068664551 : f64, stddev = 0.60068219900131226 : f64} : (f64) -> !hi_spn.probability + %110 = "hi_spn.gaussian"(%arg2) {mean = -13.933586120605469 : f64, stddev = 0.47099682688713074 : f64} : (f64) -> !hi_spn.probability + %111 = "hi_spn.gaussian"(%arg3) {mean = -14.109395027160645 : f64, stddev = 0.69455677270889282 : f64} : (f64) -> !hi_spn.probability + %112 = "hi_spn.gaussian"(%arg4) {mean = -14.586555480957031 : f64, stddev = 0.81965476274490356 : f64} : (f64) -> !hi_spn.probability + %113 = "hi_spn.gaussian"(%arg5) {mean = -14.383593559265137 : f64, stddev = 0.51352304220199585 : f64} : (f64) -> !hi_spn.probability + %114 = "hi_spn.gaussian"(%arg6) {mean = -14.25749683380127 : f64, stddev = 0.5128941535949707 : f64} : (f64) -> !hi_spn.probability + %115 = "hi_spn.gaussian"(%arg7) {mean = -13.105278015136719 : f64, stddev = 0.67038100957870483 : f64} : (f64) -> !hi_spn.probability + %116 = "hi_spn.gaussian"(%arg8) {mean = -12.834145545959473 : f64, stddev = 0.64336085319519043 : f64} : (f64) -> !hi_spn.probability + %117 = "hi_spn.gaussian"(%arg9) {mean = -12.958279609680176 : f64, stddev = 0.51751166582107544 : f64} : (f64) -> !hi_spn.probability + %118 = "hi_spn.gaussian"(%arg10) {mean = -12.984625816345215 : f64, stddev = 0.59040850400924683 : f64} : (f64) -> !hi_spn.probability + %119 = "hi_spn.gaussian"(%arg11) {mean = -13.200656890869141 : f64, stddev = 0.67291450500488281 : f64} : (f64) -> !hi_spn.probability + %120 = "hi_spn.gaussian"(%arg12) {mean = -13.749299049377441 : f64, stddev = 0.9121706485748291 : f64} : (f64) -> !hi_spn.probability + %121 = "hi_spn.gaussian"(%arg13) {mean = -14.392987251281738 : f64, stddev = 0.89220792055130005 : f64} : (f64) -> !hi_spn.probability + %122 = "hi_spn.gaussian"(%arg14) {mean = -14.678248405456543 : f64, stddev = 0.23509034514427185 : f64} : (f64) -> !hi_spn.probability + %123 = "hi_spn.gaussian"(%arg15) {mean = -14.928545951843262 : f64, stddev = 0.26878252625465393 : f64} : (f64) -> !hi_spn.probability + %124 = "hi_spn.gaussian"(%arg16) {mean = -15.254768371582031 : f64, stddev = 0.33298963308334351 : f64} : (f64) -> !hi_spn.probability + %125 = "hi_spn.gaussian"(%arg17) {mean = -14.660717964172363 : f64, stddev = 0.28881913423538208 : f64} : (f64) -> !hi_spn.probability + %126 = "hi_spn.gaussian"(%arg18) {mean = -14.636052131652832 : f64, stddev = 0.36257320642471313 : f64} : (f64) -> !hi_spn.probability + %127 = "hi_spn.gaussian"(%arg19) {mean = -14.544581413269043 : f64, stddev = 0.70322251319885254 : f64} : (f64) -> !hi_spn.probability + %128 = "hi_spn.gaussian"(%arg20) {mean = -14.446244239807129 : f64, stddev = 0.99685549736022949 : f64} : (f64) -> !hi_spn.probability + %129 = "hi_spn.gaussian"(%arg21) {mean = -14.390015602111816 : f64, stddev = 0.92761713266372681 : f64} : (f64) -> !hi_spn.probability + %130 = "hi_spn.gaussian"(%arg22) {mean = -14.498837471008301 : f64, stddev = 0.86803668737411499 : f64} : (f64) -> !hi_spn.probability + %131 = "hi_spn.gaussian"(%arg23) {mean = -14.460858345031738 : f64, stddev = 0.8387107253074646 : f64} : (f64) -> !hi_spn.probability + %132 = "hi_spn.gaussian"(%arg24) {mean = -14.527970314025879 : f64, stddev = 0.716655433177948 : f64} : (f64) -> !hi_spn.probability + %133 = "hi_spn.gaussian"(%arg25) {mean = -14.570904731750488 : f64, stddev = 0.35508885979652405 : f64} : (f64) -> !hi_spn.probability + %134 = "hi_spn.product"(%108, %109, %110, %111, %112, %113, %114, %115, %116, %117, %118, %119, %120, %121, %122, %123, %124, %125, %126, %127, %128, %129, %130, %131, %132, %133) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %135 = "hi_spn.gaussian"(%arg0) {mean = -12.10405158996582 : f64, stddev = 0.82932960987091064 : f64} : (f64) -> !hi_spn.probability + %136 = "hi_spn.gaussian"(%arg1) {mean = -12.611331939697266 : f64, stddev = 1.4384791851043701 : f64} : (f64) -> !hi_spn.probability + %137 = "hi_spn.gaussian"(%arg2) {mean = -11.826279640197754 : f64, stddev = 1.8871874809265137 : f64} : (f64) -> !hi_spn.probability + %138 = "hi_spn.gaussian"(%arg3) {mean = -11.32281494140625 : f64, stddev = 1.4461213350296021 : f64} : (f64) -> !hi_spn.probability + %139 = "hi_spn.gaussian"(%arg4) {mean = -12.309955596923828 : f64, stddev = 1.1334563493728638 : f64} : (f64) -> !hi_spn.probability + %140 = "hi_spn.gaussian"(%arg5) {mean = -12.109665870666504 : f64, stddev = 1.169951319694519 : f64} : (f64) -> !hi_spn.probability + %141 = "hi_spn.gaussian"(%arg6) {mean = -11.549976348876953 : f64, stddev = 1.2032864093780518 : f64} : (f64) -> !hi_spn.probability + %142 = "hi_spn.gaussian"(%arg7) {mean = -11.617506980895996 : f64, stddev = 1.1078034639358521 : f64} : (f64) -> !hi_spn.probability + %143 = "hi_spn.gaussian"(%arg8) {mean = -11.533123970031738 : f64, stddev = 1.0218119621276855 : f64} : (f64) -> !hi_spn.probability + %144 = "hi_spn.gaussian"(%arg9) {mean = -11.92768383026123 : f64, stddev = 0.98147124052047729 : f64} : (f64) -> !hi_spn.probability + %145 = "hi_spn.gaussian"(%arg10) {mean = -12.666173934936523 : f64, stddev = 1.1082369089126587 : f64} : (f64) -> !hi_spn.probability + %146 = "hi_spn.gaussian"(%arg11) {mean = -12.856383323669434 : f64, stddev = 1.4115911722183228 : f64} : (f64) -> !hi_spn.probability + %147 = "hi_spn.gaussian"(%arg12) {mean = -12.95670223236084 : f64, stddev = 1.2633929252624512 : f64} : (f64) -> !hi_spn.probability + %148 = "hi_spn.gaussian"(%arg13) {mean = -13.341944694519043 : f64, stddev = 1.0164026021957397 : f64} : (f64) -> !hi_spn.probability + %149 = "hi_spn.gaussian"(%arg14) {mean = -13.832265853881836 : f64, stddev = 0.93667340278625488 : f64} : (f64) -> !hi_spn.probability + %150 = "hi_spn.gaussian"(%arg15) {mean = -13.82805347442627 : f64, stddev = 0.89648616313934326 : f64} : (f64) -> !hi_spn.probability + %151 = "hi_spn.gaussian"(%arg16) {mean = -13.879281997680664 : f64, stddev = 0.82228487730026245 : f64} : (f64) -> !hi_spn.probability + %152 = "hi_spn.gaussian"(%arg17) {mean = -13.89295482635498 : f64, stddev = 0.8839956521987915 : f64} : (f64) -> !hi_spn.probability + %153 = "hi_spn.gaussian"(%arg18) {mean = -14.114192962646484 : f64, stddev = 0.78311645984649658 : f64} : (f64) -> !hi_spn.probability + %154 = "hi_spn.gaussian"(%arg19) {mean = -14.176742553710938 : f64, stddev = 0.80813091993331909 : f64} : (f64) -> !hi_spn.probability + %155 = "hi_spn.gaussian"(%arg20) {mean = -14.317062377929688 : f64, stddev = 0.52505064010620117 : f64} : (f64) -> !hi_spn.probability + %156 = "hi_spn.gaussian"(%arg21) {mean = -14.403012275695801 : f64, stddev = 0.63639742136001587 : f64} : (f64) -> !hi_spn.probability + %157 = "hi_spn.gaussian"(%arg22) {mean = -14.533612251281738 : f64, stddev = 0.64418482780456543 : f64} : (f64) -> !hi_spn.probability + %158 = "hi_spn.gaussian"(%arg23) {mean = -14.533967018127441 : f64, stddev = 0.48413392901420593 : f64} : (f64) -> !hi_spn.probability + %159 = "hi_spn.gaussian"(%arg24) {mean = -14.455240249633789 : f64, stddev = 0.55774885416030884 : f64} : (f64) -> !hi_spn.probability + %160 = "hi_spn.gaussian"(%arg25) {mean = -14.514117240905762 : f64, stddev = 0.56677824258804321 : f64} : (f64) -> !hi_spn.probability + %161 = "hi_spn.product"(%135, %136, %137, %138, %139, %140, %141, %142, %143, %144, %145, %146, %147, %148, %149, %150, %151, %152, %153, %154, %155, %156, %157, %158, %159, %160) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %162 = "hi_spn.gaussian"(%arg0) {mean = -11.645013809204102 : f64, stddev = 0.55360662937164307 : f64} : (f64) -> !hi_spn.probability + %163 = "hi_spn.gaussian"(%arg1) {mean = -13.282425880432129 : f64, stddev = 0.6206824779510498 : f64} : (f64) -> !hi_spn.probability + %164 = "hi_spn.gaussian"(%arg2) {mean = -12.816708564758301 : f64, stddev = 0.93745017051696777 : f64} : (f64) -> !hi_spn.probability + %165 = "hi_spn.gaussian"(%arg3) {mean = -12.827051162719727 : f64, stddev = 1.1103771924972534 : f64} : (f64) -> !hi_spn.probability + %166 = "hi_spn.gaussian"(%arg4) {mean = -13.382885932922363 : f64, stddev = 1.0659540891647339 : f64} : (f64) -> !hi_spn.probability + %167 = "hi_spn.gaussian"(%arg5) {mean = -13.313312530517578 : f64, stddev = 1.2071006298065186 : f64} : (f64) -> !hi_spn.probability + %168 = "hi_spn.gaussian"(%arg6) {mean = -13.945999145507813 : f64, stddev = 1.0026148557662964 : f64} : (f64) -> !hi_spn.probability + %169 = "hi_spn.gaussian"(%arg7) {mean = -14.185303688049316 : f64, stddev = 0.64159488677978516 : f64} : (f64) -> !hi_spn.probability + %170 = "hi_spn.gaussian"(%arg8) {mean = -14.098962783813477 : f64, stddev = 0.81748545169830322 : f64} : (f64) -> !hi_spn.probability + %171 = "hi_spn.gaussian"(%arg9) {mean = -14.06093692779541 : f64, stddev = 1.0089191198348999 : f64} : (f64) -> !hi_spn.probability + %172 = "hi_spn.gaussian"(%arg10) {mean = -13.906991004943848 : f64, stddev = 1.4146256446838379 : f64} : (f64) -> !hi_spn.probability + %173 = "hi_spn.gaussian"(%arg11) {mean = -13.577060699462891 : f64, stddev = 1.8225405216217041 : f64} : (f64) -> !hi_spn.probability + %174 = "hi_spn.gaussian"(%arg12) {mean = -13.554561614990234 : f64, stddev = 1.6641085147857666 : f64} : (f64) -> !hi_spn.probability + %175 = "hi_spn.gaussian"(%arg13) {mean = -13.616582870483398 : f64, stddev = 1.3857955932617188 : f64} : (f64) -> !hi_spn.probability + %176 = "hi_spn.gaussian"(%arg14) {mean = -13.666928291320801 : f64, stddev = 1.0615460872650146 : f64} : (f64) -> !hi_spn.probability + %177 = "hi_spn.gaussian"(%arg15) {mean = -13.642898559570313 : f64, stddev = 0.8511195182800293 : f64} : (f64) -> !hi_spn.probability + %178 = "hi_spn.gaussian"(%arg16) {mean = -13.469781875610352 : f64, stddev = 0.51911056041717529 : f64} : (f64) -> !hi_spn.probability + %179 = "hi_spn.gaussian"(%arg17) {mean = -12.935782432556152 : f64, stddev = 0.94953042268753052 : f64} : (f64) -> !hi_spn.probability + %180 = "hi_spn.gaussian"(%arg18) {mean = -12.66943359375 : f64, stddev = 1.2893918752670288 : f64} : (f64) -> !hi_spn.probability + %181 = "hi_spn.gaussian"(%arg19) {mean = -12.092894554138184 : f64, stddev = 1.3546910285949707 : f64} : (f64) -> !hi_spn.probability + %182 = "hi_spn.gaussian"(%arg20) {mean = -11.510499000549316 : f64, stddev = 1.5285800695419312 : f64} : (f64) -> !hi_spn.probability + %183 = "hi_spn.gaussian"(%arg21) {mean = -11.633353233337402 : f64, stddev = 1.6629343032836914 : f64} : (f64) -> !hi_spn.probability + %184 = "hi_spn.gaussian"(%arg22) {mean = -12.151246070861816 : f64, stddev = 1.6099048852920532 : f64} : (f64) -> !hi_spn.probability + %185 = "hi_spn.gaussian"(%arg23) {mean = -12.633271217346191 : f64, stddev = 1.4571080207824707 : f64} : (f64) -> !hi_spn.probability + %186 = "hi_spn.gaussian"(%arg24) {mean = -13.208540916442871 : f64, stddev = 1.2702630758285522 : f64} : (f64) -> !hi_spn.probability + %187 = "hi_spn.gaussian"(%arg25) {mean = -13.329287528991699 : f64, stddev = 1.1586692333221436 : f64} : (f64) -> !hi_spn.probability + %188 = "hi_spn.product"(%162, %163, %164, %165, %166, %167, %168, %169, %170, %171, %172, %173, %174, %175, %176, %177, %178, %179, %180, %181, %182, %183, %184, %185, %186, %187) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %189 = "hi_spn.gaussian"(%arg0) {mean = -10.88200569152832 : f64, stddev = 1.1144530773162842 : f64} : (f64) -> !hi_spn.probability + %190 = "hi_spn.gaussian"(%arg1) {mean = -5.9429030418395996 : f64, stddev = 1.6525270938873291 : f64} : (f64) -> !hi_spn.probability + %191 = "hi_spn.gaussian"(%arg2) {mean = -3.9489202499389648 : f64, stddev = 1.7254819869995117 : f64} : (f64) -> !hi_spn.probability + %192 = "hi_spn.gaussian"(%arg3) {mean = -5.4274463653564453 : f64, stddev = 1.4490045309066772 : f64} : (f64) -> !hi_spn.probability + %193 = "hi_spn.gaussian"(%arg4) {mean = -5.9817910194396973 : f64, stddev = 1.7104581594467163 : f64} : (f64) -> !hi_spn.probability + %194 = "hi_spn.gaussian"(%arg5) {mean = -6.8412342071533203 : f64, stddev = 1.4506911039352417 : f64} : (f64) -> !hi_spn.probability + %195 = "hi_spn.gaussian"(%arg6) {mean = -7.2832598686218262 : f64, stddev = 1.5448834896087646 : f64} : (f64) -> !hi_spn.probability + %196 = "hi_spn.gaussian"(%arg7) {mean = -8.3739805221557617 : f64, stddev = 1.3223825693130493 : f64} : (f64) -> !hi_spn.probability + %197 = "hi_spn.gaussian"(%arg8) {mean = -8.6566429138183594 : f64, stddev = 1.3076304197311401 : f64} : (f64) -> !hi_spn.probability + %198 = "hi_spn.gaussian"(%arg9) {mean = -9.6723222732543945 : f64, stddev = 1.7742989063262939 : f64} : (f64) -> !hi_spn.probability + %199 = "hi_spn.gaussian"(%arg10) {mean = -10.747444152832031 : f64, stddev = 1.3550804853439331 : f64} : (f64) -> !hi_spn.probability + %200 = "hi_spn.gaussian"(%arg11) {mean = -11.370630264282227 : f64, stddev = 1.2625734806060791 : f64} : (f64) -> !hi_spn.probability + %201 = "hi_spn.gaussian"(%arg12) {mean = -11.436898231506348 : f64, stddev = 1.2430018186569214 : f64} : (f64) -> !hi_spn.probability + %202 = "hi_spn.gaussian"(%arg13) {mean = -11.599303245544434 : f64, stddev = 1.2874772548675537 : f64} : (f64) -> !hi_spn.probability + %203 = "hi_spn.gaussian"(%arg14) {mean = -12.156070709228516 : f64, stddev = 1.2028912305831909 : f64} : (f64) -> !hi_spn.probability + %204 = "hi_spn.gaussian"(%arg15) {mean = -11.510618209838867 : f64, stddev = 1.06419837474823 : f64} : (f64) -> !hi_spn.probability + %205 = "hi_spn.gaussian"(%arg16) {mean = -10.697308540344238 : f64, stddev = 1.3114354610443115 : f64} : (f64) -> !hi_spn.probability + %206 = "hi_spn.gaussian"(%arg17) {mean = -11.247462272644043 : f64, stddev = 1.2970254421234131 : f64} : (f64) -> !hi_spn.probability + %207 = "hi_spn.gaussian"(%arg18) {mean = -12.315916061401367 : f64, stddev = 1.0127811431884766 : f64} : (f64) -> !hi_spn.probability + %208 = "hi_spn.gaussian"(%arg19) {mean = -12.817195892333984 : f64, stddev = 1.3591409921646118 : f64} : (f64) -> !hi_spn.probability + %209 = "hi_spn.gaussian"(%arg20) {mean = -12.901086807250977 : f64, stddev = 1.3990134000778198 : f64} : (f64) -> !hi_spn.probability + %210 = "hi_spn.gaussian"(%arg21) {mean = -13.055700302124023 : f64, stddev = 1.1038774251937866 : f64} : (f64) -> !hi_spn.probability + %211 = "hi_spn.gaussian"(%arg22) {mean = -12.81117057800293 : f64, stddev = 1.1016981601715088 : f64} : (f64) -> !hi_spn.probability + %212 = "hi_spn.gaussian"(%arg23) {mean = -12.502376556396484 : f64, stddev = 1.2441240549087524 : f64} : (f64) -> !hi_spn.probability + %213 = "hi_spn.gaussian"(%arg24) {mean = -12.834017753601074 : f64, stddev = 1.2123509645462036 : f64} : (f64) -> !hi_spn.probability + %214 = "hi_spn.gaussian"(%arg25) {mean = -13.285651206970215 : f64, stddev = 1.1948655843734741 : f64} : (f64) -> !hi_spn.probability + %215 = "hi_spn.product"(%189, %190, %191, %192, %193, %194, %195, %196, %197, %198, %199, %200, %201, %202, %203, %204, %205, %206, %207, %208, %209, %210, %211, %212, %213, %214) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %216 = "hi_spn.gaussian"(%arg0) {mean = -10.872588157653809 : f64, stddev = 0.81842154264450073 : f64} : (f64) -> !hi_spn.probability + %217 = "hi_spn.gaussian"(%arg1) {mean = -7.6911544799804688 : f64, stddev = 1.8710019588470459 : f64} : (f64) -> !hi_spn.probability + %218 = "hi_spn.gaussian"(%arg2) {mean = -5.7478251457214355 : f64, stddev = 1.5534957647323608 : f64} : (f64) -> !hi_spn.probability + %219 = "hi_spn.gaussian"(%arg3) {mean = -7.1911287307739258 : f64, stddev = 1.4221434593200684 : f64} : (f64) -> !hi_spn.probability + %220 = "hi_spn.gaussian"(%arg4) {mean = -8.3651208877563477 : f64, stddev = 1.1502407789230347 : f64} : (f64) -> !hi_spn.probability + %221 = "hi_spn.gaussian"(%arg5) {mean = -9.5288200378417968 : f64, stddev = 1.2969111204147339 : f64} : (f64) -> !hi_spn.probability + %222 = "hi_spn.gaussian"(%arg6) {mean = -9.9916448593139648 : f64, stddev = 1.0849907398223877 : f64} : (f64) -> !hi_spn.probability + %223 = "hi_spn.gaussian"(%arg7) {mean = -10.819472312927246 : f64, stddev = 1.4610934257507324 : f64} : (f64) -> !hi_spn.probability + %224 = "hi_spn.gaussian"(%arg8) {mean = -11.124005317687988 : f64, stddev = 1.4117463827133179 : f64} : (f64) -> !hi_spn.probability + %225 = "hi_spn.gaussian"(%arg9) {mean = -11.649805068969727 : f64, stddev = 1.3213168382644653 : f64} : (f64) -> !hi_spn.probability + %226 = "hi_spn.gaussian"(%arg10) {mean = -12.269238471984863 : f64, stddev = 1.2612044811248779 : f64} : (f64) -> !hi_spn.probability + %227 = "hi_spn.gaussian"(%arg11) {mean = -12.896105766296387 : f64, stddev = 0.73286539316177368 : f64} : (f64) -> !hi_spn.probability + %228 = "hi_spn.gaussian"(%arg12) {mean = -12.894018173217773 : f64, stddev = 0.98627632856369019 : f64} : (f64) -> !hi_spn.probability + %229 = "hi_spn.gaussian"(%arg13) {mean = -12.750127792358398 : f64, stddev = 1.3473232984542847 : f64} : (f64) -> !hi_spn.probability + %230 = "hi_spn.gaussian"(%arg14) {mean = -13.271978378295898 : f64, stddev = 1.2734342813491821 : f64} : (f64) -> !hi_spn.probability + %231 = "hi_spn.gaussian"(%arg15) {mean = -13.029507637023926 : f64, stddev = 0.91352295875549316 : f64} : (f64) -> !hi_spn.probability + %232 = "hi_spn.gaussian"(%arg16) {mean = -12.742123603820801 : f64, stddev = 1.1711235046386719 : f64} : (f64) -> !hi_spn.probability + %233 = "hi_spn.gaussian"(%arg17) {mean = -13.264754295349121 : f64, stddev = 1.1187813282012939 : f64} : (f64) -> !hi_spn.probability + %234 = "hi_spn.gaussian"(%arg18) {mean = -13.806636810302734 : f64, stddev = 0.92139971256256103 : f64} : (f64) -> !hi_spn.probability + %235 = "hi_spn.gaussian"(%arg19) {mean = -13.954047203063965 : f64, stddev = 1.0700047016143799 : f64} : (f64) -> !hi_spn.probability + %236 = "hi_spn.gaussian"(%arg20) {mean = -13.978344917297363 : f64, stddev = 0.80982613563537598 : f64} : (f64) -> !hi_spn.probability + %237 = "hi_spn.gaussian"(%arg21) {mean = -14.087822914123535 : f64, stddev = 0.5956883430480957 : f64} : (f64) -> !hi_spn.probability + %238 = "hi_spn.gaussian"(%arg22) {mean = -14.248385429382324 : f64, stddev = 0.45404589176177979 : f64} : (f64) -> !hi_spn.probability + %239 = "hi_spn.gaussian"(%arg23) {mean = -14.329046249389648 : f64, stddev = 0.45627853274345398 : f64} : (f64) -> !hi_spn.probability + %240 = "hi_spn.gaussian"(%arg24) {mean = -14.275317192077637 : f64, stddev = 0.56344431638717651 : f64} : (f64) -> !hi_spn.probability + %241 = "hi_spn.gaussian"(%arg25) {mean = -14.357979774475098 : f64, stddev = 0.54228466749191284 : f64} : (f64) -> !hi_spn.probability + %242 = "hi_spn.product"(%216, %217, %218, %219, %220, %221, %222, %223, %224, %225, %226, %227, %228, %229, %230, %231, %232, %233, %234, %235, %236, %237, %238, %239, %240, %241) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %243 = "hi_spn.gaussian"(%arg0) {mean = -10.695660591125488 : f64, stddev = 1.3020710945129395 : f64} : (f64) -> !hi_spn.probability + %244 = "hi_spn.gaussian"(%arg1) {mean = -10.313096046447754 : f64, stddev = 2.0571777820587158 : f64} : (f64) -> !hi_spn.probability + %245 = "hi_spn.gaussian"(%arg2) {mean = -9.8485498428344727 : f64, stddev = 2.2806837558746338 : f64} : (f64) -> !hi_spn.probability + %246 = "hi_spn.gaussian"(%arg3) {mean = -10.321578979492188 : f64, stddev = 1.6761202812194824 : f64} : (f64) -> !hi_spn.probability + %247 = "hi_spn.gaussian"(%arg4) {mean = -10.248523712158203 : f64, stddev = 1.3539624214172363 : f64} : (f64) -> !hi_spn.probability + %248 = "hi_spn.gaussian"(%arg5) {mean = -10.062666893005371 : f64, stddev = 1.4846806526184082 : f64} : (f64) -> !hi_spn.probability + %249 = "hi_spn.gaussian"(%arg6) {mean = -10.198581695556641 : f64, stddev = 1.4289246797561646 : f64} : (f64) -> !hi_spn.probability + %250 = "hi_spn.gaussian"(%arg7) {mean = -10.273982048034668 : f64, stddev = 1.217682957649231 : f64} : (f64) -> !hi_spn.probability + %251 = "hi_spn.gaussian"(%arg8) {mean = -10.277658462524414 : f64, stddev = 1.1663384437561035 : f64} : (f64) -> !hi_spn.probability + %252 = "hi_spn.gaussian"(%arg9) {mean = -10.304953575134277 : f64, stddev = 0.98772013187408447 : f64} : (f64) -> !hi_spn.probability + %253 = "hi_spn.gaussian"(%arg10) {mean = -10.429068565368652 : f64, stddev = 1.0546449422836304 : f64} : (f64) -> !hi_spn.probability + %254 = "hi_spn.gaussian"(%arg11) {mean = -10.55842399597168 : f64, stddev = 0.95481038093566894 : f64} : (f64) -> !hi_spn.probability + %255 = "hi_spn.gaussian"(%arg12) {mean = -10.577434539794922 : f64, stddev = 1.0489656925201416 : f64} : (f64) -> !hi_spn.probability + %256 = "hi_spn.gaussian"(%arg13) {mean = -10.329004287719727 : f64, stddev = 1.0989531278610229 : f64} : (f64) -> !hi_spn.probability + %257 = "hi_spn.gaussian"(%arg14) {mean = -10.406105995178223 : f64, stddev = 1.1858857870101929 : f64} : (f64) -> !hi_spn.probability + %258 = "hi_spn.gaussian"(%arg15) {mean = -10.330059051513672 : f64, stddev = 1.2221370935440063 : f64} : (f64) -> !hi_spn.probability + %259 = "hi_spn.gaussian"(%arg16) {mean = -10.164320945739746 : f64, stddev = 1.4290332794189453 : f64} : (f64) -> !hi_spn.probability + %260 = "hi_spn.gaussian"(%arg17) {mean = -9.737710952758789 : f64, stddev = 1.3526196479797363 : f64} : (f64) -> !hi_spn.probability + %261 = "hi_spn.gaussian"(%arg18) {mean = -9.929692268371582 : f64, stddev = 1.2603549957275391 : f64} : (f64) -> !hi_spn.probability + %262 = "hi_spn.gaussian"(%arg19) {mean = -9.7228202819824218 : f64, stddev = 1.0962318181991577 : f64} : (f64) -> !hi_spn.probability + %263 = "hi_spn.gaussian"(%arg20) {mean = -9.347783088684082 : f64, stddev = 1.1326436996459961 : f64} : (f64) -> !hi_spn.probability + %264 = "hi_spn.gaussian"(%arg21) {mean = -9.3500709533691406 : f64, stddev = 1.400260329246521 : f64} : (f64) -> !hi_spn.probability + %265 = "hi_spn.gaussian"(%arg22) {mean = -9.0539531707763671 : f64, stddev = 1.8767688274383545 : f64} : (f64) -> !hi_spn.probability + %266 = "hi_spn.gaussian"(%arg23) {mean = -9.1726865768432617 : f64, stddev = 2.1557025909423828 : f64} : (f64) -> !hi_spn.probability + %267 = "hi_spn.gaussian"(%arg24) {mean = -9.3399791717529296 : f64, stddev = 2.1112713813781738 : f64} : (f64) -> !hi_spn.probability + %268 = "hi_spn.gaussian"(%arg25) {mean = -9.4149303436279296 : f64, stddev = 2.0512642860412598 : f64} : (f64) -> !hi_spn.probability + %269 = "hi_spn.product"(%243, %244, %245, %246, %247, %248, %249, %250, %251, %252, %253, %254, %255, %256, %257, %258, %259, %260, %261, %262, %263, %264, %265, %266, %267, %268) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %270 = "hi_spn.gaussian"(%arg0) {mean = -11.011561393737793 : f64, stddev = 1.3464548587799072 : f64} : (f64) -> !hi_spn.probability + %271 = "hi_spn.gaussian"(%arg1) {mean = -11.484539985656738 : f64, stddev = 1.2907588481903076 : f64} : (f64) -> !hi_spn.probability + %272 = "hi_spn.gaussian"(%arg2) {mean = -11.140031814575195 : f64, stddev = 1.2217087745666504 : f64} : (f64) -> !hi_spn.probability + %273 = "hi_spn.gaussian"(%arg3) {mean = -10.571351051330566 : f64, stddev = 1.2158372402191162 : f64} : (f64) -> !hi_spn.probability + %274 = "hi_spn.gaussian"(%arg4) {mean = -10.876766204833984 : f64, stddev = 1.232560396194458 : f64} : (f64) -> !hi_spn.probability + %275 = "hi_spn.gaussian"(%arg5) {mean = -10.769608497619629 : f64, stddev = 1.1533514261245728 : f64} : (f64) -> !hi_spn.probability + %276 = "hi_spn.gaussian"(%arg6) {mean = -10.752179145812988 : f64, stddev = 1.0717220306396484 : f64} : (f64) -> !hi_spn.probability + %277 = "hi_spn.gaussian"(%arg7) {mean = -10.852066040039063 : f64, stddev = 0.95335924625396728 : f64} : (f64) -> !hi_spn.probability + %278 = "hi_spn.gaussian"(%arg8) {mean = -10.849024772644043 : f64, stddev = 0.91154670715332031 : f64} : (f64) -> !hi_spn.probability + %279 = "hi_spn.gaussian"(%arg9) {mean = -11.169876098632813 : f64, stddev = 0.97656524181365966 : f64} : (f64) -> !hi_spn.probability + %280 = "hi_spn.gaussian"(%arg10) {mean = -11.761531829833984 : f64, stddev = 0.99030452966690063 : f64} : (f64) -> !hi_spn.probability + %281 = "hi_spn.gaussian"(%arg11) {mean = -11.99782657623291 : f64, stddev = 1.4022659063339233 : f64} : (f64) -> !hi_spn.probability + %282 = "hi_spn.gaussian"(%arg12) {mean = -11.502655982971191 : f64, stddev = 1.48883056640625 : f64} : (f64) -> !hi_spn.probability + %283 = "hi_spn.gaussian"(%arg13) {mean = -11.587900161743164 : f64, stddev = 1.1238560676574707 : f64} : (f64) -> !hi_spn.probability + %284 = "hi_spn.gaussian"(%arg14) {mean = -12.02272891998291 : f64, stddev = 1.2540545463562012 : f64} : (f64) -> !hi_spn.probability + %285 = "hi_spn.gaussian"(%arg15) {mean = -12.395491600036621 : f64, stddev = 0.92785847187042236 : f64} : (f64) -> !hi_spn.probability + %286 = "hi_spn.gaussian"(%arg16) {mean = -12.362612724304199 : f64, stddev = 0.89953285455703735 : f64} : (f64) -> !hi_spn.probability + %287 = "hi_spn.gaussian"(%arg17) {mean = -12.037958145141602 : f64, stddev = 0.89549624919891357 : f64} : (f64) -> !hi_spn.probability + %288 = "hi_spn.gaussian"(%arg18) {mean = -12.650986671447754 : f64, stddev = 0.71532058715820313 : f64} : (f64) -> !hi_spn.probability + %289 = "hi_spn.gaussian"(%arg19) {mean = -12.813834190368652 : f64, stddev = 0.93615669012069702 : f64} : (f64) -> !hi_spn.probability + %290 = "hi_spn.gaussian"(%arg20) {mean = -12.59834098815918 : f64, stddev = 0.97324097156524658 : f64} : (f64) -> !hi_spn.probability + %291 = "hi_spn.gaussian"(%arg21) {mean = -12.942283630371094 : f64, stddev = 1.1216138601303101 : f64} : (f64) -> !hi_spn.probability + %292 = "hi_spn.gaussian"(%arg22) {mean = -13.136520385742188 : f64, stddev = 1.253537654876709 : f64} : (f64) -> !hi_spn.probability + %293 = "hi_spn.gaussian"(%arg23) {mean = -13.372512817382813 : f64, stddev = 1.1953029632568359 : f64} : (f64) -> !hi_spn.probability + %294 = "hi_spn.gaussian"(%arg24) {mean = -13.476689338684082 : f64, stddev = 1.1636662483215332 : f64} : (f64) -> !hi_spn.probability + %295 = "hi_spn.gaussian"(%arg25) {mean = -13.603638648986816 : f64, stddev = 1.1050925254821777 : f64} : (f64) -> !hi_spn.probability + %296 = "hi_spn.product"(%270, %271, %272, %273, %274, %275, %276, %277, %278, %279, %280, %281, %282, %283, %284, %285, %286, %287, %288, %289, %290, %291, %292, %293, %294, %295) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %297 = "hi_spn.gaussian"(%arg0) {mean = -10.536477088928223 : f64, stddev = 1.573858380317688 : f64} : (f64) -> !hi_spn.probability + %298 = "hi_spn.gaussian"(%arg1) {mean = -10.785096168518066 : f64, stddev = 1.39241623878479 : f64} : (f64) -> !hi_spn.probability + %299 = "hi_spn.gaussian"(%arg2) {mean = -10.532585144042969 : f64, stddev = 1.1160157918930054 : f64} : (f64) -> !hi_spn.probability + %300 = "hi_spn.gaussian"(%arg3) {mean = -10.119543075561523 : f64, stddev = 1.2580939531326294 : f64} : (f64) -> !hi_spn.probability + %301 = "hi_spn.gaussian"(%arg4) {mean = -9.9083328247070313 : f64, stddev = 1.3616124391555786 : f64} : (f64) -> !hi_spn.probability + %302 = "hi_spn.gaussian"(%arg5) {mean = -9.4178047180175781 : f64, stddev = 1.3389015197753906 : f64} : (f64) -> !hi_spn.probability + %303 = "hi_spn.gaussian"(%arg6) {mean = -9.1357297897338867 : f64, stddev = 1.4087536334991455 : f64} : (f64) -> !hi_spn.probability + %304 = "hi_spn.gaussian"(%arg7) {mean = -9.0847587585449219 : f64, stddev = 1.1018122434616089 : f64} : (f64) -> !hi_spn.probability + %305 = "hi_spn.gaussian"(%arg8) {mean = -8.7986536026000977 : f64, stddev = 0.91034013032913208 : f64} : (f64) -> !hi_spn.probability + %306 = "hi_spn.gaussian"(%arg9) {mean = -9.1316843032836914 : f64, stddev = 0.88567811250686646 : f64} : (f64) -> !hi_spn.probability + %307 = "hi_spn.gaussian"(%arg10) {mean = -9.8028707504272461 : f64, stddev = 1.1550403833389282 : f64} : (f64) -> !hi_spn.probability + %308 = "hi_spn.gaussian"(%arg11) {mean = -9.7117681503295898 : f64, stddev = 1.4467626810073853 : f64} : (f64) -> !hi_spn.probability + %309 = "hi_spn.gaussian"(%arg12) {mean = -9.5572147369384765 : f64, stddev = 1.0591788291931152 : f64} : (f64) -> !hi_spn.probability + %310 = "hi_spn.gaussian"(%arg13) {mean = -10.337271690368652 : f64, stddev = 0.95927858352661133 : f64} : (f64) -> !hi_spn.probability + %311 = "hi_spn.gaussian"(%arg14) {mean = -11.307088851928711 : f64, stddev = 1.2965620756149292 : f64} : (f64) -> !hi_spn.probability + %312 = "hi_spn.gaussian"(%arg15) {mean = -11.347599029541016 : f64, stddev = 1.291256308555603 : f64} : (f64) -> !hi_spn.probability + %313 = "hi_spn.gaussian"(%arg16) {mean = -10.912355422973633 : f64, stddev = 0.95412164926528931 : f64} : (f64) -> !hi_spn.probability + %314 = "hi_spn.gaussian"(%arg17) {mean = -11.113116264343262 : f64, stddev = 0.85015624761581421 : f64} : (f64) -> !hi_spn.probability + %315 = "hi_spn.gaussian"(%arg18) {mean = -12.123809814453125 : f64, stddev = 0.90956407785415649 : f64} : (f64) -> !hi_spn.probability + %316 = "hi_spn.gaussian"(%arg19) {mean = -12.09030818939209 : f64, stddev = 0.78027832508087158 : f64} : (f64) -> !hi_spn.probability + %317 = "hi_spn.gaussian"(%arg20) {mean = -12.204034805297852 : f64, stddev = 0.86473739147186279 : f64} : (f64) -> !hi_spn.probability + %318 = "hi_spn.gaussian"(%arg21) {mean = -12.697591781616211 : f64, stddev = 1.0442938804626465 : f64} : (f64) -> !hi_spn.probability + %319 = "hi_spn.gaussian"(%arg22) {mean = -13.195867538452148 : f64, stddev = 1.1451160907745361 : f64} : (f64) -> !hi_spn.probability + %320 = "hi_spn.gaussian"(%arg23) {mean = -13.544260025024414 : f64, stddev = 1.0079716444015503 : f64} : (f64) -> !hi_spn.probability + %321 = "hi_spn.gaussian"(%arg24) {mean = -13.197010040283203 : f64, stddev = 0.90521913766860962 : f64} : (f64) -> !hi_spn.probability + %322 = "hi_spn.gaussian"(%arg25) {mean = -13.540982246398926 : f64, stddev = 1.0950673818588257 : f64} : (f64) -> !hi_spn.probability + %323 = "hi_spn.product"(%297, %298, %299, %300, %301, %302, %303, %304, %305, %306, %307, %308, %309, %310, %311, %312, %313, %314, %315, %316, %317, %318, %319, %320, %321, %322) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %324 = "hi_spn.gaussian"(%arg0) {mean = -9.4802875518798828 : f64, stddev = 1.2016661167144775 : f64} : (f64) -> !hi_spn.probability + %325 = "hi_spn.gaussian"(%arg1) {mean = -4.8333950042724609 : f64, stddev = 1.481621265411377 : f64} : (f64) -> !hi_spn.probability + %326 = "hi_spn.gaussian"(%arg2) {mean = -1.2478560209274292 : f64, stddev = 0.49835783243179321 : f64} : (f64) -> !hi_spn.probability + %327 = "hi_spn.gaussian"(%arg3) {mean = -2.4360332489013672 : f64, stddev = 1.2078313827514648 : f64} : (f64) -> !hi_spn.probability + %328 = "hi_spn.gaussian"(%arg4) {mean = -0.28888186812400818 : f64, stddev = 1.7325667142868042 : f64} : (f64) -> !hi_spn.probability + %329 = "hi_spn.gaussian"(%arg5) {mean = 0.31940388679504395 : f64, stddev = 1.3050998449325562 : f64} : (f64) -> !hi_spn.probability + %330 = "hi_spn.gaussian"(%arg6) {mean = -1.7177269458770752 : f64, stddev = 1.3838937282562256 : f64} : (f64) -> !hi_spn.probability + %331 = "hi_spn.gaussian"(%arg7) {mean = -2.1905002593994141 : f64, stddev = 1.4356948137283325 : f64} : (f64) -> !hi_spn.probability + %332 = "hi_spn.gaussian"(%arg8) {mean = -3.170802116394043 : f64, stddev = 1.344483494758606 : f64} : (f64) -> !hi_spn.probability + %333 = "hi_spn.gaussian"(%arg9) {mean = -4.0211906433105469 : f64, stddev = 1.1359008550643921 : f64} : (f64) -> !hi_spn.probability + %334 = "hi_spn.gaussian"(%arg10) {mean = -3.9940578937530518 : f64, stddev = 0.93107867240905762 : f64} : (f64) -> !hi_spn.probability + %335 = "hi_spn.gaussian"(%arg11) {mean = -3.5179727077484131 : f64, stddev = 1.1148824691772461 : f64} : (f64) -> !hi_spn.probability + %336 = "hi_spn.gaussian"(%arg12) {mean = -2.2015244960784912 : f64, stddev = 1.1211410760879517 : f64} : (f64) -> !hi_spn.probability + %337 = "hi_spn.gaussian"(%arg13) {mean = -2.3716576099395752 : f64, stddev = 1.1725243330001831 : f64} : (f64) -> !hi_spn.probability + %338 = "hi_spn.gaussian"(%arg14) {mean = -3.6844854354858398 : f64, stddev = 1.1407406330108643 : f64} : (f64) -> !hi_spn.probability + %339 = "hi_spn.gaussian"(%arg15) {mean = -6.8022894859313965 : f64, stddev = 1.4141651391983032 : f64} : (f64) -> !hi_spn.probability + %340 = "hi_spn.gaussian"(%arg16) {mean = -9.1092815399169921 : f64, stddev = 1.0012867450714111 : f64} : (f64) -> !hi_spn.probability + %341 = "hi_spn.gaussian"(%arg17) {mean = -10.110542297363281 : f64, stddev = 0.93105554580688477 : f64} : (f64) -> !hi_spn.probability + %342 = "hi_spn.gaussian"(%arg18) {mean = -10.058772087097168 : f64, stddev = 1.3378287553787231 : f64} : (f64) -> !hi_spn.probability + %343 = "hi_spn.gaussian"(%arg19) {mean = -9.347132682800293 : f64, stddev = 1.3808602094650269 : f64} : (f64) -> !hi_spn.probability + %344 = "hi_spn.gaussian"(%arg20) {mean = -8.9064846038818359 : f64, stddev = 1.6692960262298584 : f64} : (f64) -> !hi_spn.probability + %345 = "hi_spn.gaussian"(%arg21) {mean = -8.9264822006225586 : f64, stddev = 1.3320252895355225 : f64} : (f64) -> !hi_spn.probability + %346 = "hi_spn.gaussian"(%arg22) {mean = -9.623652458190918 : f64, stddev = 1.2031350135803223 : f64} : (f64) -> !hi_spn.probability + %347 = "hi_spn.gaussian"(%arg23) {mean = -12.11909008026123 : f64, stddev = 1.0474261045455933 : f64} : (f64) -> !hi_spn.probability + %348 = "hi_spn.gaussian"(%arg24) {mean = -12.752231597900391 : f64, stddev = 0.98192590475082397 : f64} : (f64) -> !hi_spn.probability + %349 = "hi_spn.gaussian"(%arg25) {mean = -11.177624702453613 : f64, stddev = 1.1557686328887939 : f64} : (f64) -> !hi_spn.probability + %350 = "hi_spn.product"(%324, %325, %326, %327, %328, %329, %330, %331, %332, %333, %334, %335, %336, %337, %338, %339, %340, %341, %342, %343, %344, %345, %346, %347, %348, %349) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %351 = "hi_spn.gaussian"(%arg0) {mean = -10.244661331176758 : f64, stddev = 1.5316895246505737 : f64} : (f64) -> !hi_spn.probability + %352 = "hi_spn.gaussian"(%arg1) {mean = -5.1192898750305176 : f64, stddev = 1.5770797729492188 : f64} : (f64) -> !hi_spn.probability + %353 = "hi_spn.gaussian"(%arg2) {mean = -1.3837145566940308 : f64, stddev = 0.59317773580551147 : f64} : (f64) -> !hi_spn.probability + %354 = "hi_spn.gaussian"(%arg3) {mean = -2.3226404190063477 : f64, stddev = 1.696422815322876 : f64} : (f64) -> !hi_spn.probability + %355 = "hi_spn.gaussian"(%arg4) {mean = -1.0260239839553833 : f64, stddev = 1.2376000881195068 : f64} : (f64) -> !hi_spn.probability + %356 = "hi_spn.gaussian"(%arg5) {mean = -0.54633957147598267 : f64, stddev = 1.1976592540740967 : f64} : (f64) -> !hi_spn.probability + %357 = "hi_spn.gaussian"(%arg6) {mean = -0.7690434455871582 : f64, stddev = 0.94166147708892822 : f64} : (f64) -> !hi_spn.probability + %358 = "hi_spn.gaussian"(%arg7) {mean = -1.4979550838470459 : f64, stddev = 1.220375657081604 : f64} : (f64) -> !hi_spn.probability + %359 = "hi_spn.gaussian"(%arg8) {mean = -2.0289249420166016 : f64, stddev = 0.7188180685043335 : f64} : (f64) -> !hi_spn.probability + %360 = "hi_spn.gaussian"(%arg9) {mean = -2.5779931545257568 : f64, stddev = 0.65686935186386108 : f64} : (f64) -> !hi_spn.probability + %361 = "hi_spn.gaussian"(%arg10) {mean = -1.7427757978439331 : f64, stddev = 0.95791494846343994 : f64} : (f64) -> !hi_spn.probability + %362 = "hi_spn.gaussian"(%arg11) {mean = -1.9735974073410034 : f64, stddev = 1.132967472076416 : f64} : (f64) -> !hi_spn.probability + %363 = "hi_spn.gaussian"(%arg12) {mean = -3.0738620758056641 : f64, stddev = 1.1309664249420166 : f64} : (f64) -> !hi_spn.probability + %364 = "hi_spn.gaussian"(%arg13) {mean = -4.2539763450622559 : f64, stddev = 1.1536637544631958 : f64} : (f64) -> !hi_spn.probability + %365 = "hi_spn.gaussian"(%arg14) {mean = -7.3452010154724121 : f64, stddev = 1.3234764337539673 : f64} : (f64) -> !hi_spn.probability + %366 = "hi_spn.gaussian"(%arg15) {mean = -9.9497861862182617 : f64, stddev = 0.98592114448547363 : f64} : (f64) -> !hi_spn.probability + %367 = "hi_spn.gaussian"(%arg16) {mean = -11.16349983215332 : f64, stddev = 0.86218988895416259 : f64} : (f64) -> !hi_spn.probability + %368 = "hi_spn.gaussian"(%arg17) {mean = -11.97676944732666 : f64, stddev = 0.86789566278457642 : f64} : (f64) -> !hi_spn.probability + %369 = "hi_spn.gaussian"(%arg18) {mean = -11.755769729614258 : f64, stddev = 0.84353435039520263 : f64} : (f64) -> !hi_spn.probability + %370 = "hi_spn.gaussian"(%arg19) {mean = -10.544710159301758 : f64, stddev = 1.020220160484314 : f64} : (f64) -> !hi_spn.probability + %371 = "hi_spn.gaussian"(%arg20) {mean = -9.1729812622070313 : f64, stddev = 0.94360077381134033 : f64} : (f64) -> !hi_spn.probability + %372 = "hi_spn.gaussian"(%arg21) {mean = -9.0027523040771484 : f64, stddev = 1.1082609891891479 : f64} : (f64) -> !hi_spn.probability + %373 = "hi_spn.gaussian"(%arg22) {mean = -9.9451274871826171 : f64, stddev = 1.415675163269043 : f64} : (f64) -> !hi_spn.probability + %374 = "hi_spn.gaussian"(%arg23) {mean = -12.941132545471191 : f64, stddev = 0.8447113037109375 : f64} : (f64) -> !hi_spn.probability + %375 = "hi_spn.gaussian"(%arg24) {mean = -13.412550926208496 : f64, stddev = 0.82930845022201538 : f64} : (f64) -> !hi_spn.probability + %376 = "hi_spn.gaussian"(%arg25) {mean = -11.277895927429199 : f64, stddev = 0.90383189916610718 : f64} : (f64) -> !hi_spn.probability + %377 = "hi_spn.product"(%351, %352, %353, %354, %355, %356, %357, %358, %359, %360, %361, %362, %363, %364, %365, %366, %367, %368, %369, %370, %371, %372, %373, %374, %375, %376) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %378 = "hi_spn.gaussian"(%arg0) {mean = -9.3945894241333008 : f64, stddev = 1.1968786716461182 : f64} : (f64) -> !hi_spn.probability + %379 = "hi_spn.gaussian"(%arg1) {mean = -4.5067868232727051 : f64, stddev = 0.92036736011505126 : f64} : (f64) -> !hi_spn.probability + %380 = "hi_spn.gaussian"(%arg2) {mean = -1.3128589391708374 : f64, stddev = 0.34669303894042969 : f64} : (f64) -> !hi_spn.probability + %381 = "hi_spn.gaussian"(%arg3) {mean = -2.8367643356323242 : f64, stddev = 0.92023324966430664 : f64} : (f64) -> !hi_spn.probability + %382 = "hi_spn.gaussian"(%arg4) {mean = 0.02826932817697525 : f64, stddev = 0.86912816762924194 : f64} : (f64) -> !hi_spn.probability + %383 = "hi_spn.gaussian"(%arg5) {mean = 0.42621350288391113 : f64, stddev = 0.97154659032821655 : f64} : (f64) -> !hi_spn.probability + %384 = "hi_spn.gaussian"(%arg6) {mean = 0.5310712456703186 : f64, stddev = 0.87946623563766479 : f64} : (f64) -> !hi_spn.probability + %385 = "hi_spn.gaussian"(%arg7) {mean = 0.549427330493927 : f64, stddev = 0.85752266645431519 : f64} : (f64) -> !hi_spn.probability + %386 = "hi_spn.gaussian"(%arg8) {mean = -0.54700803756713867 : f64, stddev = 0.90864527225494384 : f64} : (f64) -> !hi_spn.probability + %387 = "hi_spn.gaussian"(%arg9) {mean = -1.1817671060562134 : f64, stddev = 0.8781394362449646 : f64} : (f64) -> !hi_spn.probability + %388 = "hi_spn.gaussian"(%arg10) {mean = -1.0398674011230469 : f64, stddev = 0.68396532535552979 : f64} : (f64) -> !hi_spn.probability + %389 = "hi_spn.gaussian"(%arg11) {mean = -1.3924421072006226 : f64, stddev = 1.0113506317138672 : f64} : (f64) -> !hi_spn.probability + %390 = "hi_spn.gaussian"(%arg12) {mean = -2.6821010112762451 : f64, stddev = 1.0329777002334595 : f64} : (f64) -> !hi_spn.probability + %391 = "hi_spn.gaussian"(%arg13) {mean = -3.5581924915313721 : f64, stddev = 0.92293047904968262 : f64} : (f64) -> !hi_spn.probability + %392 = "hi_spn.gaussian"(%arg14) {mean = -5.728360652923584 : f64, stddev = 1.4798064231872559 : f64} : (f64) -> !hi_spn.probability + %393 = "hi_spn.gaussian"(%arg15) {mean = -8.7816715240478515 : f64, stddev = 0.8383527398109436 : f64} : (f64) -> !hi_spn.probability + %394 = "hi_spn.gaussian"(%arg16) {mean = -10.316637992858887 : f64, stddev = 0.73171240091323853 : f64} : (f64) -> !hi_spn.probability + %395 = "hi_spn.gaussian"(%arg17) {mean = -10.848739624023438 : f64, stddev = 0.66426253318786621 : f64} : (f64) -> !hi_spn.probability + %396 = "hi_spn.gaussian"(%arg18) {mean = -10.831462860107422 : f64, stddev = 0.65740138292312622 : f64} : (f64) -> !hi_spn.probability + %397 = "hi_spn.gaussian"(%arg19) {mean = -8.9818572998046875 : f64, stddev = 0.73356473445892334 : f64} : (f64) -> !hi_spn.probability + %398 = "hi_spn.gaussian"(%arg20) {mean = -8.0323762893676758 : f64, stddev = 0.70900267362594604 : f64} : (f64) -> !hi_spn.probability + %399 = "hi_spn.gaussian"(%arg21) {mean = -9.0871553421020508 : f64, stddev = 0.94885432720184326 : f64} : (f64) -> !hi_spn.probability + %400 = "hi_spn.gaussian"(%arg22) {mean = -10.239433288574219 : f64, stddev = 1.1698378324508667 : f64} : (f64) -> !hi_spn.probability + %401 = "hi_spn.gaussian"(%arg23) {mean = -12.538901329040527 : f64, stddev = 0.85491478443145751 : f64} : (f64) -> !hi_spn.probability + %402 = "hi_spn.gaussian"(%arg24) {mean = -12.358306884765625 : f64, stddev = 0.91896212100982666 : f64} : (f64) -> !hi_spn.probability + %403 = "hi_spn.gaussian"(%arg25) {mean = -10.276165962219238 : f64, stddev = 0.65556037425994873 : f64} : (f64) -> !hi_spn.probability + %404 = "hi_spn.product"(%378, %379, %380, %381, %382, %383, %384, %385, %386, %387, %388, %389, %390, %391, %392, %393, %394, %395, %396, %397, %398, %399, %400, %401, %402, %403) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %405 = "hi_spn.gaussian"(%arg0) {mean = -9.4288492202758789 : f64, stddev = 1.8143206834793091 : f64} : (f64) -> !hi_spn.probability + %406 = "hi_spn.gaussian"(%arg1) {mean = -4.2685337066650391 : f64, stddev = 0.93882954120635986 : f64} : (f64) -> !hi_spn.probability + %407 = "hi_spn.gaussian"(%arg2) {mean = -1.8543741703033447 : f64, stddev = 1.1039572954177856 : f64} : (f64) -> !hi_spn.probability + %408 = "hi_spn.gaussian"(%arg3) {mean = -2.9633190631866455 : f64, stddev = 1.0525058507919312 : f64} : (f64) -> !hi_spn.probability + %409 = "hi_spn.gaussian"(%arg4) {mean = -0.82315641641616821 : f64, stddev = 1.6483795642852783 : f64} : (f64) -> !hi_spn.probability + %410 = "hi_spn.gaussian"(%arg5) {mean = -0.75296282768249512 : f64, stddev = 1.6455702781677246 : f64} : (f64) -> !hi_spn.probability + %411 = "hi_spn.gaussian"(%arg6) {mean = -1.2378108501434326 : f64, stddev = 0.94668835401535034 : f64} : (f64) -> !hi_spn.probability + %412 = "hi_spn.gaussian"(%arg7) {mean = -1.8991039991378784 : f64, stddev = 0.85058051347732544 : f64} : (f64) -> !hi_spn.probability + %413 = "hi_spn.gaussian"(%arg8) {mean = -2.8065030574798584 : f64, stddev = 0.73722350597381592 : f64} : (f64) -> !hi_spn.probability + %414 = "hi_spn.gaussian"(%arg9) {mean = -3.8870956897735596 : f64, stddev = 1.1277675628662109 : f64} : (f64) -> !hi_spn.probability + %415 = "hi_spn.gaussian"(%arg10) {mean = -4.2394628524780273 : f64, stddev = 1.2287005186080933 : f64} : (f64) -> !hi_spn.probability + %416 = "hi_spn.gaussian"(%arg11) {mean = -4.243431568145752 : f64, stddev = 1.211699366569519 : f64} : (f64) -> !hi_spn.probability + %417 = "hi_spn.gaussian"(%arg12) {mean = -4.6843423843383789 : f64, stddev = 1.2625079154968262 : f64} : (f64) -> !hi_spn.probability + %418 = "hi_spn.gaussian"(%arg13) {mean = -5.8308682441711426 : f64, stddev = 1.5575803518295288 : f64} : (f64) -> !hi_spn.probability + %419 = "hi_spn.gaussian"(%arg14) {mean = -7.33270263671875 : f64, stddev = 1.192712664604187 : f64} : (f64) -> !hi_spn.probability + %420 = "hi_spn.gaussian"(%arg15) {mean = -7.3210272789001465 : f64, stddev = 1.0465099811553955 : f64} : (f64) -> !hi_spn.probability + %421 = "hi_spn.gaussian"(%arg16) {mean = -6.8135166168212891 : f64, stddev = 1.0390324592590332 : f64} : (f64) -> !hi_spn.probability + %422 = "hi_spn.gaussian"(%arg17) {mean = -7.7793421745300293 : f64, stddev = 0.97518610954284667 : f64} : (f64) -> !hi_spn.probability + %423 = "hi_spn.gaussian"(%arg18) {mean = -8.819615364074707 : f64, stddev = 0.81093412637710571 : f64} : (f64) -> !hi_spn.probability + %424 = "hi_spn.gaussian"(%arg19) {mean = -8.5019330978393555 : f64, stddev = 0.91923016309738159 : f64} : (f64) -> !hi_spn.probability + %425 = "hi_spn.gaussian"(%arg20) {mean = -8.9022274017333984 : f64, stddev = 1.092939019203186 : f64} : (f64) -> !hi_spn.probability + %426 = "hi_spn.gaussian"(%arg21) {mean = -9.8470964431762695 : f64, stddev = 1.3017936944961548 : f64} : (f64) -> !hi_spn.probability + %427 = "hi_spn.gaussian"(%arg22) {mean = -10.357172966003418 : f64, stddev = 1.7064738273620605 : f64} : (f64) -> !hi_spn.probability + %428 = "hi_spn.gaussian"(%arg23) {mean = -10.793742179870605 : f64, stddev = 1.5534816980361938 : f64} : (f64) -> !hi_spn.probability + %429 = "hi_spn.gaussian"(%arg24) {mean = -11.999658584594727 : f64, stddev = 1.2650492191314697 : f64} : (f64) -> !hi_spn.probability + %430 = "hi_spn.gaussian"(%arg25) {mean = -10.905712127685547 : f64, stddev = 0.93530386686325073 : f64} : (f64) -> !hi_spn.probability + %431 = "hi_spn.product"(%405, %406, %407, %408, %409, %410, %411, %412, %413, %414, %415, %416, %417, %418, %419, %420, %421, %422, %423, %424, %425, %426, %427, %428, %429, %430) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %432 = "hi_spn.gaussian"(%arg0) {mean = -9.153386116027832 : f64, stddev = 1.4733750820159912 : f64} : (f64) -> !hi_spn.probability + %433 = "hi_spn.gaussian"(%arg1) {mean = -3.8400142192840576 : f64, stddev = 0.46866366267204285 : f64} : (f64) -> !hi_spn.probability + %434 = "hi_spn.gaussian"(%arg2) {mean = -1.40309739112854 : f64, stddev = 0.56098437309265137 : f64} : (f64) -> !hi_spn.probability + %435 = "hi_spn.gaussian"(%arg3) {mean = -3.2416553497314453 : f64, stddev = 0.82255464792251587 : f64} : (f64) -> !hi_spn.probability + %436 = "hi_spn.gaussian"(%arg4) {mean = -0.28104966878890991 : f64, stddev = 0.78045332431793212 : f64} : (f64) -> !hi_spn.probability + %437 = "hi_spn.gaussian"(%arg5) {mean = -0.58018600940704346 : f64, stddev = 1.198671817779541 : f64} : (f64) -> !hi_spn.probability + %438 = "hi_spn.gaussian"(%arg6) {mean = 0.62100893259048462 : f64, stddev = 0.88521146774291992 : f64} : (f64) -> !hi_spn.probability + %439 = "hi_spn.gaussian"(%arg7) {mean = 0.012893327511847019 : f64, stddev = 0.78984761238098145 : f64} : (f64) -> !hi_spn.probability + %440 = "hi_spn.gaussian"(%arg8) {mean = -0.4524359405040741 : f64, stddev = 1.5798650979995728 : f64} : (f64) -> !hi_spn.probability + %441 = "hi_spn.gaussian"(%arg9) {mean = -1.902164101600647 : f64, stddev = 1.214685320854187 : f64} : (f64) -> !hi_spn.probability + %442 = "hi_spn.gaussian"(%arg10) {mean = -2.2024378776550293 : f64, stddev = 1.068615198135376 : f64} : (f64) -> !hi_spn.probability + %443 = "hi_spn.gaussian"(%arg11) {mean = -1.830341100692749 : f64, stddev = 1.0227217674255371 : f64} : (f64) -> !hi_spn.probability + %444 = "hi_spn.gaussian"(%arg12) {mean = -2.9235310554504395 : f64, stddev = 1.1306984424591064 : f64} : (f64) -> !hi_spn.probability + %445 = "hi_spn.gaussian"(%arg13) {mean = -4.7543563842773438 : f64, stddev = 1.1527180671691895 : f64} : (f64) -> !hi_spn.probability + %446 = "hi_spn.gaussian"(%arg14) {mean = -6.138516902923584 : f64, stddev = 1.0490621328353882 : f64} : (f64) -> !hi_spn.probability + %447 = "hi_spn.gaussian"(%arg15) {mean = -6.1210379600524902 : f64, stddev = 1.08812415599823 : f64} : (f64) -> !hi_spn.probability + %448 = "hi_spn.gaussian"(%arg16) {mean = -6.0255622863769531 : f64, stddev = 1.1006985902786255 : f64} : (f64) -> !hi_spn.probability + %449 = "hi_spn.gaussian"(%arg17) {mean = -6.9525771141052246 : f64, stddev = 1.3719327449798584 : f64} : (f64) -> !hi_spn.probability + %450 = "hi_spn.gaussian"(%arg18) {mean = -8.1175413131713867 : f64, stddev = 1.0676044225692749 : f64} : (f64) -> !hi_spn.probability + %451 = "hi_spn.gaussian"(%arg19) {mean = -7.2368388175964355 : f64, stddev = 0.74669939279556274 : f64} : (f64) -> !hi_spn.probability + %452 = "hi_spn.gaussian"(%arg20) {mean = -7.8616113662719727 : f64, stddev = 0.86588001251220703 : f64} : (f64) -> !hi_spn.probability + %453 = "hi_spn.gaussian"(%arg21) {mean = -8.9879474639892578 : f64, stddev = 0.9161456823348999 : f64} : (f64) -> !hi_spn.probability + %454 = "hi_spn.gaussian"(%arg22) {mean = -9.705348014831543 : f64, stddev = 1.0296834707260132 : f64} : (f64) -> !hi_spn.probability + %455 = "hi_spn.gaussian"(%arg23) {mean = -10.282757759094238 : f64, stddev = 1.1020412445068359 : f64} : (f64) -> !hi_spn.probability + %456 = "hi_spn.gaussian"(%arg24) {mean = -11.667238235473633 : f64, stddev = 0.77787995338439941 : f64} : (f64) -> !hi_spn.probability + %457 = "hi_spn.gaussian"(%arg25) {mean = -10.359124183654785 : f64, stddev = 0.85552448034286499 : f64} : (f64) -> !hi_spn.probability + %458 = "hi_spn.product"(%432, %433, %434, %435, %436, %437, %438, %439, %440, %441, %442, %443, %444, %445, %446, %447, %448, %449, %450, %451, %452, %453, %454, %455, %456, %457) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %459 = "hi_spn.gaussian"(%arg0) {mean = -9.0204505920410156 : f64, stddev = 1.3453449010848999 : f64} : (f64) -> !hi_spn.probability + %460 = "hi_spn.gaussian"(%arg1) {mean = -4.8780498504638672 : f64, stddev = 1.2612115144729614 : f64} : (f64) -> !hi_spn.probability + %461 = "hi_spn.gaussian"(%arg2) {mean = -1.2555062770843506 : f64, stddev = 0.44067305326461792 : f64} : (f64) -> !hi_spn.probability + %462 = "hi_spn.gaussian"(%arg3) {mean = -2.5377500057220459 : f64, stddev = 0.85863637924194336 : f64} : (f64) -> !hi_spn.probability + %463 = "hi_spn.gaussian"(%arg4) {mean = -0.11212816834449768 : f64, stddev = 1.5364323854446411 : f64} : (f64) -> !hi_spn.probability + %464 = "hi_spn.gaussian"(%arg5) {mean = 0.75262928009033203 : f64, stddev = 1.1319175958633423 : f64} : (f64) -> !hi_spn.probability + %465 = "hi_spn.gaussian"(%arg6) {mean = -0.94725441932678222 : f64, stddev = 1.0431869029998779 : f64} : (f64) -> !hi_spn.probability + %466 = "hi_spn.gaussian"(%arg7) {mean = -0.84202224016189575 : f64, stddev = 1.2158206701278687 : f64} : (f64) -> !hi_spn.probability + %467 = "hi_spn.gaussian"(%arg8) {mean = -1.1578606367111206 : f64, stddev = 1.0248656272888184 : f64} : (f64) -> !hi_spn.probability + %468 = "hi_spn.gaussian"(%arg9) {mean = -1.6426748037338257 : f64, stddev = 0.93990784883499146 : f64} : (f64) -> !hi_spn.probability + %469 = "hi_spn.gaussian"(%arg10) {mean = -3.2194743156433105 : f64, stddev = 1.0770282745361328 : f64} : (f64) -> !hi_spn.probability + %470 = "hi_spn.gaussian"(%arg11) {mean = -5.7863335609436035 : f64, stddev = 1.0948958396911621 : f64} : (f64) -> !hi_spn.probability + %471 = "hi_spn.gaussian"(%arg12) {mean = -7.810737133026123 : f64, stddev = 0.83867120742797852 : f64} : (f64) -> !hi_spn.probability + %472 = "hi_spn.gaussian"(%arg13) {mean = -8.7175331115722656 : f64, stddev = 0.77042508125305176 : f64} : (f64) -> !hi_spn.probability + %473 = "hi_spn.gaussian"(%arg14) {mean = -9.799311637878418 : f64, stddev = 0.69780623912811279 : f64} : (f64) -> !hi_spn.probability + %474 = "hi_spn.gaussian"(%arg15) {mean = -9.6670436859130859 : f64, stddev = 0.85277092456817626 : f64} : (f64) -> !hi_spn.probability + %475 = "hi_spn.gaussian"(%arg16) {mean = -9.0194339752197265 : f64, stddev = 1.1196832656860352 : f64} : (f64) -> !hi_spn.probability + %476 = "hi_spn.gaussian"(%arg17) {mean = -7.5995402336120605 : f64, stddev = 0.94487285614013671 : f64} : (f64) -> !hi_spn.probability + %477 = "hi_spn.gaussian"(%arg18) {mean = -7.928624153137207 : f64, stddev = 1.1966493129730225 : f64} : (f64) -> !hi_spn.probability + %478 = "hi_spn.gaussian"(%arg19) {mean = -7.6685009002685546 : f64, stddev = 0.90138554573059082 : f64} : (f64) -> !hi_spn.probability + %479 = "hi_spn.gaussian"(%arg20) {mean = -7.9303784370422363 : f64, stddev = 0.80610108375549316 : f64} : (f64) -> !hi_spn.probability + %480 = "hi_spn.gaussian"(%arg21) {mean = -8.5051107406616211 : f64, stddev = 0.89962869882583618 : f64} : (f64) -> !hi_spn.probability + %481 = "hi_spn.gaussian"(%arg22) {mean = -8.5786447525024414 : f64, stddev = 1.384386420249939 : f64} : (f64) -> !hi_spn.probability + %482 = "hi_spn.gaussian"(%arg23) {mean = -9.5228633880615234 : f64, stddev = 1.6073061227798462 : f64} : (f64) -> !hi_spn.probability + %483 = "hi_spn.gaussian"(%arg24) {mean = -11.566178321838379 : f64, stddev = 1.0442947149276733 : f64} : (f64) -> !hi_spn.probability + %484 = "hi_spn.gaussian"(%arg25) {mean = -11.021327972412109 : f64, stddev = 0.45648452639579773 : f64} : (f64) -> !hi_spn.probability + %485 = "hi_spn.product"(%459, %460, %461, %462, %463, %464, %465, %466, %467, %468, %469, %470, %471, %472, %473, %474, %475, %476, %477, %478, %479, %480, %481, %482, %483, %484) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %486 = "hi_spn.gaussian"(%arg0) {mean = -10.476468086242676 : f64, stddev = 1.3651977777481079 : f64} : (f64) -> !hi_spn.probability + %487 = "hi_spn.gaussian"(%arg1) {mean = -4.1006040573120117 : f64, stddev = 0.78400856256484985 : f64} : (f64) -> !hi_spn.probability + %488 = "hi_spn.gaussian"(%arg2) {mean = -2.2106492519378662 : f64, stddev = 0.67379695177078247 : f64} : (f64) -> !hi_spn.probability + %489 = "hi_spn.gaussian"(%arg3) {mean = -4.1093616485595703 : f64, stddev = 0.78447991609573364 : f64} : (f64) -> !hi_spn.probability + %490 = "hi_spn.gaussian"(%arg4) {mean = -2.0314867496490479 : f64, stddev = 0.8128814697265625 : f64} : (f64) -> !hi_spn.probability + %491 = "hi_spn.gaussian"(%arg5) {mean = -2.4630053043365479 : f64, stddev = 0.50839203596115112 : f64} : (f64) -> !hi_spn.probability + %492 = "hi_spn.gaussian"(%arg6) {mean = -0.28948631882667542 : f64, stddev = 0.75648003816604614 : f64} : (f64) -> !hi_spn.probability + %493 = "hi_spn.gaussian"(%arg7) {mean = -0.58655941486358643 : f64, stddev = 0.55669635534286499 : f64} : (f64) -> !hi_spn.probability + %494 = "hi_spn.gaussian"(%arg8) {mean = -0.49795010685920715 : f64, stddev = 0.89552021026611328 : f64} : (f64) -> !hi_spn.probability + %495 = "hi_spn.gaussian"(%arg9) {mean = -1.4567451477050781 : f64, stddev = 0.95348000526428222 : f64} : (f64) -> !hi_spn.probability + %496 = "hi_spn.gaussian"(%arg10) {mean = -1.8157626390457153 : f64, stddev = 0.86164307594299316 : f64} : (f64) -> !hi_spn.probability + %497 = "hi_spn.gaussian"(%arg11) {mean = -3.3574516773223877 : f64, stddev = 1.1278407573699951 : f64} : (f64) -> !hi_spn.probability + %498 = "hi_spn.gaussian"(%arg12) {mean = -5.9180998802185059 : f64, stddev = 1.0012882947921753 : f64} : (f64) -> !hi_spn.probability + %499 = "hi_spn.gaussian"(%arg13) {mean = -7.2939929962158203 : f64, stddev = 0.78831362724304199 : f64} : (f64) -> !hi_spn.probability + %500 = "hi_spn.gaussian"(%arg14) {mean = -8.4359264373779296 : f64, stddev = 0.66446506977081299 : f64} : (f64) -> !hi_spn.probability + %501 = "hi_spn.gaussian"(%arg15) {mean = -8.2950983047485352 : f64, stddev = 0.72655582427978516 : f64} : (f64) -> !hi_spn.probability + %502 = "hi_spn.gaussian"(%arg16) {mean = -8.6237173080444336 : f64, stddev = 0.69902801513671875 : f64} : (f64) -> !hi_spn.probability + %503 = "hi_spn.gaussian"(%arg17) {mean = -7.651552677154541 : f64, stddev = 1.2274740934371948 : f64} : (f64) -> !hi_spn.probability + %504 = "hi_spn.gaussian"(%arg18) {mean = -6.9707551002502441 : f64, stddev = 0.67151403427124023 : f64} : (f64) -> !hi_spn.probability + %505 = "hi_spn.gaussian"(%arg19) {mean = -6.990541934967041 : f64, stddev = 0.91399347782135009 : f64} : (f64) -> !hi_spn.probability + %506 = "hi_spn.gaussian"(%arg20) {mean = -7.0826106071472168 : f64, stddev = 0.6609991192817688 : f64} : (f64) -> !hi_spn.probability + %507 = "hi_spn.gaussian"(%arg21) {mean = -9.092233657836914 : f64, stddev = 0.96371352672576904 : f64} : (f64) -> !hi_spn.probability + %508 = "hi_spn.gaussian"(%arg22) {mean = -8.4635486602783203 : f64, stddev = 0.843517005443573 : f64} : (f64) -> !hi_spn.probability + %509 = "hi_spn.gaussian"(%arg23) {mean = -9.4607295989990234 : f64, stddev = 1.4316180944442749 : f64} : (f64) -> !hi_spn.probability + %510 = "hi_spn.gaussian"(%arg24) {mean = -11.996702194213867 : f64, stddev = 1.0481323003768921 : f64} : (f64) -> !hi_spn.probability + %511 = "hi_spn.gaussian"(%arg25) {mean = -11.253396034240723 : f64, stddev = 0.84694206714630126 : f64} : (f64) -> !hi_spn.probability + %512 = "hi_spn.product"(%486, %487, %488, %489, %490, %491, %492, %493, %494, %495, %496, %497, %498, %499, %500, %501, %502, %503, %504, %505, %506, %507, %508, %509, %510, %511) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %513 = "hi_spn.gaussian"(%arg0) {mean = -9.1537408828735352 : f64, stddev = 1.3647329807281494 : f64} : (f64) -> !hi_spn.probability + %514 = "hi_spn.gaussian"(%arg1) {mean = -4.1984939575195313 : f64, stddev = 0.90464174747467041 : f64} : (f64) -> !hi_spn.probability + %515 = "hi_spn.gaussian"(%arg2) {mean = -1.3003273010253906 : f64, stddev = 0.49154952168464661 : f64} : (f64) -> !hi_spn.probability + %516 = "hi_spn.gaussian"(%arg3) {mean = -2.9839680194854736 : f64, stddev = 0.84153890609741211 : f64} : (f64) -> !hi_spn.probability + %517 = "hi_spn.gaussian"(%arg4) {mean = -0.32501798868179321 : f64, stddev = 0.76971489191055298 : f64} : (f64) -> !hi_spn.probability + %518 = "hi_spn.gaussian"(%arg5) {mean = -0.18823693692684174 : f64, stddev = 1.2353429794311523 : f64} : (f64) -> !hi_spn.probability + %519 = "hi_spn.gaussian"(%arg6) {mean = 0.65303677320480347 : f64, stddev = 0.63579827547073364 : f64} : (f64) -> !hi_spn.probability + %520 = "hi_spn.gaussian"(%arg7) {mean = 0.5496094822883606 : f64, stddev = 0.89253050088882446 : f64} : (f64) -> !hi_spn.probability + %521 = "hi_spn.gaussian"(%arg8) {mean = 0.25877198576927185 : f64, stddev = 1.3025667667388916 : f64} : (f64) -> !hi_spn.probability + %522 = "hi_spn.gaussian"(%arg9) {mean = -0.83687865734100341 : f64, stddev = 1.0308387279510498 : f64} : (f64) -> !hi_spn.probability + %523 = "hi_spn.gaussian"(%arg10) {mean = -1.1256893873214722 : f64, stddev = 0.7142026424407959 : f64} : (f64) -> !hi_spn.probability + %524 = "hi_spn.gaussian"(%arg11) {mean = -2.6882007122039795 : f64, stddev = 1.3497539758682251 : f64} : (f64) -> !hi_spn.probability + %525 = "hi_spn.gaussian"(%arg12) {mean = -5.2889409065246582 : f64, stddev = 0.75630968809127808 : f64} : (f64) -> !hi_spn.probability + %526 = "hi_spn.gaussian"(%arg13) {mean = -6.3619189262390137 : f64, stddev = 0.64617186784744263 : f64} : (f64) -> !hi_spn.probability + %527 = "hi_spn.gaussian"(%arg14) {mean = -7.6186404228210449 : f64, stddev = 0.81008929014205933 : f64} : (f64) -> !hi_spn.probability + %528 = "hi_spn.gaussian"(%arg15) {mean = -7.6665201187133789 : f64, stddev = 1.1533548831939697 : f64} : (f64) -> !hi_spn.probability + %529 = "hi_spn.gaussian"(%arg16) {mean = -7.0475645065307617 : f64, stddev = 1.101231575012207 : f64} : (f64) -> !hi_spn.probability + %530 = "hi_spn.gaussian"(%arg17) {mean = -6.3889970779418945 : f64, stddev = 1.2492735385894775 : f64} : (f64) -> !hi_spn.probability + %531 = "hi_spn.gaussian"(%arg18) {mean = -7.1448163986206055 : f64, stddev = 1.2098462581634521 : f64} : (f64) -> !hi_spn.probability + %532 = "hi_spn.gaussian"(%arg19) {mean = -6.9379415512084961 : f64, stddev = 0.95443522930145263 : f64} : (f64) -> !hi_spn.probability + %533 = "hi_spn.gaussian"(%arg20) {mean = -6.9723100662231445 : f64, stddev = 0.85347449779510498 : f64} : (f64) -> !hi_spn.probability + %534 = "hi_spn.gaussian"(%arg21) {mean = -8.2871971130371094 : f64, stddev = 0.92305731773376465 : f64} : (f64) -> !hi_spn.probability + %535 = "hi_spn.gaussian"(%arg22) {mean = -8.8254022598266602 : f64, stddev = 1.0520280599594116 : f64} : (f64) -> !hi_spn.probability + %536 = "hi_spn.gaussian"(%arg23) {mean = -9.9435014724731445 : f64, stddev = 1.1024428606033325 : f64} : (f64) -> !hi_spn.probability + %537 = "hi_spn.gaussian"(%arg24) {mean = -11.73024845123291 : f64, stddev = 0.99935430288314819 : f64} : (f64) -> !hi_spn.probability + %538 = "hi_spn.gaussian"(%arg25) {mean = -10.479912757873535 : f64, stddev = 1.0445784330368042 : f64} : (f64) -> !hi_spn.probability + %539 = "hi_spn.product"(%513, %514, %515, %516, %517, %518, %519, %520, %521, %522, %523, %524, %525, %526, %527, %528, %529, %530, %531, %532, %533, %534, %535, %536, %537, %538) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %540 = "hi_spn.gaussian"(%arg0) {mean = -8.7692985534667969 : f64, stddev = 1.5315520763397217 : f64} : (f64) -> !hi_spn.probability + %541 = "hi_spn.gaussian"(%arg1) {mean = -6.1080245971679688 : f64, stddev = 1.5822528600692749 : f64} : (f64) -> !hi_spn.probability + %542 = "hi_spn.gaussian"(%arg2) {mean = -0.8311806321144104 : f64, stddev = 0.56920838356018066 : f64} : (f64) -> !hi_spn.probability + %543 = "hi_spn.gaussian"(%arg3) {mean = -1.4660282135009766 : f64, stddev = 1.3357874155044556 : f64} : (f64) -> !hi_spn.probability + %544 = "hi_spn.gaussian"(%arg4) {mean = -1.8440208435058594 : f64, stddev = 1.7737078666687012 : f64} : (f64) -> !hi_spn.probability + %545 = "hi_spn.gaussian"(%arg5) {mean = 0.92526417970657349 : f64, stddev = 1.371618390083313 : f64} : (f64) -> !hi_spn.probability + %546 = "hi_spn.gaussian"(%arg6) {mean = 0.0046593393199145794 : f64, stddev = 1.2753709554672241 : f64} : (f64) -> !hi_spn.probability + %547 = "hi_spn.gaussian"(%arg7) {mean = 0.95336782932281494 : f64, stddev = 1.166822075843811 : f64} : (f64) -> !hi_spn.probability + %548 = "hi_spn.gaussian"(%arg8) {mean = -0.21680940687656403 : f64, stddev = 1.4069637060165405 : f64} : (f64) -> !hi_spn.probability + %549 = "hi_spn.gaussian"(%arg9) {mean = -1.6752274036407471 : f64, stddev = 1.0960190296173096 : f64} : (f64) -> !hi_spn.probability + %550 = "hi_spn.gaussian"(%arg10) {mean = -3.2760834693908691 : f64, stddev = 1.1606998443603516 : f64} : (f64) -> !hi_spn.probability + %551 = "hi_spn.gaussian"(%arg11) {mean = -3.5717382431030273 : f64, stddev = 1.3427019119262695 : f64} : (f64) -> !hi_spn.probability + %552 = "hi_spn.gaussian"(%arg12) {mean = -2.9794425964355469 : f64, stddev = 1.4287483692169189 : f64} : (f64) -> !hi_spn.probability + %553 = "hi_spn.gaussian"(%arg13) {mean = -2.5298645496368408 : f64, stddev = 1.3399711847305298 : f64} : (f64) -> !hi_spn.probability + %554 = "hi_spn.gaussian"(%arg14) {mean = -3.2623114585876465 : f64, stddev = 1.5035918951034546 : f64} : (f64) -> !hi_spn.probability + %555 = "hi_spn.gaussian"(%arg15) {mean = -4.2148947715759277 : f64, stddev = 0.84420418739318848 : f64} : (f64) -> !hi_spn.probability + %556 = "hi_spn.gaussian"(%arg16) {mean = -3.6074843406677246 : f64, stddev = 0.74930191040039063 : f64} : (f64) -> !hi_spn.probability + %557 = "hi_spn.gaussian"(%arg17) {mean = -3.4165441989898682 : f64, stddev = 0.76345783472061157 : f64} : (f64) -> !hi_spn.probability + %558 = "hi_spn.gaussian"(%arg18) {mean = -5.0396256446838379 : f64, stddev = 0.99241995811462402 : f64} : (f64) -> !hi_spn.probability + %559 = "hi_spn.gaussian"(%arg19) {mean = -5.4429912567138672 : f64, stddev = 0.7015453577041626 : f64} : (f64) -> !hi_spn.probability + %560 = "hi_spn.gaussian"(%arg20) {mean = -5.2176666259765625 : f64, stddev = 1.0081747770309448 : f64} : (f64) -> !hi_spn.probability + %561 = "hi_spn.gaussian"(%arg21) {mean = -5.9505085945129395 : f64, stddev = 0.90125596523284912 : f64} : (f64) -> !hi_spn.probability + %562 = "hi_spn.gaussian"(%arg22) {mean = -6.3531856536865234 : f64, stddev = 0.87796205282211304 : f64} : (f64) -> !hi_spn.probability + %563 = "hi_spn.gaussian"(%arg23) {mean = -7.8645100593566895 : f64, stddev = 1.0376784801483154 : f64} : (f64) -> !hi_spn.probability + %564 = "hi_spn.gaussian"(%arg24) {mean = -10.197491645812988 : f64, stddev = 1.1562715768814087 : f64} : (f64) -> !hi_spn.probability + %565 = "hi_spn.gaussian"(%arg25) {mean = -10.325466156005859 : f64, stddev = 1.0395025014877319 : f64} : (f64) -> !hi_spn.probability + %566 = "hi_spn.product"(%540, %541, %542, %543, %544, %545, %546, %547, %548, %549, %550, %551, %552, %553, %554, %555, %556, %557, %558, %559, %560, %561, %562, %563, %564, %565) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %567 = "hi_spn.gaussian"(%arg0) {mean = -9.9981927871704102 : f64, stddev = 1.349079966545105 : f64} : (f64) -> !hi_spn.probability + %568 = "hi_spn.gaussian"(%arg1) {mean = -9.5111093521118164 : f64, stddev = 1.0804729461669922 : f64} : (f64) -> !hi_spn.probability + %569 = "hi_spn.gaussian"(%arg2) {mean = -0.4326484203338623 : f64, stddev = 0.11743561178445816 : f64} : (f64) -> !hi_spn.probability + %570 = "hi_spn.gaussian"(%arg3) {mean = 0.010107521899044514 : f64, stddev = 0.41620826721191406 : f64} : (f64) -> !hi_spn.probability + %571 = "hi_spn.gaussian"(%arg4) {mean = -6.3572807312011719 : f64, stddev = 1.4624013900756836 : f64} : (f64) -> !hi_spn.probability + %572 = "hi_spn.gaussian"(%arg5) {mean = 0.41814729571342468 : f64, stddev = 0.84322875738143921 : f64} : (f64) -> !hi_spn.probability + %573 = "hi_spn.gaussian"(%arg6) {mean = -0.42156770825386047 : f64, stddev = 1.0614259243011475 : f64} : (f64) -> !hi_spn.probability + %574 = "hi_spn.gaussian"(%arg7) {mean = -1.0652281045913696 : f64, stddev = 1.6961284875869751 : f64} : (f64) -> !hi_spn.probability + %575 = "hi_spn.gaussian"(%arg8) {mean = -1.1810282468795776 : f64, stddev = 1.0225800275802612 : f64} : (f64) -> !hi_spn.probability + %576 = "hi_spn.gaussian"(%arg9) {mean = -3.3692586421966553 : f64, stddev = 1.2080914974212646 : f64} : (f64) -> !hi_spn.probability + %577 = "hi_spn.gaussian"(%arg10) {mean = -4.1349349021911621 : f64, stddev = 0.60587596893310547 : f64} : (f64) -> !hi_spn.probability + %578 = "hi_spn.gaussian"(%arg11) {mean = -4.2974543571472168 : f64, stddev = 0.4851706326007843 : f64} : (f64) -> !hi_spn.probability + %579 = "hi_spn.gaussian"(%arg12) {mean = -2.4741356372833252 : f64, stddev = 0.63358306884765625 : f64} : (f64) -> !hi_spn.probability + %580 = "hi_spn.gaussian"(%arg13) {mean = -2.4334352016448975 : f64, stddev = 1.0984925031661987 : f64} : (f64) -> !hi_spn.probability + %581 = "hi_spn.gaussian"(%arg14) {mean = -3.4565970897674561 : f64, stddev = 1.2904980182647705 : f64} : (f64) -> !hi_spn.probability + %582 = "hi_spn.gaussian"(%arg15) {mean = -4.7016549110412598 : f64, stddev = 0.82111191749572754 : f64} : (f64) -> !hi_spn.probability + %583 = "hi_spn.gaussian"(%arg16) {mean = -6.5498580932617188 : f64, stddev = 0.90290820598602294 : f64} : (f64) -> !hi_spn.probability + %584 = "hi_spn.gaussian"(%arg17) {mean = -6.8462090492248535 : f64, stddev = 1.3959685564041138 : f64} : (f64) -> !hi_spn.probability + %585 = "hi_spn.gaussian"(%arg18) {mean = -7.4271683692932129 : f64, stddev = 1.5763394832611084 : f64} : (f64) -> !hi_spn.probability + %586 = "hi_spn.gaussian"(%arg19) {mean = -7.0357718467712402 : f64, stddev = 0.771068274974823 : f64} : (f64) -> !hi_spn.probability + %587 = "hi_spn.gaussian"(%arg20) {mean = -7.0562090873718262 : f64, stddev = 0.72667789459228516 : f64} : (f64) -> !hi_spn.probability + %588 = "hi_spn.gaussian"(%arg21) {mean = -7.519690990447998 : f64, stddev = 1.0827898979187012 : f64} : (f64) -> !hi_spn.probability + %589 = "hi_spn.gaussian"(%arg22) {mean = -8.1989831924438477 : f64, stddev = 0.77813369035720825 : f64} : (f64) -> !hi_spn.probability + %590 = "hi_spn.gaussian"(%arg23) {mean = -10.648179054260254 : f64, stddev = 1.4898028373718262 : f64} : (f64) -> !hi_spn.probability + %591 = "hi_spn.gaussian"(%arg24) {mean = -12.422126770019531 : f64, stddev = 0.54856288433074951 : f64} : (f64) -> !hi_spn.probability + %592 = "hi_spn.gaussian"(%arg25) {mean = -10.197339057922363 : f64, stddev = 0.77346521615982056 : f64} : (f64) -> !hi_spn.probability + %593 = "hi_spn.product"(%567, %568, %569, %570, %571, %572, %573, %574, %575, %576, %577, %578, %579, %580, %581, %582, %583, %584, %585, %586, %587, %588, %589, %590, %591, %592) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %594 = "hi_spn.gaussian"(%arg0) {mean = -8.3035554885864258 : f64, stddev = 1.4264081716537476 : f64} : (f64) -> !hi_spn.probability + %595 = "hi_spn.gaussian"(%arg1) {mean = -5.7859644889831543 : f64, stddev = 1.1462522745132446 : f64} : (f64) -> !hi_spn.probability + %596 = "hi_spn.gaussian"(%arg2) {mean = -0.73140090703964233 : f64, stddev = 0.58304047584533691 : f64} : (f64) -> !hi_spn.probability + %597 = "hi_spn.gaussian"(%arg3) {mean = -1.1587828397750854 : f64, stddev = 0.91656625270843505 : f64} : (f64) -> !hi_spn.probability + %598 = "hi_spn.gaussian"(%arg4) {mean = -1.3571137189865112 : f64, stddev = 1.4835728406906128 : f64} : (f64) -> !hi_spn.probability + %599 = "hi_spn.gaussian"(%arg5) {mean = 1.1117973327636719 : f64, stddev = 1.0996159315109253 : f64} : (f64) -> !hi_spn.probability + %600 = "hi_spn.gaussian"(%arg6) {mean = -0.32646733522415161 : f64, stddev = 1.3229366540908813 : f64} : (f64) -> !hi_spn.probability + %601 = "hi_spn.gaussian"(%arg7) {mean = 0.16027800738811493 : f64, stddev = 1.2367702722549438 : f64} : (f64) -> !hi_spn.probability + %602 = "hi_spn.gaussian"(%arg8) {mean = -1.5991113185882568 : f64, stddev = 1.1161046028137207 : f64} : (f64) -> !hi_spn.probability + %603 = "hi_spn.gaussian"(%arg9) {mean = -2.561234712600708 : f64, stddev = 1.0401123762130737 : f64} : (f64) -> !hi_spn.probability + %604 = "hi_spn.gaussian"(%arg10) {mean = -3.5093762874603271 : f64, stddev = 1.389326810836792 : f64} : (f64) -> !hi_spn.probability + %605 = "hi_spn.gaussian"(%arg11) {mean = -3.6842494010925293 : f64, stddev = 1.1795589923858643 : f64} : (f64) -> !hi_spn.probability + %606 = "hi_spn.gaussian"(%arg12) {mean = -3.6213102340698242 : f64, stddev = 1.0385367870330811 : f64} : (f64) -> !hi_spn.probability + %607 = "hi_spn.gaussian"(%arg13) {mean = -3.9341332912445068 : f64, stddev = 1.5357104539871216 : f64} : (f64) -> !hi_spn.probability + %608 = "hi_spn.gaussian"(%arg14) {mean = -5.4853053092956543 : f64, stddev = 1.3057036399841309 : f64} : (f64) -> !hi_spn.probability + %609 = "hi_spn.gaussian"(%arg15) {mean = -5.8680596351623535 : f64, stddev = 0.99688857793807983 : f64} : (f64) -> !hi_spn.probability + %610 = "hi_spn.gaussian"(%arg16) {mean = -5.2930760383605957 : f64, stddev = 1.0633838176727295 : f64} : (f64) -> !hi_spn.probability + %611 = "hi_spn.gaussian"(%arg17) {mean = -5.3858251571655273 : f64, stddev = 0.85936248302459716 : f64} : (f64) -> !hi_spn.probability + %612 = "hi_spn.gaussian"(%arg18) {mean = -6.6426081657409668 : f64, stddev = 1.0150829553604126 : f64} : (f64) -> !hi_spn.probability + %613 = "hi_spn.gaussian"(%arg19) {mean = -6.7648916244506836 : f64, stddev = 0.79391300678253173 : f64} : (f64) -> !hi_spn.probability + %614 = "hi_spn.gaussian"(%arg20) {mean = -6.5834479331970215 : f64, stddev = 0.93375498056411743 : f64} : (f64) -> !hi_spn.probability + %615 = "hi_spn.gaussian"(%arg21) {mean = -7.2036385536193848 : f64, stddev = 0.94570732116699218 : f64} : (f64) -> !hi_spn.probability + %616 = "hi_spn.gaussian"(%arg22) {mean = -7.9912042617797852 : f64, stddev = 0.97631841897964478 : f64} : (f64) -> !hi_spn.probability + %617 = "hi_spn.gaussian"(%arg23) {mean = -8.9483375549316406 : f64, stddev = 0.91292828321456909 : f64} : (f64) -> !hi_spn.probability + %618 = "hi_spn.gaussian"(%arg24) {mean = -10.805872917175293 : f64, stddev = 0.92005360126495361 : f64} : (f64) -> !hi_spn.probability + %619 = "hi_spn.gaussian"(%arg25) {mean = -10.409214019775391 : f64, stddev = 0.82885313034057617 : f64} : (f64) -> !hi_spn.probability + %620 = "hi_spn.product"(%594, %595, %596, %597, %598, %599, %600, %601, %602, %603, %604, %605, %606, %607, %608, %609, %610, %611, %612, %613, %614, %615, %616, %617, %618, %619) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %621 = "hi_spn.gaussian"(%arg0) {mean = -10.204464912414551 : f64, stddev = 1.6020863056182861 : f64} : (f64) -> !hi_spn.probability + %622 = "hi_spn.gaussian"(%arg1) {mean = -3.8893156051635742 : f64, stddev = 0.5583304762840271 : f64} : (f64) -> !hi_spn.probability + %623 = "hi_spn.gaussian"(%arg2) {mean = -2.0201916694641113 : f64, stddev = 0.87866860628128052 : f64} : (f64) -> !hi_spn.probability + %624 = "hi_spn.gaussian"(%arg3) {mean = -3.6782877445220947 : f64, stddev = 0.60904550552368164 : f64} : (f64) -> !hi_spn.probability + %625 = "hi_spn.gaussian"(%arg4) {mean = -1.2081284523010254 : f64, stddev = 0.98104596138000488 : f64} : (f64) -> !hi_spn.probability + %626 = "hi_spn.gaussian"(%arg5) {mean = -1.8895267248153687 : f64, stddev = 0.99456137418746948 : f64} : (f64) -> !hi_spn.probability + %627 = "hi_spn.gaussian"(%arg6) {mean = -0.31599321961402893 : f64, stddev = 1.4036113023757935 : f64} : (f64) -> !hi_spn.probability + %628 = "hi_spn.gaussian"(%arg7) {mean = -0.47833892703056335 : f64, stddev = 0.83540689945220947 : f64} : (f64) -> !hi_spn.probability + %629 = "hi_spn.gaussian"(%arg8) {mean = -0.95180541276931763 : f64, stddev = 1.065526008605957 : f64} : (f64) -> !hi_spn.probability + %630 = "hi_spn.gaussian"(%arg9) {mean = -2.5686800479888916 : f64, stddev = 0.73564785718917847 : f64} : (f64) -> !hi_spn.probability + %631 = "hi_spn.gaussian"(%arg10) {mean = -3.1979820728302002 : f64, stddev = 0.94251245260238647 : f64} : (f64) -> !hi_spn.probability + %632 = "hi_spn.gaussian"(%arg11) {mean = -3.4310882091522217 : f64, stddev = 1.4012502431869507 : f64} : (f64) -> !hi_spn.probability + %633 = "hi_spn.gaussian"(%arg12) {mean = -3.146794319152832 : f64, stddev = 1.0862197875976563 : f64} : (f64) -> !hi_spn.probability + %634 = "hi_spn.gaussian"(%arg13) {mean = -3.5825841426849365 : f64, stddev = 1.0464397668838501 : f64} : (f64) -> !hi_spn.probability + %635 = "hi_spn.gaussian"(%arg14) {mean = -5.0083832740783691 : f64, stddev = 1.6265349388122559 : f64} : (f64) -> !hi_spn.probability + %636 = "hi_spn.gaussian"(%arg15) {mean = -6.0216951370239258 : f64, stddev = 1.3344634771347046 : f64} : (f64) -> !hi_spn.probability + %637 = "hi_spn.gaussian"(%arg16) {mean = -5.8631892204284668 : f64, stddev = 1.1985464096069336 : f64} : (f64) -> !hi_spn.probability + %638 = "hi_spn.gaussian"(%arg17) {mean = -5.4431085586547852 : f64, stddev = 0.82594609260559082 : f64} : (f64) -> !hi_spn.probability + %639 = "hi_spn.gaussian"(%arg18) {mean = -6.669257640838623 : f64, stddev = 0.87101781368255615 : f64} : (f64) -> !hi_spn.probability + %640 = "hi_spn.gaussian"(%arg19) {mean = -7.1576075553894043 : f64, stddev = 0.80675035715103149 : f64} : (f64) -> !hi_spn.probability + %641 = "hi_spn.gaussian"(%arg20) {mean = -6.5607175827026367 : f64, stddev = 0.99137264490127563 : f64} : (f64) -> !hi_spn.probability + %642 = "hi_spn.gaussian"(%arg21) {mean = -7.4074254035949707 : f64, stddev = 1.0610796213150024 : f64} : (f64) -> !hi_spn.probability + %643 = "hi_spn.gaussian"(%arg22) {mean = -7.2190847396850586 : f64, stddev = 0.75069218873977661 : f64} : (f64) -> !hi_spn.probability + %644 = "hi_spn.gaussian"(%arg23) {mean = -8.429936408996582 : f64, stddev = 1.3490469455718994 : f64} : (f64) -> !hi_spn.probability + %645 = "hi_spn.gaussian"(%arg24) {mean = -11.17424488067627 : f64, stddev = 0.96131938695907593 : f64} : (f64) -> !hi_spn.probability + %646 = "hi_spn.gaussian"(%arg25) {mean = -9.9179468154907227 : f64, stddev = 0.83977603912353515 : f64} : (f64) -> !hi_spn.probability + %647 = "hi_spn.product"(%621, %622, %623, %624, %625, %626, %627, %628, %629, %630, %631, %632, %633, %634, %635, %636, %637, %638, %639, %640, %641, %642, %643, %644, %645, %646) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %648 = "hi_spn.gaussian"(%arg0) {mean = -8.9104881286621094 : f64, stddev = 1.2407795190811157 : f64} : (f64) -> !hi_spn.probability + %649 = "hi_spn.gaussian"(%arg1) {mean = -4.7912893295288086 : f64, stddev = 1.3421698808670044 : f64} : (f64) -> !hi_spn.probability + %650 = "hi_spn.gaussian"(%arg2) {mean = -1.2381263971328735 : f64, stddev = 0.97720080614089966 : f64} : (f64) -> !hi_spn.probability + %651 = "hi_spn.gaussian"(%arg3) {mean = -1.9825401306152344 : f64, stddev = 1.0127644538879395 : f64} : (f64) -> !hi_spn.probability + %652 = "hi_spn.gaussian"(%arg4) {mean = -1.1328252553939819 : f64, stddev = 2.2940671443939209 : f64} : (f64) -> !hi_spn.probability + %653 = "hi_spn.gaussian"(%arg5) {mean = -0.5301283597946167 : f64, stddev = 1.6068472862243652 : f64} : (f64) -> !hi_spn.probability + %654 = "hi_spn.gaussian"(%arg6) {mean = -2.9863975048065186 : f64, stddev = 1.1283366680145264 : f64} : (f64) -> !hi_spn.probability + %655 = "hi_spn.gaussian"(%arg7) {mean = -3.56972336769104 : f64, stddev = 1.0562425851821899 : f64} : (f64) -> !hi_spn.probability + %656 = "hi_spn.gaussian"(%arg8) {mean = -4.7440629005432129 : f64, stddev = 1.0046619176864624 : f64} : (f64) -> !hi_spn.probability + %657 = "hi_spn.gaussian"(%arg9) {mean = -5.6077818870544434 : f64, stddev = 1.0343097448348999 : f64} : (f64) -> !hi_spn.probability + %658 = "hi_spn.gaussian"(%arg10) {mean = -6.6057672500610352 : f64, stddev = 0.77828651666641235 : f64} : (f64) -> !hi_spn.probability + %659 = "hi_spn.gaussian"(%arg11) {mean = -7.3964743614196777 : f64, stddev = 0.77072250843048095 : f64} : (f64) -> !hi_spn.probability + %660 = "hi_spn.gaussian"(%arg12) {mean = -7.2408137321472168 : f64, stddev = 0.85538417100906372 : f64} : (f64) -> !hi_spn.probability + %661 = "hi_spn.gaussian"(%arg13) {mean = -6.7544369697570801 : f64, stddev = 0.89315718412399292 : f64} : (f64) -> !hi_spn.probability + %662 = "hi_spn.gaussian"(%arg14) {mean = -4.9838619232177734 : f64, stddev = 1.0191832780838013 : f64} : (f64) -> !hi_spn.probability + %663 = "hi_spn.gaussian"(%arg15) {mean = -3.9145212173461914 : f64, stddev = 0.83778947591781616 : f64} : (f64) -> !hi_spn.probability + %664 = "hi_spn.gaussian"(%arg16) {mean = -4.2840766906738281 : f64, stddev = 0.91526001691818237 : f64} : (f64) -> !hi_spn.probability + %665 = "hi_spn.gaussian"(%arg17) {mean = -4.2897839546203613 : f64, stddev = 0.7030068039894104 : f64} : (f64) -> !hi_spn.probability + %666 = "hi_spn.gaussian"(%arg18) {mean = -5.8863673210144043 : f64, stddev = 0.80484467744827271 : f64} : (f64) -> !hi_spn.probability + %667 = "hi_spn.gaussian"(%arg19) {mean = -6.3534946441650391 : f64, stddev = 1.0250194072723389 : f64} : (f64) -> !hi_spn.probability + %668 = "hi_spn.gaussian"(%arg20) {mean = -6.1748285293579102 : f64, stddev = 1.0809991359710693 : f64} : (f64) -> !hi_spn.probability + %669 = "hi_spn.gaussian"(%arg21) {mean = -6.649622917175293 : f64, stddev = 0.96549338102340698 : f64} : (f64) -> !hi_spn.probability + %670 = "hi_spn.gaussian"(%arg22) {mean = -7.4645318984985352 : f64, stddev = 1.1257213354110718 : f64} : (f64) -> !hi_spn.probability + %671 = "hi_spn.gaussian"(%arg23) {mean = -9.1433000564575195 : f64, stddev = 1.1664202213287354 : f64} : (f64) -> !hi_spn.probability + %672 = "hi_spn.gaussian"(%arg24) {mean = -11.460670471191406 : f64, stddev = 1.1801751852035522 : f64} : (f64) -> !hi_spn.probability + %673 = "hi_spn.gaussian"(%arg25) {mean = -10.52480411529541 : f64, stddev = 0.96083921194076538 : f64} : (f64) -> !hi_spn.probability + %674 = "hi_spn.product"(%648, %649, %650, %651, %652, %653, %654, %655, %656, %657, %658, %659, %660, %661, %662, %663, %664, %665, %666, %667, %668, %669, %670, %671, %672, %673) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %675 = "hi_spn.gaussian"(%arg0) {mean = -9.7251415252685546 : f64, stddev = 1.6073542833328247 : f64} : (f64) -> !hi_spn.probability + %676 = "hi_spn.gaussian"(%arg1) {mean = -4.9133510589599609 : f64, stddev = 1.3696430921554565 : f64} : (f64) -> !hi_spn.probability + %677 = "hi_spn.gaussian"(%arg2) {mean = -1.4497207403182983 : f64, stddev = 0.87673693895339966 : f64} : (f64) -> !hi_spn.probability + %678 = "hi_spn.gaussian"(%arg3) {mean = -2.0057938098907471 : f64, stddev = 1.1309043169021606 : f64} : (f64) -> !hi_spn.probability + %679 = "hi_spn.gaussian"(%arg4) {mean = -0.9948994517326355 : f64, stddev = 1.4527140855789185 : f64} : (f64) -> !hi_spn.probability + %680 = "hi_spn.gaussian"(%arg5) {mean = -0.0098668904975056648 : f64, stddev = 1.2156569957733154 : f64} : (f64) -> !hi_spn.probability + %681 = "hi_spn.gaussian"(%arg6) {mean = -1.388715386390686 : f64, stddev = 1.1291501522064209 : f64} : (f64) -> !hi_spn.probability + %682 = "hi_spn.gaussian"(%arg7) {mean = -2.0123498439788818 : f64, stddev = 1.027299165725708 : f64} : (f64) -> !hi_spn.probability + %683 = "hi_spn.gaussian"(%arg8) {mean = -3.6880393028259277 : f64, stddev = 1.1262346506118774 : f64} : (f64) -> !hi_spn.probability + %684 = "hi_spn.gaussian"(%arg9) {mean = -4.7770075798034668 : f64, stddev = 0.69989395141601563 : f64} : (f64) -> !hi_spn.probability + %685 = "hi_spn.gaussian"(%arg10) {mean = -5.5736570358276367 : f64, stddev = 0.70573288202285767 : f64} : (f64) -> !hi_spn.probability + %686 = "hi_spn.gaussian"(%arg11) {mean = -5.9974842071533203 : f64, stddev = 0.75162220001220703 : f64} : (f64) -> !hi_spn.probability + %687 = "hi_spn.gaussian"(%arg12) {mean = -4.8669891357421875 : f64, stddev = 1.1740869283676147 : f64} : (f64) -> !hi_spn.probability + %688 = "hi_spn.gaussian"(%arg13) {mean = -3.9618053436279297 : f64, stddev = 1.0474263429641724 : f64} : (f64) -> !hi_spn.probability + %689 = "hi_spn.gaussian"(%arg14) {mean = -4.8217320442199707 : f64, stddev = 1.2642390727996826 : f64} : (f64) -> !hi_spn.probability + %690 = "hi_spn.gaussian"(%arg15) {mean = -5.7867317199707031 : f64, stddev = 1.20456862449646 : f64} : (f64) -> !hi_spn.probability + %691 = "hi_spn.gaussian"(%arg16) {mean = -5.4635353088378906 : f64, stddev = 1.0963999032974243 : f64} : (f64) -> !hi_spn.probability + %692 = "hi_spn.gaussian"(%arg17) {mean = -5.9494080543518066 : f64, stddev = 1.2840547561645508 : f64} : (f64) -> !hi_spn.probability + %693 = "hi_spn.gaussian"(%arg18) {mean = -7.3937587738037109 : f64, stddev = 1.2171931266784668 : f64} : (f64) -> !hi_spn.probability + %694 = "hi_spn.gaussian"(%arg19) {mean = -7.3455724716186523 : f64, stddev = 1.1192160844802856 : f64} : (f64) -> !hi_spn.probability + %695 = "hi_spn.gaussian"(%arg20) {mean = -7.7751250267028809 : f64, stddev = 1.254682183265686 : f64} : (f64) -> !hi_spn.probability + %696 = "hi_spn.gaussian"(%arg21) {mean = -8.0876932144165039 : f64, stddev = 1.142391562461853 : f64} : (f64) -> !hi_spn.probability + %697 = "hi_spn.gaussian"(%arg22) {mean = -9.1555747985839844 : f64, stddev = 0.95152676105499267 : f64} : (f64) -> !hi_spn.probability + %698 = "hi_spn.gaussian"(%arg23) {mean = -10.220481872558594 : f64, stddev = 0.99923872947692871 : f64} : (f64) -> !hi_spn.probability + %699 = "hi_spn.gaussian"(%arg24) {mean = -12.120240211486816 : f64, stddev = 0.85913735628128052 : f64} : (f64) -> !hi_spn.probability + %700 = "hi_spn.gaussian"(%arg25) {mean = -11.011944770812988 : f64, stddev = 0.99873799085617065 : f64} : (f64) -> !hi_spn.probability + %701 = "hi_spn.product"(%675, %676, %677, %678, %679, %680, %681, %682, %683, %684, %685, %686, %687, %688, %689, %690, %691, %692, %693, %694, %695, %696, %697, %698, %699, %700) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %702 = "hi_spn.gaussian"(%arg0) {mean = -8.9069051742553711 : f64, stddev = 1.4147145748138428 : f64} : (f64) -> !hi_spn.probability + %703 = "hi_spn.gaussian"(%arg1) {mean = -4.8122344017028809 : f64, stddev = 1.4748255014419556 : f64} : (f64) -> !hi_spn.probability + %704 = "hi_spn.gaussian"(%arg2) {mean = -1.7176178693771362 : f64, stddev = 1.0098350048065186 : f64} : (f64) -> !hi_spn.probability + %705 = "hi_spn.gaussian"(%arg3) {mean = -1.9232354164123535 : f64, stddev = 1.2849118709564209 : f64} : (f64) -> !hi_spn.probability + %706 = "hi_spn.gaussian"(%arg4) {mean = -1.3586279153823853 : f64, stddev = 1.4348475933074951 : f64} : (f64) -> !hi_spn.probability + %707 = "hi_spn.gaussian"(%arg5) {mean = -0.97650361061096191 : f64, stddev = 1.3677494525909424 : f64} : (f64) -> !hi_spn.probability + %708 = "hi_spn.gaussian"(%arg6) {mean = -1.9844210147857666 : f64, stddev = 1.0846155881881714 : f64} : (f64) -> !hi_spn.probability + %709 = "hi_spn.gaussian"(%arg7) {mean = -3.1613943576812744 : f64, stddev = 1.2197260856628418 : f64} : (f64) -> !hi_spn.probability + %710 = "hi_spn.gaussian"(%arg8) {mean = -4.1783685684204102 : f64, stddev = 0.91401422023773193 : f64} : (f64) -> !hi_spn.probability + %711 = "hi_spn.gaussian"(%arg9) {mean = -5.2987546920776367 : f64, stddev = 0.84328430891036987 : f64} : (f64) -> !hi_spn.probability + %712 = "hi_spn.gaussian"(%arg10) {mean = -5.8906431198120117 : f64, stddev = 0.69786202907562256 : f64} : (f64) -> !hi_spn.probability + %713 = "hi_spn.gaussian"(%arg11) {mean = -6.1243467330932617 : f64, stddev = 0.87674009799957275 : f64} : (f64) -> !hi_spn.probability + %714 = "hi_spn.gaussian"(%arg12) {mean = -5.3981232643127441 : f64, stddev = 0.94147020578384399 : f64} : (f64) -> !hi_spn.probability + %715 = "hi_spn.gaussian"(%arg13) {mean = -4.7278761863708496 : f64, stddev = 0.97161221504211425 : f64} : (f64) -> !hi_spn.probability + %716 = "hi_spn.gaussian"(%arg14) {mean = -5.9369235038757324 : f64, stddev = 1.1867256164550781 : f64} : (f64) -> !hi_spn.probability + %717 = "hi_spn.gaussian"(%arg15) {mean = -7.3701410293579102 : f64, stddev = 1.0420466661453247 : f64} : (f64) -> !hi_spn.probability + %718 = "hi_spn.gaussian"(%arg16) {mean = -6.6716737747192383 : f64, stddev = 1.0859712362289429 : f64} : (f64) -> !hi_spn.probability + %719 = "hi_spn.gaussian"(%arg17) {mean = -5.9181299209594727 : f64, stddev = 0.81934303045272827 : f64} : (f64) -> !hi_spn.probability + %720 = "hi_spn.gaussian"(%arg18) {mean = -7.5805239677429199 : f64, stddev = 0.65694856643676758 : f64} : (f64) -> !hi_spn.probability + %721 = "hi_spn.gaussian"(%arg19) {mean = -8.1077966690063477 : f64, stddev = 1.0762103796005249 : f64} : (f64) -> !hi_spn.probability + %722 = "hi_spn.gaussian"(%arg20) {mean = -7.6604113578796387 : f64, stddev = 0.86569845676422119 : f64} : (f64) -> !hi_spn.probability + %723 = "hi_spn.gaussian"(%arg21) {mean = -7.7094779014587402 : f64, stddev = 1.0633842945098877 : f64} : (f64) -> !hi_spn.probability + %724 = "hi_spn.gaussian"(%arg22) {mean = -7.7834830284118652 : f64, stddev = 0.74442803859710693 : f64} : (f64) -> !hi_spn.probability + %725 = "hi_spn.gaussian"(%arg23) {mean = -8.1353664398193359 : f64, stddev = 1.0096304416656494 : f64} : (f64) -> !hi_spn.probability + %726 = "hi_spn.gaussian"(%arg24) {mean = -9.9486246109008789 : f64, stddev = 1.1339542865753174 : f64} : (f64) -> !hi_spn.probability + %727 = "hi_spn.gaussian"(%arg25) {mean = -10.53874397277832 : f64, stddev = 1.3633646965026855 : f64} : (f64) -> !hi_spn.probability + %728 = "hi_spn.product"(%702, %703, %704, %705, %706, %707, %708, %709, %710, %711, %712, %713, %714, %715, %716, %717, %718, %719, %720, %721, %722, %723, %724, %725, %726, %727) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %729 = "hi_spn.gaussian"(%arg0) {mean = -10.626448631286621 : f64, stddev = 1.3535375595092773 : f64} : (f64) -> !hi_spn.probability + %730 = "hi_spn.gaussian"(%arg1) {mean = -4.9930663108825684 : f64, stddev = 1.2566756010055542 : f64} : (f64) -> !hi_spn.probability + %731 = "hi_spn.gaussian"(%arg2) {mean = -2.795074462890625 : f64, stddev = 1.004554271697998 : f64} : (f64) -> !hi_spn.probability + %732 = "hi_spn.gaussian"(%arg3) {mean = -4.1691288948059082 : f64, stddev = 1.101131796836853 : f64} : (f64) -> !hi_spn.probability + %733 = "hi_spn.gaussian"(%arg4) {mean = -2.5265030860900879 : f64, stddev = 1.5360026359558105 : f64} : (f64) -> !hi_spn.probability + %734 = "hi_spn.gaussian"(%arg5) {mean = -2.6002805233001709 : f64, stddev = 1.6389932632446289 : f64} : (f64) -> !hi_spn.probability + %735 = "hi_spn.gaussian"(%arg6) {mean = -3.6623227596282959 : f64, stddev = 1.6795462369918823 : f64} : (f64) -> !hi_spn.probability + %736 = "hi_spn.gaussian"(%arg7) {mean = -4.3177437782287598 : f64, stddev = 1.9227278232574463 : f64} : (f64) -> !hi_spn.probability + %737 = "hi_spn.gaussian"(%arg8) {mean = -4.8729019165039063 : f64, stddev = 1.5416054725646973 : f64} : (f64) -> !hi_spn.probability + %738 = "hi_spn.gaussian"(%arg9) {mean = -5.9028677940368652 : f64, stddev = 1.2555408477783203 : f64} : (f64) -> !hi_spn.probability + %739 = "hi_spn.gaussian"(%arg10) {mean = -7.5546765327453613 : f64, stddev = 0.97685593366622925 : f64} : (f64) -> !hi_spn.probability + %740 = "hi_spn.gaussian"(%arg11) {mean = -8.9893970489501953 : f64, stddev = 1.0144381523132324 : f64} : (f64) -> !hi_spn.probability + %741 = "hi_spn.gaussian"(%arg12) {mean = -10.060663223266602 : f64, stddev = 1.3323405981063843 : f64} : (f64) -> !hi_spn.probability + %742 = "hi_spn.gaussian"(%arg13) {mean = -11.011593818664551 : f64, stddev = 1.1708763837814331 : f64} : (f64) -> !hi_spn.probability + %743 = "hi_spn.gaussian"(%arg14) {mean = -11.776839256286621 : f64, stddev = 0.9046136736869812 : f64} : (f64) -> !hi_spn.probability + %744 = "hi_spn.gaussian"(%arg15) {mean = -11.659098625183105 : f64, stddev = 1.0695267915725708 : f64} : (f64) -> !hi_spn.probability + %745 = "hi_spn.gaussian"(%arg16) {mean = -11.659463882446289 : f64, stddev = 1.2668837308883667 : f64} : (f64) -> !hi_spn.probability + %746 = "hi_spn.gaussian"(%arg17) {mean = -11.007206916809082 : f64, stddev = 1.1497730016708374 : f64} : (f64) -> !hi_spn.probability + %747 = "hi_spn.gaussian"(%arg18) {mean = -10.421265602111816 : f64, stddev = 1.3350493907928467 : f64} : (f64) -> !hi_spn.probability + %748 = "hi_spn.gaussian"(%arg19) {mean = -10.924421310424805 : f64, stddev = 1.5174006223678589 : f64} : (f64) -> !hi_spn.probability + %749 = "hi_spn.gaussian"(%arg20) {mean = -10.377594947814941 : f64, stddev = 1.1411463022232056 : f64} : (f64) -> !hi_spn.probability + %750 = "hi_spn.gaussian"(%arg21) {mean = -10.87409782409668 : f64, stddev = 1.1356991529464722 : f64} : (f64) -> !hi_spn.probability + %751 = "hi_spn.gaussian"(%arg22) {mean = -9.9779891967773438 : f64, stddev = 1.114973783493042 : f64} : (f64) -> !hi_spn.probability + %752 = "hi_spn.gaussian"(%arg23) {mean = -10.446820259094238 : f64, stddev = 1.3415701389312744 : f64} : (f64) -> !hi_spn.probability + %753 = "hi_spn.gaussian"(%arg24) {mean = -12.710579872131348 : f64, stddev = 1.0317741632461548 : f64} : (f64) -> !hi_spn.probability + %754 = "hi_spn.gaussian"(%arg25) {mean = -12.227673530578613 : f64, stddev = 0.91354125738143921 : f64} : (f64) -> !hi_spn.probability + %755 = "hi_spn.product"(%729, %730, %731, %732, %733, %734, %735, %736, %737, %738, %739, %740, %741, %742, %743, %744, %745, %746, %747, %748, %749, %750, %751, %752, %753, %754) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %756 = "hi_spn.gaussian"(%arg0) {mean = -9.6814069747924805 : f64, stddev = 1.9111077785491943 : f64} : (f64) -> !hi_spn.probability + %757 = "hi_spn.gaussian"(%arg1) {mean = -4.8533101081848145 : f64, stddev = 1.1461453437805176 : f64} : (f64) -> !hi_spn.probability + %758 = "hi_spn.gaussian"(%arg2) {mean = -2.9722335338592529 : f64, stddev = 1.0362757444381714 : f64} : (f64) -> !hi_spn.probability + %759 = "hi_spn.gaussian"(%arg3) {mean = -3.5680413246154785 : f64, stddev = 1.5056160688400269 : f64} : (f64) -> !hi_spn.probability + %760 = "hi_spn.gaussian"(%arg4) {mean = -2.3838784694671631 : f64, stddev = 1.4592957496643066 : f64} : (f64) -> !hi_spn.probability + %761 = "hi_spn.gaussian"(%arg5) {mean = -2.2435345649719238 : f64, stddev = 1.1607135534286499 : f64} : (f64) -> !hi_spn.probability + %762 = "hi_spn.gaussian"(%arg6) {mean = -2.4707129001617432 : f64, stddev = 0.95704185962677001 : f64} : (f64) -> !hi_spn.probability + %763 = "hi_spn.gaussian"(%arg7) {mean = -3.5692412853240967 : f64, stddev = 0.95319283008575439 : f64} : (f64) -> !hi_spn.probability + %764 = "hi_spn.gaussian"(%arg8) {mean = -4.0828475952148438 : f64, stddev = 0.81794565916061401 : f64} : (f64) -> !hi_spn.probability + %765 = "hi_spn.gaussian"(%arg9) {mean = -4.8434739112854004 : f64, stddev = 1.041487455368042 : f64} : (f64) -> !hi_spn.probability + %766 = "hi_spn.gaussian"(%arg10) {mean = -5.1835207939147949 : f64, stddev = 1.2820824384689331 : f64} : (f64) -> !hi_spn.probability + %767 = "hi_spn.gaussian"(%arg11) {mean = -5.7133607864379883 : f64, stddev = 1.3266124725341797 : f64} : (f64) -> !hi_spn.probability + %768 = "hi_spn.gaussian"(%arg12) {mean = -6.655754566192627 : f64, stddev = 1.2050929069519043 : f64} : (f64) -> !hi_spn.probability + %769 = "hi_spn.gaussian"(%arg13) {mean = -7.9018731117248535 : f64, stddev = 1.2177575826644897 : f64} : (f64) -> !hi_spn.probability + %770 = "hi_spn.gaussian"(%arg14) {mean = -9.271662712097168 : f64, stddev = 0.69999289512634277 : f64} : (f64) -> !hi_spn.probability + %771 = "hi_spn.gaussian"(%arg15) {mean = -9.3606767654418945 : f64, stddev = 0.95105248689651489 : f64} : (f64) -> !hi_spn.probability + %772 = "hi_spn.gaussian"(%arg16) {mean = -8.7183160781860352 : f64, stddev = 1.2053486108779907 : f64} : (f64) -> !hi_spn.probability + %773 = "hi_spn.gaussian"(%arg17) {mean = -8.7672090530395508 : f64, stddev = 0.85045510530471802 : f64} : (f64) -> !hi_spn.probability + %774 = "hi_spn.gaussian"(%arg18) {mean = -9.5070924758911133 : f64, stddev = 0.62979328632354736 : f64} : (f64) -> !hi_spn.probability + %775 = "hi_spn.gaussian"(%arg19) {mean = -10.053318977355957 : f64, stddev = 1.0457770824432373 : f64} : (f64) -> !hi_spn.probability + %776 = "hi_spn.gaussian"(%arg20) {mean = -9.6750011444091796 : f64, stddev = 0.83575439453125 : f64} : (f64) -> !hi_spn.probability + %777 = "hi_spn.gaussian"(%arg21) {mean = -9.8804206848144531 : f64, stddev = 1.0302900075912476 : f64} : (f64) -> !hi_spn.probability + %778 = "hi_spn.gaussian"(%arg22) {mean = -9.6952419281005859 : f64, stddev = 1.4331678152084351 : f64} : (f64) -> !hi_spn.probability + %779 = "hi_spn.gaussian"(%arg23) {mean = -9.9766674041748046 : f64, stddev = 1.7196415662765503 : f64} : (f64) -> !hi_spn.probability + %780 = "hi_spn.gaussian"(%arg24) {mean = -11.346095085144043 : f64, stddev = 1.3947709798812866 : f64} : (f64) -> !hi_spn.probability + %781 = "hi_spn.gaussian"(%arg25) {mean = -11.206250190734863 : f64, stddev = 0.97774547338485718 : f64} : (f64) -> !hi_spn.probability + %782 = "hi_spn.product"(%756, %757, %758, %759, %760, %761, %762, %763, %764, %765, %766, %767, %768, %769, %770, %771, %772, %773, %774, %775, %776, %777, %778, %779, %780, %781) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %783 = "hi_spn.gaussian"(%arg0) {mean = -9.8093748092651367 : f64, stddev = 1.60984206199646 : f64} : (f64) -> !hi_spn.probability + %784 = "hi_spn.gaussian"(%arg1) {mean = -4.4710850715637207 : f64, stddev = 0.67405211925506592 : f64} : (f64) -> !hi_spn.probability + %785 = "hi_spn.gaussian"(%arg2) {mean = -1.9430066347122192 : f64, stddev = 0.8056831955909729 : f64} : (f64) -> !hi_spn.probability + %786 = "hi_spn.gaussian"(%arg3) {mean = -3.2178990840911865 : f64, stddev = 0.87899678945541382 : f64} : (f64) -> !hi_spn.probability + %787 = "hi_spn.gaussian"(%arg4) {mean = -0.3972700834274292 : f64, stddev = 1.2791483402252197 : f64} : (f64) -> !hi_spn.probability + %788 = "hi_spn.gaussian"(%arg5) {mean = -0.21696287393569946 : f64, stddev = 1.062208890914917 : f64} : (f64) -> !hi_spn.probability + %789 = "hi_spn.gaussian"(%arg6) {mean = -1.7810295820236206 : f64, stddev = 1.0984369516372681 : f64} : (f64) -> !hi_spn.probability + %790 = "hi_spn.gaussian"(%arg7) {mean = -2.0153028964996338 : f64, stddev = 1.0543609857559204 : f64} : (f64) -> !hi_spn.probability + %791 = "hi_spn.gaussian"(%arg8) {mean = -2.0518224239349365 : f64, stddev = 0.97714114189147949 : f64} : (f64) -> !hi_spn.probability + %792 = "hi_spn.gaussian"(%arg9) {mean = -3.5302813053131104 : f64, stddev = 0.8511124849319458 : f64} : (f64) -> !hi_spn.probability + %793 = "hi_spn.gaussian"(%arg10) {mean = -5.5197649002075195 : f64, stddev = 1.1828925609588623 : f64} : (f64) -> !hi_spn.probability + %794 = "hi_spn.gaussian"(%arg11) {mean = -7.8433918952941895 : f64, stddev = 0.93302077054977417 : f64} : (f64) -> !hi_spn.probability + %795 = "hi_spn.gaussian"(%arg12) {mean = -9.4301156997680664 : f64, stddev = 0.6484944224357605 : f64} : (f64) -> !hi_spn.probability + %796 = "hi_spn.gaussian"(%arg13) {mean = -10.277225494384766 : f64, stddev = 0.71469396352767944 : f64} : (f64) -> !hi_spn.probability + %797 = "hi_spn.gaussian"(%arg14) {mean = -10.934865951538086 : f64, stddev = 0.66158908605575562 : f64} : (f64) -> !hi_spn.probability + %798 = "hi_spn.gaussian"(%arg15) {mean = -10.914000511169434 : f64, stddev = 0.82890325784683228 : f64} : (f64) -> !hi_spn.probability + %799 = "hi_spn.gaussian"(%arg16) {mean = -10.349800109863281 : f64, stddev = 1.0774797201156616 : f64} : (f64) -> !hi_spn.probability + %800 = "hi_spn.gaussian"(%arg17) {mean = -9.2753219604492188 : f64, stddev = 0.9993625283241272 : f64} : (f64) -> !hi_spn.probability + %801 = "hi_spn.gaussian"(%arg18) {mean = -8.7646818161010742 : f64, stddev = 1.3473575115203857 : f64} : (f64) -> !hi_spn.probability + %802 = "hi_spn.gaussian"(%arg19) {mean = -8.8910846710205078 : f64, stddev = 0.96669775247573853 : f64} : (f64) -> !hi_spn.probability + %803 = "hi_spn.gaussian"(%arg20) {mean = -8.7942171096801758 : f64, stddev = 1.1913256645202637 : f64} : (f64) -> !hi_spn.probability + %804 = "hi_spn.gaussian"(%arg21) {mean = -10.075502395629883 : f64, stddev = 1.504949688911438 : f64} : (f64) -> !hi_spn.probability + %805 = "hi_spn.gaussian"(%arg22) {mean = -9.6366281509399414 : f64, stddev = 1.5902148485183716 : f64} : (f64) -> !hi_spn.probability + %806 = "hi_spn.gaussian"(%arg23) {mean = -10.366800308227539 : f64, stddev = 1.3276265859603882 : f64} : (f64) -> !hi_spn.probability + %807 = "hi_spn.gaussian"(%arg24) {mean = -12.23831844329834 : f64, stddev = 0.88488131761550903 : f64} : (f64) -> !hi_spn.probability + %808 = "hi_spn.gaussian"(%arg25) {mean = -11.33403205871582 : f64, stddev = 0.94600272178649902 : f64} : (f64) -> !hi_spn.probability + %809 = "hi_spn.product"(%783, %784, %785, %786, %787, %788, %789, %790, %791, %792, %793, %794, %795, %796, %797, %798, %799, %800, %801, %802, %803, %804, %805, %806, %807, %808) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %810 = "hi_spn.gaussian"(%arg0) {mean = -10.428524017333984 : f64, stddev = 1.2039626836776733 : f64} : (f64) -> !hi_spn.probability + %811 = "hi_spn.gaussian"(%arg1) {mean = -4.8005132675170898 : f64, stddev = 0.60425221920013428 : f64} : (f64) -> !hi_spn.probability + %812 = "hi_spn.gaussian"(%arg2) {mean = -1.7056089639663696 : f64, stddev = 0.77893060445785522 : f64} : (f64) -> !hi_spn.probability + %813 = "hi_spn.gaussian"(%arg3) {mean = -2.7625248432159424 : f64, stddev = 0.97498071193695068 : f64} : (f64) -> !hi_spn.probability + %814 = "hi_spn.gaussian"(%arg4) {mean = -0.58657383918762207 : f64, stddev = 0.80343109369277954 : f64} : (f64) -> !hi_spn.probability + %815 = "hi_spn.gaussian"(%arg5) {mean = -0.47867530584335327 : f64, stddev = 0.98265993595123291 : f64} : (f64) -> !hi_spn.probability + %816 = "hi_spn.gaussian"(%arg6) {mean = -2.658158540725708 : f64, stddev = 0.96323513984680175 : f64} : (f64) -> !hi_spn.probability + %817 = "hi_spn.gaussian"(%arg7) {mean = -2.3708949089050293 : f64, stddev = 1.0669902563095093 : f64} : (f64) -> !hi_spn.probability + %818 = "hi_spn.gaussian"(%arg8) {mean = -3.8972570896148682 : f64, stddev = 1.894842267036438 : f64} : (f64) -> !hi_spn.probability + %819 = "hi_spn.gaussian"(%arg9) {mean = -4.0222196578979492 : f64, stddev = 2.174738883972168 : f64} : (f64) -> !hi_spn.probability + %820 = "hi_spn.gaussian"(%arg10) {mean = -4.793734073638916 : f64, stddev = 2.2236061096191406 : f64} : (f64) -> !hi_spn.probability + %821 = "hi_spn.gaussian"(%arg11) {mean = -6.3218216896057129 : f64, stddev = 2.6918065547943115 : f64} : (f64) -> !hi_spn.probability + %822 = "hi_spn.gaussian"(%arg12) {mean = -7.8773069381713867 : f64, stddev = 2.0607681274414063 : f64} : (f64) -> !hi_spn.probability + %823 = "hi_spn.gaussian"(%arg13) {mean = -8.9604358673095703 : f64, stddev = 2.0187506675720215 : f64} : (f64) -> !hi_spn.probability + %824 = "hi_spn.gaussian"(%arg14) {mean = -10.637974739074707 : f64, stddev = 1.6277683973312378 : f64} : (f64) -> !hi_spn.probability + %825 = "hi_spn.gaussian"(%arg15) {mean = -11.691089630126953 : f64, stddev = 1.4333341121673584 : f64} : (f64) -> !hi_spn.probability + %826 = "hi_spn.gaussian"(%arg16) {mean = -12.62342357635498 : f64, stddev = 0.95259028673171997 : f64} : (f64) -> !hi_spn.probability + %827 = "hi_spn.gaussian"(%arg17) {mean = -13.144018173217773 : f64, stddev = 0.8991936445236206 : f64} : (f64) -> !hi_spn.probability + %828 = "hi_spn.gaussian"(%arg18) {mean = -13.304936408996582 : f64, stddev = 0.78223001956939697 : f64} : (f64) -> !hi_spn.probability + %829 = "hi_spn.gaussian"(%arg19) {mean = -12.739057540893555 : f64, stddev = 0.95756226778030396 : f64} : (f64) -> !hi_spn.probability + %830 = "hi_spn.gaussian"(%arg20) {mean = -11.31569766998291 : f64, stddev = 1.1008472442626953 : f64} : (f64) -> !hi_spn.probability + %831 = "hi_spn.gaussian"(%arg21) {mean = -11.27239990234375 : f64, stddev = 1.1140607595443726 : f64} : (f64) -> !hi_spn.probability + %832 = "hi_spn.gaussian"(%arg22) {mean = -12.766929626464844 : f64, stddev = 1.2298176288604736 : f64} : (f64) -> !hi_spn.probability + %833 = "hi_spn.gaussian"(%arg23) {mean = -14.051721572875977 : f64, stddev = 0.62666803598403931 : f64} : (f64) -> !hi_spn.probability + %834 = "hi_spn.gaussian"(%arg24) {mean = -13.54560661315918 : f64, stddev = 0.80309677124023438 : f64} : (f64) -> !hi_spn.probability + %835 = "hi_spn.gaussian"(%arg25) {mean = -11.836686134338379 : f64, stddev = 1.0280946493148804 : f64} : (f64) -> !hi_spn.probability + %836 = "hi_spn.product"(%810, %811, %812, %813, %814, %815, %816, %817, %818, %819, %820, %821, %822, %823, %824, %825, %826, %827, %828, %829, %830, %831, %832, %833, %834, %835) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %837 = "hi_spn.gaussian"(%arg0) {mean = -10.220756530761719 : f64, stddev = 1.269687294960022 : f64} : (f64) -> !hi_spn.probability + %838 = "hi_spn.gaussian"(%arg1) {mean = -4.830296516418457 : f64, stddev = 1.2894247770309448 : f64} : (f64) -> !hi_spn.probability + %839 = "hi_spn.gaussian"(%arg2) {mean = -2.711517333984375 : f64, stddev = 1.3992751836776733 : f64} : (f64) -> !hi_spn.probability + %840 = "hi_spn.gaussian"(%arg3) {mean = -3.985832691192627 : f64, stddev = 1.2450056076049805 : f64} : (f64) -> !hi_spn.probability + %841 = "hi_spn.gaussian"(%arg4) {mean = -2.3078665733337402 : f64, stddev = 2.1152658462524414 : f64} : (f64) -> !hi_spn.probability + %842 = "hi_spn.gaussian"(%arg5) {mean = -2.6697187423706055 : f64, stddev = 1.8269482851028442 : f64} : (f64) -> !hi_spn.probability + %843 = "hi_spn.gaussian"(%arg6) {mean = -3.6070373058319092 : f64, stddev = 1.1772325038909912 : f64} : (f64) -> !hi_spn.probability + %844 = "hi_spn.gaussian"(%arg7) {mean = -4.3406071662902832 : f64, stddev = 1.0189328193664551 : f64} : (f64) -> !hi_spn.probability + %845 = "hi_spn.gaussian"(%arg8) {mean = -4.7574715614318848 : f64, stddev = 1.0132516622543335 : f64} : (f64) -> !hi_spn.probability + %846 = "hi_spn.gaussian"(%arg9) {mean = -5.6476778984069824 : f64, stddev = 0.99200183153152466 : f64} : (f64) -> !hi_spn.probability + %847 = "hi_spn.gaussian"(%arg10) {mean = -5.5133571624755859 : f64, stddev = 1.1960428953170776 : f64} : (f64) -> !hi_spn.probability + %848 = "hi_spn.gaussian"(%arg11) {mean = -5.1300930976867676 : f64, stddev = 1.1877732276916504 : f64} : (f64) -> !hi_spn.probability + %849 = "hi_spn.gaussian"(%arg12) {mean = -5.1579627990722656 : f64, stddev = 1.3107385635375977 : f64} : (f64) -> !hi_spn.probability + %850 = "hi_spn.gaussian"(%arg13) {mean = -6.030118465423584 : f64, stddev = 1.5362046957015991 : f64} : (f64) -> !hi_spn.probability + %851 = "hi_spn.gaussian"(%arg14) {mean = -7.7390952110290527 : f64, stddev = 1.5368119478225708 : f64} : (f64) -> !hi_spn.probability + %852 = "hi_spn.gaussian"(%arg15) {mean = -10.220649719238281 : f64, stddev = 1.5343526601791382 : f64} : (f64) -> !hi_spn.probability + %853 = "hi_spn.gaussian"(%arg16) {mean = -10.98398494720459 : f64, stddev = 1.7683655023574829 : f64} : (f64) -> !hi_spn.probability + %854 = "hi_spn.gaussian"(%arg17) {mean = -11.664264678955078 : f64, stddev = 1.5676519870758057 : f64} : (f64) -> !hi_spn.probability + %855 = "hi_spn.gaussian"(%arg18) {mean = -11.84843635559082 : f64, stddev = 1.4938062429428101 : f64} : (f64) -> !hi_spn.probability + %856 = "hi_spn.gaussian"(%arg19) {mean = -11.573271751403809 : f64, stddev = 1.5986725091934204 : f64} : (f64) -> !hi_spn.probability + %857 = "hi_spn.gaussian"(%arg20) {mean = -11.375916481018066 : f64, stddev = 1.6578778028488159 : f64} : (f64) -> !hi_spn.probability + %858 = "hi_spn.gaussian"(%arg21) {mean = -11.044497489929199 : f64, stddev = 1.6201143264770508 : f64} : (f64) -> !hi_spn.probability + %859 = "hi_spn.gaussian"(%arg22) {mean = -11.694368362426758 : f64, stddev = 1.5433932542800903 : f64} : (f64) -> !hi_spn.probability + %860 = "hi_spn.gaussian"(%arg23) {mean = -13.058230400085449 : f64, stddev = 1.1935220956802368 : f64} : (f64) -> !hi_spn.probability + %861 = "hi_spn.gaussian"(%arg24) {mean = -13.361722946166992 : f64, stddev = 1.2640531063079834 : f64} : (f64) -> !hi_spn.probability + %862 = "hi_spn.gaussian"(%arg25) {mean = -12.735746383666992 : f64, stddev = 1.2274200916290283 : f64} : (f64) -> !hi_spn.probability + %863 = "hi_spn.product"(%837, %838, %839, %840, %841, %842, %843, %844, %845, %846, %847, %848, %849, %850, %851, %852, %853, %854, %855, %856, %857, %858, %859, %860, %861, %862) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %864 = "hi_spn.gaussian"(%arg0) {mean = -9.3214378356933593 : f64, stddev = 1.3451398611068726 : f64} : (f64) -> !hi_spn.probability + %865 = "hi_spn.gaussian"(%arg1) {mean = -5.2790961265563965 : f64, stddev = 1.6741771697998047 : f64} : (f64) -> !hi_spn.probability + %866 = "hi_spn.gaussian"(%arg2) {mean = -2.1202664375305176 : f64, stddev = 1.0750863552093506 : f64} : (f64) -> !hi_spn.probability + %867 = "hi_spn.gaussian"(%arg3) {mean = -2.5271093845367432 : f64, stddev = 1.1379309892654419 : f64} : (f64) -> !hi_spn.probability + %868 = "hi_spn.gaussian"(%arg4) {mean = -2.6375362873077393 : f64, stddev = 1.6175582408905029 : f64} : (f64) -> !hi_spn.probability + %869 = "hi_spn.gaussian"(%arg5) {mean = -1.8790634870529175 : f64, stddev = 1.2665959596633911 : f64} : (f64) -> !hi_spn.probability + %870 = "hi_spn.gaussian"(%arg6) {mean = -3.4772517681121826 : f64, stddev = 1.3788390159606934 : f64} : (f64) -> !hi_spn.probability + %871 = "hi_spn.gaussian"(%arg7) {mean = -4.6901941299438477 : f64, stddev = 1.2669582366943359 : f64} : (f64) -> !hi_spn.probability + %872 = "hi_spn.gaussian"(%arg8) {mean = -5.6875925064086914 : f64, stddev = 1.1460007429122925 : f64} : (f64) -> !hi_spn.probability + %873 = "hi_spn.gaussian"(%arg9) {mean = -6.9031453132629395 : f64, stddev = 0.86353880167007446 : f64} : (f64) -> !hi_spn.probability + %874 = "hi_spn.gaussian"(%arg10) {mean = -7.6546249389648438 : f64, stddev = 0.8104943037033081 : f64} : (f64) -> !hi_spn.probability + %875 = "hi_spn.gaussian"(%arg11) {mean = -8.0403594970703125 : f64, stddev = 1.2155488729476929 : f64} : (f64) -> !hi_spn.probability + %876 = "hi_spn.gaussian"(%arg12) {mean = -7.0720438957214355 : f64, stddev = 1.4507648944854736 : f64} : (f64) -> !hi_spn.probability + %877 = "hi_spn.gaussian"(%arg13) {mean = -6.2170372009277344 : f64, stddev = 1.2106430530548096 : f64} : (f64) -> !hi_spn.probability + %878 = "hi_spn.gaussian"(%arg14) {mean = -6.4435162544250488 : f64, stddev = 1.0974704027175903 : f64} : (f64) -> !hi_spn.probability + %879 = "hi_spn.gaussian"(%arg15) {mean = -7.1544451713562012 : f64, stddev = 1.046581506729126 : f64} : (f64) -> !hi_spn.probability + %880 = "hi_spn.gaussian"(%arg16) {mean = -6.9875087738037109 : f64, stddev = 1.1035842895507813 : f64} : (f64) -> !hi_spn.probability + %881 = "hi_spn.gaussian"(%arg17) {mean = -7.4790472984313965 : f64, stddev = 1.2008309364318848 : f64} : (f64) -> !hi_spn.probability + %882 = "hi_spn.gaussian"(%arg18) {mean = -8.7852764129638671 : f64, stddev = 1.2997614145278931 : f64} : (f64) -> !hi_spn.probability + %883 = "hi_spn.gaussian"(%arg19) {mean = -9.3296527862548828 : f64, stddev = 1.1600536108016968 : f64} : (f64) -> !hi_spn.probability + %884 = "hi_spn.gaussian"(%arg20) {mean = -9.6210813522338867 : f64, stddev = 1.1075938940048218 : f64} : (f64) -> !hi_spn.probability + %885 = "hi_spn.gaussian"(%arg21) {mean = -9.681161880493164 : f64, stddev = 1.0292993783950806 : f64} : (f64) -> !hi_spn.probability + %886 = "hi_spn.gaussian"(%arg22) {mean = -10.422371864318848 : f64, stddev = 1.1513679027557373 : f64} : (f64) -> !hi_spn.probability + %887 = "hi_spn.gaussian"(%arg23) {mean = -11.261441230773926 : f64, stddev = 1.0259401798248291 : f64} : (f64) -> !hi_spn.probability + %888 = "hi_spn.gaussian"(%arg24) {mean = -12.423006057739258 : f64, stddev = 1.0023843050003052 : f64} : (f64) -> !hi_spn.probability + %889 = "hi_spn.gaussian"(%arg25) {mean = -11.951251983642578 : f64, stddev = 0.79783016443252563 : f64} : (f64) -> !hi_spn.probability + %890 = "hi_spn.product"(%864, %865, %866, %867, %868, %869, %870, %871, %872, %873, %874, %875, %876, %877, %878, %879, %880, %881, %882, %883, %884, %885, %886, %887, %888, %889) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %891 = "hi_spn.gaussian"(%arg0) {mean = -9.4228515625 : f64, stddev = 1.0323067903518677 : f64} : (f64) -> !hi_spn.probability + %892 = "hi_spn.gaussian"(%arg1) {mean = -4.6211123466491699 : f64, stddev = 1.2912204265594482 : f64} : (f64) -> !hi_spn.probability + %893 = "hi_spn.gaussian"(%arg2) {mean = -2.2723679542541504 : f64, stddev = 1.3827084302902222 : f64} : (f64) -> !hi_spn.probability + %894 = "hi_spn.gaussian"(%arg3) {mean = -3.0209958553314209 : f64, stddev = 1.2571717500686646 : f64} : (f64) -> !hi_spn.probability + %895 = "hi_spn.gaussian"(%arg4) {mean = -2.06998610496521 : f64, stddev = 1.6390811204910278 : f64} : (f64) -> !hi_spn.probability + %896 = "hi_spn.gaussian"(%arg5) {mean = -2.1828310489654541 : f64, stddev = 1.4466178417205811 : f64} : (f64) -> !hi_spn.probability + %897 = "hi_spn.gaussian"(%arg6) {mean = -4.6011462211608887 : f64, stddev = 1.2203974723815918 : f64} : (f64) -> !hi_spn.probability + %898 = "hi_spn.gaussian"(%arg7) {mean = -5.3647317886352539 : f64, stddev = 1.0921448469161987 : f64} : (f64) -> !hi_spn.probability + %899 = "hi_spn.gaussian"(%arg8) {mean = -6.0953245162963867 : f64, stddev = 1.1261283159255981 : f64} : (f64) -> !hi_spn.probability + %900 = "hi_spn.gaussian"(%arg9) {mean = -6.4991641044616699 : f64, stddev = 1.1478918790817261 : f64} : (f64) -> !hi_spn.probability + %901 = "hi_spn.gaussian"(%arg10) {mean = -7.0230188369750977 : f64, stddev = 1.3185553550720215 : f64} : (f64) -> !hi_spn.probability + %902 = "hi_spn.gaussian"(%arg11) {mean = -7.2850451469421387 : f64, stddev = 1.5402446985244751 : f64} : (f64) -> !hi_spn.probability + %903 = "hi_spn.gaussian"(%arg12) {mean = -6.9771332740783691 : f64, stddev = 1.472931981086731 : f64} : (f64) -> !hi_spn.probability + %904 = "hi_spn.gaussian"(%arg13) {mean = -7.0290040969848633 : f64, stddev = 1.4514147043228149 : f64} : (f64) -> !hi_spn.probability + %905 = "hi_spn.gaussian"(%arg14) {mean = -7.7818036079406738 : f64, stddev = 1.3479229211807251 : f64} : (f64) -> !hi_spn.probability + %906 = "hi_spn.gaussian"(%arg15) {mean = -8.709686279296875 : f64, stddev = 1.093854546546936 : f64} : (f64) -> !hi_spn.probability + %907 = "hi_spn.gaussian"(%arg16) {mean = -8.3133516311645508 : f64, stddev = 1.1666648387908936 : f64} : (f64) -> !hi_spn.probability + %908 = "hi_spn.gaussian"(%arg17) {mean = -7.5990843772888184 : f64, stddev = 0.99834662675857544 : f64} : (f64) -> !hi_spn.probability + %909 = "hi_spn.gaussian"(%arg18) {mean = -8.7891874313354492 : f64, stddev = 0.80196368694305419 : f64} : (f64) -> !hi_spn.probability + %910 = "hi_spn.gaussian"(%arg19) {mean = -9.2691478729248046 : f64, stddev = 1.1922008991241455 : f64} : (f64) -> !hi_spn.probability + %911 = "hi_spn.gaussian"(%arg20) {mean = -9.0518321990966796 : f64, stddev = 0.84742933511734009 : f64} : (f64) -> !hi_spn.probability + %912 = "hi_spn.gaussian"(%arg21) {mean = -8.8434152603149414 : f64, stddev = 1.0089378356933594 : f64} : (f64) -> !hi_spn.probability + %913 = "hi_spn.gaussian"(%arg22) {mean = -8.6666898727416992 : f64, stddev = 1.0983072519302368 : f64} : (f64) -> !hi_spn.probability + %914 = "hi_spn.gaussian"(%arg23) {mean = -8.8150310516357421 : f64, stddev = 1.4879231452941895 : f64} : (f64) -> !hi_spn.probability + %915 = "hi_spn.gaussian"(%arg24) {mean = -9.7194318771362305 : f64, stddev = 1.0893490314483643 : f64} : (f64) -> !hi_spn.probability + %916 = "hi_spn.gaussian"(%arg25) {mean = -10.12714958190918 : f64, stddev = 1.2691963911056519 : f64} : (f64) -> !hi_spn.probability + %917 = "hi_spn.product"(%891, %892, %893, %894, %895, %896, %897, %898, %899, %900, %901, %902, %903, %904, %905, %906, %907, %908, %909, %910, %911, %912, %913, %914, %915, %916) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %918 = "hi_spn.gaussian"(%arg0) {mean = -10.436210632324219 : f64, stddev = 1.4779411554336548 : f64} : (f64) -> !hi_spn.probability + %919 = "hi_spn.gaussian"(%arg1) {mean = -4.0135188102722168 : f64, stddev = 0.92587637901306152 : f64} : (f64) -> !hi_spn.probability + %920 = "hi_spn.gaussian"(%arg2) {mean = -1.7208881378173828 : f64, stddev = 0.94762784242630005 : f64} : (f64) -> !hi_spn.probability + %921 = "hi_spn.gaussian"(%arg3) {mean = -3.1651289463043213 : f64, stddev = 0.81832879781723022 : f64} : (f64) -> !hi_spn.probability + %922 = "hi_spn.gaussian"(%arg4) {mean = -1.8401142358779907 : f64, stddev = 1.1011760234832764 : f64} : (f64) -> !hi_spn.probability + %923 = "hi_spn.gaussian"(%arg5) {mean = -2.6372189521789551 : f64, stddev = 0.71314060688018799 : f64} : (f64) -> !hi_spn.probability + %924 = "hi_spn.gaussian"(%arg6) {mean = -5.3622751235961914 : f64, stddev = 0.75845551490783691 : f64} : (f64) -> !hi_spn.probability + %925 = "hi_spn.gaussian"(%arg7) {mean = -6.2630615234375 : f64, stddev = 1.0034798383712769 : f64} : (f64) -> !hi_spn.probability + %926 = "hi_spn.gaussian"(%arg8) {mean = -6.9896492958068848 : f64, stddev = 0.99534767866134644 : f64} : (f64) -> !hi_spn.probability + %927 = "hi_spn.gaussian"(%arg9) {mean = -8.1565103530883789 : f64, stddev = 0.85185080766677856 : f64} : (f64) -> !hi_spn.probability + %928 = "hi_spn.gaussian"(%arg10) {mean = -9.2875986099243164 : f64, stddev = 0.6341976523399353 : f64} : (f64) -> !hi_spn.probability + %929 = "hi_spn.gaussian"(%arg11) {mean = -9.8726491928100586 : f64, stddev = 0.44093248248100281 : f64} : (f64) -> !hi_spn.probability + %930 = "hi_spn.gaussian"(%arg12) {mean = -10.007036209106445 : f64, stddev = 0.80108165740966796 : f64} : (f64) -> !hi_spn.probability + %931 = "hi_spn.gaussian"(%arg13) {mean = -9.7574748992919921 : f64, stddev = 0.97871679067611694 : f64} : (f64) -> !hi_spn.probability + %932 = "hi_spn.gaussian"(%arg14) {mean = -8.6751565933227539 : f64, stddev = 1.2305699586868286 : f64} : (f64) -> !hi_spn.probability + %933 = "hi_spn.gaussian"(%arg15) {mean = -6.661280632019043 : f64, stddev = 0.79650658369064331 : f64} : (f64) -> !hi_spn.probability + %934 = "hi_spn.gaussian"(%arg16) {mean = -5.997164249420166 : f64, stddev = 0.75940555334091187 : f64} : (f64) -> !hi_spn.probability + %935 = "hi_spn.gaussian"(%arg17) {mean = -6.2550802230834961 : f64, stddev = 0.87985718250274658 : f64} : (f64) -> !hi_spn.probability + %936 = "hi_spn.gaussian"(%arg18) {mean = -7.3322205543518066 : f64, stddev = 1.2232767343521118 : f64} : (f64) -> !hi_spn.probability + %937 = "hi_spn.gaussian"(%arg19) {mean = -7.7378687858581543 : f64, stddev = 0.85412430763244629 : f64} : (f64) -> !hi_spn.probability + %938 = "hi_spn.gaussian"(%arg20) {mean = -7.8974146842956543 : f64, stddev = 0.77754616737365723 : f64} : (f64) -> !hi_spn.probability + %939 = "hi_spn.gaussian"(%arg21) {mean = -8.5601415634155273 : f64, stddev = 1.1521861553192139 : f64} : (f64) -> !hi_spn.probability + %940 = "hi_spn.gaussian"(%arg22) {mean = -9.2366037368774414 : f64, stddev = 0.98268908262252808 : f64} : (f64) -> !hi_spn.probability + %941 = "hi_spn.gaussian"(%arg23) {mean = -11.197366714477539 : f64, stddev = 0.87608838081359863 : f64} : (f64) -> !hi_spn.probability + %942 = "hi_spn.gaussian"(%arg24) {mean = -12.91578197479248 : f64, stddev = 0.87993723154067993 : f64} : (f64) -> !hi_spn.probability + %943 = "hi_spn.gaussian"(%arg25) {mean = -11.93703556060791 : f64, stddev = 0.97124397754669189 : f64} : (f64) -> !hi_spn.probability + %944 = "hi_spn.product"(%918, %919, %920, %921, %922, %923, %924, %925, %926, %927, %928, %929, %930, %931, %932, %933, %934, %935, %936, %937, %938, %939, %940, %941, %942, %943) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %945 = "hi_spn.gaussian"(%arg0) {mean = -9.833597183227539 : f64, stddev = 1.0907855033874512 : f64} : (f64) -> !hi_spn.probability + %946 = "hi_spn.gaussian"(%arg1) {mean = -4.0390524864196777 : f64, stddev = 0.78612041473388671 : f64} : (f64) -> !hi_spn.probability + %947 = "hi_spn.gaussian"(%arg2) {mean = -1.4742909669876099 : f64, stddev = 0.68472737073898315 : f64} : (f64) -> !hi_spn.probability + %948 = "hi_spn.gaussian"(%arg3) {mean = -2.7696833610534668 : f64, stddev = 0.68950402736663818 : f64} : (f64) -> !hi_spn.probability + %949 = "hi_spn.gaussian"(%arg4) {mean = -1.4038190841674805 : f64, stddev = 1.3762784004211426 : f64} : (f64) -> !hi_spn.probability + %950 = "hi_spn.gaussian"(%arg5) {mean = -1.7416650056838989 : f64, stddev = 0.91569679975509644 : f64} : (f64) -> !hi_spn.probability + %951 = "hi_spn.gaussian"(%arg6) {mean = -4.9131836891174316 : f64, stddev = 0.75484305620193481 : f64} : (f64) -> !hi_spn.probability + %952 = "hi_spn.gaussian"(%arg7) {mean = -5.4134435653686523 : f64, stddev = 1.0748820304870605 : f64} : (f64) -> !hi_spn.probability + %953 = "hi_spn.gaussian"(%arg8) {mean = -6.2267675399780273 : f64, stddev = 0.84619265794754028 : f64} : (f64) -> !hi_spn.probability + %954 = "hi_spn.gaussian"(%arg9) {mean = -7.4962115287780762 : f64, stddev = 0.88376325368881226 : f64} : (f64) -> !hi_spn.probability + %955 = "hi_spn.gaussian"(%arg10) {mean = -8.263010025024414 : f64, stddev = 0.55605345964431763 : f64} : (f64) -> !hi_spn.probability + %956 = "hi_spn.gaussian"(%arg11) {mean = -8.7847108840942383 : f64, stddev = 0.52556300163269043 : f64} : (f64) -> !hi_spn.probability + %957 = "hi_spn.gaussian"(%arg12) {mean = -8.6225795745849609 : f64, stddev = 0.74376451969146729 : f64} : (f64) -> !hi_spn.probability + %958 = "hi_spn.gaussian"(%arg13) {mean = -8.0213594436645508 : f64, stddev = 0.90518307685852051 : f64} : (f64) -> !hi_spn.probability + %959 = "hi_spn.gaussian"(%arg14) {mean = -6.6528916358947754 : f64, stddev = 1.1090271472930908 : f64} : (f64) -> !hi_spn.probability + %960 = "hi_spn.gaussian"(%arg15) {mean = -4.7926692962646484 : f64, stddev = 0.74751162528991699 : f64} : (f64) -> !hi_spn.probability + %961 = "hi_spn.gaussian"(%arg16) {mean = -4.3798871040344238 : f64, stddev = 0.75730806589126587 : f64} : (f64) -> !hi_spn.probability + %962 = "hi_spn.gaussian"(%arg17) {mean = -4.7557125091552734 : f64, stddev = 0.53218239545822144 : f64} : (f64) -> !hi_spn.probability + %963 = "hi_spn.gaussian"(%arg18) {mean = -6.5564794540405273 : f64, stddev = 0.60670953989028931 : f64} : (f64) -> !hi_spn.probability + %964 = "hi_spn.gaussian"(%arg19) {mean = -6.9815449714660645 : f64, stddev = 0.95475029945373535 : f64} : (f64) -> !hi_spn.probability + %965 = "hi_spn.gaussian"(%arg20) {mean = -7.3663234710693359 : f64, stddev = 0.82087987661361694 : f64} : (f64) -> !hi_spn.probability + %966 = "hi_spn.gaussian"(%arg21) {mean = -7.5917763710021973 : f64, stddev = 0.94074583053588867 : f64} : (f64) -> !hi_spn.probability + %967 = "hi_spn.gaussian"(%arg22) {mean = -8.2853860855102539 : f64, stddev = 0.95664125680923462 : f64} : (f64) -> !hi_spn.probability + %968 = "hi_spn.gaussian"(%arg23) {mean = -10.092695236206055 : f64, stddev = 1.2007377147674561 : f64} : (f64) -> !hi_spn.probability + %969 = "hi_spn.gaussian"(%arg24) {mean = -12.154717445373535 : f64, stddev = 1.2859437465667725 : f64} : (f64) -> !hi_spn.probability + %970 = "hi_spn.gaussian"(%arg25) {mean = -11.675235748291016 : f64, stddev = 1.0932331085205078 : f64} : (f64) -> !hi_spn.probability + %971 = "hi_spn.product"(%945, %946, %947, %948, %949, %950, %951, %952, %953, %954, %955, %956, %957, %958, %959, %960, %961, %962, %963, %964, %965, %966, %967, %968, %969, %970) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %972 = "hi_spn.gaussian"(%arg0) {mean = -10.489375114440918 : f64, stddev = 1.226300835609436 : f64} : (f64) -> !hi_spn.probability + %973 = "hi_spn.gaussian"(%arg1) {mean = -9.1801462173461914 : f64, stddev = 1.7605600357055664 : f64} : (f64) -> !hi_spn.probability + %974 = "hi_spn.gaussian"(%arg2) {mean = -0.81491231918334961 : f64, stddev = 0.33945226669311523 : f64} : (f64) -> !hi_spn.probability + %975 = "hi_spn.gaussian"(%arg3) {mean = -0.83029347658157349 : f64, stddev = 0.49317523837089539 : f64} : (f64) -> !hi_spn.probability + %976 = "hi_spn.gaussian"(%arg4) {mean = -7.7032761573791504 : f64, stddev = 1.6647742986679077 : f64} : (f64) -> !hi_spn.probability + %977 = "hi_spn.gaussian"(%arg5) {mean = -3.469184398651123 : f64, stddev = 1.0174826383590698 : f64} : (f64) -> !hi_spn.probability + %978 = "hi_spn.gaussian"(%arg6) {mean = -5.1385297775268555 : f64, stddev = 1.0903304815292358 : f64} : (f64) -> !hi_spn.probability + %979 = "hi_spn.gaussian"(%arg7) {mean = -5.9208335876464844 : f64, stddev = 1.0827924013137817 : f64} : (f64) -> !hi_spn.probability + %980 = "hi_spn.gaussian"(%arg8) {mean = -6.8205480575561523 : f64, stddev = 0.94009685516357421 : f64} : (f64) -> !hi_spn.probability + %981 = "hi_spn.gaussian"(%arg9) {mean = -7.4760260581970215 : f64, stddev = 1.5458405017852783 : f64} : (f64) -> !hi_spn.probability + %982 = "hi_spn.gaussian"(%arg10) {mean = -9.0852432250976563 : f64, stddev = 0.9363328218460083 : f64} : (f64) -> !hi_spn.probability + %983 = "hi_spn.gaussian"(%arg11) {mean = -9.6024837493896484 : f64, stddev = 0.89487618207931519 : f64} : (f64) -> !hi_spn.probability + %984 = "hi_spn.gaussian"(%arg12) {mean = -9.7949123382568359 : f64, stddev = 1.3379267454147339 : f64} : (f64) -> !hi_spn.probability + %985 = "hi_spn.gaussian"(%arg13) {mean = -8.8436574935913086 : f64, stddev = 1.3269118070602417 : f64} : (f64) -> !hi_spn.probability + %986 = "hi_spn.gaussian"(%arg14) {mean = -9.3430652618408203 : f64, stddev = 1.3181419372558594 : f64} : (f64) -> !hi_spn.probability + %987 = "hi_spn.gaussian"(%arg15) {mean = -8.0937795639038086 : f64, stddev = 1.0623131990432739 : f64} : (f64) -> !hi_spn.probability + %988 = "hi_spn.gaussian"(%arg16) {mean = -7.2502899169921875 : f64, stddev = 1.1114747524261475 : f64} : (f64) -> !hi_spn.probability + %989 = "hi_spn.gaussian"(%arg17) {mean = -8.3913412094116211 : f64, stddev = 1.0131533145904541 : f64} : (f64) -> !hi_spn.probability + %990 = "hi_spn.gaussian"(%arg18) {mean = -10.440448760986328 : f64, stddev = 1.3407052755355835 : f64} : (f64) -> !hi_spn.probability + %991 = "hi_spn.gaussian"(%arg19) {mean = -11.747071266174316 : f64, stddev = 1.0393321514129639 : f64} : (f64) -> !hi_spn.probability + %992 = "hi_spn.gaussian"(%arg20) {mean = -12.200018882751465 : f64, stddev = 0.93863022327423095 : f64} : (f64) -> !hi_spn.probability + %993 = "hi_spn.gaussian"(%arg21) {mean = -10.82451343536377 : f64, stddev = 0.82789593935012817 : f64} : (f64) -> !hi_spn.probability + %994 = "hi_spn.gaussian"(%arg22) {mean = -11.226709365844727 : f64, stddev = 0.85984188318252563 : f64} : (f64) -> !hi_spn.probability + %995 = "hi_spn.gaussian"(%arg23) {mean = -12.170046806335449 : f64, stddev = 0.64912641048431396 : f64} : (f64) -> !hi_spn.probability + %996 = "hi_spn.gaussian"(%arg24) {mean = -13.209172248840332 : f64, stddev = 0.52552169561386108 : f64} : (f64) -> !hi_spn.probability + %997 = "hi_spn.gaussian"(%arg25) {mean = -12.816998481750488 : f64, stddev = 1.0517578125 : f64} : (f64) -> !hi_spn.probability + %998 = "hi_spn.product"(%972, %973, %974, %975, %976, %977, %978, %979, %980, %981, %982, %983, %984, %985, %986, %987, %988, %989, %990, %991, %992, %993, %994, %995, %996, %997) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %999 = "hi_spn.gaussian"(%arg0) {mean = -10.819424629211426 : f64, stddev = 1.6672060489654541 : f64} : (f64) -> !hi_spn.probability + %1000 = "hi_spn.gaussian"(%arg1) {mean = -4.6306056976318359 : f64, stddev = 0.65040570497512817 : f64} : (f64) -> !hi_spn.probability + %1001 = "hi_spn.gaussian"(%arg2) {mean = -2.5265374183654785 : f64, stddev = 0.85881149768829345 : f64} : (f64) -> !hi_spn.probability + %1002 = "hi_spn.gaussian"(%arg3) {mean = -4.3654990196228027 : f64, stddev = 1.2949390411376953 : f64} : (f64) -> !hi_spn.probability + %1003 = "hi_spn.gaussian"(%arg4) {mean = -4.0098605155944824 : f64, stddev = 0.73030763864517212 : f64} : (f64) -> !hi_spn.probability + %1004 = "hi_spn.gaussian"(%arg5) {mean = -4.7656607627868652 : f64, stddev = 0.7860444188117981 : f64} : (f64) -> !hi_spn.probability + %1005 = "hi_spn.gaussian"(%arg6) {mean = -5.4859867095947266 : f64, stddev = 1.1014890670776367 : f64} : (f64) -> !hi_spn.probability + %1006 = "hi_spn.gaussian"(%arg7) {mean = -6.5465569496154785 : f64, stddev = 1.0494014024734497 : f64} : (f64) -> !hi_spn.probability + %1007 = "hi_spn.gaussian"(%arg8) {mean = -7.0204353332519531 : f64, stddev = 1.2330511808395386 : f64} : (f64) -> !hi_spn.probability + %1008 = "hi_spn.gaussian"(%arg9) {mean = -8.8022174835205078 : f64, stddev = 1.2973226308822632 : f64} : (f64) -> !hi_spn.probability + %1009 = "hi_spn.gaussian"(%arg10) {mean = -9.832362174987793 : f64, stddev = 1.0624798536300659 : f64} : (f64) -> !hi_spn.probability + %1010 = "hi_spn.gaussian"(%arg11) {mean = -10.014893531799316 : f64, stddev = 1.4548715353012085 : f64} : (f64) -> !hi_spn.probability + %1011 = "hi_spn.gaussian"(%arg12) {mean = -9.663395881652832 : f64, stddev = 1.4171836376190186 : f64} : (f64) -> !hi_spn.probability + %1012 = "hi_spn.gaussian"(%arg13) {mean = -9.7386913299560546 : f64, stddev = 1.3236730098724365 : f64} : (f64) -> !hi_spn.probability + %1013 = "hi_spn.gaussian"(%arg14) {mean = -10.56541633605957 : f64, stddev = 1.0107494592666626 : f64} : (f64) -> !hi_spn.probability + %1014 = "hi_spn.gaussian"(%arg15) {mean = -9.5219125747680664 : f64, stddev = 1.0399661064147949 : f64} : (f64) -> !hi_spn.probability + %1015 = "hi_spn.gaussian"(%arg16) {mean = -8.566990852355957 : f64, stddev = 1.3697303533554077 : f64} : (f64) -> !hi_spn.probability + %1016 = "hi_spn.gaussian"(%arg17) {mean = -8.9433822631835938 : f64, stddev = 1.112363338470459 : f64} : (f64) -> !hi_spn.probability + %1017 = "hi_spn.gaussian"(%arg18) {mean = -10.231456756591797 : f64, stddev = 1.2360868453979492 : f64} : (f64) -> !hi_spn.probability + %1018 = "hi_spn.gaussian"(%arg19) {mean = -11.765486717224121 : f64, stddev = 1.7491947412490845 : f64} : (f64) -> !hi_spn.probability + %1019 = "hi_spn.gaussian"(%arg20) {mean = -11.70713996887207 : f64, stddev = 1.7856770753860474 : f64} : (f64) -> !hi_spn.probability + %1020 = "hi_spn.gaussian"(%arg21) {mean = -11.096717834472656 : f64, stddev = 1.4486944675445557 : f64} : (f64) -> !hi_spn.probability + %1021 = "hi_spn.gaussian"(%arg22) {mean = -11.03333854675293 : f64, stddev = 1.1830134391784668 : f64} : (f64) -> !hi_spn.probability + %1022 = "hi_spn.gaussian"(%arg23) {mean = -11.091206550598145 : f64, stddev = 1.1412117481231689 : f64} : (f64) -> !hi_spn.probability + %1023 = "hi_spn.gaussian"(%arg24) {mean = -12.257561683654785 : f64, stddev = 1.2616052627563477 : f64} : (f64) -> !hi_spn.probability + %1024 = "hi_spn.gaussian"(%arg25) {mean = -12.690559387207031 : f64, stddev = 1.4887253046035767 : f64} : (f64) -> !hi_spn.probability + %1025 = "hi_spn.product"(%999, %1000, %1001, %1002, %1003, %1004, %1005, %1006, %1007, %1008, %1009, %1010, %1011, %1012, %1013, %1014, %1015, %1016, %1017, %1018, %1019, %1020, %1021, %1022, %1023, %1024) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1026 = "hi_spn.gaussian"(%arg0) {mean = -9.8382110595703125 : f64, stddev = 1.5572248697280884 : f64} : (f64) -> !hi_spn.probability + %1027 = "hi_spn.gaussian"(%arg1) {mean = -5.2357525825500488 : f64, stddev = 1.2814018726348877 : f64} : (f64) -> !hi_spn.probability + %1028 = "hi_spn.gaussian"(%arg2) {mean = -2.6223793029785156 : f64, stddev = 1.4195970296859741 : f64} : (f64) -> !hi_spn.probability + %1029 = "hi_spn.gaussian"(%arg3) {mean = -3.8391854763031006 : f64, stddev = 1.2860488891601563 : f64} : (f64) -> !hi_spn.probability + %1030 = "hi_spn.gaussian"(%arg4) {mean = -4.197566032409668 : f64, stddev = 1.4915007352828979 : f64} : (f64) -> !hi_spn.probability + %1031 = "hi_spn.gaussian"(%arg5) {mean = -4.3215475082397461 : f64, stddev = 1.5362021923065186 : f64} : (f64) -> !hi_spn.probability + %1032 = "hi_spn.gaussian"(%arg6) {mean = -5.0924887657165527 : f64, stddev = 1.2099570035934448 : f64} : (f64) -> !hi_spn.probability + %1033 = "hi_spn.gaussian"(%arg7) {mean = -5.7551736831665039 : f64, stddev = 1.0074242353439331 : f64} : (f64) -> !hi_spn.probability + %1034 = "hi_spn.gaussian"(%arg8) {mean = -6.3504877090454102 : f64, stddev = 0.92476552724838257 : f64} : (f64) -> !hi_spn.probability + %1035 = "hi_spn.gaussian"(%arg9) {mean = -7.2732639312744141 : f64, stddev = 1.0113298892974854 : f64} : (f64) -> !hi_spn.probability + %1036 = "hi_spn.gaussian"(%arg10) {mean = -7.5051403045654296 : f64, stddev = 1.333922266960144 : f64} : (f64) -> !hi_spn.probability + %1037 = "hi_spn.gaussian"(%arg11) {mean = -7.6550216674804688 : f64, stddev = 1.1054495573043823 : f64} : (f64) -> !hi_spn.probability + %1038 = "hi_spn.gaussian"(%arg12) {mean = -7.4450759887695313 : f64, stddev = 0.99781680107116699 : f64} : (f64) -> !hi_spn.probability + %1039 = "hi_spn.gaussian"(%arg13) {mean = -7.5736489295959473 : f64, stddev = 1.1368300914764404 : f64} : (f64) -> !hi_spn.probability + %1040 = "hi_spn.gaussian"(%arg14) {mean = -8.6893730163574219 : f64, stddev = 1.0895533561706543 : f64} : (f64) -> !hi_spn.probability + %1041 = "hi_spn.gaussian"(%arg15) {mean = -8.3181896209716796 : f64, stddev = 1.132673978805542 : f64} : (f64) -> !hi_spn.probability + %1042 = "hi_spn.gaussian"(%arg16) {mean = -7.9254050254821777 : f64, stddev = 1.337899923324585 : f64} : (f64) -> !hi_spn.probability + %1043 = "hi_spn.gaussian"(%arg17) {mean = -8.8909854888916015 : f64, stddev = 1.2344081401824951 : f64} : (f64) -> !hi_spn.probability + %1044 = "hi_spn.gaussian"(%arg18) {mean = -10.483150482177734 : f64, stddev = 1.3635133504867554 : f64} : (f64) -> !hi_spn.probability + %1045 = "hi_spn.gaussian"(%arg19) {mean = -10.840538024902344 : f64, stddev = 1.1403928995132446 : f64} : (f64) -> !hi_spn.probability + %1046 = "hi_spn.gaussian"(%arg20) {mean = -11.156883239746094 : f64, stddev = 1.3845118284225464 : f64} : (f64) -> !hi_spn.probability + %1047 = "hi_spn.gaussian"(%arg21) {mean = -10.875722885131836 : f64, stddev = 0.96912670135498046 : f64} : (f64) -> !hi_spn.probability + %1048 = "hi_spn.gaussian"(%arg22) {mean = -11.36088752746582 : f64, stddev = 1.0131925344467163 : f64} : (f64) -> !hi_spn.probability + %1049 = "hi_spn.gaussian"(%arg23) {mean = -11.798334121704102 : f64, stddev = 1.2232018709182739 : f64} : (f64) -> !hi_spn.probability + %1050 = "hi_spn.gaussian"(%arg24) {mean = -12.316329002380371 : f64, stddev = 1.3515380620956421 : f64} : (f64) -> !hi_spn.probability + %1051 = "hi_spn.gaussian"(%arg25) {mean = -12.124046325683594 : f64, stddev = 1.2149113416671753 : f64} : (f64) -> !hi_spn.probability + %1052 = "hi_spn.product"(%1026, %1027, %1028, %1029, %1030, %1031, %1032, %1033, %1034, %1035, %1036, %1037, %1038, %1039, %1040, %1041, %1042, %1043, %1044, %1045, %1046, %1047, %1048, %1049, %1050, %1051) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1053 = "hi_spn.gaussian"(%arg0) {mean = -7.2309999465942383 : f64, stddev = 1.2445898056030273 : f64} : (f64) -> !hi_spn.probability + %1054 = "hi_spn.gaussian"(%arg1) {mean = -6.6493148803710938 : f64, stddev = 1.2343853712081909 : f64} : (f64) -> !hi_spn.probability + %1055 = "hi_spn.gaussian"(%arg2) {mean = -5.7628579139709473 : f64, stddev = 1.8869490623474121 : f64} : (f64) -> !hi_spn.probability + %1056 = "hi_spn.gaussian"(%arg3) {mean = -5.459449291229248 : f64, stddev = 1.7240660190582275 : f64} : (f64) -> !hi_spn.probability + %1057 = "hi_spn.gaussian"(%arg4) {mean = -5.2457284927368164 : f64, stddev = 1.1228725910186768 : f64} : (f64) -> !hi_spn.probability + %1058 = "hi_spn.gaussian"(%arg5) {mean = -4.7064261436462402 : f64, stddev = 1.1334860324859619 : f64} : (f64) -> !hi_spn.probability + %1059 = "hi_spn.gaussian"(%arg6) {mean = -4.8315496444702148 : f64, stddev = 1.0474543571472168 : f64} : (f64) -> !hi_spn.probability + %1060 = "hi_spn.gaussian"(%arg7) {mean = -5.0882172584533691 : f64, stddev = 0.94963991641998291 : f64} : (f64) -> !hi_spn.probability + %1061 = "hi_spn.gaussian"(%arg8) {mean = -5.2574496269226074 : f64, stddev = 0.91658270359039306 : f64} : (f64) -> !hi_spn.probability + %1062 = "hi_spn.gaussian"(%arg9) {mean = -5.6460046768188477 : f64, stddev = 1.280026912689209 : f64} : (f64) -> !hi_spn.probability + %1063 = "hi_spn.gaussian"(%arg10) {mean = -6.0984697341918945 : f64, stddev = 1.3769861459732056 : f64} : (f64) -> !hi_spn.probability + %1064 = "hi_spn.gaussian"(%arg11) {mean = -6.0819640159606934 : f64, stddev = 1.4242912530899048 : f64} : (f64) -> !hi_spn.probability + %1065 = "hi_spn.gaussian"(%arg12) {mean = -5.8782033920288086 : f64, stddev = 1.46324622631073 : f64} : (f64) -> !hi_spn.probability + %1066 = "hi_spn.gaussian"(%arg13) {mean = -5.5773954391479492 : f64, stddev = 1.4371429681777954 : f64} : (f64) -> !hi_spn.probability + %1067 = "hi_spn.gaussian"(%arg14) {mean = -5.3658294677734375 : f64, stddev = 1.2640963792800903 : f64} : (f64) -> !hi_spn.probability + %1068 = "hi_spn.gaussian"(%arg15) {mean = -5.5418314933776855 : f64, stddev = 1.3779838085174561 : f64} : (f64) -> !hi_spn.probability + %1069 = "hi_spn.gaussian"(%arg16) {mean = -5.5687675476074219 : f64, stddev = 1.2168639898300171 : f64} : (f64) -> !hi_spn.probability + %1070 = "hi_spn.gaussian"(%arg17) {mean = -5.2717933654785156 : f64, stddev = 1.0420016050338745 : f64} : (f64) -> !hi_spn.probability + %1071 = "hi_spn.gaussian"(%arg18) {mean = -5.5776395797729492 : f64, stddev = 0.9799433946609497 : f64} : (f64) -> !hi_spn.probability + %1072 = "hi_spn.gaussian"(%arg19) {mean = -5.4936866760253906 : f64, stddev = 1.2099307775497437 : f64} : (f64) -> !hi_spn.probability + %1073 = "hi_spn.gaussian"(%arg20) {mean = -5.1846704483032227 : f64, stddev = 1.1288354396820068 : f64} : (f64) -> !hi_spn.probability + %1074 = "hi_spn.gaussian"(%arg21) {mean = -5.2059946060180664 : f64, stddev = 1.112478494644165 : f64} : (f64) -> !hi_spn.probability + %1075 = "hi_spn.gaussian"(%arg22) {mean = -5.1526393890380859 : f64, stddev = 1.3980242013931274 : f64} : (f64) -> !hi_spn.probability + %1076 = "hi_spn.gaussian"(%arg23) {mean = -5.5041618347167969 : f64, stddev = 1.6479111909866333 : f64} : (f64) -> !hi_spn.probability + %1077 = "hi_spn.gaussian"(%arg24) {mean = -5.8385224342346191 : f64, stddev = 1.6687132120132446 : f64} : (f64) -> !hi_spn.probability + %1078 = "hi_spn.gaussian"(%arg25) {mean = -6.1566195487976074 : f64, stddev = 1.9301201105117798 : f64} : (f64) -> !hi_spn.probability + %1079 = "hi_spn.product"(%1053, %1054, %1055, %1056, %1057, %1058, %1059, %1060, %1061, %1062, %1063, %1064, %1065, %1066, %1067, %1068, %1069, %1070, %1071, %1072, %1073, %1074, %1075, %1076, %1077, %1078) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1080 = "hi_spn.gaussian"(%arg0) {mean = -8.0718984603881836 : f64, stddev = 0.64068573713302612 : f64} : (f64) -> !hi_spn.probability + %1081 = "hi_spn.gaussian"(%arg1) {mean = -8.0720939636230469 : f64, stddev = 0.68794006109237671 : f64} : (f64) -> !hi_spn.probability + %1082 = "hi_spn.gaussian"(%arg2) {mean = -7.081303596496582 : f64, stddev = 1.4512956142425537 : f64} : (f64) -> !hi_spn.probability + %1083 = "hi_spn.gaussian"(%arg3) {mean = -6.5840411186218262 : f64, stddev = 1.4161738157272339 : f64} : (f64) -> !hi_spn.probability + %1084 = "hi_spn.gaussian"(%arg4) {mean = -6.8991994857788086 : f64, stddev = 0.66820621490478516 : f64} : (f64) -> !hi_spn.probability + %1085 = "hi_spn.gaussian"(%arg5) {mean = -6.815464973449707 : f64, stddev = 1.0969631671905518 : f64} : (f64) -> !hi_spn.probability + %1086 = "hi_spn.gaussian"(%arg6) {mean = -6.7508015632629395 : f64, stddev = 0.94350093603134155 : f64} : (f64) -> !hi_spn.probability + %1087 = "hi_spn.gaussian"(%arg7) {mean = -6.85614013671875 : f64, stddev = 0.93601173162460327 : f64} : (f64) -> !hi_spn.probability + %1088 = "hi_spn.gaussian"(%arg8) {mean = -7.2362642288208008 : f64, stddev = 0.76955103874206543 : f64} : (f64) -> !hi_spn.probability + %1089 = "hi_spn.gaussian"(%arg9) {mean = -7.8254504203796387 : f64, stddev = 0.7439727783203125 : f64} : (f64) -> !hi_spn.probability + %1090 = "hi_spn.gaussian"(%arg10) {mean = -8.3638067245483398 : f64, stddev = 0.70645099878311157 : f64} : (f64) -> !hi_spn.probability + %1091 = "hi_spn.gaussian"(%arg11) {mean = -8.6499233245849609 : f64, stddev = 0.54317241907119751 : f64} : (f64) -> !hi_spn.probability + %1092 = "hi_spn.gaussian"(%arg12) {mean = -8.3376340866088867 : f64, stddev = 0.69814634323120117 : f64} : (f64) -> !hi_spn.probability + %1093 = "hi_spn.gaussian"(%arg13) {mean = -7.3728580474853516 : f64, stddev = 0.9181816577911377 : f64} : (f64) -> !hi_spn.probability + %1094 = "hi_spn.gaussian"(%arg14) {mean = -6.1138381958007813 : f64, stddev = 0.89531338214874267 : f64} : (f64) -> !hi_spn.probability + %1095 = "hi_spn.gaussian"(%arg15) {mean = -6.0433230400085449 : f64, stddev = 1.3080294132232666 : f64} : (f64) -> !hi_spn.probability + %1096 = "hi_spn.gaussian"(%arg16) {mean = -4.8985066413879395 : f64, stddev = 1.165818452835083 : f64} : (f64) -> !hi_spn.probability + %1097 = "hi_spn.gaussian"(%arg17) {mean = -4.0946245193481445 : f64, stddev = 1.0064244270324707 : f64} : (f64) -> !hi_spn.probability + %1098 = "hi_spn.gaussian"(%arg18) {mean = -4.5328187942504883 : f64, stddev = 1.1166538000106812 : f64} : (f64) -> !hi_spn.probability + %1099 = "hi_spn.gaussian"(%arg19) {mean = -3.6615931987762451 : f64, stddev = 1.2922987937927246 : f64} : (f64) -> !hi_spn.probability + %1100 = "hi_spn.gaussian"(%arg20) {mean = -4.2720804214477539 : f64, stddev = 1.5321072340011597 : f64} : (f64) -> !hi_spn.probability + %1101 = "hi_spn.gaussian"(%arg21) {mean = -5.359041690826416 : f64, stddev = 1.3452335596084595 : f64} : (f64) -> !hi_spn.probability + %1102 = "hi_spn.gaussian"(%arg22) {mean = -5.5917234420776367 : f64, stddev = 1.2890455722808838 : f64} : (f64) -> !hi_spn.probability + %1103 = "hi_spn.gaussian"(%arg23) {mean = -5.7564973831176758 : f64, stddev = 1.2081470489501953 : f64} : (f64) -> !hi_spn.probability + %1104 = "hi_spn.gaussian"(%arg24) {mean = -6.1401138305664063 : f64, stddev = 1.4194154739379883 : f64} : (f64) -> !hi_spn.probability + %1105 = "hi_spn.gaussian"(%arg25) {mean = -6.6150164604187012 : f64, stddev = 1.3413540124893188 : f64} : (f64) -> !hi_spn.probability + %1106 = "hi_spn.product"(%1080, %1081, %1082, %1083, %1084, %1085, %1086, %1087, %1088, %1089, %1090, %1091, %1092, %1093, %1094, %1095, %1096, %1097, %1098, %1099, %1100, %1101, %1102, %1103, %1104, %1105) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1107 = "hi_spn.gaussian"(%arg0) {mean = -8.1327724456787109 : f64, stddev = 0.83897727727890015 : f64} : (f64) -> !hi_spn.probability + %1108 = "hi_spn.gaussian"(%arg1) {mean = -7.4625945091247559 : f64, stddev = 0.98968738317489624 : f64} : (f64) -> !hi_spn.probability + %1109 = "hi_spn.gaussian"(%arg2) {mean = -6.7246294021606445 : f64, stddev = 0.96315348148345947 : f64} : (f64) -> !hi_spn.probability + %1110 = "hi_spn.gaussian"(%arg3) {mean = -6.5153493881225586 : f64, stddev = 0.75170618295669556 : f64} : (f64) -> !hi_spn.probability + %1111 = "hi_spn.gaussian"(%arg4) {mean = -6.0564794540405273 : f64, stddev = 0.66891670227050781 : f64} : (f64) -> !hi_spn.probability + %1112 = "hi_spn.gaussian"(%arg5) {mean = -5.8513154983520508 : f64, stddev = 0.66089785099029541 : f64} : (f64) -> !hi_spn.probability + %1113 = "hi_spn.gaussian"(%arg6) {mean = -5.9307498931884766 : f64, stddev = 0.71004027128219604 : f64} : (f64) -> !hi_spn.probability + %1114 = "hi_spn.gaussian"(%arg7) {mean = -6.2762465476989746 : f64, stddev = 0.68832004070281982 : f64} : (f64) -> !hi_spn.probability + %1115 = "hi_spn.gaussian"(%arg8) {mean = -6.3094396591186523 : f64, stddev = 0.68908232450485229 : f64} : (f64) -> !hi_spn.probability + %1116 = "hi_spn.gaussian"(%arg9) {mean = -6.7853331565856934 : f64, stddev = 0.81109845638275146 : f64} : (f64) -> !hi_spn.probability + %1117 = "hi_spn.gaussian"(%arg10) {mean = -7.6216001510620117 : f64, stddev = 0.60689467191696167 : f64} : (f64) -> !hi_spn.probability + %1118 = "hi_spn.gaussian"(%arg11) {mean = -7.5946106910705566 : f64, stddev = 0.65252119302749634 : f64} : (f64) -> !hi_spn.probability + %1119 = "hi_spn.gaussian"(%arg12) {mean = -6.7727460861206055 : f64, stddev = 0.77765560150146484 : f64} : (f64) -> !hi_spn.probability + %1120 = "hi_spn.gaussian"(%arg13) {mean = -5.3121771812438965 : f64, stddev = 1.0217887163162231 : f64} : (f64) -> !hi_spn.probability + %1121 = "hi_spn.gaussian"(%arg14) {mean = -4.3809232711791992 : f64, stddev = 1.0800201892852783 : f64} : (f64) -> !hi_spn.probability + %1122 = "hi_spn.gaussian"(%arg15) {mean = -3.306704044342041 : f64, stddev = 1.2345993518829346 : f64} : (f64) -> !hi_spn.probability + %1123 = "hi_spn.gaussian"(%arg16) {mean = -2.4655814170837402 : f64, stddev = 0.99901485443115234 : f64} : (f64) -> !hi_spn.probability + %1124 = "hi_spn.gaussian"(%arg17) {mean = -2.4478905200958252 : f64, stddev = 1.0119580030441284 : f64} : (f64) -> !hi_spn.probability + %1125 = "hi_spn.gaussian"(%arg18) {mean = -3.2528014183044434 : f64, stddev = 0.91763502359390259 : f64} : (f64) -> !hi_spn.probability + %1126 = "hi_spn.gaussian"(%arg19) {mean = -3.3298881053924561 : f64, stddev = 1.1470904350280762 : f64} : (f64) -> !hi_spn.probability + %1127 = "hi_spn.gaussian"(%arg20) {mean = -4.0067887306213379 : f64, stddev = 1.0368081331253052 : f64} : (f64) -> !hi_spn.probability + %1128 = "hi_spn.gaussian"(%arg21) {mean = -4.3828825950622559 : f64, stddev = 0.82735782861709595 : f64} : (f64) -> !hi_spn.probability + %1129 = "hi_spn.gaussian"(%arg22) {mean = -4.418696403503418 : f64, stddev = 0.8494982123374939 : f64} : (f64) -> !hi_spn.probability + %1130 = "hi_spn.gaussian"(%arg23) {mean = -4.5085997581481934 : f64, stddev = 0.87574118375778198 : f64} : (f64) -> !hi_spn.probability + %1131 = "hi_spn.gaussian"(%arg24) {mean = -4.8956670761108398 : f64, stddev = 0.85967069864273071 : f64} : (f64) -> !hi_spn.probability + %1132 = "hi_spn.gaussian"(%arg25) {mean = -5.6702165603637695 : f64, stddev = 0.86872106790542603 : f64} : (f64) -> !hi_spn.probability + %1133 = "hi_spn.product"(%1107, %1108, %1109, %1110, %1111, %1112, %1113, %1114, %1115, %1116, %1117, %1118, %1119, %1120, %1121, %1122, %1123, %1124, %1125, %1126, %1127, %1128, %1129, %1130, %1131, %1132) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1134 = "hi_spn.gaussian"(%arg0) {mean = -8.1351470947265625 : f64, stddev = 1.2107608318328857 : f64} : (f64) -> !hi_spn.probability + %1135 = "hi_spn.gaussian"(%arg1) {mean = -7.6069998741149902 : f64, stddev = 0.98783421516418457 : f64} : (f64) -> !hi_spn.probability + %1136 = "hi_spn.gaussian"(%arg2) {mean = -7.2112936973571777 : f64, stddev = 1.4660775661468506 : f64} : (f64) -> !hi_spn.probability + %1137 = "hi_spn.gaussian"(%arg3) {mean = -7.4928908348083496 : f64, stddev = 1.232511043548584 : f64} : (f64) -> !hi_spn.probability + %1138 = "hi_spn.gaussian"(%arg4) {mean = -7.4281439781188965 : f64, stddev = 0.74590414762496948 : f64} : (f64) -> !hi_spn.probability + %1139 = "hi_spn.gaussian"(%arg5) {mean = -6.8674616813659668 : f64, stddev = 0.7836916446685791 : f64} : (f64) -> !hi_spn.probability + %1140 = "hi_spn.gaussian"(%arg6) {mean = -6.6300444602966309 : f64, stddev = 0.82512605190277099 : f64} : (f64) -> !hi_spn.probability + %1141 = "hi_spn.gaussian"(%arg7) {mean = -6.5386452674865723 : f64, stddev = 0.83634114265441895 : f64} : (f64) -> !hi_spn.probability + %1142 = "hi_spn.gaussian"(%arg8) {mean = -6.5623278617858887 : f64, stddev = 0.76402616500854492 : f64} : (f64) -> !hi_spn.probability + %1143 = "hi_spn.gaussian"(%arg9) {mean = -6.8173694610595703 : f64, stddev = 0.71194523572921753 : f64} : (f64) -> !hi_spn.probability + %1144 = "hi_spn.gaussian"(%arg10) {mean = -7.2219152450561523 : f64, stddev = 0.71198701858520508 : f64} : (f64) -> !hi_spn.probability + %1145 = "hi_spn.gaussian"(%arg11) {mean = -7.6279535293579102 : f64, stddev = 0.8509259819984436 : f64} : (f64) -> !hi_spn.probability + %1146 = "hi_spn.gaussian"(%arg12) {mean = -7.4050402641296387 : f64, stddev = 0.70776689052581787 : f64} : (f64) -> !hi_spn.probability + %1147 = "hi_spn.gaussian"(%arg13) {mean = -6.9807381629943848 : f64, stddev = 0.59256702661514282 : f64} : (f64) -> !hi_spn.probability + %1148 = "hi_spn.gaussian"(%arg14) {mean = -7.2108397483825684 : f64, stddev = 0.61555415391921997 : f64} : (f64) -> !hi_spn.probability + %1149 = "hi_spn.gaussian"(%arg15) {mean = -7.1595516204833984 : f64, stddev = 0.52552497386932373 : f64} : (f64) -> !hi_spn.probability + %1150 = "hi_spn.gaussian"(%arg16) {mean = -7.2618060111999512 : f64, stddev = 0.60964733362197876 : f64} : (f64) -> !hi_spn.probability + %1151 = "hi_spn.gaussian"(%arg17) {mean = -6.8453741073608398 : f64, stddev = 0.69571346044540405 : f64} : (f64) -> !hi_spn.probability + %1152 = "hi_spn.gaussian"(%arg18) {mean = -6.7002315521240234 : f64, stddev = 0.8325534462928772 : f64} : (f64) -> !hi_spn.probability + %1153 = "hi_spn.gaussian"(%arg19) {mean = -6.7711272239685059 : f64, stddev = 0.60424131155014038 : f64} : (f64) -> !hi_spn.probability + %1154 = "hi_spn.gaussian"(%arg20) {mean = -6.4360752105712891 : f64, stddev = 0.50771445035934448 : f64} : (f64) -> !hi_spn.probability + %1155 = "hi_spn.gaussian"(%arg21) {mean = -5.727851390838623 : f64, stddev = 0.63428497314453125 : f64} : (f64) -> !hi_spn.probability + %1156 = "hi_spn.gaussian"(%arg22) {mean = -4.7468819618225098 : f64, stddev = 0.95185911655426025 : f64} : (f64) -> !hi_spn.probability + %1157 = "hi_spn.gaussian"(%arg23) {mean = -3.7135066986083984 : f64, stddev = 1.1514450311660767 : f64} : (f64) -> !hi_spn.probability + %1158 = "hi_spn.gaussian"(%arg24) {mean = -3.3609490394592285 : f64, stddev = 1.1183294057846069 : f64} : (f64) -> !hi_spn.probability + %1159 = "hi_spn.gaussian"(%arg25) {mean = -3.1431469917297363 : f64, stddev = 1.1440502405166626 : f64} : (f64) -> !hi_spn.probability + %1160 = "hi_spn.product"(%1134, %1135, %1136, %1137, %1138, %1139, %1140, %1141, %1142, %1143, %1144, %1145, %1146, %1147, %1148, %1149, %1150, %1151, %1152, %1153, %1154, %1155, %1156, %1157, %1158, %1159) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1161 = "hi_spn.gaussian"(%arg0) {mean = -8.5960350036621094 : f64, stddev = 0.94565409421920776 : f64} : (f64) -> !hi_spn.probability + %1162 = "hi_spn.gaussian"(%arg1) {mean = -8.3736753463745117 : f64, stddev = 0.84241259098052978 : f64} : (f64) -> !hi_spn.probability + %1163 = "hi_spn.gaussian"(%arg2) {mean = -7.7529253959655762 : f64, stddev = 1.0274713039398193 : f64} : (f64) -> !hi_spn.probability + %1164 = "hi_spn.gaussian"(%arg3) {mean = -7.4459090232849121 : f64, stddev = 0.96476179361343384 : f64} : (f64) -> !hi_spn.probability + %1165 = "hi_spn.gaussian"(%arg4) {mean = -6.955103874206543 : f64, stddev = 0.82510042190551758 : f64} : (f64) -> !hi_spn.probability + %1166 = "hi_spn.gaussian"(%arg5) {mean = -6.4802327156066895 : f64, stddev = 0.6795576810836792 : f64} : (f64) -> !hi_spn.probability + %1167 = "hi_spn.gaussian"(%arg6) {mean = -6.3315639495849609 : f64, stddev = 0.83499896526336669 : f64} : (f64) -> !hi_spn.probability + %1168 = "hi_spn.gaussian"(%arg7) {mean = -6.4603075981140137 : f64, stddev = 0.8735663890838623 : f64} : (f64) -> !hi_spn.probability + %1169 = "hi_spn.gaussian"(%arg8) {mean = -6.3615522384643555 : f64, stddev = 0.67139559984207153 : f64} : (f64) -> !hi_spn.probability + %1170 = "hi_spn.gaussian"(%arg9) {mean = -6.6965460777282715 : f64, stddev = 0.55126649141311646 : f64} : (f64) -> !hi_spn.probability + %1171 = "hi_spn.gaussian"(%arg10) {mean = -6.9876432418823242 : f64, stddev = 0.64887279272079468 : f64} : (f64) -> !hi_spn.probability + %1172 = "hi_spn.gaussian"(%arg11) {mean = -7.3160581588745117 : f64, stddev = 0.73588627576828003 : f64} : (f64) -> !hi_spn.probability + %1173 = "hi_spn.gaussian"(%arg12) {mean = -7.5721745491027832 : f64, stddev = 0.69569993019104004 : f64} : (f64) -> !hi_spn.probability + %1174 = "hi_spn.gaussian"(%arg13) {mean = -7.1877260208129883 : f64, stddev = 0.51203268766403198 : f64} : (f64) -> !hi_spn.probability + %1175 = "hi_spn.gaussian"(%arg14) {mean = -7.0640602111816406 : f64, stddev = 0.79380953311920166 : f64} : (f64) -> !hi_spn.probability + %1176 = "hi_spn.gaussian"(%arg15) {mean = -7.4718151092529296 : f64, stddev = 0.74522888660430908 : f64} : (f64) -> !hi_spn.probability + %1177 = "hi_spn.gaussian"(%arg16) {mean = -7.2574644088745117 : f64, stddev = 0.59343963861465454 : f64} : (f64) -> !hi_spn.probability + %1178 = "hi_spn.gaussian"(%arg17) {mean = -6.4826140403747559 : f64, stddev = 0.69413727521896362 : f64} : (f64) -> !hi_spn.probability + %1179 = "hi_spn.gaussian"(%arg18) {mean = -6.7211971282958984 : f64, stddev = 0.66545355319976807 : f64} : (f64) -> !hi_spn.probability + %1180 = "hi_spn.gaussian"(%arg19) {mean = -5.8741817474365234 : f64, stddev = 1.1997512578964233 : f64} : (f64) -> !hi_spn.probability + %1181 = "hi_spn.gaussian"(%arg20) {mean = -4.1347441673278809 : f64, stddev = 1.0272082090377808 : f64} : (f64) -> !hi_spn.probability + %1182 = "hi_spn.gaussian"(%arg21) {mean = -3.2810747623443604 : f64, stddev = 0.60014808177947998 : f64} : (f64) -> !hi_spn.probability + %1183 = "hi_spn.gaussian"(%arg22) {mean = -3.0261728763580322 : f64, stddev = 0.96363931894302368 : f64} : (f64) -> !hi_spn.probability + %1184 = "hi_spn.gaussian"(%arg23) {mean = -3.0812456607818604 : f64, stddev = 1.0443340539932251 : f64} : (f64) -> !hi_spn.probability + %1185 = "hi_spn.gaussian"(%arg24) {mean = -3.7295598983764648 : f64, stddev = 1.0644252300262451 : f64} : (f64) -> !hi_spn.probability + %1186 = "hi_spn.gaussian"(%arg25) {mean = -3.8976898193359375 : f64, stddev = 1.1002380847930908 : f64} : (f64) -> !hi_spn.probability + %1187 = "hi_spn.product"(%1161, %1162, %1163, %1164, %1165, %1166, %1167, %1168, %1169, %1170, %1171, %1172, %1173, %1174, %1175, %1176, %1177, %1178, %1179, %1180, %1181, %1182, %1183, %1184, %1185, %1186) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1188 = "hi_spn.gaussian"(%arg0) {mean = -10.228626251220703 : f64, stddev = 0.48262864351272583 : f64} : (f64) -> !hi_spn.probability + %1189 = "hi_spn.gaussian"(%arg1) {mean = -9.4260520935058593 : f64, stddev = 1.0795828104019165 : f64} : (f64) -> !hi_spn.probability + %1190 = "hi_spn.gaussian"(%arg2) {mean = -9.3699159622192383 : f64, stddev = 1.5720652341842651 : f64} : (f64) -> !hi_spn.probability + %1191 = "hi_spn.gaussian"(%arg3) {mean = -9.8879709243774414 : f64, stddev = 0.65752583742141724 : f64} : (f64) -> !hi_spn.probability + %1192 = "hi_spn.gaussian"(%arg4) {mean = -8.6183042526245117 : f64, stddev = 0.25848942995071411 : f64} : (f64) -> !hi_spn.probability + %1193 = "hi_spn.gaussian"(%arg5) {mean = -9.1497011184692383 : f64, stddev = 0.94090962409973145 : f64} : (f64) -> !hi_spn.probability + %1194 = "hi_spn.gaussian"(%arg6) {mean = -9.6549367904663086 : f64, stddev = 0.53325551748275757 : f64} : (f64) -> !hi_spn.probability + %1195 = "hi_spn.gaussian"(%arg7) {mean = -10.142255783081055 : f64, stddev = 0.62614536285400391 : f64} : (f64) -> !hi_spn.probability + %1196 = "hi_spn.gaussian"(%arg8) {mean = -9.497675895690918 : f64, stddev = 0.28528979420661926 : f64} : (f64) -> !hi_spn.probability + %1197 = "hi_spn.gaussian"(%arg9) {mean = -9.802271842956543 : f64, stddev = 0.75829267501831055 : f64} : (f64) -> !hi_spn.probability + %1198 = "hi_spn.gaussian"(%arg10) {mean = -9.773712158203125 : f64, stddev = 0.59009057283401489 : f64} : (f64) -> !hi_spn.probability + %1199 = "hi_spn.gaussian"(%arg11) {mean = -9.9491195678710938 : f64, stddev = 0.49780485033988953 : f64} : (f64) -> !hi_spn.probability + %1200 = "hi_spn.gaussian"(%arg12) {mean = -9.0933647155761719 : f64, stddev = 0.82718503475189208 : f64} : (f64) -> !hi_spn.probability + %1201 = "hi_spn.gaussian"(%arg13) {mean = -8.4050445556640625 : f64, stddev = 1.2810466289520264 : f64} : (f64) -> !hi_spn.probability + %1202 = "hi_spn.gaussian"(%arg14) {mean = -7.3729300498962402 : f64, stddev = 1.3321777582168579 : f64} : (f64) -> !hi_spn.probability + %1203 = "hi_spn.gaussian"(%arg15) {mean = -6.4275321960449219 : f64, stddev = 0.84346389770507813 : f64} : (f64) -> !hi_spn.probability + %1204 = "hi_spn.gaussian"(%arg16) {mean = -4.1672978401184082 : f64, stddev = 1.0621676445007324 : f64} : (f64) -> !hi_spn.probability + %1205 = "hi_spn.gaussian"(%arg17) {mean = -3.3934333324432373 : f64, stddev = 1.0357874631881714 : f64} : (f64) -> !hi_spn.probability + %1206 = "hi_spn.gaussian"(%arg18) {mean = -3.5318877696990967 : f64, stddev = 0.91614431142807007 : f64} : (f64) -> !hi_spn.probability + %1207 = "hi_spn.gaussian"(%arg19) {mean = -3.6603190898895264 : f64, stddev = 1.0337003469467163 : f64} : (f64) -> !hi_spn.probability + %1208 = "hi_spn.gaussian"(%arg20) {mean = -4.2903323173522949 : f64, stddev = 0.91162919998168945 : f64} : (f64) -> !hi_spn.probability + %1209 = "hi_spn.gaussian"(%arg21) {mean = -4.5510520935058594 : f64, stddev = 0.16234958171844482 : f64} : (f64) -> !hi_spn.probability + %1210 = "hi_spn.gaussian"(%arg22) {mean = -4.4354791641235352 : f64, stddev = 0.1556677520275116 : f64} : (f64) -> !hi_spn.probability + %1211 = "hi_spn.gaussian"(%arg23) {mean = -4.5420160293579102 : f64, stddev = 0.10435239225625992 : f64} : (f64) -> !hi_spn.probability + %1212 = "hi_spn.gaussian"(%arg24) {mean = -4.7109465599060059 : f64, stddev = 0.83287334442138671 : f64} : (f64) -> !hi_spn.probability + %1213 = "hi_spn.gaussian"(%arg25) {mean = -4.9718303680419922 : f64, stddev = 0.85044741630554199 : f64} : (f64) -> !hi_spn.probability + %1214 = "hi_spn.product"(%1188, %1189, %1190, %1191, %1192, %1193, %1194, %1195, %1196, %1197, %1198, %1199, %1200, %1201, %1202, %1203, %1204, %1205, %1206, %1207, %1208, %1209, %1210, %1211, %1212, %1213) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1215 = "hi_spn.gaussian"(%arg0) {mean = -9.3904399871826171 : f64, stddev = 1.152754545211792 : f64} : (f64) -> !hi_spn.probability + %1216 = "hi_spn.gaussian"(%arg1) {mean = -9.7540502548217773 : f64, stddev = 0.86461043357849121 : f64} : (f64) -> !hi_spn.probability + %1217 = "hi_spn.gaussian"(%arg2) {mean = -9.4713287353515625 : f64, stddev = 0.84429699182510376 : f64} : (f64) -> !hi_spn.probability + %1218 = "hi_spn.gaussian"(%arg3) {mean = -8.9653387069702148 : f64, stddev = 0.69941234588623047 : f64} : (f64) -> !hi_spn.probability + %1219 = "hi_spn.gaussian"(%arg4) {mean = -8.1735820770263671 : f64, stddev = 0.6002272367477417 : f64} : (f64) -> !hi_spn.probability + %1220 = "hi_spn.gaussian"(%arg5) {mean = -7.4526243209838867 : f64, stddev = 0.47542226314544678 : f64} : (f64) -> !hi_spn.probability + %1221 = "hi_spn.gaussian"(%arg6) {mean = -7.3608407974243164 : f64, stddev = 0.47880584001541138 : f64} : (f64) -> !hi_spn.probability + %1222 = "hi_spn.gaussian"(%arg7) {mean = -7.2663478851318359 : f64, stddev = 0.60803425312042236 : f64} : (f64) -> !hi_spn.probability + %1223 = "hi_spn.gaussian"(%arg8) {mean = -7.2425718307495117 : f64, stddev = 0.46909874677658081 : f64} : (f64) -> !hi_spn.probability + %1224 = "hi_spn.gaussian"(%arg9) {mean = -7.529088020324707 : f64, stddev = 0.62576359510421753 : f64} : (f64) -> !hi_spn.probability + %1225 = "hi_spn.gaussian"(%arg10) {mean = -7.6450953483581543 : f64, stddev = 0.6576501727104187 : f64} : (f64) -> !hi_spn.probability + %1226 = "hi_spn.gaussian"(%arg11) {mean = -7.895993709564209 : f64, stddev = 0.64979934692382813 : f64} : (f64) -> !hi_spn.probability + %1227 = "hi_spn.gaussian"(%arg12) {mean = -7.967918872833252 : f64, stddev = 0.54690402746200562 : f64} : (f64) -> !hi_spn.probability + %1228 = "hi_spn.gaussian"(%arg13) {mean = -7.715120792388916 : f64, stddev = 0.48729050159454346 : f64} : (f64) -> !hi_spn.probability + %1229 = "hi_spn.gaussian"(%arg14) {mean = -7.7423973083496094 : f64, stddev = 0.55065226554870605 : f64} : (f64) -> !hi_spn.probability + %1230 = "hi_spn.gaussian"(%arg15) {mean = -7.6820602416992188 : f64, stddev = 0.51393657922744751 : f64} : (f64) -> !hi_spn.probability + %1231 = "hi_spn.gaussian"(%arg16) {mean = -7.6381373405456543 : f64, stddev = 0.57497531175613403 : f64} : (f64) -> !hi_spn.probability + %1232 = "hi_spn.gaussian"(%arg17) {mean = -7.205955982208252 : f64, stddev = 0.5891653299331665 : f64} : (f64) -> !hi_spn.probability + %1233 = "hi_spn.gaussian"(%arg18) {mean = -7.0726304054260254 : f64, stddev = 0.51587694883346558 : f64} : (f64) -> !hi_spn.probability + %1234 = "hi_spn.gaussian"(%arg19) {mean = -7.014378547668457 : f64, stddev = 0.63250213861465454 : f64} : (f64) -> !hi_spn.probability + %1235 = "hi_spn.gaussian"(%arg20) {mean = -6.578834056854248 : f64, stddev = 0.71568793058395386 : f64} : (f64) -> !hi_spn.probability + %1236 = "hi_spn.gaussian"(%arg21) {mean = -5.7346096038818359 : f64, stddev = 1.1677343845367432 : f64} : (f64) -> !hi_spn.probability + %1237 = "hi_spn.gaussian"(%arg22) {mean = -4.4110879898071289 : f64, stddev = 1.3120131492614746 : f64} : (f64) -> !hi_spn.probability + %1238 = "hi_spn.gaussian"(%arg23) {mean = -3.6912524700164795 : f64, stddev = 1.3358936309814453 : f64} : (f64) -> !hi_spn.probability + %1239 = "hi_spn.gaussian"(%arg24) {mean = -3.2795472145080566 : f64, stddev = 1.1750563383102417 : f64} : (f64) -> !hi_spn.probability + %1240 = "hi_spn.gaussian"(%arg25) {mean = -2.9861128330230713 : f64, stddev = 1.1393617391586304 : f64} : (f64) -> !hi_spn.probability + %1241 = "hi_spn.product"(%1215, %1216, %1217, %1218, %1219, %1220, %1221, %1222, %1223, %1224, %1225, %1226, %1227, %1228, %1229, %1230, %1231, %1232, %1233, %1234, %1235, %1236, %1237, %1238, %1239, %1240) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1242 = "hi_spn.gaussian"(%arg0) {mean = -10.538475036621094 : f64, stddev = 0.87019312381744384 : f64} : (f64) -> !hi_spn.probability + %1243 = "hi_spn.gaussian"(%arg1) {mean = -10.333244323730469 : f64, stddev = 0.81989151239395142 : f64} : (f64) -> !hi_spn.probability + %1244 = "hi_spn.gaussian"(%arg2) {mean = -9.7449064254760742 : f64, stddev = 0.93104016780853271 : f64} : (f64) -> !hi_spn.probability + %1245 = "hi_spn.gaussian"(%arg3) {mean = -9.3484325408935546 : f64, stddev = 0.94051861763000488 : f64} : (f64) -> !hi_spn.probability + %1246 = "hi_spn.gaussian"(%arg4) {mean = -9.0750856399536133 : f64, stddev = 0.89459359645843505 : f64} : (f64) -> !hi_spn.probability + %1247 = "hi_spn.gaussian"(%arg5) {mean = -8.4267511367797852 : f64, stddev = 0.87579178810119629 : f64} : (f64) -> !hi_spn.probability + %1248 = "hi_spn.gaussian"(%arg6) {mean = -8.4656181335449219 : f64, stddev = 0.87951827049255371 : f64} : (f64) -> !hi_spn.probability + %1249 = "hi_spn.gaussian"(%arg7) {mean = -8.0339326858520508 : f64, stddev = 0.70159304141998291 : f64} : (f64) -> !hi_spn.probability + %1250 = "hi_spn.gaussian"(%arg8) {mean = -8.1093721389770508 : f64, stddev = 0.8358035683631897 : f64} : (f64) -> !hi_spn.probability + %1251 = "hi_spn.gaussian"(%arg9) {mean = -8.256845474243164 : f64, stddev = 0.71503901481628418 : f64} : (f64) -> !hi_spn.probability + %1252 = "hi_spn.gaussian"(%arg10) {mean = -8.6761112213134765 : f64, stddev = 0.64327800273895264 : f64} : (f64) -> !hi_spn.probability + %1253 = "hi_spn.gaussian"(%arg11) {mean = -8.7061166763305664 : f64, stddev = 0.6480562686920166 : f64} : (f64) -> !hi_spn.probability + %1254 = "hi_spn.gaussian"(%arg12) {mean = -8.5889863967895508 : f64, stddev = 0.82020813226699829 : f64} : (f64) -> !hi_spn.probability + %1255 = "hi_spn.gaussian"(%arg13) {mean = -8.5061864852905273 : f64, stddev = 0.71188557147979736 : f64} : (f64) -> !hi_spn.probability + %1256 = "hi_spn.gaussian"(%arg14) {mean = -8.5804824829101563 : f64, stddev = 0.67343908548355103 : f64} : (f64) -> !hi_spn.probability + %1257 = "hi_spn.gaussian"(%arg15) {mean = -8.7928228378295898 : f64, stddev = 0.62495940923690796 : f64} : (f64) -> !hi_spn.probability + %1258 = "hi_spn.gaussian"(%arg16) {mean = -8.7564296722412109 : f64, stddev = 0.53966408967971802 : f64} : (f64) -> !hi_spn.probability + %1259 = "hi_spn.gaussian"(%arg17) {mean = -8.2335834503173828 : f64, stddev = 0.61673712730407715 : f64} : (f64) -> !hi_spn.probability + %1260 = "hi_spn.gaussian"(%arg18) {mean = -8.4317474365234375 : f64, stddev = 0.42848673462867737 : f64} : (f64) -> !hi_spn.probability + %1261 = "hi_spn.gaussian"(%arg19) {mean = -7.9238200187683105 : f64, stddev = 0.56645852327346802 : f64} : (f64) -> !hi_spn.probability + %1262 = "hi_spn.gaussian"(%arg20) {mean = -6.3985996246337891 : f64, stddev = 0.95271551609039306 : f64} : (f64) -> !hi_spn.probability + %1263 = "hi_spn.gaussian"(%arg21) {mean = -4.9638056755065918 : f64, stddev = 0.93421643972396851 : f64} : (f64) -> !hi_spn.probability + %1264 = "hi_spn.gaussian"(%arg22) {mean = -3.7508585453033447 : f64, stddev = 1.046027660369873 : f64} : (f64) -> !hi_spn.probability + %1265 = "hi_spn.gaussian"(%arg23) {mean = -3.0062263011932373 : f64, stddev = 0.72930556535720825 : f64} : (f64) -> !hi_spn.probability + %1266 = "hi_spn.gaussian"(%arg24) {mean = -3.3981304168701172 : f64, stddev = 0.64163941144943237 : f64} : (f64) -> !hi_spn.probability + %1267 = "hi_spn.gaussian"(%arg25) {mean = -3.5509719848632813 : f64, stddev = 0.67582345008850098 : f64} : (f64) -> !hi_spn.probability + %1268 = "hi_spn.product"(%1242, %1243, %1244, %1245, %1246, %1247, %1248, %1249, %1250, %1251, %1252, %1253, %1254, %1255, %1256, %1257, %1258, %1259, %1260, %1261, %1262, %1263, %1264, %1265, %1266, %1267) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1269 = "hi_spn.gaussian"(%arg0) {mean = -8.2763452529907227 : f64, stddev = 1.5482563972473145 : f64} : (f64) -> !hi_spn.probability + %1270 = "hi_spn.gaussian"(%arg1) {mean = -7.9458565711975098 : f64, stddev = 1.4370685815811157 : f64} : (f64) -> !hi_spn.probability + %1271 = "hi_spn.gaussian"(%arg2) {mean = -7.5023512840270996 : f64, stddev = 1.1574099063873291 : f64} : (f64) -> !hi_spn.probability + %1272 = "hi_spn.gaussian"(%arg3) {mean = -7.0802135467529297 : f64, stddev = 1.1082210540771484 : f64} : (f64) -> !hi_spn.probability + %1273 = "hi_spn.gaussian"(%arg4) {mean = -6.6080574989318848 : f64, stddev = 0.93516576290130615 : f64} : (f64) -> !hi_spn.probability + %1274 = "hi_spn.gaussian"(%arg5) {mean = -6.0482759475708008 : f64, stddev = 1.0284839868545532 : f64} : (f64) -> !hi_spn.probability + %1275 = "hi_spn.gaussian"(%arg6) {mean = -6.048738956451416 : f64, stddev = 1.0235182046890259 : f64} : (f64) -> !hi_spn.probability + %1276 = "hi_spn.gaussian"(%arg7) {mean = -6.2141504287719727 : f64, stddev = 0.95114743709564208 : f64} : (f64) -> !hi_spn.probability + %1277 = "hi_spn.gaussian"(%arg8) {mean = -6.3661699295043945 : f64, stddev = 0.98208391666412353 : f64} : (f64) -> !hi_spn.probability + %1278 = "hi_spn.gaussian"(%arg9) {mean = -6.649263858795166 : f64, stddev = 0.96567648649215698 : f64} : (f64) -> !hi_spn.probability + %1279 = "hi_spn.gaussian"(%arg10) {mean = -6.6243577003479004 : f64, stddev = 1.1962635517120361 : f64} : (f64) -> !hi_spn.probability + %1280 = "hi_spn.gaussian"(%arg11) {mean = -6.501615047454834 : f64, stddev = 1.1897907257080078 : f64} : (f64) -> !hi_spn.probability + %1281 = "hi_spn.gaussian"(%arg12) {mean = -6.5107059478759766 : f64, stddev = 1.1074386835098267 : f64} : (f64) -> !hi_spn.probability + %1282 = "hi_spn.gaussian"(%arg13) {mean = -6.5365705490112305 : f64, stddev = 0.88953518867492676 : f64} : (f64) -> !hi_spn.probability + %1283 = "hi_spn.gaussian"(%arg14) {mean = -6.7228875160217285 : f64, stddev = 0.86779379844665527 : f64} : (f64) -> !hi_spn.probability + %1284 = "hi_spn.gaussian"(%arg15) {mean = -7.1269693374633789 : f64, stddev = 0.8477974534034729 : f64} : (f64) -> !hi_spn.probability + %1285 = "hi_spn.gaussian"(%arg16) {mean = -7.1350765228271484 : f64, stddev = 0.86106348037719727 : f64} : (f64) -> !hi_spn.probability + %1286 = "hi_spn.gaussian"(%arg17) {mean = -7.1070237159729004 : f64, stddev = 0.86179369688034058 : f64} : (f64) -> !hi_spn.probability + %1287 = "hi_spn.gaussian"(%arg18) {mean = -7.49188232421875 : f64, stddev = 0.80724263191223145 : f64} : (f64) -> !hi_spn.probability + %1288 = "hi_spn.gaussian"(%arg19) {mean = -7.6040186882019043 : f64, stddev = 0.8483319878578186 : f64} : (f64) -> !hi_spn.probability + %1289 = "hi_spn.gaussian"(%arg20) {mean = -7.6384525299072265 : f64, stddev = 0.84793817996978759 : f64} : (f64) -> !hi_spn.probability + %1290 = "hi_spn.gaussian"(%arg21) {mean = -7.7130618095397949 : f64, stddev = 0.98142987489700317 : f64} : (f64) -> !hi_spn.probability + %1291 = "hi_spn.gaussian"(%arg22) {mean = -7.9229326248168945 : f64, stddev = 0.90395647287368774 : f64} : (f64) -> !hi_spn.probability + %1292 = "hi_spn.gaussian"(%arg23) {mean = -8.0784845352172852 : f64, stddev = 0.76727509498596191 : f64} : (f64) -> !hi_spn.probability + %1293 = "hi_spn.gaussian"(%arg24) {mean = -8.1217403411865234 : f64, stddev = 0.88810628652572632 : f64} : (f64) -> !hi_spn.probability + %1294 = "hi_spn.gaussian"(%arg25) {mean = -8.3681907653808594 : f64, stddev = 1.0997027158737183 : f64} : (f64) -> !hi_spn.probability + %1295 = "hi_spn.product"(%1269, %1270, %1271, %1272, %1273, %1274, %1275, %1276, %1277, %1278, %1279, %1280, %1281, %1282, %1283, %1284, %1285, %1286, %1287, %1288, %1289, %1290, %1291, %1292, %1293, %1294) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1296 = "hi_spn.gaussian"(%arg0) {mean = -8.0788431167602539 : f64, stddev = 1.7629274129867554 : f64} : (f64) -> !hi_spn.probability + %1297 = "hi_spn.gaussian"(%arg1) {mean = -5.8274893760681152 : f64, stddev = 1.4190887212753296 : f64} : (f64) -> !hi_spn.probability + %1298 = "hi_spn.gaussian"(%arg2) {mean = -3.7184379100799561 : f64, stddev = 1.2627127170562744 : f64} : (f64) -> !hi_spn.probability + %1299 = "hi_spn.gaussian"(%arg3) {mean = -4.2851533889770508 : f64, stddev = 1.4183335304260254 : f64} : (f64) -> !hi_spn.probability + %1300 = "hi_spn.gaussian"(%arg4) {mean = -4.6801080703735352 : f64, stddev = 1.5078637599945068 : f64} : (f64) -> !hi_spn.probability + %1301 = "hi_spn.gaussian"(%arg5) {mean = -4.7582817077636719 : f64, stddev = 1.1500116586685181 : f64} : (f64) -> !hi_spn.probability + %1302 = "hi_spn.gaussian"(%arg6) {mean = -5.8414387702941895 : f64, stddev = 0.96987110376358032 : f64} : (f64) -> !hi_spn.probability + %1303 = "hi_spn.gaussian"(%arg7) {mean = -6.5751662254333496 : f64, stddev = 0.92585963010787964 : f64} : (f64) -> !hi_spn.probability + %1304 = "hi_spn.gaussian"(%arg8) {mean = -7.0944614410400391 : f64, stddev = 1.0390374660491943 : f64} : (f64) -> !hi_spn.probability + %1305 = "hi_spn.gaussian"(%arg9) {mean = -7.7705574035644531 : f64, stddev = 0.96487277746200562 : f64} : (f64) -> !hi_spn.probability + %1306 = "hi_spn.gaussian"(%arg10) {mean = -8.3968572616577148 : f64, stddev = 1.0851093530654907 : f64} : (f64) -> !hi_spn.probability + %1307 = "hi_spn.gaussian"(%arg11) {mean = -8.4713306427001953 : f64, stddev = 1.0234142541885376 : f64} : (f64) -> !hi_spn.probability + %1308 = "hi_spn.gaussian"(%arg12) {mean = -8.0066690444946289 : f64, stddev = 1.0682411193847656 : f64} : (f64) -> !hi_spn.probability + %1309 = "hi_spn.gaussian"(%arg13) {mean = -7.1591887474060059 : f64, stddev = 0.99134224653244019 : f64} : (f64) -> !hi_spn.probability + %1310 = "hi_spn.gaussian"(%arg14) {mean = -6.8796572685241699 : f64, stddev = 1.1367703676223755 : f64} : (f64) -> !hi_spn.probability + %1311 = "hi_spn.gaussian"(%arg15) {mean = -7.233879566192627 : f64, stddev = 1.3663802146911621 : f64} : (f64) -> !hi_spn.probability + %1312 = "hi_spn.gaussian"(%arg16) {mean = -7.0371413230895996 : f64, stddev = 1.5991319417953491 : f64} : (f64) -> !hi_spn.probability + %1313 = "hi_spn.gaussian"(%arg17) {mean = -6.5239334106445313 : f64, stddev = 1.3880279064178467 : f64} : (f64) -> !hi_spn.probability + %1314 = "hi_spn.gaussian"(%arg18) {mean = -7.1891932487487793 : f64, stddev = 1.2469980716705322 : f64} : (f64) -> !hi_spn.probability + %1315 = "hi_spn.gaussian"(%arg19) {mean = -7.5768561363220215 : f64, stddev = 1.4959133863449097 : f64} : (f64) -> !hi_spn.probability + %1316 = "hi_spn.gaussian"(%arg20) {mean = -7.3721022605895996 : f64, stddev = 1.1623878479003906 : f64} : (f64) -> !hi_spn.probability + %1317 = "hi_spn.gaussian"(%arg21) {mean = -7.3525428771972656 : f64, stddev = 0.96901643276214599 : f64} : (f64) -> !hi_spn.probability + %1318 = "hi_spn.gaussian"(%arg22) {mean = -7.4475760459899902 : f64, stddev = 0.76724720001220703 : f64} : (f64) -> !hi_spn.probability + %1319 = "hi_spn.gaussian"(%arg23) {mean = -7.658205509185791 : f64, stddev = 0.90215820074081421 : f64} : (f64) -> !hi_spn.probability + %1320 = "hi_spn.gaussian"(%arg24) {mean = -8.0744352340698242 : f64, stddev = 1.1901699304580688 : f64} : (f64) -> !hi_spn.probability + %1321 = "hi_spn.gaussian"(%arg25) {mean = -8.3895692825317383 : f64, stddev = 1.4592515230178833 : f64} : (f64) -> !hi_spn.probability + %1322 = "hi_spn.product"(%1296, %1297, %1298, %1299, %1300, %1301, %1302, %1303, %1304, %1305, %1306, %1307, %1308, %1309, %1310, %1311, %1312, %1313, %1314, %1315, %1316, %1317, %1318, %1319, %1320, %1321) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1323 = "hi_spn.gaussian"(%arg0) {mean = -9.1151790618896484 : f64, stddev = 1.8383872509002686 : f64} : (f64) -> !hi_spn.probability + %1324 = "hi_spn.gaussian"(%arg1) {mean = -8.3986024856567383 : f64, stddev = 1.7844225168228149 : f64} : (f64) -> !hi_spn.probability + %1325 = "hi_spn.gaussian"(%arg2) {mean = -7.4234485626220703 : f64, stddev = 2.3560254573822021 : f64} : (f64) -> !hi_spn.probability + %1326 = "hi_spn.gaussian"(%arg3) {mean = -7.3714137077331543 : f64, stddev = 1.8511563539505005 : f64} : (f64) -> !hi_spn.probability + %1327 = "hi_spn.gaussian"(%arg4) {mean = -7.5643291473388671 : f64, stddev = 1.3674472570419312 : f64} : (f64) -> !hi_spn.probability + %1328 = "hi_spn.gaussian"(%arg5) {mean = -7.6122360229492188 : f64, stddev = 1.0652170181274414 : f64} : (f64) -> !hi_spn.probability + %1329 = "hi_spn.gaussian"(%arg6) {mean = -7.7723932266235352 : f64, stddev = 1.088209867477417 : f64} : (f64) -> !hi_spn.probability + %1330 = "hi_spn.gaussian"(%arg7) {mean = -7.9320664405822754 : f64, stddev = 1.0915054082870483 : f64} : (f64) -> !hi_spn.probability + %1331 = "hi_spn.gaussian"(%arg8) {mean = -7.9642972946166992 : f64, stddev = 0.83227568864822388 : f64} : (f64) -> !hi_spn.probability + %1332 = "hi_spn.gaussian"(%arg9) {mean = -8.3301496505737305 : f64, stddev = 1.0040323734283447 : f64} : (f64) -> !hi_spn.probability + %1333 = "hi_spn.gaussian"(%arg10) {mean = -8.7318401336669921 : f64, stddev = 1.0766065120697021 : f64} : (f64) -> !hi_spn.probability + %1334 = "hi_spn.gaussian"(%arg11) {mean = -8.9305620193481445 : f64, stddev = 0.96655642986297607 : f64} : (f64) -> !hi_spn.probability + %1335 = "hi_spn.gaussian"(%arg12) {mean = -8.7896757125854492 : f64, stddev = 1.019780158996582 : f64} : (f64) -> !hi_spn.probability + %1336 = "hi_spn.gaussian"(%arg13) {mean = -8.7733983993530273 : f64, stddev = 1.0307799577713013 : f64} : (f64) -> !hi_spn.probability + %1337 = "hi_spn.gaussian"(%arg14) {mean = -8.9007492065429688 : f64, stddev = 1.190665602684021 : f64} : (f64) -> !hi_spn.probability + %1338 = "hi_spn.gaussian"(%arg15) {mean = -9.0362682342529296 : f64, stddev = 1.1130634546279907 : f64} : (f64) -> !hi_spn.probability + %1339 = "hi_spn.gaussian"(%arg16) {mean = -8.6109113693237305 : f64, stddev = 1.1620199680328369 : f64} : (f64) -> !hi_spn.probability + %1340 = "hi_spn.gaussian"(%arg17) {mean = -8.5171031951904296 : f64, stddev = 1.1569207906723022 : f64} : (f64) -> !hi_spn.probability + %1341 = "hi_spn.gaussian"(%arg18) {mean = -8.8785953521728515 : f64, stddev = 1.1959621906280518 : f64} : (f64) -> !hi_spn.probability + %1342 = "hi_spn.gaussian"(%arg19) {mean = -8.6213388442993164 : f64, stddev = 1.1882407665252686 : f64} : (f64) -> !hi_spn.probability + %1343 = "hi_spn.gaussian"(%arg20) {mean = -8.6017799377441406 : f64, stddev = 1.1764601469039917 : f64} : (f64) -> !hi_spn.probability + %1344 = "hi_spn.gaussian"(%arg21) {mean = -8.8107213973999023 : f64, stddev = 0.91693395376205444 : f64} : (f64) -> !hi_spn.probability + %1345 = "hi_spn.gaussian"(%arg22) {mean = -9.01708984375 : f64, stddev = 0.94207257032394409 : f64} : (f64) -> !hi_spn.probability + %1346 = "hi_spn.gaussian"(%arg23) {mean = -9.3141088485717773 : f64, stddev = 0.97628599405288696 : f64} : (f64) -> !hi_spn.probability + %1347 = "hi_spn.gaussian"(%arg24) {mean = -9.2799386978149414 : f64, stddev = 1.0461905002593994 : f64} : (f64) -> !hi_spn.probability + %1348 = "hi_spn.gaussian"(%arg25) {mean = -9.3268461227416992 : f64, stddev = 1.1838418245315552 : f64} : (f64) -> !hi_spn.probability + %1349 = "hi_spn.product"(%1323, %1324, %1325, %1326, %1327, %1328, %1329, %1330, %1331, %1332, %1333, %1334, %1335, %1336, %1337, %1338, %1339, %1340, %1341, %1342, %1343, %1344, %1345, %1346, %1347, %1348) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1350 = "hi_spn.gaussian"(%arg0) {mean = -10.315433502197266 : f64, stddev = 1.3179805278778076 : f64} : (f64) -> !hi_spn.probability + %1351 = "hi_spn.gaussian"(%arg1) {mean = -8.1604814529418945 : f64, stddev = 2.2724642753601074 : f64} : (f64) -> !hi_spn.probability + %1352 = "hi_spn.gaussian"(%arg2) {mean = -7.1900372505187988 : f64, stddev = 2.9398491382598877 : f64} : (f64) -> !hi_spn.probability + %1353 = "hi_spn.gaussian"(%arg3) {mean = -7.713707447052002 : f64, stddev = 1.8990739583969116 : f64} : (f64) -> !hi_spn.probability + %1354 = "hi_spn.gaussian"(%arg4) {mean = -7.651547908782959 : f64, stddev = 1.8478991985321045 : f64} : (f64) -> !hi_spn.probability + %1355 = "hi_spn.gaussian"(%arg5) {mean = -7.7119650840759277 : f64, stddev = 1.3377139568328857 : f64} : (f64) -> !hi_spn.probability + %1356 = "hi_spn.gaussian"(%arg6) {mean = -8.2047338485717773 : f64, stddev = 1.2213213443756104 : f64} : (f64) -> !hi_spn.probability + %1357 = "hi_spn.gaussian"(%arg7) {mean = -8.2517843246459961 : f64, stddev = 0.93810057640075684 : f64} : (f64) -> !hi_spn.probability + %1358 = "hi_spn.gaussian"(%arg8) {mean = -8.4303188323974609 : f64, stddev = 1.0303676128387451 : f64} : (f64) -> !hi_spn.probability + %1359 = "hi_spn.gaussian"(%arg9) {mean = -8.8180484771728515 : f64, stddev = 0.87196367979049683 : f64} : (f64) -> !hi_spn.probability + %1360 = "hi_spn.gaussian"(%arg10) {mean = -8.9827346801757813 : f64, stddev = 0.8947300910949707 : f64} : (f64) -> !hi_spn.probability + %1361 = "hi_spn.gaussian"(%arg11) {mean = -9.2726545333862305 : f64, stddev = 1.0328786373138428 : f64} : (f64) -> !hi_spn.probability + %1362 = "hi_spn.gaussian"(%arg12) {mean = -9.3345098495483398 : f64, stddev = 0.78920960426330566 : f64} : (f64) -> !hi_spn.probability + %1363 = "hi_spn.gaussian"(%arg13) {mean = -9.2127161026000977 : f64, stddev = 0.70764654874801636 : f64} : (f64) -> !hi_spn.probability + %1364 = "hi_spn.gaussian"(%arg14) {mean = -9.2117757797241211 : f64, stddev = 0.98102712631225586 : f64} : (f64) -> !hi_spn.probability + %1365 = "hi_spn.gaussian"(%arg15) {mean = -9.4184341430664063 : f64, stddev = 0.81852328777313232 : f64} : (f64) -> !hi_spn.probability + %1366 = "hi_spn.gaussian"(%arg16) {mean = -9.3840084075927734 : f64, stddev = 0.7593197226524353 : f64} : (f64) -> !hi_spn.probability + %1367 = "hi_spn.gaussian"(%arg17) {mean = -8.6995563507080078 : f64, stddev = 0.84033447504043579 : f64} : (f64) -> !hi_spn.probability + %1368 = "hi_spn.gaussian"(%arg18) {mean = -8.7265081405639648 : f64, stddev = 0.74287855625152588 : f64} : (f64) -> !hi_spn.probability + %1369 = "hi_spn.gaussian"(%arg19) {mean = -8.5667104721069336 : f64, stddev = 0.68698239326477051 : f64} : (f64) -> !hi_spn.probability + %1370 = "hi_spn.gaussian"(%arg20) {mean = -7.6596660614013671 : f64, stddev = 0.81181913614273071 : f64} : (f64) -> !hi_spn.probability + %1371 = "hi_spn.gaussian"(%arg21) {mean = -6.7493586540222168 : f64, stddev = 0.72671127319335938 : f64} : (f64) -> !hi_spn.probability + %1372 = "hi_spn.gaussian"(%arg22) {mean = -6.1790566444396973 : f64, stddev = 0.82474768161773681 : f64} : (f64) -> !hi_spn.probability + %1373 = "hi_spn.gaussian"(%arg23) {mean = -5.676084041595459 : f64, stddev = 1.0325264930725098 : f64} : (f64) -> !hi_spn.probability + %1374 = "hi_spn.gaussian"(%arg24) {mean = -5.5357837677001953 : f64, stddev = 1.1748358011245728 : f64} : (f64) -> !hi_spn.probability + %1375 = "hi_spn.gaussian"(%arg25) {mean = -5.2995257377624512 : f64, stddev = 1.2293106317520142 : f64} : (f64) -> !hi_spn.probability + %1376 = "hi_spn.product"(%1350, %1351, %1352, %1353, %1354, %1355, %1356, %1357, %1358, %1359, %1360, %1361, %1362, %1363, %1364, %1365, %1366, %1367, %1368, %1369, %1370, %1371, %1372, %1373, %1374, %1375) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + %1377 = "hi_spn.sum"(%26, %53, %80, %107, %134, %161, %188, %215, %242, %269, %296, %323, %350, %377, %404, %431, %458, %485, %512, %539, %566, %593, %620, %647, %674, %701, %728, %755, %782, %809, %836, %863, %890, %917, %944, %971, %998, %1025, %1052, %1079, %1106, %1133, %1160, %1187, %1214, %1241, %1268, %1295, %1322, %1349, %1376) {weights = [0.0019672131147541183, 0.023606557377049187, 0.0013114754098360656, 0.032131147540983604, 0.0039344262295081967, 0.03081967213114754, 0.0072131147540983606, 0.023606557377049187, 0.014426229508196721, 0.026885245901639349, 0.021639344262295079, 0.014426229508196721, 0.026885245901639244, 0.019016393442622952, 0.015737704918032783, 0.026885245901639345, 0.018360655737704918, 0.017049180327868847, 0.019672131147540978, 0.017049180327868851, 0.02885245901639345, 0.0078688524590163951, 0.017049180327868851, 0.019672131147540985, 0.02229508196721312, 0.032786885245901641, 0.023606557377049184, 0.018360655737704911, 0.012459016393442624, 0.03016393442622951, 0.013770491803278693, 0.032131147540983604, 0.026885245901639356, 0.020327868852459016, 0.018360655737704918, 0.019016393442622952, 0.013114754098360654, 0.032131147540983618, 0.020983606557377053, 0.026229508196721318, 0.0085245901639344236, 0.026229508196721315, 0.020327868852459019, 0.016393442622950821, 0.001967213114754101, 0.025573770491803281, 0.012459016393442624, 0.026885245901639338, 0.01573770491803279, 0.02950819672131148, 0.017704918032786888]} : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability + "hi_spn.root"(%1377) : (!hi_spn.probability) -> () + }) {numFeatures = 26 : ui32} : () -> () + }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "FADG0.p", maxError = 2.000000e-02 : f64, numFeatures = 26 : ui32} : () -> () +} From 158485d1989409f6ce4905a4e7d30a1089eec7a6 Mon Sep 17 00:00:00 2001 From: CSV Date: Mon, 5 Apr 2021 20:33:00 +0200 Subject: [PATCH 061/385] Fix: flawed consecutiveness detection. --- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index f8b36387..94dba880 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -29,7 +29,7 @@ bool mlir::spn::low::slp::areConsecutiveLoads(Operation* op1, Operation* op2) { return false; } - return loadOp1.sampleIndex() == loadOp2.sampleIndex(); + return loadOp1.sampleIndex() + 1 == loadOp2.sampleIndex(); } bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loads) { From 478cdf0bc0cc03a6ed60e30fe199fd6c4ef497a4 Mon Sep 17 00:00:00 2001 From: CSV Date: Mon, 5 Apr 2021 20:33:51 +0200 Subject: [PATCH 062/385] Fix: flawed LoadOp detection. --- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp index 98db6588..980c0fde 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp @@ -4,6 +4,7 @@ // #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "LoSPN/LoSPNOps.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPMode.h" using namespace mlir; @@ -12,7 +13,7 @@ using namespace mlir::spn::low::slp; Mode mlir::spn::low::slp::modeFromOperation(const Operation* operation) { if (dyn_cast(operation)) { return CONST; - } else if (dyn_cast(operation)) { + } else if (dyn_cast(operation)) { return LOAD; } return OPCODE; From f3711ed9de8e9e0dfdcbd5cfe1f21b68f59e605a Mon Sep 17 00:00:00 2001 From: CSV Date: Mon, 5 Apr 2021 20:34:36 +0200 Subject: [PATCH 063/385] Updated commutativity detection to LoSPN changes. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 53cbd31a..f337fb40 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -35,11 +35,11 @@ namespace { } bool commutative(std::vector const& operations) { - return std::all_of(std::begin(operations), std::end(operations), [&](Operation* op) { - if (op->hasTrait()) { - return true; + return std::any_of(std::begin(operations), std::end(operations), [&](Operation* op) { + if (!op->hasTrait()) { + return false; } - return dyn_cast(op) || dyn_cast(op); + return true; }); } From 25f3a8b745234aa636a6da49207065c0305d86f7 Mon Sep 17 00:00:00 2001 From: CSV Date: Mon, 5 Apr 2021 20:34:44 +0200 Subject: [PATCH 064/385] Better graph printing. --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 16598d01..f70babbc 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -4,6 +4,8 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" +#include "LoSPN/LoSPNOps.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "llvm/Support/Debug.h" #include @@ -114,6 +116,17 @@ void SLPNode::dump() const { } } +// Helper functions in an anonymous namespace. +namespace { + void dumpBlockArgOrDefiningAddress(Value const& val) { + if (auto* definingOp = val.getDefiningOp()) { + llvm::dbgs() << definingOp; + } else { + llvm::dbgs() << "block arg #" << val.cast().getArgNumber(); + } + } +} + void SLPNode::dumpGraph() const { llvm::dbgs() << "digraph debug_graph {\n"; @@ -134,7 +147,23 @@ void SLPNode::dumpGraph() const { for (size_t lane = 0; lane < node->numLanes(); ++lane) { auto* operation = node->getOperation(lane, i); llvm::dbgs() << "\t\t\t"; - llvm::dbgs() << "" << operation->getName() << " (" << operation << ")"; + llvm::dbgs() << "" << operation->getName() << ""; + // --- Additional operation information --- + llvm::dbgs() << "
"; + llvm::dbgs() << "(" << operation << ")"; + if (auto constOp = dyn_cast(operation)) { + llvm::dbgs() << "
value: " << constOp.getValue(); + } else if (auto lowConstOp = dyn_cast(operation)) { + llvm::dbgs() << "
value: " << lowConstOp.value().convertToDouble(); + } else if (auto readOp = dyn_cast(operation)) { + llvm::dbgs() << "
mem: "; + dumpBlockArgOrDefiningAddress(readOp.batchMem()); + llvm::dbgs() << "
batch: "; + dumpBlockArgOrDefiningAddress(readOp.batchIndex()); + llvm::dbgs() << "
sample: " << readOp.sampleIndex(); + } + llvm::dbgs() << "
"; + // --- ================================ --- llvm::dbgs() << ""; if (lane < node->numLanes() - 1) { llvm::dbgs() << ""; From b40a980562b89323f2b86d08d6b56188dff9074c Mon Sep 17 00:00:00 2001 From: CSV Date: Thu, 8 Apr 2021 16:17:49 +0200 Subject: [PATCH 065/385] SLPGraph > CFG progress. --- .../SLP/SLPFunctionTransformer.h | 55 ++++ .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 3 +- .../Vectorization/SLP/SLPVectorizationPass.h | 16 +- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 + .../SLP/SLPFunctionTransformer.cpp | 240 ++++++++++++++++++ .../Vectorization/SLP/SLPGraphBuilder.cpp | 30 ++- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 26 ++ .../SLP/SLPVectorizationPass.cpp | 160 +----------- mlir/tools/spnc-opt/spnc-opt.cpp | 4 - 9 files changed, 349 insertions(+), 186 deletions(-) create mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h create mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h new file mode 100644 index 00000000..def6a5e4 --- /dev/null +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h @@ -0,0 +1,55 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPFUNCTIONTRANSFORMER_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPFUNCTIONTRANSFORMER_H + +#include "mlir/IR/Operation.h" +#include "mlir/IR/Builders.h" +#include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" +#include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" +#include "SLPNode.h" +#include +#include +#include + +namespace mlir { + namespace spn { + namespace low { + namespace slp { + + class SLPFunctionTransformer { + + public: + + SLPFunctionTransformer(std::unique_ptr&& graph, MLIRContext* context); + + void transform(); + + private: + + Value transform(SLPNode* node, size_t vectorIndex); + Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp); + + std::unique_ptr root; + OpBuilder builder; + LoSPNVectorizationTypeConverter typeConverter; + + /// Stores where operations can find their operands in case their defining operations + /// were deleted during vectorization. + llvm::DenseMap>> operandExtractions; + llvm::DenseMap, Value> memRefLoads; + + llvm::DenseMap vectorsDone; + llvm::DenseMap nodeInputsDone; + std::set vectorizedOps; + + }; + } + } + } +} + +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPFUNCTIONTRANSFORMER_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index d29f8e81..992aa4b8 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -15,7 +15,8 @@ namespace mlir { bool areConsecutiveLoads(Operation* load1, Operation* load2); bool areConsecutiveLoads(std::vector const& loads); - + bool canBeGathered(std::vector const& loads); + bool areBroadcastable(std::vector const& ops); } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 4376b071..681e4487 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -6,6 +6,7 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H +#include #include "mlir/IR/Operation.h" #include "mlir/Pass/Pass.h" #include "SLPGraphBuilder.h" @@ -15,10 +16,6 @@ namespace mlir { namespace low { namespace slp { - namespace { - typedef std::pair Extraction; - } - struct SLPVectorizationPass : public PassWrapper> { public: @@ -28,17 +25,6 @@ namespace mlir { private: - void transform(SLPNode* root); - Value transform(SLPNode* node, - size_t vectorIndex, - std::map& vectorsDone, - std::map& nodeInputsDone); - Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp); - - /// Stores where operations can find their operands after vectorization in case their defining operations - /// were deleted during vectorization. - std::map> extractions; - }; } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index c2dd9829..48648422 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -11,6 +11,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPGraphBuilder.cpp Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPass.cpp + Vectorization/SLP/SLPFunctionTransformer.cpp LoSPNtoCPUConversionPasses.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp new file mode 100644 index 00000000..86e865a4 --- /dev/null +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp @@ -0,0 +1,240 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPN/LoSPNOps.h" +#include "mlir/Dialect/Vector/VectorOps.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::low; +using namespace mlir::spn::low::slp; + +SLPFunctionTransformer::SLPFunctionTransformer(std::unique_ptr&& graph, MLIRContext* context) : root{ + std::move(graph)}, builder{context}, typeConverter{static_cast(root->numLanes())} { + +} + + +// Anonymous namespace for helper functions. +namespace { + + mlir::Value extractMemRefOperand(mlir::Operation* op, mlir::OpBuilder& builder) { + if (auto batchRead = llvm::dyn_cast(op)) { + builder.setInsertionPoint(op); + auto const& memRef = batchRead.batchMem(); + auto const& batchOffset = batchRead.batchIndex(); + auto const& sampleOffset = + builder.create(op->getLoc(), builder.getIndexAttr(batchRead.sampleIndex())); + mlir::ValueRange indices{batchOffset, sampleOffset->getResult(0)}; + return builder.create(op->getLoc(), memRef, indices); + } + assert(false); + } + + void eraseFromFunction(SLPNode const& root) { + for (size_t lane = 0; lane < root.numLanes(); ++lane) { + for (size_t i = 0; i < root.numVectors(); ++i) { + root.getOperation(lane, i)->remove(); + } + } + for (auto const& operand : root.getOperands()) { + eraseFromFunction(*operand); + } + } +} + +void SLPFunctionTransformer::transform() { + transform(root.get(), 0); + eraseFromFunction(*root); + // TODO: create remaining use extractions +} + +Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { + node->dump(); + llvm::dbgs() << "\n"; + if (std::uintptr_t(node->getOperation(0, 0)) == 0x562d7a63bad8 || dyn_cast(node->getOperation(0, 0))) { + llvm::dbgs() << "\n"; + } + + vectorsDone[node]++; + + auto vectorType = typeConverter.convertType(node->getResultType()); + + auto const& vectorizableOps = node->getVector(vectorIndex); + vectorizedOps.insert(vectorizableOps.begin(), vectorizableOps.end()); + auto const& firstOp = vectorizableOps.front(); + auto const& loc = firstOp->getLoc(); + + if (areBroadcastable(vectorizableOps)) { + builder.setInsertionPoint(firstOp); + auto value = firstOp->getResult(0); + auto vectorOp = builder.create(loc, vectorType, value); + return applyCreation(node, vectorIndex, vectorOp); + } + + if (areConsecutiveLoads(vectorizableOps)) { + builder.setInsertionPoint(firstOp); + auto batchRead = static_cast(firstOp); + auto const& base = batchRead.batchMem(); + auto const& batchIndex = batchRead.batchIndex(); + auto const& offset = builder.create(loc, builder.getIndexAttr(batchRead.sampleIndex())).getResult(); + auto indices = ValueRange{batchIndex, offset}; + auto vectorOp = builder.create(loc, vectorType, base, indices); + return applyCreation(node, vectorIndex, vectorOp); + } + + if (canBeGathered(vectorizableOps)) { + builder.setInsertionPoint(firstOp); + std::vector elements; + for (auto const& op : vectorizableOps) { + auto batchRead = static_cast(op); + auto const& base = batchRead.batchMem(); + auto const& batchIndex = batchRead.batchIndex(); + unsigned sampleIndex = batchRead.sampleIndex(); + auto const& memRefTuple = std::make_tuple(base, batchIndex, sampleIndex); + if (memRefLoads.count(memRefTuple)) { + elements.emplace_back(memRefLoads[memRefTuple]); + } else { + auto const& offset = builder.create(loc, builder.getIndexAttr(sampleIndex)).getResult(); + auto indices = ValueRange{batchIndex, offset}; + Value element = builder.create(loc, base, indices); + memRefLoads[memRefTuple] = element; + elements.emplace_back(element); + } + } + Operation* vectorOp = builder.create(loc, vectorType, elements[0]); + for (size_t i = 1; i < vectorizableOps.size(); ++i) { + vectorOp = builder.create(loc, elements[i], vectorOp->getResult(0), i); + } + vectorOp->getBlock()->dump(); + return applyCreation(node, vectorIndex, vectorOp); + } + + if (node->isUniform() && firstOp->getNumOperands() > 0) { + + llvm::SmallVector operands; + + for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { + + if (node->numOperands() == 0) { + size_t nextIndex = vectorsDone[node]; + if (nextIndex < node->numVectors()) { + operands.emplace_back(transform(node, nextIndex)); + } else { + auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); + nodeInput.dump(); + if (nodeInput.getType().isa()) { + nodeInput = extractMemRefOperand(vectorizableOps[0], builder); + nodeInput.dump(); + } + builder.setInsertionPointAfterValue(nodeInput); + Operation* vectorOp = builder.create(loc, vectorType, nodeInput); + for (size_t lane = 1; lane < node->numLanes(); ++lane) { + nodeInput = node->getNodeInput(nodeInputsDone[node]++); + nodeInput.dump(); + if (nodeInput.getType().isa()) { + nodeInput = extractMemRefOperand(vectorizableOps[lane], builder); + nodeInput.dump(); + } + builder.setInsertionPointAfterValue(nodeInput); + vectorOp = builder.create(vectorOp->getLoc(), + nodeInput, + vectorOp->getResult(0), + lane); + } + operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); + } + } else { + + size_t initialOperandIndex = vectorIndex % node->getOperands().size(); + + size_t operandNodeIndex = initialOperandIndex; + SLPNode* operandNode = (i == 0) ? node : node->getOperand(operandNodeIndex); + bool useNodeInputs = false; + + size_t nextVectorIndex = vectorsDone[operandNode]; + while (nextVectorIndex >= operandNode->numVectors()) { + operandNode = node->getOperand(operandNodeIndex % node->getOperands().size()); + nextVectorIndex = vectorsDone[operandNode]; + // Check if we have looped through all operands already. + if (operandNodeIndex++ == initialOperandIndex + node->numOperands()) { + useNodeInputs = true; + break; + } + } + + if (useNodeInputs) { + auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); + nodeInput.dump(); + if (nodeInput.getType().isa()) { + nodeInput = extractMemRefOperand(vectorizableOps[0], builder); + nodeInput.dump(); + } + builder.setInsertionPointAfterValue(nodeInput); + Operation* vectorOp = builder.create(loc, vectorType, nodeInput); + for (size_t lane = 1; lane < node->numLanes(); ++lane) { + nodeInput = node->getNodeInput(nodeInputsDone[node]++); + if (nodeInput.getType().isa()) { + nodeInput = extractMemRefOperand(vectorizableOps[0], builder); + nodeInput.dump(); + } + builder.setInsertionPointAfterValue(nodeInput); + vectorOp = builder.create(vectorOp->getLoc(), + nodeInput, + vectorOp->getResult(0), + lane); + } + operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); + } else { + operands.emplace_back(transform(operandNode, nextVectorIndex)); + } + + } + } + + auto vectorOp = Operation::create(loc, + firstOp->getName(), + vectorType, + operands, + firstOp->getAttrs(), + firstOp->getSuccessors(), + firstOp->getNumRegions()); + builder.setInsertionPoint(firstOp); + builder.insert(vectorOp); + return applyCreation(node, vectorIndex, vectorOp); + } + + Operation* vectorOp = builder.create(loc, vectorType, firstOp->getResult(0)); + for (size_t lane = 1; lane < node->numLanes(); ++lane) { + vectorOp = builder.create(vectorOp->getLoc(), + vectorizableOps[lane]->getResult(0), + vectorOp->getResult(0), + lane); + } + + return applyCreation(node, vectorIndex, vectorOp); +} + +Value SLPFunctionTransformer::applyCreation(SLPNode* node, + size_t vectorIndex, + Operation* createdVectorOp) { + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto* operation = node->getOperation(lane, vectorIndex); + for (auto* use : operation->getUsers()) { + for (size_t i = 0; i < use->getNumOperands(); ++i) { + if (use->getOperand(i) == operation->getResult(0) && !vectorizedOps.count(use)) { + operandExtractions[use][i] = std::make_pair(createdVectorOp, lane); + break; + } + } + } + operandExtractions.erase(operation); + } + return createdVectorOp->getResult(0); +} + diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index f337fb40..05c14d19 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -27,7 +27,17 @@ namespace { bool vectorizable(std::vector const& operations) { for (size_t i = 0; i < operations.size(); ++i) { auto* op = operations[i]; - if (!op->hasTrait() || (op->getName() != operations.front()->getName())) { + if (!op->hasTrait()) { + return false; + } + if (op->getName() != operations.front()->getName()) { + return false; + } + if (op->getNumResults() != 1) { + return false; + } + // MLIR disallows index types in vectors. + if (op->getResult(0).getType().isa()) { return false; } } @@ -125,23 +135,23 @@ void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPN else { for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { std::vector operands; - bool containsBlockArgument = false; + std::vector operandOperations; + bool usesBlockArguments = false; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { auto operand = currentNode->getOperation(lane, 0)->getOperand(i); operands.emplace_back(operand); - containsBlockArgument |= operand.isa(); + if (operand.isa()) { + usesBlockArguments = true; + } else { + operandOperations.emplace_back(operand.getDefiningOp()); + } } - // Only consider operands that don't contain block arguments for further graph building. - if (containsBlockArgument) { + + if (usesBlockArguments || !vectorizable(operandOperations)) { for (auto const& operand : operands) { currentNode->addNodeInput(operand); } } else { - std::vector operandOperations; - operandOperations.reserve(operands.size()); - for (auto const& operand : operands) { - operandOperations.emplace_back(operand.getDefiningOp()); - } buildGraph(operandOperations, currentNode->addOperand(operandOperations)); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 94dba880..c4a17c5c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -43,3 +43,29 @@ bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loa return true; } +bool mlir::spn::low::slp::canBeGathered(std::vector const& loads) { + auto firstLoad = dyn_cast(loads.front()); + if (!firstLoad) { + return false; + } + for (size_t i = 1; i < loads.size(); ++i) { + auto load = dyn_cast(loads[i]); + if (!load) { + return false; + } + if (firstLoad.batchMem() != load.batchMem()) { + return false; + } + if (firstLoad.batchIndex() != load.batchIndex()) { + return false; + } + } + return true; +} + +bool mlir::spn::low::slp::areBroadcastable(std::vector const& ops) { + return std::all_of(std::begin(ops), std::end(ops), [&](mlir::Operation* op) { + return op == ops.front(); + }); +} + diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 3cbf2af0..509b0e92 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -7,6 +7,7 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" @@ -19,12 +20,6 @@ using namespace mlir::spn::low::slp; // Anonymous namespace for helper functions. namespace { - bool isBroadcastable(std::vector const& vector) { - return std::all_of(std::begin(vector), std::end(vector), [&](mlir::Operation* op) { - return op == vector.front(); - }); - } - /// For debugging purposes. void printOperation(mlir::Operation* op) { llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; @@ -104,159 +99,12 @@ void SLPVectorizationPass::runOnOperation() { auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), SearchMode::UseBeforeDef); assert(!seeds.empty() && "couldn't find a seed!"); - printSeedTree(seeds.front()); + //printSeedTree(seeds.front()); SLPGraphBuilder builder{3}; auto graph = builder.build(seeds.front()); - transform(graph.get()); - -} - -void SLPVectorizationPass::transform(SLPNode* root) { - root->dumpGraph(); - std::map vectorsDone; - std::map nodeInputsDone; - auto rootOperation = transform(root, 0, vectorsDone, nodeInputsDone); + SLPFunctionTransformer transformer(std::move(graph), &getContext()); + transformer.transform(); getOperation()->dump(); - llvm::dbgs() << extractions.size() << "\n"; - assert(false); - // Update users of vector operations that aren't contained in the graph. -} - -mlir::Value SLPVectorizationPass::transform(SLPNode* node, - size_t vectorIndex, - std::map& vectorsDone, - std::map& nodeInputsDone) { - - node->dump(); - llvm::dbgs() << "\n"; - if (std::uintptr_t(node->getOperation(0, 0)) == 0x716008) { - llvm::dbgs() << "\n"; - } - - vectorsDone[node]++; - - LoSPNVectorizationTypeConverter typeConverter{static_cast(node->numLanes())}; - auto vectorType = typeConverter.convertType(node->getResultType()); - auto builder = OpBuilder{&getContext()}; - - auto const& vectorizableOps = node->getVector(vectorIndex); - auto const& firstOp = vectorizableOps.front(); - auto const& loc = firstOp->getLoc(); - builder.setInsertionPoint(firstOp); - - if (isBroadcastable(vectorizableOps)) { - auto value = firstOp->getResult(0); - auto vectorOp = builder.create(loc, vectorType, value); - return applyCreation(node, vectorIndex, vectorOp); - } - - if (areConsecutiveLoads(vectorizableOps)) { - auto base = firstOp->getResult(0); - auto zero = builder.create(loc, builder.getIndexAttr(0)); - auto indices = ValueRange{zero.getResult()}; - auto vectorOp = builder.create(loc, vectorType, base, indices); - return applyCreation(node, vectorIndex, vectorOp); - } - - if (node->isUniform() && firstOp->getNumOperands() > 0) { - - llvm::SmallVector operands; - - for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { - - if (node->numOperands() == 0) { - size_t nextIndex = vectorsDone[node]; - if (nextIndex < node->numVectors()) { - operands.emplace_back(transform(node, nextIndex, vectorsDone, nodeInputsDone)); - } else { - auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); - nodeInput.dump(); - Operation* vectorOp = builder.create(loc, vectorType, nodeInput); - for (size_t lane = 1; lane < node->numLanes(); ++lane) { - nodeInput = node->getNodeInput(nodeInputsDone[node]++); - vectorOp = builder.create(vectorOp->getLoc(), - nodeInput, - vectorOp->getResult(0), - lane); - } - operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); - } - } else { - - size_t initialOperandIndex = vectorIndex % node->getOperands().size(); - - size_t operandNodeIndex = initialOperandIndex; - SLPNode* operandNode = (i == 0) ? node : node->getOperand(operandNodeIndex); - bool useNodeInputs = false; - - size_t nextVectorIndex = vectorsDone[operandNode]; - while (nextVectorIndex >= operandNode->numVectors()) { - operandNode = node->getOperand(operandNodeIndex % node->getOperands().size()); - nextVectorIndex = vectorsDone[operandNode]; - // Check if we have looped through all operands already. - if (operandNodeIndex++ == initialOperandIndex + node->numOperands()) { - useNodeInputs = true; - break; - } - } - - if (useNodeInputs) { - auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); - nodeInput.dump(); - Operation* vectorOp = builder.create(loc, vectorType, nodeInput); - for (size_t lane = 1; lane < node->numLanes(); ++lane) { - nodeInput = node->getNodeInput(nodeInputsDone[node]++); - vectorOp = builder.create(vectorOp->getLoc(), - nodeInput, - vectorOp->getResult(0), - lane); - } - operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); - } else { - operands.emplace_back(transform(operandNode, nextVectorIndex, vectorsDone, nodeInputsDone)); - } - - } - } - - auto vectorOp = Operation::create(loc, - firstOp->getName(), - vectorType, - operands, - firstOp->getAttrs(), - firstOp->getSuccessors(), - firstOp->getNumRegions()); - builder.insert(vectorOp); - return applyCreation(node, vectorIndex, vectorOp); - } - - Operation* vectorOp = builder.create(loc, vectorType, firstOp->getResult(0)); - for (size_t lane = 1; lane < node->numLanes(); ++lane) { - vectorOp = builder.create(vectorOp->getLoc(), - vectorizableOps[lane]->getResult(0), - vectorOp->getResult(0), - lane); - } - - return applyCreation(node, vectorIndex, vectorOp); -} - -mlir::Value SLPVectorizationPass::applyCreation(SLPNode* node, - size_t vectorIndex, - Operation* createdVectorOp) { - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto* operation = node->getOperation(lane, vectorIndex); - for (auto* use : operation->getUsers()) { - for (size_t i = 0; i < use->getNumOperands(); ++i) { - if (use->getOperand(i) == operation->getResult(0)) { - extractions[use][i] = std::make_pair(createdVectorOp, i); - break; - } - } - } - extractions.erase(operation); - } - return createdVectorOp->getResult(0); } std::unique_ptr mlir::spn::createSLPVectorizationPass() { diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 54777e09..fb2edec7 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -104,10 +104,6 @@ int main(int argc, char** argv) { return mlir::spn::createSLPVectorizationPass(); }); - mlir::registerPass("spn-to-dot", "Prints the SPN to stderr", []() -> std::unique_ptr { - return mlir::createPrintOpGraphPass(); - }); - llvm::InitLLVM y(argc, argv); // Register any pass manager command line options. From f13c0d8ee2092fe84218e089c6b5f463c95b8434 Mon Sep 17 00:00:00 2001 From: CSV Date: Thu, 8 Apr 2021 22:48:59 +0200 Subject: [PATCH 066/385] Fix: insertion point madness. --- .../SLP/SLPFunctionTransformer.h | 20 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 1 + .../SLP/SLPFunctionTransformer.cpp | 211 +++++++++--------- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 2 +- .../SLP/SLPVectorizationPass.cpp | 43 ++-- 5 files changed, 134 insertions(+), 143 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h index def6a5e4..78481892 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h @@ -11,9 +11,7 @@ #include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" #include "SLPNode.h" -#include -#include -#include +#include namespace mlir { namespace spn { @@ -24,16 +22,24 @@ namespace mlir { public: - SLPFunctionTransformer(std::unique_ptr&& graph, MLIRContext* context); + SLPFunctionTransformer(std::unique_ptr&& graph, FuncOp function); void transform(); private: Value transform(SLPNode* node, size_t vectorIndex); - Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp); + Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp, bool keepFirst = false); + + Value extractMemRefOperand(Operation* op, Operation* position = nullptr); + Operation* broadcastFirstInsertRest(Operation* beforeOp, + Type const& vectorType, + SmallVector& elements); + Value getOrCreateConstant(unsigned index, bool asIndex = true); std::unique_ptr root; + FuncOp function; + OpBuilder builder; LoSPNVectorizationTypeConverter typeConverter; @@ -41,10 +47,12 @@ namespace mlir { /// were deleted during vectorization. llvm::DenseMap>> operandExtractions; llvm::DenseMap, Value> memRefLoads; + llvm::DenseMap createdIndexConstants; + llvm::DenseMap createdUnsignedConstants; llvm::DenseMap vectorsDone; llvm::DenseMap nodeInputsDone; - std::set vectorizedOps; + std::unordered_set vectorizedOps; }; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index 992aa4b8..3088f744 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -17,6 +17,7 @@ namespace mlir { bool areConsecutiveLoads(std::vector const& loads); bool canBeGathered(std::vector const& loads); bool areBroadcastable(std::vector const& ops); + } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp index 86e865a4..b4d3473f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp @@ -14,52 +14,35 @@ using namespace mlir::spn; using namespace mlir::spn::low; using namespace mlir::spn::low::slp; -SLPFunctionTransformer::SLPFunctionTransformer(std::unique_ptr&& graph, MLIRContext* context) : root{ - std::move(graph)}, builder{context}, typeConverter{static_cast(root->numLanes())} { +SLPFunctionTransformer::SLPFunctionTransformer(std::unique_ptr&& graph, FuncOp function) : root{ + std::move(graph)}, function{function}, builder{function->getContext()}, typeConverter{ + static_cast(root->numLanes())} { } +void SLPFunctionTransformer::transform() { + + builder.setInsertionPoint(root->getOperation(0, 0)); + + transform(root.get(), 0); + + // Create extractions for operations that need values from the SLPGraph, but are located outside of it. + for (auto const& entry : operandExtractions) { + auto* op = entry.getFirst(); + for (auto const& extraction : entry.getSecond()) { -// Anonymous namespace for helper functions. -namespace { + auto const& vector = extraction.second.first->getResult(0); + auto const& position = getOrCreateConstant(extraction.second.second); - mlir::Value extractMemRefOperand(mlir::Operation* op, mlir::OpBuilder& builder) { - if (auto batchRead = llvm::dyn_cast(op)) { builder.setInsertionPoint(op); - auto const& memRef = batchRead.batchMem(); - auto const& batchOffset = batchRead.batchIndex(); - auto const& sampleOffset = - builder.create(op->getLoc(), builder.getIndexAttr(batchRead.sampleIndex())); - mlir::ValueRange indices{batchOffset, sampleOffset->getResult(0)}; - return builder.create(op->getLoc(), memRef, indices); - } - assert(false); - } + auto element = builder.create(op->getLoc(), vector, position); + op->setOperand(extraction.first, element); - void eraseFromFunction(SLPNode const& root) { - for (size_t lane = 0; lane < root.numLanes(); ++lane) { - for (size_t i = 0; i < root.numVectors(); ++i) { - root.getOperation(lane, i)->remove(); - } - } - for (auto const& operand : root.getOperands()) { - eraseFromFunction(*operand); } } } -void SLPFunctionTransformer::transform() { - transform(root.get(), 0); - eraseFromFunction(*root); - // TODO: create remaining use extractions -} - Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { - node->dump(); - llvm::dbgs() << "\n"; - if (std::uintptr_t(node->getOperation(0, 0)) == 0x562d7a63bad8 || dyn_cast(node->getOperation(0, 0))) { - llvm::dbgs() << "\n"; - } vectorsDone[node]++; @@ -71,48 +54,27 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { auto const& loc = firstOp->getLoc(); if (areBroadcastable(vectorizableOps)) { - builder.setInsertionPoint(firstOp); auto value = firstOp->getResult(0); - auto vectorOp = builder.create(loc, vectorType, value); - return applyCreation(node, vectorIndex, vectorOp); + return applyCreation(node, vectorIndex, builder.create(loc, vectorType, value), true); } if (areConsecutiveLoads(vectorizableOps)) { - builder.setInsertionPoint(firstOp); auto batchRead = static_cast(firstOp); auto const& base = batchRead.batchMem(); auto const& batchIndex = batchRead.batchIndex(); - auto const& offset = builder.create(loc, builder.getIndexAttr(batchRead.sampleIndex())).getResult(); + auto const& offset = getOrCreateConstant(batchRead.sampleIndex()); + auto indices = ValueRange{batchIndex, offset}; - auto vectorOp = builder.create(loc, vectorType, base, indices); - return applyCreation(node, vectorIndex, vectorOp); + + return applyCreation(node, vectorIndex, builder.create(loc, vectorType, base, indices)); } if (canBeGathered(vectorizableOps)) { - builder.setInsertionPoint(firstOp); - std::vector elements; + SmallVector elements; for (auto const& op : vectorizableOps) { - auto batchRead = static_cast(op); - auto const& base = batchRead.batchMem(); - auto const& batchIndex = batchRead.batchIndex(); - unsigned sampleIndex = batchRead.sampleIndex(); - auto const& memRefTuple = std::make_tuple(base, batchIndex, sampleIndex); - if (memRefLoads.count(memRefTuple)) { - elements.emplace_back(memRefLoads[memRefTuple]); - } else { - auto const& offset = builder.create(loc, builder.getIndexAttr(sampleIndex)).getResult(); - auto indices = ValueRange{batchIndex, offset}; - Value element = builder.create(loc, base, indices); - memRefLoads[memRefTuple] = element; - elements.emplace_back(element); - } - } - Operation* vectorOp = builder.create(loc, vectorType, elements[0]); - for (size_t i = 1; i < vectorizableOps.size(); ++i) { - vectorOp = builder.create(loc, elements[i], vectorOp->getResult(0), i); + elements.emplace_back(extractMemRefOperand(op)); } - vectorOp->getBlock()->dump(); - return applyCreation(node, vectorIndex, vectorOp); + return applyCreation(node, vectorIndex, broadcastFirstInsertRest(firstOp, vectorType, elements)); } if (node->isUniform() && firstOp->getNumOperands() > 0) { @@ -126,27 +88,15 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { if (nextIndex < node->numVectors()) { operands.emplace_back(transform(node, nextIndex)); } else { - auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); - nodeInput.dump(); - if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorizableOps[0], builder); - nodeInput.dump(); - } - builder.setInsertionPointAfterValue(nodeInput); - Operation* vectorOp = builder.create(loc, vectorType, nodeInput); - for (size_t lane = 1; lane < node->numLanes(); ++lane) { - nodeInput = node->getNodeInput(nodeInputsDone[node]++); - nodeInput.dump(); + SmallVector vectorElements; + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorizableOps[lane], builder); - nodeInput.dump(); + nodeInput = extractMemRefOperand(vectorizableOps[lane]); } - builder.setInsertionPointAfterValue(nodeInput); - vectorOp = builder.create(vectorOp->getLoc(), - nodeInput, - vectorOp->getResult(0), - lane); + vectorElements.emplace_back(nodeInput); } + auto* vectorOp = broadcastFirstInsertRest(firstOp, vectorType, vectorElements); operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); } } else { @@ -169,26 +119,15 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { } if (useNodeInputs) { - auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); - nodeInput.dump(); - if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorizableOps[0], builder); - nodeInput.dump(); - } - builder.setInsertionPointAfterValue(nodeInput); - Operation* vectorOp = builder.create(loc, vectorType, nodeInput); - for (size_t lane = 1; lane < node->numLanes(); ++lane) { - nodeInput = node->getNodeInput(nodeInputsDone[node]++); + SmallVector vectorElements; + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorizableOps[0], builder); - nodeInput.dump(); + nodeInput = extractMemRefOperand(vectorizableOps[lane]); } - builder.setInsertionPointAfterValue(nodeInput); - vectorOp = builder.create(vectorOp->getLoc(), - nodeInput, - vectorOp->getResult(0), - lane); + vectorElements.emplace_back(nodeInput); } + auto* vectorOp = broadcastFirstInsertRest(firstOp, vectorType, vectorElements); operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); } else { operands.emplace_back(transform(operandNode, nextVectorIndex)); @@ -204,28 +143,27 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { firstOp->getAttrs(), firstOp->getSuccessors(), firstOp->getNumRegions()); - builder.setInsertionPoint(firstOp); - builder.insert(vectorOp); - return applyCreation(node, vectorIndex, vectorOp); + return applyCreation(node, vectorIndex, builder.insert(vectorOp)); } - Operation* vectorOp = builder.create(loc, vectorType, firstOp->getResult(0)); - for (size_t lane = 1; lane < node->numLanes(); ++lane) { - vectorOp = builder.create(vectorOp->getLoc(), - vectorizableOps[lane]->getResult(0), - vectorOp->getResult(0), - lane); + llvm::SmallVector vectorElements; + for (auto op : vectorizableOps) { + vectorElements.emplace_back(op->getResult(0)); } - - return applyCreation(node, vectorIndex, vectorOp); + return applyCreation(node, vectorIndex, broadcastFirstInsertRest(firstOp, vectorType, vectorElements)); } Value SLPFunctionTransformer::applyCreation(SLPNode* node, size_t vectorIndex, - Operation* createdVectorOp) { + Operation* createdVectorOp, + bool keepFirst) { for (size_t lane = 0; lane < node->numLanes(); ++lane) { auto* operation = node->getOperation(lane, vectorIndex); for (auto* use : operation->getUsers()) { + // Happens when creating broadcast operations. + if (use == createdVectorOp) { + continue; + } for (size_t i = 0; i < use->getNumOperands(); ++i) { if (use->getOperand(i) == operation->getResult(0) && !vectorizedOps.count(use)) { operandExtractions[use][i] = std::make_pair(createdVectorOp, lane); @@ -234,7 +172,60 @@ Value SLPFunctionTransformer::applyCreation(SLPNode* node, } } operandExtractions.erase(operation); + if (lane == 0 && keepFirst) { + continue; + } + operation->remove(); } return createdVectorOp->getResult(0); } +Operation* SLPFunctionTransformer::broadcastFirstInsertRest(Operation* beforeOp, + Type const& vectorType, + SmallVector& elements) { + Operation* vectorOp = builder.create(beforeOp->getLoc(), vectorType, elements[0]); + for (size_t i = 1; i < elements.size(); ++i) { + auto const& position = getOrCreateConstant(i, false); + vectorOp = + builder.create(beforeOp->getLoc(), elements[i], vectorOp->getResult(0), position); + } + return vectorOp; +} + +Value SLPFunctionTransformer::getOrCreateConstant(unsigned index, bool asIndex) { + auto& createdConstants = asIndex ? createdIndexConstants : createdUnsignedConstants; + if (!createdConstants.count(index)) { + auto const& insertionPoint = builder.saveInsertionPoint(); + auto attribute = asIndex ? builder.getIndexAttr(index) : builder.getUI32IntegerAttr(index); + builder.setInsertionPointToStart(&function.body().front()); + createdConstants[index] = builder.create(builder.getUnknownLoc(), attribute); + builder.restoreInsertionPoint(insertionPoint); + } + return createdConstants[index]; +} + +Value SLPFunctionTransformer::extractMemRefOperand(Operation* op, Operation* position) { + Value base; + ValueRange indices; + if (auto batchRead = dyn_cast(op)) { + base = batchRead.batchMem(); + auto const& batchIndex = batchRead.batchIndex(); + auto const& sampleIndex = batchRead.sampleIndex(); + auto const& memRefTuple = std::make_tuple(base, batchIndex, sampleIndex); + + if (memRefLoads.count(memRefTuple)) { + return memRefLoads[memRefTuple]; + } + + indices = {batchIndex, getOrCreateConstant(sampleIndex)}; + + } else { + assert(false); + } + + auto const& insertionPoint = builder.saveInsertionPoint(); + builder.setInsertionPoint(op); + auto load = builder.create(op->getLoc(), base, indices); + builder.restoreInsertionPoint(insertionPoint); + return load; +} \ No newline at end of file diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index c4a17c5c..651c1e5d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -65,7 +65,7 @@ bool mlir::spn::low::slp::canBeGathered(std::vector const& loads) { bool mlir::spn::low::slp::areBroadcastable(std::vector const& ops) { return std::all_of(std::begin(ops), std::end(ops), [&](mlir::Operation* op) { - return op == ops.front(); + return OperationEquivalence::isEquivalentTo(op, ops.front()); }); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 509b0e92..1ee442fa 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -20,29 +20,6 @@ using namespace mlir::spn::low::slp; // Anonymous namespace for helper functions. namespace { - /// For debugging purposes. - void printOperation(mlir::Operation* op) { - llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; - if (auto constantOp = llvm::dyn_cast(op)) { - if (constantOp.value().getType().isIntOrIndex()) { - llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); - } else if (constantOp.value().getType().isIntOrFloat()) { - llvm::dbgs() << "\\nvalue: " - << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); - } - } else if (auto batchReadOp = llvm::dyn_cast(op)) { - llvm::dbgs() << "\\nbatch mem: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); - llvm::dbgs() << "\\nbatch index: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); - llvm::dbgs() << "\\nsample index: " << batchReadOp.sampleIndex(); - } - llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; - } - - /// For debugging purposes. - void printEdge(mlir::Operation* src, mlir::Operation* dst, size_t index) { - llvm::dbgs() << "node_" << src << " -> node_" << dst << "[label=\"" << std::to_string(index) << "\"];\n"; - } - /// For debugging purposes. void printSeedTree(std::vector const& operations) { std::vector nodes; @@ -74,10 +51,24 @@ namespace { llvm::dbgs() << "rankdir = BT;\n"; llvm::dbgs() << "node[shape=box];\n"; for (auto& op : nodes) { - printOperation(op); + llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; + if (auto constantOp = llvm::dyn_cast(op)) { + if (constantOp.value().getType().isIntOrIndex()) { + llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); + } else if (constantOp.value().getType().isIntOrFloat()) { + llvm::dbgs() << "\\nvalue: " + << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); + } + } else if (auto batchReadOp = llvm::dyn_cast(op)) { + llvm::dbgs() << "\\nbatch mem: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); + llvm::dbgs() << "\\nbatch index: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); + llvm::dbgs() << "\\nsample index: " << batchReadOp.sampleIndex(); + } + llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; } for (auto& edge : edges) { - printEdge(std::get<0>(edge), std::get<1>(edge), std::get<2>(edge)); + llvm::dbgs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" + << std::to_string(std::get<2>(edge)) << "\"];\n"; } llvm::dbgs() << "}\n"; } @@ -102,7 +93,7 @@ void SLPVectorizationPass::runOnOperation() { //printSeedTree(seeds.front()); SLPGraphBuilder builder{3}; auto graph = builder.build(seeds.front()); - SLPFunctionTransformer transformer(std::move(graph), &getContext()); + SLPFunctionTransformer transformer(std::move(graph), function); transformer.transform(); getOperation()->dump(); } From e19564f2f0f9dc0743821839031b6a587b6b1994 Mon Sep 17 00:00:00 2001 From: CSV Date: Mon, 12 Apr 2021 15:08:14 +0200 Subject: [PATCH 067/385] Fix: broken InsertElementOp due to wrong position value type. --- .../LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h index 78481892..8f5ea0d3 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h @@ -31,7 +31,7 @@ namespace mlir { Value transform(SLPNode* node, size_t vectorIndex); Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp, bool keepFirst = false); - Value extractMemRefOperand(Operation* op, Operation* position = nullptr); + Value extractMemRefOperand(Operation* op); Operation* broadcastFirstInsertRest(Operation* beforeOp, Type const& vectorType, SmallVector& elements); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp index b4d3473f..ff2942e5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp @@ -196,7 +196,7 @@ Value SLPFunctionTransformer::getOrCreateConstant(unsigned index, bool asIndex) auto& createdConstants = asIndex ? createdIndexConstants : createdUnsignedConstants; if (!createdConstants.count(index)) { auto const& insertionPoint = builder.saveInsertionPoint(); - auto attribute = asIndex ? builder.getIndexAttr(index) : builder.getUI32IntegerAttr(index); + auto const& attribute = asIndex ? builder.getIndexAttr(index) : builder.getIntegerAttr(builder.getI32Type(), index); builder.setInsertionPointToStart(&function.body().front()); createdConstants[index] = builder.create(builder.getUnknownLoc(), attribute); builder.restoreInsertionPoint(insertionPoint); @@ -204,7 +204,7 @@ Value SLPFunctionTransformer::getOrCreateConstant(unsigned index, bool asIndex) return createdConstants[index]; } -Value SLPFunctionTransformer::extractMemRefOperand(Operation* op, Operation* position) { +Value SLPFunctionTransformer::extractMemRefOperand(Operation* op) { Value base; ValueRange indices; if (auto batchRead = dyn_cast(op)) { From 1a54aeb0e5583e0ecdd8a7507531cac9e1363239 Mon Sep 17 00:00:00 2001 From: CSV Date: Tue, 13 Apr 2021 14:21:15 +0200 Subject: [PATCH 068/385] SLPGraph > CFG improvements. --- .../SLP/SLPFunctionTransformer.h | 5 +- .../SLP/SLPFunctionTransformer.cpp | 106 +++++++++--------- .../Vectorization/SLP/SLPGraphBuilder.cpp | 10 +- mlir/tools/spnc-opt/spnc-opt.cpp | 2 +- 4 files changed, 58 insertions(+), 65 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h index 8f5ea0d3..b71f6793 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h @@ -29,7 +29,7 @@ namespace mlir { private: Value transform(SLPNode* node, size_t vectorIndex); - Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp, bool keepFirst = false); + Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp); Value extractMemRefOperand(Operation* op); Operation* broadcastFirstInsertRest(Operation* beforeOp, @@ -43,9 +43,6 @@ namespace mlir { OpBuilder builder; LoSPNVectorizationTypeConverter typeConverter; - /// Stores where operations can find their operands in case their defining operations - /// were deleted during vectorization. - llvm::DenseMap>> operandExtractions; llvm::DenseMap, Value> memRefLoads; llvm::DenseMap createdIndexConstants; llvm::DenseMap createdUnsignedConstants; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp index ff2942e5..06996f84 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp @@ -21,25 +21,8 @@ SLPFunctionTransformer::SLPFunctionTransformer(std::unique_ptr&& graph, } void SLPFunctionTransformer::transform() { - builder.setInsertionPoint(root->getOperation(0, 0)); - transform(root.get(), 0); - - // Create extractions for operations that need values from the SLPGraph, but are located outside of it. - for (auto const& entry : operandExtractions) { - auto* op = entry.getFirst(); - for (auto const& extraction : entry.getSecond()) { - - auto const& vector = extraction.second.first->getResult(0); - auto const& position = getOrCreateConstant(extraction.second.second); - - builder.setInsertionPoint(op); - auto element = builder.create(op->getLoc(), vector, position); - op->setOperand(extraction.first, element); - - } - } } Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { @@ -48,17 +31,21 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { auto vectorType = typeConverter.convertType(node->getResultType()); - auto const& vectorizableOps = node->getVector(vectorIndex); - vectorizedOps.insert(vectorizableOps.begin(), vectorizableOps.end()); - auto const& firstOp = vectorizableOps.front(); + auto const& vectorOps = node->getVector(vectorIndex); + vectorizedOps.insert(vectorOps.begin(), vectorOps.end()); + auto const& firstOp = vectorOps.front(); auto const& loc = firstOp->getLoc(); - if (areBroadcastable(vectorizableOps)) { + if (areBroadcastable(vectorOps)) { auto value = firstOp->getResult(0); - return applyCreation(node, vectorIndex, builder.create(loc, vectorType, value), true); + auto const& insertionPoint = builder.saveInsertionPoint(); + builder.setInsertionPointAfter(firstOp); + auto broadcast = builder.create(loc, vectorType, value); + builder.restoreInsertionPoint(insertionPoint); + return applyCreation(node, vectorIndex, broadcast); } - if (areConsecutiveLoads(vectorizableOps)) { + if (areConsecutiveLoads(vectorOps)) { auto batchRead = static_cast(firstOp); auto const& base = batchRead.batchMem(); auto const& batchIndex = batchRead.batchIndex(); @@ -69,9 +56,9 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { return applyCreation(node, vectorIndex, builder.create(loc, vectorType, base, indices)); } - if (canBeGathered(vectorizableOps)) { + if (canBeGathered(vectorOps)) { SmallVector elements; - for (auto const& op : vectorizableOps) { + for (auto const& op : vectorOps) { elements.emplace_back(extractMemRefOperand(op)); } return applyCreation(node, vectorIndex, broadcastFirstInsertRest(firstOp, vectorType, elements)); @@ -92,7 +79,7 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { for (size_t lane = 0; lane < node->numLanes(); ++lane) { auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorizableOps[lane]); + nodeInput = extractMemRefOperand(vectorOps[lane]); } vectorElements.emplace_back(nodeInput); } @@ -123,7 +110,7 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { for (size_t lane = 0; lane < node->numLanes(); ++lane) { auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorizableOps[lane]); + nodeInput = extractMemRefOperand(vectorOps[lane]); } vectorElements.emplace_back(nodeInput); } @@ -136,44 +123,59 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { } } - auto vectorOp = Operation::create(loc, - firstOp->getName(), - vectorType, - operands, - firstOp->getAttrs(), - firstOp->getSuccessors(), - firstOp->getNumRegions()); - return applyCreation(node, vectorIndex, builder.insert(vectorOp)); + Operation* vectorOp; + + if (dyn_cast(firstOp)) { + vectorOp = builder.create(loc, operands); + } else if (dyn_cast(firstOp)) { + vectorOp = builder.create(loc, operands); + } else { + vectorOp = builder.insert(Operation::create(loc, + firstOp->getName(), + vectorType, + operands, + firstOp->getAttrs(), + firstOp->getSuccessors(), + firstOp->getNumRegions())); + } + return applyCreation(node, vectorIndex, vectorOp); } llvm::SmallVector vectorElements; - for (auto op : vectorizableOps) { + for (auto op : vectorOps) { vectorElements.emplace_back(op->getResult(0)); } return applyCreation(node, vectorIndex, broadcastFirstInsertRest(firstOp, vectorType, vectorElements)); } -Value SLPFunctionTransformer::applyCreation(SLPNode* node, - size_t vectorIndex, - Operation* createdVectorOp, - bool keepFirst) { +Value SLPFunctionTransformer::applyCreation(SLPNode* node, size_t vectorIndex, Operation* createdVectorOp) { + + bool isBroadcast = dyn_cast(createdVectorOp); + for (size_t lane = 0; lane < node->numLanes(); ++lane) { auto* operation = node->getOperation(lane, vectorIndex); + if (isBroadcast && operation == node->getOperation(0, vectorIndex)) { + continue; + } + bool createExtraction = false; for (auto* use : operation->getUsers()) { - // Happens when creating broadcast operations. - if (use == createdVectorOp) { - continue; - } - for (size_t i = 0; i < use->getNumOperands(); ++i) { - if (use->getOperand(i) == operation->getResult(0) && !vectorizedOps.count(use)) { - operandExtractions[use][i] = std::make_pair(createdVectorOp, lane); - break; - } + if (vectorizedOps.find(use) == std::end(vectorizedOps)) { + createExtraction = true; + break; } } - operandExtractions.erase(operation); - if (lane == 0 && keepFirst) { - continue; + + if (createExtraction) { + + auto const& source = createdVectorOp->getResult(0); + auto const& position = getOrCreateConstant(lane, false); + + auto const& insertionPoint = builder.saveInsertionPoint(); + builder.setInsertionPointAfter(createdVectorOp); + auto element = builder.create(builder.getUnknownLoc(), source, position); + builder.restoreInsertionPoint(insertionPoint); + operation->replaceAllUsesWith(element); + } operation->remove(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 05c14d19..7a2d98ef 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -53,12 +53,6 @@ namespace { }); } - bool escapesMultinode(Operation* operation) { - // TODO: check if some intermediate, temporary value of a multinode is used outside of it - assert(operation); - return false; - } - std::vector getOperands(Operation* operation) { std::vector operands; operands.reserve(operation->getNumOperands()); @@ -107,8 +101,8 @@ void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPN } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { - return operandOperations[i]->getName() == currentOpCode - && !escapesMultinode(operandOperations[i]); + // We don't need multinode-escaping checks since an escaping value can be 'fetched' with vector extractions. + return operandOperations[i]->getName() == currentOpCode; })) { for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { currentNode->addOperationToLane(allOperands[lane][i], lane); diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index fb2edec7..4315f046 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -99,7 +99,7 @@ int main(int argc, char** argv) { return mlir::spn::createLoSPNNodeVectorizationPass(); }); - mlir::registerPass("slp-vectorize-structure", "Run SLP vectorization of the structure for CPU target", + mlir::registerPass("slp-vectorize", "Run SLP vectorization of the structure for CPU target", []() -> std::unique_ptr { return mlir::spn::createSLPVectorizationPass(); }); From b0ad43c2f8230c8415c60560aa959b3a82067aaa Mon Sep 17 00:00:00 2001 From: CSV Date: Tue, 13 Apr 2021 14:52:13 +0200 Subject: [PATCH 069/385] Transformer uses more appropriate methods. --- .../LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp index 06996f84..5c7375d9 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp @@ -88,7 +88,7 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { } } else { - size_t initialOperandIndex = vectorIndex % node->getOperands().size(); + size_t initialOperandIndex = vectorIndex % node->numOperands(); size_t operandNodeIndex = initialOperandIndex; SLPNode* operandNode = (i == 0) ? node : node->getOperand(operandNodeIndex); @@ -96,7 +96,7 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { size_t nextVectorIndex = vectorsDone[operandNode]; while (nextVectorIndex >= operandNode->numVectors()) { - operandNode = node->getOperand(operandNodeIndex % node->getOperands().size()); + operandNode = node->getOperand(operandNodeIndex % node->numOperands()); nextVectorIndex = vectorsDone[operandNode]; // Check if we have looped through all operands already. if (operandNodeIndex++ == initialOperandIndex + node->numOperands()) { @@ -177,6 +177,7 @@ Value SLPFunctionTransformer::applyCreation(SLPNode* node, size_t vectorIndex, O operation->replaceAllUsesWith(element); } + operation->dropAllUses(); operation->remove(); } return createdVectorOp->getResult(0); From 96f6ea3c62d321d6cfbbdd61d3ed028d143661ec Mon Sep 17 00:00:00 2001 From: CSV Date: Wed, 14 Apr 2021 19:20:41 +0200 Subject: [PATCH 070/385] Added SLP pattern attempt. --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 16 +- .../SLP/SLPVectorizationPatterns.h | 87 ++++++++++ mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 + .../SLP/SLPFunctionTransformer.cpp | 2 +- .../Vectorization/SLP/SLPGraphBuilder.cpp | 6 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 58 +++---- .../SLP/SLPVectorizationPass.cpp | 86 +++++++++- .../SLP/SLPVectorizationPatterns.cpp | 159 ++++++++++++++++++ 8 files changed, 366 insertions(+), 49 deletions(-) create mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h create mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index fa62e340..f492e157 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -19,7 +19,6 @@ namespace mlir { explicit SLPNode(std::vector const& operations); - void addOperationToLane(Operation* operation, size_t const& lane); Operation* getOperation(size_t lane, size_t index) const; void setOperation(size_t lane, size_t index, Operation* operation); @@ -30,7 +29,11 @@ namespace mlir { size_t numLanes() const; size_t numVectors() const; - std::vector getVector(size_t index) const; + void addVector(std::vector const& vectorOps); + std::vector& getVector(size_t index); + std::vector& getVectorOf(Operation* op); + std::vector>& getVectors(); + SLPNode* addOperand(std::vector const& operations); SLPNode* getOperand(size_t index) const; @@ -40,13 +43,11 @@ namespace mlir { void addNodeInput(Value const& value); Value const& getNodeInput(size_t index) const; - Type getResultType() const; - void dump() const; void dumpGraph() const; friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.lanes) == std::tie(rhs.lanes); + return std::tie(lhs.vectors) == std::tie(rhs.vectors); } friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { @@ -55,10 +56,7 @@ namespace mlir { private: - /// Stores lanes as lists of operations. An inner vector (i.e. a lane) only contains more than one operation - /// if this node is a multinode. Operations with smaller indices inside a lane are executed "after" the higher - /// ones in the source code. - std::vector> lanes; + std::vector> vectors; std::vector> operandNodes; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h new file mode 100644 index 00000000..1e3f75ce --- /dev/null +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -0,0 +1,87 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H + +#include "mlir/IR/PatternMatch.h" +#include "SLPNode.h" +#include "LoSPN/LoSPNDialect.h" +#include "LoSPN/LoSPNOps.h" +#include "llvm/Support/Debug.h" + +namespace mlir { + namespace spn { + namespace low { + namespace slp { + + template + class SLPVectorizationPattern : public OpRewritePattern { + + public: + SLPVectorizationPattern(MLIRContext* context, + PatternBenefit benefit, + llvm::DenseMap const& parentNodes) : OpRewritePattern{ + context, benefit}, parentNodes{parentNodes} {} + + protected: + llvm::DenseMap const& parentNodes; + }; + + struct VectorizeBatchRead : public SLPVectorizationPattern { + + using SLPVectorizationPattern::SLPVectorizationPattern; + + LogicalResult matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const override; + }; + + struct VectorizeMul : public SLPVectorizationPattern { + + using SLPVectorizationPattern::SLPVectorizationPattern; + + LogicalResult matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const override; + }; + + struct VectorizeAdd : public SLPVectorizationPattern { + + using SLPVectorizationPattern::SLPVectorizationPattern; + + LogicalResult matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const override; + }; + + struct VectorizeLog : public SLPVectorizationPattern { + + using SLPVectorizationPattern::SLPVectorizationPattern; + + LogicalResult matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const override; + }; + + struct VectorizeConstant : public SLPVectorizationPattern { + + using SLPVectorizationPattern::SLPVectorizationPattern; + + VectorizeConstant(MLIRContext* context, + PatternBenefit benefit, + const DenseMap& parentNodes) : SLPVectorizationPattern{context, benefit, parentNodes} { + llvm::dbgs() << "Created vectorize constants pattern for SLP vectorization" << "\n"; + } + + LogicalResult matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const override; + }; + + static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, + MLIRContext* context, + llvm::DenseMap const& parentNodes) { + patterns.insert(context, 2, parentNodes); + //patterns.insert(context, 2, parentNodes); + //patterns.insert(context, 2, parentNodes); + } + + } + } + } +} + +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index 48648422..a500b060 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -11,6 +11,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPGraphBuilder.cpp Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPass.cpp + Vectorization/SLP/SLPVectorizationPatterns.cpp Vectorization/SLP/SLPFunctionTransformer.cpp LoSPNtoCPUConversionPasses.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp index 5c7375d9..bd17ba46 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp @@ -29,7 +29,7 @@ Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { vectorsDone[node]++; - auto vectorType = typeConverter.convertType(node->getResultType()); + auto vectorType = typeConverter.convertType(node->getOperation(0, 0)->getResultTypes().front()); auto const& vectorOps = node->getVector(vectorIndex); vectorizedOps.insert(vectorOps.begin(), vectorOps.end()); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 7a2d98ef..3f51240d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -104,10 +104,12 @@ void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPN // We don't need multinode-escaping checks since an escaping value can be 'fetched' with vector extractions. return operandOperations[i]->getName() == currentOpCode; })) { + std::vector vectorOps; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - currentNode->addOperationToLane(allOperands[lane][i], lane); + vectorOps.emplace_back(allOperands[lane][i]); } - buildGraph(currentNode->getVector(currentNode->numVectors() - 1), currentNode); + currentNode->addVector(vectorOps); + buildGraph(vectorOps, currentNode); } else { // TODO: here might be a good place to implement variable vector width std::vector operandOperations; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index f70babbc..a81cae74 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -13,24 +13,19 @@ using namespace mlir; using namespace mlir::spn; using namespace mlir::spn::low::slp; -SLPNode::SLPNode(std::vector const& operations) : lanes{operations.size()}, operandNodes{}, nodeInputs{} { - for (size_t i = 0; i < operations.size(); ++i) { - lanes[i].emplace_back(operations[i]); - } -} - -void SLPNode::addOperationToLane(Operation* operation, size_t const& lane) { - lanes[lane].emplace_back(operation); +SLPNode::SLPNode(std::vector const& operations) { + assert(!operations.empty()); + vectors.emplace_back(operations); } Operation* SLPNode::getOperation(size_t lane, size_t index) const { assert(lane <= numLanes() && index <= numVectors()); - return lanes[lane][index]; + return vectors[index][lane]; } void SLPNode::setOperation(size_t lane, size_t index, Operation* operation) { assert(lane <= numLanes() && index <= numVectors()); - lanes[lane][index] = operation; + vectors[index][lane] = operation; } bool SLPNode::isMultiNode() const { @@ -38,35 +33,44 @@ bool SLPNode::isMultiNode() const { } bool SLPNode::isUniform() const { - return std::all_of(std::begin(lanes), std::end(lanes), [&](auto const& operations) { - return operations[0]->getName() == lanes[0][0]->getName(); + return std::all_of(std::begin(vectors), std::end(vectors), [&](auto const& operations) { + return operations[0]->getName() == vectors[0][0]->getName(); }); } bool SLPNode::areRootOfNode(std::vector const& operations) const { - for (size_t lane = 0; lane < numLanes(); ++lane) { - if (operations[lane] != lanes[lane].front()) { - return false; - } - } - return true; + return vectors[0] == operations; } size_t SLPNode::numLanes() const { - return lanes.size(); + return vectors[0].size(); } size_t SLPNode::numVectors() const { - return lanes.front().size(); + return vectors.size(); +} + +void SLPNode::addVector(std::vector const& vectorOps) { + assert(vectorOps.size() == numLanes()); + vectors.emplace_back(vectorOps); } -std::vector SLPNode::getVector(size_t index) const { +std::vector& SLPNode::getVector(size_t index) { assert(index <= numVectors()); - std::vector vector; - for (size_t lane = 0; lane < numLanes(); ++lane) { - vector.emplace_back(lanes[lane][index]); + return vectors[index]; +} + +std::vector& SLPNode::getVectorOf(Operation* op) { + for(auto& vector : vectors) { + if(std::find(std::begin(vector), std::end(vector), op) != std::end(vector)) { + return vector; + } } - return vector; + assert(false && "node does not contain the given operation"); +} + +std::vector>& SLPNode::getVectors() { + return vectors; } SLPNode* SLPNode::addOperand(std::vector const& operations) { @@ -100,10 +104,6 @@ Value const& SLPNode::getNodeInput(size_t index) const { return nodeInputs[index]; } -Type SLPNode::getResultType() const { - return lanes[0][0]->getResult(0).getType(); -} - void SLPNode::dump() const { for (size_t i = numVectors(); i-- > 0;) { for (size_t lane = 0; lane < numLanes(); ++lane) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 1ee442fa..f125de8b 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -7,13 +7,13 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" -#include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" -#include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" -#include "mlir/Dialect/SCF/SCF.h" -#include "mlir/Dialect/Vector/VectorOps.h" +#include "mlir/Dialect/Linalg/IR/LinalgOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/Rewrite/PatternApplicator.h" +#include "mlir/Transforms/GreedyPatternRewriteDriver.h" +#include using namespace mlir::spn::low::slp; @@ -73,7 +73,54 @@ namespace { llvm::dbgs() << "}\n"; } -} + llvm::DenseMap computeParentNodesMapping(SLPNode* root) { + llvm::DenseMap parentMapping; + std::queue worklist; + worklist.emplace(root); + while (!worklist.empty()) { + auto* node = worklist.front(); + worklist.pop(); + for(auto& vector : node->getVectors()) { + for(auto* op : vector) { + parentMapping[op] = node; + } + } + for (auto const& operand : node->getOperands()) { + worklist.emplace(operand); + } + } + return parentMapping; + } + + /// Define a custom PatternRewriter for use by the driver. + class MyPatternRewriter : public mlir::PatternRewriter { + public: + MyPatternRewriter(mlir::MLIRContext *ctx) : PatternRewriter(ctx) {} + + /// Override the necessary PatternRewriter hooks here. + }; + +/// Apply the custom driver to `op`. + void applyMyPatternDriver(mlir::Operation *op, + mlir::FrozenRewritePatternList const& patterns) { + // Initialize the custom PatternRewriter. + MyPatternRewriter rewriter(op->getContext()); + + // Create the applicator and apply our cost model. + mlir::PatternApplicator applicator(patterns); + applicator.applyDefaultCostModel(); + + //auto resulttest = patterns.getNativePatterns().begin()->matchAndRewrite(op, rewriter); + + // Try to match and apply a pattern. + mlir::LogicalResult result = applicator.matchAndRewrite(op, rewriter); + if (failed(result)) { + // ... No patterns were applied. + } + // ... A pattern was successfully applied. + } + +} // End anonymous namespace. void SLPVectorizationPass::runOnOperation() { llvm::StringRef funcName = getOperation().getName(); @@ -93,8 +140,31 @@ void SLPVectorizationPass::runOnOperation() { //printSeedTree(seeds.front()); SLPGraphBuilder builder{3}; auto graph = builder.build(seeds.front()); - SLPFunctionTransformer transformer(std::move(graph), function); - transformer.transform(); + //SLPFunctionTransformer transformer(std::move(graph), function); + //transformer.transform(); + // ==== // + + OwningRewritePatternList patterns; + auto const& parentMapping = computeParentNodesMapping(graph.get()); + populateSLPVectorizationPatterns(patterns, &getContext(), parentMapping); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + for(auto const& entry : parentMapping) { + if(dyn_cast(entry.first)) { + llvm::dbgs() << "constant op: " << entry.first << "\n"; + entry.second->dump(); + //applyMyPatternDriver(entry.first, frozenPatterns); + } + entry.first->dump(); + bool erased; + auto success = applyOpPatternsAndFold(entry.first, frozenPatterns, &erased); + + assert(success.succeeded()); + + if (success.failed()) { + signalPassFailure(); + } + } + getOperation()->dump(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp new file mode 100644 index 00000000..5dba8498 --- /dev/null +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -0,0 +1,159 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "mlir/IR/BlockAndValueMapping.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/TargetInformation.h" +#include "llvm/Support/FormatVariadic.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/Dialect/SCF/SCF.h" +#include "mlir/Dialect/Math/IR/Math.h" +#include "mlir/IR/BuiltinOps.h" +#include "mlir/Dialect/Vector/VectorOps.h" +#include "LoSPN/LoSPNAttributes.h" + +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::low; +using namespace mlir::spn::low::slp; + +// Helper functions in anonymous namespace. +namespace { + + void broadcastIdentical(Value const& source, Type const& vectorType, PatternRewriter& rewriter) { + auto const& insertionPoint = rewriter.saveInsertionPoint(); + rewriter.setInsertionPointAfterValue(source); + rewriter.create(source.getLoc(), vectorType, source); + rewriter.restoreInsertionPoint(insertionPoint); + } + + template + Value broadcastFirstInsertRest(V const& vector, VectorType const& vectorType, PatternRewriter& rewriter) { + llvm::SmallVector elements; + for(size_t i = 0; i < vector.size(); ++i) { + elements.template emplace_back(vector[i]->getResult(0)); + } + auto const& insertionPoint = rewriter.saveInsertionPoint(); + rewriter.setInsertionPointAfterValue(elements[0]); + Value vectorOp = rewriter.create(vector[0]->getLoc(), vectorType, elements[0]); + for (size_t i = 1; i < vector.size(); ++i) { + auto const& position = i/*getOrCreateConstant(i, false)*/; + vectorOp = rewriter.create(vector[0]->getLoc(), elements[i], vectorOp, position); + } + rewriter.restoreInsertionPoint(insertionPoint); + return vectorOp; + } +} + +LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const { + + llvm::dbgs() << "Matched SPNBatchRead" << "\n"; + + auto* node = parentNodes.lookup(op.getOperation()); + auto const& vector = node->getVectorOf(op.getOperation()); + auto const& vectorType = VectorType::get(vector.size(), op.getType()); + + if(!node->isUniform()) { + //broadcastFirstInsertRest(vector, vectorType, rewriter); + } + //assert(false); + return failure(); +} + +LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const { + + llvm::dbgs() << "Matched SPNAdd" << "\n"; + + auto* node = parentNodes.lookup(op.getOperation()); + auto const& vector = node->getVectorOf(op.getOperation()); + auto const& vectorType = VectorType::get(vector.size(), op.getType()); + + if(!node->isUniform()) { + //broadcastFirstInsertRest(vector, vectorType, rewriter); + } + assert(false); + return success(); +} + +LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const { + + llvm::dbgs() << "Matched SPNMul" << "\n"; + + auto* node = parentNodes.lookup(op.getOperation()); + auto const& vector = node->getVectorOf(op.getOperation()); + auto const& vectorType = VectorType::get(vector.size(), op.getType()); + + if(!node->isUniform()) { + //broadcastFirstInsertRest(vector, vectorType, rewriter); + } + assert(false); + return success(); +} + +LogicalResult VectorizeLog::matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const { + + llvm::dbgs() << "Matched SPNLog" << "\n"; + + auto* node = parentNodes.lookup(op.getOperation()); + auto const& vector = node->getVectorOf(op.getOperation()); + auto const& vectorType = VectorType::get(vector.size(), op.getType()); + + if(!node->isUniform()) { + //broadcastFirstInsertRest(vector, vectorType, rewriter); + } + assert(false); + return success(); +} + + +LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const { + + llvm::dbgs() << "Matched SPNConstant" << "\n"; + + assert(false); + /* + auto* node = parentNodes.lookup(op.getOperation()); + auto const& vector = node->getVectorOf(op.getOperation()); + auto const& vectorType = VectorType::get(vector.size(), op.type()); + + if(!node->isUniform()) { + broadcastFirstInsertRest(vector, vectorType, rewriter); + } + + if (node->isUniform()) { + + DenseElementsAttr constAttr; + + if (vectorType.getElementType().cast().getWidth() == 32) { + llvm::SmallVector array; + for (int i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(vector[i]).value().convertToFloat()); + } + constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); + } else { + llvm::SmallVector array; + for (int i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(vector[i]).value().convertToDouble()); + } + constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); + } + + auto const& insertionPoint = rewriter.saveInsertionPoint(); + rewriter.setInsertionPointAfter(vector.front()); + auto constValue = rewriter.create(op->getLoc(), constAttr); + rewriter.restoreInsertionPoint(insertionPoint); + + for(auto lane : vector) { + for(auto& use : lane->getUses()) { + if(parentNodes.lookup(use.getOwner())) { + use.set(constValue); + } + } + } + } + */ + return success(); +} From 014281c19c871b0b1f889df30f5db2dff27b0d36 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 14 Apr 2021 21:49:33 +0200 Subject: [PATCH 071/385] Better operation mode recognition. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h | 2 +- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h index 421ecd5b..1d5d52a6 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h @@ -26,7 +26,7 @@ namespace mlir { FAILED }; - Mode modeFromOperation(Operation const* operation); + Mode modeFromOperation(Operation* operation); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp index 980c0fde..810b4207 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp @@ -3,15 +3,14 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "LoSPN/LoSPNOps.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPMode.h" using namespace mlir; using namespace mlir::spn::low::slp; -Mode mlir::spn::low::slp::modeFromOperation(const Operation* operation) { - if (dyn_cast(operation)) { +Mode mlir::spn::low::slp::modeFromOperation(Operation* operation) { + if (operation->hasTrait()) { return CONST; } else if (dyn_cast(operation)) { return LOAD; From 50e3fecf77ef07684f5ca46072af6d5a59fb45ea Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 14 Apr 2021 21:50:16 +0200 Subject: [PATCH 072/385] Updated consecutiveness check. --- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 3 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 32 ++++++++----------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index 3088f744..a10ff29f 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -7,13 +7,14 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H #include "mlir/IR/Operation.h" +#include "LoSPN/LoSPNOps.h" namespace mlir { namespace spn { namespace low { namespace slp { - bool areConsecutiveLoads(Operation* load1, Operation* load2); + bool areConsecutiveLoads(low::SPNBatchRead load1, low::SPNBatchRead load2); bool areConsecutiveLoads(std::vector const& loads); bool canBeGathered(std::vector const& loads); bool areBroadcastable(std::vector const& ops); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 651c1e5d..c12d1f68 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -4,38 +4,32 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "LoSPN/LoSPNOps.h" using namespace mlir; -bool mlir::spn::low::slp::areConsecutiveLoads(Operation* op1, Operation* op2) { - - if (op1 == op2) { - return false; - } - - auto loadOp1 = dyn_cast(op1); - auto loadOp2 = dyn_cast(op2); - - if (!loadOp1 || !loadOp2) { +bool mlir::spn::low::slp::areConsecutiveLoads(low::SPNBatchRead load1, low::SPNBatchRead load2) { + if (load1 == load2) { return false; } - - if (loadOp1.batchMem() != loadOp2.batchMem()) { + if (load1.batchMem() != load2.batchMem()) { return false; } - - if (loadOp1.batchIndex() != loadOp2.batchIndex()) { + if (load1.batchIndex() != load2.batchIndex()) { return false; } - - return loadOp1.sampleIndex() + 1 == loadOp2.sampleIndex(); + return load1.sampleIndex() + 1 == load2.sampleIndex(); } bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loads) { for (size_t i = 0; i < loads.size() - 1; ++i) { - auto* loadOp1 = loads[i]; - auto* loadOp2 = loads[i + 1]; + auto loadOp1 = dyn_cast(loads[i]); + if (!loadOp1) { + return false; + } + auto loadOp2 = dyn_cast(loads[i + 1]); + if (!loadOp2) { + return false; + } if (!areConsecutiveLoads(loadOp1, loadOp2)) { return false; } From d0de069d27ea5fad25cfff16b3e1b4f11a038c1f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 14 Apr 2021 21:51:03 +0200 Subject: [PATCH 073/385] Fix: SLPGraphBuilder not recognizing LoadOps as such. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 3f51240d..63a5b00d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -7,6 +7,7 @@ #include "llvm/Support/Debug.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPN/LoSPNOps.h" #include "LoSPN/LoSPNTraits.h" #include @@ -155,10 +156,6 @@ void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPN } void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { - if (std::uintptr_t(multinode->getOperation(0, 0)) == 12345) { - multinode->dump(); - llvm::dbgs() << "\n"; - } auto const& numOperands = multinode->numOperands(); std::vector> finalOrder{multinode->numLanes()}; std::vector> mode{multinode->numLanes()}; @@ -233,7 +230,8 @@ std::pair SLPGraphBuilder::getBest(Mode const& mode, best = candidates.front(); for (auto& candidate : candidates) { if (mode == LOAD) { - if (areConsecutiveLoads(last, candidate)) { + auto load = dyn_cast(candidate); + if (load && areConsecutiveLoads(static_cast(last), load)) { bestCandidates.emplace_back(candidate); } } else if (candidate->getName() == last->getName()) { @@ -287,8 +285,8 @@ int SLPGraphBuilder::getLookAheadScore(Operation* last, Operation* candidate, si if (last->getName() != candidate->getName()) { return 0; } - if (dyn_cast(last)) { - return areConsecutiveLoads(last, candidate) ? 1 : 0; + if (dyn_cast(last)) { + return areConsecutiveLoads(static_cast(last), static_cast(candidate)) ? 1 : 0; } return 1; } From e568b41efca0ad7bc84f675a3be4dd87dfff6c56 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 16 Apr 2021 15:56:42 +0200 Subject: [PATCH 074/385] Added contains method to SLPNodes. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index f492e157..83a4c892 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -24,6 +24,7 @@ namespace mlir { bool isMultiNode() const; bool isUniform() const; + bool containsOperation(Operation* op) const; bool areRootOfNode(std::vector const& operations) const; size_t numLanes() const; @@ -34,7 +35,6 @@ namespace mlir { std::vector& getVectorOf(Operation* op); std::vector>& getVectors(); - SLPNode* addOperand(std::vector const& operations); SLPNode* getOperand(size_t index) const; std::vector getOperands() const; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index a81cae74..eaac8285 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -38,6 +38,12 @@ bool SLPNode::isUniform() const { }); } +bool SLPNode::containsOperation(Operation* op) const { + return std::any_of(std::begin(vectors), std::end(vectors), [&](auto const& vectorOps) { + return std::find(std::begin(vectorOps), std::end(vectorOps), op) != std::end(vectorOps); + }); +} + bool SLPNode::areRootOfNode(std::vector const& operations) const { return vectors[0] == operations; } @@ -61,8 +67,8 @@ std::vector& SLPNode::getVector(size_t index) { } std::vector& SLPNode::getVectorOf(Operation* op) { - for(auto& vector : vectors) { - if(std::find(std::begin(vector), std::end(vector), op) != std::end(vector)) { + for (auto& vector : vectors) { + if (std::find(std::begin(vector), std::end(vector), op) != std::end(vector)) { return vector; } } From c84f185417558d2b7bd29e2d5454d08c71f85c93 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 16 Apr 2021 15:57:17 +0200 Subject: [PATCH 075/385] Added escapesMultinode check, better SPLAT checks. --- .../Vectorization/SLP/SLPGraphBuilder.cpp | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 63a5b00d..1fdc8bd5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -37,7 +37,7 @@ namespace { if (op->getNumResults() != 1) { return false; } - // MLIR disallows index types in vectors. + // MLIR does not allow index types in vectors. if (op->getResult(0).getType().isa()) { return false; } @@ -46,11 +46,16 @@ namespace { } bool commutative(std::vector const& operations) { - return std::any_of(std::begin(operations), std::end(operations), [&](Operation* op) { - if (!op->hasTrait()) { - return false; - } - return true; + return std::all_of(std::begin(operations), std::end(operations), [&](Operation* op) { + return op->hasTrait(); + }); + } + + bool escapesMultinode(Operation* op, SLPNode* currentNode) { + // TODO: determine if multinodes should stop building if an operation escapes it + // or if simply disallowing reordering in this lane might be better + return std::any_of(std::begin(op->getUsers()), std::end(op->getUsers()), [&](auto* user) { + return !currentNode->containsOperation(user); }); } @@ -102,8 +107,7 @@ void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPN } for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { - // We don't need multinode-escaping checks since an escaping value can be 'fetched' with vector extractions. - return operandOperations[i]->getName() == currentOpCode; + return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i], currentNode); })) { std::vector vectorOps; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { @@ -185,7 +189,7 @@ void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { // Update output finalOrder[lane].emplace_back(bestResult.first); // Detect SPLAT mode - if (i == 1 && bestResult.first == last) { + if (i == 1 && OperationEquivalence::isEquivalentTo(bestResult.first, last)) { mode[lane][i] = SPLAT; } else { mode[lane].emplace_back(bestResult.second); @@ -220,7 +224,7 @@ std::pair SLPGraphBuilder::getBest(Mode const& mode, } else if (mode == SPLAT) { // Look for other splat candidates for (auto& operand : candidates) { - if (operand == last) { + if (OperationEquivalence::isEquivalentTo(operand, last)) { best = operand; break; } From 80fbe340511956e091daafe66c03982bef1f1aca Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 17 Apr 2021 01:42:42 +0200 Subject: [PATCH 076/385] Added getVectorIndex to SLPNodes. --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 1 + .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 83a4c892..5b0d451e 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -32,6 +32,7 @@ namespace mlir { size_t numVectors() const; void addVector(std::vector const& vectorOps); std::vector& getVector(size_t index); + size_t getVectorIndex(Operation* op) const; std::vector& getVectorOf(Operation* op); std::vector>& getVectors(); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index eaac8285..e00921fa 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -66,15 +66,19 @@ std::vector& SLPNode::getVector(size_t index) { return vectors[index]; } -std::vector& SLPNode::getVectorOf(Operation* op) { - for (auto& vector : vectors) { - if (std::find(std::begin(vector), std::end(vector), op) != std::end(vector)) { - return vector; +size_t SLPNode::getVectorIndex(Operation* op) const { + for (size_t i = 0; i < vectors.size(); ++i) { + if (std::find(std::begin(vectors[i]), std::end(vectors[i]), op) != std::end(vectors[i])) { + return i; } } assert(false && "node does not contain the given operation"); } +std::vector& SLPNode::getVectorOf(Operation* op) { + return vectors[getVectorIndex(op)]; +} + std::vector>& SLPNode::getVectors() { return vectors; } From a09fa2f4644bc87a4918cb005e1a7b6e794ec035 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 17 Apr 2021 01:43:19 +0200 Subject: [PATCH 077/385] SLP Vectorization patterns update. --- .../SLP/SLPVectorizationPatterns.h | 26 ++-- .../SLP/SLPVectorizationPass.cpp | 72 +++++----- .../SLP/SLPVectorizationPatterns.cpp | 133 +++++++++--------- 3 files changed, 115 insertions(+), 116 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 1e3f75ce..90741469 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -6,10 +6,11 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H -#include "mlir/IR/PatternMatch.h" #include "SLPNode.h" #include "LoSPN/LoSPNDialect.h" #include "LoSPN/LoSPNOps.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/IR/PatternMatch.h" #include "llvm/Support/Debug.h" namespace mlir { @@ -23,11 +24,14 @@ namespace mlir { public: SLPVectorizationPattern(MLIRContext* context, PatternBenefit benefit, - llvm::DenseMap const& parentNodes) : OpRewritePattern{ - context, benefit}, parentNodes{parentNodes} {} + llvm::DenseMap const& parentNodes, + llvm::DenseMap>& vectorsByNode) + : OpRewritePattern{ + context, benefit}, parentNodes{parentNodes}, vectorsByNode{vectorsByNode} {} protected: llvm::DenseMap const& parentNodes; + llvm::DenseMap>& vectorsByNode; }; struct VectorizeBatchRead : public SLPVectorizationPattern { @@ -62,21 +66,17 @@ namespace mlir { using SLPVectorizationPattern::SLPVectorizationPattern; - VectorizeConstant(MLIRContext* context, - PatternBenefit benefit, - const DenseMap& parentNodes) : SLPVectorizationPattern{context, benefit, parentNodes} { - llvm::dbgs() << "Created vectorize constants pattern for SLP vectorization" << "\n"; - } - LogicalResult matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const override; }; static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - llvm::DenseMap const& parentNodes) { - patterns.insert(context, 2, parentNodes); - //patterns.insert(context, 2, parentNodes); - //patterns.insert(context, 2, parentNodes); + llvm::DenseMap const& parentNodes, + llvm::DenseMap>& vectorsByNode) { + patterns.insert(context, 2, parentNodes, vectorsByNode); + patterns.insert(context, 2, parentNodes, vectorsByNode); + patterns.insert(context, 2, parentNodes, vectorsByNode); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index f125de8b..61915853 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -80,8 +80,8 @@ namespace { while (!worklist.empty()) { auto* node = worklist.front(); worklist.pop(); - for(auto& vector : node->getVectors()) { - for(auto* op : vector) { + for (auto& vector : node->getVectors()) { + for (auto* op : vector) { parentMapping[op] = node; } } @@ -92,32 +92,29 @@ namespace { return parentMapping; } - /// Define a custom PatternRewriter for use by the driver. - class MyPatternRewriter : public mlir::PatternRewriter { - public: - MyPatternRewriter(mlir::MLIRContext *ctx) : PatternRewriter(ctx) {} + llvm::SmallVector postOrder(SLPNode* root) { + llvm::SmallVector order; + for (auto* operand : root->getOperands()) { + order.append(postOrder(operand)); + } + order.emplace_back(root); + return order; + } - /// Override the necessary PatternRewriter hooks here. + /// A custom PatternRewriter that does not fold operations. + class NoFoldPatternRewriter : public mlir::PatternRewriter { + public: + explicit NoFoldPatternRewriter(mlir::MLIRContext* ctx) : PatternRewriter(ctx) {} }; -/// Apply the custom driver to `op`. - void applyMyPatternDriver(mlir::Operation *op, - mlir::FrozenRewritePatternList const& patterns) { - // Initialize the custom PatternRewriter. - MyPatternRewriter rewriter(op->getContext()); - - // Create the applicator and apply our cost model. + void applyNoFoldPatternDriver(mlir::Operation* op, mlir::FrozenRewritePatternList const& patterns) { + NoFoldPatternRewriter rewriter(op->getContext()); mlir::PatternApplicator applicator(patterns); applicator.applyDefaultCostModel(); - - //auto resulttest = patterns.getNativePatterns().begin()->matchAndRewrite(op, rewriter); - - // Try to match and apply a pattern. - mlir::LogicalResult result = applicator.matchAndRewrite(op, rewriter); - if (failed(result)) { - // ... No patterns were applied. + auto result = applicator.matchAndRewrite(op, rewriter); + if (result.failed()) { + op->emitOpError("SLP pattern application failed"); } - // ... A pattern was successfully applied. } } // End anonymous namespace. @@ -137,30 +134,35 @@ void SLPVectorizationPass::runOnOperation() { auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), SearchMode::UseBeforeDef); assert(!seeds.empty() && "couldn't find a seed!"); - //printSeedTree(seeds.front()); + // printSeedTree(seeds.front()); SLPGraphBuilder builder{3}; auto graph = builder.build(seeds.front()); + // graph->dumpGraph(); //SLPFunctionTransformer transformer(std::move(graph), function); //transformer.transform(); // ==== // OwningRewritePatternList patterns; auto const& parentMapping = computeParentNodesMapping(graph.get()); - populateSLPVectorizationPatterns(patterns, &getContext(), parentMapping); + llvm::DenseMap> vectorsByNode; + populateSLPVectorizationPatterns(patterns, &getContext(), parentMapping, vectorsByNode); FrozenRewritePatternList frozenPatterns(std::move(patterns)); - for(auto const& entry : parentMapping) { - if(dyn_cast(entry.first)) { - llvm::dbgs() << "constant op: " << entry.first << "\n"; - entry.second->dump(); - //applyMyPatternDriver(entry.first, frozenPatterns); - } - entry.first->dump(); - bool erased; - auto success = applyOpPatternsAndFold(entry.first, frozenPatterns, &erased); - assert(success.succeeded()); + // Traverse the SLP graph in postorder and apply the vectorization patterns. + for (auto* node : postOrder(graph.get())) { + vectorsByNode[node].resize_for_overwrite(node->numVectors()); + for (auto const& vector : node->getVectors()) { + for (auto* op : vector) { + applyNoFoldPatternDriver(op, frozenPatterns); + } + } + } - if (success.failed()) { + // If an SLP node failed to vectorize completely, fail the pass. + for (auto const& entry: vectorsByNode) { + if (entry.first->numVectors() != entry.second.size()) { + llvm::dbgs() << "Failed to vectorize node:\n"; + entry.first->dump(); signalPassFailure(); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 5dba8498..5a97e7d2 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -33,7 +33,7 @@ namespace { template Value broadcastFirstInsertRest(V const& vector, VectorType const& vectorType, PatternRewriter& rewriter) { llvm::SmallVector elements; - for(size_t i = 0; i < vector.size(); ++i) { + for (size_t i = 0; i < vector.size(); ++i) { elements.template emplace_back(vector[i]->getResult(0)); } auto const& insertionPoint = rewriter.saveInsertionPoint(); @@ -50,110 +50,107 @@ namespace { LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const { - llvm::dbgs() << "Matched SPNBatchRead" << "\n"; + auto* node = parentNodes.lookup(op); + node->dump(); - auto* node = parentNodes.lookup(op.getOperation()); - auto const& vector = node->getVectorOf(op.getOperation()); - auto const& vectorType = VectorType::get(vector.size(), op.getType()); + auto const& vectorIndex = node->getVectorIndex(op); + auto const& vector = node->getVector(vectorIndex); + auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); - if(!node->isUniform()) { - //broadcastFirstInsertRest(vector, vectorType, rewriter); + if (!node->isUniform()) { + //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + return success(); } - //assert(false); - return failure(); + return success(); } LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const { - llvm::dbgs() << "Matched SPNAdd" << "\n"; + auto* node = parentNodes.lookup(op); + node->dump(); - auto* node = parentNodes.lookup(op.getOperation()); - auto const& vector = node->getVectorOf(op.getOperation()); - auto const& vectorType = VectorType::get(vector.size(), op.getType()); + auto const& vectorIndex = node->getVectorIndex(op); + auto const& vector = node->getVector(vectorIndex); + auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); - if(!node->isUniform()) { - //broadcastFirstInsertRest(vector, vectorType, rewriter); + if (!node->isUniform()) { + //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + return success(); } - assert(false); return success(); } LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const { - llvm::dbgs() << "Matched SPNMul" << "\n"; + auto* node = parentNodes.lookup(op); + node->dump(); - auto* node = parentNodes.lookup(op.getOperation()); - auto const& vector = node->getVectorOf(op.getOperation()); - auto const& vectorType = VectorType::get(vector.size(), op.getType()); + auto const& vectorIndex = node->getVectorIndex(op); + auto const& vector = node->getVector(vectorIndex); + auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); - if(!node->isUniform()) { - //broadcastFirstInsertRest(vector, vectorType, rewriter); + if (!node->isUniform()) { + //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + return success(); } - assert(false); return success(); } LogicalResult VectorizeLog::matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const { - llvm::dbgs() << "Matched SPNLog" << "\n"; + auto* node = parentNodes.lookup(op); + node->dump(); - auto* node = parentNodes.lookup(op.getOperation()); - auto const& vector = node->getVectorOf(op.getOperation()); - auto const& vectorType = VectorType::get(vector.size(), op.getType()); + auto const& vectorIndex = node->getVectorIndex(op); + auto const& vector = node->getVector(vectorIndex); + auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); - if(!node->isUniform()) { - //broadcastFirstInsertRest(vector, vectorType, rewriter); + if (!node->isUniform()) { + //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + return success(); } - assert(false); + return success(); } - LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const { - llvm::dbgs() << "Matched SPNConstant" << "\n"; + auto* node = parentNodes.lookup(op); + node->dump(); - assert(false); - /* - auto* node = parentNodes.lookup(op.getOperation()); - auto const& vector = node->getVectorOf(op.getOperation()); - auto const& vectorType = VectorType::get(vector.size(), op.type()); + auto const& vectorIndex = node->getVectorIndex(op); + auto const& vector = node->getVector(vectorIndex); + auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); - if(!node->isUniform()) { - broadcastFirstInsertRest(vector, vectorType, rewriter); + if (!node->isUniform()) { + vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + return success(); } - if (node->isUniform()) { - - DenseElementsAttr constAttr; - - if (vectorType.getElementType().cast().getWidth() == 32) { - llvm::SmallVector array; - for (int i = 0; i < vectorType.getNumElements(); ++i) { - array.push_back(static_cast(vector[i]).value().convertToFloat()); - } - constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); - } else { - llvm::SmallVector array; - for (int i = 0; i < vectorType.getNumElements(); ++i) { - array.push_back(static_cast(vector[i]).value().convertToDouble()); - } - constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); - } - - auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointAfter(vector.front()); - auto constValue = rewriter.create(op->getLoc(), constAttr); - rewriter.restoreInsertionPoint(insertionPoint); + DenseElementsAttr constAttr; - for(auto lane : vector) { - for(auto& use : lane->getUses()) { - if(parentNodes.lookup(use.getOwner())) { - use.set(constValue); - } - } + if (vectorType.getElementType().cast().getWidth() == 32) { + llvm::SmallVector array; + for (int i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(vector[i]).value().convertToFloat()); + } + constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); + } else { + llvm::SmallVector array; + for (int i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(vector[i]).value().convertToDouble()); } + constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); } - */ + + auto const& insertionPoint = rewriter.saveInsertionPoint(); + rewriter.setInsertionPointAfter(vector.front()); + auto constValue = rewriter.create(op->getLoc(), constAttr); + rewriter.restoreInsertionPoint(insertionPoint); + + vectorsByNode[node][vectorIndex] = constValue; + + constValue->dump(); + return success(); } From 1f9c393ed75f5fcf4fdefa2d8495d4f4a37b8438 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 17 Apr 2021 21:05:23 +0200 Subject: [PATCH 078/385] Better insertion point handling. --- .../SLP/SLPVectorizationPatterns.cpp | 119 ++++++++++++------ 1 file changed, 78 insertions(+), 41 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 5a97e7d2..70daf001 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -40,50 +40,115 @@ namespace { rewriter.setInsertionPointAfterValue(elements[0]); Value vectorOp = rewriter.create(vector[0]->getLoc(), vectorType, elements[0]); for (size_t i = 1; i < vector.size(); ++i) { + rewriter.setInsertionPointAfterValue(elements[i]); auto const& position = i/*getOrCreateConstant(i, false)*/; vectorOp = rewriter.create(vector[0]->getLoc(), elements[i], vectorOp, position); } rewriter.restoreInsertionPoint(insertionPoint); return vectorOp; } + + template + Operation* last(V const& vector) { + size_t maxIndex = 0; + for (size_t index = 0; index < vector.size(); ++index) { + if (vector[maxIndex]->isBeforeInBlock(vector[index])) { + maxIndex = index; + } + } + return vector[maxIndex]; + } + + template + Operation* first(V const& vector) { + size_t minIndex = 0; + for (size_t index = 0; index < vector.size(); ++index) { + if (!vector[minIndex]->isBeforeInBlock(vector[index])) { + minIndex = index; + } + } + return vector[minIndex]; + } } -LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const { +LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const { auto* node = parentNodes.lookup(op); - node->dump(); auto const& vectorIndex = node->getVectorIndex(op); auto const& vector = node->getVector(vectorIndex); auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); if (!node->isUniform()) { - //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); return success(); } + + DenseElementsAttr constAttr; + + if (vectorType.getElementType().cast().getWidth() == 32) { + llvm::SmallVector array; + for (int i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(vector[i]).value().convertToFloat()); + } + constAttr = mlir::DenseElementsAttr::get(vectorType, static_cast>(array)); + } else { + llvm::SmallVector array; + for (int i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(vector[i]).value().convertToDouble()); + } + constAttr = mlir::DenseElementsAttr::get(vectorType, static_cast>(array)); + } + + rewriter.setInsertionPointAfter(first(vector)); + auto constValue = rewriter.create(op->getLoc(), constAttr); + + vectorsByNode[node][vectorIndex] = constValue; + + constValue->dump(); + return success(); } -LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const { +LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const { auto* node = parentNodes.lookup(op); - node->dump(); auto const& vectorIndex = node->getVectorIndex(op); auto const& vector = node->getVector(vectorIndex); auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); - if (!node->isUniform()) { - //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); - return success(); + if (!node->isUniform() || !areConsecutiveLoads(vector)) { + vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + } else { + + rewriter.setInsertionPointAfter(first(vector)); + + auto memIndex = rewriter.create(op->getLoc(), rewriter.getIndexAttr(op.sampleIndex())); + ValueRange indices{op.batchIndex(), memIndex}; + + auto vectorLoad = rewriter.create(op->getLoc(), vectorType, op.batchMem(), indices); + + vectorsByNode[node][vectorIndex] = vectorLoad; + + vectorLoad.dump(); } + + for (auto* batchRead : vector) { + if (std::all_of(std::begin(batchRead->getUsers()), std::end(batchRead->getUsers()), [&](auto* user) { + return parentNodes.count(user); + })) { + batchRead->dropAllUses(); + rewriter.eraseOp(batchRead); + } + } + return success(); } -LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const { +LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const { auto* node = parentNodes.lookup(op); - node->dump(); auto const& vectorIndex = node->getVectorIndex(op); auto const& vector = node->getVector(vectorIndex); @@ -96,10 +161,9 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter return success(); } -LogicalResult VectorizeLog::matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const { +LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const { auto* node = parentNodes.lookup(op); - node->dump(); auto const& vectorIndex = node->getVectorIndex(op); auto const& vector = node->getVector(vectorIndex); @@ -109,48 +173,21 @@ LogicalResult VectorizeLog::matchAndRewrite(SPNLog op, PatternRewriter& rewriter //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); return success(); } - return success(); } -LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const { +LogicalResult VectorizeLog::matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const { auto* node = parentNodes.lookup(op); - node->dump(); auto const& vectorIndex = node->getVectorIndex(op); auto const& vector = node->getVector(vectorIndex); auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); if (!node->isUniform()) { - vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); return success(); } - DenseElementsAttr constAttr; - - if (vectorType.getElementType().cast().getWidth() == 32) { - llvm::SmallVector array; - for (int i = 0; i < vectorType.getNumElements(); ++i) { - array.push_back(static_cast(vector[i]).value().convertToFloat()); - } - constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); - } else { - llvm::SmallVector array; - for (int i = 0; i < vectorType.getNumElements(); ++i) { - array.push_back(static_cast(vector[i]).value().convertToDouble()); - } - constAttr = mlir::DenseElementsAttr::get(vectorType, (llvm::ArrayRef) array); - } - - auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointAfter(vector.front()); - auto constValue = rewriter.create(op->getLoc(), constAttr); - rewriter.restoreInsertionPoint(insertionPoint); - - vectorsByNode[node][vectorIndex] = constValue; - - constValue->dump(); - return success(); } From ee36a90b7edf6f2c16a048d47d1f6fc64aa43dfd Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 17 Apr 2021 21:05:39 +0200 Subject: [PATCH 079/385] Cleaner pattern application. --- .../SLP/SLPVectorizationPass.cpp | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 61915853..6949188c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -107,16 +107,6 @@ namespace { explicit NoFoldPatternRewriter(mlir::MLIRContext* ctx) : PatternRewriter(ctx) {} }; - void applyNoFoldPatternDriver(mlir::Operation* op, mlir::FrozenRewritePatternList const& patterns) { - NoFoldPatternRewriter rewriter(op->getContext()); - mlir::PatternApplicator applicator(patterns); - applicator.applyDefaultCostModel(); - auto result = applicator.matchAndRewrite(op, rewriter); - if (result.failed()) { - op->emitOpError("SLP pattern application failed"); - } - } - } // End anonymous namespace. void SLPVectorizationPass::runOnOperation() { @@ -149,15 +139,22 @@ void SLPVectorizationPass::runOnOperation() { FrozenRewritePatternList frozenPatterns(std::move(patterns)); // Traverse the SLP graph in postorder and apply the vectorization patterns. + NoFoldPatternRewriter rewriter(&getContext()); + PatternApplicator applicator(frozenPatterns); + applicator.applyDefaultCostModel(); for (auto* node : postOrder(graph.get())) { + node->dump(); vectorsByNode[node].resize_for_overwrite(node->numVectors()); for (auto const& vector : node->getVectors()) { - for (auto* op : vector) { - applyNoFoldPatternDriver(op, frozenPatterns); + auto result = applicator.matchAndRewrite(vector.front(), rewriter); + if (result.failed()) { + vector.front()->emitOpError("SLP pattern application failed"); } } } + getOperation()->dump(); + // If an SLP node failed to vectorize completely, fail the pass. for (auto const& entry: vectorsByNode) { if (entry.first->numVectors() != entry.second.size()) { @@ -166,8 +163,6 @@ void SLPVectorizationPass::runOnOperation() { signalPassFailure(); } } - - getOperation()->dump(); } std::unique_ptr mlir::spn::createSLPVectorizationPass() { From fcc42640804bcf1ee0ff29049e0a9395f855f159 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 02:29:21 +0200 Subject: [PATCH 080/385] Added binary patterns, refactored utility methods. --- .../SLP/SLPVectorizationPatterns.cpp | 184 +++++++++++++----- 1 file changed, 139 insertions(+), 45 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 70daf001..2d1f5b68 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -30,45 +30,83 @@ namespace { rewriter.restoreInsertionPoint(insertionPoint); } - template - Value broadcastFirstInsertRest(V const& vector, VectorType const& vectorType, PatternRewriter& rewriter) { - llvm::SmallVector elements; - for (size_t i = 0; i < vector.size(); ++i) { - elements.template emplace_back(vector[i]->getResult(0)); - } + template + Value broadcastFirstInsertRest(ValueIterator begin, + ValueIterator end, + VectorType const& vectorType, + PatternRewriter& rewriter) { auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointAfterValue(elements[0]); - Value vectorOp = rewriter.create(vector[0]->getLoc(), vectorType, elements[0]); - for (size_t i = 1; i < vector.size(); ++i) { - rewriter.setInsertionPointAfterValue(elements[i]); - auto const& position = i/*getOrCreateConstant(i, false)*/; - vectorOp = rewriter.create(vector[0]->getLoc(), elements[i], vectorOp, position); + rewriter.setInsertionPointAfterValue(*begin); + Value vectorOp = rewriter.create(begin->getLoc(), vectorType, *begin); + unsigned position = 1; + while (++begin != end) { + rewriter.setInsertionPointAfterValue(*begin); + vectorOp = rewriter.create(begin->getLoc(), *begin, vectorOp, position++); } rewriter.restoreInsertionPoint(insertionPoint); return vectorOp; } - template - Operation* last(V const& vector) { - size_t maxIndex = 0; - for (size_t index = 0; index < vector.size(); ++index) { - if (vector[maxIndex]->isBeforeInBlock(vector[index])) { - maxIndex = index; + template + llvm::SmallVector results(OperationIterator begin, OperationIterator end) { + llvm::SmallVector elements; + while (begin != end) { + elements.emplace_back((*begin)->getResult(0)); + ++begin; + } + return elements; + } + + template + Operation* firstOperation(OperationIterator begin, OperationIterator end) { + Operation* firstOp = *begin; + while (++begin != end) { + if (!firstOp->isBeforeInBlock(*begin)) { + firstOp = *begin; + } + } + return firstOp; + } + + template + Value firstValue(ValueIterator begin, ValueIterator end) { + Value firstVal = *begin; + while (begin != end) { + if (begin->template isa()) { + return *begin; + } + if (!firstVal.getDefiningOp()->isBeforeInBlock(*begin)) { + firstVal = *begin; + } + ++begin; + } + return firstVal; + } + + template + Operation* lastOperation(OperationIterator begin, OperationIterator end) { + Operation* lastOp = *begin; + while (++begin != end) { + if (lastOp->isBeforeInBlock(*begin)) { + lastOp = *begin; } } - return vector[maxIndex]; + return lastOp; } - template - Operation* first(V const& vector) { - size_t minIndex = 0; - for (size_t index = 0; index < vector.size(); ++index) { - if (!vector[minIndex]->isBeforeInBlock(vector[index])) { - minIndex = index; + template + Value lastValue(ValueIterator begin, ValueIterator end) { + Value lastVal = *begin; + while (++begin != end) { + if (begin->template isa()) { + continue; + } else if (lastVal.isa() || lastVal.getDefiningOp()->isBeforeInBlock(begin->getDefiningOp())) { + lastVal = *begin; } } - return vector[minIndex]; + return lastVal; } + } LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const { @@ -80,7 +118,9 @@ LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); if (!node->isUniform()) { - vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + auto const& elements = results(std::begin(vector), std::end(vector)); + auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); return success(); } @@ -100,13 +140,11 @@ LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter constAttr = mlir::DenseElementsAttr::get(vectorType, static_cast>(array)); } - rewriter.setInsertionPointAfter(first(vector)); + rewriter.setInsertionPointAfter(firstOperation(std::begin(vector), std::end(vector))); auto constValue = rewriter.create(op->getLoc(), constAttr); vectorsByNode[node][vectorIndex] = constValue; - constValue->dump(); - return success(); } @@ -119,10 +157,12 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewrit auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); if (!node->isUniform() || !areConsecutiveLoads(vector)) { - vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + auto const& elements = results(std::begin(vector), std::end(vector)); + auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); } else { - rewriter.setInsertionPointAfter(first(vector)); + rewriter.setInsertionPointAfter(firstOperation(std::begin(vector), std::end(vector))); auto memIndex = rewriter.create(op->getLoc(), rewriter.getIndexAttr(op.sampleIndex())); ValueRange indices{op.batchIndex(), memIndex}; @@ -130,17 +170,6 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewrit auto vectorLoad = rewriter.create(op->getLoc(), vectorType, op.batchMem(), indices); vectorsByNode[node][vectorIndex] = vectorLoad; - - vectorLoad.dump(); - } - - for (auto* batchRead : vector) { - if (std::all_of(std::begin(batchRead->getUsers()), std::end(batchRead->getUsers()), [&](auto* user) { - return parentNodes.count(user); - })) { - batchRead->dropAllUses(); - rewriter.eraseOp(batchRead); - } } return success(); @@ -155,9 +184,41 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); if (!node->isUniform()) { - //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + auto const& elements = results(std::begin(vector), std::end(vector)); + auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); return success(); } + + llvm::SmallVector operands; + + for (unsigned i = 0; i < op.getNumOperands(); ++i) { + Value operand; + if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { + Value vectorOperand = op.getOperand(i); + return vectorOperand.isa() || !parentNodes.count(vectorOperand.getDefiningOp()); + })) { + llvm::SmallVector elements; + for (auto* vectorOp : vector) { + elements.emplace_back(vectorOp->getOperand(i)); + } + operand = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + } else { + auto* operandOp = op.getOperand(i).getDefiningOp(); + auto* operandNode = parentNodes.lookup(operandOp); + if (!vectorsByNode.count(operandNode) || vectorsByNode[operandNode].size() != operandNode->numVectors()) { + return rewriter.notifyMatchFailure(op, "operation's LHS has not yet been (fully) vectorized"); + } + operand = vectorsByNode[operandNode][operandNode->getVectorIndex(operandOp)]->getResult(0); + } + operands.emplace_back(operand); + } + + rewriter.setInsertionPointAfterValue(lastValue(std::begin(operands), std::end(operands))); + auto addOp = rewriter.create(op->getLoc(), vectorType, operands); + + vectorsByNode[node][vectorIndex] = addOp; + return success(); } @@ -170,9 +231,42 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); if (!node->isUniform()) { - //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + auto const& elements = results(std::begin(vector), std::end(vector)); + auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); return success(); } + + llvm::SmallVector operands; + + for (unsigned i = 0; i < op.getNumOperands(); ++i) { + Value operand; + if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { + vectorOp->dump(); + Value vectorOperand = op.getOperand(i); + return vectorOperand.isa() || !parentNodes.count(vectorOperand.getDefiningOp()); + })) { + llvm::SmallVector elements; + for (auto* vectorOp : vector) { + elements.emplace_back(vectorOp->getOperand(i)); + } + operand = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + } else { + auto* operandOp = op.getOperand(i).getDefiningOp(); + auto* operandNode = parentNodes.lookup(operandOp); + if (!vectorsByNode.count(operandNode) || vectorsByNode[operandNode].size() != operandNode->numVectors()) { + return rewriter.notifyMatchFailure(op, "operation's LHS has not yet been (fully) vectorized"); + } + operand = vectorsByNode[operandNode][operandNode->getVectorIndex(operandOp)]->getResult(0); + } + operands.emplace_back(operand); + } + + rewriter.setInsertionPointAfterValue(lastValue(std::begin(operands), std::end(operands))); + auto mulOp = rewriter.create(op->getLoc(), vectorType, operands); + + vectorsByNode[node][vectorIndex] = mulOp; + return success(); } From f97c38fef2491ccf77cbe95a18c189fcf1c968d3 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 02:29:35 +0200 Subject: [PATCH 081/385] Better SLP graph conversion pass. --- .../SLP/SLPVectorizationPass.cpp | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 6949188c..556e4efa 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -142,17 +142,41 @@ void SLPVectorizationPass::runOnOperation() { NoFoldPatternRewriter rewriter(&getContext()); PatternApplicator applicator(frozenPatterns); applicator.applyDefaultCostModel(); + + // Marks operations that can be deleted. + // We delete them *after* SLP graph conversion to avoid running into NULL operands. + llvm::SmallPtrSet erasableOps; for (auto* node : postOrder(graph.get())) { node->dump(); vectorsByNode[node].resize_for_overwrite(node->numVectors()); - for (auto const& vector : node->getVectors()) { - auto result = applicator.matchAndRewrite(vector.front(), rewriter); + // Also traverse nodes in postorder in case they are multinodes. + auto it = node->getVectors().rbegin(); + while (it != node->getVectors().rend()) { + auto result = applicator.matchAndRewrite(it->front(), rewriter); if (result.failed()) { - vector.front()->emitOpError("SLP pattern application failed"); + it->front()->emitOpError("SLP pattern application failed"); + } + ++it; + } + + it = node->getVectors().rbegin(); + while (it != node->getVectors().rend()) { + for (auto* vectorOp : *it) { + if (std::all_of(std::begin(vectorOp->getUsers()), std::end(vectorOp->getUsers()), [&](auto* user) { + return parentMapping.count(user); + })) { + erasableOps.insert(vectorOp); + } } + ++it; } } + for (auto* op : erasableOps) { + op->dropAllUses(); + rewriter.eraseOp(op); + } + getOperation()->dump(); // If an SLP node failed to vectorize completely, fail the pass. @@ -163,6 +187,7 @@ void SLPVectorizationPass::runOnOperation() { signalPassFailure(); } } + } std::unique_ptr mlir::spn::createSLPVectorizationPass() { From 48ac0c4b840e84b415b79975eaf24fc33f19a3fb Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 04:35:24 +0200 Subject: [PATCH 082/385] Added vector extractions. --- .../SLP/SLPVectorizationPass.cpp | 57 +++++++++++++++---- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 556e4efa..f1c8ad85 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -11,6 +11,7 @@ #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Rewrite/PatternApplicator.h" #include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include @@ -144,14 +145,30 @@ void SLPVectorizationPass::runOnOperation() { applicator.applyDefaultCostModel(); // Marks operations that can be deleted. - // We delete them *after* SLP graph conversion to avoid running into NULL operands. - llvm::SmallPtrSet erasableOps; + // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. + llvm::SmallPtrSet erasableOps; for (auto* node : postOrder(graph.get())) { node->dump(); - vectorsByNode[node].resize_for_overwrite(node->numVectors()); - // Also traverse nodes in postorder in case they are multinodes. + + // Stores escaping uses for vector extractions that might be necessary later on. + llvm::DenseMap> escapingUses; + + // Also traverse nodes in postorder to properly handle multinodes. auto it = node->getVectors().rbegin(); while (it != node->getVectors().rend()) { + + // Gather escaping uses *now* because the conversion process adds more that *do not* need extractions. + for (size_t lane = 0; lane < it->size(); ++lane) { + auto* vectorOp = (*it)[lane]; + for (auto* user : vectorOp->getUsers()) { + if (!parentMapping.count(user)) { + escapingUses[vectorOp].insert(user); + } + } + } + + // Rewrite vector by applying any matching pattern. + vectorsByNode[node].resize(node->numVectors()); auto result = applicator.matchAndRewrite(it->front(), rewriter); if (result.failed()) { it->front()->emitOpError("SLP pattern application failed"); @@ -159,16 +176,34 @@ void SLPVectorizationPass::runOnOperation() { ++it; } - it = node->getVectors().rbegin(); - while (it != node->getVectors().rend()) { - for (auto* vectorOp : *it) { - if (std::all_of(std::begin(vectorOp->getUsers()), std::end(vectorOp->getUsers()), [&](auto* user) { - return parentMapping.count(user); - })) { + // Gather operations that can be erased and create vector extractions using those that need to stay. + for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { + auto const& vector = node->getVector(vectorIndex); + for (size_t lane = 0; lane < vector.size(); ++lane) { + auto* vectorOp = vector[lane]; + bool erasable = true; + for (auto& use : vectorOp->getUses()) { + auto* user = use.getOwner(); + if (!parentMapping.count(user)) { + erasable = false; + // Filters out operations that were created during the conversion process. + if (!escapingUses[vectorOp].contains(user)) { + continue; + } + auto const& source = vectorsByNode[node][vectorIndex]->getResult(0); + rewriter.setInsertionPoint(user); + auto extractOp = rewriter.create(vectorOp->getLoc(), source, lane); + auto const& oldOperand = user->getOperand(use.getOperandNumber()); + user->setOperand(use.getOperandNumber(), extractOp); + if (oldOperand.getUses().empty() && !oldOperand.isa()) { + erasableOps.insert(oldOperand.getDefiningOp()); + } + } + } + if (erasable) { erasableOps.insert(vectorOp); } } - ++it; } } From c554921c520cc69b1c26db9f99bcfb4e5cd3fa0e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 04:49:33 +0200 Subject: [PATCH 083/385] Deleted obsolete FunctionTransformer. --- .../SLP/SLPFunctionTransformer.h | 60 ----- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 - .../SLP/SLPFunctionTransformer.cpp | 234 ------------------ 3 files changed, 295 deletions(-) delete mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h delete mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h deleted file mode 100644 index b71f6793..00000000 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPFUNCTIONTRANSFORMER_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPFUNCTIONTRANSFORMER_H - -#include "mlir/IR/Operation.h" -#include "mlir/IR/Builders.h" -#include "LoSPNtoCPU/LoSPNtoCPUTypeConverter.h" -#include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" -#include "SLPNode.h" -#include - -namespace mlir { - namespace spn { - namespace low { - namespace slp { - - class SLPFunctionTransformer { - - public: - - SLPFunctionTransformer(std::unique_ptr&& graph, FuncOp function); - - void transform(); - - private: - - Value transform(SLPNode* node, size_t vectorIndex); - Value applyCreation(SLPNode* node, size_t vectorIndex, Operation* vectorOp); - - Value extractMemRefOperand(Operation* op); - Operation* broadcastFirstInsertRest(Operation* beforeOp, - Type const& vectorType, - SmallVector& elements); - Value getOrCreateConstant(unsigned index, bool asIndex = true); - - std::unique_ptr root; - FuncOp function; - - OpBuilder builder; - LoSPNVectorizationTypeConverter typeConverter; - - llvm::DenseMap, Value> memRefLoads; - llvm::DenseMap createdIndexConstants; - llvm::DenseMap createdUnsignedConstants; - - llvm::DenseMap vectorsDone; - llvm::DenseMap nodeInputsDone; - std::unordered_set vectorizedOps; - - }; - } - } - } -} - -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPFUNCTIONTRANSFORMER_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index a500b060..0d743cea 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -12,7 +12,6 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPass.cpp Vectorization/SLP/SLPVectorizationPatterns.cpp - Vectorization/SLP/SLPFunctionTransformer.cpp LoSPNtoCPUConversionPasses.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp deleted file mode 100644 index bd17ba46..00000000 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.cpp +++ /dev/null @@ -1,234 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#include "LoSPNtoCPU/Vectorization/SLP/SLPFunctionTransformer.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "LoSPN/LoSPNOps.h" -#include "mlir/Dialect/Vector/VectorOps.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" - -using namespace mlir; -using namespace mlir::spn; -using namespace mlir::spn::low; -using namespace mlir::spn::low::slp; - -SLPFunctionTransformer::SLPFunctionTransformer(std::unique_ptr&& graph, FuncOp function) : root{ - std::move(graph)}, function{function}, builder{function->getContext()}, typeConverter{ - static_cast(root->numLanes())} { - -} - -void SLPFunctionTransformer::transform() { - builder.setInsertionPoint(root->getOperation(0, 0)); - transform(root.get(), 0); -} - -Value SLPFunctionTransformer::transform(SLPNode* node, size_t vectorIndex) { - - vectorsDone[node]++; - - auto vectorType = typeConverter.convertType(node->getOperation(0, 0)->getResultTypes().front()); - - auto const& vectorOps = node->getVector(vectorIndex); - vectorizedOps.insert(vectorOps.begin(), vectorOps.end()); - auto const& firstOp = vectorOps.front(); - auto const& loc = firstOp->getLoc(); - - if (areBroadcastable(vectorOps)) { - auto value = firstOp->getResult(0); - auto const& insertionPoint = builder.saveInsertionPoint(); - builder.setInsertionPointAfter(firstOp); - auto broadcast = builder.create(loc, vectorType, value); - builder.restoreInsertionPoint(insertionPoint); - return applyCreation(node, vectorIndex, broadcast); - } - - if (areConsecutiveLoads(vectorOps)) { - auto batchRead = static_cast(firstOp); - auto const& base = batchRead.batchMem(); - auto const& batchIndex = batchRead.batchIndex(); - auto const& offset = getOrCreateConstant(batchRead.sampleIndex()); - - auto indices = ValueRange{batchIndex, offset}; - - return applyCreation(node, vectorIndex, builder.create(loc, vectorType, base, indices)); - } - - if (canBeGathered(vectorOps)) { - SmallVector elements; - for (auto const& op : vectorOps) { - elements.emplace_back(extractMemRefOperand(op)); - } - return applyCreation(node, vectorIndex, broadcastFirstInsertRest(firstOp, vectorType, elements)); - } - - if (node->isUniform() && firstOp->getNumOperands() > 0) { - - llvm::SmallVector operands; - - for (size_t i = 0; i < firstOp->getNumOperands(); ++i) { - - if (node->numOperands() == 0) { - size_t nextIndex = vectorsDone[node]; - if (nextIndex < node->numVectors()) { - operands.emplace_back(transform(node, nextIndex)); - } else { - SmallVector vectorElements; - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); - if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorOps[lane]); - } - vectorElements.emplace_back(nodeInput); - } - auto* vectorOp = broadcastFirstInsertRest(firstOp, vectorType, vectorElements); - operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); - } - } else { - - size_t initialOperandIndex = vectorIndex % node->numOperands(); - - size_t operandNodeIndex = initialOperandIndex; - SLPNode* operandNode = (i == 0) ? node : node->getOperand(operandNodeIndex); - bool useNodeInputs = false; - - size_t nextVectorIndex = vectorsDone[operandNode]; - while (nextVectorIndex >= operandNode->numVectors()) { - operandNode = node->getOperand(operandNodeIndex % node->numOperands()); - nextVectorIndex = vectorsDone[operandNode]; - // Check if we have looped through all operands already. - if (operandNodeIndex++ == initialOperandIndex + node->numOperands()) { - useNodeInputs = true; - break; - } - } - - if (useNodeInputs) { - SmallVector vectorElements; - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto nodeInput = node->getNodeInput(nodeInputsDone[node]++); - if (nodeInput.getType().isa()) { - nodeInput = extractMemRefOperand(vectorOps[lane]); - } - vectorElements.emplace_back(nodeInput); - } - auto* vectorOp = broadcastFirstInsertRest(firstOp, vectorType, vectorElements); - operands.emplace_back(applyCreation(node, vectorIndex, vectorOp)); - } else { - operands.emplace_back(transform(operandNode, nextVectorIndex)); - } - - } - } - - Operation* vectorOp; - - if (dyn_cast(firstOp)) { - vectorOp = builder.create(loc, operands); - } else if (dyn_cast(firstOp)) { - vectorOp = builder.create(loc, operands); - } else { - vectorOp = builder.insert(Operation::create(loc, - firstOp->getName(), - vectorType, - operands, - firstOp->getAttrs(), - firstOp->getSuccessors(), - firstOp->getNumRegions())); - } - return applyCreation(node, vectorIndex, vectorOp); - } - - llvm::SmallVector vectorElements; - for (auto op : vectorOps) { - vectorElements.emplace_back(op->getResult(0)); - } - return applyCreation(node, vectorIndex, broadcastFirstInsertRest(firstOp, vectorType, vectorElements)); -} - -Value SLPFunctionTransformer::applyCreation(SLPNode* node, size_t vectorIndex, Operation* createdVectorOp) { - - bool isBroadcast = dyn_cast(createdVectorOp); - - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto* operation = node->getOperation(lane, vectorIndex); - if (isBroadcast && operation == node->getOperation(0, vectorIndex)) { - continue; - } - bool createExtraction = false; - for (auto* use : operation->getUsers()) { - if (vectorizedOps.find(use) == std::end(vectorizedOps)) { - createExtraction = true; - break; - } - } - - if (createExtraction) { - - auto const& source = createdVectorOp->getResult(0); - auto const& position = getOrCreateConstant(lane, false); - - auto const& insertionPoint = builder.saveInsertionPoint(); - builder.setInsertionPointAfter(createdVectorOp); - auto element = builder.create(builder.getUnknownLoc(), source, position); - builder.restoreInsertionPoint(insertionPoint); - operation->replaceAllUsesWith(element); - - } - operation->dropAllUses(); - operation->remove(); - } - return createdVectorOp->getResult(0); -} - -Operation* SLPFunctionTransformer::broadcastFirstInsertRest(Operation* beforeOp, - Type const& vectorType, - SmallVector& elements) { - Operation* vectorOp = builder.create(beforeOp->getLoc(), vectorType, elements[0]); - for (size_t i = 1; i < elements.size(); ++i) { - auto const& position = getOrCreateConstant(i, false); - vectorOp = - builder.create(beforeOp->getLoc(), elements[i], vectorOp->getResult(0), position); - } - return vectorOp; -} - -Value SLPFunctionTransformer::getOrCreateConstant(unsigned index, bool asIndex) { - auto& createdConstants = asIndex ? createdIndexConstants : createdUnsignedConstants; - if (!createdConstants.count(index)) { - auto const& insertionPoint = builder.saveInsertionPoint(); - auto const& attribute = asIndex ? builder.getIndexAttr(index) : builder.getIntegerAttr(builder.getI32Type(), index); - builder.setInsertionPointToStart(&function.body().front()); - createdConstants[index] = builder.create(builder.getUnknownLoc(), attribute); - builder.restoreInsertionPoint(insertionPoint); - } - return createdConstants[index]; -} - -Value SLPFunctionTransformer::extractMemRefOperand(Operation* op) { - Value base; - ValueRange indices; - if (auto batchRead = dyn_cast(op)) { - base = batchRead.batchMem(); - auto const& batchIndex = batchRead.batchIndex(); - auto const& sampleIndex = batchRead.sampleIndex(); - auto const& memRefTuple = std::make_tuple(base, batchIndex, sampleIndex); - - if (memRefLoads.count(memRefTuple)) { - return memRefLoads[memRefTuple]; - } - - indices = {batchIndex, getOrCreateConstant(sampleIndex)}; - - } else { - assert(false); - } - - auto const& insertionPoint = builder.saveInsertionPoint(); - builder.setInsertionPoint(op); - auto load = builder.create(op->getLoc(), base, indices); - builder.restoreInsertionPoint(insertionPoint); - return load; -} \ No newline at end of file From 4797f07daf0b9cf483432fe7afa7e4e89f4ec404 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 04:49:45 +0200 Subject: [PATCH 084/385] Import cleanup. --- .../LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h | 1 - .../LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp | 4 ---- 2 files changed, 5 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 681e4487..25be2fa6 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -9,7 +9,6 @@ #include #include "mlir/IR/Operation.h" #include "mlir/Pass/Pass.h" -#include "SLPGraphBuilder.h" namespace mlir { namespace spn { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index f1c8ad85..b8f9cf56 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -10,10 +10,8 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Rewrite/PatternApplicator.h" -#include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include using namespace mlir::spn::low::slp; @@ -129,8 +127,6 @@ void SLPVectorizationPass::runOnOperation() { SLPGraphBuilder builder{3}; auto graph = builder.build(seeds.front()); // graph->dumpGraph(); - //SLPFunctionTransformer transformer(std::move(graph), function); - //transformer.transform(); // ==== // OwningRewritePatternList patterns; From a666fbb3057e5424f8f5ff207892f30f241d59ec Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 16:02:46 +0200 Subject: [PATCH 085/385] Added vectorization strategy option to toolchain. --- compiler/include/driver/GlobalOptions.h | 8 ++++++++ .../codegen/mlir/conversion/LoSPNtoCPUConversion.cpp | 8 +++++++- compiler/src/driver/option/GlobalOptions.cpp | 6 ++++++ compiler/src/driver/toolchain/CPUToolchain.cpp | 10 ++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/compiler/include/driver/GlobalOptions.h b/compiler/include/driver/GlobalOptions.h index c271be7d..bf5af770 100644 --- a/compiler/include/driver/GlobalOptions.h +++ b/compiler/include/driver/GlobalOptions.h @@ -39,6 +39,14 @@ namespace spnc { /// Flag to indicate whether the code generated for the CPU should be vectorized. extern Option cpuVectorize; + /// Available vectorization strategies + enum VectorizationStrategy { + BATCH, + SLP + }; + + extern EnumOpt vectorizationStrategy; + /// Available vector libraries enum VectorLibrary { SVML, diff --git a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp index a8ab8944..9b397505 100644 --- a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp +++ b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp @@ -6,6 +6,7 @@ #include "LoSPNtoCPUConversion.h" #include "LoSPNtoCPU/LoSPNtoCPUConversionPasses.h" #include "LoSPNtoCPU/Vectorization/VectorOptimizationPasses.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "mlir/Transforms/Passes.h" #include "mlir/Dialect/Tensor/Transforms/Passes.h" #include @@ -18,7 +19,12 @@ void spnc::LoSPNtoCPUConversion::initializePassPipeline(mlir::PassManager* pm, m if (useShuffle) { pm->addPass(mlir::spn::createReplaceGatherWithShufflePass()); } - pm->addPass(mlir::spn::createLoSPNNodeVectorizationPass()); + auto vectorizationStrategy = spnc::option::vectorizationStrategy.get(*this->config); + if(vectorizationStrategy == spnc::option::VectorizationStrategy::SLP) { + pm->addNestedPass(mlir::spn::createSLPVectorizationPass()); + } else if(vectorizationStrategy == spnc::option::VectorizationStrategy::BATCH) { + pm->addPass(mlir::spn::createLoSPNNodeVectorizationPass()); + } if (useShuffle) { // We need another run of the canonicalizer here to remove lo_spn.to_scalar // operations introduced by the replacement of gathers and that should diff --git a/compiler/src/driver/option/GlobalOptions.cpp b/compiler/src/driver/option/GlobalOptions.cpp index 33a8634d..c2618406 100644 --- a/compiler/src/driver/option/GlobalOptions.cpp +++ b/compiler/src/driver/option/GlobalOptions.cpp @@ -22,6 +22,12 @@ EnumOpt spnc::option::compilationTarget{"target", Option spnc::option::cpuVectorize{"cpu-vectorize", false}; +using spnc::option::VectorizationStrategy; +EnumOpt spnc::option::vectorizationStrategy{"vectorization-strategy", BATCH, + {EnumVal(BATCH, "BATCH"), + EnumVal(SLP, "SLP")}, + {depends(spnc::option::cpuVectorize, true)}}; + using spnc::option::VectorLibrary; EnumOpt spnc::option::vectorLibrary{"vector-library", NONE, {EnumVal(SVML, "SVML"), diff --git a/compiler/src/driver/toolchain/CPUToolchain.cpp b/compiler/src/driver/toolchain/CPUToolchain.cpp index 33e51688..c0a64edd 100644 --- a/compiler/src/driver/toolchain/CPUToolchain.cpp +++ b/compiler/src/driver/toolchain/CPUToolchain.cpp @@ -35,6 +35,16 @@ std::unique_ptr > CPUToolchain::constructJobFromFile(const std::stri auto diagHandler = setupDiagnosticHandler(ctx.get()); auto cpuVectorize = spnc::option::cpuVectorize.get(*config); SPDLOG_INFO("CPU Vectorization enabled: {}", cpuVectorize); + if(cpuVectorize) { + auto vectorizationStrategy = spnc::option::vectorizationStrategy.get(*config); + std::string strategyName; + switch (vectorizationStrategy) { + case spnc::option::VectorizationStrategy::BATCH: strategyName = "BATCH"; break; + case spnc::option::VectorizationStrategy::SLP: strategyName = "SLP"; break; + default:SPNC_FATAL_ERROR("Unknown vectorization strategy"); + } + SPDLOG_INFO("CPU Vectorization strategy: {}", strategyName); + } auto targetMachine = createTargetMachine(cpuVectorize); auto kernelInfo = std::make_shared(); kernelInfo->target = KernelTarget::CPU; From fec113632ab11207cf308be3152ec4ccf0ae6574 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 18 Apr 2021 17:15:42 +0200 Subject: [PATCH 086/385] Better constant vectorization patterns. --- .../SLP/SLPVectorizationPatterns.h | 34 +++++++------------ .../SLP/SLPVectorizationPass.cpp | 2 +- .../SLP/SLPVectorizationPatterns.cpp | 24 ++++++------- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 90741469..1b320a64 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -34,47 +34,39 @@ namespace mlir { llvm::DenseMap>& vectorsByNode; }; - struct VectorizeBatchRead : public SLPVectorizationPattern { + template + struct VectorizeConstantPattern : public SLPVectorizationPattern { + using SLPVectorizationPattern::SLPVectorizationPattern; + LogicalResult matchAndRewrite(ConstantSourceOp op, PatternRewriter& rewriter) const override; + }; + struct VectorizeBatchRead : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const override; }; - struct VectorizeMul : public SLPVectorizationPattern { - - using SLPVectorizationPattern::SLPVectorizationPattern; - - LogicalResult matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const override; - }; - struct VectorizeAdd : public SLPVectorizationPattern { - using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const override; }; - struct VectorizeLog : public SLPVectorizationPattern { + struct VectorizeMul : public SLPVectorizationPattern { + using SLPVectorizationPattern::SLPVectorizationPattern; + LogicalResult matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const override; + }; + struct VectorizeLog : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const override; }; - struct VectorizeConstant : public SLPVectorizationPattern { - - using SLPVectorizationPattern::SLPVectorizationPattern; - - LogicalResult matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const override; - }; - static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, llvm::DenseMap const& parentNodes, llvm::DenseMap>& vectorsByNode) { - patterns.insert(context, 2, parentNodes, vectorsByNode); + patterns.insert>(context, 2, parentNodes, vectorsByNode); + patterns.insert>(context, 2, parentNodes, vectorsByNode); patterns.insert(context, 2, parentNodes, vectorsByNode); patterns.insert(context, 2, parentNodes, vectorsByNode); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index b8f9cf56..1d5ed6c5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -167,7 +167,7 @@ void SLPVectorizationPass::runOnOperation() { vectorsByNode[node].resize(node->numVectors()); auto result = applicator.matchAndRewrite(it->front(), rewriter); if (result.failed()) { - it->front()->emitOpError("SLP pattern application failed"); + it->front()->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); } ++it; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 2d1f5b68..5113caff 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -9,10 +9,10 @@ #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "llvm/Support/FormatVariadic.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Math/IR/Math.h" #include "mlir/IR/BuiltinOps.h" -#include "mlir/Dialect/Vector/VectorOps.h" #include "LoSPN/LoSPNAttributes.h" using namespace mlir; @@ -23,13 +23,6 @@ using namespace mlir::spn::low::slp; // Helper functions in anonymous namespace. namespace { - void broadcastIdentical(Value const& source, Type const& vectorType, PatternRewriter& rewriter) { - auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointAfterValue(source); - rewriter.create(source.getLoc(), vectorType, source); - rewriter.restoreInsertionPoint(insertionPoint); - } - template Value broadcastFirstInsertRest(ValueIterator begin, ValueIterator end, @@ -109,9 +102,14 @@ namespace { } -LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter& rewriter) const { +template +LogicalResult VectorizeConstantPattern::matchAndRewrite(ConstantSourceOp op, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(op); + if(!op->template hasTrait()) { + rewriter.notifyMatchFailure(op, "Constant vectorization pattern cannot be applied to this operation"); + } + + auto* node = this->parentNodes.lookup(op); auto const& vectorIndex = node->getVectorIndex(op); auto const& vector = node->getVector(vectorIndex); @@ -120,13 +118,13 @@ LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter if (!node->isUniform()) { auto const& elements = results(std::begin(vector), std::end(vector)); auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); + this->vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); return success(); } DenseElementsAttr constAttr; - if (vectorType.getElementType().cast().getWidth() == 32) { + if (vectorType.getElementType().template cast().getWidth() == 32) { llvm::SmallVector array; for (int i = 0; i < vectorType.getNumElements(); ++i) { array.push_back(static_cast(vector[i]).value().convertToFloat()); @@ -143,7 +141,7 @@ LogicalResult VectorizeConstant::matchAndRewrite(SPNConstant op, PatternRewriter rewriter.setInsertionPointAfter(firstOperation(std::begin(vector), std::end(vector))); auto constValue = rewriter.create(op->getLoc(), constAttr); - vectorsByNode[node][vectorIndex] = constValue; + this->vectorsByNode[node][vectorIndex] = constValue; return success(); } From 4f4e00068288c2242dec2f38eef9ab6d4c44e8a5 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 19 Apr 2021 00:25:22 +0200 Subject: [PATCH 087/385] Added Gaussian vectorization, refactored utility methods. --- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 67 ++++- .../SLP/SLPVectorizationPatterns.h | 25 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 27 -- .../SLP/SLPVectorizationPass.cpp | 1 - .../SLP/SLPVectorizationPatterns.cpp | 265 ++++++++++-------- 5 files changed, 229 insertions(+), 156 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index a10ff29f..fbdbcdc1 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -16,8 +16,71 @@ namespace mlir { bool areConsecutiveLoads(low::SPNBatchRead load1, low::SPNBatchRead load2); bool areConsecutiveLoads(std::vector const& loads); - bool canBeGathered(std::vector const& loads); - bool areBroadcastable(std::vector const& ops); + + template + Operation* firstUser(OperationIterator begin, OperationIterator end) { + Operation* firstUser = nullptr; + while (begin != end) { + for (auto* user : (*begin)->getUsers()) { + if (!firstUser || user->isBeforeInBlock(firstUser)) { + firstUser = user; + } + } + ++begin; + } + return firstUser; + } + + template + Operation* firstOperation(OperationIterator begin, OperationIterator end) { + Operation* firstOp = *begin; + while (++begin != end) { + if (!firstOp->isBeforeInBlock(*begin)) { + firstOp = *begin; + } + } + return firstOp; + } + + template + Operation* lastOperation(OperationIterator begin, OperationIterator end) { + Operation* lastOp = *begin; + while (++begin != end) { + if (lastOp->isBeforeInBlock(*begin)) { + lastOp = *begin; + } + } + return lastOp; + } + + template + Value firstValue(ValueIterator begin, ValueIterator end) { + Value firstVal = *begin; + while (begin != end) { + if (begin->template isa()) { + return *begin; + } + if (!firstVal.getDefiningOp()->isBeforeInBlock(*begin)) { + firstVal = *begin; + } + ++begin; + } + return firstVal; + } + + template + Value lastValue(ValueIterator begin, ValueIterator end) { + Value lastVal = *begin; + while (++begin != end) { + if (begin->template isa()) { + continue; + } else if (lastVal.isa() + || lastVal.getDefiningOp()->isBeforeInBlock(begin->getDefiningOp())) { + lastVal = *begin; + } + } + return lastVal; + } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 1b320a64..419ff048 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -34,30 +34,29 @@ namespace mlir { llvm::DenseMap>& vectorsByNode; }; - template - struct VectorizeConstantPattern : public SLPVectorizationPattern { - using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(ConstantSourceOp op, PatternRewriter& rewriter) const override; + struct VectorizeConstant : public SLPVectorizationPattern { + using SLPVectorizationPattern::SLPVectorizationPattern; + LogicalResult matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const override; }; struct VectorizeBatchRead : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const override; }; struct VectorizeAdd : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const override; }; struct VectorizeMul : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const override; }; - struct VectorizeLog : public SLPVectorizationPattern { - using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const override; + struct VectorizeGaussian : public SLPVectorizationPattern { + using SLPVectorizationPattern::SLPVectorizationPattern; + LogicalResult matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const override; }; static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, @@ -65,10 +64,10 @@ namespace mlir { llvm::DenseMap const& parentNodes, llvm::DenseMap>& vectorsByNode) { - patterns.insert>(context, 2, parentNodes, vectorsByNode); - patterns.insert>(context, 2, parentNodes, vectorsByNode); + patterns.insert(context, 2, parentNodes, vectorsByNode); patterns.insert(context, 2, parentNodes, vectorsByNode); - patterns.insert(context, 2, parentNodes, vectorsByNode); + patterns.insert(context, 2, parentNodes, vectorsByNode); + patterns.insert(context, 2, parentNodes, vectorsByNode); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index c12d1f68..e122fc70 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -36,30 +36,3 @@ bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loa } return true; } - -bool mlir::spn::low::slp::canBeGathered(std::vector const& loads) { - auto firstLoad = dyn_cast(loads.front()); - if (!firstLoad) { - return false; - } - for (size_t i = 1; i < loads.size(); ++i) { - auto load = dyn_cast(loads[i]); - if (!load) { - return false; - } - if (firstLoad.batchMem() != load.batchMem()) { - return false; - } - if (firstLoad.batchIndex() != load.batchIndex()) { - return false; - } - } - return true; -} - -bool mlir::spn::low::slp::areBroadcastable(std::vector const& ops) { - return std::all_of(std::begin(ops), std::end(ops), [&](mlir::Operation* op) { - return OperationEquivalence::isEquivalentTo(op, ops.front()); - }); -} - diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 1d5ed6c5..02b65bb5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -144,7 +144,6 @@ void SLPVectorizationPass::runOnOperation() { // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. llvm::SmallPtrSet erasableOps; for (auto* node : postOrder(graph.get())) { - node->dump(); // Stores escaping uses for vector extractions that might be necessary later on. llvm::DenseMap> escapingUses; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 5113caff..bf795bc6 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -6,14 +6,9 @@ #include "mlir/IR/BlockAndValueMapping.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "llvm/Support/FormatVariadic.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/Vector/VectorOps.h" -#include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Math/IR/Math.h" -#include "mlir/IR/BuiltinOps.h" -#include "LoSPN/LoSPNAttributes.h" using namespace mlir; using namespace mlir::spn; @@ -28,21 +23,17 @@ namespace { ValueIterator end, VectorType const& vectorType, PatternRewriter& rewriter) { - auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointAfterValue(*begin); Value vectorOp = rewriter.create(begin->getLoc(), vectorType, *begin); unsigned position = 1; while (++begin != end) { - rewriter.setInsertionPointAfterValue(*begin); vectorOp = rewriter.create(begin->getLoc(), *begin, vectorOp, position++); } - rewriter.restoreInsertionPoint(insertionPoint); return vectorOp; } template - llvm::SmallVector results(OperationIterator begin, OperationIterator end) { - llvm::SmallVector elements; + SmallVector results(OperationIterator begin, OperationIterator end) { + SmallVector elements; while (begin != end) { elements.emplace_back((*begin)->getResult(0)); ++begin; @@ -50,70 +41,51 @@ namespace { return elements; } - template - Operation* firstOperation(OperationIterator begin, OperationIterator end) { - Operation* firstOp = *begin; - while (++begin != end) { - if (!firstOp->isBeforeInBlock(*begin)) { - firstOp = *begin; + template + DenseElementsAttr denseFloatingPoints(AttributeIterator begin, AttributeIterator end, VectorType const& vectorType) { + if (vectorType.getElementType().cast().getWidth() == 32) { + SmallVector array; + while (begin != end) { + array.push_back(begin->template cast().getValue().convertToFloat()); + ++begin; } + return DenseElementsAttr::get(vectorType, static_cast>(array)); } - return firstOp; - } - - template - Value firstValue(ValueIterator begin, ValueIterator end) { - Value firstVal = *begin; + SmallVector array; while (begin != end) { - if (begin->template isa()) { - return *begin; - } - if (!firstVal.getDefiningOp()->isBeforeInBlock(*begin)) { - firstVal = *begin; - } + array.push_back(begin->template cast().getValue().convertToDouble()); ++begin; } - return firstVal; + return DenseElementsAttr::get(vectorType, static_cast>(array)); } - template - Operation* lastOperation(OperationIterator begin, OperationIterator end) { - Operation* lastOp = *begin; - while (++begin != end) { - if (lastOp->isBeforeInBlock(*begin)) { - lastOp = *begin; + template + DenseElementsAttr denseFloatingPoints(T value, VectorType const& vectorType) { + if (vectorType.getElementType().cast().getWidth() == 32) { + SmallVector array; + for (unsigned i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(static_cast(value)); } + return DenseElementsAttr::get(vectorType, static_cast>(array)); } - return lastOp; - } - - template - Value lastValue(ValueIterator begin, ValueIterator end) { - Value lastVal = *begin; - while (++begin != end) { - if (begin->template isa()) { - continue; - } else if (lastVal.isa() || lastVal.getDefiningOp()->isBeforeInBlock(begin->getDefiningOp())) { - lastVal = *begin; - } + SmallVector array; + for (unsigned i = 0; i < vectorType.getNumElements(); ++i) { + array.push_back(value); } - return lastVal; + return DenseElementsAttr::get(vectorType, static_cast>(array)); } } -template -LogicalResult VectorizeConstantPattern::matchAndRewrite(ConstantSourceOp op, PatternRewriter& rewriter) const { - - if(!op->template hasTrait()) { - rewriter.notifyMatchFailure(op, "Constant vectorization pattern cannot be applied to this operation"); - } +LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { - auto* node = this->parentNodes.lookup(op); + auto* node = this->parentNodes.lookup(constantOp); - auto const& vectorIndex = node->getVectorIndex(op); + auto const& vectorIndex = node->getVectorIndex(constantOp); auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); + auto const& vectorType = VectorType::get(static_cast(vector.size()), constantOp.getType()); + + rewriter.setInsertionPoint(firstUser(std::begin(vector), std::end(vector))); if (!node->isUniform()) { auto const& elements = results(std::begin(vector), std::end(vector)); @@ -122,37 +94,28 @@ LogicalResult VectorizeConstantPattern::matchAndRewrite(Consta return success(); } - DenseElementsAttr constAttr; - - if (vectorType.getElementType().template cast().getWidth() == 32) { - llvm::SmallVector array; - for (int i = 0; i < vectorType.getNumElements(); ++i) { - array.push_back(static_cast(vector[i]).value().convertToFloat()); - } - constAttr = mlir::DenseElementsAttr::get(vectorType, static_cast>(array)); - } else { - llvm::SmallVector array; - for (int i = 0; i < vectorType.getNumElements(); ++i) { - array.push_back(static_cast(vector[i]).value().convertToDouble()); - } - constAttr = mlir::DenseElementsAttr::get(vectorType, static_cast>(array)); + SmallVector constants; + for (auto* vectorOp : vector) { + constants.emplace_back(static_cast(vectorOp).getValue()); } + auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); - rewriter.setInsertionPointAfter(firstOperation(std::begin(vector), std::end(vector))); - auto constValue = rewriter.create(op->getLoc(), constAttr); + auto constVector = rewriter.create(constantOp->getLoc(), elements); - this->vectorsByNode[node][vectorIndex] = constValue; + this->vectorsByNode[node][vectorIndex] = constVector; return success(); } -LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewriter& rewriter) const { +LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(op); + auto* node = parentNodes.lookup(batchReadOp); - auto const& vectorIndex = node->getVectorIndex(op); + auto const& vectorIndex = node->getVectorIndex(batchReadOp); auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); + auto const& vectorType = VectorType::get(static_cast(vector.size()), batchReadOp.getType()); + + rewriter.setInsertionPoint(firstUser(std::begin(vector), std::end(vector))); if (!node->isUniform() || !areConsecutiveLoads(vector)) { auto const& elements = results(std::begin(vector), std::end(vector)); @@ -160,12 +123,10 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewrit vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); } else { - rewriter.setInsertionPointAfter(firstOperation(std::begin(vector), std::end(vector))); - - auto memIndex = rewriter.create(op->getLoc(), rewriter.getIndexAttr(op.sampleIndex())); - ValueRange indices{op.batchIndex(), memIndex}; - - auto vectorLoad = rewriter.create(op->getLoc(), vectorType, op.batchMem(), indices); + auto batchReadLoc = batchReadOp->getLoc(); + auto memIndex = rewriter.create(batchReadLoc, rewriter.getIndexAttr(batchReadOp.sampleIndex())); + ValueRange indices{batchReadOp.batchIndex(), memIndex}; + auto vectorLoad = rewriter.create(batchReadLoc, vectorType, batchReadOp.batchMem(), indices); vectorsByNode[node][vectorIndex] = vectorLoad; } @@ -173,13 +134,15 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead op, PatternRewrit return success(); } -LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter) const { +LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(op); + auto* node = parentNodes.lookup(addOp); - auto const& vectorIndex = node->getVectorIndex(op); + auto const& vectorIndex = node->getVectorIndex(addOp); auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); + auto const& vectorType = VectorType::get(static_cast(vector.size()), addOp.getType()); + + rewriter.setInsertionPoint(firstOperation(std::begin(vector), std::end(vector))); if (!node->isUniform()) { auto const& elements = results(std::begin(vector), std::end(vector)); @@ -190,10 +153,10 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter llvm::SmallVector operands; - for (unsigned i = 0; i < op.getNumOperands(); ++i) { + for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { Value operand; if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { - Value vectorOperand = op.getOperand(i); + Value vectorOperand = addOp.getOperand(i); return vectorOperand.isa() || !parentNodes.count(vectorOperand.getDefiningOp()); })) { llvm::SmallVector elements; @@ -202,31 +165,32 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd op, PatternRewriter& rewriter } operand = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); } else { - auto* operandOp = op.getOperand(i).getDefiningOp(); + auto* operandOp = addOp.getOperand(i).getDefiningOp(); auto* operandNode = parentNodes.lookup(operandOp); if (!vectorsByNode.count(operandNode) || vectorsByNode[operandNode].size() != operandNode->numVectors()) { - return rewriter.notifyMatchFailure(op, "operation's LHS has not yet been (fully) vectorized"); + return rewriter.notifyMatchFailure(addOp, "operation's LHS has not yet been (fully) vectorized"); } operand = vectorsByNode[operandNode][operandNode->getVectorIndex(operandOp)]->getResult(0); } operands.emplace_back(operand); } - rewriter.setInsertionPointAfterValue(lastValue(std::begin(operands), std::end(operands))); - auto addOp = rewriter.create(op->getLoc(), vectorType, operands); + auto vectorAddOp = rewriter.create(addOp->getLoc(), vectorType, operands); - vectorsByNode[node][vectorIndex] = addOp; + vectorsByNode[node][vectorIndex] = vectorAddOp; return success(); } -LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter) const { +LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(op); + auto* node = parentNodes.lookup(mulOp); - auto const& vectorIndex = node->getVectorIndex(op); + auto const& vectorIndex = node->getVectorIndex(mulOp); auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); + auto const& vectorType = VectorType::get(static_cast(vector.size()), mulOp.getType()); + + rewriter.setInsertionPoint(firstOperation(std::begin(vector), std::end(vector))); if (!node->isUniform()) { auto const& elements = results(std::begin(vector), std::end(vector)); @@ -237,11 +201,10 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter llvm::SmallVector operands; - for (unsigned i = 0; i < op.getNumOperands(); ++i) { + for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { Value operand; if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { - vectorOp->dump(); - Value vectorOperand = op.getOperand(i); + Value vectorOperand = mulOp.getOperand(i); return vectorOperand.isa() || !parentNodes.count(vectorOperand.getDefiningOp()); })) { llvm::SmallVector elements; @@ -250,36 +213,112 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul op, PatternRewriter& rewriter } operand = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); } else { - auto* operandOp = op.getOperand(i).getDefiningOp(); + auto* operandOp = mulOp.getOperand(i).getDefiningOp(); auto* operandNode = parentNodes.lookup(operandOp); if (!vectorsByNode.count(operandNode) || vectorsByNode[operandNode].size() != operandNode->numVectors()) { - return rewriter.notifyMatchFailure(op, "operation's LHS has not yet been (fully) vectorized"); + return rewriter.notifyMatchFailure(mulOp, "operation's LHS has not yet been (fully) vectorized"); } operand = vectorsByNode[operandNode][operandNode->getVectorIndex(operandOp)]->getResult(0); } operands.emplace_back(operand); } - rewriter.setInsertionPointAfterValue(lastValue(std::begin(operands), std::end(operands))); - auto mulOp = rewriter.create(op->getLoc(), vectorType, operands); + auto vectorMulOp = rewriter.create(mulOp->getLoc(), vectorType, operands); - vectorsByNode[node][vectorIndex] = mulOp; + vectorsByNode[node][vectorIndex] = vectorMulOp; return success(); } -LogicalResult VectorizeLog::matchAndRewrite(SPNLog op, PatternRewriter& rewriter) const { +LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(op); + auto* node = parentNodes.lookup(gaussianOp); - auto const& vectorIndex = node->getVectorIndex(op); + auto const& vectorIndex = node->getVectorIndex(gaussianOp); auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), op.getType()); + auto const& vectorType = VectorType::get(static_cast(vector.size()), gaussianOp.getType()); + + rewriter.setInsertionPoint(firstOperation(std::begin(vector), std::end(vector))); if (!node->isUniform()) { - //vectorsByNode[node][vectorIndex] = broadcastFirstInsertRest(vector, vectorType, rewriter).getDefiningOp(); + auto const& elements = results(std::begin(vector), std::end(vector)); + auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); return success(); } + DenseElementsAttr coefficients; + if (vectorType.getElementType().cast().getWidth() == 32) { + SmallVector array; + for (auto* vectorOp : vector) { + float stddev = static_cast(vectorOp).stddev().convertToFloat(); + array.emplace_back(1.0f / (stddev * std::sqrt(2.0f * M_PIf32))); + } + coefficients = DenseElementsAttr::get(vectorType, static_cast>(array)); + } else { + SmallVector array; + for (auto* vectorOp : vector) { + double stddev = static_cast(vectorOp).stddev().convertToDouble(); + array.emplace_back(1.0 / (stddev * std::sqrt(2.0 * M_PI))); + } + coefficients = DenseElementsAttr::get(vectorType, static_cast>(array)); + } + + // Gather means in a dense floating point attribute vector. + SmallVector meanAttributes; + for (auto* vectorOp : vector) { + meanAttributes.emplace_back(static_cast(vectorOp).meanAttr()); + } + auto const& means = denseFloatingPoints(std::begin(meanAttributes), std::end(meanAttributes), vectorType); + + // Gather standard deviations in a dense floating point attribute vector. + SmallVector stddevAttributes; + for (auto* vectorOp : vector) { + stddevAttributes.emplace_back(static_cast(vectorOp).stddevAttr()); + } + auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); + + // Grab the input vector. + Value inputVector; + if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { + return static_cast(vectorOp).index().template isa(); + })) { + llvm::SmallVector elements; + for (auto* vectorOp : vector) { + elements.emplace_back(static_cast(vectorOp).index()); + } + inputVector = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); + } else { + auto* inputOp = gaussianOp.index().getDefiningOp(); + auto* inputNode = parentNodes.lookup(inputOp); + if (!vectorsByNode.count(inputNode) || vectorsByNode[inputNode].size() != inputNode->numVectors()) { + return rewriter.notifyMatchFailure(gaussianOp, "operation's input node has not yet been (fully) vectorized"); + } + inputVector = vectorsByNode[inputNode][inputNode->getVectorIndex(inputOp)]->getResult(0); + } + + // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) + auto const& gaussianLoc = gaussianOp->getLoc(); + + // (x - mean) + auto meanVector = rewriter.create(gaussianLoc, means); + Value gaussianVector = rewriter.create(gaussianLoc, vectorType, inputVector, meanVector); + + // ((x - mean) / stddev)^2 + auto stddevVector = rewriter.create(gaussianLoc, stddevs); + gaussianVector = rewriter.create(gaussianLoc, vectorType, gaussianVector, stddevVector); + gaussianVector = rewriter.create(gaussianLoc, vectorType, gaussianVector, gaussianVector); + + // e^(-0.5 * ((x - mean) / stddev)^2)) + auto halfVector = rewriter.create(gaussianLoc, denseFloatingPoints(-0.5, vectorType)); + gaussianVector = rewriter.create(gaussianLoc, vectorType, halfVector, gaussianVector); + gaussianVector = rewriter.create(gaussianLoc, gaussianVector); + + // e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) + auto coefficientVector = rewriter.create(gaussianLoc, coefficients); + gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); + + vectorsByNode[node][vectorIndex] = gaussianVector.getDefiningOp(); + return success(); } From 26d41806adc55bec9bfed513ee4c2dc56e960c1a Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 19 Apr 2021 22:01:35 +0200 Subject: [PATCH 088/385] SLP vectorization progress is now based on values instead of operations. --- .../Vectorization/SLP/SLPGraphBuilder.h | 10 +- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 82 +++-- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 11 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 115 +++--- .../Vectorization/SLP/SLPVectorizationPass.h | 11 +- .../SLP/SLPVectorizationPatterns.h | 36 +- .../Vectorization/SLP/SLPGraphBuilder.cpp | 189 ++++------ .../LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 11 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 231 ++++++------ .../Vectorization/SLP/SLPSeeding.cpp | 75 ++-- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 208 ++++++++++- .../SLP/SLPVectorizationPass.cpp | 193 +--------- .../SLP/SLPVectorizationPatterns.cpp | 343 +++++++++++------- 14 files changed, 798 insertions(+), 719 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index 0a26463b..c6251f47 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -22,19 +22,17 @@ namespace mlir { explicit SLPGraphBuilder(size_t maxLookAhead); - std::unique_ptr build(seed_t const& seed) const; + std::unique_ptr build(vector_t const& seed) const; private: - void buildGraph(std::vector const& operations, SLPNode* currentNode) const; + void buildGraph(NodeVector* vector, SLPNode* currentNode) const; void reorderOperands(SLPNode* multinode) const; - std::pair getBest(Mode const& mode, - Operation* last, - std::vector& candidates) const; + std::pair getBest(Mode const& mode, Value const& last, SmallVector& candidates) const; - int getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const; + int getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const; size_t const maxLookAhead; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h index 1d5d52a6..b89edad8 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h @@ -26,7 +26,7 @@ namespace mlir { FAILED }; - Mode modeFromOperation(Operation* operation); + Mode modeFromValue(Value const& value); } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 5b0d451e..20863768 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -13,56 +13,76 @@ namespace mlir { namespace low { namespace slp { + typedef SmallVector vector_t; + + class NodeVector { + + friend class SLPNode; + + public: + + explicit NodeVector(vector_t const& values); + explicit NodeVector(SmallVector const& operations); + + bool isUniform() const; + bool containsBlockArg() const; + bool contains(Value const& value) const; + + size_t numLanes() const; + + size_t numOperands() const; + NodeVector* getOperand(size_t index) const; + + vector_t::const_iterator begin() const; + vector_t::const_iterator end() const; + + Value const& getElement(size_t lane) const; + Value const& operator[](size_t lane) const; + + private: + vector_t values; + SmallVector> operands; + }; + class SLPNode { public: - explicit SLPNode(std::vector const& operations); + explicit SLPNode(vector_t const& values); + explicit SLPNode(SmallVector const& operations); - Operation* getOperation(size_t lane, size_t index) const; - void setOperation(size_t lane, size_t index, Operation* operation); + Value getValue(size_t lane, size_t index) const; + void setValue(size_t lane, size_t index, Value const& newValue); - bool isMultiNode() const; bool isUniform() const; - bool containsOperation(Operation* op) const; - bool areRootOfNode(std::vector const& operations) const; + bool contains(Value const& value) const; - size_t numLanes() const; + bool isRootOfNode(NodeVector const& vector) const; + size_t numLanes() const; size_t numVectors() const; - void addVector(std::vector const& vectorOps); - std::vector& getVector(size_t index); - size_t getVectorIndex(Operation* op) const; - std::vector& getVectorOf(Operation* op); - std::vector>& getVectors(); - SLPNode* addOperand(std::vector const& operations); + NodeVector* addVector(vector_t const& values, NodeVector* definingVector); + NodeVector* addVector(SmallVector const& operations); + NodeVector* getVector(size_t index) const; + + SLPNode* addOperand(vector_t const& values, NodeVector* definingVector); SLPNode* getOperand(size_t index) const; std::vector getOperands() const; size_t numOperands() const; - - void addNodeInput(Value const& value); - Value const& getNodeInput(size_t index) const; - - void dump() const; - void dumpGraph() const; - - friend bool operator==(SLPNode const& lhs, SLPNode const& rhs) { - return std::tie(lhs.vectors) == std::tie(rhs.vectors); +/* + bool operator==(SLPNode const& other) { + return std::tie(vectors) == std::tie(other.vectors); } - friend bool operator!=(SLPNode const& lhs, SLPNode const& rhs) { - return !(lhs == rhs); + bool operator!=(SLPNode const& other) { + return !(*this == other); } +*/ private: - - std::vector> vectors; - - std::vector> operandNodes; - - std::vector nodeInputs; - + SmallVector> vectors; + SmallVector> operandNodes; }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index ed5910b2..d9ce4783 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -7,6 +7,7 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H #include "mlir/IR/Operation.h" +#include "SLPNode.h" #include namespace mlir { @@ -14,8 +15,6 @@ namespace mlir { namespace low { namespace slp { - typedef std::vector seed_t; - enum SearchMode { /// DefBeforeUse, @@ -31,16 +30,10 @@ namespace mlir { explicit SeedAnalysis(Operation* rootOp); - std::map getOpDepths() const; - - std::vector getSeeds(size_t const& op, - std::map const& depthsOf, - SearchMode const& mode) const; + vector_t getSeed(unsigned width, SearchMode const& mode) const; private: - Operation* rootOp; - }; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index fbdbcdc1..166b3c4f 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -8,78 +8,105 @@ #include "mlir/IR/Operation.h" #include "LoSPN/LoSPNOps.h" +#include "SLPNode.h" namespace mlir { namespace spn { namespace low { namespace slp { - bool areConsecutiveLoads(low::SPNBatchRead load1, low::SPNBatchRead load2); - bool areConsecutiveLoads(std::vector const& loads); + void dumpOpTree(vector_t const& values); + void dumpSLPGraph(SLPNode const& root); + void dumpSLPNode(SLPNode const& node); + void dumpSLPNodeVector(NodeVector const& nodeVector); - template - Operation* firstUser(OperationIterator begin, OperationIterator end) { - Operation* firstUser = nullptr; + bool vectorizable(Operation* op); + bool vectorizable(Value const& value); + + bool isBeforeInBlock(Operation* lhs, Operation* rhs); + bool isBeforeInBlock(Value const& lhs, Value const& rhs); + + bool consecutiveLoads(Value const& lhs, Value const& rhs); + + template + bool vectorizable(ValueIterator begin, ValueIterator end) { + if (begin->template isa()) { + return false; + } + auto const& name = begin->getDefiningOp()->getName(); + ++begin; while (begin != end) { - for (auto* user : (*begin)->getUsers()) { - if (!firstUser || user->isBeforeInBlock(firstUser)) { - firstUser = user; - } + if (!vectorizable(*begin) || begin->getDefiningOp()->getName() != name) { + return false; } ++begin; } - return firstUser; + return true; } - template - Operation* firstOperation(OperationIterator begin, OperationIterator end) { - Operation* firstOp = *begin; - while (++begin != end) { - if (!firstOp->isBeforeInBlock(*begin)) { - firstOp = *begin; + template + bool commutative(ValueIterator begin, ValueIterator end) { + while (begin != end) { + if (begin->template isa() + || !begin->getDefiningOp()->template hasTrait()) { + return false; } + ++begin; } - return firstOp; + return true; } - template - Operation* lastOperation(OperationIterator begin, OperationIterator end) { - Operation* lastOp = *begin; - while (++begin != end) { - if (lastOp->isBeforeInBlock(*begin)) { - lastOp = *begin; + template + bool consecutiveLoads(ValueIterator begin, ValueIterator end) { + Value previous = *begin; + if (++begin == end || previous.isa() || !dyn_cast(previous.getDefiningOp())) { + return false; + } + while (begin != end) { + Value current = *begin; + if (!consecutiveLoads(previous, current)) { + return false; } + previous = current; + ++begin; } - return lastOp; + return true; } - template - Value firstValue(ValueIterator begin, ValueIterator end) { - Value firstVal = *begin; - while (begin != end) { - if (begin->template isa()) { - return *begin; - } - if (!firstVal.getDefiningOp()->isBeforeInBlock(*begin)) { - firstVal = *begin; + template + typename std::iterator_traits::value_type firstOccurrence(Iterator begin, Iterator end) { + typename std::iterator_traits::value_type first = *begin; + while (++begin != end) { + if (isBeforeInBlock(first, *begin)) { + first = *begin; } - ++begin; } - return firstVal; + return first; } - template - Value lastValue(ValueIterator begin, ValueIterator end) { - Value lastVal = *begin; + template + typename std::iterator_traits::value_type lastOccurrence(Iterator begin, Iterator end) { + typename std::iterator_traits::value_type first = *begin; while (++begin != end) { - if (begin->template isa()) { - continue; - } else if (lastVal.isa() - || lastVal.getDefiningOp()->isBeforeInBlock(begin->getDefiningOp())) { - lastVal = *begin; + if (!isBeforeInBlock(first, *begin)) { + first = *begin; + } + } + return first; + } + + template + Operation* firstUser(UsableIterator begin, UsableIterator end) { + Operation* firstUser = nullptr; + while (begin != end) { + for (auto* user : begin->getUsers()) { + if (!firstUser || user->isBeforeInBlock(firstUser)) { + firstUser = user; + } } + ++begin; } - return lastVal; + return firstUser; } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 25be2fa6..0b17c9b5 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -15,20 +15,21 @@ namespace mlir { namespace low { namespace slp { - struct SLPVectorizationPass : public PassWrapper> { + struct SLPVectorizationPass : public PassWrapper> { public: protected: - void runOnOperation() override; + void runOnOperation() + override; private: - }; - } + }; } - std::unique_ptr createSLPVectorizationPass(); } + std::unique_ptr createSLPVectorizationPass(); +} } #endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 419ff048..a8798e24 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -6,11 +6,15 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPATTERNS_H +#include + #include "SLPNode.h" #include "LoSPN/LoSPNDialect.h" #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/IR/PatternMatch.h" +#include "mlir/Rewrite/FrozenRewritePatternList.h" +#include "mlir/Rewrite/PatternApplicator.h" #include "llvm/Support/Debug.h" namespace mlir { @@ -18,20 +22,27 @@ namespace mlir { namespace low { namespace slp { + /// A custom PatternRewriter for rewriting SLP node vectors. + class SLPVectorPatternRewriter : public mlir::PatternRewriter { + public: + explicit SLPVectorPatternRewriter(mlir::MLIRContext* ctx); + LogicalResult rewrite(SLPNode* root); + }; + template class SLPVectorizationPattern : public OpRewritePattern { public: SLPVectorizationPattern(MLIRContext* context, PatternBenefit benefit, - llvm::DenseMap const& parentNodes, - llvm::DenseMap>& vectorsByNode) - : OpRewritePattern{ - context, benefit}, parentNodes{parentNodes}, vectorsByNode{vectorsByNode} {} + std::shared_ptr vector, + DenseMap& vectorizedOps) : OpRewritePattern{ + context, benefit}, vector{std::move(vector)}, vectorizedOps{vectorizedOps} {} protected: - llvm::DenseMap const& parentNodes; - llvm::DenseMap>& vectorsByNode; + /// The current vector being transformed. + std::shared_ptr vector; + llvm::DenseMap& vectorizedOps; }; struct VectorizeConstant : public SLPVectorizationPattern { @@ -61,13 +72,12 @@ namespace mlir { static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - llvm::DenseMap const& parentNodes, - llvm::DenseMap>& vectorsByNode) { - patterns.insert(context, 2, parentNodes, vectorsByNode); - patterns.insert(context, 2, parentNodes, vectorsByNode); - patterns.insert(context, 2, parentNodes, vectorsByNode); - patterns.insert(context, 2, parentNodes, vectorsByNode); + std::shared_ptr const& vector, + llvm::DenseMap& vectorizedOps) { + patterns.insert(context, 2, vector, vectorizedOps); + patterns.insert(context, 2, vector, vectorizedOps); + patterns.insert(context, 2, vector, vectorizedOps); + patterns.insert(context, 2, vector, vectorizedOps); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 1fdc8bd5..32c63368 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -4,11 +4,8 @@ // #include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "llvm/Support/Debug.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "LoSPN/LoSPNOps.h" -#include "LoSPN/LoSPNTraits.h" #include using namespace mlir; @@ -16,116 +13,100 @@ using namespace mlir::spn::low::slp; SLPGraphBuilder::SLPGraphBuilder(size_t maxLookAhead) : maxLookAhead{maxLookAhead} {} -std::unique_ptr SLPGraphBuilder::build(seed_t const& seed) const { +std::unique_ptr SLPGraphBuilder::build(vector_t const& seed) const { auto root = std::make_unique(SLPNode{seed}); - buildGraph(seed, root.get()); + buildGraph(root->getVector(0), root.get()); return root; } // Some helper functions in an anonymous namespace. namespace { - bool vectorizable(std::vector const& operations) { - for (size_t i = 0; i < operations.size(); ++i) { - auto* op = operations[i]; - if (!op->hasTrait()) { - return false; - } - if (op->getName() != operations.front()->getName()) { - return false; - } - if (op->getNumResults() != 1) { - return false; - } - // MLIR does not allow index types in vectors. - if (op->getResult(0).getType().isa()) { - return false; - } - } - return true; - } - - bool commutative(std::vector const& operations) { - return std::all_of(std::begin(operations), std::end(operations), [&](Operation* op) { - return op->hasTrait(); - }); - } - - bool escapesMultinode(Operation* op, SLPNode* currentNode) { + bool escapesMultinode(Value const& value, SLPNode* currentNode) { // TODO: determine if multinodes should stop building if an operation escapes it // or if simply disallowing reordering in this lane might be better - return std::any_of(std::begin(op->getUsers()), std::end(op->getUsers()), [&](auto* user) { - return !currentNode->containsOperation(user); + return std::any_of(std::begin(value.getUsers()), std::end(value.getUsers()), [&](auto* user) { + return !currentNode->contains(user->getResult(0)); }); } - std::vector getOperands(Operation* operation) { - std::vector operands; - operands.reserve(operation->getNumOperands()); - for (auto operand : operation->getOperands()) { - operands.emplace_back(operand.getDefiningOp()); + SmallVector getOperands(Value const& value) { + SmallVector operands; + operands.reserve(value.getDefiningOp()->getNumOperands()); + for (auto operand : value.getDefiningOp()->getOperands()) { + operands.emplace_back(operand); } return operands; } - std::vector> getOperands(std::vector const& operations) { - std::vector> allOperands; - allOperands.reserve(operations.size()); - for (auto* operation : operations) { - allOperands.emplace_back(getOperands(operation)); + SmallVector> getAllOperands(NodeVector* vector) { + SmallVector> allOperands; + allOperands.reserve(vector->numLanes()); + for (auto const& value : *vector) { + allOperands.emplace_back(getOperands(value)); } return allOperands; } - void sortByOpcode(std::vector& operations, Optional const& smallestOpcode) { - std::sort(std::begin(operations), std::end(operations), [&](Operation* lhs, Operation* rhs) { + void sortByOpcode(SmallVector& values, Optional const& smallestOpcode) { + std::sort(std::begin(values), std::end(values), [&](Value const& lhs, Value const& rhs) { + auto* lhsOp = lhs.getDefiningOp(); + auto* rhsOp = rhs.getDefiningOp(); + if (!lhsOp && !rhsOp) { + return lhs.cast().getArgNumber() < rhs.cast().getArgNumber(); + } else if (lhsOp && !rhsOp) { + return true; + } else if (!lhsOp && rhsOp) { + return false; + } if (smallestOpcode.hasValue()) { - if (lhs->getName() == smallestOpcode.getValue()) { - return rhs->getName() != smallestOpcode.getValue(); - } else if (rhs->getName() == smallestOpcode.getValue()) { + if (lhsOp->getName() == smallestOpcode.getValue()) { + return rhsOp->getName() != smallestOpcode.getValue(); + } else if (rhsOp->getName() == smallestOpcode.getValue()) { return false; } } - return lhs->getName().getStringRef() < rhs->getName().getStringRef(); + return lhsOp->getName().getStringRef() < rhsOp->getName().getStringRef(); }); } } // end namespace -void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPNode* currentNode) const { +void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const { // Stop growing graph - if (!vectorizable(operations)) { + if (!vectorizable(vector->begin(), vector->end())) { return; } - auto const& currentOpCode = operations.front()->getName(); + auto const& currentOpCode = vector->begin()->getDefiningOp()->getName(); + auto const& arity = vector->begin()->getDefiningOp()->getNumOperands(); // Recursion call to grow graph further // 1. Commutative - if (commutative(operations)) { + if (commutative(vector->begin(), vector->end())) { // A. Coarsening Mode - auto allOperands = getOperands(operations); + auto allOperands = getAllOperands(vector); for (auto& operands : allOperands) { sortByOpcode(operands, currentOpCode); } - for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operandOperations) { - return operandOperations[i]->getName() == currentOpCode && !escapesMultinode(operandOperations[i], currentNode); + for (size_t i = 0; i < arity; ++i) { + if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](SmallVector const& operands) { + return operands[i].getDefiningOp()->getName() == currentOpCode && !escapesMultinode(operands[i], currentNode); })) { - std::vector vectorOps; + vector_t vectorValues; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - vectorOps.emplace_back(allOperands[lane][i]); + vectorValues.emplace_back(allOperands[lane][i]); } - currentNode->addVector(vectorOps); - buildGraph(vectorOps, currentNode); + auto* newVector = currentNode->addVector(vectorValues, vector); + buildGraph(newVector, currentNode); } else { // TODO: here might be a good place to implement variable vector width - std::vector operandOperations; + vector_t operandValues; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - operandOperations.emplace_back(allOperands[lane][i]); + operandValues.emplace_back(allOperands[lane][i]); } - currentNode->addOperand(operandOperations); + currentNode->addOperand(operandValues, vector); } } // B. Normal Mode: Finished building multi-node - if (currentNode->isMultiNode() && currentNode->areRootOfNode(operations)) { + if (currentNode->isRootOfNode(*vector)) { reorderOperands(currentNode); for (auto* operandNode : currentNode->getOperands()) { buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); @@ -134,46 +115,33 @@ void SLPGraphBuilder::buildGraph(std::vector const& operations, SLPN } // 2. Non-Commutative else { - for (size_t i = 0; i < operations.front()->getNumOperands(); ++i) { - std::vector operands; - std::vector operandOperations; - bool usesBlockArguments = false; + for (size_t i = 0; i < arity; ++i) { + vector_t operandValues; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - auto operand = currentNode->getOperation(lane, 0)->getOperand(i); - operands.emplace_back(operand); - if (operand.isa()) { - usesBlockArguments = true; - } else { - operandOperations.emplace_back(operand.getDefiningOp()); - } - } - - if (usesBlockArguments || !vectorizable(operandOperations)) { - for (auto const& operand : operands) { - currentNode->addNodeInput(operand); - } - } else { - buildGraph(operandOperations, currentNode->addOperand(operandOperations)); + auto operand = currentNode->getValue(lane, 0).getDefiningOp()->getOperand(i); + operandValues.emplace_back(operand); } + auto* operandNode = currentNode->addOperand(operandValues, vector); + buildGraph(operandNode->getVector(0), operandNode); } } } void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { auto const& numOperands = multinode->numOperands(); - std::vector> finalOrder{multinode->numLanes()}; - std::vector> mode{multinode->numLanes()}; + SmallVector> finalOrder{multinode->numLanes()}; + SmallVector> mode{multinode->numLanes()}; // 1. Strip first lane for (size_t i = 0; i < numOperands; ++i) { - auto operation = multinode->getOperand(i)->getOperation(0, 0); - finalOrder[0].emplace_back(operation); - mode[0].emplace_back(modeFromOperation(operation)); + auto value = multinode->getOperand(i)->getValue(0, 0); + finalOrder[0].emplace_back(value); + mode[0].emplace_back(modeFromValue(value)); } // 2. For all other lanes, find best candidate for (size_t lane = 1; lane < multinode->numLanes(); ++lane) { - std::vector candidates; + SmallVector candidates; for (auto const& operand : multinode->getOperands()) { - candidates.emplace_back(operand->getOperation(lane, 0)); + candidates.emplace_back(operand->getValue(lane, 0)); } // Look for a matching candidate for (size_t i = 0; i < numOperands; ++i) { @@ -184,19 +152,19 @@ void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { mode[lane].emplace_back(FAILED); continue; } - auto* last = finalOrder[lane - 1][i]; + auto const& last = finalOrder[lane - 1][i]; auto const& bestResult = getBest(mode[lane - 1][i], last, candidates); // Update output finalOrder[lane].emplace_back(bestResult.first); // Detect SPLAT mode - if (i == 1 && OperationEquivalence::isEquivalentTo(bestResult.first, last)) { + if (i == 1 && bestResult.first == last) { mode[lane][i] = SPLAT; } else { mode[lane].emplace_back(bestResult.second); } } // Distribute remaining candidates in case we encountered a FAILED. - for (auto* candidate : candidates) { + for (auto const& candidate : candidates) { for (size_t i = 0; i < numOperands; ++i) { if (finalOrder[lane][i] == nullptr) { finalOrder[lane][i] = candidate; @@ -207,24 +175,24 @@ void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { } for (size_t operandIndex = 0; operandIndex < multinode->numOperands(); ++operandIndex) { for (size_t lane = 0; lane < multinode->numLanes(); ++lane) { - multinode->getOperand(operandIndex)->setOperation(lane, 0, finalOrder[lane][operandIndex]); + multinode->getOperand(operandIndex)->setValue(lane, 0, finalOrder[lane][operandIndex]); } } } -std::pair SLPGraphBuilder::getBest(Mode const& mode, - Operation* last, - std::vector& candidates) const { - Operation* best = nullptr; +std::pair SLPGraphBuilder::getBest(Mode const& mode, + Value const& last, + SmallVector& candidates) const { + Value best; Mode resultMode = mode; - std::vector bestCandidates; + SmallVector bestCandidates; if (mode == FAILED) { // Don't select now, let others choose first best = nullptr; } else if (mode == SPLAT) { // Look for other splat candidates for (auto& operand : candidates) { - if (OperationEquivalence::isEquivalentTo(operand, last)) { + if (operand == last) { best = operand; break; } @@ -234,12 +202,13 @@ std::pair SLPGraphBuilder::getBest(Mode const& mode, best = candidates.front(); for (auto& candidate : candidates) { if (mode == LOAD) { - auto load = dyn_cast(candidate); - if (load && areConsecutiveLoads(static_cast(last), load)) { + if (consecutiveLoads(last, candidate)) { + bestCandidates.emplace_back(candidate); + } + } else if (!last.isa() && !candidate.isa()) { + if (last.getDefiningOp()->getName() == candidate.getDefiningOp()->getName()) { bestCandidates.emplace_back(candidate); } - } else if (candidate->getName() == last->getName()) { - bestCandidates.emplace_back(candidate); } } // 1. If we have a trivial solution, use it @@ -284,13 +253,13 @@ std::pair SLPGraphBuilder::getBest(Mode const& mode, return {best, resultMode}; } -int SLPGraphBuilder::getLookAheadScore(Operation* last, Operation* candidate, size_t const& maxLevel) const { +int SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const { if (maxLevel == 0) { - if (last->getName() != candidate->getName()) { + if (last.getDefiningOp()->getName() != candidate.getDefiningOp()->getName()) { return 0; } - if (dyn_cast(last)) { - return areConsecutiveLoads(static_cast(last), static_cast(candidate)) ? 1 : 0; + if (last.getDefiningOp()) { + return consecutiveLoads(last, candidate) ? 1 : 0; } return 1; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp index 810b4207..85f8e427 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp @@ -7,12 +7,15 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPMode.h" using namespace mlir; -using namespace mlir::spn::low::slp; -Mode mlir::spn::low::slp::modeFromOperation(Operation* operation) { - if (operation->hasTrait()) { +mlir::spn::low::slp::Mode mlir::spn::low::slp::modeFromValue(Value const& value) { + if (value.isa()) { + return SPLAT; + } + auto* definingOp = value.getDefiningOp(); + if (definingOp->hasTrait()) { return CONST; - } else if (dyn_cast(operation)) { + } else if (dyn_cast(definingOp)) { return LOAD; } return OPCODE; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index e00921fa..d267d319 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -6,86 +6,146 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "llvm/Support/Debug.h" -#include using namespace mlir; using namespace mlir::spn; +using namespace mlir::spn::low; using namespace mlir::spn::low::slp; -SLPNode::SLPNode(std::vector const& operations) { +// === NodeVector === + +NodeVector::NodeVector(vector_t const& values) { + assert(!values.empty()); + for (auto const& value : values) { + assert(value.isa() || value.getDefiningOp()->hasTrait()); + this->values.emplace_back(value); + } +} + +NodeVector::NodeVector(SmallVector const& operations) { assert(!operations.empty()); - vectors.emplace_back(operations); + for (auto* op : operations) { + assert(op->hasTrait()); + values.emplace_back(op->getResult(0)); + } } -Operation* SLPNode::getOperation(size_t lane, size_t index) const { - assert(lane <= numLanes() && index <= numVectors()); - return vectors[index][lane]; +bool NodeVector::isUniform() const { + return std::all_of(std::begin(values), std::end(values), [&](Value const& value) { + if (value.isa()) { + return false; + } + return value.getDefiningOp()->getName() == values.front().getDefiningOp()->getName(); + }); +} + +bool NodeVector::containsBlockArg() const { + return std::any_of(std::begin(values), std::end(values), [&](Value const& value) { + return value.isa(); + }); +} + +bool NodeVector::contains(Value const& value) const { + return std::find(std::begin(values), std::end(values), value) != std::end(values); +} + +size_t NodeVector::numLanes() const { + return values.size(); +} + +size_t NodeVector::numOperands() const { + return operands.size(); +} + +NodeVector* NodeVector::getOperand(size_t index) const { + assert(index < operands.size()); + return operands[index].get(); +} + +vector_t::const_iterator NodeVector::begin() const { + return values.begin(); +} + +vector_t::const_iterator NodeVector::end() const { + return values.end(); +} + +Value const& NodeVector::getElement(size_t lane) const { + return this->operator[](lane); +} + +Value const& NodeVector::operator[](size_t lane) const { + assert(lane < numLanes()); + return values[lane]; +} + +// === SLPNode === + +SLPNode::SLPNode(SmallVector const& operations) { + addVector(operations); } -void SLPNode::setOperation(size_t lane, size_t index, Operation* operation) { +SLPNode::SLPNode(vector_t const& values) { + addVector(values, nullptr); +} + +Value SLPNode::getValue(size_t lane, size_t index) const { assert(lane <= numLanes() && index <= numVectors()); - vectors[index][lane] = operation; + return vectors[index]->values[lane]; } -bool SLPNode::isMultiNode() const { - return numVectors() > 1; +void SLPNode::setValue(size_t lane, size_t index, Value const& newValue) { + assert(lane <= numLanes() && index <= numVectors()); + vectors[index]->values[lane] = newValue; } bool SLPNode::isUniform() const { - return std::all_of(std::begin(vectors), std::end(vectors), [&](auto const& operations) { - return operations[0]->getName() == vectors[0][0]->getName(); + return std::all_of(std::begin(vectors), std::end(vectors), [&](auto const& nodeVector) { + return nodeVector->isUniform(); }); } -bool SLPNode::containsOperation(Operation* op) const { - return std::any_of(std::begin(vectors), std::end(vectors), [&](auto const& vectorOps) { - return std::find(std::begin(vectorOps), std::end(vectorOps), op) != std::end(vectorOps); +bool SLPNode::contains(Value const& value) const { + return std::any_of(std::begin(vectors), std::end(vectors), [&](auto const& nodeVector) { + return nodeVector->contains(value); }); } -bool SLPNode::areRootOfNode(std::vector const& operations) const { - return vectors[0] == operations; +bool SLPNode::isRootOfNode(NodeVector const& vector) const { + return vectors[0]->values == vector.values; } size_t SLPNode::numLanes() const { - return vectors[0].size(); + return vectors[0]->numLanes(); } size_t SLPNode::numVectors() const { return vectors.size(); } -void SLPNode::addVector(std::vector const& vectorOps) { - assert(vectorOps.size() == numLanes()); - vectors.emplace_back(vectorOps); -} - -std::vector& SLPNode::getVector(size_t index) { - assert(index <= numVectors()); - return vectors[index]; -} - -size_t SLPNode::getVectorIndex(Operation* op) const { - for (size_t i = 0; i < vectors.size(); ++i) { - if (std::find(std::begin(vectors[i]), std::end(vectors[i]), op) != std::end(vectors[i])) { - return i; - } +NodeVector* SLPNode::addVector(vector_t const& values, NodeVector* definingVector) { + auto* newVector = vectors.emplace_back(std::make_shared(values)).get(); + if (definingVector) { + definingVector->operands.emplace_back(newVector); } - assert(false && "node does not contain the given operation"); + return newVector; } -std::vector& SLPNode::getVectorOf(Operation* op) { - return vectors[getVectorIndex(op)]; +NodeVector* SLPNode::addVector(SmallVector const& operations) { + return vectors.emplace_back(std::make_shared(operations)).get(); } -std::vector>& SLPNode::getVectors() { - return vectors; +NodeVector* SLPNode::getVector(size_t index) const { + assert(index <= numVectors()); + return vectors[index].get(); } -SLPNode* SLPNode::addOperand(std::vector const& operations) { - operandNodes.emplace_back(std::make_unique(operations)); - return operandNodes.back().get(); +SLPNode* SLPNode::addOperand(vector_t const& values, NodeVector* definingVector) { + auto* operandNode = operandNodes.emplace_back(std::make_unique(values)).get(); + if (definingVector) { + definingVector->operands.emplace_back(operandNode->vectors.front()); + } + return operandNode; } SLPNode* SLPNode::getOperand(size_t index) const { @@ -105,90 +165,3 @@ std::vector SLPNode::getOperands() const { size_t SLPNode::numOperands() const { return operandNodes.size(); } - -void SLPNode::addNodeInput(Value const& value) { - nodeInputs.emplace_back(value); -} - -Value const& SLPNode::getNodeInput(size_t index) const { - return nodeInputs[index]; -} - -void SLPNode::dump() const { - for (size_t i = numVectors(); i-- > 0;) { - for (size_t lane = 0; lane < numLanes(); ++lane) { - llvm::dbgs() << *getOperation(lane, i) << "(" << getOperation(lane, i) << ")"; - if (lane < numLanes() - 1) { - llvm::dbgs() << "\t|\t"; - } - } - llvm::dbgs() << "\n"; - } -} - -// Helper functions in an anonymous namespace. -namespace { - void dumpBlockArgOrDefiningAddress(Value const& val) { - if (auto* definingOp = val.getDefiningOp()) { - llvm::dbgs() << definingOp; - } else { - llvm::dbgs() << "block arg #" << val.cast().getArgNumber(); - } - } -} - -void SLPNode::dumpGraph() const { - - llvm::dbgs() << "digraph debug_graph {\n"; - llvm::dbgs() << "rankdir = BT;\n"; - llvm::dbgs() << "node[shape=box];\n"; - - std::queue worklist; - worklist.emplace(this); - - while (!worklist.empty()) { - auto const* node = worklist.front(); - worklist.pop(); - - llvm::dbgs() << "node_" << node << "[label=<\n"; - llvm::dbgs() << "\t\n"; - for (size_t i = node->numVectors(); i-- > 0;) { - llvm::dbgs() << "\t\t\n"; - for (size_t lane = 0; lane < node->numLanes(); ++lane) { - auto* operation = node->getOperation(lane, i); - llvm::dbgs() << "\t\t\t"; - if (lane < node->numLanes() - 1) { - llvm::dbgs() << ""; - } - llvm::dbgs() << "\n"; - } - llvm::dbgs() << "\t\t\n"; - } - llvm::dbgs() << "\t
"; - llvm::dbgs() << "" << operation->getName() << ""; - // --- Additional operation information --- - llvm::dbgs() << "
"; - llvm::dbgs() << "(" << operation << ")"; - if (auto constOp = dyn_cast(operation)) { - llvm::dbgs() << "
value: " << constOp.getValue(); - } else if (auto lowConstOp = dyn_cast(operation)) { - llvm::dbgs() << "
value: " << lowConstOp.value().convertToDouble(); - } else if (auto readOp = dyn_cast(operation)) { - llvm::dbgs() << "
mem: "; - dumpBlockArgOrDefiningAddress(readOp.batchMem()); - llvm::dbgs() << "
batch: "; - dumpBlockArgOrDefiningAddress(readOp.batchIndex()); - llvm::dbgs() << "
sample: " << readOp.sampleIndex(); - } - llvm::dbgs() << "
"; - // --- ================================ --- - llvm::dbgs() << "
\n"; - llvm::dbgs() << ">];\n"; - - for (auto const& operand : node->getOperands()) { - llvm::dbgs() << "node_" << node << "->" << "node_" << operand << ";\n"; - worklist.emplace(operand); - } - } - llvm::dbgs() << "}\n"; -} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 6c685517..e03f5f12 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -4,58 +4,61 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" -#include "llvm/ADT/StringMap.h" -#include "mlir/Dialect/Traits.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" using namespace mlir; using namespace mlir::spn::low::slp; SeedAnalysis::SeedAnalysis(Operation* rootOp) : rootOp{rootOp} {} -std::map SeedAnalysis::getOpDepths() const { - - std::map opDepths; - - rootOp->walk([&](Operation* op) { - if (!opDepths.count(op)) { - opDepths[op] = 0; - } - for (auto* use : op->getUsers()) { - if (!opDepths.count(use) || opDepths[op] + 1 > opDepths[use]) { - opDepths[use] = opDepths[op] + 1; +// Helper functions in anonymous namespace. +namespace { + DenseMap getOpDepths(Operation* rootOp) { + DenseMap opDepths; + rootOp->walk([&](Operation* op) { + if (!vectorizable(op)) { + return; } - } - }); - - return opDepths; + auto const& value = op->getResult(0); + if (!opDepths.count(value)) { + opDepths[value] = 0; + } + for (auto const& use : op->getUses()) { + if (!opDepths.count(use.get()) || opDepths[value] + 1 > opDepths[use.get()]) { + opDepths[use.get()] = opDepths[value] + 1; + } + } + }); + return opDepths; + } } -std::vector SeedAnalysis::getSeeds(size_t const& width, - std::map const& depthsOf, - SearchMode const& mode) const { +vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { - llvm::StringMap> seedsByOpName; + llvm::StringMap> seedsByOpName; + auto const& opDepths = getOpDepths(rootOp); - rootOp->walk([&](Operation* op) { - auto depth = depthsOf.at(op); - if (!op->hasTrait() || depth < log2(width)) { - return; + for (auto const& entry : opDepths) { + auto const& value = entry.first; + auto const& depth = entry.second; + if (depth < log2(width)) { + continue; } bool needsNewSeed = true; - for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { - if (seed.size() < width && depthsOf.at(seed.front()) == depth) { - seed.emplace_back(op); + for (auto& seed : seedsByOpName[value.getDefiningOp()->getName().getStringRef()]) { + if (seed.size() < width && opDepths.lookup(seed.front()) == depth) { + seed.emplace_back(entry.first); needsNewSeed = false; break; } } if (needsNewSeed) { - seed_t seed{op}; - seedsByOpName[op->getName().getStringRef()].emplace_back(seed); + vector_t seed{value}; + seedsByOpName[value.getDefiningOp()->getName().getStringRef()].emplace_back(seed); } - }); + } - std::vector seeds; + SmallVector seeds; // Flatten the map that maps opcode to seeds. for (auto const& entry : seedsByOpName) { for (auto const& seed : entry.second) { @@ -67,16 +70,16 @@ std::vector SeedAnalysis::getSeeds(size_t const& width, } // Sort the seeds such that either the seeds closest to the beginning of the function come first (DefBeforeUse), // or those closest to the return statement (UseBeforeDef). - std::sort(seeds.begin(), seeds.end(), [&](seed_t const& seed1, seed_t const& seed2) { + std::sort(seeds.begin(), seeds.end(), [&](auto const& seed1, auto const& seed2) { if (mode == DefBeforeUse) { - return depthsOf.at(seed1.front()) < depthsOf.at(seed2.front()); + return opDepths.lookup(seed1.front()) < opDepths.lookup(seed2.front()); } else if (mode == UseBeforeDef) { - return depthsOf.at(seed1.front()) > depthsOf.at(seed2.front()); + return opDepths.lookup(seed1.front()) > opDepths.lookup(seed2.front()); } else { // Unused so far. assert(false); } }); - return seeds; + return seeds.front(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index e122fc70..a3202ffd 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -4,35 +4,211 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "llvm/ADT/SmallPtrSet.h" +#include +#include using namespace mlir; -bool mlir::spn::low::slp::areConsecutiveLoads(low::SPNBatchRead load1, low::SPNBatchRead load2) { - if (load1 == load2) { +bool mlir::spn::low::slp::vectorizable(Operation* op) { + // (MLIR does not allow index types in vectors) + return op->hasTrait() && op->hasTrait() + && !op->getResult(0).getType().isa(); +} + +bool mlir::spn::low::slp::vectorizable(Value const& value) { + // Block arguments don't have defining ops (they can still be put in a vector by other means). + if (value.isa()) { + return false; + } + return vectorizable(value.getDefiningOp()); +} + +bool mlir::spn::low::slp::isBeforeInBlock(Operation* lhs, Operation* rhs) { + return lhs->isBeforeInBlock(rhs); +} + +bool mlir::spn::low::slp::isBeforeInBlock(Value const& lhs, Value const& rhs) { + if (lhs.isa()) { + return !rhs.isa(); + } else if (rhs.isa()) { + return false; + } + return lhs.getDefiningOp()->isBeforeInBlock(rhs.getDefiningOp()); +} + +bool mlir::spn::low::slp::consecutiveLoads(Value const& lhs, Value const& rhs) { + if (lhs == rhs || lhs.isa() || rhs.isa()) { return false; } - if (load1.batchMem() != load2.batchMem()) { + auto lhsLoad = dyn_cast(lhs.getDefiningOp()); + auto rhsLoad = dyn_cast(rhs.getDefiningOp()); + if (!lhsLoad || !rhsLoad) { return false; } - if (load1.batchIndex() != load2.batchIndex()) { + if (lhsLoad.batchMem() != rhsLoad.batchMem()) { return false; } - return load1.sampleIndex() + 1 == load2.sampleIndex(); + if (lhsLoad.batchIndex() != rhsLoad.batchIndex()) { + return false; + } + if (lhsLoad.sampleIndex() + 1 != rhsLoad.sampleIndex()) { + return false; + } + return true; +} + +void mlir::spn::low::slp::dumpSLPNode(mlir::spn::low::slp::SLPNode const& node) { + for (size_t i = node.numVectors(); i-- > 0;) { + dumpSLPNodeVector(*node.getVector(i)); + llvm::dbgs() << "\n"; + } } -bool mlir::spn::low::slp::areConsecutiveLoads(std::vector const& loads) { - for (size_t i = 0; i < loads.size() - 1; ++i) { - auto loadOp1 = dyn_cast(loads[i]); - if (!loadOp1) { - return false; +void mlir::spn::low::slp::dumpSLPNodeVector(const mlir::spn::low::slp::NodeVector& nodeVector) { + for (size_t lane = 0; lane < nodeVector.numLanes(); ++lane) { + llvm::dbgs() << nodeVector[lane]; + if (!nodeVector[lane].isa()) { + llvm::dbgs() << "(" << nodeVector[lane].getDefiningOp() << ")"; } - auto loadOp2 = dyn_cast(loads[i + 1]); - if (!loadOp2) { - return false; + if (lane < nodeVector.numLanes() - 1) { + llvm::dbgs() << "\t|\t"; } - if (!areConsecutiveLoads(loadOp1, loadOp2)) { - return false; + } +} + +// Helper functions in an anonymous namespace. +namespace { + void dumpBlockArgOrDefiningAddress(Value const& val) { + if (auto* definingOp = val.getDefiningOp()) { + llvm::dbgs() << definingOp; + } else { + llvm::dbgs() << "block arg #" << val.cast().getArgNumber(); } } - return true; + void dumpBlockArgOrDefiningOpName(Value const& val) { + if (auto* definingOp = val.getDefiningOp()) { + llvm::dbgs() << definingOp->getName(); + } else { + llvm::dbgs() << "block arg #" << val.cast().getArgNumber(); + } + } +} + +void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { + DenseMap nodes; + SmallVector> edges; + + std::stack worklist; + for (auto const& value : values) { + worklist.push(value); + } + + while (!worklist.empty()) { + auto value = worklist.top(); + worklist.pop(); + if (nodes.count(value)) { + continue; + } + nodes[value] = nodes.size(); + if (auto* definingOp = value.getDefiningOp()) { + for (size_t i = 0; i < definingOp->getNumOperands(); ++i) { + auto const& operand = definingOp->getOperand(i); + edges.emplace_back(std::make_tuple(value, operand, i)); + worklist.push(operand); + } + } + } + + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + for (auto const& entry : nodes) { + auto const& value = entry.first; + auto const& id = entry.second; + llvm::dbgs() << "node_" << id << "[label=\""; + if (auto* definingOp = value.getDefiningOp()) { + llvm::dbgs() << definingOp->getName().getStringRef() << "\\n" << definingOp; + if (auto constantOp = dyn_cast(definingOp)) { + if (constantOp.value().getType().isIntOrIndex()) { + llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); + } else if (constantOp.value().getType().isIntOrFloat()) { + llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); + } + } else if (auto batchReadOp = dyn_cast(definingOp)) { + llvm::dbgs() << "\\nbatch mem: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); + llvm::dbgs() << "\\nbatch index: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); + llvm::dbgs() << "\\nsample index: " << batchReadOp.sampleIndex(); + } + } else { + dumpBlockArgOrDefiningAddress(value); + } + llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; + } + for (auto const& edge : edges) { + llvm::dbgs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" + << std::to_string(std::get<2>(edge)) << "\"];\n"; + } + llvm::dbgs() << "}\n"; +} + +void mlir::spn::low::slp::dumpSLPGraph(SLPNode const& root) { + + llvm::dbgs() << "digraph debug_graph {\n"; + llvm::dbgs() << "rankdir = BT;\n"; + llvm::dbgs() << "node[shape=box];\n"; + + std::queue worklist; + worklist.emplace(&root); + + while (!worklist.empty()) { + auto const* node = worklist.front(); + worklist.pop(); + + llvm::dbgs() << "node_" << node << "[label=<\n"; + llvm::dbgs() << "\t\n"; + for (size_t i = node->numVectors(); i-- > 0;) { + llvm::dbgs() << "\t\t\n"; + for (size_t lane = 0; lane < node->numLanes(); ++lane) { + auto value = node->getValue(lane, i); + llvm::dbgs() << "\t\t\t"; + if (lane < node->numLanes() - 1) { + llvm::dbgs() << ""; + } + llvm::dbgs() << "\n"; + } + llvm::dbgs() << "\t\t\n"; + } + llvm::dbgs() << "\t
"; + llvm::dbgs() << ""; + dumpBlockArgOrDefiningOpName(value); + llvm::dbgs() << ""; + // --- Additional operation information --- + if (auto* definingOp = value.getDefiningOp()) { + llvm::dbgs() << "
"; + llvm::dbgs() << "(" << definingOp << ")"; + if (auto constOp = dyn_cast(definingOp)) { + llvm::dbgs() << "
value: " << constOp.getValue(); + } else if (auto lowConstOp = dyn_cast(definingOp)) { + llvm::dbgs() << "
value: " << lowConstOp.value().convertToDouble(); + } else if (auto readOp = dyn_cast(definingOp)) { + llvm::dbgs() << "
mem: "; + dumpBlockArgOrDefiningAddress(readOp.batchMem()); + llvm::dbgs() << "
batch: "; + dumpBlockArgOrDefiningAddress(readOp.batchIndex()); + llvm::dbgs() << "
sample: " << readOp.sampleIndex(); + } + llvm::dbgs() << "
"; + } + // --- ================================ --- + llvm::dbgs() << "
\n"; + llvm::dbgs() << ">];\n"; + + for (auto const& operand : node->getOperands()) { + llvm::dbgs() << "node_" << node << "->" << "node_" << operand << ";\n"; + worklist.emplace(operand); + } + } + llvm::dbgs() << "}\n"; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 02b65bb5..0909780f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -10,104 +10,9 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" -#include "mlir/Dialect/Vector/VectorOps.h" -#include "mlir/Rewrite/PatternApplicator.h" -#include using namespace mlir::spn::low::slp; -// Anonymous namespace for helper functions. -namespace { - - /// For debugging purposes. - void printSeedTree(std::vector const& operations) { - std::vector nodes; - std::vector> edges; - - std::stack worklist; - for (auto& op : operations) { - worklist.push(op); - } - - while (!worklist.empty()) { - - auto op = worklist.top(); - worklist.pop(); - - if (std::find(std::begin(nodes), std::end(nodes), op) == nodes.end()) { - nodes.emplace_back(op); - for (size_t i = 0; i < op->getNumOperands(); ++i) { - auto const& operand = op->getOperand(i); - if (operand.getDefiningOp() != nullptr) { - edges.emplace_back(std::make_tuple(op, operand.getDefiningOp(), i)); - worklist.push(operand.getDefiningOp()); - } - } - } - } - - llvm::dbgs() << "digraph debug_graph {\n"; - llvm::dbgs() << "rankdir = BT;\n"; - llvm::dbgs() << "node[shape=box];\n"; - for (auto& op : nodes) { - llvm::dbgs() << "node_" << op << "[label=\"" << op->getName().getStringRef() << "\\n" << op; - if (auto constantOp = llvm::dyn_cast(op)) { - if (constantOp.value().getType().isIntOrIndex()) { - llvm::dbgs() << "\\nvalue: " << std::to_string(constantOp.value().dyn_cast().getInt()); - } else if (constantOp.value().getType().isIntOrFloat()) { - llvm::dbgs() << "\\nvalue: " - << std::to_string(constantOp.value().dyn_cast().getValueAsDouble()); - } - } else if (auto batchReadOp = llvm::dyn_cast(op)) { - llvm::dbgs() << "\\nbatch mem: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); - llvm::dbgs() << "\\nbatch index: " << batchReadOp.batchMem().dyn_cast().getArgNumber(); - llvm::dbgs() << "\\nsample index: " << batchReadOp.sampleIndex(); - } - llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; - } - for (auto& edge : edges) { - llvm::dbgs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" - << std::to_string(std::get<2>(edge)) << "\"];\n"; - } - llvm::dbgs() << "}\n"; - } - - llvm::DenseMap computeParentNodesMapping(SLPNode* root) { - llvm::DenseMap parentMapping; - std::queue worklist; - worklist.emplace(root); - while (!worklist.empty()) { - auto* node = worklist.front(); - worklist.pop(); - for (auto& vector : node->getVectors()) { - for (auto* op : vector) { - parentMapping[op] = node; - } - } - for (auto const& operand : node->getOperands()) { - worklist.emplace(operand); - } - } - return parentMapping; - } - - llvm::SmallVector postOrder(SLPNode* root) { - llvm::SmallVector order; - for (auto* operand : root->getOperands()) { - order.append(postOrder(operand)); - } - order.emplace_back(root); - return order; - } - - /// A custom PatternRewriter that does not fold operations. - class NoFoldPatternRewriter : public mlir::PatternRewriter { - public: - explicit NoFoldPatternRewriter(mlir::MLIRContext* ctx) : PatternRewriter(ctx) {} - }; - -} // End anonymous namespace. - void SLPVectorizationPass::runOnOperation() { llvm::StringRef funcName = getOperation().getName(); if (!funcName.contains("task_")) { @@ -121,103 +26,21 @@ void SLPVectorizationPass::runOnOperation() { auto computationType = function.getArguments().back().getType().dyn_cast().getElementType(); auto width = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - auto seeds = seedAnalysis.getSeeds(width, seedAnalysis.getOpDepths(), SearchMode::UseBeforeDef); - assert(!seeds.empty() && "couldn't find a seed!"); - // printSeedTree(seeds.front()); + auto const& seed = seedAnalysis.getSeed(width, SearchMode::UseBeforeDef); + assert(!seed.empty() && "couldn't find a seed!"); + dumpOpTree(seed); SLPGraphBuilder builder{3}; - auto graph = builder.build(seeds.front()); - // graph->dumpGraph(); + auto graph = builder.build(seed); + dumpSLPGraph(*graph); // ==== // - OwningRewritePatternList patterns; - auto const& parentMapping = computeParentNodesMapping(graph.get()); - llvm::DenseMap> vectorsByNode; - populateSLPVectorizationPatterns(patterns, &getContext(), parentMapping, vectorsByNode); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - - // Traverse the SLP graph in postorder and apply the vectorization patterns. - NoFoldPatternRewriter rewriter(&getContext()); - PatternApplicator applicator(frozenPatterns); - applicator.applyDefaultCostModel(); - - // Marks operations that can be deleted. - // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. - llvm::SmallPtrSet erasableOps; - for (auto* node : postOrder(graph.get())) { - - // Stores escaping uses for vector extractions that might be necessary later on. - llvm::DenseMap> escapingUses; - - // Also traverse nodes in postorder to properly handle multinodes. - auto it = node->getVectors().rbegin(); - while (it != node->getVectors().rend()) { - - // Gather escaping uses *now* because the conversion process adds more that *do not* need extractions. - for (size_t lane = 0; lane < it->size(); ++lane) { - auto* vectorOp = (*it)[lane]; - for (auto* user : vectorOp->getUsers()) { - if (!parentMapping.count(user)) { - escapingUses[vectorOp].insert(user); - } - } - } - - // Rewrite vector by applying any matching pattern. - vectorsByNode[node].resize(node->numVectors()); - auto result = applicator.matchAndRewrite(it->front(), rewriter); - if (result.failed()) { - it->front()->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); - } - ++it; - } - - // Gather operations that can be erased and create vector extractions using those that need to stay. - for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { - auto const& vector = node->getVector(vectorIndex); - for (size_t lane = 0; lane < vector.size(); ++lane) { - auto* vectorOp = vector[lane]; - bool erasable = true; - for (auto& use : vectorOp->getUses()) { - auto* user = use.getOwner(); - if (!parentMapping.count(user)) { - erasable = false; - // Filters out operations that were created during the conversion process. - if (!escapingUses[vectorOp].contains(user)) { - continue; - } - auto const& source = vectorsByNode[node][vectorIndex]->getResult(0); - rewriter.setInsertionPoint(user); - auto extractOp = rewriter.create(vectorOp->getLoc(), source, lane); - auto const& oldOperand = user->getOperand(use.getOperandNumber()); - user->setOperand(use.getOperandNumber(), extractOp); - if (oldOperand.getUses().empty() && !oldOperand.isa()) { - erasableOps.insert(oldOperand.getDefiningOp()); - } - } - } - if (erasable) { - erasableOps.insert(vectorOp); - } - } - } - } - - for (auto* op : erasableOps) { - op->dropAllUses(); - rewriter.eraseOp(op); + SLPVectorPatternRewriter rewriter(&getContext()); + if (failed(rewriter.rewrite(graph.get()))) { + signalPassFailure(); } getOperation()->dump(); - // If an SLP node failed to vectorize completely, fail the pass. - for (auto const& entry: vectorsByNode) { - if (entry.first->numVectors() != entry.second.size()) { - llvm::dbgs() << "Failed to vectorize node:\n"; - entry.first->dump(); - signalPassFailure(); - } - } - } std::unique_ptr mlir::spn::createSLPVectorizationPass() { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index bf795bc6..950682de 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -3,12 +3,14 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "mlir/IR/BlockAndValueMapping.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "llvm/Support/FormatVariadic.h" #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Math/IR/Math.h" +#include "mlir/IR/BlockAndValueMapping.h" +#include "llvm/ADT/SmallPtrSet.h" +#include "llvm/Support/FormatVariadic.h" +#include using namespace mlir; using namespace mlir::spn; @@ -31,16 +33,6 @@ namespace { return vectorOp; } - template - SmallVector results(OperationIterator begin, OperationIterator end) { - SmallVector elements; - while (begin != end) { - elements.emplace_back((*begin)->getResult(0)); - ++begin; - } - return elements; - } - template DenseElementsAttr denseFloatingPoints(AttributeIterator begin, AttributeIterator end, VectorType const& vectorType) { if (vectorType.getElementType().cast().getWidth() == 32) { @@ -75,52 +67,183 @@ namespace { return DenseElementsAttr::get(vectorType, static_cast>(array)); } + llvm::SmallVector postOrder(SLPNode* root) { + llvm::SmallVector order; + for (auto* operand : root->getOperands()) { + assert(std::find(std::begin(order), std::end(order), operand) == std::end(order)); + order.append(postOrder(operand)); + } + order.emplace_back(root); + return order; + } + + llvm::DenseMap> getEscapingLanesMap(SLPNode* root) { + llvm::DenseMap> outsideUses; + for (auto* node : postOrder(root)) { + for (size_t i = 0; i < node->numVectors(); ++i) { + auto* vector = node->getVector(i); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& element = vector->getElement(lane); + // Skip duplicate (splat) values. + if (outsideUses[vector].count(element)) { + continue; + } + outsideUses[vector][element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); + for (size_t j = 0; j < vector->numOperands(); ++j) { + auto* operand = vector->getOperand(j); + outsideUses[operand][operand->getElement(lane)]--; + } + } + } + } + + llvm::DenseMap> escapingLanes; + for (auto const& entry : outsideUses) { + auto* vector = entry.first; + for (auto const& useAndCount : entry.second) { + auto const& value = useAndCount.first; + auto const& count = useAndCount.second; + if (count > 0) { + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + if (vector->getElement(lane) == value) { + escapingLanes[vector].insert(lane); + break; + } + } + } + } + } + return escapingLanes; + } + + DenseMap emptyVectorizedOpsMap(SLPNode* root) { + DenseMap vectorizedOps; + std::queue worklist; + worklist.emplace(root); + while (!worklist.empty()) { + auto* node = worklist.front(); + worklist.pop(); + for (size_t i = 0; i < node->numVectors(); ++i) { + vectorizedOps[node->getVector(i)] = nullptr; + } + for (auto const& operand : node->getOperands()) { + worklist.emplace(operand); + } + } + return vectorizedOps; + } + } -LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { +SLPVectorPatternRewriter::SLPVectorPatternRewriter(mlir::MLIRContext* ctx) : PatternRewriter{ctx} {} + +LogicalResult SLPVectorPatternRewriter::rewrite(SLPNode* root) { + + OwningRewritePatternList patterns; + auto vectorizedOps = emptyVectorizedOpsMap(root); + std::shared_ptr currentVector; + populateSLPVectorizationPatterns(patterns, context, currentVector, vectorizedOps); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + + PatternApplicator applicator{frozenPatterns}; + applicator.applyDefaultCostModel(); + + // Marks operations that can be deleted. + // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. + SmallPtrSet erasableOps; + + // Stores escaping uses for vector extractions that might be necessary later on. + auto const& escapingLanes = getEscapingLanesMap(root); + + // Traverse the SLP graph in postorder and apply the vectorization patterns. + for (auto* node : postOrder(root)) { + + // Also traverse nodes in postorder to properly handle multinodes. + for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { + auto* vector = node->getVector(vectorIndex); + currentVector.reset(vector); + // Rewrite vector by applying any matching pattern. + if (vector->containsBlockArg()) { + // TODO: BroadcastInsert + } else { + auto* vectorOp = vector->begin()->getDefiningOp(); + if (failed(applicator.matchAndRewrite(vectorOp, *this))) { + vectorOp->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); + } + } + } - auto* node = this->parentNodes.lookup(constantOp); + // Gather operations that can be erased and create vector extractions using those that need to stay. + for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { + auto* vector = node->getVector(vectorIndex); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& vectorValue = vector->getElement(lane); + if (vectorValue.isa()) { + continue; + } + erasableOps.insert(vectorValue.getDefiningOp()); + if (escapingLanes.lookup(vector).contains(lane)) { + auto const& source = vectorizedOps[vector]->getResult(0); + // TODO: set insertion point right before the first outside user + setInsertionPointAfterValue(source); + auto extractOp = create(vectorValue.getLoc(), source, lane); + vectorValue.replaceAllUsesWith(extractOp.result()); + } + } + } + } + + for (auto* op : erasableOps) { + op->dropAllUses(); + eraseOp(op); + } + + // If an SLP node failed to vectorize completely, fail the pass. + for (auto const& entry: vectorizedOps) { + if (!entry.second) { + llvm::dbgs() << "Failed to vectorize vector:\n"; + dumpSLPNodeVector(*entry.first); + return failure(); + } + } + + return success(); +} + +LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { - auto const& vectorIndex = node->getVectorIndex(constantOp); - auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), constantOp.getType()); + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); - rewriter.setInsertionPoint(firstUser(std::begin(vector), std::end(vector))); + rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); - if (!node->isUniform()) { - auto const& elements = results(std::begin(vector), std::end(vector)); - auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - this->vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); + if (!vector->isUniform()) { + auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); return success(); } SmallVector constants; - for (auto* vectorOp : vector) { - constants.emplace_back(static_cast(vectorOp).getValue()); + for (auto const& value : *vector) { + constants.emplace_back(value.getDefiningOp().value()); } auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); auto constVector = rewriter.create(constantOp->getLoc(), elements); - this->vectorsByNode[node][vectorIndex] = constVector; + vectorizedOps[vector.get()] = constVector; return success(); } LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(batchReadOp); + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); - auto const& vectorIndex = node->getVectorIndex(batchReadOp); - auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), batchReadOp.getType()); + rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); - rewriter.setInsertionPoint(firstUser(std::begin(vector), std::end(vector))); - - if (!node->isUniform() || !areConsecutiveLoads(vector)) { - auto const& elements = results(std::begin(vector), std::end(vector)); - auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); + if (!vector->isUniform() || !consecutiveLoads(vector->begin(), vector->end())) { + auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); } else { auto batchReadLoc = batchReadOp->getLoc(); @@ -128,7 +251,7 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt ValueRange indices{batchReadOp.batchIndex(), memIndex}; auto vectorLoad = rewriter.create(batchReadLoc, vectorType, batchReadOp.batchMem(), indices); - vectorsByNode[node][vectorIndex] = vectorLoad; + vectorizedOps[vector.get()] = vectorLoad; } return success(); @@ -136,129 +259,101 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(addOp); - - auto const& vectorIndex = node->getVectorIndex(addOp); - auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), addOp.getType()); + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); + auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); - rewriter.setInsertionPoint(firstOperation(std::begin(vector), std::end(vector))); + if (firstValue.isa()) { + rewriter.setInsertionPointAfterValue(firstValue); + } else { + rewriter.setInsertionPoint(firstValue.getDefiningOp()); + } - if (!node->isUniform()) { - auto const& elements = results(std::begin(vector), std::end(vector)); - auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); + if (!vector->isUniform()) { + auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); return success(); } llvm::SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { - Value operand; - if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { - Value vectorOperand = addOp.getOperand(i); - return vectorOperand.isa() || !parentNodes.count(vectorOperand.getDefiningOp()); - })) { - llvm::SmallVector elements; - for (auto* vectorOp : vector) { - elements.emplace_back(vectorOp->getOperand(i)); - } - operand = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - } else { - auto* operandOp = addOp.getOperand(i).getDefiningOp(); - auto* operandNode = parentNodes.lookup(operandOp); - if (!vectorsByNode.count(operandNode) || vectorsByNode[operandNode].size() != operandNode->numVectors()) { - return rewriter.notifyMatchFailure(addOp, "operation's LHS has not yet been (fully) vectorized"); - } - operand = vectorsByNode[operandNode][operandNode->getVectorIndex(operandOp)]->getResult(0); + auto* operandOp = vectorizedOps[vector->getOperand(i)]; + if (!operandOp) { + return rewriter.notifyMatchFailure(addOp, "operation's operands have not yet been (fully) vectorized"); } - operands.emplace_back(operand); + operands.emplace_back(operandOp->getResult(0)); } auto vectorAddOp = rewriter.create(addOp->getLoc(), vectorType, operands); - vectorsByNode[node][vectorIndex] = vectorAddOp; + vectorizedOps[vector.get()] = vectorAddOp; return success(); } LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(mulOp); - - auto const& vectorIndex = node->getVectorIndex(mulOp); - auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), mulOp.getType()); + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); + auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); - rewriter.setInsertionPoint(firstOperation(std::begin(vector), std::end(vector))); + if (firstValue.isa()) { + rewriter.setInsertionPointAfterValue(firstValue); + } else { + rewriter.setInsertionPoint(firstValue.getDefiningOp()); + } - if (!node->isUniform()) { - auto const& elements = results(std::begin(vector), std::end(vector)); - auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); + if (!vector->isUniform()) { + auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); return success(); } llvm::SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { - Value operand; - if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { - Value vectorOperand = mulOp.getOperand(i); - return vectorOperand.isa() || !parentNodes.count(vectorOperand.getDefiningOp()); - })) { - llvm::SmallVector elements; - for (auto* vectorOp : vector) { - elements.emplace_back(vectorOp->getOperand(i)); - } - operand = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - } else { - auto* operandOp = mulOp.getOperand(i).getDefiningOp(); - auto* operandNode = parentNodes.lookup(operandOp); - if (!vectorsByNode.count(operandNode) || vectorsByNode[operandNode].size() != operandNode->numVectors()) { - return rewriter.notifyMatchFailure(mulOp, "operation's LHS has not yet been (fully) vectorized"); - } - operand = vectorsByNode[operandNode][operandNode->getVectorIndex(operandOp)]->getResult(0); + auto* operandOp = vectorizedOps[vector->getOperand(i)]; + if (!operandOp) { + return rewriter.notifyMatchFailure(mulOp, "operation's operands have not yet been (fully) vectorized"); } - operands.emplace_back(operand); + operands.emplace_back(operandOp->getResult(0)); } - auto vectorMulOp = rewriter.create(mulOp->getLoc(), vectorType, operands); + auto vectorAddOp = rewriter.create(mulOp->getLoc(), vectorType, operands); - vectorsByNode[node][vectorIndex] = vectorMulOp; + vectorizedOps[vector.get()] = vectorAddOp; return success(); } LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { - auto* node = parentNodes.lookup(gaussianOp); - - auto const& vectorIndex = node->getVectorIndex(gaussianOp); - auto const& vector = node->getVector(vectorIndex); - auto const& vectorType = VectorType::get(static_cast(vector.size()), gaussianOp.getType()); + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); + auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); - rewriter.setInsertionPoint(firstOperation(std::begin(vector), std::end(vector))); + if (firstValue.isa()) { + rewriter.setInsertionPointAfterValue(firstValue); + } else { + rewriter.setInsertionPoint(firstValue.getDefiningOp()); + } - if (!node->isUniform()) { - auto const& elements = results(std::begin(vector), std::end(vector)); - auto vectorVal = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - vectorsByNode[node][vectorIndex] = vectorVal.getDefiningOp(); + if (!vector->isUniform()) { + auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); return success(); } DenseElementsAttr coefficients; if (vectorType.getElementType().cast().getWidth() == 32) { SmallVector array; - for (auto* vectorOp : vector) { - float stddev = static_cast(vectorOp).stddev().convertToFloat(); + for (auto const& value : *vector) { + float stddev = static_cast(value.getDefiningOp()).stddev().convertToFloat(); array.emplace_back(1.0f / (stddev * std::sqrt(2.0f * M_PIf32))); } coefficients = DenseElementsAttr::get(vectorType, static_cast>(array)); } else { SmallVector array; - for (auto* vectorOp : vector) { - double stddev = static_cast(vectorOp).stddev().convertToDouble(); + for (auto const& value : *vector) { + double stddev = static_cast(value.getDefiningOp()).stddev().convertToDouble(); array.emplace_back(1.0 / (stddev * std::sqrt(2.0 * M_PI))); } coefficients = DenseElementsAttr::get(vectorType, static_cast>(array)); @@ -266,36 +361,24 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat // Gather means in a dense floating point attribute vector. SmallVector meanAttributes; - for (auto* vectorOp : vector) { - meanAttributes.emplace_back(static_cast(vectorOp).meanAttr()); + for (auto const& value : *vector) { + meanAttributes.emplace_back(static_cast(value.getDefiningOp()).meanAttr()); } auto const& means = denseFloatingPoints(std::begin(meanAttributes), std::end(meanAttributes), vectorType); // Gather standard deviations in a dense floating point attribute vector. SmallVector stddevAttributes; - for (auto* vectorOp : vector) { - stddevAttributes.emplace_back(static_cast(vectorOp).stddevAttr()); + for (auto const& value : *vector) { + stddevAttributes.emplace_back(static_cast(value.getDefiningOp()).stddevAttr()); } auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - Value inputVector; - if (std::any_of(std::begin(vector), std::end(vector), [&](auto* vectorOp) { - return static_cast(vectorOp).index().template isa(); - })) { - llvm::SmallVector elements; - for (auto* vectorOp : vector) { - elements.emplace_back(static_cast(vectorOp).index()); - } - inputVector = broadcastFirstInsertRest(std::begin(elements), std::end(elements), vectorType, rewriter); - } else { - auto* inputOp = gaussianOp.index().getDefiningOp(); - auto* inputNode = parentNodes.lookup(inputOp); - if (!vectorsByNode.count(inputNode) || vectorsByNode[inputNode].size() != inputNode->numVectors()) { - return rewriter.notifyMatchFailure(gaussianOp, "operation's input node has not yet been (fully) vectorized"); - } - inputVector = vectorsByNode[inputNode][inputNode->getVectorIndex(inputOp)]->getResult(0); + auto* inputOp = vectorizedOps[vector->getOperand(0)]; + if (!inputOp) { + return rewriter.notifyMatchFailure(gaussianOp, "operation's operands have not yet been (fully) vectorized"); } + Value inputVector = inputOp->getResult(0); // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) auto const& gaussianLoc = gaussianOp->getLoc(); @@ -318,7 +401,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto coefficientVector = rewriter.create(gaussianLoc, coefficients); gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); - vectorsByNode[node][vectorIndex] = gaussianVector.getDefiningOp(); + vectorizedOps[vector.get()] = gaussianVector.getDefiningOp(); return success(); } From 6ae6c82dc7ea6f475de108df64083a916d9d18c5 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 19 Apr 2021 22:44:32 +0200 Subject: [PATCH 089/385] Fix: flawed seed depth computation. --- .../Vectorization/SLP/SLPSeeding.cpp | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index e03f5f12..011e5e62 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -16,18 +16,17 @@ namespace { DenseMap getOpDepths(Operation* rootOp) { DenseMap opDepths; rootOp->walk([&](Operation* op) { - if (!vectorizable(op)) { - return; - } - auto const& value = op->getResult(0); - if (!opDepths.count(value)) { - opDepths[value] = 0; - } - for (auto const& use : op->getUses()) { - if (!opDepths.count(use.get()) || opDepths[value] + 1 > opDepths[use.get()]) { - opDepths[use.get()] = opDepths[value] + 1; + unsigned depth = 0; + for (auto const& value : op->getOperands()) { + if (!opDepths.count(value)) { + opDepths[value] = 0; + } else { + depth = std::max(depth, opDepths[value] + 1); } } + for (auto const& result : op->getResults()) { + opDepths[result] = depth; + } }); return opDepths; } @@ -41,7 +40,7 @@ vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { for (auto const& entry : opDepths) { auto const& value = entry.first; auto const& depth = entry.second; - if (depth < log2(width)) { + if (!vectorizable(value) || depth < log2(width)) { continue; } bool needsNewSeed = true; From e7b67b1229bac356abcd73f0b4420fd82c71083f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 19 Apr 2021 22:45:04 +0200 Subject: [PATCH 090/385] Updated dumpSLPGraph() to value changes. --- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 10 +++++----- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index 166b3c4f..64dffd18 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -15,11 +15,6 @@ namespace mlir { namespace low { namespace slp { - void dumpOpTree(vector_t const& values); - void dumpSLPGraph(SLPNode const& root); - void dumpSLPNode(SLPNode const& node); - void dumpSLPNodeVector(NodeVector const& nodeVector); - bool vectorizable(Operation* op); bool vectorizable(Value const& value); @@ -109,6 +104,11 @@ namespace mlir { return firstUser; } + void dumpOpTree(vector_t const& values); + void dumpSLPGraph(SLPNode const& root); + void dumpSLPNode(SLPNode const& node); + void dumpSLPNodeVector(NodeVector const& nodeVector); + } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index a3202ffd..bd4e0be2 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -12,7 +12,7 @@ using namespace mlir; bool mlir::spn::low::slp::vectorizable(Operation* op) { - // (MLIR does not allow index types in vectors) + // MLIR does not allow index types in vectors. return op->hasTrait() && op->hasTrait() && !op->getResult(0).getType().isa(); } @@ -98,7 +98,7 @@ namespace { void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { DenseMap nodes; - SmallVector> edges; + SmallVector> edges; std::stack worklist; for (auto const& value : values) { @@ -113,7 +113,7 @@ void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { } nodes[value] = nodes.size(); if (auto* definingOp = value.getDefiningOp()) { - for (size_t i = 0; i < definingOp->getNumOperands(); ++i) { + for (unsigned i = 0; i < definingOp->getNumOperands(); ++i) { auto const& operand = definingOp->getOperand(i); edges.emplace_back(std::make_tuple(value, operand, i)); worklist.push(operand); @@ -127,7 +127,7 @@ void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { for (auto const& entry : nodes) { auto const& value = entry.first; auto const& id = entry.second; - llvm::dbgs() << "node_" << id << "[label=\""; + llvm::dbgs() << "\tnode_" << id << "[label=\""; if (auto* definingOp = value.getDefiningOp()) { llvm::dbgs() << definingOp->getName().getStringRef() << "\\n" << definingOp; if (auto constantOp = dyn_cast(definingOp)) { @@ -147,8 +147,8 @@ void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { llvm::dbgs() << "\", fillcolor=\"#a0522d\"];\n"; } for (auto const& edge : edges) { - llvm::dbgs() << "node_" << std::get<0>(edge) << " -> node_" << std::get<1>(edge) << "[label=\"" - << std::to_string(std::get<2>(edge)) << "\"];\n"; + llvm::dbgs() << "\tnode_" << nodes[std::get<0>(edge)] << " -> node_" << nodes[std::get<1>(edge)] << "[label=\"" + << std::get<2>(edge) << "\"];\n"; } llvm::dbgs() << "}\n"; } From 673b19c369d881ea0016e534362b7a7576f8b7ed Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 19 Apr 2021 23:16:11 +0200 Subject: [PATCH 091/385] Fix: weird dumpSLPNodeVector() output behaviour. --- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index bd4e0be2..1faa62e3 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -66,18 +66,6 @@ void mlir::spn::low::slp::dumpSLPNode(mlir::spn::low::slp::SLPNode const& node) } } -void mlir::spn::low::slp::dumpSLPNodeVector(const mlir::spn::low::slp::NodeVector& nodeVector) { - for (size_t lane = 0; lane < nodeVector.numLanes(); ++lane) { - llvm::dbgs() << nodeVector[lane]; - if (!nodeVector[lane].isa()) { - llvm::dbgs() << "(" << nodeVector[lane].getDefiningOp() << ")"; - } - if (lane < nodeVector.numLanes() - 1) { - llvm::dbgs() << "\t|\t"; - } - } -} - // Helper functions in an anonymous namespace. namespace { void dumpBlockArgOrDefiningAddress(Value const& val) { @@ -96,6 +84,20 @@ namespace { } } +void mlir::spn::low::slp::dumpSLPNodeVector(const mlir::spn::low::slp::NodeVector& nodeVector) { + for (size_t lane = 0; lane < nodeVector.numLanes(); ++lane) { + if (!nodeVector[lane].isa()) { + llvm::dbgs() << nodeVector[lane] << " (" << nodeVector[lane].getDefiningOp() << ")"; + } else { + dumpBlockArgOrDefiningOpName(nodeVector[lane]); + } + if (lane < nodeVector.numLanes() - 1) { + llvm::dbgs() << "\t|\t"; + } + } + llvm::dbgs() << "\n"; +} + void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { DenseMap nodes; SmallVector> edges; From 34763298a0dfc6b364ad11f1b273fcd0a5e2cc40 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 19 Apr 2021 23:16:32 +0200 Subject: [PATCH 092/385] Fix: segfault during operand reordering. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 32c63368..3669c0df 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -158,7 +158,7 @@ void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { finalOrder[lane].emplace_back(bestResult.first); // Detect SPLAT mode if (i == 1 && bestResult.first == last) { - mode[lane][i] = SPLAT; + mode[lane].emplace_back(SPLAT); } else { mode[lane].emplace_back(bestResult.second); } From ba992059ea2db62263b29af8149178969393fab0 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 04:14:01 +0200 Subject: [PATCH 093/385] Fix: switched semantics of firstOccurrence and lastOccurrence. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index 64dffd18..bb4786fa 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -72,7 +72,7 @@ namespace mlir { typename std::iterator_traits::value_type firstOccurrence(Iterator begin, Iterator end) { typename std::iterator_traits::value_type first = *begin; while (++begin != end) { - if (isBeforeInBlock(first, *begin)) { + if (!isBeforeInBlock(first, *begin)) { first = *begin; } } @@ -81,13 +81,13 @@ namespace mlir { template typename std::iterator_traits::value_type lastOccurrence(Iterator begin, Iterator end) { - typename std::iterator_traits::value_type first = *begin; + typename std::iterator_traits::value_type last = *begin; while (++begin != end) { - if (!isBeforeInBlock(first, *begin)) { - first = *begin; + if (isBeforeInBlock(last, *begin)) { + last = *begin; } } - return first; + return last; } template From cbee64affd0ce6a5a3f13452301f1c48e6849083 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 04:40:16 +0200 Subject: [PATCH 094/385] Fix: vectorizable() checks not working properly. --- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 1faa62e3..95f6c477 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -12,17 +12,18 @@ using namespace mlir; bool mlir::spn::low::slp::vectorizable(Operation* op) { - // MLIR does not allow index types in vectors. - return op->hasTrait() && op->hasTrait() - && !op->getResult(0).getType().isa(); + return (op->hasTrait() || op->hasTrait()) + && op->hasTrait() && op->getResult(0).getType().isIntOrFloat(); } bool mlir::spn::low::slp::vectorizable(Value const& value) { // Block arguments don't have defining ops (they can still be put in a vector by other means). - if (value.isa()) { - return false; + if (auto* definingOp = value.getDefiningOp()) { + if (!vectorizable(definingOp)) { + return false; + } } - return vectorizable(value.getDefiningOp()); + return value.getType().isIntOrFloat(); } bool mlir::spn::low::slp::isBeforeInBlock(Operation* lhs, Operation* rhs) { From 7ffb063161e567a911cb601c69b35f0d216e8044 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 04:40:55 +0200 Subject: [PATCH 095/385] Fix: seed analysis not working deterministically. --- .../Vectorization/SLP/SLPSeeding.cpp | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 011e5e62..e797befa 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -37,25 +37,28 @@ vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { llvm::StringMap> seedsByOpName; auto const& opDepths = getOpDepths(rootOp); - for (auto const& entry : opDepths) { - auto const& value = entry.first; - auto const& depth = entry.second; - if (!vectorizable(value) || depth < log2(width)) { - continue; + rootOp->walk([&](Operation* op) { + if (!vectorizable(op)) { + return; + } + auto const& value = op->getResult(0); + auto const& depth = opDepths.lookup(value); + if (depth < log2(width)) { + return; } bool needsNewSeed = true; - for (auto& seed : seedsByOpName[value.getDefiningOp()->getName().getStringRef()]) { + for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { if (seed.size() < width && opDepths.lookup(seed.front()) == depth) { - seed.emplace_back(entry.first); + seed.emplace_back(value); needsNewSeed = false; break; } } if (needsNewSeed) { vector_t seed{value}; - seedsByOpName[value.getDefiningOp()->getName().getStringRef()].emplace_back(seed); + seedsByOpName[op->getName().getStringRef()].emplace_back(seed); } - } + }); SmallVector seeds; // Flatten the map that maps opcode to seeds. From e8040e63936056b881b4236c74d554e66ed1b52e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 04:42:05 +0200 Subject: [PATCH 096/385] Fix: unreliable operation erasure & extraction behaviour. --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 1 - .../SLP/SLPVectorizationPatterns.h | 26 +-- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 6 - .../SLP/SLPVectorizationPatterns.cpp | 164 +++++++++--------- 4 files changed, 93 insertions(+), 104 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 20863768..0e65e21f 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -25,7 +25,6 @@ namespace mlir { explicit NodeVector(SmallVector const& operations); bool isUniform() const; - bool containsBlockArg() const; bool contains(Value const& value) const; size_t numLanes() const; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index a8798e24..51456593 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -15,6 +15,7 @@ #include "mlir/IR/PatternMatch.h" #include "mlir/Rewrite/FrozenRewritePatternList.h" #include "mlir/Rewrite/PatternApplicator.h" +#include "llvm/ADT/SmallPtrSet.h" #include "llvm/Support/Debug.h" namespace mlir { @@ -35,14 +36,16 @@ namespace mlir { public: SLPVectorizationPattern(MLIRContext* context, PatternBenefit benefit, - std::shared_ptr vector, - DenseMap& vectorizedOps) : OpRewritePattern{ - context, benefit}, vector{std::move(vector)}, vectorizedOps{vectorizedOps} {} + NodeVector* const& vector, + DenseMap& vectorizedOps, + SmallPtrSet& erasableOps) : OpRewritePattern{ + context, benefit}, vector{vector}, vectorizedOps{vectorizedOps}, erasableOps{erasableOps} {} protected: /// The current vector being transformed. - std::shared_ptr vector; - llvm::DenseMap& vectorizedOps; + NodeVector* const& vector; + DenseMap& vectorizedOps; + SmallPtrSet& erasableOps; }; struct VectorizeConstant : public SLPVectorizationPattern { @@ -72,12 +75,13 @@ namespace mlir { static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - std::shared_ptr const& vector, - llvm::DenseMap& vectorizedOps) { - patterns.insert(context, 2, vector, vectorizedOps); - patterns.insert(context, 2, vector, vectorizedOps); - patterns.insert(context, 2, vector, vectorizedOps); - patterns.insert(context, 2, vector, vectorizedOps); + NodeVector* const& vector, + DenseMap& vectorizedOps, + SmallPtrSet& erasableOps) { + patterns.insert(context, 2, vector, vectorizedOps, erasableOps); + patterns.insert(context, 2, vector, vectorizedOps, erasableOps); + patterns.insert(context, 2, vector, vectorizedOps, erasableOps); + patterns.insert(context, 2, vector, vectorizedOps, erasableOps); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index d267d319..18de42a8 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -39,12 +39,6 @@ bool NodeVector::isUniform() const { }); } -bool NodeVector::containsBlockArg() const { - return std::any_of(std::begin(values), std::end(values), [&](Value const& value) { - return value.isa(); - }); -} - bool NodeVector::contains(Value const& value) const { return std::find(std::begin(values), std::end(values), value) != std::end(values); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 950682de..cd71a204 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -8,9 +8,7 @@ #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Math/IR/Math.h" #include "mlir/IR/BlockAndValueMapping.h" -#include "llvm/ADT/SmallPtrSet.h" #include "llvm/Support/FormatVariadic.h" -#include using namespace mlir; using namespace mlir::spn; @@ -77,8 +75,8 @@ namespace { return order; } - llvm::DenseMap> getEscapingLanesMap(SLPNode* root) { - llvm::DenseMap> outsideUses; + DenseMap> getEscapingLanesMap(SLPNode* root) { + DenseMap> outsideUses; for (auto* node : postOrder(root)) { for (size_t i = 0; i < node->numVectors(); ++i) { auto* vector = node->getVector(i); @@ -91,13 +89,14 @@ namespace { outsideUses[vector][element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); for (size_t j = 0; j < vector->numOperands(); ++j) { auto* operand = vector->getOperand(j); + assert(outsideUses[operand][operand->getElement(lane)] > 0); outsideUses[operand][operand->getElement(lane)]--; } } } } - llvm::DenseMap> escapingLanes; + DenseMap> escapingLanes; for (auto const& entry : outsideUses) { auto* vector = entry.first; for (auto const& useAndCount : entry.second) { @@ -106,7 +105,7 @@ namespace { if (count > 0) { for (size_t lane = 0; lane < vector->numLanes(); ++lane) { if (vector->getElement(lane) == value) { - escapingLanes[vector].insert(lane); + escapingLanes[vector].emplace_back(lane); break; } } @@ -116,21 +115,17 @@ namespace { return escapingLanes; } - DenseMap emptyVectorizedOpsMap(SLPNode* root) { - DenseMap vectorizedOps; - std::queue worklist; - worklist.emplace(root); - while (!worklist.empty()) { - auto* node = worklist.front(); - worklist.pop(); - for (size_t i = 0; i < node->numVectors(); ++i) { - vectorizedOps[node->getVector(i)] = nullptr; - } - for (auto const& operand : node->getOperands()) { - worklist.emplace(operand); - } - } - return vectorizedOps; + bool containsBlockArgs(NodeVector* vector) { + return std::any_of(vector->begin(), vector->end(), [&](Value const& value) { + return value.isa(); + }); + } + + template + bool valuesVectorizable(ValueIterator begin, ValueIterator end) { + return std::all_of(begin, end, [&](Value const& value) { + return vectorizable(value); + }); } } @@ -139,32 +134,45 @@ SLPVectorPatternRewriter::SLPVectorPatternRewriter(mlir::MLIRContext* ctx) : Pat LogicalResult SLPVectorPatternRewriter::rewrite(SLPNode* root) { + // The current vector being transformed. + NodeVector* vector = nullptr; + + // Maps individual SLP node vectors to finished vector operations. + DenseMap vectorizedOps; + + // Marks operations as potentially erasable (potentially because they might have escaping uses). + // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. + SmallPtrSet erasableOps; + OwningRewritePatternList patterns; - auto vectorizedOps = emptyVectorizedOpsMap(root); - std::shared_ptr currentVector; - populateSLPVectorizationPatterns(patterns, context, currentVector, vectorizedOps); + populateSLPVectorizationPatterns(patterns, context, vector, vectorizedOps, erasableOps); FrozenRewritePatternList frozenPatterns(std::move(patterns)); PatternApplicator applicator{frozenPatterns}; applicator.applyDefaultCostModel(); - // Marks operations that can be deleted. - // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. - SmallPtrSet erasableOps; - // Stores escaping uses for vector extractions that might be necessary later on. auto const& escapingLanes = getEscapingLanesMap(root); + // No need to extract/remove values more than once in case they appear more than once (e.g. in splat mode). + SmallPtrSet finishedValues; + // Traverse the SLP graph in postorder and apply the vectorization patterns. for (auto* node : postOrder(root)) { // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { - auto* vector = node->getVector(vectorIndex); - currentVector.reset(vector); + vector = node->getVector(vectorIndex); // Rewrite vector by applying any matching pattern. - if (vector->containsBlockArg()) { - // TODO: BroadcastInsert + if (!valuesVectorizable(vector->begin(), vector->end())) { + continue; + } + if (containsBlockArgs(vector)) { + auto const& elementType = vector->getElement(0).getType(); + auto const& type = VectorType::get(static_cast(vector->numLanes()), elementType); + setInsertionPoint(firstUser(vector->begin(), vector->end())); + auto vectorOp = broadcastFirstInsertRest(vector->begin(), vector->end(), type, *this); + vectorizedOps[vector] = vectorOp.getDefiningOp(); } else { auto* vectorOp = vector->begin()->getDefiningOp(); if (failed(applicator.matchAndRewrite(vectorOp, *this))) { @@ -173,40 +181,31 @@ LogicalResult SLPVectorPatternRewriter::rewrite(SLPNode* root) { } } - // Gather operations that can be erased and create vector extractions using those that need to stay. + // Create vector extractions for escaping uses & erase superfluous operations. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { - auto* vector = node->getVector(vectorIndex); - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& vectorValue = vector->getElement(lane); - if (vectorValue.isa()) { - continue; - } - erasableOps.insert(vectorValue.getDefiningOp()); - if (escapingLanes.lookup(vector).contains(lane)) { - auto const& source = vectorizedOps[vector]->getResult(0); - // TODO: set insertion point right before the first outside user - setInsertionPointAfterValue(source); - auto extractOp = create(vectorValue.getLoc(), source, lane); - vectorValue.replaceAllUsesWith(extractOp.result()); + vector = node->getVector(vectorIndex); + if (vectorizedOps.count(vector) && erasableOps.count(vector)) { + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& vectorValue = vector->getElement(lane); + if (finishedValues.contains(vectorValue)) { + continue; + } + auto const& lanesToExtract = escapingLanes.lookup(vector); + if (std::find(std::begin(lanesToExtract), std::end(lanesToExtract), lane) != std::end(lanesToExtract)) { + auto const& source = vectorizedOps[vector]->getResult(0); + setInsertionPoint(firstOccurrence(std::begin(vectorValue.getUsers()), std::end(vectorValue.getUsers()))); + auto extractOp = create(vectorValue.getLoc(), source, lane); + vectorValue.replaceAllUsesWith(extractOp.result()); + } else { + vectorValue.dropAllUses(); + } + finishedValues.insert(vectorValue); + eraseOp(vectorValue.getDefiningOp()); } } } } - for (auto* op : erasableOps) { - op->dropAllUses(); - eraseOp(op); - } - - // If an SLP node failed to vectorize completely, fail the pass. - for (auto const& entry: vectorizedOps) { - if (!entry.second) { - llvm::dbgs() << "Failed to vectorize vector:\n"; - dumpSLPNodeVector(*entry.first); - return failure(); - } - } - return success(); } @@ -218,7 +217,7 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal.getDefiningOp(); return success(); } @@ -230,7 +229,8 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR auto constVector = rewriter.create(constantOp->getLoc(), elements); - vectorizedOps[vector.get()] = constVector; + vectorizedOps[vector] = constVector; + erasableOps.insert(vector); return success(); } @@ -243,7 +243,7 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt if (!vector->isUniform() || !consecutiveLoads(vector->begin(), vector->end())) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal.getDefiningOp(); } else { auto batchReadLoc = batchReadOp->getLoc(); @@ -251,7 +251,8 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt ValueRange indices{batchReadOp.batchIndex(), memIndex}; auto vectorLoad = rewriter.create(batchReadLoc, vectorType, batchReadOp.batchMem(), indices); - vectorizedOps[vector.get()] = vectorLoad; + vectorizedOps[vector] = vectorLoad; + erasableOps.insert(vector); } return success(); @@ -260,22 +261,16 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); - auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); - if (firstValue.isa()) { - rewriter.setInsertionPointAfterValue(firstValue); - } else { - rewriter.setInsertionPoint(firstValue.getDefiningOp()); - } + rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal.getDefiningOp(); return success(); } - llvm::SmallVector operands; - + SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { auto* operandOp = vectorizedOps[vector->getOperand(i)]; if (!operandOp) { @@ -286,7 +281,8 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri auto vectorAddOp = rewriter.create(addOp->getLoc(), vectorType, operands); - vectorizedOps[vector.get()] = vectorAddOp; + vectorizedOps[vector] = vectorAddOp; + erasableOps.insert(vector); return success(); } @@ -294,22 +290,16 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); - auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); - if (firstValue.isa()) { - rewriter.setInsertionPointAfterValue(firstValue); - } else { - rewriter.setInsertionPoint(firstValue.getDefiningOp()); - } + rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal.getDefiningOp(); return success(); } - llvm::SmallVector operands; - + SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { auto* operandOp = vectorizedOps[vector->getOperand(i)]; if (!operandOp) { @@ -320,7 +310,8 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewri auto vectorAddOp = rewriter.create(mulOp->getLoc(), vectorType, operands); - vectorizedOps[vector.get()] = vectorAddOp; + vectorizedOps[vector] = vectorAddOp; + erasableOps.insert(vector); return success(); } @@ -338,7 +329,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector.get()] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal.getDefiningOp(); return success(); } @@ -401,7 +392,8 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto coefficientVector = rewriter.create(gaussianLoc, coefficients); gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); - vectorizedOps[vector.get()] = gaussianVector.getDefiningOp(); + vectorizedOps[vector] = gaussianVector.getDefiningOp(); + erasableOps.insert(vector); return success(); } From 5f0c1d1974da3bbb10a5d0c1e24aa9b7c75d46fe Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 04:57:02 +0200 Subject: [PATCH 097/385] Some commenting & code movement. --- .../Vectorization/SLP/SLPVectorizationPass.cpp | 4 ++-- .../Vectorization/SLP/SLPVectorizationPatterns.cpp | 14 ++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index 0909780f..d1f3ed96 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -28,10 +28,10 @@ void SLPVectorizationPass::runOnOperation() { auto const& seed = seedAnalysis.getSeed(width, SearchMode::UseBeforeDef); assert(!seed.empty() && "couldn't find a seed!"); - dumpOpTree(seed); + // dumpOpTree(seed); SLPGraphBuilder builder{3}; auto graph = builder.build(seed); - dumpSLPGraph(*graph); + // dumpSLPGraph(*graph); // ==== // SLPVectorPatternRewriter rewriter(&getContext()); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index cd71a204..442ae869 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -141,9 +141,14 @@ LogicalResult SLPVectorPatternRewriter::rewrite(SLPNode* root) { DenseMap vectorizedOps; // Marks operations as potentially erasable (potentially because they might have escaping uses). - // We delete them *after* SLP graph conversion to avoid running into NULL operands during conversion. SmallPtrSet erasableOps; + // Stores escaping uses for vector extractions that might be necessary later on. + auto const& escapingLanes = getEscapingLanesMap(root); + + // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). + SmallPtrSet finishedValues; + OwningRewritePatternList patterns; populateSLPVectorizationPatterns(patterns, context, vector, vectorizedOps, erasableOps); FrozenRewritePatternList frozenPatterns(std::move(patterns)); @@ -151,19 +156,12 @@ LogicalResult SLPVectorPatternRewriter::rewrite(SLPNode* root) { PatternApplicator applicator{frozenPatterns}; applicator.applyDefaultCostModel(); - // Stores escaping uses for vector extractions that might be necessary later on. - auto const& escapingLanes = getEscapingLanesMap(root); - - // No need to extract/remove values more than once in case they appear more than once (e.g. in splat mode). - SmallPtrSet finishedValues; - // Traverse the SLP graph in postorder and apply the vectorization patterns. for (auto* node : postOrder(root)) { // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - // Rewrite vector by applying any matching pattern. if (!valuesVectorizable(vector->begin(), vector->end())) { continue; } From a255ae58d6b35d2a67228dffb15b763e8de87a1e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 16:39:01 +0200 Subject: [PATCH 098/385] Removed vectorization strategy option. --- .../mlir/conversion/LoSPNtoCPUConversion.cpp | 6 ++---- .../mlir/conversion/LoSPNtoCPUConversion.h | 16 +++++++++++++++- compiler/src/driver/option/GlobalOptions.cpp | 6 ------ compiler/src/driver/toolchain/CPUToolchain.cpp | 12 +----------- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp index 9b397505..7eb84043 100644 --- a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp +++ b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp @@ -19,12 +19,10 @@ void spnc::LoSPNtoCPUConversion::initializePassPipeline(mlir::PassManager* pm, m if (useShuffle) { pm->addPass(mlir::spn::createReplaceGatherWithShufflePass()); } - auto vectorizationStrategy = spnc::option::vectorizationStrategy.get(*this->config); - if(vectorizationStrategy == spnc::option::VectorizationStrategy::SLP) { + if (kernelInfo->batchSize == 1) { pm->addNestedPass(mlir::spn::createSLPVectorizationPass()); - } else if(vectorizationStrategy == spnc::option::VectorizationStrategy::BATCH) { - pm->addPass(mlir::spn::createLoSPNNodeVectorizationPass()); } + pm->addPass(mlir::spn::createLoSPNNodeVectorizationPass()); if (useShuffle) { // We need another run of the canonicalizer here to remove lo_spn.to_scalar // operations introduced by the replacement of gathers and that should diff --git a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h index 19b0ec48..c8a5e701 100644 --- a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h +++ b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h @@ -6,16 +6,30 @@ #ifndef SPNC_COMPILER_SRC_CODEGEN_MLIR_CONVERSION_LOSPNTOCPUCONVERSION_H #define SPNC_COMPILER_SRC_CODEGEN_MLIR_CONVERSION_LOSPNTOCPUCONVERSION_H +#include "driver/Job.h" #include "../MLIRPassPipeline.h" namespace spnc { struct LoSPNtoCPUConversion : public MLIRPipelineBase { - using MLIRPipelineBase::MLIRPipelineBase; + public: + + LoSPNtoCPUConversion(ActionWithOutput& _input, + std::shared_ptr ctx, + std::shared_ptr handler, + std::shared_ptr kernelInformation) : + MLIRPipelineBase(_input, std::move(ctx), std::move(handler)), + kernelInfo{std::move(kernelInformation)} {} void initializePassPipeline(mlir::PassManager* pm, mlir::MLIRContext* ctx); + private: + + std::shared_ptr kernelInfo; + + using MLIRPipelineBase::MLIRPipelineBase; + }; } diff --git a/compiler/src/driver/option/GlobalOptions.cpp b/compiler/src/driver/option/GlobalOptions.cpp index c2618406..33a8634d 100644 --- a/compiler/src/driver/option/GlobalOptions.cpp +++ b/compiler/src/driver/option/GlobalOptions.cpp @@ -22,12 +22,6 @@ EnumOpt spnc::option::compilationTarget{"target", Option spnc::option::cpuVectorize{"cpu-vectorize", false}; -using spnc::option::VectorizationStrategy; -EnumOpt spnc::option::vectorizationStrategy{"vectorization-strategy", BATCH, - {EnumVal(BATCH, "BATCH"), - EnumVal(SLP, "SLP")}, - {depends(spnc::option::cpuVectorize, true)}}; - using spnc::option::VectorLibrary; EnumOpt spnc::option::vectorLibrary{"vector-library", NONE, {EnumVal(SVML, "SVML"), diff --git a/compiler/src/driver/toolchain/CPUToolchain.cpp b/compiler/src/driver/toolchain/CPUToolchain.cpp index c0a64edd..9aa9e288 100644 --- a/compiler/src/driver/toolchain/CPUToolchain.cpp +++ b/compiler/src/driver/toolchain/CPUToolchain.cpp @@ -35,16 +35,6 @@ std::unique_ptr > CPUToolchain::constructJobFromFile(const std::stri auto diagHandler = setupDiagnosticHandler(ctx.get()); auto cpuVectorize = spnc::option::cpuVectorize.get(*config); SPDLOG_INFO("CPU Vectorization enabled: {}", cpuVectorize); - if(cpuVectorize) { - auto vectorizationStrategy = spnc::option::vectorizationStrategy.get(*config); - std::string strategyName; - switch (vectorizationStrategy) { - case spnc::option::VectorizationStrategy::BATCH: strategyName = "BATCH"; break; - case spnc::option::VectorizationStrategy::SLP: strategyName = "SLP"; break; - default:SPNC_FATAL_ERROR("Unknown vectorization strategy"); - } - SPDLOG_INFO("CPU Vectorization strategy: {}", strategyName); - } auto targetMachine = createTargetMachine(cpuVectorize); auto kernelInfo = std::make_shared(); kernelInfo->target = KernelTarget::CPU; @@ -65,7 +55,7 @@ std::unique_ptr > CPUToolchain::constructJobFromFile(const std::stri //spnPipelineResult = &joinAction; } auto& lospnTransform = job->insertAction(hispn2lospn, ctx, diagHandler, kernelInfo); - auto& lospn2cpu = job->insertAction(lospnTransform, ctx, diagHandler); + auto& lospn2cpu = job->insertAction(lospnTransform, ctx, diagHandler, kernelInfo); auto& cpu2llvm = job->insertAction(lospn2cpu, ctx, diagHandler); // Convert the MLIR module to a LLVM-IR module. From 64e3ac09f9dcdd23b3a6204d2da6c00875fa8fd5 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 20 Apr 2021 21:11:27 +0200 Subject: [PATCH 099/385] Removed leftover option. --- compiler/include/driver/GlobalOptions.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/compiler/include/driver/GlobalOptions.h b/compiler/include/driver/GlobalOptions.h index bf5af770..c271be7d 100644 --- a/compiler/include/driver/GlobalOptions.h +++ b/compiler/include/driver/GlobalOptions.h @@ -39,14 +39,6 @@ namespace spnc { /// Flag to indicate whether the code generated for the CPU should be vectorized. extern Option cpuVectorize; - /// Available vectorization strategies - enum VectorizationStrategy { - BATCH, - SLP - }; - - extern EnumOpt vectorizationStrategy; - /// Available vector libraries enum VectorLibrary { SVML, From 20fa79ae1421fa65ac53ff7ec399602d00ceb538 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 21 Apr 2021 01:40:35 +0200 Subject: [PATCH 100/385] Pipeline update to only SLP vectorize tasks with a batch size of 1. --- .../mlir/conversion/LoSPNtoCPUConversion.cpp | 7 +------ .../mlir/conversion/LoSPNtoCPUConversion.h | 18 +---------------- .../src/driver/toolchain/CPUToolchain.cpp | 2 +- .../Conversion/LoSPNtoCPU/StructurePatterns.h | 18 ++++++++++++++--- .../Vectorization/SLP/SLPVectorizationPass.h | 16 +++++---------- .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 20 ++++++++++++++++--- .../LoSPNtoCPU/StructurePatterns.cpp | 1 + .../SLP/SLPVectorizationPass.cpp | 2 +- 8 files changed, 42 insertions(+), 42 deletions(-) diff --git a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp index 7eb84043..a3ad3d24 100644 --- a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp +++ b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.cpp @@ -6,10 +6,8 @@ #include "LoSPNtoCPUConversion.h" #include "LoSPNtoCPU/LoSPNtoCPUConversionPasses.h" #include "LoSPNtoCPU/Vectorization/VectorOptimizationPasses.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "mlir/Transforms/Passes.h" #include "mlir/Dialect/Tensor/Transforms/Passes.h" -#include void spnc::LoSPNtoCPUConversion::initializePassPipeline(mlir::PassManager* pm, mlir::MLIRContext* ctx) { bool vectorize = spnc::option::cpuVectorize.get(*this->config); @@ -19,9 +17,6 @@ void spnc::LoSPNtoCPUConversion::initializePassPipeline(mlir::PassManager* pm, m if (useShuffle) { pm->addPass(mlir::spn::createReplaceGatherWithShufflePass()); } - if (kernelInfo->batchSize == 1) { - pm->addNestedPass(mlir::spn::createSLPVectorizationPass()); - } pm->addPass(mlir::spn::createLoSPNNodeVectorizationPass()); if (useShuffle) { // We need another run of the canonicalizer here to remove lo_spn.to_scalar @@ -41,4 +36,4 @@ void spnc::LoSPNtoCPUConversion::initializePassPipeline(mlir::PassManager* pm, m pm->nest().addPass(mlir::createFinalizingBufferizePass()); pm->nest().addPass(mlir::createBufferDeallocationPass()); pm->addPass(mlir::createCopyRemovalPass()); -} \ No newline at end of file +} diff --git a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h index c8a5e701..e03f6add 100644 --- a/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h +++ b/compiler/src/codegen/mlir/conversion/LoSPNtoCPUConversion.h @@ -12,24 +12,8 @@ namespace spnc { struct LoSPNtoCPUConversion : public MLIRPipelineBase { - - public: - - LoSPNtoCPUConversion(ActionWithOutput& _input, - std::shared_ptr ctx, - std::shared_ptr handler, - std::shared_ptr kernelInformation) : - MLIRPipelineBase(_input, std::move(ctx), std::move(handler)), - kernelInfo{std::move(kernelInformation)} {} - - void initializePassPipeline(mlir::PassManager* pm, mlir::MLIRContext* ctx); - - private: - - std::shared_ptr kernelInfo; - using MLIRPipelineBase::MLIRPipelineBase; - + void initializePassPipeline(mlir::PassManager* pm, mlir::MLIRContext* ctx); }; } diff --git a/compiler/src/driver/toolchain/CPUToolchain.cpp b/compiler/src/driver/toolchain/CPUToolchain.cpp index 9aa9e288..33e51688 100644 --- a/compiler/src/driver/toolchain/CPUToolchain.cpp +++ b/compiler/src/driver/toolchain/CPUToolchain.cpp @@ -55,7 +55,7 @@ std::unique_ptr > CPUToolchain::constructJobFromFile(const std::stri //spnPipelineResult = &joinAction; } auto& lospnTransform = job->insertAction(hispn2lospn, ctx, diagHandler, kernelInfo); - auto& lospn2cpu = job->insertAction(lospnTransform, ctx, diagHandler, kernelInfo); + auto& lospn2cpu = job->insertAction(lospnTransform, ctx, diagHandler); auto& cpu2llvm = job->insertAction(lospn2cpu, ctx, diagHandler); // Convert the MLIR module to a LLVM-IR module. diff --git a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h index d8127fbd..8dc3dd31 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h @@ -10,6 +10,7 @@ #include "LoSPN/LoSPNDialect.h" #include "LoSPN/LoSPNOps.h" #include "llvm/Support/Debug.h" +#include "llvm/ADT/SmallPtrSet.h" namespace mlir { namespace spn { @@ -34,11 +35,19 @@ namespace mlir { struct SingleTaskLowering : OpConversionPattern { + SingleTaskLowering(TypeConverter& typeConverter, + MLIRContext* context, + SmallPtrSet& singleBatchFunctions) + : OpConversionPattern(typeConverter, context), singleBatchFunctions{singleBatchFunctions} {} + using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNTask op, ArrayRef operands, ConversionPatternRewriter& rewriter) const override; + + private: + SmallPtrSet& singleBatchFunctions; }; struct BodyLowering : OpConversionPattern { @@ -50,9 +59,12 @@ namespace mlir { ConversionPatternRewriter& rewriter) const override; }; - static void populateLoSPNtoCPUStructurePatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter) { - patterns.insert(typeConverter, context); + static void populateLoSPNtoCPUStructurePatterns(OwningRewritePatternList& patterns, + MLIRContext* context, + TypeConverter& typeConverter, + SmallPtrSet& singleBatchFunctions) { + patterns.insert(typeConverter, context); + patterns.insert(typeConverter, context, singleBatchFunctions); patterns.insert(typeConverter, context); } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h index 0b17c9b5..3b753caa 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h @@ -7,7 +7,6 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H #include -#include "mlir/IR/Operation.h" #include "mlir/Pass/Pass.h" namespace mlir { @@ -15,21 +14,16 @@ namespace mlir { namespace low { namespace slp { - struct SLPVectorizationPass : public PassWrapper> { - - public: + struct SLPVectorizationPass : public PassWrapper { protected: - void runOnOperation() - override; - - private: + void runOnFunction() override; - }; + }; + } } + std::unique_ptr createSLPVectorizationPass(); } - std::unique_ptr createSLPVectorizationPass(); -} } #endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 49fafffe..1a37e388 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -10,9 +10,11 @@ #include "LoSPNtoCPU/NodePatterns.h" #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" +#include "mlir/Pass/PassManager.h" void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { ConversionTarget target(getContext()); @@ -30,17 +32,29 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { target.addIllegalOp(); OwningRewritePatternList patterns; + // Stores functions that can be SLP-vectorized. + SmallPtrSet singleBatchFunctions; if (vectorize) { // Try to vectorize tasks if vectorization was requested. mlir::spn::populateLoSPNCPUVectorizationStructurePatterns(patterns, &getContext(), typeConverter); } - mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter); + mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter, singleBatchFunctions); - auto op = getOperation(); FrozenRewritePatternList frozenPatterns(std::move(patterns)); - if (failed(applyPartialConversion(op, target, frozenPatterns))) { + if (failed(applyPartialConversion(getOperation(), target, frozenPatterns))) { signalPassFailure(); } + + if (vectorize && !singleBatchFunctions.empty()) { + OpPassManager dynamicPipeline("SLP pipeline"); + dynamicPipeline.addPass(mlir::spn::createSLPVectorizationPass()); + for (auto const& function : singleBatchFunctions) { + if (failed(runPipeline(dynamicPipeline, function))) { + signalPassFailure(); + } + } + } + } std::unique_ptr mlir::spn::createLoSPNtoCPUStructureConversionPass(bool enableVectorization) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp index 1e332f6c..b11687a8 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp @@ -90,6 +90,7 @@ mlir::LogicalResult mlir::spn::SingleTaskLowering::matchAndRewrite(mlir::spn::lo auto taskFunc = rewriter.create(op->getLoc(), Twine("task_", std::to_string(taskCount++)).str(), funcType); auto taskBlock = taskFunc.addEntryBlock(); + singleBatchFunctions.insert(taskFunc); rewriter.setInsertionPointToStart(taskBlock); // Collect the values replacing the block values of old block inside the task. diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp index d1f3ed96..f56ad728 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp @@ -13,7 +13,7 @@ using namespace mlir::spn::low::slp; -void SLPVectorizationPass::runOnOperation() { +void SLPVectorizationPass::runOnFunction() { llvm::StringRef funcName = getOperation().getName(); if (!funcName.contains("task_")) { return; From eb8020caf8b32a44e94ad47f0cb9a0f2103cd5a7 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 21 Apr 2021 03:21:04 +0200 Subject: [PATCH 101/385] Fix: reordering failing because block arguments don't have defining ops. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 3669c0df..1c5b3f31 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -255,6 +255,12 @@ std::pair SLPGraphBuilder::getBest(Mode const& mode, int SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const { if (maxLevel == 0) { + if (last == candidate) { + return 1; + } + if (last.isa() || candidate.isa()) { + return 0; + } if (last.getDefiningOp()->getName() != candidate.getDefiningOp()->getName()) { return 0; } From 354a61ca861927aa15f5c7c7a50bc84b28ff4b97 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 21 Apr 2021 03:22:44 +0200 Subject: [PATCH 102/385] Fix: wrong operation name in SLP dynamic pipeline. --- mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 1a37e388..599d2459 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -46,7 +46,7 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { } if (vectorize && !singleBatchFunctions.empty()) { - OpPassManager dynamicPipeline("SLP pipeline"); + OpPassManager dynamicPipeline("func"); dynamicPipeline.addPass(mlir::spn::createSLPVectorizationPass()); for (auto const& function : singleBatchFunctions) { if (failed(runPipeline(dynamicPipeline, function))) { From 42f1f4dfd9fb44209157be8bb347283f142209e8 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 22 Apr 2021 02:45:58 +0200 Subject: [PATCH 103/385] Incorporated SLP vectorization patterns into SingleTask lowering. --- .../HiSPNtoLoSPNConversionPasses.h | 36 ++-- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 6 + .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 24 ++- .../SLP/SLPVectorizationPatterns.h | 51 +++-- .../Vectorization/VectorizationPatterns.h | 47 +++- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 - .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 12 -- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 70 +++++- .../Vectorization/SLP/SLPSeeding.cpp | 10 +- .../SLP/SLPVectorizationPass.cpp | 48 ----- .../SLP/SLPVectorizationPatterns.cpp | 181 ++-------------- .../VectorizeStructurePatterns.cpp | 201 ++++++++++++++---- mlir/tools/spnc-opt/spnc-opt.cpp | 6 - 13 files changed, 378 insertions(+), 315 deletions(-) delete mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp diff --git a/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h b/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h index 9b51faf1..96be4e80 100644 --- a/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h +++ b/mlir/include/Conversion/HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h @@ -12,40 +12,38 @@ namespace mlir { namespace spn { struct HiSPNtoLoSPNNodeConversionPass : public PassWrapper> { + OperationPass> { public: - explicit HiSPNtoLoSPNNodeConversionPass(bool useLogSpaceComputation) : computeLogSpace{useLogSpaceComputation} {} + explicit HiSPNtoLoSPNNodeConversionPass(bool useLogSpaceComputation) : computeLogSpace{useLogSpaceComputation} {} protected: - void runOnOperation() - override; + void runOnOperation() override; private: - bool computeLogSpace; + bool computeLogSpace; - }; + }; - std::unique_ptr createHiSPNtoLoSPNNodeConversionPass(bool useLogSpaceComputation); + std::unique_ptr createHiSPNtoLoSPNNodeConversionPass(bool useLogSpaceComputation); - struct HiSPNtoLoSPNQueryConversionPass : public PassWrapper> { + struct HiSPNtoLoSPNQueryConversionPass : public PassWrapper> { - public: - explicit HiSPNtoLoSPNQueryConversionPass(bool useLogSpaceComputation) : computeLogSpace{useLogSpaceComputation} {} + public: + explicit HiSPNtoLoSPNQueryConversionPass(bool useLogSpaceComputation) : computeLogSpace{useLogSpaceComputation} {} - protected: - void runOnOperation() - override; + protected: + void runOnOperation() override; - private: - bool computeLogSpace; + private: + bool computeLogSpace; -}; + }; -std::unique_ptr createHiSPNtoLoSPNQueryConversionPass(bool useLogSpaceComputation); + std::unique_ptr createHiSPNtoLoSPNQueryConversionPass(bool useLogSpaceComputation); -} + } } #endif //SPNC_MLIR_INCLUDE_CONVERSION_HISPNTOLOSPN_HISPNTOLOSPNCONVERSIONPASSES_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 0e65e21f..2f8a0919 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -26,6 +26,8 @@ namespace mlir { bool isUniform() const; bool contains(Value const& value) const; + bool containsBlockArgs() const; + bool vectorizable() const; size_t numLanes() const; @@ -69,6 +71,10 @@ namespace mlir { SLPNode* getOperand(size_t index) const; std::vector getOperands() const; size_t numOperands() const; + + static SmallVector postOrder(SLPNode* root); + static DenseMap> escapingLanesMap(SLPNode* root); + /* bool operator==(SLPNode const& other) { return std::tie(vectors) == std::tie(other.vectors); diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index bb4786fa..5529e568 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -6,9 +6,11 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H -#include "mlir/IR/Operation.h" -#include "LoSPN/LoSPNOps.h" #include "SLPNode.h" +#include "LoSPN/LoSPNOps.h" +#include "mlir/IR/Operation.h" +#include "mlir/IR/PatternMatch.h" +#include "mlir/Dialect/Vector/VectorOps.h" namespace mlir { namespace spn { @@ -95,6 +97,11 @@ namespace mlir { Operation* firstUser = nullptr; while (begin != end) { for (auto* user : begin->getUsers()) { + if (firstUser) { + // TODO: proper dominance analysis + firstUser->dump(); + } + user->dump(); if (!firstUser || user->isBeforeInBlock(firstUser)) { firstUser = user; } @@ -104,6 +111,19 @@ namespace mlir { return firstUser; } + template + Value broadcastFirstInsertRest(ValueIterator begin, + ValueIterator end, + VectorType const& vectorType, + PatternRewriter& rewriter) { + Value vectorOp = rewriter.create(begin->getLoc(), vectorType, *begin); + unsigned position = 1; + while (++begin != end) { + vectorOp = rewriter.create(begin->getLoc(), *begin, vectorOp, position++); + } + return vectorOp; + } + void dumpOpTree(vector_t const& values); void dumpSLPGraph(SLPNode const& root); void dumpSLPNode(SLPNode const& node); diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 51456593..032719c0 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -13,6 +13,7 @@ #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/IR/PatternMatch.h" +#include "mlir/Transforms/DialectConversion.h" #include "mlir/Rewrite/FrozenRewritePatternList.h" #include "mlir/Rewrite/PatternApplicator.h" #include "llvm/ADT/SmallPtrSet.h" @@ -23,65 +24,73 @@ namespace mlir { namespace low { namespace slp { - /// A custom PatternRewriter for rewriting SLP node vectors. - class SLPVectorPatternRewriter : public mlir::PatternRewriter { - public: - explicit SLPVectorPatternRewriter(mlir::MLIRContext* ctx); - LogicalResult rewrite(SLPNode* root); - }; - template - class SLPVectorizationPattern : public OpRewritePattern { + class SLPVectorizationPattern : public OpConversionPattern { public: - SLPVectorizationPattern(MLIRContext* context, - PatternBenefit benefit, + SLPVectorizationPattern(TypeConverter& typeConverter, + MLIRContext* context, NodeVector* const& vector, DenseMap& vectorizedOps, - SmallPtrSet& erasableOps) : OpRewritePattern{ - context, benefit}, vector{vector}, vectorizedOps{vectorizedOps}, erasableOps{erasableOps} {} + SmallPtrSet& erasableOps) : OpConversionPattern{context}, + vector{vector}, + vectorizedOps{vectorizedOps}, + erasableOps{erasableOps} {} protected: /// The current vector being transformed. NodeVector* const& vector; + /// Vector operations created for the SLP node vectors. DenseMap& vectorizedOps; + SmallPtrSet& erasableOps; }; struct VectorizeConstant : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(ConstantOp constantOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const override; }; struct VectorizeBatchRead : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNBatchRead batchReadOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const override; }; struct VectorizeAdd : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNAdd addOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const override; }; struct VectorizeMul : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNMul mulOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const override; }; struct VectorizeGaussian : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNGaussianLeaf gaussianOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const override; }; static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, + TypeConverter& typeConverter, MLIRContext* context, NodeVector* const& vector, DenseMap& vectorizedOps, SmallPtrSet& erasableOps) { - patterns.insert(context, 2, vector, vectorizedOps, erasableOps); - patterns.insert(context, 2, vector, vectorizedOps, erasableOps); - patterns.insert(context, 2, vector, vectorizedOps, erasableOps); - patterns.insert(context, 2, vector, vectorizedOps, erasableOps); + patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); + patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); + patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); + patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h index 57f2c49c..0a61e221 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h @@ -14,10 +14,51 @@ namespace mlir { namespace spn { - struct VectorizeBatchTask : OpConversionPattern { - + struct VectorizeTask : public OpConversionPattern { + + public: + VectorizeTask(TypeConverter& typeConverter, + MLIRContext* context, + PatternBenefit benefit, + bool requireAllOpsVectorizable) : OpConversionPattern< + low::SPNTask>(typeConverter, context, benefit), requireAllOpsVectorizable{requireAllOpsVectorizable} {} + + protected: + LogicalResult createFunctionIfVectorizable(low::SPNTask task, + ArrayRef operands, + ConversionPatternRewriter& rewriter, + FuncOp* function) const; + + private: using OpConversionPattern::OpConversionPattern; + bool requireAllOpsVectorizable; + }; + + struct VectorizeSingleTask : public VectorizeTask { + + public: + VectorizeSingleTask(TypeConverter& typeConverter, MLIRContext* context, PatternBenefit benefit) : VectorizeTask( + typeConverter, + context, + benefit, + false) {} + + protected: + LogicalResult matchAndRewrite(low::SPNTask task, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const override; + }; + + struct VectorizeBatchTask : public VectorizeTask { + + public: + VectorizeBatchTask(TypeConverter& typeConverter, MLIRContext* context, PatternBenefit benefit) : VectorizeTask( + typeConverter, + context, + benefit, + true) {} + protected: LogicalResult matchAndRewrite(low::SPNTask op, ArrayRef operands, ConversionPatternRewriter& rewriter) const override; @@ -26,7 +67,7 @@ namespace mlir { static void populateLoSPNCPUVectorizationStructurePatterns(OwningRewritePatternList& patterns, MLIRContext* context, TypeConverter& typeConverter) { - patterns.insert(typeConverter, context, 5); + patterns.insert(typeConverter, context, 5); } struct VectorizeBatchRead : public OpConversionPattern { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index 0d743cea..4d6feafe 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -10,7 +10,6 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPSeeding.cpp Vectorization/SLP/SLPGraphBuilder.cpp Vectorization/SLP/SLPUtil.cpp - Vectorization/SLP/SLPVectorizationPass.cpp Vectorization/SLP/SLPVectorizationPatterns.cpp LoSPNtoCPUConversionPasses.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 599d2459..17bb2304 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -10,11 +10,9 @@ #include "LoSPNtoCPU/NodePatterns.h" #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/LoSPNVectorizationTypeConverter.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" -#include "mlir/Pass/PassManager.h" void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { ConversionTarget target(getContext()); @@ -45,16 +43,6 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { signalPassFailure(); } - if (vectorize && !singleBatchFunctions.empty()) { - OpPassManager dynamicPipeline("func"); - dynamicPipeline.addPass(mlir::spn::createSLPVectorizationPass()); - for (auto const& function : singleBatchFunctions) { - if (failed(runPipeline(dynamicPipeline, function))) { - signalPassFailure(); - } - } - } - } std::unique_ptr mlir::spn::createLoSPNtoCPUStructureConversionPass(bool enableVectorization) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 18de42a8..f4d27e97 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -4,6 +4,7 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" @@ -12,7 +13,7 @@ using namespace mlir::spn; using namespace mlir::spn::low; using namespace mlir::spn::low::slp; -// === NodeVector === +// === NodeVector === // NodeVector::NodeVector(vector_t const& values) { assert(!values.empty()); @@ -43,6 +44,18 @@ bool NodeVector::contains(Value const& value) const { return std::find(std::begin(values), std::end(values), value) != std::end(values); } +bool NodeVector::containsBlockArgs() const { + return std::any_of(std::begin(values), std::end(values), [&](Value const& value) { + return value.isa(); + }); +} + +bool NodeVector::vectorizable() const { + return std::all_of(std::begin(values), std::end(values), [&](Value const& value) { + return low::slp::vectorizable(value); + }); +} + size_t NodeVector::numLanes() const { return values.size(); } @@ -73,7 +86,7 @@ Value const& NodeVector::operator[](size_t lane) const { return values[lane]; } -// === SLPNode === +// === SLPNode === // SLPNode::SLPNode(SmallVector const& operations) { addVector(operations); @@ -159,3 +172,56 @@ std::vector SLPNode::getOperands() const { size_t SLPNode::numOperands() const { return operandNodes.size(); } + +// === Utilities === // + +SmallVector SLPNode::postOrder(SLPNode* root) { + SmallVector order; + for (auto* operand : root->getOperands()) { + assert(std::find(std::begin(order), std::end(order), operand) == std::end(order)); + order.append(postOrder(operand)); + } + order.emplace_back(root); + return order; +} + +/// Traverse the entire graph starting at root and gather lanes of each node vector that has escaping uses. +DenseMap> SLPNode::escapingLanesMap(SLPNode* root) { + DenseMap> outsideUses; + for (auto* node : postOrder(root)) { + for (size_t i = 0; i < node->numVectors(); ++i) { + auto* vector = node->getVector(i); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& element = vector->getElement(lane); + // Skip duplicate (splat) values. + if (outsideUses[vector].count(element)) { + continue; + } + outsideUses[vector][element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); + for (size_t j = 0; j < vector->numOperands(); ++j) { + auto* operand = vector->getOperand(j); + assert(outsideUses[operand][operand->getElement(lane)] > 0); + outsideUses[operand][operand->getElement(lane)]--; + } + } + } + } + + DenseMap> escapingLanes; + for (auto const& entry : outsideUses) { + auto* vector = entry.first; + for (auto const& useAndCount : entry.second) { + auto const& value = useAndCount.first; + auto const& count = useAndCount.second; + if (count > 0) { + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + if (vector->getElement(lane) == value) { + escapingLanes[vector].emplace_back(lane); + break; + } + } + } + } + } + return escapingLanes; +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index e797befa..510e7050 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -39,16 +39,20 @@ vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { rootOp->walk([&](Operation* op) { if (!vectorizable(op)) { - return; + return WalkResult::advance(); } - auto const& value = op->getResult(0); + auto value = op->getResult(0); auto const& depth = opDepths.lookup(value); if (depth < log2(width)) { - return; + return WalkResult::advance(); } bool needsNewSeed = true; for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { if (seed.size() < width && opDepths.lookup(seed.front()) == depth) { + // Cannot use values for seeds that are defined in different scopes. + if (seed.front().getParentRegion() != value.getParentRegion()) { + continue; + } seed.emplace_back(value); needsNewSeed = false; break; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp deleted file mode 100644 index f56ad728..00000000 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#include "LoSPN/LoSPNDialect.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" -#include "LoSPNtoCPU/Vectorization/TargetInformation.h" -#include "mlir/Dialect/Linalg/IR/LinalgOps.h" - -using namespace mlir::spn::low::slp; - -void SLPVectorizationPass::runOnFunction() { - llvm::StringRef funcName = getOperation().getName(); - if (!funcName.contains("task_")) { - return; - } - - auto function = getOperation(); - - auto& seedAnalysis = getAnalysis(); - - auto computationType = function.getArguments().back().getType().dyn_cast().getElementType(); - auto width = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - - auto const& seed = seedAnalysis.getSeed(width, SearchMode::UseBeforeDef); - assert(!seed.empty() && "couldn't find a seed!"); - // dumpOpTree(seed); - SLPGraphBuilder builder{3}; - auto graph = builder.build(seed); - // dumpSLPGraph(*graph); - // ==== // - - SLPVectorPatternRewriter rewriter(&getContext()); - if (failed(rewriter.rewrite(graph.get()))) { - signalPassFailure(); - } - - getOperation()->dump(); - -} - -std::unique_ptr mlir::spn::createSLPVectorizationPass() { - return std::make_unique(); -} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 442ae869..688b12f3 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -18,19 +18,6 @@ using namespace mlir::spn::low::slp; // Helper functions in anonymous namespace. namespace { - template - Value broadcastFirstInsertRest(ValueIterator begin, - ValueIterator end, - VectorType const& vectorType, - PatternRewriter& rewriter) { - Value vectorOp = rewriter.create(begin->getLoc(), vectorType, *begin); - unsigned position = 1; - while (++begin != end) { - vectorOp = rewriter.create(begin->getLoc(), *begin, vectorOp, position++); - } - return vectorOp; - } - template DenseElementsAttr denseFloatingPoints(AttributeIterator begin, AttributeIterator end, VectorType const& vectorType) { if (vectorType.getElementType().cast().getWidth() == 32) { @@ -65,149 +52,11 @@ namespace { return DenseElementsAttr::get(vectorType, static_cast>(array)); } - llvm::SmallVector postOrder(SLPNode* root) { - llvm::SmallVector order; - for (auto* operand : root->getOperands()) { - assert(std::find(std::begin(order), std::end(order), operand) == std::end(order)); - order.append(postOrder(operand)); - } - order.emplace_back(root); - return order; - } - - DenseMap> getEscapingLanesMap(SLPNode* root) { - DenseMap> outsideUses; - for (auto* node : postOrder(root)) { - for (size_t i = 0; i < node->numVectors(); ++i) { - auto* vector = node->getVector(i); - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& element = vector->getElement(lane); - // Skip duplicate (splat) values. - if (outsideUses[vector].count(element)) { - continue; - } - outsideUses[vector][element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); - for (size_t j = 0; j < vector->numOperands(); ++j) { - auto* operand = vector->getOperand(j); - assert(outsideUses[operand][operand->getElement(lane)] > 0); - outsideUses[operand][operand->getElement(lane)]--; - } - } - } - } - - DenseMap> escapingLanes; - for (auto const& entry : outsideUses) { - auto* vector = entry.first; - for (auto const& useAndCount : entry.second) { - auto const& value = useAndCount.first; - auto const& count = useAndCount.second; - if (count > 0) { - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - if (vector->getElement(lane) == value) { - escapingLanes[vector].emplace_back(lane); - break; - } - } - } - } - } - return escapingLanes; - } - - bool containsBlockArgs(NodeVector* vector) { - return std::any_of(vector->begin(), vector->end(), [&](Value const& value) { - return value.isa(); - }); - } - - template - bool valuesVectorizable(ValueIterator begin, ValueIterator end) { - return std::all_of(begin, end, [&](Value const& value) { - return vectorizable(value); - }); - } - -} - -SLPVectorPatternRewriter::SLPVectorPatternRewriter(mlir::MLIRContext* ctx) : PatternRewriter{ctx} {} - -LogicalResult SLPVectorPatternRewriter::rewrite(SLPNode* root) { - - // The current vector being transformed. - NodeVector* vector = nullptr; - - // Maps individual SLP node vectors to finished vector operations. - DenseMap vectorizedOps; - - // Marks operations as potentially erasable (potentially because they might have escaping uses). - SmallPtrSet erasableOps; - - // Stores escaping uses for vector extractions that might be necessary later on. - auto const& escapingLanes = getEscapingLanesMap(root); - - // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). - SmallPtrSet finishedValues; - - OwningRewritePatternList patterns; - populateSLPVectorizationPatterns(patterns, context, vector, vectorizedOps, erasableOps); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - - PatternApplicator applicator{frozenPatterns}; - applicator.applyDefaultCostModel(); - - // Traverse the SLP graph in postorder and apply the vectorization patterns. - for (auto* node : postOrder(root)) { - - // Also traverse nodes in postorder to properly handle multinodes. - for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { - vector = node->getVector(vectorIndex); - if (!valuesVectorizable(vector->begin(), vector->end())) { - continue; - } - if (containsBlockArgs(vector)) { - auto const& elementType = vector->getElement(0).getType(); - auto const& type = VectorType::get(static_cast(vector->numLanes()), elementType); - setInsertionPoint(firstUser(vector->begin(), vector->end())); - auto vectorOp = broadcastFirstInsertRest(vector->begin(), vector->end(), type, *this); - vectorizedOps[vector] = vectorOp.getDefiningOp(); - } else { - auto* vectorOp = vector->begin()->getDefiningOp(); - if (failed(applicator.matchAndRewrite(vectorOp, *this))) { - vectorOp->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); - } - } - } - - // Create vector extractions for escaping uses & erase superfluous operations. - for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { - vector = node->getVector(vectorIndex); - if (vectorizedOps.count(vector) && erasableOps.count(vector)) { - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& vectorValue = vector->getElement(lane); - if (finishedValues.contains(vectorValue)) { - continue; - } - auto const& lanesToExtract = escapingLanes.lookup(vector); - if (std::find(std::begin(lanesToExtract), std::end(lanesToExtract), lane) != std::end(lanesToExtract)) { - auto const& source = vectorizedOps[vector]->getResult(0); - setInsertionPoint(firstOccurrence(std::begin(vectorValue.getUsers()), std::end(vectorValue.getUsers()))); - auto extractOp = create(vectorValue.getLoc(), source, lane); - vectorValue.replaceAllUsesWith(extractOp.result()); - } else { - vectorValue.dropAllUses(); - } - finishedValues.insert(vectorValue); - eraseOp(vectorValue.getDefiningOp()); - } - } - } - } - - return success(); } -LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { +LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const { auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); @@ -233,7 +82,9 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR return success(); } -LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { +LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const { auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); @@ -256,8 +107,10 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt return success(); } -LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - +LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const { +/* auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); @@ -281,12 +134,14 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri vectorizedOps[vector] = vectorAddOp; erasableOps.insert(vector); - +*/ return success(); } -LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - +LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const { +/* auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); @@ -310,11 +165,13 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewri vectorizedOps[vector] = vectorAddOp; erasableOps.insert(vector); - +*/ return success(); } -LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { +LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, + ArrayRef operands, + ConversionPatternRewriter& rewriter) const { auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index 50e293b7..a37b7c50 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -3,72 +3,201 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/TargetInformation.h" -#include "llvm/Support/FormatVariadic.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "mlir/Dialect/SCF/SCF.h" -#include "mlir/IR/BuiltinOps.h" +#include "mlir/IR/BlockAndValueMapping.h" +#include "mlir/Transforms/GreedyPatternRewriteDriver.h" +#include "llvm/Support/FormatVariadic.h" -mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::low::SPNTask op, - llvm::ArrayRef operands, - mlir::ConversionPatternRewriter& rewriter) const { +mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low::SPNTask task, + ArrayRef operands, + ConversionPatternRewriter& rewriter, + FuncOp* function) const { static int taskCount = 0; - if (op.batchSize() <= 1) { - return rewriter.notifyMatchFailure(op, - "Specialized for batch vectorization, does not match for batchSize == 1"); - } - assert(operands.back().getType().isa()); auto computationType = operands.back().getType().dyn_cast().getElementType(); auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); if (hwVectorWidth <= 1) { - return rewriter.notifyMatchFailure(op, + return rewriter.notifyMatchFailure(task, llvm::formatv( "No vectorization possible for data-type {} on the requested target", computationType)); } - // Check if all nodes can be vectorized before trying to do so. - auto allVectorizable = op.body().walk([hwVectorWidth](low::LoSPNVectorizable vOp) { - if (!vOp.isVectorizable(hwVectorWidth)) { - vOp.emitRemark() << "Operation cannot be vectorized with vector width " << hwVectorWidth; - return WalkResult::interrupt(); - } - return WalkResult::advance(); - }); + if (requireAllOpsVectorizable) { + // Check if all nodes can be vectorized before trying to do so. + auto allVectorizable = task.body().walk([hwVectorWidth](low::LoSPNVectorizable vOp) { + if (!vOp.isVectorizable(hwVectorWidth)) { + vOp.emitRemark() << "Operation cannot be vectorized with vector width " << hwVectorWidth; + return WalkResult::interrupt(); + } + return WalkResult::advance(); + }); - if (allVectorizable.wasInterrupted()) { - return rewriter.notifyMatchFailure(op, "Not all nested operations can be vectorized, aborting vectorization"); + if (allVectorizable.wasInterrupted()) { + return rewriter.notifyMatchFailure(task, "Not all nested operations can be vectorized, aborting vectorization"); + } } // Let the user know which vector width will be used. - op->emitRemark() << "Attempting to vectorize with vector width " << hwVectorWidth - << " for data-type " << computationType; + task->emitRemark() << "Attempting to vectorize with vector width " << hwVectorWidth << " for data-type " + << computationType; // Emit a warning if the target vector width does not divide the requested batch size. // This will cause a part of each batch (batchSize % vectorWidth elements) to be processed // by the scalar epilog loop instead of the vectorized loop. - if ((op.batchSize() % hwVectorWidth) != 0) { - op.emitWarning() << "The target vector width " << hwVectorWidth - << " does not divide the requested batch size " << op.batchSize() - << "; This can result in degraded performance. " - << "Choose the batch size as a multiple of the vector width " - << hwVectorWidth; + if ((task.batchSize() % hwVectorWidth) != 0) { + task.emitWarning() << "The target vector width " << hwVectorWidth << " does not divide the requested batch size " + << task.batchSize() << "; This can result in degraded performance. " + << "Choose the batch size as a multiple of the vector width " << hwVectorWidth; } - auto restore = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointToStart(op->getParentOfType().getBody()); + rewriter.setInsertionPointToStart(task->getParentOfType().getBody()); SmallVector inputTypes; for (auto operand : operands) { inputTypes.push_back(operand.getType()); } auto funcType = FunctionType::get(rewriter.getContext(), inputTypes, {}); - auto taskFunc = rewriter.create(op->getLoc(), Twine("vec_task_", std::to_string(taskCount++)).str(), - funcType); + *function = rewriter.create(task->getLoc(), Twine("vec_task_", std::to_string(taskCount++)).str(), funcType); + return success(); +} + +mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::low::SPNTask task, + llvm::ArrayRef operands, + mlir::ConversionPatternRewriter& rewriter) const { + + if (task.batchSize() > 1) { + return rewriter.notifyMatchFailure(task, + "Specialized for single batch vectorization, does not match for batchSize > 1"); + } + + auto restore = rewriter.saveInsertionPoint(); + + FuncOp taskFunc; + if (failed(createFunctionIfVectorizable(task, operands, rewriter, &taskFunc))) { + return failure(); + } + + assert(operands.back().getType().isa()); + auto computationType = operands.back().getType().dyn_cast().getElementType(); + auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); + + auto taskBlock = taskFunc.addEntryBlock(); + rewriter.setInsertionPointToStart(taskBlock); + rewriter.mergeBlocks(&task.body().front(), taskBlock, /*task.body().front().getArguments()*/{}); + + // Apply SLP vectorization. + task->emitRemark() << "Computing new seed for SLP vectorization..."; + low::slp::SeedAnalysis seedAnalysis{taskFunc}; + auto const& seed = seedAnalysis.getSeed(hwVectorWidth, low::slp::SearchMode::UseBeforeDef); + assert(!seed.empty() && "couldn't find a seed!"); + low::slp::dumpOpTree(seed); + seed.front().getDefiningOp()->getBlock()->dump(); + low::slp::SLPGraphBuilder builder{3}; + auto graph = builder.build(seed); + + task->emitRemark() << "Transforming SLP graph back into vectorized ops..."; + // Maps individual SLP node vectors to finished vector operations. + DenseMap vectorizedOps; + // Marks operations as potentially erasable (potentially because they might have escaping uses). + SmallPtrSet erasableOps; + // Stores escaping uses for vector extractions that might be necessary later on. + auto const& escapingLanes = low::slp::SLPNode::escapingLanesMap(graph.get()); + // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). + SmallPtrSet finishedValues; + // The current vector being transformed. + low::slp::NodeVector* vector = nullptr; + + OwningRewritePatternList patterns; + populateSLPVectorizationPatterns(patterns, *typeConverter, rewriter.getContext(), vector, vectorizedOps, erasableOps); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + + // Traverse the SLP graph in postorder and apply the vectorization patterns. + for (auto* node : low::slp::SLPNode::postOrder(graph.get())) { + + // Also traverse nodes in postorder to properly handle multinodes. + for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { + vector = node->getVector(vectorIndex); + // This assumes that there exist other vectors that use the current node vector directly (or don't need it), e.g. + // batch reads that get lowered to vector loads instead of using a vector of indices as input. + if (!vector->vectorizable()) { + continue; + } + if (vector->containsBlockArgs()) { + auto const& type = VectorType::get(static_cast(vector->numLanes()), computationType); + auto const& insertionPoint = rewriter.saveInsertionPoint(); + rewriter.setInsertionPoint(low::slp::firstUser(vector->begin(), vector->end())); + auto vectorOp = low::slp::broadcastFirstInsertRest(vector->begin(), vector->end(), type, rewriter); + rewriter.restoreInsertionPoint(insertionPoint); + vectorizedOps[vector] = vectorOp.getDefiningOp(); + } else { + auto* vectorOp = vector->begin()->getDefiningOp(); + if (failed(applyOpPatternsAndFold(vectorOp, frozenPatterns))) { + vectorOp->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); + } + } + } + + // Create vector extractions for escaping uses & erase superfluous operations. + for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { + vector = node->getVector(vectorIndex); + if (vectorizedOps.count(vector) && erasableOps.count(vector)) { + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& vectorValue = vector->getElement(lane); + if (finishedValues.contains(vectorValue)) { + continue; + } + auto const& lanesToExtract = escapingLanes.lookup(vector); + if (std::find(std::begin(lanesToExtract), std::end(lanesToExtract), lane) != std::end(lanesToExtract)) { + auto const& source = vectorizedOps[vector]->getResult(0); + rewriter.setInsertionPoint(low::slp::firstOccurrence(std::begin(vectorValue.getUsers()), + std::end(vectorValue.getUsers()))); + auto extractOp = rewriter.create(vectorValue.getLoc(), source, lane); + vectorValue.replaceAllUsesWith(extractOp.result()); + } else { + vectorValue.dropAllUses(); + } + finishedValues.insert(vectorValue); + rewriter.eraseOp(vectorValue.getDefiningOp()); + } + } + } + } + + rewriter.restoreInsertionPoint(restore); + rewriter.replaceOpWithNewOp(task, taskFunc, operands); + return success(); + +} + +mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::low::SPNTask op, + llvm::ArrayRef operands, + mlir::ConversionPatternRewriter& rewriter) const { + static int taskCount = 0; + + if (op.batchSize() <= 1) { + return rewriter.notifyMatchFailure(op, + "Specialized for batch vectorization, does not match for batchSize == 1"); + } + + auto restore = rewriter.saveInsertionPoint(); + + FuncOp taskFunc; + if (failed(createFunctionIfVectorizable(op, operands, rewriter, &taskFunc))) { + return failure(); + } + + assert(operands.back().getType().isa()); + auto computationType = operands.back().getType().dyn_cast().getElementType(); + auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); + auto taskBlock = taskFunc.addEntryBlock(); rewriter.setInsertionPointToStart(taskBlock); auto numSamples = rewriter.create(op.getLoc(), taskBlock->getArgument(0), 0); @@ -97,7 +226,7 @@ mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::lo if (isa(&node)) { continue; } - auto copy = rewriter.clone(node, mapVectorTaskArgs); + rewriter.clone(node, mapVectorTaskArgs); } // Mark all operations contained in the vectorized loop as vectorized. diff --git a/mlir/tools/spnc-opt/spnc-opt.cpp b/mlir/tools/spnc-opt/spnc-opt.cpp index 4315f046..85c1378b 100644 --- a/mlir/tools/spnc-opt/spnc-opt.cpp +++ b/mlir/tools/spnc-opt/spnc-opt.cpp @@ -17,7 +17,6 @@ #include "LoSPN/LoSPNPasses.h" #include "HiSPNtoLoSPN/HiSPNtoLoSPNConversionPasses.h" #include "LoSPNtoCPU/LoSPNtoCPUConversionPasses.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h" static llvm::cl::opt inputFilename(llvm::cl::Positional, llvm::cl::desc(""), @@ -99,11 +98,6 @@ int main(int argc, char** argv) { return mlir::spn::createLoSPNNodeVectorizationPass(); }); - mlir::registerPass("slp-vectorize", "Run SLP vectorization of the structure for CPU target", - []() -> std::unique_ptr { - return mlir::spn::createSLPVectorizationPass(); - }); - llvm::InitLLVM y(argc, argv); // Register any pass manager command line options. From ee66a0b889cf996304e472fc2bf2156dc031ccb8 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 22 Apr 2021 03:02:45 +0200 Subject: [PATCH 104/385] Removed SLPMode files. --- .../Vectorization/SLP/SLPGraphBuilder.h | 15 +++++++- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.h | 36 ------------------- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 5 --- .../Vectorization/SLP/SLPVectorizationPass.h | 29 --------------- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 - .../Vectorization/SLP/SLPGraphBuilder.cpp | 19 ++++++++-- .../LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp | 23 ------------ 7 files changed, 30 insertions(+), 98 deletions(-) delete mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h delete mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h delete mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index c6251f47..f5461fbf 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -7,7 +7,6 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPHBUILDER_H #include "mlir/IR/Operation.h" -#include "SLPMode.h" #include "SLPNode.h" #include "SLPSeeding.h" @@ -26,6 +25,20 @@ namespace mlir { private: + enum Mode { + // look for a constant + CONST, + // look for a consecutive load to that in the previous lane + LOAD, + // look for an operation of the same opcode + OPCODE, + // look for the exact same operation + SPLAT, + // vectorization has failed, give higher priority to others + FAILED + }; + static Mode modeFromValue(Value const& value); + void buildGraph(NodeVector* vector, SLPNode* currentNode) const; void reorderOperands(SLPNode* multinode) const; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h deleted file mode 100644 index b89edad8..00000000 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPMODE_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPMODE_H - -#include "mlir/IR/Operation.h" - -namespace mlir { - namespace spn { - namespace low { - namespace slp { - - enum Mode { - // look for a constant - CONST, - // look for a consecutive load to that in the previous lane - LOAD, - // look for an operation of the same opcode - OPCODE, - // look for the exact same operation - SPLAT, - // vectorization has failed, give higher priority to others - FAILED - }; - - Mode modeFromValue(Value const& value); - - } - } - } -} - -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPMODE_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index 5529e568..5c926649 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -97,11 +97,6 @@ namespace mlir { Operation* firstUser = nullptr; while (begin != end) { for (auto* user : begin->getUsers()) { - if (firstUser) { - // TODO: proper dominance analysis - firstUser->dump(); - } - user->dump(); if (!firstUser || user->isBeforeInBlock(firstUser)) { firstUser = user; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h deleted file mode 100644 index 3b753caa..00000000 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPass.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H - -#include -#include "mlir/Pass/Pass.h" - -namespace mlir { - namespace spn { - namespace low { - namespace slp { - - struct SLPVectorizationPass : public PassWrapper { - - protected: - void runOnFunction() override; - - }; - } - } - std::unique_ptr createSLPVectorizationPass(); - } -} - -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPVECTORIZATIONPASS_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index 4d6feafe..f704dc85 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -5,7 +5,6 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/VectorizeNodePatterns.cpp Vectorization/TargetInformation.cpp Vectorization/ReplaceGatherWithShuffle.cpp - Vectorization/SLP/SLPMode.cpp Vectorization/SLP/SLPNode.cpp Vectorization/SLP/SLPSeeding.cpp Vectorization/SLP/SLPGraphBuilder.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 1c5b3f31..113eda9a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -180,9 +180,9 @@ void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { } } -std::pair SLPGraphBuilder::getBest(Mode const& mode, - Value const& last, - SmallVector& candidates) const { +std::pair SLPGraphBuilder::getBest(Mode const& mode, + Value const& last, + SmallVector& candidates) const { Value best; Mode resultMode = mode; SmallVector bestCandidates; @@ -282,3 +282,16 @@ int SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate } return scoreSum; } + +SLPGraphBuilder::Mode SLPGraphBuilder::modeFromValue(Value const& value) { + if (value.isa()) { + return SPLAT; + } + auto* definingOp = value.getDefiningOp(); + if (definingOp->hasTrait()) { + return CONST; + } else if (dyn_cast(definingOp)) { + return LOAD; + } + return OPCODE; +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp deleted file mode 100644 index 85f8e427..00000000 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPMode.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// This file is part of the SPNC project. -// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. -// - -#include "LoSPN/LoSPNOps.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPMode.h" - -using namespace mlir; - -mlir::spn::low::slp::Mode mlir::spn::low::slp::modeFromValue(Value const& value) { - if (value.isa()) { - return SPLAT; - } - auto* definingOp = value.getDefiningOp(); - if (definingOp->hasTrait()) { - return CONST; - } else if (dyn_cast(definingOp)) { - return LOAD; - } - return OPCODE; -} - From aa2df7860e60013fcd7cd79c8ec7190d5e554c74 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 22 Apr 2021 05:14:17 +0200 Subject: [PATCH 105/385] Removed unnecessary single task function tracking. --- .../Conversion/LoSPNtoCPU/StructurePatterns.h | 13 ++----------- .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 4 +--- .../lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp | 1 - 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h index 8dc3dd31..c6e2fff3 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h @@ -35,19 +35,11 @@ namespace mlir { struct SingleTaskLowering : OpConversionPattern { - SingleTaskLowering(TypeConverter& typeConverter, - MLIRContext* context, - SmallPtrSet& singleBatchFunctions) - : OpConversionPattern(typeConverter, context), singleBatchFunctions{singleBatchFunctions} {} - using OpConversionPattern::OpConversionPattern; LogicalResult matchAndRewrite(low::SPNTask op, ArrayRef operands, ConversionPatternRewriter& rewriter) const override; - - private: - SmallPtrSet& singleBatchFunctions; }; struct BodyLowering : OpConversionPattern { @@ -61,10 +53,9 @@ namespace mlir { static void populateLoSPNtoCPUStructurePatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter, - SmallPtrSet& singleBatchFunctions) { + TypeConverter& typeConverter) { patterns.insert(typeConverter, context); - patterns.insert(typeConverter, context, singleBatchFunctions); + patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 17bb2304..022ed2d4 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -30,13 +30,11 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { target.addIllegalOp(); OwningRewritePatternList patterns; - // Stores functions that can be SLP-vectorized. - SmallPtrSet singleBatchFunctions; if (vectorize) { // Try to vectorize tasks if vectorization was requested. mlir::spn::populateLoSPNCPUVectorizationStructurePatterns(patterns, &getContext(), typeConverter); } - mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter, singleBatchFunctions); + mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter); FrozenRewritePatternList frozenPatterns(std::move(patterns)); if (failed(applyPartialConversion(getOperation(), target, frozenPatterns))) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp index b11687a8..1e332f6c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp @@ -90,7 +90,6 @@ mlir::LogicalResult mlir::spn::SingleTaskLowering::matchAndRewrite(mlir::spn::lo auto taskFunc = rewriter.create(op->getLoc(), Twine("task_", std::to_string(taskCount++)).str(), funcType); auto taskBlock = taskFunc.addEntryBlock(); - singleBatchFunctions.insert(taskFunc); rewriter.setInsertionPointToStart(taskBlock); // Collect the values replacing the block values of old block inside the task. From ef32e829e7b0a27cadb839340d578bdfe7dcc871 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 23 Apr 2021 01:15:24 +0200 Subject: [PATCH 106/385] Fix: seeding depth computation returning too small depths. --- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 510e7050..148dd0a5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -17,12 +17,11 @@ namespace { DenseMap opDepths; rootOp->walk([&](Operation* op) { unsigned depth = 0; - for (auto const& value : op->getOperands()) { - if (!opDepths.count(value)) { - opDepths[value] = 0; - } else { - depth = std::max(depth, opDepths[value] + 1); + for (auto const& operand : op->getOperands()) { + if (!opDepths.count(operand)) { + opDepths[operand] = 0; } + depth = std::max(depth, opDepths[operand] + 1); } for (auto const& result : op->getResults()) { opDepths[result] = depth; @@ -62,6 +61,7 @@ vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { vector_t seed{value}; seedsByOpName[op->getName().getStringRef()].emplace_back(seed); } + return WalkResult::advance(); }); SmallVector seeds; From 87d6cf5ad207afe982e99e1f99e1ff68d19e6ddb Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 23 Apr 2021 01:17:18 +0200 Subject: [PATCH 107/385] Fix: avoid assertion fail when no seeds can be found. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 148dd0a5..7f1ab503 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -74,6 +74,11 @@ vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { seeds.emplace_back(seed); } } + + if (seeds.empty()) { + return {}; + } + // Sort the seeds such that either the seeds closest to the beginning of the function come first (DefBeforeUse), // or those closest to the return statement (UseBeforeDef). std::sort(seeds.begin(), seeds.end(), [&](auto const& seed1, auto const& seed2) { From 8c0558c8a901cc1970e29063dff03e9e806ba9c2 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 24 Apr 2021 17:14:23 +0200 Subject: [PATCH 108/385] Nested SLP pattern application progress. --- .../Conversion/LoSPNtoCPU/StructurePatterns.h | 9 +- .../SLP/SLPVectorizationPatterns.h | 43 ++++------ .../Vectorization/VectorizationPatterns.h | 11 ++- .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 23 +++-- .../LoSPNtoCPU/StructurePatterns.cpp | 5 +- .../SLP/SLPVectorizationPatterns.cpp | 86 ++++++++++--------- .../VectorizeStructurePatterns.cpp | 73 ++++++++++------ 7 files changed, 140 insertions(+), 110 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h index c6e2fff3..f28d54d2 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h @@ -54,10 +54,15 @@ namespace mlir { static void populateLoSPNtoCPUStructurePatterns(OwningRewritePatternList& patterns, MLIRContext* context, TypeConverter& typeConverter) { - patterns.insert(typeConverter, context); - patterns.insert(typeConverter, context); + patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); } + + static void populateLoSPNtoCPUTaskPatterns(OwningRewritePatternList& patterns, + MLIRContext* context, + TypeConverter& typeConverter) { + patterns.insert(typeConverter, context); + } } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 032719c0..20923ac8 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -13,7 +13,6 @@ #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/IR/PatternMatch.h" -#include "mlir/Transforms/DialectConversion.h" #include "mlir/Rewrite/FrozenRewritePatternList.h" #include "mlir/Rewrite/PatternApplicator.h" #include "llvm/ADT/SmallPtrSet.h" @@ -25,14 +24,13 @@ namespace mlir { namespace slp { template - class SLPVectorizationPattern : public OpConversionPattern { + class SLPVectorizationPattern : public OpRewritePattern { public: - SLPVectorizationPattern(TypeConverter& typeConverter, - MLIRContext* context, + SLPVectorizationPattern(MLIRContext* context, NodeVector* const& vector, - DenseMap& vectorizedOps, - SmallPtrSet& erasableOps) : OpConversionPattern{context}, + DenseMap& vectorizedOps, + SmallPtrSet& erasableOps) : OpRewritePattern{context}, vector{vector}, vectorizedOps{vectorizedOps}, erasableOps{erasableOps} {} @@ -41,56 +39,45 @@ namespace mlir { /// The current vector being transformed. NodeVector* const& vector; /// Vector operations created for the SLP node vectors. - DenseMap& vectorizedOps; + DenseMap& vectorizedOps; SmallPtrSet& erasableOps; }; struct VectorizeConstant : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(ConstantOp constantOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const override; }; struct VectorizeBatchRead : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNBatchRead batchReadOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const override; }; struct VectorizeAdd : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNAdd addOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const override; }; struct VectorizeMul : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNMul mulOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const override; }; struct VectorizeGaussian : public SLPVectorizationPattern { using SLPVectorizationPattern::SLPVectorizationPattern; - LogicalResult matchAndRewrite(SPNGaussianLeaf gaussianOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const override; + LogicalResult matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const override; }; static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, - TypeConverter& typeConverter, MLIRContext* context, NodeVector* const& vector, - DenseMap& vectorizedOps, + DenseMap& vectorizedOps, SmallPtrSet& erasableOps) { - patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); - patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); - patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); - patterns.insert(typeConverter, context, vector, vectorizedOps, erasableOps); + patterns.insert(context, vector, vectorizedOps, erasableOps); + patterns.insert(context, vector, vectorizedOps, erasableOps); + patterns.insert(context, vector, vectorizedOps, erasableOps); + patterns.insert(context, vector, vectorizedOps, erasableOps); } } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h index 0a61e221..1dc44b61 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h @@ -9,7 +9,6 @@ #include "mlir/Transforms/DialectConversion.h" #include "LoSPN/LoSPNDialect.h" #include "LoSPN/LoSPNOps.h" -#include "llvm/Support/Debug.h" namespace mlir { namespace spn { @@ -24,8 +23,8 @@ namespace mlir { low::SPNTask>(typeConverter, context, benefit), requireAllOpsVectorizable{requireAllOpsVectorizable} {} protected: - LogicalResult createFunctionIfVectorizable(low::SPNTask task, - ArrayRef operands, + LogicalResult createFunctionIfVectorizable(low::SPNTask& task, + llvm::ArrayRef const& operands, ConversionPatternRewriter& rewriter, FuncOp* function) const; @@ -64,9 +63,9 @@ namespace mlir { ConversionPatternRewriter& rewriter) const override; }; - static void populateLoSPNCPUVectorizationStructurePatterns(OwningRewritePatternList& patterns, - MLIRContext* context, - TypeConverter& typeConverter) { + static void populateLoSPNtoCPUVectorizationTaskPatterns(OwningRewritePatternList& patterns, + MLIRContext* context, + TypeConverter& typeConverter) { patterns.insert(typeConverter, context, 5); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 022ed2d4..cc92b563 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -27,16 +27,29 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { target.addLegalDialect(); target.addIllegalOp(); - target.addIllegalOp(); + target.addIllegalOp(); OwningRewritePatternList patterns; + mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); + + // We split this pass into two conversion pattern applications because the single task vectorization relies on + // the structure being converted beforehand. Otherwise, the SPNBatchReads wouldn't be converted into vector loads + // since they aren't contained in the SPNBody region like the other operations. + if (failed(applyPartialConversion(getOperation(), target, frozenPatterns))) { + signalPassFailure(); + } + + target.addIllegalOp(); + + patterns = OwningRewritePatternList(); if (vectorize) { - // Try to vectorize tasks if vectorization was requested. - mlir::spn::populateLoSPNCPUVectorizationStructurePatterns(patterns, &getContext(), typeConverter); + mlir::spn::populateLoSPNtoCPUVectorizationTaskPatterns(patterns, &getContext(), typeConverter); + } else { + mlir::spn::populateLoSPNtoCPUTaskPatterns(patterns, &getContext(), typeConverter); } - mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter); + frozenPatterns = FrozenRewritePatternList(std::move(patterns)); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); if (failed(applyPartialConversion(getOperation(), target, frozenPatterns))) { signalPassFailure(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp index 1e332f6c..2a7d7eca 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/StructurePatterns.cpp @@ -7,7 +7,6 @@ #include "LoSPNtoCPU/StructurePatterns.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/Dialect/SCF/SCF.h" -#include "mlir/IR/BuiltinOps.h" mlir::LogicalResult mlir::spn::KernelLowering::matchAndRewrite(mlir::spn::low::SPNKernel op, llvm::ArrayRef operands, @@ -80,6 +79,7 @@ mlir::LogicalResult mlir::spn::SingleTaskLowering::matchAndRewrite(mlir::spn::lo if (op.batchSize() != 1) { return rewriter.notifyMatchFailure(op, "Match only single (batchSize == 1) execution"); } + auto restore = rewriter.saveInsertionPoint(); rewriter.setInsertionPointToStart(op->getParentOfType().getBody()); SmallVector inputTypes; @@ -87,8 +87,7 @@ mlir::LogicalResult mlir::spn::SingleTaskLowering::matchAndRewrite(mlir::spn::lo inputTypes.push_back(operand.getType()); } auto funcType = FunctionType::get(rewriter.getContext(), inputTypes, {}); - auto taskFunc = rewriter.create(op->getLoc(), Twine("task_", std::to_string(taskCount++)).str(), - funcType); + auto taskFunc = rewriter.create(op->getLoc(), Twine("task_", std::to_string(taskCount++)).str(), funcType); auto taskBlock = taskFunc.addEntryBlock(); rewriter.setInsertionPointToStart(taskBlock); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 688b12f3..1b7eeb1d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -5,7 +5,6 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/Dialect/Math/IR/Math.h" #include "mlir/IR/BlockAndValueMapping.h" #include "llvm/Support/FormatVariadic.h" @@ -54,9 +53,11 @@ namespace { } -LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const { +LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { + + if (vectorizedOps.count(vector)) { + return rewriter.notifyMatchFailure(constantOp, "operation's vector has already been created"); + } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); @@ -64,7 +65,7 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal; return success(); } @@ -82,9 +83,11 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, return success(); } -LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const { +LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { + + if (vectorizedOps.count(vector)) { + return rewriter.notifyMatchFailure(batchReadOp, "operation's vector has already been created"); + } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); @@ -92,7 +95,7 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, if (!vector->isUniform() || !consecutiveLoads(vector->begin(), vector->end())) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal; } else { auto batchReadLoc = batchReadOp->getLoc(); @@ -107,71 +110,77 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, return success(); } -LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const { -/* +LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { + + if (vectorizedOps.count(vector)) { + return rewriter.notifyMatchFailure(addOp, "operation's vector has already been created"); + } + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal; return success(); } SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { - auto* operandOp = vectorizedOps[vector->getOperand(i)]; - if (!operandOp) { - return rewriter.notifyMatchFailure(addOp, "operation's operands have not yet been (fully) vectorized"); + if (!vectorizedOps.count(vector->getOperand(i))) { + return rewriter.notifyMatchFailure(addOp, "operation's operands have not yet been vectorized"); } - operands.emplace_back(operandOp->getResult(0)); + auto const& operand = vectorizedOps[vector->getOperand(i)]; + operands.emplace_back(operand); } auto vectorAddOp = rewriter.create(addOp->getLoc(), vectorType, operands); vectorizedOps[vector] = vectorAddOp; erasableOps.insert(vector); -*/ + return success(); } -LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const { -/* +LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { + + if (vectorizedOps.count(vector)) { + return rewriter.notifyMatchFailure(mulOp, "operation's vector has already been created"); + } + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal; return success(); } SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { - auto* operandOp = vectorizedOps[vector->getOperand(i)]; - if (!operandOp) { - return rewriter.notifyMatchFailure(mulOp, "operation's operands have not yet been (fully) vectorized"); + if (!vectorizedOps.count(vector->getOperand(i))) { + return rewriter.notifyMatchFailure(mulOp, "operation's operands have not yet been vectorized"); } - operands.emplace_back(operandOp->getResult(0)); + auto const& operand = vectorizedOps[vector->getOperand(i)]; + operands.emplace_back(operand); } auto vectorAddOp = rewriter.create(mulOp->getLoc(), vectorType, operands); vectorizedOps[vector] = vectorAddOp; erasableOps.insert(vector); -*/ + return success(); } -LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, - ArrayRef operands, - ConversionPatternRewriter& rewriter) const { +LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { + + if (vectorizedOps.count(vector)) { + return rewriter.notifyMatchFailure(gaussianOp, "operation's vector has already been created"); + } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); @@ -184,7 +193,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, if (!vector->isUniform()) { auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal.getDefiningOp(); + vectorizedOps[vector] = vectorVal; return success(); } @@ -220,11 +229,10 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - auto* inputOp = vectorizedOps[vector->getOperand(0)]; - if (!inputOp) { - return rewriter.notifyMatchFailure(gaussianOp, "operation's operands have not yet been (fully) vectorized"); + if (!vectorizedOps.count(vector->getOperand(0))) { + return rewriter.notifyMatchFailure(gaussianOp, "input vector has not yet been vectorized"); } - Value inputVector = inputOp->getResult(0); + Value const& inputVector = vectorizedOps[vector->getOperand(0)]; // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) auto const& gaussianLoc = gaussianOp->getLoc(); @@ -241,13 +249,13 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, // e^(-0.5 * ((x - mean) / stddev)^2)) auto halfVector = rewriter.create(gaussianLoc, denseFloatingPoints(-0.5, vectorType)); gaussianVector = rewriter.create(gaussianLoc, vectorType, halfVector, gaussianVector); - gaussianVector = rewriter.create(gaussianLoc, gaussianVector); + gaussianVector = rewriter.create(gaussianLoc, vectorType, gaussianVector); // e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) auto coefficientVector = rewriter.create(gaussianLoc, coefficients); gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); - vectorizedOps[vector] = gaussianVector.getDefiningOp(); + vectorizedOps[vector] = gaussianVector; erasableOps.insert(vector); return success(); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index a37b7c50..c0687dd1 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -11,11 +11,10 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "mlir/Dialect/SCF/SCF.h" #include "mlir/IR/BlockAndValueMapping.h" -#include "mlir/Transforms/GreedyPatternRewriteDriver.h" #include "llvm/Support/FormatVariadic.h" -mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low::SPNTask task, - ArrayRef operands, +mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low::SPNTask& task, + ArrayRef const& operands, ConversionPatternRewriter& rewriter, FuncOp* function) const { static int taskCount = 0; @@ -50,15 +49,7 @@ mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low:: task->emitRemark() << "Attempting to vectorize with vector width " << hwVectorWidth << " for data-type " << computationType; - // Emit a warning if the target vector width does not divide the requested batch size. - // This will cause a part of each batch (batchSize % vectorWidth elements) to be processed - // by the scalar epilog loop instead of the vectorized loop. - if ((task.batchSize() % hwVectorWidth) != 0) { - task.emitWarning() << "The target vector width " << hwVectorWidth << " does not divide the requested batch size " - << task.batchSize() << "; This can result in degraded performance. " - << "Choose the batch size as a multiple of the vector width " << hwVectorWidth; - } - + auto const& insertionPoint = rewriter.saveInsertionPoint(); rewriter.setInsertionPointToStart(task->getParentOfType().getBody()); SmallVector inputTypes; for (auto operand : operands) { @@ -66,6 +57,7 @@ mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low:: } auto funcType = FunctionType::get(rewriter.getContext(), inputTypes, {}); *function = rewriter.create(task->getLoc(), Twine("vec_task_", std::to_string(taskCount++)).str(), funcType); + rewriter.restoreInsertionPoint(insertionPoint); return success(); } @@ -78,23 +70,32 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l "Specialized for single batch vectorization, does not match for batchSize > 1"); } - auto restore = rewriter.saveInsertionPoint(); + auto const& callPoint = rewriter.saveInsertionPoint(); FuncOp taskFunc; if (failed(createFunctionIfVectorizable(task, operands, rewriter, &taskFunc))) { return failure(); } - assert(operands.back().getType().isa()); - auto computationType = operands.back().getType().dyn_cast().getElementType(); - auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - auto taskBlock = taskFunc.addEntryBlock(); rewriter.setInsertionPointToStart(taskBlock); - rewriter.mergeBlocks(&task.body().front(), taskBlock, /*task.body().front().getArguments()*/{}); + + // Collect the values replacing the block values of old block inside the task. + // The first argument is the batch index, in this case (for a single execution), + // we can simply set it to constant zero. + // The other arguments are the arguments of the entry block of this function. + SmallVector blockReplacementArgs; + blockReplacementArgs.push_back(rewriter.create(task.getLoc(), rewriter.getIndexAttr(0))); + for (auto bArg : taskBlock->getArguments()) { + blockReplacementArgs.push_back(bArg); + } + // Inline the content of the Task into the function. + rewriter.mergeBlocks(&task.body().front(), taskBlock, blockReplacementArgs); // Apply SLP vectorization. task->emitRemark() << "Computing new seed for SLP vectorization..."; + auto computationType = operands.back().getType().dyn_cast().getElementType(); + auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); low::slp::SeedAnalysis seedAnalysis{taskFunc}; auto const& seed = seedAnalysis.getSeed(hwVectorWidth, low::slp::SearchMode::UseBeforeDef); assert(!seed.empty() && "couldn't find a seed!"); @@ -102,23 +103,32 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l seed.front().getDefiningOp()->getBlock()->dump(); low::slp::SLPGraphBuilder builder{3}; auto graph = builder.build(seed); + low::slp::dumpSLPGraph(*graph); task->emitRemark() << "Transforming SLP graph back into vectorized ops..."; // Maps individual SLP node vectors to finished vector operations. - DenseMap vectorizedOps; + DenseMap vectorizedOps; // Marks operations as potentially erasable (potentially because they might have escaping uses). SmallPtrSet erasableOps; // Stores escaping uses for vector extractions that might be necessary later on. auto const& escapingLanes = low::slp::SLPNode::escapingLanesMap(graph.get()); // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). - SmallPtrSet finishedValues; + SmallPtrSet finishedValues; // The current vector being transformed. low::slp::NodeVector* vector = nullptr; OwningRewritePatternList patterns; - populateSLPVectorizationPatterns(patterns, *typeConverter, rewriter.getContext(), vector, vectorizedOps, erasableOps); + populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, vectorizedOps, erasableOps); FrozenRewritePatternList frozenPatterns(std::move(patterns)); + // Use a custom pattern driver that does *not* perform folding automatically (which the other rewrite drivers + // such as applyOpPatternsAndFold() would do). Folding would mess up identified SLP-vectorizable constants, which + // aren't necessarily located at the front of the function's body yet. The drivers delete those that aren't at the + // front (including those we identified as SLP-vectorizable!) and create new ones there, resulting in our constant + // SLP-vectorization patterns not being applied to them and messing up operand handling further down the SLP graph. + PatternApplicator applicator(frozenPatterns); + applicator.applyDefaultCostModel(); + // Traverse the SLP graph in postorder and apply the vectorization patterns. for (auto* node : low::slp::SLPNode::postOrder(graph.get())) { @@ -136,10 +146,10 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l rewriter.setInsertionPoint(low::slp::firstUser(vector->begin(), vector->end())); auto vectorOp = low::slp::broadcastFirstInsertRest(vector->begin(), vector->end(), type, rewriter); rewriter.restoreInsertionPoint(insertionPoint); - vectorizedOps[vector] = vectorOp.getDefiningOp(); + vectorizedOps[vector] = vectorOp; } else { auto* vectorOp = vector->begin()->getDefiningOp(); - if (failed(applyOpPatternsAndFold(vectorOp, frozenPatterns))) { + if (failed(applicator.matchAndRewrite(vectorOp, rewriter))) { vectorOp->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); } } @@ -156,13 +166,13 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l } auto const& lanesToExtract = escapingLanes.lookup(vector); if (std::find(std::begin(lanesToExtract), std::end(lanesToExtract), lane) != std::end(lanesToExtract)) { - auto const& source = vectorizedOps[vector]->getResult(0); + auto const& source = vectorizedOps[vector]; rewriter.setInsertionPoint(low::slp::firstOccurrence(std::begin(vectorValue.getUsers()), std::end(vectorValue.getUsers()))); auto extractOp = rewriter.create(vectorValue.getLoc(), source, lane); vectorValue.replaceAllUsesWith(extractOp.result()); } else { - vectorValue.dropAllUses(); + vectorValue.replaceAllUsesWith(vectorizedOps[vector]); } finishedValues.insert(vectorValue); rewriter.eraseOp(vectorValue.getDefiningOp()); @@ -171,8 +181,8 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l } } - rewriter.restoreInsertionPoint(restore); - rewriter.replaceOpWithNewOp(task, taskFunc, operands); + rewriter.restoreInsertionPoint(callPoint); + rewriter.replaceOpWithNewOp(task, taskFunc, operands).dump(); return success(); } @@ -198,6 +208,15 @@ mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::lo auto computationType = operands.back().getType().dyn_cast().getElementType(); auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); + // Emit a warning if the target vector width does not divide the requested batch size. + // This will cause a part of each batch (batchSize % vectorWidth elements) to be processed + // by the scalar epilog loop instead of the vectorized loop. + if ((op.batchSize() % hwVectorWidth) != 0) { + op.emitWarning() << "The target vector width " << hwVectorWidth << " does not divide the requested batch size " + << op.batchSize() << "; This can result in degraded performance. " + << "Choose the batch size as a multiple of the vector width " << hwVectorWidth; + } + auto taskBlock = taskFunc.addEntryBlock(); rewriter.setInsertionPointToStart(taskBlock); auto numSamples = rewriter.create(op.getLoc(), taskBlock->getArgument(0), 0); From 1fa7715701898695f1d60ff248a85dee72f1738f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 24 Apr 2021 17:16:28 +0200 Subject: [PATCH 109/385] Removed some namespace prefixes. --- .../LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index cc92b563..05fded42 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -18,19 +18,19 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { ConversionTarget target(getContext()); target.addLegalDialect(); - target.addLegalDialect(); - target.addLegalDialect(); + target.addLegalDialect(); + target.addLegalDialect(); target.addLegalOp(); target.addLegalOp(); LoSPNtoCPUTypeConverter typeConverter; - target.addLegalDialect(); - target.addIllegalOp(); - target.addIllegalOp(); + target.addLegalDialect(); + target.addIllegalOp(); + target.addIllegalOp(); OwningRewritePatternList patterns; - mlir::spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter); + spn::populateLoSPNtoCPUStructurePatterns(patterns, &getContext(), typeConverter); FrozenRewritePatternList frozenPatterns(std::move(patterns)); // We split this pass into two conversion pattern applications because the single task vectorization relies on @@ -40,13 +40,13 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { signalPassFailure(); } - target.addIllegalOp(); + target.addIllegalOp(); patterns = OwningRewritePatternList(); if (vectorize) { - mlir::spn::populateLoSPNtoCPUVectorizationTaskPatterns(patterns, &getContext(), typeConverter); + spn::populateLoSPNtoCPUVectorizationTaskPatterns(patterns, &getContext(), typeConverter); } else { - mlir::spn::populateLoSPNtoCPUTaskPatterns(patterns, &getContext(), typeConverter); + spn::populateLoSPNtoCPUTaskPatterns(patterns, &getContext(), typeConverter); } frozenPatterns = FrozenRewritePatternList(std::move(patterns)); From b1215d15e05e3102943c257aeb564960f0947577 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sat, 24 Apr 2021 17:17:06 +0200 Subject: [PATCH 110/385] Fix: SPNTask operations not being removed because of illegal gaussian exp ops. --- mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index 05fded42..b7600d70 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -41,6 +41,7 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { } target.addIllegalOp(); + target.addLegalOp(); patterns = OwningRewritePatternList(); if (vectorize) { From 8d3a71eff71392c9381f1e974f7926533de45301 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 02:20:24 +0200 Subject: [PATCH 111/385] Better vector/array parameters. --- .../Vectorization/SLP/SLPGraphBuilder.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 22 ++++++++--------- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 2 +- .../Vectorization/SLP/SLPGraphBuilder.cpp | 8 +++---- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 24 +++++++++---------- .../Vectorization/SLP/SLPSeeding.cpp | 8 +++---- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 2 +- 8 files changed, 33 insertions(+), 37 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index f5461fbf..94b02f32 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -21,7 +21,7 @@ namespace mlir { explicit SLPGraphBuilder(size_t maxLookAhead); - std::unique_ptr build(vector_t const& seed) const; + std::unique_ptr build(ArrayRef const& seed) const; private: diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 2f8a0919..09371720 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -13,16 +13,14 @@ namespace mlir { namespace low { namespace slp { - typedef SmallVector vector_t; - class NodeVector { friend class SLPNode; public: - explicit NodeVector(vector_t const& values); - explicit NodeVector(SmallVector const& operations); + explicit NodeVector(ArrayRef const& values); + explicit NodeVector(ArrayRef const& operations); bool isUniform() const; bool contains(Value const& value) const; @@ -34,14 +32,14 @@ namespace mlir { size_t numOperands() const; NodeVector* getOperand(size_t index) const; - vector_t::const_iterator begin() const; - vector_t::const_iterator end() const; + SmallVectorImpl::const_iterator begin() const; + SmallVectorImpl::const_iterator end() const; Value const& getElement(size_t lane) const; Value const& operator[](size_t lane) const; private: - vector_t values; + SmallVector values; SmallVector> operands; }; @@ -49,8 +47,8 @@ namespace mlir { public: - explicit SLPNode(vector_t const& values); - explicit SLPNode(SmallVector const& operations); + explicit SLPNode(ArrayRef const& values); + explicit SLPNode(ArrayRef const& operations); Value getValue(size_t lane, size_t index) const; void setValue(size_t lane, size_t index, Value const& newValue); @@ -63,11 +61,11 @@ namespace mlir { size_t numLanes() const; size_t numVectors() const; - NodeVector* addVector(vector_t const& values, NodeVector* definingVector); - NodeVector* addVector(SmallVector const& operations); + NodeVector* addVector(ArrayRef const& values, NodeVector* definingVector); + NodeVector* addVector(ArrayRef const& operations); NodeVector* getVector(size_t index) const; - SLPNode* addOperand(vector_t const& values, NodeVector* definingVector); + SLPNode* addOperand(ArrayRef const& values, NodeVector* definingVector); SLPNode* getOperand(size_t index) const; std::vector getOperands() const; size_t numOperands() const; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index d9ce4783..01d88ea0 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -30,7 +30,7 @@ namespace mlir { explicit SeedAnalysis(Operation* rootOp); - vector_t getSeed(unsigned width, SearchMode const& mode) const; + ArrayRef getSeed(unsigned width, SearchMode const& mode) const; private: Operation* rootOp; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index 5c926649..af766262 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -119,7 +119,7 @@ namespace mlir { return vectorOp; } - void dumpOpTree(vector_t const& values); + void dumpOpTree(ArrayRef const& values); void dumpSLPGraph(SLPNode const& root); void dumpSLPNode(SLPNode const& node); void dumpSLPNodeVector(NodeVector const& nodeVector); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 113eda9a..dacae3bf 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -13,7 +13,7 @@ using namespace mlir::spn::low::slp; SLPGraphBuilder::SLPGraphBuilder(size_t maxLookAhead) : maxLookAhead{maxLookAhead} {} -std::unique_ptr SLPGraphBuilder::build(vector_t const& seed) const { +std::unique_ptr SLPGraphBuilder::build(ArrayRef const& seed) const { auto root = std::make_unique(SLPNode{seed}); buildGraph(root->getVector(0), root.get()); return root; @@ -90,7 +90,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](SmallVector const& operands) { return operands[i].getDefiningOp()->getName() == currentOpCode && !escapesMultinode(operands[i], currentNode); })) { - vector_t vectorValues; + SmallVector vectorValues; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { vectorValues.emplace_back(allOperands[lane][i]); } @@ -98,7 +98,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const buildGraph(newVector, currentNode); } else { // TODO: here might be a good place to implement variable vector width - vector_t operandValues; + SmallVector operandValues; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandValues.emplace_back(allOperands[lane][i]); } @@ -116,7 +116,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const // 2. Non-Commutative else { for (size_t i = 0; i < arity; ++i) { - vector_t operandValues; + SmallVector operandValues; for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { auto operand = currentNode->getValue(lane, 0).getDefiningOp()->getOperand(i); operandValues.emplace_back(operand); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index f4d27e97..3739f034 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -5,8 +5,6 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include "LoSPN/LoSPNOps.h" -#include "mlir/Dialect/StandardOps/IR/Ops.h" using namespace mlir; using namespace mlir::spn; @@ -15,7 +13,7 @@ using namespace mlir::spn::low::slp; // === NodeVector === // -NodeVector::NodeVector(vector_t const& values) { +NodeVector::NodeVector(ArrayRef const& values) { assert(!values.empty()); for (auto const& value : values) { assert(value.isa() || value.getDefiningOp()->hasTrait()); @@ -23,7 +21,7 @@ NodeVector::NodeVector(vector_t const& values) { } } -NodeVector::NodeVector(SmallVector const& operations) { +NodeVector::NodeVector(ArrayRef const& operations) { assert(!operations.empty()); for (auto* op : operations) { assert(op->hasTrait()); @@ -69,11 +67,11 @@ NodeVector* NodeVector::getOperand(size_t index) const { return operands[index].get(); } -vector_t::const_iterator NodeVector::begin() const { +SmallVectorImpl::const_iterator NodeVector::begin() const { return values.begin(); } -vector_t::const_iterator NodeVector::end() const { +SmallVectorImpl::const_iterator NodeVector::end() const { return values.end(); } @@ -88,12 +86,12 @@ Value const& NodeVector::operator[](size_t lane) const { // === SLPNode === // -SLPNode::SLPNode(SmallVector const& operations) { - addVector(operations); +SLPNode::SLPNode(ArrayRef const& values) { + addVector(values, nullptr); } -SLPNode::SLPNode(vector_t const& values) { - addVector(values, nullptr); +SLPNode::SLPNode(ArrayRef const& operations) { + addVector(operations); } Value SLPNode::getValue(size_t lane, size_t index) const { @@ -130,7 +128,7 @@ size_t SLPNode::numVectors() const { return vectors.size(); } -NodeVector* SLPNode::addVector(vector_t const& values, NodeVector* definingVector) { +NodeVector* SLPNode::addVector(ArrayRef const& values, NodeVector* definingVector) { auto* newVector = vectors.emplace_back(std::make_shared(values)).get(); if (definingVector) { definingVector->operands.emplace_back(newVector); @@ -138,7 +136,7 @@ NodeVector* SLPNode::addVector(vector_t const& values, NodeVector* definingVecto return newVector; } -NodeVector* SLPNode::addVector(SmallVector const& operations) { +NodeVector* SLPNode::addVector(ArrayRef const& operations) { return vectors.emplace_back(std::make_shared(operations)).get(); } @@ -147,7 +145,7 @@ NodeVector* SLPNode::getVector(size_t index) const { return vectors[index].get(); } -SLPNode* SLPNode::addOperand(vector_t const& values, NodeVector* definingVector) { +SLPNode* SLPNode::addOperand(ArrayRef const& values, NodeVector* definingVector) { auto* operandNode = operandNodes.emplace_back(std::make_unique(values)).get(); if (definingVector) { definingVector->operands.emplace_back(operandNode->vectors.front()); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 7f1ab503..a2486431 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -31,9 +31,9 @@ namespace { } } -vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { +llvm::ArrayRef SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { - llvm::StringMap> seedsByOpName; + llvm::StringMap>> seedsByOpName; auto const& opDepths = getOpDepths(rootOp); rootOp->walk([&](Operation* op) { @@ -58,13 +58,13 @@ vector_t SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { } } if (needsNewSeed) { - vector_t seed{value}; + SmallVector seed{value}; seedsByOpName[op->getName().getStringRef()].emplace_back(seed); } return WalkResult::advance(); }); - SmallVector seeds; + SmallVector> seeds; // Flatten the map that maps opcode to seeds. for (auto const& entry : seedsByOpName) { for (auto const& seed : entry.second) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 95f6c477..a0c831bb 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -99,7 +99,7 @@ void mlir::spn::low::slp::dumpSLPNodeVector(const mlir::spn::low::slp::NodeVecto llvm::dbgs() << "\n"; } -void mlir::spn::low::slp::dumpOpTree(const vector_t& values) { +void mlir::spn::low::slp::dumpOpTree(ArrayRef const& values) { DenseMap nodes; SmallVector> edges; From 4a6829c84570184e3952c1065655eec31266bb85 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 02:20:39 +0200 Subject: [PATCH 112/385] Better SLP pattern failure handling. --- .../SLP/SLPVectorizationPatterns.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 1b7eeb1d..b0e89c97 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -56,7 +56,7 @@ namespace { LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { if (vectorizedOps.count(vector)) { - return rewriter.notifyMatchFailure(constantOp, "operation's vector has already been created"); + return constantOp->emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); @@ -86,7 +86,7 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { if (vectorizedOps.count(vector)) { - return rewriter.notifyMatchFailure(batchReadOp, "operation's vector has already been created"); + return batchReadOp->emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); @@ -113,7 +113,7 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { if (vectorizedOps.count(vector)) { - return rewriter.notifyMatchFailure(addOp, "operation's vector has already been created"); + return addOp->emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); @@ -129,7 +129,7 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { if (!vectorizedOps.count(vector->getOperand(i))) { - return rewriter.notifyMatchFailure(addOp, "operation's operands have not yet been vectorized"); + return addOp->emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); } auto const& operand = vectorizedOps[vector->getOperand(i)]; operands.emplace_back(operand); @@ -146,7 +146,7 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { if (vectorizedOps.count(vector)) { - return rewriter.notifyMatchFailure(mulOp, "operation's vector has already been created"); + return mulOp->emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); @@ -162,7 +162,7 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewri SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { if (!vectorizedOps.count(vector->getOperand(i))) { - return rewriter.notifyMatchFailure(mulOp, "operation's operands have not yet been vectorized"); + return mulOp->emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); } auto const& operand = vectorizedOps[vector->getOperand(i)]; operands.emplace_back(operand); @@ -179,7 +179,7 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewri LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { if (vectorizedOps.count(vector)) { - return rewriter.notifyMatchFailure(gaussianOp, "operation's vector has already been created"); + return gaussianOp->emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); @@ -230,7 +230,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat // Grab the input vector. if (!vectorizedOps.count(vector->getOperand(0))) { - return rewriter.notifyMatchFailure(gaussianOp, "input vector has not yet been vectorized"); + return gaussianOp->emitError("input vector has not yet been vectorized"); } Value const& inputVector = vectorizedOps[vector->getOperand(0)]; From f0242ac05b3ff306116762aeab2daa78d8b641fb Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 02:58:44 +0200 Subject: [PATCH 113/385] Fix: multinode dumping printing too many newlines. --- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index a0c831bb..2a9c861d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -63,8 +63,8 @@ bool mlir::spn::low::slp::consecutiveLoads(Value const& lhs, Value const& rhs) { void mlir::spn::low::slp::dumpSLPNode(mlir::spn::low::slp::SLPNode const& node) { for (size_t i = node.numVectors(); i-- > 0;) { dumpSLPNodeVector(*node.getVector(i)); - llvm::dbgs() << "\n"; } + llvm::dbgs() << "\n"; } // Helper functions in an anonymous namespace. From 4e92484d9868a91b91fd53f48bbebcde3d4d179a Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 02:59:44 +0200 Subject: [PATCH 114/385] Fix: getLookAheadScore failing when block arguments are involved. --- .../Vectorization/SLP/SLPGraphBuilder.cpp | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index dacae3bf..0cc44980 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -254,30 +254,22 @@ std::pair SLPGraphBuilder::getBest(Mode const& mod } int SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const { - if (maxLevel == 0) { + if (maxLevel == 0 || last.isa() || candidate.isa()) { if (last == candidate) { return 1; } - if (last.isa() || candidate.isa()) { - return 0; - } - if (last.getDefiningOp()->getName() != candidate.getDefiningOp()->getName()) { - return 0; + if (last.getDefiningOp() && consecutiveLoads(last, candidate)) { + return 1; } - if (last.getDefiningOp()) { - return consecutiveLoads(last, candidate) ? 1 : 0; + if (!last.isa() && !candidate.isa()) { + return last.getDefiningOp()->getName() == candidate.getDefiningOp()->getName(); } - return 1; + return 0; } auto scoreSum = 0; for (auto& lastOperand : getOperands(last)) { for (auto& candidateOperand : getOperands(candidate)) { - // Can be null if the operand is a block argument. - if (!lastOperand || !candidateOperand) { - scoreSum += getLookAheadScore(last, candidate, 0); - } else { - scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); - } + scoreSum += getLookAheadScore(lastOperand, candidateOperand, maxLevel - 1); } } return scoreSum; From 9d4db4a18b712e3797729ba885c6e62e6f397b50 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 04:19:05 +0200 Subject: [PATCH 115/385] SLP graph output now includes operand numbers. --- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 2a9c861d..d80fdae9 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -208,8 +208,9 @@ void mlir::spn::low::slp::dumpSLPGraph(SLPNode const& root) { llvm::dbgs() << "\t\n"; llvm::dbgs() << ">];\n"; - for (auto const& operand : node->getOperands()) { - llvm::dbgs() << "node_" << node << "->" << "node_" << operand << ";\n"; + for (size_t i = 0; i < node->numOperands(); ++i) { + auto const& operand = node->getOperand(i); + llvm::dbgs() << "node_" << node << "->" << "node_" << operand << "[label=\"" << std::to_string(i) << "\"];\n"; worklist.emplace(operand); } } From 35567498b28eb0b38104117a75714513d382e693 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 04:20:05 +0200 Subject: [PATCH 116/385] Fix: escaping lanes computation crashing, --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 3739f034..a1dc6a7c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -185,38 +185,33 @@ SmallVector SLPNode::postOrder(SLPNode* root) { /// Traverse the entire graph starting at root and gather lanes of each node vector that has escaping uses. DenseMap> SLPNode::escapingLanesMap(SLPNode* root) { - DenseMap> outsideUses; + DenseMap outsideUses; for (auto* node : postOrder(root)) { - for (size_t i = 0; i < node->numVectors(); ++i) { + for (size_t i = node->numVectors(); i-- > 0;) { auto* vector = node->getVector(i); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); // Skip duplicate (splat) values. - if (outsideUses[vector].count(element)) { + if (outsideUses.count(element)) { continue; } - outsideUses[vector][element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); + outsideUses[element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); for (size_t j = 0; j < vector->numOperands(); ++j) { auto* operand = vector->getOperand(j); - assert(outsideUses[operand][operand->getElement(lane)] > 0); - outsideUses[operand][operand->getElement(lane)]--; + assert(outsideUses[operand->getElement(lane)] > 0); + outsideUses[operand->getElement(lane)]--; } } } } DenseMap> escapingLanes; - for (auto const& entry : outsideUses) { - auto* vector = entry.first; - for (auto const& useAndCount : entry.second) { - auto const& value = useAndCount.first; - auto const& count = useAndCount.second; - if (count > 0) { - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - if (vector->getElement(lane) == value) { - escapingLanes[vector].emplace_back(lane); - break; - } + for (auto* node : postOrder(root)) { + for (size_t i = 0; i < node->numVectors(); ++i) { + auto* vector = node->getVector(i); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + if (outsideUses[vector->getElement(lane)] > 0) { + escapingLanes[vector].emplace_back(lane); } } } From 90bdf4f036f5699863b8aae0b01981684ffb2c2b Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 04:49:39 +0200 Subject: [PATCH 117/385] Removed some unused code. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 09371720..0b2228ac 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -73,16 +73,6 @@ namespace mlir { static SmallVector postOrder(SLPNode* root); static DenseMap> escapingLanesMap(SLPNode* root); -/* - bool operator==(SLPNode const& other) { - return std::tie(vectors) == std::tie(other.vectors); - } - - bool operator!=(SLPNode const& other) { - return !(*this == other); - } -*/ - private: SmallVector> vectors; SmallVector> operandNodes; From 5f0b4be503f97b3250560243f190498d5e84a7ca Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 04:50:19 +0200 Subject: [PATCH 118/385] Fix: double free error due to SLPNodes not copying shared pointers. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index a1dc6a7c..ae1b4cbc 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -129,11 +129,11 @@ size_t SLPNode::numVectors() const { } NodeVector* SLPNode::addVector(ArrayRef const& values, NodeVector* definingVector) { - auto* newVector = vectors.emplace_back(std::make_shared(values)).get(); + auto newVector = vectors.emplace_back(std::make_shared(values)); if (definingVector) { definingVector->operands.emplace_back(newVector); } - return newVector; + return newVector.get(); } NodeVector* SLPNode::addVector(ArrayRef const& operations) { @@ -146,11 +146,11 @@ NodeVector* SLPNode::getVector(size_t index) const { } SLPNode* SLPNode::addOperand(ArrayRef const& values, NodeVector* definingVector) { - auto* operandNode = operandNodes.emplace_back(std::make_unique(values)).get(); + auto const& operandNode = operandNodes.emplace_back(std::make_unique(values)); if (definingVector) { definingVector->operands.emplace_back(operandNode->vectors.front()); } - return operandNode; + return operandNode.get(); } SLPNode* SLPNode::getOperand(size_t index) const { From 4f2e86ea9b5a99e116a6bc490e8d9b7ee6578c66 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 25 Apr 2021 14:35:54 +0200 Subject: [PATCH 119/385] Use sets instead of vectors. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 3 ++- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 11 ++++++++--- .../Vectorization/VectorizeStructurePatterns.cpp | 11 +++++------ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 0b2228ac..ab91b6c3 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -7,6 +7,7 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPNODE_H #include "mlir/IR/Operation.h" +#include "llvm/ADT/SmallPtrSet.h" namespace mlir { namespace spn { @@ -71,7 +72,7 @@ namespace mlir { size_t numOperands() const; static SmallVector postOrder(SLPNode* root); - static DenseMap> escapingLanesMap(SLPNode* root); + static DenseMap>> escapingLanesMap(SLPNode* root); private: SmallVector> vectors; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index ae1b4cbc..4381b254 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -184,7 +184,7 @@ SmallVector SLPNode::postOrder(SLPNode* root) { } /// Traverse the entire graph starting at root and gather lanes of each node vector that has escaping uses. -DenseMap> SLPNode::escapingLanesMap(SLPNode* root) { +DenseMap>> SLPNode::escapingLanesMap(SLPNode* root) { DenseMap outsideUses; for (auto* node : postOrder(root)) { for (size_t i = node->numVectors(); i-- > 0;) { @@ -205,13 +205,18 @@ DenseMap> SLPNode::escapingLanesMap(SLPNode* } } - DenseMap> escapingLanes; + DenseMap>> escapingLanes; for (auto* node : postOrder(root)) { for (size_t i = 0; i < node->numVectors(); ++i) { auto* vector = node->getVector(i); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { if (outsideUses[vector->getElement(lane)] > 0) { - escapingLanes[vector].emplace_back(lane); + if (escapingLanes.count(vector)) { + escapingLanes[vector]->insert(lane); + } else { + SmallPtrSet lanes{lane}; + escapingLanes[vector] = std::make_shared>(lanes); + } } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index c0687dd1..dfe9cbd7 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -99,11 +99,11 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l low::slp::SeedAnalysis seedAnalysis{taskFunc}; auto const& seed = seedAnalysis.getSeed(hwVectorWidth, low::slp::SearchMode::UseBeforeDef); assert(!seed.empty() && "couldn't find a seed!"); - low::slp::dumpOpTree(seed); - seed.front().getDefiningOp()->getBlock()->dump(); + // low::slp::dumpOpTree(seed); + // seed.front().getDefiningOp()->getBlock()->dump(); low::slp::SLPGraphBuilder builder{3}; auto graph = builder.build(seed); - low::slp::dumpSLPGraph(*graph); + // low::slp::dumpSLPGraph(*graph); task->emitRemark() << "Transforming SLP graph back into vectorized ops..."; // Maps individual SLP node vectors to finished vector operations. @@ -164,8 +164,7 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l if (finishedValues.contains(vectorValue)) { continue; } - auto const& lanesToExtract = escapingLanes.lookup(vector); - if (std::find(std::begin(lanesToExtract), std::end(lanesToExtract), lane) != std::end(lanesToExtract)) { + if (escapingLanes.count(vector) && escapingLanes.lookup(vector)->contains(lane)) { auto const& source = vectorizedOps[vector]; rewriter.setInsertionPoint(low::slp::firstOccurrence(std::begin(vectorValue.getUsers()), std::end(vectorValue.getUsers()))); @@ -182,7 +181,7 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l } rewriter.restoreInsertionPoint(callPoint); - rewriter.replaceOpWithNewOp(task, taskFunc, operands).dump(); + rewriter.replaceOpWithNewOp(task, taskFunc, operands); return success(); } From 98336b624f75af6a259c5db0769e69b79b45162b Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 26 Apr 2021 01:43:09 +0200 Subject: [PATCH 120/385] Introduced ConversionState class to keep track of vector information. --- .../Vectorization/SLP/SLPConversion.h | 59 ++++++++ .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 6 +- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 1 - .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 39 ------ .../SLP/SLPVectorizationPatterns.h | 26 ++-- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 + .../Vectorization/SLP/SLPConversion.cpp | 116 ++++++++++++++++ .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 71 ++-------- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 31 ++--- .../SLP/SLPVectorizationPatterns.cpp | 128 ++++++++---------- .../VectorizeStructurePatterns.cpp | 125 +++++++++-------- 11 files changed, 337 insertions(+), 266 deletions(-) create mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h create mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h new file mode 100644 index 00000000..bed62e77 --- /dev/null +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -0,0 +1,59 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPCONVERSION_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPCONVERSION_H + +#include "SLPNode.h" + +namespace mlir { + namespace spn { + namespace low { + namespace slp { + + enum CreationMode { + Constant, + Splat, + BroadcastInsert, + ConsecutiveLoad, + Default + }; + + // Storage for vector information (in anonymous namespace to hide it). + namespace { + struct NodeVectorData { + /// The operation that was created for this node vector. + Optional operation; + /// The way it was created. + Optional mode; + /// The first (i.e. smaller Loc) escaping use for each lane. + DenseMap firstEscapingUses; + }; + } + + class ConversionState { + + public: + + explicit ConversionState(SLPNode* root); + + Value getInsertionPoint(NodeVector* vector) const; + void update(NodeVector* vector, Value const& operation, CreationMode const& mode); + bool isConverted(NodeVector* vector) const; + + Value getValue(NodeVector* vector) const; + CreationMode getCreationMode(NodeVector* vector) const; + Optional getFirstEscapingUse(NodeVector* vector, size_t lane) const; + + private: + DenseMap vectorData; + Value earliestInsertionPoint = nullptr; + }; + } + } + } +} + +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPCONVERSION_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index ab91b6c3..f2bf71f1 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -23,13 +23,13 @@ namespace mlir { explicit NodeVector(ArrayRef const& values); explicit NodeVector(ArrayRef const& operations); - bool isUniform() const; bool contains(Value const& value) const; bool containsBlockArgs() const; bool vectorizable() const; + bool splattable() const; + bool isLeaf() const; size_t numLanes() const; - size_t numOperands() const; NodeVector* getOperand(size_t index) const; @@ -54,7 +54,6 @@ namespace mlir { Value getValue(size_t lane, size_t index) const; void setValue(size_t lane, size_t index, Value const& newValue); - bool isUniform() const; bool contains(Value const& value) const; bool isRootOfNode(NodeVector const& vector) const; @@ -72,7 +71,6 @@ namespace mlir { size_t numOperands() const; static SmallVector postOrder(SLPNode* root); - static DenseMap>> escapingLanesMap(SLPNode* root); private: SmallVector> vectors; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index 01d88ea0..299aafc0 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -8,7 +8,6 @@ #include "mlir/IR/Operation.h" #include "SLPNode.h" -#include namespace mlir { namespace spn { diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index af766262..b52e9a6d 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -20,9 +20,6 @@ namespace mlir { bool vectorizable(Operation* op); bool vectorizable(Value const& value); - bool isBeforeInBlock(Operation* lhs, Operation* rhs); - bool isBeforeInBlock(Value const& lhs, Value const& rhs); - bool consecutiveLoads(Value const& lhs, Value const& rhs); template @@ -70,42 +67,6 @@ namespace mlir { return true; } - template - typename std::iterator_traits::value_type firstOccurrence(Iterator begin, Iterator end) { - typename std::iterator_traits::value_type first = *begin; - while (++begin != end) { - if (!isBeforeInBlock(first, *begin)) { - first = *begin; - } - } - return first; - } - - template - typename std::iterator_traits::value_type lastOccurrence(Iterator begin, Iterator end) { - typename std::iterator_traits::value_type last = *begin; - while (++begin != end) { - if (isBeforeInBlock(last, *begin)) { - last = *begin; - } - } - return last; - } - - template - Operation* firstUser(UsableIterator begin, UsableIterator end) { - Operation* firstUser = nullptr; - while (begin != end) { - for (auto* user : begin->getUsers()) { - if (!firstUser || user->isBeforeInBlock(firstUser)) { - firstUser = user; - } - } - ++begin; - } - return firstUser; - } - template Value broadcastFirstInsertRest(ValueIterator begin, ValueIterator end, diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 20923ac8..41861ff9 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -9,6 +9,7 @@ #include #include "SLPNode.h" +#include "SLPConversion.h" #include "LoSPN/LoSPNDialect.h" #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" @@ -27,21 +28,13 @@ namespace mlir { class SLPVectorizationPattern : public OpRewritePattern { public: - SLPVectorizationPattern(MLIRContext* context, - NodeVector* const& vector, - DenseMap& vectorizedOps, - SmallPtrSet& erasableOps) : OpRewritePattern{context}, - vector{vector}, - vectorizedOps{vectorizedOps}, - erasableOps{erasableOps} {} + SLPVectorizationPattern(MLIRContext* context, NodeVector* const& vector, ConversionState& conversionState) + : OpRewritePattern{context}, vector{vector}, conversionState{conversionState} {} protected: /// The current vector being transformed. NodeVector* const& vector; - /// Vector operations created for the SLP node vectors. - DenseMap& vectorizedOps; - - SmallPtrSet& erasableOps; + ConversionState& conversionState; }; struct VectorizeConstant : public SLPVectorizationPattern { @@ -72,12 +65,11 @@ namespace mlir { static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, NodeVector* const& vector, - DenseMap& vectorizedOps, - SmallPtrSet& erasableOps) { - patterns.insert(context, vector, vectorizedOps, erasableOps); - patterns.insert(context, vector, vectorizedOps, erasableOps); - patterns.insert(context, vector, vectorizedOps, erasableOps); - patterns.insert(context, vector, vectorizedOps, erasableOps); + ConversionState& conversionState) { + patterns.insert(context, vector, conversionState); + patterns.insert(context, vector, conversionState); + patterns.insert(context, vector, conversionState); + patterns.insert(context, vector, conversionState); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index f704dc85..cc6fc50b 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -10,6 +10,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/SLP/SLPGraphBuilder.cpp Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPatterns.cpp + Vectorization/SLP/SLPConversion.cpp LoSPNtoCPUConversionPasses.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp new file mode 100644 index 00000000..8f80c2da --- /dev/null +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -0,0 +1,116 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "LoSPNtoCPU/Vectorization/SLP/SLPConversion.h" + +using namespace mlir; +using namespace mlir::spn::low::slp; + +// Helper functions in anonymous namespace. +namespace { + bool isBeforeInBlock(Value const& lhs, Value const& rhs) { + if (lhs.isa()) { + return !rhs.isa(); + } else if (rhs.isa()) { + return false; + } + return lhs.getDefiningOp()->isBeforeInBlock(rhs.getDefiningOp()); + } + + Value firstUser(Value const& element) { + Operation* first = nullptr; + for (auto* user : element.getUsers()) { + if (!first || user->isBeforeInBlock(first)) { + first = user; + } + } + return first->getResult(0); + } + +} + +ConversionState::ConversionState(SLPNode* root) { + DenseMap outsideUses; + for (auto* node : SLPNode::postOrder(root)) { + for (size_t i = node->numVectors(); i-- > 0;) { + auto* vector = node->getVector(i); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& element = vector->getElement(lane); + // Store the graph's last input to determine the earliest possible insertion point. + if (!earliestInsertionPoint || (vector->isLeaf() && isBeforeInBlock(earliestInsertionPoint, element))) { + earliestInsertionPoint = element; + } + // Skip duplicate (splat) values. + if (outsideUses.count(element)) { + continue; + } + outsideUses[element] = std::distance(std::begin(element.getUsers()), std::end(element.getUsers())); + for (size_t j = 0; j < vector->numOperands(); ++j) { + auto* operand = vector->getOperand(j); + assert(outsideUses[operand->getElement(lane)] > 0); + outsideUses[operand->getElement(lane)]--; + } + } + } + } + + for (auto* node : SLPNode::postOrder(root)) { + for (size_t i = 0; i < node->numVectors(); ++i) { + auto* vector = node->getVector(i); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& element = vector->getElement(lane); + if (outsideUses[element] > 0) { + vectorData[vector].firstEscapingUses.insert(std::make_pair(lane, firstUser(element))); + } + } + } + } +} + +Value ConversionState::getInsertionPoint(NodeVector* vector) const { + Value insertionPoint = earliestInsertionPoint; + for (size_t i = 0; i < vector->numOperands(); ++i) { + auto* operand = vector->getOperand(i); + if (!vectorData.count(operand)) { + continue; + } + assert(vectorData.lookup(operand).operation.hasValue() && "operand has not yet been converted"); + auto const& operandValue = vectorData.lookup(operand).operation.getValue(); + if (isBeforeInBlock(insertionPoint, operandValue)) { + insertionPoint = operandValue; + } + } + return insertionPoint; +} + +void ConversionState::update(NodeVector* vector, Value const& operation, CreationMode const& mode) { + auto& data = vectorData[vector]; + assert(!data.operation.hasValue() && !data.mode.hasValue() && "vector has been converted already"); + data.operation = operation; + data.mode = mode; + if (vector->isLeaf()) { + if (isBeforeInBlock(earliestInsertionPoint, operation)) { + earliestInsertionPoint = operation; + } + } +} + +bool ConversionState::isConverted(NodeVector* vector) const { + return vectorData.lookup(vector).operation.hasValue(); +} + +Value ConversionState::getValue(NodeVector* vector) const { + assert(!isConverted(vector) && "vector has not yet been converted"); + return vectorData.lookup(vector).operation.getValue(); +} + +CreationMode ConversionState::getCreationMode(NodeVector* vector) const { + assert(vectorData.lookup(vector).mode.hasValue() && "vector has not yet been converted"); + return vectorData.lookup(vector).mode.getValue(); +} + +Optional ConversionState::getFirstEscapingUse(NodeVector* vector, size_t lane) const { + return vectorData.lookup(vector).firstEscapingUses.lookup(lane); +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 4381b254..c9810d33 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -29,15 +29,6 @@ NodeVector::NodeVector(ArrayRef const& operations) { } } -bool NodeVector::isUniform() const { - return std::all_of(std::begin(values), std::end(values), [&](Value const& value) { - if (value.isa()) { - return false; - } - return value.getDefiningOp()->getName() == values.front().getDefiningOp()->getName(); - }); -} - bool NodeVector::contains(Value const& value) const { return std::find(std::begin(values), std::end(values), value) != std::end(values); } @@ -54,6 +45,21 @@ bool NodeVector::vectorizable() const { }); } +bool NodeVector::splattable() const { + if (containsBlockArgs()) { + return std::all_of(std::begin(values), std::end(values), [&](Value const& element) { + return element == values.front(); + }); + } + return std::all_of(std::begin(values), std::end(values), [&](Value const& element) { + return OperationEquivalence::isEquivalentTo(element.getDefiningOp(), values.front().getDefiningOp()); + }); +} + +bool NodeVector::isLeaf() const { + return operands.empty(); +} + size_t NodeVector::numLanes() const { return values.size(); } @@ -104,12 +110,6 @@ void SLPNode::setValue(size_t lane, size_t index, Value const& newValue) { vectors[index]->values[lane] = newValue; } -bool SLPNode::isUniform() const { - return std::all_of(std::begin(vectors), std::end(vectors), [&](auto const& nodeVector) { - return nodeVector->isUniform(); - }); -} - bool SLPNode::contains(Value const& value) const { return std::any_of(std::begin(vectors), std::end(vectors), [&](auto const& nodeVector) { return nodeVector->contains(value); @@ -182,44 +182,3 @@ SmallVector SLPNode::postOrder(SLPNode* root) { order.emplace_back(root); return order; } - -/// Traverse the entire graph starting at root and gather lanes of each node vector that has escaping uses. -DenseMap>> SLPNode::escapingLanesMap(SLPNode* root) { - DenseMap outsideUses; - for (auto* node : postOrder(root)) { - for (size_t i = node->numVectors(); i-- > 0;) { - auto* vector = node->getVector(i); - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& element = vector->getElement(lane); - // Skip duplicate (splat) values. - if (outsideUses.count(element)) { - continue; - } - outsideUses[element] = std::distance(std::begin(element.getUses()), std::end(element.getUses())); - for (size_t j = 0; j < vector->numOperands(); ++j) { - auto* operand = vector->getOperand(j); - assert(outsideUses[operand->getElement(lane)] > 0); - outsideUses[operand->getElement(lane)]--; - } - } - } - } - - DenseMap>> escapingLanes; - for (auto* node : postOrder(root)) { - for (size_t i = 0; i < node->numVectors(); ++i) { - auto* vector = node->getVector(i); - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - if (outsideUses[vector->getElement(lane)] > 0) { - if (escapingLanes.count(vector)) { - escapingLanes[vector]->insert(lane); - } else { - SmallPtrSet lanes{lane}; - escapingLanes[vector] = std::make_shared>(lanes); - } - } - } - } - } - return escapingLanes; -} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index d80fdae9..93459108 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -5,18 +5,20 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" -#include "llvm/ADT/SmallPtrSet.h" #include #include using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::low; +using namespace mlir::spn::low::slp; -bool mlir::spn::low::slp::vectorizable(Operation* op) { +bool slp::vectorizable(Operation* op) { return (op->hasTrait() || op->hasTrait()) && op->hasTrait() && op->getResult(0).getType().isIntOrFloat(); } -bool mlir::spn::low::slp::vectorizable(Value const& value) { +bool slp::vectorizable(Value const& value) { // Block arguments don't have defining ops (they can still be put in a vector by other means). if (auto* definingOp = value.getDefiningOp()) { if (!vectorizable(definingOp)) { @@ -26,20 +28,7 @@ bool mlir::spn::low::slp::vectorizable(Value const& value) { return value.getType().isIntOrFloat(); } -bool mlir::spn::low::slp::isBeforeInBlock(Operation* lhs, Operation* rhs) { - return lhs->isBeforeInBlock(rhs); -} - -bool mlir::spn::low::slp::isBeforeInBlock(Value const& lhs, Value const& rhs) { - if (lhs.isa()) { - return !rhs.isa(); - } else if (rhs.isa()) { - return false; - } - return lhs.getDefiningOp()->isBeforeInBlock(rhs.getDefiningOp()); -} - -bool mlir::spn::low::slp::consecutiveLoads(Value const& lhs, Value const& rhs) { +bool slp::consecutiveLoads(Value const& lhs, Value const& rhs) { if (lhs == rhs || lhs.isa() || rhs.isa()) { return false; } @@ -60,7 +49,7 @@ bool mlir::spn::low::slp::consecutiveLoads(Value const& lhs, Value const& rhs) { return true; } -void mlir::spn::low::slp::dumpSLPNode(mlir::spn::low::slp::SLPNode const& node) { +void slp::dumpSLPNode(SLPNode const& node) { for (size_t i = node.numVectors(); i-- > 0;) { dumpSLPNodeVector(*node.getVector(i)); } @@ -85,7 +74,7 @@ namespace { } } -void mlir::spn::low::slp::dumpSLPNodeVector(const mlir::spn::low::slp::NodeVector& nodeVector) { +void slp::dumpSLPNodeVector(NodeVector const& nodeVector) { for (size_t lane = 0; lane < nodeVector.numLanes(); ++lane) { if (!nodeVector[lane].isa()) { llvm::dbgs() << nodeVector[lane] << " (" << nodeVector[lane].getDefiningOp() << ")"; @@ -99,7 +88,7 @@ void mlir::spn::low::slp::dumpSLPNodeVector(const mlir::spn::low::slp::NodeVecto llvm::dbgs() << "\n"; } -void mlir::spn::low::slp::dumpOpTree(ArrayRef const& values) { +void slp::dumpOpTree(ArrayRef const& values) { DenseMap nodes; SmallVector> edges; @@ -156,7 +145,7 @@ void mlir::spn::low::slp::dumpOpTree(ArrayRef const& values) { llvm::dbgs() << "}\n"; } -void mlir::spn::low::slp::dumpSLPGraph(SLPNode const& root) { +void slp::dumpSLPGraph(SLPNode const& root) { llvm::dbgs() << "digraph debug_graph {\n"; llvm::dbgs() << "rankdir = BT;\n"; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index b0e89c97..4fb7bea2 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -55,56 +55,51 @@ namespace { LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { - if (vectorizedOps.count(vector)) { - return constantOp->emitError("operation's vector has already been created"); + if (conversionState.isConverted(vector)) { + return constantOp.emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); - rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); - - if (!vector->isUniform()) { - auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal; - return success(); - } - SmallVector constants; for (auto const& value : *vector) { constants.emplace_back(value.getDefiningOp().value()); } - auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); - auto constVector = rewriter.create(constantOp->getLoc(), elements); + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); + auto constVector = rewriter.create(constantOp.getLoc(), elements); - vectorizedOps[vector] = constVector; - erasableOps.insert(vector); + conversionState.update(vector, constVector, CreationMode::Constant); return success(); } LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { - if (vectorizedOps.count(vector)) { - return batchReadOp->emitError("operation's vector has already been created"); + if (conversionState.isConverted(vector)) { + return batchReadOp.emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); - rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); - if (!vector->isUniform() || !consecutiveLoads(vector->begin(), vector->end())) { - auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal; + if (!consecutiveLoads(vector->begin(), vector->end())) { + if (vector->splattable()) { + auto const& element = vector->getElement(0); + auto broadcast = rewriter.create(batchReadOp.getLoc(), vectorType, element); + conversionState.update(vector, broadcast, CreationMode::Splat); + } else { + auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); + } } else { - - auto batchReadLoc = batchReadOp->getLoc(); + auto batchReadLoc = batchReadOp.getLoc(); auto memIndex = rewriter.create(batchReadLoc, rewriter.getIndexAttr(batchReadOp.sampleIndex())); ValueRange indices{batchReadOp.batchIndex(), memIndex}; auto vectorLoad = rewriter.create(batchReadLoc, vectorType, batchReadOp.batchMem(), indices); - - vectorizedOps[vector] = vectorLoad; - erasableOps.insert(vector); + conversionState.update(vector, vectorLoad, CreationMode::ConsecutiveLoad); } return success(); @@ -112,88 +107,82 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - if (vectorizedOps.count(vector)) { - return addOp->emitError("operation's vector has already been created"); + if (conversionState.isConverted(vector)) { + return addOp.emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); - rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); - if (!vector->isUniform()) { - auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal; + if (vector->isLeaf()) { + assert(!vector->splattable() && "addition vector should not be a leaf vector if it is splattable"); + auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); return success(); } SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { - if (!vectorizedOps.count(vector->getOperand(i))) { - return addOp->emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); + auto* operand = vector->getOperand(i); + if (!conversionState.isConverted(operand)) { + return addOp.emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); } - auto const& operand = vectorizedOps[vector->getOperand(i)]; - operands.emplace_back(operand); + operands.emplace_back(conversionState.getValue(operand)); } - auto vectorAddOp = rewriter.create(addOp->getLoc(), vectorType, operands); - - vectorizedOps[vector] = vectorAddOp; - erasableOps.insert(vector); + auto vectorAdd = rewriter.create(addOp.getLoc(), vectorType, operands); + conversionState.update(vector, vectorAdd, CreationMode::Default); return success(); } LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - if (vectorizedOps.count(vector)) { - return mulOp->emitError("operation's vector has already been created"); + if (conversionState.isConverted(vector)) { + return mulOp.emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); - rewriter.setInsertionPoint(firstUser(vector->begin(), vector->end())); + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); - if (!vector->isUniform()) { - auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal; + if (vector->isLeaf()) { + assert(!vector->splattable() && "multiplication vector should not be a leaf vector if it is splattable"); + auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); return success(); } SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { - if (!vectorizedOps.count(vector->getOperand(i))) { - return mulOp->emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); + auto* operand = vector->getOperand(i); + if (!conversionState.isConverted(operand)) { + return mulOp.emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); } - auto const& operand = vectorizedOps[vector->getOperand(i)]; - operands.emplace_back(operand); + operands.emplace_back(conversionState.getValue(operand)); } - auto vectorAddOp = rewriter.create(mulOp->getLoc(), vectorType, operands); - - vectorizedOps[vector] = vectorAddOp; - erasableOps.insert(vector); + auto vectorAdd = rewriter.create(mulOp.getLoc(), vectorType, operands); + conversionState.update(vector, vectorAdd, CreationMode::Default); return success(); } LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { - if (vectorizedOps.count(vector)) { - return gaussianOp->emitError("operation's vector has already been created"); + if (conversionState.isConverted(vector)) { + return gaussianOp.emitError("operation's vector has already been created"); } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); - auto const& firstValue = firstOccurrence(vector->begin(), vector->end()); - if (firstValue.isa()) { - rewriter.setInsertionPointAfterValue(firstValue); - } else { - rewriter.setInsertionPoint(firstValue.getDefiningOp()); - } + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); - if (!vector->isUniform()) { - auto vectorVal = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - vectorizedOps[vector] = vectorVal; + if (vector->isLeaf()) { + assert(!vector->splattable() && "gaussian vector should not be a leaf vector if it is splattable"); + auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); return success(); } @@ -229,13 +218,13 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - if (!vectorizedOps.count(vector->getOperand(0))) { - return gaussianOp->emitError("input vector has not yet been vectorized"); + if (conversionState.isConverted(vector->getOperand(0))) { + return gaussianOp.emitError("input vector has not yet been vectorized"); } - Value const& inputVector = vectorizedOps[vector->getOperand(0)]; + Value const& inputVector = conversionState.getValue(vector->getOperand(0)); // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) - auto const& gaussianLoc = gaussianOp->getLoc(); + auto const& gaussianLoc = gaussianOp.getLoc(); // (x - mean) auto meanVector = rewriter.create(gaussianLoc, means); @@ -255,8 +244,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto coefficientVector = rewriter.create(gaussianLoc, coefficients); gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); - vectorizedOps[vector] = gaussianVector; - erasableOps.insert(vector); + conversionState.update(vector, gaussianVector, CreationMode::Default); return success(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index dfe9cbd7..d3eb1f68 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -13,10 +13,15 @@ #include "mlir/IR/BlockAndValueMapping.h" #include "llvm/Support/FormatVariadic.h" -mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low::SPNTask& task, - ArrayRef const& operands, - ConversionPatternRewriter& rewriter, - FuncOp* function) const { +using namespace mlir; +using namespace mlir::spn; +using namespace mlir::spn::low; +using namespace mlir::spn::low::slp; + +LogicalResult VectorizeTask::createFunctionIfVectorizable(SPNTask& task, + ArrayRef const& operands, + ConversionPatternRewriter& rewriter, + FuncOp* function) const { static int taskCount = 0; assert(operands.back().getType().isa()); @@ -50,7 +55,7 @@ mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low:: << computationType; auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPointToStart(task->getParentOfType().getBody()); + rewriter.setInsertionPointToStart(task->getParentOfType().getBody()); SmallVector inputTypes; for (auto operand : operands) { inputTypes.push_back(operand.getType()); @@ -61,13 +66,12 @@ mlir::LogicalResult mlir::spn::VectorizeTask::createFunctionIfVectorizable(low:: return success(); } -mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::low::SPNTask task, - llvm::ArrayRef operands, - mlir::ConversionPatternRewriter& rewriter) const { +LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, + llvm::ArrayRef operands, + ConversionPatternRewriter& rewriter) const { if (task.batchSize() > 1) { - return rewriter.notifyMatchFailure(task, - "Specialized for single batch vectorization, does not match for batchSize > 1"); + return rewriter.notifyMatchFailure(task, "Single batch vectorization does not match for batchSize > 1"); } auto const& callPoint = rewriter.saveInsertionPoint(); @@ -96,29 +100,26 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l task->emitRemark() << "Computing new seed for SLP vectorization..."; auto computationType = operands.back().getType().dyn_cast().getElementType(); auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - low::slp::SeedAnalysis seedAnalysis{taskFunc}; - auto const& seed = seedAnalysis.getSeed(hwVectorWidth, low::slp::SearchMode::UseBeforeDef); + SeedAnalysis seedAnalysis{taskFunc}; + auto const& seed = seedAnalysis.getSeed(hwVectorWidth, SearchMode::UseBeforeDef); assert(!seed.empty() && "couldn't find a seed!"); // low::slp::dumpOpTree(seed); // seed.front().getDefiningOp()->getBlock()->dump(); - low::slp::SLPGraphBuilder builder{3}; + SLPGraphBuilder builder{3}; auto graph = builder.build(seed); // low::slp::dumpSLPGraph(*graph); task->emitRemark() << "Transforming SLP graph back into vectorized ops..."; - // Maps individual SLP node vectors to finished vector operations. - DenseMap vectorizedOps; - // Marks operations as potentially erasable (potentially because they might have escaping uses). - SmallPtrSet erasableOps; - // Stores escaping uses for vector extractions that might be necessary later on. - auto const& escapingLanes = low::slp::SLPNode::escapingLanesMap(graph.get()); + // The current vector being transformed. + NodeVector* vector = nullptr; + + ConversionState conversionState{graph.get()}; + // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). SmallPtrSet finishedValues; - // The current vector being transformed. - low::slp::NodeVector* vector = nullptr; OwningRewritePatternList patterns; - populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, vectorizedOps, erasableOps); + populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, conversionState); FrozenRewritePatternList frozenPatterns(std::move(patterns)); // Use a custom pattern driver that does *not* perform folding automatically (which the other rewrite drivers @@ -130,23 +131,25 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l applicator.applyDefaultCostModel(); // Traverse the SLP graph in postorder and apply the vectorization patterns. - for (auto* node : low::slp::SLPNode::postOrder(graph.get())) { + for (auto* node : SLPNode::postOrder(graph.get())) { // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - // This assumes that there exist other vectors that use the current node vector directly (or don't need it), e.g. - // batch reads that get lowered to vector loads instead of using a vector of indices as input. + dumpSLPNodeVector(*vector); + // Note: continuing here means that there exist other vectors that use the current node vector + // directly (or don't need it), e.g. batch reads that get lowered to vector loads instead of using + // a vector of indices as input. if (!vector->vectorizable()) { continue; } if (vector->containsBlockArgs()) { auto const& type = VectorType::get(static_cast(vector->numLanes()), computationType); auto const& insertionPoint = rewriter.saveInsertionPoint(); - rewriter.setInsertionPoint(low::slp::firstUser(vector->begin(), vector->end())); - auto vectorOp = low::slp::broadcastFirstInsertRest(vector->begin(), vector->end(), type, rewriter); + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + auto vectorOp = broadcastFirstInsertRest(vector->begin(), vector->end(), type, rewriter); rewriter.restoreInsertionPoint(insertionPoint); - vectorizedOps[vector] = vectorOp; + conversionState.update(vector, vectorOp, CreationMode::BroadcastInsert); } else { auto* vectorOp = vector->begin()->getDefiningOp(); if (failed(applicator.matchAndRewrite(vectorOp, rewriter))) { @@ -158,24 +161,31 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l // Create vector extractions for escaping uses & erase superfluous operations. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - if (vectorizedOps.count(vector) && erasableOps.count(vector)) { - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& vectorValue = vector->getElement(lane); - if (finishedValues.contains(vectorValue)) { - continue; - } - if (escapingLanes.count(vector) && escapingLanes.lookup(vector)->contains(lane)) { - auto const& source = vectorizedOps[vector]; - rewriter.setInsertionPoint(low::slp::firstOccurrence(std::begin(vectorValue.getUsers()), - std::end(vectorValue.getUsers()))); - auto extractOp = rewriter.create(vectorValue.getLoc(), source, lane); + // See note above. + if (!conversionState.isConverted(vector)) { + continue; + } + auto const& creationMode = conversionState.getCreationMode(vector); + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& vectorValue = vector->getElement(lane); + if (finishedValues.contains(vectorValue)) { + continue; + } + if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { + finishedValues.insert(vectorValue); + continue; + } + if (auto const& firstEscapingUse = conversionState.getFirstEscapingUse(vector, lane)) { + if (creationMode != CreationMode::Constant) { + rewriter.setInsertionPoint(firstEscapingUse->getDefiningOp()); + auto const& source = conversionState.getValue(vector); + auto extractOp = rewriter.create(vectorValue.getLoc(), source, lane); vectorValue.replaceAllUsesWith(extractOp.result()); - } else { - vectorValue.replaceAllUsesWith(vectorizedOps[vector]); } - finishedValues.insert(vectorValue); - rewriter.eraseOp(vectorValue.getDefiningOp()); } + finishedValues.insert(vectorValue); + rewriter.eraseOp(vectorValue.getDefiningOp()); + } } } @@ -186,14 +196,13 @@ mlir::LogicalResult mlir::spn::VectorizeSingleTask::matchAndRewrite(mlir::spn::l } -mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::low::SPNTask op, - llvm::ArrayRef operands, - mlir::ConversionPatternRewriter& rewriter) const { +LogicalResult VectorizeBatchTask::matchAndRewrite(SPNTask op, + llvm::ArrayRef operands, + ConversionPatternRewriter& rewriter) const { static int taskCount = 0; if (op.batchSize() <= 1) { - return rewriter.notifyMatchFailure(op, - "Specialized for batch vectorization, does not match for batchSize == 1"); + return rewriter.notifyMatchFailure(op, "Specialized for batch vectorization, does not match for batchSize == 1"); } auto restore = rewriter.saveInsertionPoint(); @@ -219,14 +228,14 @@ mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::lo auto taskBlock = taskFunc.addEntryBlock(); rewriter.setInsertionPointToStart(taskBlock); auto numSamples = rewriter.create(op.getLoc(), taskBlock->getArgument(0), 0); - auto vectorWidthConst = rewriter.create(op.getLoc(), rewriter.getIndexAttr(hwVectorWidth)); - auto remainder = rewriter.create(op.getLoc(), numSamples, vectorWidthConst); - auto ubVectorized = rewriter.create(op.getLoc(), numSamples, remainder); + auto vectorWidthConst = rewriter.create(op.getLoc(), rewriter.getIndexAttr(hwVectorWidth)); + auto remainder = rewriter.create(op.getLoc(), numSamples, vectorWidthConst); + auto ubVectorized = rewriter.create(op.getLoc(), numSamples, remainder); // Create the vectorized loop, iterating from 0 to ubVectorized, in steps of hwVectorWidth. - auto lbVectorized = rewriter.create(op.getLoc(), rewriter.getIndexAttr(0)); - auto stepVectorized = rewriter.create(op.getLoc(), rewriter.getIndexAttr(hwVectorWidth)); - auto vectorizedLoop = rewriter.create(op.getLoc(), lbVectorized, ubVectorized, stepVectorized); + auto lbVectorized = rewriter.create(op.getLoc(), rewriter.getIndexAttr(0)); + auto stepVectorized = rewriter.create(op.getLoc(), rewriter.getIndexAttr(hwVectorWidth)); + auto vectorizedLoop = rewriter.create(op.getLoc(), lbVectorized, ubVectorized, stepVectorized); auto& vectorLoopBody = vectorizedLoop.getLoopBody().front(); auto restoreTask = rewriter.saveInsertionPoint(); @@ -255,8 +264,8 @@ mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::lo rewriter.restoreInsertionPoint(restoreTask); // Create the scalar epilog loop, iterating from ubVectorized to numSamples, in steps of 1. - auto stepScalar = rewriter.create(op.getLoc(), rewriter.getIndexAttr(1)); - auto scalarLoop = rewriter.create(op.getLoc(), ubVectorized, numSamples, stepScalar); + auto stepScalar = rewriter.create(op.getLoc(), rewriter.getIndexAttr(1)); + auto scalarLoop = rewriter.create(op.getLoc(), ubVectorized, numSamples, stepScalar); auto& scalarLoopBody = scalarLoop.getLoopBody().front(); restoreTask = rewriter.saveInsertionPoint(); @@ -267,7 +276,7 @@ mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::lo blockReplacementArgs.push_back(bArg); } rewriter.mergeBlockBefore(&op.body().front(), scalarLoopBody.getTerminator(), blockReplacementArgs); - scalarLoopBody.walk([&rewriter](low::SPNReturn ret) { + scalarLoopBody.walk([&rewriter](SPNReturn ret) { assert(ret.returnValues().empty() && "Task return should be empty"); rewriter.eraseOp(ret); }); @@ -276,7 +285,7 @@ mlir::LogicalResult mlir::spn::VectorizeBatchTask::matchAndRewrite(mlir::spn::lo rewriter.create(op->getLoc()); // Insert a call to the newly created task function. rewriter.restoreInsertionPoint(restore); - rewriter.replaceOpWithNewOp(op, taskFunc, operands); + rewriter.replaceOpWithNewOp(op, taskFunc, operands); return success(); } From 556bab07b8401ff6b085420b36305de8e4017ebb Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 26 Apr 2021 03:28:53 +0200 Subject: [PATCH 121/385] Fix: conversion state checking the opposite of what's needed. --- .../Vectorization/SLP/SLPConversion.h | 23 +++++++++---------- .../Vectorization/SLP/SLPConversion.cpp | 5 +++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h index bed62e77..f6e8caa1 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -21,18 +21,6 @@ namespace mlir { Default }; - // Storage for vector information (in anonymous namespace to hide it). - namespace { - struct NodeVectorData { - /// The operation that was created for this node vector. - Optional operation; - /// The way it was created. - Optional mode; - /// The first (i.e. smaller Loc) escaping use for each lane. - DenseMap firstEscapingUses; - }; - } - class ConversionState { public: @@ -48,6 +36,17 @@ namespace mlir { Optional getFirstEscapingUse(NodeVector* vector, size_t lane) const; private: + + struct NodeVectorData { + + /// The operation that was created for this node vector. + Optional operation{None}; + /// The way it was created. + Optional mode{None}; + /// The first (i.e. smaller Loc) escaping use for each lane. + DenseMap firstEscapingUses; + }; + DenseMap vectorData; Value earliestInsertionPoint = nullptr; }; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index 8f80c2da..d2f0d6f5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -102,7 +102,7 @@ bool ConversionState::isConverted(NodeVector* vector) const { } Value ConversionState::getValue(NodeVector* vector) const { - assert(!isConverted(vector) && "vector has not yet been converted"); + assert(isConverted(vector) && "vector has not yet been converted"); return vectorData.lookup(vector).operation.getValue(); } @@ -112,5 +112,8 @@ CreationMode ConversionState::getCreationMode(NodeVector* vector) const { } Optional ConversionState::getFirstEscapingUse(NodeVector* vector, size_t lane) const { + if (!vectorData.lookup(vector).firstEscapingUses.count(lane)) { + return {None}; + } return vectorData.lookup(vector).firstEscapingUses.lookup(lane); } From 673439d2d570fcf1db284bc944e4a1805fedc9f3 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 26 Apr 2021 03:30:42 +0200 Subject: [PATCH 122/385] Some fixes and improvements to the N>1 conversion. --- .../SLP/SLPVectorizationPatterns.cpp | 12 ++++-- .../VectorizeStructurePatterns.cpp | 40 ++++++++----------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 4fb7bea2..ebcd1ec3 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -88,8 +88,8 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt if (!consecutiveLoads(vector->begin(), vector->end())) { if (vector->splattable()) { auto const& element = vector->getElement(0); - auto broadcast = rewriter.create(batchReadOp.getLoc(), vectorType, element); - conversionState.update(vector, broadcast, CreationMode::Splat); + auto vectorOperation = rewriter.create(batchReadOp.getLoc(), vectorType, element); + conversionState.update(vector, vectorOperation, CreationMode::Splat); } else { auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); @@ -102,6 +102,12 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt conversionState.update(vector, vectorLoad, CreationMode::ConsecutiveLoad); } + // Batch reads don't need their input vector operands. They're not vectorizable anyways (MemRefs and indices). + rewriter.eraseOp(conversionState.getValue(vector->getOperand(0)).getDefiningOp()); + rewriter.eraseOp(conversionState.getValue(vector->getOperand(1)).getDefiningOp()); + + assert(conversionState.isConverted(vector)); + return success(); } @@ -218,7 +224,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - if (conversionState.isConverted(vector->getOperand(0))) { + if (!conversionState.isConverted(vector->getOperand(0))) { return gaussianOp.emitError("input vector has not yet been vectorized"); } Value const& inputVector = conversionState.getValue(vector->getOperand(0)); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index d3eb1f68..337daf98 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -137,23 +137,21 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); dumpSLPNodeVector(*vector); - // Note: continuing here means that there exist other vectors that use the current node vector - // directly (or don't need it), e.g. batch reads that get lowered to vector loads instead of using - // a vector of indices as input. - if (!vector->vectorizable()) { - continue; - } if (vector->containsBlockArgs()) { - auto const& type = VectorType::get(static_cast(vector->numLanes()), computationType); - auto const& insertionPoint = rewriter.saveInsertionPoint(); + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), computationType); rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); - auto vectorOp = broadcastFirstInsertRest(vector->begin(), vector->end(), type, rewriter); - rewriter.restoreInsertionPoint(insertionPoint); - conversionState.update(vector, vectorOp, CreationMode::BroadcastInsert); + if (vector->splattable()) { + auto const& element = vector->getElement(0); + auto vectorOp = rewriter.create(element.getLoc(), vectorType, element); + conversionState.update(vector, vectorOp, CreationMode::Splat); + } else { + auto vectorOp = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + conversionState.update(vector, vectorOp, CreationMode::BroadcastInsert); + } } else { auto* vectorOp = vector->begin()->getDefiningOp(); if (failed(applicator.matchAndRewrite(vectorOp, rewriter))) { - vectorOp->emitOpError("SLP pattern application failed (did you forget to specify the pattern?)"); + vectorOp->emitOpError("SLP pattern application failed"); } } } @@ -161,30 +159,26 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // Create vector extractions for escaping uses & erase superfluous operations. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - // See note above. - if (!conversionState.isConverted(vector)) { - continue; - } auto const& creationMode = conversionState.getCreationMode(vector); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& vectorValue = vector->getElement(lane); - if (finishedValues.contains(vectorValue)) { + auto const& element = vector->getElement(lane); + if (finishedValues.contains(element)) { continue; } if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { - finishedValues.insert(vectorValue); + finishedValues.insert(element); continue; } if (auto const& firstEscapingUse = conversionState.getFirstEscapingUse(vector, lane)) { if (creationMode != CreationMode::Constant) { rewriter.setInsertionPoint(firstEscapingUse->getDefiningOp()); auto const& source = conversionState.getValue(vector); - auto extractOp = rewriter.create(vectorValue.getLoc(), source, lane); - vectorValue.replaceAllUsesWith(extractOp.result()); + auto extractOp = rewriter.create(element.getLoc(), source, lane); + element.replaceAllUsesWith(extractOp.result()); } } - finishedValues.insert(vectorValue); - rewriter.eraseOp(vectorValue.getDefiningOp()); + finishedValues.insert(element); + rewriter.eraseOp(element.getDefiningOp()); } } From fe78817f35c030f794822228416995196fc23ee7 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Mon, 26 Apr 2021 03:36:11 +0200 Subject: [PATCH 123/385] Fix: constant operations in use being marked as erased. --- .../Vectorization/VectorizeStructurePatterns.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index 337daf98..7ceeeca2 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -136,7 +136,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - dumpSLPNodeVector(*vector); + // dumpSLPNodeVector(*vector); if (vector->containsBlockArgs()) { auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), computationType); rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); @@ -165,8 +165,8 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, if (finishedValues.contains(element)) { continue; } + finishedValues.insert(element); if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { - finishedValues.insert(element); continue; } if (auto const& firstEscapingUse = conversionState.getFirstEscapingUse(vector, lane)) { @@ -175,11 +175,11 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, auto const& source = conversionState.getValue(vector); auto extractOp = rewriter.create(element.getLoc(), source, lane); element.replaceAllUsesWith(extractOp.result()); + } else { + continue; } } - finishedValues.insert(element); rewriter.eraseOp(element.getDefiningOp()); - } } } From c2ef4d53bb00c0bc292172774f5015043472342a Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 27 Apr 2021 02:14:03 +0200 Subject: [PATCH 124/385] Better illegal vector handling, fixed seed analysis returning broken seeds. --- .../Vectorization/SLP/SLPConversion.h | 13 +++-- .../LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h | 5 +- .../Vectorization/SLP/SLPConversion.cpp | 24 +++++---- .../Vectorization/SLP/SLPSeeding.cpp | 25 +++++---- .../SLP/SLPVectorizationPatterns.cpp | 4 -- .../VectorizeStructurePatterns.cpp | 52 +++++++++++++------ 6 files changed, 73 insertions(+), 50 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h index f6e8caa1..3a6d3fbb 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -14,11 +14,12 @@ namespace mlir { namespace slp { enum CreationMode { + Default, Constant, Splat, BroadcastInsert, ConsecutiveLoad, - Default + Skip }; class ConversionState { @@ -28,12 +29,14 @@ namespace mlir { explicit ConversionState(SLPNode* root); Value getInsertionPoint(NodeVector* vector) const; - void update(NodeVector* vector, Value const& operation, CreationMode const& mode); bool isConverted(NodeVector* vector) const; + void update(NodeVector* vector, Value const& operation, CreationMode const& mode); + void markSkipped(NodeVector* vector); + Value getValue(NodeVector* vector) const; CreationMode getCreationMode(NodeVector* vector) const; - Optional getFirstEscapingUse(NodeVector* vector, size_t lane) const; + Optional getEarliestEscapingUse(NodeVector* vector, size_t lane) const; private: @@ -43,8 +46,8 @@ namespace mlir { Optional operation{None}; /// The way it was created. Optional mode{None}; - /// The first (i.e. smaller Loc) escaping use for each lane. - DenseMap firstEscapingUses; + /// The earliest (i.e. smallest Loc) escaping use for each lane. + DenseMap earliestEscapingUses; }; DenseMap vectorData; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h index 299aafc0..8ec14d09 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h @@ -27,12 +27,13 @@ namespace mlir { public: - explicit SeedAnalysis(Operation* rootOp); + SeedAnalysis(Operation* rootOp, unsigned width); - ArrayRef getSeed(unsigned width, SearchMode const& mode) const; + void fillSeed(SmallVectorImpl& seed, SearchMode const& mode) const; private: Operation* rootOp; + unsigned const width; }; } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index d2f0d6f5..d84c92f0 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -62,7 +62,7 @@ ConversionState::ConversionState(SLPNode* root) { for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); if (outsideUses[element] > 0) { - vectorData[vector].firstEscapingUses.insert(std::make_pair(lane, firstUser(element))); + vectorData[vector].earliestEscapingUses.insert(std::make_pair(lane, firstUser(element))); } } } @@ -73,7 +73,7 @@ Value ConversionState::getInsertionPoint(NodeVector* vector) const { Value insertionPoint = earliestInsertionPoint; for (size_t i = 0; i < vector->numOperands(); ++i) { auto* operand = vector->getOperand(i); - if (!vectorData.count(operand)) { + if (vectorData.lookup(operand).mode == CreationMode::Skip) { continue; } assert(vectorData.lookup(operand).operation.hasValue() && "operand has not yet been converted"); @@ -86,10 +86,10 @@ Value ConversionState::getInsertionPoint(NodeVector* vector) const { } void ConversionState::update(NodeVector* vector, Value const& operation, CreationMode const& mode) { - auto& data = vectorData[vector]; - assert(!data.operation.hasValue() && !data.mode.hasValue() && "vector has been converted already"); - data.operation = operation; - data.mode = mode; + assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].mode.hasValue() + && "vector has been converted already"); + vectorData[vector].operation = operation; + vectorData[vector].mode = mode; if (vector->isLeaf()) { if (isBeforeInBlock(earliestInsertionPoint, operation)) { earliestInsertionPoint = operation; @@ -97,6 +97,12 @@ void ConversionState::update(NodeVector* vector, Value const& operation, Creatio } } +void ConversionState::markSkipped(NodeVector* vector) { + auto& data = vectorData[vector]; + assert(!data.operation.hasValue() && !data.mode.hasValue() && "vector has been converted already"); + data.mode = CreationMode::Skip; +} + bool ConversionState::isConverted(NodeVector* vector) const { return vectorData.lookup(vector).operation.hasValue(); } @@ -111,9 +117,9 @@ CreationMode ConversionState::getCreationMode(NodeVector* vector) const { return vectorData.lookup(vector).mode.getValue(); } -Optional ConversionState::getFirstEscapingUse(NodeVector* vector, size_t lane) const { - if (!vectorData.lookup(vector).firstEscapingUses.count(lane)) { +Optional ConversionState::getEarliestEscapingUse(NodeVector* vector, size_t lane) const { + if (!vectorData.lookup(vector).earliestEscapingUses.count(lane)) { return {None}; } - return vectorData.lookup(vector).firstEscapingUses.lookup(lane); + return vectorData.lookup(vector).earliestEscapingUses.lookup(lane); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index a2486431..5463f730 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -9,7 +9,7 @@ using namespace mlir; using namespace mlir::spn::low::slp; -SeedAnalysis::SeedAnalysis(Operation* rootOp) : rootOp{rootOp} {} +SeedAnalysis::SeedAnalysis(Operation* rootOp, unsigned width) : rootOp{rootOp}, width{width} {} // Helper functions in anonymous namespace. namespace { @@ -31,8 +31,7 @@ namespace { } } -llvm::ArrayRef SeedAnalysis::getSeed(unsigned width, SearchMode const& mode) const { - +void SeedAnalysis::fillSeed(SmallVectorImpl& seed, SearchMode const& mode) const { llvm::StringMap>> seedsByOpName; auto const& opDepths = getOpDepths(rootOp); @@ -46,13 +45,13 @@ llvm::ArrayRef SeedAnalysis::getSeed(unsigned width, SearchMode const& mo return WalkResult::advance(); } bool needsNewSeed = true; - for (auto& seed : seedsByOpName[op->getName().getStringRef()]) { - if (seed.size() < width && opDepths.lookup(seed.front()) == depth) { + for (auto& potentialSeed : seedsByOpName[op->getName().getStringRef()]) { + if (potentialSeed.size() < width && opDepths.lookup(potentialSeed.front()) == depth) { // Cannot use values for seeds that are defined in different scopes. - if (seed.front().getParentRegion() != value.getParentRegion()) { + if (potentialSeed.front().getParentRegion() != value.getParentRegion()) { continue; } - seed.emplace_back(value); + potentialSeed.emplace_back(value); needsNewSeed = false; break; } @@ -65,18 +64,18 @@ llvm::ArrayRef SeedAnalysis::getSeed(unsigned width, SearchMode const& mo }); SmallVector> seeds; - // Flatten the map that maps opcode to seeds. + // Flatten the map that maps opcodes to seeds. for (auto const& entry : seedsByOpName) { - for (auto const& seed : entry.second) { - if (seed.size() != width) { + for (auto const& potentialSeed : entry.second) { + if (potentialSeed.size() != width) { continue; } - seeds.emplace_back(seed); + seeds.emplace_back(potentialSeed); } } if (seeds.empty()) { - return {}; + return; } // Sort the seeds such that either the seeds closest to the beginning of the function come first (DefBeforeUse), @@ -91,6 +90,6 @@ llvm::ArrayRef SeedAnalysis::getSeed(unsigned width, SearchMode const& mo assert(false); } }); - return seeds.front(); + seed.swap(seeds.front()); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index ebcd1ec3..78ed39dc 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -102,10 +102,6 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt conversionState.update(vector, vectorLoad, CreationMode::ConsecutiveLoad); } - // Batch reads don't need their input vector operands. They're not vectorizable anyways (MemRefs and indices). - rewriter.eraseOp(conversionState.getValue(vector->getOperand(0)).getDefiningOp()); - rewriter.eraseOp(conversionState.getValue(vector->getOperand(1)).getDefiningOp()); - assert(conversionState.isConverted(vector)); return success(); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index 7ceeeca2..ecf47a5a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -66,6 +66,17 @@ LogicalResult VectorizeTask::createFunctionIfVectorizable(SPNTask& task, return success(); } +// Helper functions in anonymous namespace. +namespace { + + /// MLIR does not permit vectors of MemRefs or indices. + bool wouldBeIllegal(NodeVector* vector) { + return std::any_of(std::cbegin(*vector), std::cend(*vector), [&](Value const& element) { + return element.getType().isa() || element.getType().isa(); + }); + } +} + LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, llvm::ArrayRef operands, ConversionPatternRewriter& rewriter) const { @@ -98,16 +109,17 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // Apply SLP vectorization. task->emitRemark() << "Computing new seed for SLP vectorization..."; + //task->getParentOfType()->dump(); auto computationType = operands.back().getType().dyn_cast().getElementType(); auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); - SeedAnalysis seedAnalysis{taskFunc}; - auto const& seed = seedAnalysis.getSeed(hwVectorWidth, SearchMode::UseBeforeDef); + SeedAnalysis seedAnalysis{taskFunc, hwVectorWidth}; + SmallVector seed; + seedAnalysis.fillSeed(seed, SearchMode::UseBeforeDef); assert(!seed.empty() && "couldn't find a seed!"); - // low::slp::dumpOpTree(seed); - // seed.front().getDefiningOp()->getBlock()->dump(); + //low::slp::dumpOpTree(seed); SLPGraphBuilder builder{3}; auto graph = builder.build(seed); - // low::slp::dumpSLPGraph(*graph); + //low::slp::dumpSLPGraph(*graph); task->emitRemark() << "Transforming SLP graph back into vectorized ops..."; // The current vector being transformed. @@ -137,21 +149,24 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); // dumpSLPNodeVector(*vector); - if (vector->containsBlockArgs()) { + auto* vectorOp = vector->begin()->getDefiningOp(); + if (vector->containsBlockArgs() || failed(applicator.matchAndRewrite(vectorOp, rewriter))) { + // This assumes that the node vectors using these illegal vectors know what they're doing and don't need them. + // For example, SPNBatchReads being replaced with vector::LoadOps or broadcastInserts instead of using their + // vectorized operands. + if (wouldBeIllegal(vector)) { + conversionState.markSkipped(vector); + continue; + } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), computationType); rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); if (vector->splattable()) { auto const& element = vector->getElement(0); - auto vectorOp = rewriter.create(element.getLoc(), vectorType, element); - conversionState.update(vector, vectorOp, CreationMode::Splat); + auto vectorizedOp = rewriter.create(element.getLoc(), vectorType, element); + conversionState.update(vector, vectorizedOp, CreationMode::Splat); } else { - auto vectorOp = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionState.update(vector, vectorOp, CreationMode::BroadcastInsert); - } - } else { - auto* vectorOp = vector->begin()->getDefiningOp(); - if (failed(applicator.matchAndRewrite(vectorOp, rewriter))) { - vectorOp->emitOpError("SLP pattern application failed"); + auto vectorizedOp = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); + conversionState.update(vector, vectorizedOp, CreationMode::BroadcastInsert); } } } @@ -160,6 +175,9 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); auto const& creationMode = conversionState.getCreationMode(vector); + if (creationMode == CreationMode::Skip) { + continue; + } for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); if (finishedValues.contains(element)) { @@ -169,9 +187,9 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { continue; } - if (auto const& firstEscapingUse = conversionState.getFirstEscapingUse(vector, lane)) { + if (auto const& earliestEscapingUse = conversionState.getEarliestEscapingUse(vector, lane)) { if (creationMode != CreationMode::Constant) { - rewriter.setInsertionPoint(firstEscapingUse->getDefiningOp()); + rewriter.setInsertionPoint(earliestEscapingUse->getDefiningOp()); auto const& source = conversionState.getValue(vector); auto extractOp = rewriter.create(element.getLoc(), source, lane); element.replaceAllUsesWith(extractOp.result()); From 542c2e3ee7b4a116685a29e3d33eb457ea63671e Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 27 Apr 2021 02:15:18 +0200 Subject: [PATCH 125/385] Added python tests. --- .../test/test-slp-vectorized-consecutive.py | 104 ++++++++++++ .../test/test-slp-vectorized-escaping.py | 149 ++++++++++++++++++ .../test/test-slp-vectorized-mini.py | 73 +++++++++ .../test/test-slp-vectorized-tree.py | 100 ++++++++++++ 4 files changed, 426 insertions(+) create mode 100644 python-interface/test/test-slp-vectorized-consecutive.py create mode 100644 python-interface/test/test-slp-vectorized-escaping.py create mode 100644 python-interface/test/test-slp-vectorized-mini.py create mode 100644 python-interface/test/test-slp-vectorized-tree.py diff --git a/python-interface/test/test-slp-vectorized-consecutive.py b/python-interface/test/test-slp-vectorized-consecutive.py new file mode 100644 index 00000000..722dcd1f --- /dev/null +++ b/python-interface/test/test-slp-vectorized-consecutive.py @@ -0,0 +1,104 @@ +import numpy as np +import tempfile +from datetime import datetime +import os +from spn.structure.Base import Product, Sum +from spn.structure.leaves.parametric.Parametric import Gaussian +from spn.algorithms.Inference import log_likelihood +from xspn.serialization.binary.BinarySerialization import BinarySerializer +from xspn.structure.Model import SPNModel +from xspn.structure.Query import JointProbability +import spncpy as spnc + +g0 = Gaussian(mean=0.11, stdev=1, scope=0) +g1 = Gaussian(mean=0.12, stdev=0.75, scope=1) +g2 = Gaussian(mean=0.13, stdev=0.5, scope=2) +g3 = Gaussian(mean=0.14, stdev=0.25, scope=3) + +g4 = Gaussian(mean=0.21, stdev=1, scope=4) +g5 = Gaussian(mean=0.22, stdev=0.75, scope=5) +g6 = Gaussian(mean=0.23, stdev=0.5, scope=6) +g7 = Gaussian(mean=0.24, stdev=0.25, scope=7) + +g8 = Gaussian(mean=0.31, stdev=1, scope=8) +g9 = Gaussian(mean=0.32, stdev=0.75, scope=9) +g10 = Gaussian(mean=0.33, stdev=0.5, scope=10) +g11 = Gaussian(mean=0.34, stdev=0.25, scope=11) + +g12 = Gaussian(mean=0.41, stdev=1, scope=12) +g13 = Gaussian(mean=0.42, stdev=0.75, scope=13) +g14 = Gaussian(mean=0.43, stdev=0.5, scope=14) +g15 = Gaussian(mean=0.44, stdev=0.25, scope=15) + +p1 = Product(children=[g0 , g4 , g8 , g12]) +p2 = Product(children=[g1 , g5 , g6 , g7 ]) +p3 = Product(children=[g10, g9 , g2 , g11]) +p4 = Product(children=[g15, g3 , g14, g13]) +s = Sum(children=[p1, p2, p3, p4], weights=[0.25, 0.25, 0.25, 0.25]) + +# Wrap the SPN in a model and query. +model = SPNModel(s, "float64", "spn_vector") +query = JointProbability(model, batchSize=1) + +# Construct a temporary file that we will use to serialize the SPN to. +timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") +tempfile = os.path.join(tempfile.gettempdir(), f"spn_{timestamp}.bin") + +# Serialize the SPN to binary format as input to the compiler. +print("Serializing SPN to file...") +BinarySerializer(tempfile).serialize_to_file(query) +# Check that the serialization worked. +if not os.path.isfile(tempfile): + raise RuntimeError("Serialization of the SPN failed") + +# Invoke the compiler. +print("Invoking compiler...") +compiler = spnc.SPNCompiler() + +# Compile the query into a Kernel. +options = dict({"target": "CPU", "cpu-vectorize": "true"}) +k = compiler.compileQuery(tempfile, options) +# Check that the comiled Kernel actually exists. +if not os.path.isfile(k.fileName()): + raise RuntimeError("Compilation failed, not Kernel produced") + +samples = 30 + +for i in range(samples): + + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + np.random.normal(0.44, 0.9), + np.random.normal(0.54, 0.7), + np.random.normal(0.64, 0.5), + np.random.normal(0.74, 0.4))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(s, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + +print("COMPUTATION OK") + +# Remove the serialized SPN file and the compiled Kernel. +os.remove(tempfile) +os.remove(k.fileName()) diff --git a/python-interface/test/test-slp-vectorized-escaping.py b/python-interface/test/test-slp-vectorized-escaping.py new file mode 100644 index 00000000..5be5599e --- /dev/null +++ b/python-interface/test/test-slp-vectorized-escaping.py @@ -0,0 +1,149 @@ +import numpy as np +import tempfile +from datetime import datetime +import os +from spn.structure.Base import Product, Sum +from spn.structure.leaves.parametric.Parametric import Gaussian +from spn.structure.leaves.histogram.Histograms import Histogram +from spn.structure.leaves.parametric.Parametric import Categorical +from spn.algorithms.Inference import log_likelihood +from xspn.serialization.binary.BinarySerialization import BinarySerializer +from xspn.structure.Model import SPNModel +from xspn.structure.Query import JointProbability +import spncpy as spnc + +g0 = Gaussian(mean=0.00, stdev=1, scope=0) +g1 = Gaussian(mean=0.01, stdev=0.75, scope=1) +g2 = Gaussian(mean=0.02, stdev=0.5, scope=2) +g3 = Gaussian(mean=0.03, stdev=0.25, scope=3) +g4 = Gaussian(mean=0.04, stdev=1, scope=4) +g5 = Gaussian(mean=0.05, stdev=0.25, scope=5) +g6 = Gaussian(mean=0.06, stdev=0.5, scope=6) +g7 = Gaussian(mean=0.07, stdev=0.75, scope=7) +g8 = Gaussian(mean=0.08, stdev=1, scope=8) +g9 = Gaussian(mean=0.09, stdev=0.75, scope=9) +g10 = Gaussian(mean=0.10, stdev=1, scope=10) +g11 = Gaussian(mean=0.11, stdev=1, scope=11) + +h0 = Histogram([0., 1., 2.], [0.1, 0.9], [1, 1], scope=0) +h1 = Histogram([0., 1., 2.], [0.2, 0.8], [1, 1], scope=1) +h2 = Histogram([0., 1., 2.], [0.3, 0.7], [1, 1], scope=2) +h3 = Histogram([0., 1., 2.], [0.4, 0.6], [1, 1], scope=3) +h4 = Histogram([0., 1., 2.], [0.5, 0.5], [1, 1], scope=4) +h5 = Histogram([0., 1., 2.], [0.6, 0.4], [1, 1], scope=5) +h6 = Histogram([0., 1., 2.], [0.7, 0.3], [1, 1], scope=6) +h7 = Histogram([0., 1., 2.], [0.8, 0.2], [1, 1], scope=7) + +c0 = Categorical(p=[0.1, 0.1, 0.8], scope=0) +c1 = Categorical(p=[0.2, 0.2, 0.6], scope=1) +c2 = Categorical(p=[0.3, 0.3, 0.4], scope=2) +c3 = Categorical(p=[0.4, 0.4, 0.2], scope=3) +c4 = Categorical(p=[0.5, 0.4, 0.1], scope=4) +c5 = Categorical(p=[0.6, 0.3, 0.1], scope=5) +c6 = Categorical(p=[0.7, 0.2, 0.1], scope=6) +c7 = Categorical(p=[0.8, 0.1, 0.1], scope=7) + +s0 = Sum(children=[g8, h4], weights=[0.5, 0.5]) +s1 = Sum(children=[g9, h5], weights=[0.5, 0.5]) +s2 = Sum(children=[g10, c6], weights=[0.5, 0.5]) +s3 = Sum(children=[g11, h7], weights=[0.5, 0.5]) + +s4 = Sum(children=[s0, c4], weights=[0.5, 0.5]) +s5 = Sum(children=[s1, c5], weights=[0.5, 0.5]) +s6 = Sum(children=[s2, g6], weights=[0.5, 0.5]) +s7 = Sum(children=[s3, c7], weights=[0.5, 0.5]) + +s8 = Sum(children=[s4, g4], weights=[0.5, 0.5]) +s9 = Sum(children=[s5, g5], weights=[0.5, 0.5]) +s10 = Sum(children=[s6, h6], weights=[0.5, 0.5]) +s11 = Sum(children=[s7, g7], weights=[0.5, 0.5]) + +p0 = Product(children=[h0, s8]) +p1 = Product(children=[c1, s9]) +p2 = Product(children=[c2, s10]) +p3 = Product(children=[g3, s11]) + +p4 = Product(children=[p0, g0]) +p5 = Product(children=[p1, g1]) +p6 = Product(children=[p2, h2]) +p7 = Product(children=[p3, c3]) + +p8 = Product(children=[p4, c0]) +p9 = Product(children=[p5, h1]) +p10 = Product(children=[p6, g2]) +p11 = Product(children=[p7, h3]) + +s12 = Sum(children=[p8, p9], weights=[0.5, 0.5]) +s13 = Sum(children=[p10, p11], weights=[0.5, 0.5]) + +s14 = Sum(children=[s12, p2], weights=[0.5, 0.5]) +s15 = Sum(children=[s13, s2], weights=[0.5, 0.5]) + +spn = Product(children=[s14, s15]) + +# Wrap the SPN in a model and query. +model = SPNModel(spn, "float64", "spn_vector") +query = JointProbability(model, batchSize=1) + +# Construct a temporary file that we will use to serialize the SPN to. +timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") +tempfile = os.path.join(tempfile.gettempdir(), f"spn_{timestamp}.bin") + +# Serialize the SPN to binary format as input to the compiler. +print("Serializing SPN to file...") +BinarySerializer(tempfile).serialize_to_file(query) +# Check that the serialization worked. +if not os.path.isfile(tempfile): + raise RuntimeError("Serialization of the SPN failed") + +# Invoke the compiler. +print("Invoking compiler...") +compiler = spnc.SPNCompiler() + +# Compile the query into a Kernel. +options = dict({"target": "CPU", "cpu-vectorize": "true"}) +k = compiler.compileQuery(tempfile, options) +# Check that the comiled Kernel actually exists. +if not os.path.isfile(k.fileName()): + raise RuntimeError("Compilation failed, not Kernel produced") + +samples = 30 + +for i in range(samples): + + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + np.random.normal(0.44, 0.9), + np.random.normal(0.54, 0.7), + np.random.normal(0.64, 0.5), + np.random.normal(0.74, 0.4))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(spn, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + +print("COMPUTATION OK") + +# Remove the serialized SPN file and the compiled Kernel. +os.remove(tempfile) +os.remove(k.fileName()) diff --git a/python-interface/test/test-slp-vectorized-mini.py b/python-interface/test/test-slp-vectorized-mini.py new file mode 100644 index 00000000..d38d67dc --- /dev/null +++ b/python-interface/test/test-slp-vectorized-mini.py @@ -0,0 +1,73 @@ +import numpy as np +import tempfile +from datetime import datetime +import os +from spn.structure.Base import Product, Sum +from spn.structure.leaves.parametric.Parametric import Gaussian +from spn.algorithms.Inference import log_likelihood +from xspn.serialization.binary.BinarySerialization import BinarySerializer +from xspn.structure.Model import SPNModel +from xspn.structure.Query import JointProbability +import spncpy as spnc + +g0 = Gaussian(mean=0.11, stdev=1, scope=0) +g1 = Gaussian(mean=0.12, stdev=0.75, scope=1) +g2 = Gaussian(mean=0.13, stdev=0.5, scope=2) +g3 = Gaussian(mean=0.14, stdev=0.25, scope=3) + +s = Sum(children=[g0, g1, g2, g3], weights=[0.25, 0.25, 0.25, 0.25]) + +# Wrap the SPN in a model and query. +model = SPNModel(s, "float64", "spn_vector") +query = JointProbability(model, batchSize=1) + +# Construct a temporary file that we will use to serialize the SPN to. +timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") +tempfile = os.path.join(tempfile.gettempdir(), f"spn_{timestamp}.bin") + +# Serialize the SPN to binary format as input to the compiler. +print("Serializing SPN to file...") +BinarySerializer(tempfile).serialize_to_file(query) +# Check that the serialization worked. +if not os.path.isfile(tempfile): + raise RuntimeError("Serialization of the SPN failed") + +# Invoke the compiler. +print("Invoking compiler...") +compiler = spnc.SPNCompiler() + +# Compile the query into a Kernel. +options = dict({"target": "CPU", "cpu-vectorize": "true"}) +k = compiler.compileQuery(tempfile, options) +# Check that the comiled Kernel actually exists. +if not os.path.isfile(k.fileName()): + raise RuntimeError("Compilation failed, not Kernel produced") + +samples = 30 + +for i in range(samples): + + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(s, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + +print("COMPUTATION OK") + +# Remove the serialized SPN file and the compiled Kernel. +os.remove(tempfile) +os.remove(k.fileName()) diff --git a/python-interface/test/test-slp-vectorized-tree.py b/python-interface/test/test-slp-vectorized-tree.py new file mode 100644 index 00000000..5fe486a4 --- /dev/null +++ b/python-interface/test/test-slp-vectorized-tree.py @@ -0,0 +1,100 @@ +import numpy as np +import tempfile +from datetime import datetime +import os +from spn.structure.Base import Product, Sum +from spn.structure.leaves.parametric.Parametric import Gaussian +from spn.algorithms.Inference import log_likelihood +from xspn.serialization.binary.BinarySerialization import BinarySerializer +from xspn.structure.Model import SPNModel +from xspn.structure.Query import JointProbability +import spncpy as spnc + +g0 = Gaussian(mean=0.11, stdev=1, scope=0) +g1 = Gaussian(mean=0.12, stdev=0.75, scope=1) +g2 = Gaussian(mean=0.13, stdev=0.5, scope=2) +g3 = Gaussian(mean=0.14, stdev=0.25, scope=3) +g4 = Gaussian(mean=0.15, stdev=1, scope=4) +g5 = Gaussian(mean=0.16, stdev=0.25, scope=5) +g6 = Gaussian(mean=0.17, stdev=0.5, scope=6) +g7 = Gaussian(mean=0.18, stdev=0.75, scope=7) +g8 = Gaussian(mean=0.19, stdev=1, scope=8) + +p0 = Product(children=[g0, g1, g2, g4]) +p1 = Product(children=[g3, g4, g4, g5]) +p2 = Product(children=[g6, g4, g7, g8]) +p3 = Product(children=[g8, g6, g4, g2]) + +s0 = Sum(children=[g0, g1, g2, p0], weights=[0.25, 0.25, 0.25, 0.25]) +s1 = Sum(children=[g3, g4, g5, p1], weights=[0.25, 0.25, 0.25, 0.25]) +s2 = Sum(children=[g6, g7, g8, p2], weights=[0.25, 0.25, 0.25, 0.25]) +s3 = Sum(children=[g0, g4, g8, p3], weights=[0.25, 0.25, 0.25, 0.25]) + +spn = Product(children=[s0, s1, s2, s3]) + +# Wrap the SPN in a model and query. +model = SPNModel(spn, "float64", "spn_vector") +query = JointProbability(model, batchSize=1) + +# Construct a temporary file that we will use to serialize the SPN to. +timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") +tempfile = os.path.join(tempfile.gettempdir(), f"spn_{timestamp}.bin") + +# Serialize the SPN to binary format as input to the compiler. +print("Serializing SPN to file...") +BinarySerializer(tempfile).serialize_to_file(query) +# Check that the serialization worked. +if not os.path.isfile(tempfile): + raise RuntimeError("Serialization of the SPN failed") + +# Invoke the compiler. +print("Invoking compiler...") +compiler = spnc.SPNCompiler() + +# Compile the query into a Kernel. +options = dict({"target": "CPU", "cpu-vectorize": "true"}) +k = compiler.compileQuery(tempfile, options) +# Check that the comiled Kernel actually exists. +if not os.path.isfile(k.fileName()): + raise RuntimeError("Compilation failed, not Kernel produced") + +samples = 30 + +for i in range(samples): + + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + np.random.normal(0.44, 0.9), + np.random.normal(0.54, 0.7), + np.random.normal(0.64, 0.5), + np.random.normal(0.74, 0.4))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(spn, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + +print("COMPUTATION OK") + +# Remove the serialized SPN file and the compiled Kernel. +os.remove(tempfile) +os.remove(k.fileName()) From 8edff891cb95a7acbbfc18d84f02ca4a3f7f5682 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 27 Apr 2021 02:42:51 +0200 Subject: [PATCH 126/385] Replaced error emission with hard failures. --- .../SLP/SLPVectorizationPatterns.cpp | 43 ++++--------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 78ed39dc..2c39dd8e 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -55,18 +55,15 @@ namespace { LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { - if (conversionState.isConverted(vector)) { - return constantOp.emitError("operation's vector has already been created"); - } - + assert(!conversionState.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); + rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); SmallVector constants; for (auto const& value : *vector) { constants.emplace_back(value.getDefiningOp().value()); } - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); auto constVector = rewriter.create(constantOp.getLoc(), elements); @@ -77,12 +74,8 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { - if (conversionState.isConverted(vector)) { - return batchReadOp.emitError("operation's vector has already been created"); - } - + assert(!conversionState.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); if (!consecutiveLoads(vector->begin(), vector->end())) { @@ -109,12 +102,8 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - if (conversionState.isConverted(vector)) { - return addOp.emitError("operation's vector has already been created"); - } - + assert(!conversionState.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); if (vector->isLeaf()) { @@ -127,9 +116,7 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { auto* operand = vector->getOperand(i); - if (!conversionState.isConverted(operand)) { - return addOp.emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); - } + assert(conversionState.isConverted(operand) && "operand has not yet been vectorized"); operands.emplace_back(conversionState.getValue(operand)); } @@ -141,12 +128,8 @@ LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewri LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - if (conversionState.isConverted(vector)) { - return mulOp.emitError("operation's vector has already been created"); - } - + assert(!conversionState.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); if (vector->isLeaf()) { @@ -159,9 +142,7 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewri SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { auto* operand = vector->getOperand(i); - if (!conversionState.isConverted(operand)) { - return mulOp.emitError("operand #" + std::to_string(i) + " has not yet been vectorized"); - } + assert(conversionState.isConverted(operand) && "operand has not yet been vectorized"); operands.emplace_back(conversionState.getValue(operand)); } @@ -173,12 +154,8 @@ LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewri LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { - if (conversionState.isConverted(vector)) { - return gaussianOp.emitError("operation's vector has already been created"); - } - + assert(!conversionState.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); if (vector->isLeaf()) { @@ -220,9 +197,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - if (!conversionState.isConverted(vector->getOperand(0))) { - return gaussianOp.emitError("input vector has not yet been vectorized"); - } + assert(conversionState.isConverted(vector->getOperand(0)) && "input vector has not yet been vectorized"); Value const& inputVector = conversionState.getValue(vector->getOperand(0)); // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) From 0fdb388dad00030e0a6103c97404d65095129238 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 02:46:54 +0200 Subject: [PATCH 127/385] Fix: single task lowering not being applied when SLP vectorization fails. --- mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h | 2 +- mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h index f28d54d2..899aa6ea 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/StructurePatterns.h @@ -61,7 +61,7 @@ namespace mlir { static void populateLoSPNtoCPUTaskPatterns(OwningRewritePatternList& patterns, MLIRContext* context, TypeConverter& typeConverter) { - patterns.insert(typeConverter, context); + patterns.insert(typeConverter, context, 1); } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp index b7600d70..cf352342 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/LoSPNtoCPUConversionPasses.cpp @@ -46,9 +46,9 @@ void mlir::spn::LoSPNtoCPUStructureConversionPass::runOnOperation() { patterns = OwningRewritePatternList(); if (vectorize) { spn::populateLoSPNtoCPUVectorizationTaskPatterns(patterns, &getContext(), typeConverter); - } else { - spn::populateLoSPNtoCPUTaskPatterns(patterns, &getContext(), typeConverter); } + spn::populateLoSPNtoCPUTaskPatterns(patterns, &getContext(), typeConverter); + frozenPatterns = FrozenRewritePatternList(std::move(patterns)); if (failed(applyPartialConversion(getOperation(), target, frozenPatterns))) { From baf6331ed56ee3e1496070ecd6b13295f2771271 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 02:48:39 +0200 Subject: [PATCH 128/385] Fix: users appearing in front of vectorized ops. --- .../Vectorization/SLP/SLPConversion.h | 13 +-- .../Vectorization/SLP/SLPConversion.cpp | 81 +++++++++---------- .../VectorizeStructurePatterns.cpp | 53 +++++++----- 3 files changed, 76 insertions(+), 71 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h index 3a6d3fbb..e895c78a 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -36,22 +36,23 @@ namespace mlir { Value getValue(NodeVector* vector) const; CreationMode getCreationMode(NodeVector* vector) const; - Optional getEarliestEscapingUse(NodeVector* vector, size_t lane) const; + bool hasEscapingUsers(Value const& value, SmallVectorImpl& users) const; private: struct NodeVectorData { - /// The operation that was created for this node vector. Optional operation{None}; /// The way it was created. Optional mode{None}; - /// The earliest (i.e. smallest Loc) escaping use for each lane. - DenseMap earliestEscapingUses; }; - DenseMap vectorData; - Value earliestInsertionPoint = nullptr; + + /// Stores escaping users for each value. + DenseMap> escapingUsers; + + Value latestInsertion; + }; } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index d84c92f0..59fbc554 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -4,6 +4,7 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPConversion.h" +#include "llvm/Support/Debug.h" using namespace mlir; using namespace mlir::spn::low::slp; @@ -19,58 +20,53 @@ namespace { return lhs.getDefiningOp()->isBeforeInBlock(rhs.getDefiningOp()); } - Value firstUser(Value const& element) { - Operation* first = nullptr; - for (auto* user : element.getUsers()) { - if (!first || user->isBeforeInBlock(first)) { - first = user; + Value latestElement(NodeVector* vector) { + Value latestVal = vector->getElement(0); + for (size_t lane = 1; lane < vector->numLanes(); ++lane) { + if (isBeforeInBlock(latestVal, vector->getElement(lane))) { + latestVal = vector->getElement(lane); } } - return first->getResult(0); + return latestVal; } } ConversionState::ConversionState(SLPNode* root) { - DenseMap outsideUses; for (auto* node : SLPNode::postOrder(root)) { for (size_t i = node->numVectors(); i-- > 0;) { auto* vector = node->getVector(i); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); - // Store the graph's last input to determine the earliest possible insertion point. - if (!earliestInsertionPoint || (vector->isLeaf() && isBeforeInBlock(earliestInsertionPoint, element))) { - earliestInsertionPoint = element; - } - // Skip duplicate (splat) values. - if (outsideUses.count(element)) { + if (element.isa()) { continue; } - outsideUses[element] = std::distance(std::begin(element.getUsers()), std::end(element.getUsers())); - for (size_t j = 0; j < vector->numOperands(); ++j) { - auto* operand = vector->getOperand(j); - assert(outsideUses[operand->getElement(lane)] > 0); - outsideUses[operand->getElement(lane)]--; + if (!escapingUsers.count(element)) { + escapingUsers[element].assign(std::begin(element.getUsers()), std::end(element.getUsers())); } - } - } - } - - for (auto* node : SLPNode::postOrder(root)) { - for (size_t i = 0; i < node->numVectors(); ++i) { - auto* vector = node->getVector(i); - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - auto const& element = vector->getElement(lane); - if (outsideUses[element] > 0) { - vectorData[vector].earliestEscapingUses.insert(std::make_pair(lane, firstUser(element))); + llvm::dbgs() << "element: " << element << "\n"; + for (auto const& operand : element.getDefiningOp()->getOperands()) { + if (!operand.isa()) { + llvm::dbgs() << "\toperand: " << operand << "\n"; + auto& users = escapingUsers[operand]; + for (auto* user : users) { + llvm::dbgs() << "\t\toperand user: " << *user << "\n"; + } + users.erase(std::remove(std::begin(users), std::end(users), element.getDefiningOp())); + } } } } } + for (auto& entry : escapingUsers) { + std::sort(std::begin(entry.second), std::end(entry.second), [&](Operation* lhs, Operation* rhs) { + return lhs->isBeforeInBlock(rhs); + }); + } } Value ConversionState::getInsertionPoint(NodeVector* vector) const { - Value insertionPoint = earliestInsertionPoint; + Value insertionPoint = latestInsertion; for (size_t i = 0; i < vector->numOperands(); ++i) { auto* operand = vector->getOperand(i); if (vectorData.lookup(operand).mode == CreationMode::Skip) { @@ -78,11 +74,11 @@ Value ConversionState::getInsertionPoint(NodeVector* vector) const { } assert(vectorData.lookup(operand).operation.hasValue() && "operand has not yet been converted"); auto const& operandValue = vectorData.lookup(operand).operation.getValue(); - if (isBeforeInBlock(insertionPoint, operandValue)) { + if (!insertionPoint || isBeforeInBlock(insertionPoint, operandValue)) { insertionPoint = operandValue; } } - return insertionPoint; + return insertionPoint ? insertionPoint : latestElement(vector); } void ConversionState::update(NodeVector* vector, Value const& operation, CreationMode const& mode) { @@ -90,17 +86,15 @@ void ConversionState::update(NodeVector* vector, Value const& operation, Creatio && "vector has been converted already"); vectorData[vector].operation = operation; vectorData[vector].mode = mode; - if (vector->isLeaf()) { - if (isBeforeInBlock(earliestInsertionPoint, operation)) { - earliestInsertionPoint = operation; - } + if (!latestInsertion || isBeforeInBlock(latestInsertion, operation)) { + latestInsertion = operation; } } void ConversionState::markSkipped(NodeVector* vector) { - auto& data = vectorData[vector]; - assert(!data.operation.hasValue() && !data.mode.hasValue() && "vector has been converted already"); - data.mode = CreationMode::Skip; + assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].mode.hasValue() + && "vector has been converted already"); + vectorData[vector].mode = CreationMode::Skip; } bool ConversionState::isConverted(NodeVector* vector) const { @@ -117,9 +111,10 @@ CreationMode ConversionState::getCreationMode(NodeVector* vector) const { return vectorData.lookup(vector).mode.getValue(); } -Optional ConversionState::getEarliestEscapingUse(NodeVector* vector, size_t lane) const { - if (!vectorData.lookup(vector).earliestEscapingUses.count(lane)) { - return {None}; +bool ConversionState::hasEscapingUsers(Value const& value, SmallVectorImpl& users) const { + if (!escapingUsers.count(value) || escapingUsers.lookup(value).empty()) { + return false; } - return vectorData.lookup(vector).earliestEscapingUses.lookup(lane); + users.assign(escapingUsers.lookup(value)); + return true; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index ecf47a5a..300c2b36 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -82,7 +82,11 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, ConversionPatternRewriter& rewriter) const { if (task.batchSize() > 1) { - return rewriter.notifyMatchFailure(task, "Single batch vectorization does not match for batchSize > 1"); + return rewriter.notifyMatchFailure(task, "SLP vectorization does not match for batchSize > 1"); + } + + if (task.body().getBlocks().size() > 1) { + return rewriter.notifyMatchFailure(task, "SLP vectorization only applicable to single basic blocks (yet)"); } auto const& callPoint = rewriter.saveInsertionPoint(); @@ -101,14 +105,13 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // The other arguments are the arguments of the entry block of this function. SmallVector blockReplacementArgs; blockReplacementArgs.push_back(rewriter.create(task.getLoc(), rewriter.getIndexAttr(0))); - for (auto bArg : taskBlock->getArguments()) { + for (auto const& bArg : taskBlock->getArguments()) { blockReplacementArgs.push_back(bArg); } - // Inline the content of the Task into the function. + // Inline the content of the task into the function. rewriter.mergeBlocks(&task.body().front(), taskBlock, blockReplacementArgs); // Apply SLP vectorization. - task->emitRemark() << "Computing new seed for SLP vectorization..."; //task->getParentOfType()->dump(); auto computationType = operands.back().getType().dyn_cast().getElementType(); auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); @@ -121,30 +124,24 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, auto graph = builder.build(seed); //low::slp::dumpSLPGraph(*graph); - task->emitRemark() << "Transforming SLP graph back into vectorized ops..."; // The current vector being transformed. NodeVector* vector = nullptr; - ConversionState conversionState{graph.get()}; - // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). SmallPtrSet finishedValues; - - OwningRewritePatternList patterns; - populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, conversionState); - FrozenRewritePatternList frozenPatterns(std::move(patterns)); - // Use a custom pattern driver that does *not* perform folding automatically (which the other rewrite drivers // such as applyOpPatternsAndFold() would do). Folding would mess up identified SLP-vectorizable constants, which // aren't necessarily located at the front of the function's body yet. The drivers delete those that aren't at the // front (including those we identified as SLP-vectorizable!) and create new ones there, resulting in our constant // SLP-vectorization patterns not being applied to them and messing up operand handling further down the SLP graph. + OwningRewritePatternList patterns; + populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, conversionState); + FrozenRewritePatternList frozenPatterns(std::move(patterns)); PatternApplicator applicator(frozenPatterns); applicator.applyDefaultCostModel(); // Traverse the SLP graph in postorder and apply the vectorization patterns. for (auto* node : SLPNode::postOrder(graph.get())) { - // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); @@ -172,12 +169,15 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, } // Create vector extractions for escaping uses & erase superfluous operations. + SmallVector escapingUsers; for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); auto const& creationMode = conversionState.getCreationMode(vector); if (creationMode == CreationMode::Skip) { continue; } + // Users that have already been moved to the correct place (no need to move them more than once for each vector). + SmallPtrSet movedUsers; for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); if (finishedValues.contains(element)) { @@ -187,25 +187,34 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { continue; } - if (auto const& earliestEscapingUse = conversionState.getEarliestEscapingUse(vector, lane)) { - if (creationMode != CreationMode::Constant) { - rewriter.setInsertionPoint(earliestEscapingUse->getDefiningOp()); - auto const& source = conversionState.getValue(vector); - auto extractOp = rewriter.create(element.getLoc(), source, lane); - element.replaceAllUsesWith(extractOp.result()); - } else { + if (conversionState.hasEscapingUsers(element, escapingUsers)) { + if (creationMode == CreationMode::Constant) { continue; } + // Move all escaping users behind the vector operation. + auto const& source = conversionState.getValue(vector); + Operation* latestUser = source.getDefiningOp(); + for (auto* escapingUser : escapingUsers) { + if (movedUsers.contains(escapingUser)) { + continue; + } + movedUsers.insert(escapingUser); + if (escapingUser->isBeforeInBlock(source.getDefiningOp())) { + escapingUser->moveAfter(latestUser); + latestUser = escapingUser; + } + } + rewriter.setInsertionPoint(escapingUsers.front()); + auto extractOp = rewriter.create(element.getLoc(), source, lane); + element.replaceAllUsesWith(extractOp.result()); } rewriter.eraseOp(element.getDefiningOp()); } } } - rewriter.restoreInsertionPoint(callPoint); rewriter.replaceOpWithNewOp(task, taskFunc, operands); return success(); - } LogicalResult VectorizeBatchTask::matchAndRewrite(SPNTask op, From 9b3febbf664ffeb560975121b09343c0e88bfe27 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 03:25:06 +0200 Subject: [PATCH 129/385] Fix: escaping use computation failing for SLP graph leaf nodes. --- .../LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index 59fbc554..06b74fb4 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -4,7 +4,6 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPConversion.h" -#include "llvm/Support/Debug.h" using namespace mlir; using namespace mlir::spn::low::slp; @@ -44,14 +43,9 @@ ConversionState::ConversionState(SLPNode* root) { if (!escapingUsers.count(element)) { escapingUsers[element].assign(std::begin(element.getUsers()), std::end(element.getUsers())); } - llvm::dbgs() << "element: " << element << "\n"; for (auto const& operand : element.getDefiningOp()->getOperands()) { - if (!operand.isa()) { - llvm::dbgs() << "\toperand: " << operand << "\n"; + if (!operand.isa() && escapingUsers.count(operand)) { auto& users = escapingUsers[operand]; - for (auto* user : users) { - llvm::dbgs() << "\t\toperand user: " << *user << "\n"; - } users.erase(std::remove(std::begin(users), std::end(users), element.getDefiningOp())); } } From 83781f7d5304eeb5657583d03c4aa8e90db59234 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 03:25:31 +0200 Subject: [PATCH 130/385] Better dumpSLPGraph() output. --- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index 93459108..c4643930 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -182,6 +182,19 @@ void slp::dumpSLPGraph(SLPNode const& root) { llvm::dbgs() << "
batch: "; dumpBlockArgOrDefiningAddress(readOp.batchIndex()); llvm::dbgs() << "
sample: " << readOp.sampleIndex(); + } else if (auto gaussianOp = dyn_cast(definingOp)) { + llvm::dbgs() << "
index: "; + dumpBlockArgOrDefiningAddress(gaussianOp.index()); + llvm::dbgs() << "
mean: " << gaussianOp.mean().convertToDouble(); + llvm::dbgs() << "
stddev: " << gaussianOp.stddev().convertToDouble(); + } else if (auto categoricalOp = dyn_cast(definingOp)) { + llvm::dbgs() << "
index: "; + dumpBlockArgOrDefiningAddress(categoricalOp.index()); + llvm::dbgs() << "
probabilities: [ "; + for (auto const& probability : categoricalOp.probabilities()) { + llvm::dbgs() << probability << " "; + } + llvm::dbgs() << "]"; } llvm::dbgs() << ""; } From afe62612c84f0c89bd01f2878e3168ad1e05c8d2 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 04:53:36 +0200 Subject: [PATCH 131/385] Fix: escaping uses not moving their uses recursively behind a created vector operation. --- .../Vectorization/SLP/SLPConversion.h | 8 +- .../SLP/SLPVectorizationPatterns.h | 16 ++-- .../Vectorization/SLP/SLPConversion.cpp | 78 +++++++++++++------ .../SLP/SLPVectorizationPatterns.cpp | 54 ++++++------- .../VectorizeStructurePatterns.cpp | 34 +++----- 5 files changed, 106 insertions(+), 84 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h index e895c78a..c38730c9 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -22,11 +22,11 @@ namespace mlir { Skip }; - class ConversionState { + class ConversionManager { public: - explicit ConversionState(SLPNode* root); + explicit ConversionManager(SLPNode* root); Value getInsertionPoint(NodeVector* vector) const; bool isConverted(NodeVector* vector) const; @@ -36,7 +36,9 @@ namespace mlir { Value getValue(NodeVector* vector) const; CreationMode getCreationMode(NodeVector* vector) const; - bool hasEscapingUsers(Value const& value, SmallVectorImpl& users) const; + + bool hasEscapingUsers(Value const& value) const; + Operation* moveEscapingUsersBehind(NodeVector* vector, Value const& operation) const; private: diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 41861ff9..1022a3ba 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -28,13 +28,13 @@ namespace mlir { class SLPVectorizationPattern : public OpRewritePattern { public: - SLPVectorizationPattern(MLIRContext* context, NodeVector* const& vector, ConversionState& conversionState) - : OpRewritePattern{context}, vector{vector}, conversionState{conversionState} {} + SLPVectorizationPattern(MLIRContext* context, NodeVector* const& vector, ConversionManager& conversionManager) + : OpRewritePattern{context}, vector{vector}, conversionManager{conversionManager} {} protected: /// The current vector being transformed. NodeVector* const& vector; - ConversionState& conversionState; + ConversionManager& conversionManager; }; struct VectorizeConstant : public SLPVectorizationPattern { @@ -65,11 +65,11 @@ namespace mlir { static void populateSLPVectorizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, NodeVector* const& vector, - ConversionState& conversionState) { - patterns.insert(context, vector, conversionState); - patterns.insert(context, vector, conversionState); - patterns.insert(context, vector, conversionState); - patterns.insert(context, vector, conversionState); + ConversionManager& conversionManager) { + patterns.insert(context, vector, conversionManager); + patterns.insert(context, vector, conversionManager); + patterns.insert(context, vector, conversionManager); + patterns.insert(context, vector, conversionManager); } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index 06b74fb4..126656a0 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -19,19 +19,24 @@ namespace { return lhs.getDefiningOp()->isBeforeInBlock(rhs.getDefiningOp()); } + Value latest(Value const& lhs, Value const& rhs) { + if (isBeforeInBlock(lhs, rhs)) { + return rhs; + } + return lhs; + } + Value latestElement(NodeVector* vector) { - Value latestVal = vector->getElement(0); + Value latestElement = vector->getElement(0); for (size_t lane = 1; lane < vector->numLanes(); ++lane) { - if (isBeforeInBlock(latestVal, vector->getElement(lane))) { - latestVal = vector->getElement(lane); - } + latestElement = latest(latestElement, vector->getElement(lane)); } - return latestVal; + return latestElement; } } -ConversionState::ConversionState(SLPNode* root) { +ConversionManager::ConversionManager(SLPNode* root) { for (auto* node : SLPNode::postOrder(root)) { for (size_t i = node->numVectors(); i-- > 0;) { auto* vector = node->getVector(i); @@ -59,8 +64,8 @@ ConversionState::ConversionState(SLPNode* root) { } } -Value ConversionState::getInsertionPoint(NodeVector* vector) const { - Value insertionPoint = latestInsertion; +Value ConversionManager::getInsertionPoint(NodeVector* vector) const { + Value latestVal = latestInsertion; for (size_t i = 0; i < vector->numOperands(); ++i) { auto* operand = vector->getOperand(i); if (vectorData.lookup(operand).mode == CreationMode::Skip) { @@ -68,14 +73,17 @@ Value ConversionState::getInsertionPoint(NodeVector* vector) const { } assert(vectorData.lookup(operand).operation.hasValue() && "operand has not yet been converted"); auto const& operandValue = vectorData.lookup(operand).operation.getValue(); - if (!insertionPoint || isBeforeInBlock(insertionPoint, operandValue)) { - insertionPoint = operandValue; + if (!latestVal || isBeforeInBlock(latestVal, operandValue)) { + latestVal = operandValue; } } - return insertionPoint ? insertionPoint : latestElement(vector); + if (latestVal) { + return latest(latestVal, latestElement(vector)); + } + return latestElement(vector); } -void ConversionState::update(NodeVector* vector, Value const& operation, CreationMode const& mode) { +void ConversionManager::update(NodeVector* vector, Value const& operation, CreationMode const& mode) { assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].mode.hasValue() && "vector has been converted already"); vectorData[vector].operation = operation; @@ -85,30 +93,56 @@ void ConversionState::update(NodeVector* vector, Value const& operation, Creatio } } -void ConversionState::markSkipped(NodeVector* vector) { +void ConversionManager::markSkipped(NodeVector* vector) { assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].mode.hasValue() && "vector has been converted already"); vectorData[vector].mode = CreationMode::Skip; } -bool ConversionState::isConverted(NodeVector* vector) const { +bool ConversionManager::isConverted(NodeVector* vector) const { return vectorData.lookup(vector).operation.hasValue(); } -Value ConversionState::getValue(NodeVector* vector) const { +Value ConversionManager::getValue(NodeVector* vector) const { assert(isConverted(vector) && "vector has not yet been converted"); return vectorData.lookup(vector).operation.getValue(); } -CreationMode ConversionState::getCreationMode(NodeVector* vector) const { +CreationMode ConversionManager::getCreationMode(NodeVector* vector) const { assert(vectorData.lookup(vector).mode.hasValue() && "vector has not yet been converted"); return vectorData.lookup(vector).mode.getValue(); } -bool ConversionState::hasEscapingUsers(Value const& value, SmallVectorImpl& users) const { - if (!escapingUsers.count(value) || escapingUsers.lookup(value).empty()) { - return false; - } - users.assign(escapingUsers.lookup(value)); - return true; +bool ConversionManager::hasEscapingUsers(Value const& value) const { + return escapingUsers.count(value) && !escapingUsers.lookup(value).empty(); } + +Operation* ConversionManager::moveEscapingUsersBehind(NodeVector* vector, Value const& value) const { + SmallVector users; + Operation* earliestEscapingUser = nullptr; + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& element = vector->getElement(lane); + for (auto* user : escapingUsers.lookup(element)) { + if (!earliestEscapingUser) { + earliestEscapingUser = user; + } + users.emplace_back(user); + } + } + for (size_t i = 0; i < users.size(); ++i) { + users.append(std::begin(users[i]->getUsers()), std::end(users[i]->getUsers())); + } + std::sort(std::begin(users), std::end(users), [&](Operation* lhs, Operation* rhs) { + return lhs->isBeforeInBlock(rhs); + }); + users.erase(std::unique(std::begin(users), std::end(users)), std::end(users)); + + Operation* latestUser = value.getDefiningOp(); + for (size_t i = 0; i < users.size(); ++i) { + if (users[i]->isBeforeInBlock(latestUser)) { + users[i]->moveAfter(latestUser); + } + latestUser = users[i]; + } + return earliestEscapingUser; +} \ No newline at end of file diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 2c39dd8e..8c44cc1d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -55,9 +55,9 @@ namespace { LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { - assert(!conversionState.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); SmallVector constants; for (auto const& value : *vector) { @@ -67,101 +67,101 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); auto constVector = rewriter.create(constantOp.getLoc(), elements); - conversionState.update(vector, constVector, CreationMode::Constant); + conversionManager.update(vector, constVector, CreationMode::Constant); return success(); } LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { - assert(!conversionState.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (!consecutiveLoads(vector->begin(), vector->end())) { if (vector->splattable()) { auto const& element = vector->getElement(0); auto vectorOperation = rewriter.create(batchReadOp.getLoc(), vectorType, element); - conversionState.update(vector, vectorOperation, CreationMode::Splat); + conversionManager.update(vector, vectorOperation, CreationMode::Splat); } else { auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); } } else { auto batchReadLoc = batchReadOp.getLoc(); auto memIndex = rewriter.create(batchReadLoc, rewriter.getIndexAttr(batchReadOp.sampleIndex())); ValueRange indices{batchReadOp.batchIndex(), memIndex}; auto vectorLoad = rewriter.create(batchReadLoc, vectorType, batchReadOp.batchMem(), indices); - conversionState.update(vector, vectorLoad, CreationMode::ConsecutiveLoad); + conversionManager.update(vector, vectorLoad, CreationMode::ConsecutiveLoad); } - assert(conversionState.isConverted(vector)); + assert(conversionManager.isConverted(vector)); return success(); } LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - assert(!conversionState.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->isLeaf()) { assert(!vector->splattable() && "addition vector should not be a leaf vector if it is splattable"); auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); return success(); } SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { auto* operand = vector->getOperand(i); - assert(conversionState.isConverted(operand) && "operand has not yet been vectorized"); - operands.emplace_back(conversionState.getValue(operand)); + assert(conversionManager.isConverted(operand) && "operand has not yet been vectorized"); + operands.emplace_back(conversionManager.getValue(operand)); } auto vectorAdd = rewriter.create(addOp.getLoc(), vectorType, operands); - conversionState.update(vector, vectorAdd, CreationMode::Default); + conversionManager.update(vector, vectorAdd, CreationMode::Default); return success(); } LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - assert(!conversionState.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->isLeaf()) { assert(!vector->splattable() && "multiplication vector should not be a leaf vector if it is splattable"); auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); return success(); } SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { auto* operand = vector->getOperand(i); - assert(conversionState.isConverted(operand) && "operand has not yet been vectorized"); - operands.emplace_back(conversionState.getValue(operand)); + assert(conversionManager.isConverted(operand) && "operand has not yet been vectorized"); + operands.emplace_back(conversionManager.getValue(operand)); } auto vectorAdd = rewriter.create(mulOp.getLoc(), vectorType, operands); - conversionState.update(vector, vectorAdd, CreationMode::Default); + conversionManager.update(vector, vectorAdd, CreationMode::Default); return success(); } LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { - assert(!conversionState.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.isConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->isLeaf()) { assert(!vector->splattable() && "gaussian vector should not be a leaf vector if it is splattable"); auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionState.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); return success(); } @@ -197,8 +197,8 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - assert(conversionState.isConverted(vector->getOperand(0)) && "input vector has not yet been vectorized"); - Value const& inputVector = conversionState.getValue(vector->getOperand(0)); + assert(conversionManager.isConverted(vector->getOperand(0)) && "input vector has not yet been vectorized"); + Value const& inputVector = conversionManager.getValue(vector->getOperand(0)); // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) auto const& gaussianLoc = gaussianOp.getLoc(); @@ -221,7 +221,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto coefficientVector = rewriter.create(gaussianLoc, coefficients); gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); - conversionState.update(vector, gaussianVector, CreationMode::Default); + conversionManager.update(vector, gaussianVector, CreationMode::Default); return success(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index 300c2b36..e68abff4 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -126,7 +126,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // The current vector being transformed. NodeVector* vector = nullptr; - ConversionState conversionState{graph.get()}; + ConversionManager conversionManager{graph.get()}; // Prevent extracting/removing values more than once (happens in splat mode, if they appear in multiple vectors, ...). SmallPtrSet finishedValues; // Use a custom pattern driver that does *not* perform folding automatically (which the other rewrite drivers @@ -135,7 +135,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // front (including those we identified as SLP-vectorizable!) and create new ones there, resulting in our constant // SLP-vectorization patterns not being applied to them and messing up operand handling further down the SLP graph. OwningRewritePatternList patterns; - populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, conversionState); + populateSLPVectorizationPatterns(patterns, rewriter.getContext(), vector, conversionManager); FrozenRewritePatternList frozenPatterns(std::move(patterns)); PatternApplicator applicator(frozenPatterns); applicator.applyDefaultCostModel(); @@ -152,32 +152,30 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // For example, SPNBatchReads being replaced with vector::LoadOps or broadcastInserts instead of using their // vectorized operands. if (wouldBeIllegal(vector)) { - conversionState.markSkipped(vector); + conversionManager.markSkipped(vector); continue; } auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), computationType); - rewriter.setInsertionPointAfterValue(conversionState.getInsertionPoint(vector)); + rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->splattable()) { auto const& element = vector->getElement(0); auto vectorizedOp = rewriter.create(element.getLoc(), vectorType, element); - conversionState.update(vector, vectorizedOp, CreationMode::Splat); + conversionManager.update(vector, vectorizedOp, CreationMode::Splat); } else { auto vectorizedOp = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionState.update(vector, vectorizedOp, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorizedOp, CreationMode::BroadcastInsert); } } } // Create vector extractions for escaping uses & erase superfluous operations. - SmallVector escapingUsers; for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - auto const& creationMode = conversionState.getCreationMode(vector); + auto const& creationMode = conversionManager.getCreationMode(vector); if (creationMode == CreationMode::Skip) { continue; } // Users that have already been moved to the correct place (no need to move them more than once for each vector). - SmallPtrSet movedUsers; for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); if (finishedValues.contains(element)) { @@ -187,24 +185,12 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { continue; } - if (conversionState.hasEscapingUsers(element, escapingUsers)) { + if (conversionManager.hasEscapingUsers(element)) { if (creationMode == CreationMode::Constant) { continue; } - // Move all escaping users behind the vector operation. - auto const& source = conversionState.getValue(vector); - Operation* latestUser = source.getDefiningOp(); - for (auto* escapingUser : escapingUsers) { - if (movedUsers.contains(escapingUser)) { - continue; - } - movedUsers.insert(escapingUser); - if (escapingUser->isBeforeInBlock(source.getDefiningOp())) { - escapingUser->moveAfter(latestUser); - latestUser = escapingUser; - } - } - rewriter.setInsertionPoint(escapingUsers.front()); + auto const& source = conversionManager.getValue(vector); + rewriter.setInsertionPoint(conversionManager.moveEscapingUsersBehind(vector, source)); auto extractOp = rewriter.create(element.getLoc(), source, lane); element.replaceAllUsesWith(extractOp.result()); } From e3c3257e3d820c82fe1e12dcad9d35f25877817f Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 05:06:54 +0200 Subject: [PATCH 132/385] Make use of conversion manager's managed data. --- .../LoSPNtoCPU/Vectorization/SLP/SLPConversion.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h index c38730c9..32914a2e 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -38,7 +38,7 @@ namespace mlir { CreationMode getCreationMode(NodeVector* vector) const; bool hasEscapingUsers(Value const& value) const; - Operation* moveEscapingUsersBehind(NodeVector* vector, Value const& operation) const; + Operation* moveEscapingUsersBehind(NodeVector* vector) const; private: diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index 126656a0..8f155899 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -117,7 +117,8 @@ bool ConversionManager::hasEscapingUsers(Value const& value) const { return escapingUsers.count(value) && !escapingUsers.lookup(value).empty(); } -Operation* ConversionManager::moveEscapingUsersBehind(NodeVector* vector, Value const& value) const { +Operation* ConversionManager::moveEscapingUsersBehind(NodeVector* vector) const { + assert(isConverted(vector) && "vector has not yet been converted"); SmallVector users; Operation* earliestEscapingUser = nullptr; for (size_t lane = 0; lane < vector->numLanes(); ++lane) { @@ -137,7 +138,7 @@ Operation* ConversionManager::moveEscapingUsersBehind(NodeVector* vector, Value }); users.erase(std::unique(std::begin(users), std::end(users)), std::end(users)); - Operation* latestUser = value.getDefiningOp(); + Operation* latestUser = vectorData.lookup(vector).operation->getDefiningOp(); for (size_t i = 0; i < users.size(); ++i) { if (users[i]->isBeforeInBlock(latestUser)) { users[i]->moveAfter(latestUser); @@ -145,4 +146,4 @@ Operation* ConversionManager::moveEscapingUsersBehind(NodeVector* vector, Value latestUser = users[i]; } return earliestEscapingUser; -} \ No newline at end of file +} From df30223cb5e19e8d6139cedc39408da9950d40a9 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 05:15:23 +0200 Subject: [PATCH 133/385] Added leftover changes. --- .../LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index e68abff4..fd9f6c1f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -175,7 +175,6 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, if (creationMode == CreationMode::Skip) { continue; } - // Users that have already been moved to the correct place (no need to move them more than once for each vector). for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); if (finishedValues.contains(element)) { @@ -190,7 +189,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, continue; } auto const& source = conversionManager.getValue(vector); - rewriter.setInsertionPoint(conversionManager.moveEscapingUsersBehind(vector, source)); + rewriter.setInsertionPoint(conversionManager.moveEscapingUsersBehind(vector)); auto extractOp = rewriter.create(element.getLoc(), source, lane); element.replaceAllUsesWith(extractOp.result()); } From 3c0c65550e85b384d16bda79a4d87d5b91f64460 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 15:31:01 +0200 Subject: [PATCH 134/385] Fix: operand reordering not preferring consecutive loads. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 0cc44980..7ca8d8e3 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -86,7 +86,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const for (auto& operands : allOperands) { sortByOpcode(operands, currentOpCode); } - for (size_t i = 0; i < arity; ++i) { + for (unsigned i = 0; i < arity; ++i) { if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](SmallVector const& operands) { return operands[i].getDefiningOp()->getName() == currentOpCode && !escapesMultinode(operands[i], currentNode); })) { @@ -258,8 +258,8 @@ int SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate if (last == candidate) { return 1; } - if (last.getDefiningOp() && consecutiveLoads(last, candidate)) { - return 1; + if (last.getDefiningOp()) { + return consecutiveLoads(last, candidate); } if (!last.isa() && !candidate.isa()) { return last.getDefiningOp()->getName() == candidate.getDefiningOp()->getName(); From f21074a8c44154bc100358ccf4e6dfdddde06cad Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 28 Apr 2021 16:07:53 +0200 Subject: [PATCH 135/385] Fix: escaping users computation failing for empty user vectors. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index 8f155899..62253c1a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -49,9 +49,9 @@ ConversionManager::ConversionManager(SLPNode* root) { escapingUsers[element].assign(std::begin(element.getUsers()), std::end(element.getUsers())); } for (auto const& operand : element.getDefiningOp()->getOperands()) { - if (!operand.isa() && escapingUsers.count(operand)) { + if (!operand.isa()) { auto& users = escapingUsers[operand]; - users.erase(std::remove(std::begin(users), std::end(users), element.getDefiningOp())); + users.erase(std::remove(std::begin(users), std::end(users), element.getDefiningOp()), std::end(users)); } } } From e8438ba69decf1f5fc3e87929d319034aa21e92d Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 29 Apr 2021 02:32:34 +0200 Subject: [PATCH 136/385] Test formatting. --- .../test/test-slp-vectorized-consecutive.py | 76 +++++++++---------- .../test/test-slp-vectorized-escaping.py | 68 ++++++++--------- .../test/test-slp-vectorized-mini.py | 36 ++++----- .../test/test-slp-vectorized-tree.py | 66 ++++++++-------- 4 files changed, 123 insertions(+), 123 deletions(-) diff --git a/python-interface/test/test-slp-vectorized-consecutive.py b/python-interface/test/test-slp-vectorized-consecutive.py index 722dcd1f..47b7ebcd 100644 --- a/python-interface/test/test-slp-vectorized-consecutive.py +++ b/python-interface/test/test-slp-vectorized-consecutive.py @@ -1,14 +1,14 @@ import numpy as np +import os +import spncpy as spnc import tempfile from datetime import datetime -import os +from spn.algorithms.Inference import log_likelihood from spn.structure.Base import Product, Sum from spn.structure.leaves.parametric.Parametric import Gaussian -from spn.algorithms.Inference import log_likelihood from xspn.serialization.binary.BinarySerialization import BinarySerializer from xspn.structure.Model import SPNModel from xspn.structure.Query import JointProbability -import spncpy as spnc g0 = Gaussian(mean=0.11, stdev=1, scope=0) g1 = Gaussian(mean=0.12, stdev=0.75, scope=1) @@ -21,7 +21,7 @@ g7 = Gaussian(mean=0.24, stdev=0.25, scope=7) g8 = Gaussian(mean=0.31, stdev=1, scope=8) -g9 = Gaussian(mean=0.32, stdev=0.75, scope=9) +g9 = Gaussian(mean=0.32, stdev=0.75, scope=9) g10 = Gaussian(mean=0.33, stdev=0.5, scope=10) g11 = Gaussian(mean=0.34, stdev=0.25, scope=11) @@ -30,10 +30,10 @@ g14 = Gaussian(mean=0.43, stdev=0.5, scope=14) g15 = Gaussian(mean=0.44, stdev=0.25, scope=15) -p1 = Product(children=[g0 , g4 , g8 , g12]) -p2 = Product(children=[g1 , g5 , g6 , g7 ]) -p3 = Product(children=[g10, g9 , g2 , g11]) -p4 = Product(children=[g15, g3 , g14, g13]) +p1 = Product(children=[g0, g4, g8, g12]) +p2 = Product(children=[g1, g5, g6, g7]) +p3 = Product(children=[g10, g9, g2, g11]) +p4 = Product(children=[g15, g3, g14, g13]) s = Sum(children=[p1, p2, p3, p4], weights=[0.25, 0.25, 0.25, 0.25]) # Wrap the SPN in a model and query. @@ -66,36 +66,36 @@ for i in range(samples): - # Randomly sample input values from Gaussian (normal) distributions. - inputs = np.column_stack((np.random.normal(0.5, 1), - np.random.normal(0.125, 0.25), - np.random.normal(0.345, 0.24), - np.random.normal(0.456, 0.1), - np.random.normal(0.94, 0.48), - np.random.normal(0.56, 0.42), - np.random.normal(0.76, 0.14), - np.random.normal(0.32, 0.58), - np.random.normal(0.58, 0.219), - np.random.normal(0.14, 0.52), - np.random.normal(0.24, 0.42), - np.random.normal(0.34, 0.1), - np.random.normal(0.44, 0.9), - np.random.normal(0.54, 0.7), - np.random.normal(0.64, 0.5), - np.random.normal(0.74, 0.4))) - - # Execute the compiled Kernel. - results = k.execute(1, inputs) - - # Compute the reference results using the inference from SPFlow. - reference = log_likelihood(s, inputs) - reference = reference.reshape(1) - - print(f"evaluation #{i}: result: {results}, reference: {reference}") - - # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. - if not np.all(np.isclose(results, reference)): - raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + np.random.normal(0.44, 0.9), + np.random.normal(0.54, 0.7), + np.random.normal(0.64, 0.5), + np.random.normal(0.74, 0.4))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(s, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") print("COMPUTATION OK") diff --git a/python-interface/test/test-slp-vectorized-escaping.py b/python-interface/test/test-slp-vectorized-escaping.py index 5be5599e..1c141e87 100644 --- a/python-interface/test/test-slp-vectorized-escaping.py +++ b/python-interface/test/test-slp-vectorized-escaping.py @@ -1,16 +1,16 @@ import numpy as np +import os +import spncpy as spnc import tempfile from datetime import datetime -import os +from spn.algorithms.Inference import log_likelihood from spn.structure.Base import Product, Sum -from spn.structure.leaves.parametric.Parametric import Gaussian from spn.structure.leaves.histogram.Histograms import Histogram from spn.structure.leaves.parametric.Parametric import Categorical -from spn.algorithms.Inference import log_likelihood +from spn.structure.leaves.parametric.Parametric import Gaussian from xspn.serialization.binary.BinarySerialization import BinarySerializer from xspn.structure.Model import SPNModel from xspn.structure.Query import JointProbability -import spncpy as spnc g0 = Gaussian(mean=0.00, stdev=1, scope=0) g1 = Gaussian(mean=0.01, stdev=0.75, scope=1) @@ -111,36 +111,36 @@ for i in range(samples): - # Randomly sample input values from Gaussian (normal) distributions. - inputs = np.column_stack((np.random.normal(0.5, 1), - np.random.normal(0.125, 0.25), - np.random.normal(0.345, 0.24), - np.random.normal(0.456, 0.1), - np.random.normal(0.94, 0.48), - np.random.normal(0.56, 0.42), - np.random.normal(0.76, 0.14), - np.random.normal(0.32, 0.58), - np.random.normal(0.58, 0.219), - np.random.normal(0.14, 0.52), - np.random.normal(0.24, 0.42), - np.random.normal(0.34, 0.1), - np.random.normal(0.44, 0.9), - np.random.normal(0.54, 0.7), - np.random.normal(0.64, 0.5), - np.random.normal(0.74, 0.4))) - - # Execute the compiled Kernel. - results = k.execute(1, inputs) - - # Compute the reference results using the inference from SPFlow. - reference = log_likelihood(spn, inputs) - reference = reference.reshape(1) - - print(f"evaluation #{i}: result: {results}, reference: {reference}") - - # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. - if not np.all(np.isclose(results, reference)): - raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + np.random.normal(0.44, 0.9), + np.random.normal(0.54, 0.7), + np.random.normal(0.64, 0.5), + np.random.normal(0.74, 0.4))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(spn, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") print("COMPUTATION OK") diff --git a/python-interface/test/test-slp-vectorized-mini.py b/python-interface/test/test-slp-vectorized-mini.py index d38d67dc..2f32e807 100644 --- a/python-interface/test/test-slp-vectorized-mini.py +++ b/python-interface/test/test-slp-vectorized-mini.py @@ -1,14 +1,14 @@ import numpy as np +import os +import spncpy as spnc import tempfile from datetime import datetime -import os -from spn.structure.Base import Product, Sum -from spn.structure.leaves.parametric.Parametric import Gaussian from spn.algorithms.Inference import log_likelihood +from spn.structure.Base import Sum +from spn.structure.leaves.parametric.Parametric import Gaussian from xspn.serialization.binary.BinarySerialization import BinarySerializer from xspn.structure.Model import SPNModel from xspn.structure.Query import JointProbability -import spncpy as spnc g0 = Gaussian(mean=0.11, stdev=1, scope=0) g1 = Gaussian(mean=0.12, stdev=0.75, scope=1) @@ -47,24 +47,24 @@ for i in range(samples): - # Randomly sample input values from Gaussian (normal) distributions. - inputs = np.column_stack((np.random.normal(0.5, 1), - np.random.normal(0.125, 0.25), - np.random.normal(0.345, 0.24), - np.random.normal(0.456, 0.1))) + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1))) - # Execute the compiled Kernel. - results = k.execute(1, inputs) + # Execute the compiled Kernel. + results = k.execute(1, inputs) - # Compute the reference results using the inference from SPFlow. - reference = log_likelihood(s, inputs) - reference = reference.reshape(1) + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(s, inputs) + reference = reference.reshape(1) - print(f"evaluation #{i}: result: {results}, reference: {reference}") + print(f"evaluation #{i}: result: {results}, reference: {reference}") - # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. - if not np.all(np.isclose(results, reference)): - raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") print("COMPUTATION OK") diff --git a/python-interface/test/test-slp-vectorized-tree.py b/python-interface/test/test-slp-vectorized-tree.py index 5fe486a4..9fbde7b1 100644 --- a/python-interface/test/test-slp-vectorized-tree.py +++ b/python-interface/test/test-slp-vectorized-tree.py @@ -1,14 +1,14 @@ import numpy as np +import os +import spncpy as spnc import tempfile from datetime import datetime -import os +from spn.algorithms.Inference import log_likelihood from spn.structure.Base import Product, Sum from spn.structure.leaves.parametric.Parametric import Gaussian -from spn.algorithms.Inference import log_likelihood from xspn.serialization.binary.BinarySerialization import BinarySerializer from xspn.structure.Model import SPNModel from xspn.structure.Query import JointProbability -import spncpy as spnc g0 = Gaussian(mean=0.11, stdev=1, scope=0) g1 = Gaussian(mean=0.12, stdev=0.75, scope=1) @@ -62,36 +62,36 @@ for i in range(samples): - # Randomly sample input values from Gaussian (normal) distributions. - inputs = np.column_stack((np.random.normal(0.5, 1), - np.random.normal(0.125, 0.25), - np.random.normal(0.345, 0.24), - np.random.normal(0.456, 0.1), - np.random.normal(0.94, 0.48), - np.random.normal(0.56, 0.42), - np.random.normal(0.76, 0.14), - np.random.normal(0.32, 0.58), - np.random.normal(0.58, 0.219), - np.random.normal(0.14, 0.52), - np.random.normal(0.24, 0.42), - np.random.normal(0.34, 0.1), - np.random.normal(0.44, 0.9), - np.random.normal(0.54, 0.7), - np.random.normal(0.64, 0.5), - np.random.normal(0.74, 0.4))) - - # Execute the compiled Kernel. - results = k.execute(1, inputs) - - # Compute the reference results using the inference from SPFlow. - reference = log_likelihood(spn, inputs) - reference = reference.reshape(1) - - print(f"evaluation #{i}: result: {results}, reference: {reference}") - - # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. - if not np.all(np.isclose(results, reference)): - raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack((np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + np.random.normal(0.44, 0.9), + np.random.normal(0.54, 0.7), + np.random.normal(0.64, 0.5), + np.random.normal(0.74, 0.4))) + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(spn, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") print("COMPUTATION OK") From 5df1a76a39b2fcc353dfc388b6865c0d6b8772a8 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Thu, 29 Apr 2021 02:44:46 +0200 Subject: [PATCH 137/385] Fix: test case not set up correctly. --- .../test/test-slp-vectorized-escaping.py | 85 +++++++++++-------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/python-interface/test/test-slp-vectorized-escaping.py b/python-interface/test/test-slp-vectorized-escaping.py index 1c141e87..2ed8294d 100644 --- a/python-interface/test/test-slp-vectorized-escaping.py +++ b/python-interface/test/test-slp-vectorized-escaping.py @@ -25,23 +25,23 @@ g10 = Gaussian(mean=0.10, stdev=1, scope=10) g11 = Gaussian(mean=0.11, stdev=1, scope=11) -h0 = Histogram([0., 1., 2.], [0.1, 0.9], [1, 1], scope=0) -h1 = Histogram([0., 1., 2.], [0.2, 0.8], [1, 1], scope=1) -h2 = Histogram([0., 1., 2.], [0.3, 0.7], [1, 1], scope=2) -h3 = Histogram([0., 1., 2.], [0.4, 0.6], [1, 1], scope=3) -h4 = Histogram([0., 1., 2.], [0.5, 0.5], [1, 1], scope=4) -h5 = Histogram([0., 1., 2.], [0.6, 0.4], [1, 1], scope=5) -h6 = Histogram([0., 1., 2.], [0.7, 0.3], [1, 1], scope=6) -h7 = Histogram([0., 1., 2.], [0.8, 0.2], [1, 1], scope=7) - -c0 = Categorical(p=[0.1, 0.1, 0.8], scope=0) -c1 = Categorical(p=[0.2, 0.2, 0.6], scope=1) -c2 = Categorical(p=[0.3, 0.3, 0.4], scope=2) -c3 = Categorical(p=[0.4, 0.4, 0.2], scope=3) -c4 = Categorical(p=[0.5, 0.4, 0.1], scope=4) -c5 = Categorical(p=[0.6, 0.3, 0.1], scope=5) -c6 = Categorical(p=[0.7, 0.2, 0.1], scope=6) -c7 = Categorical(p=[0.8, 0.1, 0.1], scope=7) +h0 = Histogram([0., 1., 2.], [0.1, 0.9], [1, 1], scope=12) +h1 = Histogram([0., 1., 2.], [0.2, 0.8], [1, 1], scope=13) +h2 = Histogram([0., 1., 2.], [0.3, 0.7], [1, 1], scope=14) +h3 = Histogram([0., 1., 2.], [0.4, 0.6], [1, 1], scope=15) +h4 = Histogram([0., 1., 2.], [0.5, 0.5], [1, 1], scope=16) +h5 = Histogram([0., 1., 2.], [0.6, 0.4], [1, 1], scope=17) +h6 = Histogram([0., 1., 2.], [0.7, 0.3], [1, 1], scope=18) +h7 = Histogram([0., 1., 2.], [0.8, 0.2], [1, 1], scope=19) + +c0 = Categorical(p=[0.1, 0.1, 0.8], scope=20) +c1 = Categorical(p=[0.2, 0.2, 0.6], scope=21) +c2 = Categorical(p=[0.3, 0.3, 0.4], scope=22) +c3 = Categorical(p=[0.4, 0.4, 0.2], scope=23) +c4 = Categorical(p=[0.5, 0.4, 0.1], scope=24) +c5 = Categorical(p=[0.6, 0.3, 0.1], scope=25) +c6 = Categorical(p=[0.7, 0.2, 0.1], scope=26) +c7 = Categorical(p=[0.8, 0.1, 0.1], scope=27) s0 = Sum(children=[g8, h4], weights=[0.5, 0.5]) s1 = Sum(children=[g9, h5], weights=[0.5, 0.5]) @@ -112,26 +112,41 @@ for i in range(samples): # Randomly sample input values from Gaussian (normal) distributions. - inputs = np.column_stack((np.random.normal(0.5, 1), - np.random.normal(0.125, 0.25), - np.random.normal(0.345, 0.24), - np.random.normal(0.456, 0.1), - np.random.normal(0.94, 0.48), - np.random.normal(0.56, 0.42), - np.random.normal(0.76, 0.14), - np.random.normal(0.32, 0.58), - np.random.normal(0.58, 0.219), - np.random.normal(0.14, 0.52), - np.random.normal(0.24, 0.42), - np.random.normal(0.34, 0.1), - np.random.normal(0.44, 0.9), - np.random.normal(0.54, 0.7), - np.random.normal(0.64, 0.5), - np.random.normal(0.74, 0.4))) + inputs = np.column_stack(( + # gaussian + np.random.normal(0.5, 1), + np.random.normal(0.125, 0.25), + np.random.normal(0.345, 0.24), + np.random.normal(0.456, 0.1), + np.random.normal(0.94, 0.48), + np.random.normal(0.56, 0.42), + np.random.normal(0.76, 0.14), + np.random.normal(0.32, 0.58), + np.random.normal(0.58, 0.219), + np.random.normal(0.14, 0.52), + np.random.normal(0.24, 0.42), + np.random.normal(0.34, 0.1), + # histogram + np.random.randint(2, size=1), + np.random.randint(2, size=1), + np.random.randint(2, size=1), + np.random.randint(2, size=1), + np.random.randint(2, size=1), + np.random.randint(2, size=1), + np.random.randint(2, size=1), + np.random.randint(2, size=1), + # categorical + np.random.randint(3, size=1), + np.random.randint(3, size=1), + np.random.randint(3, size=1), + np.random.randint(3, size=1), + np.random.randint(3, size=1), + np.random.randint(3, size=1), + np.random.randint(3, size=1), + np.random.randint(3, size=1))).astype("float64") # Execute the compiled Kernel. results = k.execute(1, inputs) - # Compute the reference results using the inference from SPFlow. reference = log_likelihood(spn, inputs) reference = reference.reshape(1) @@ -140,7 +155,7 @@ # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. if not np.all(np.isclose(results, reference)): - raise RuntimeError("COMPUTATION FAILED: Results did not match reference!") + raise RuntimeError(f"COMPUTATION FAILED: Results did not match reference! (input: {inputs})") print("COMPUTATION OK") From c2efd45b9ce1e9f05284431fbc8b61a5cc800e82 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 2 May 2021 03:02:10 +0200 Subject: [PATCH 138/385] Fix: chaotic insertion of vectorized instructions. --- .../Vectorization/SLP/SLPConversion.h | 23 ++++---- .../Vectorization/SLP/SLPConversion.cpp | 57 ++++++++++++------- .../SLP/SLPVectorizationPatterns.cpp | 38 ++++++------- .../VectorizeStructurePatterns.cpp | 54 +++++++++++++----- 4 files changed, 108 insertions(+), 64 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h index 32914a2e..384f8325 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h @@ -13,12 +13,11 @@ namespace mlir { namespace low { namespace slp { - enum CreationMode { - Default, - Constant, - Splat, - BroadcastInsert, - ConsecutiveLoad, + enum ElementFlag { + KeepNone, + KeepFirst, + KeepAll, + NoExtract, Skip }; @@ -29,16 +28,18 @@ namespace mlir { explicit ConversionManager(SLPNode* root); Value getInsertionPoint(NodeVector* vector) const; - bool isConverted(NodeVector* vector) const; + bool wasConverted(NodeVector* vector) const; - void update(NodeVector* vector, Value const& operation, CreationMode const& mode); + void update(NodeVector* vector, Value const& operation, ElementFlag const& flag); void markSkipped(NodeVector* vector); Value getValue(NodeVector* vector) const; - CreationMode getCreationMode(NodeVector* vector) const; + ElementFlag getElementFlag(NodeVector* vector) const; bool hasEscapingUsers(Value const& value) const; - Operation* moveEscapingUsersBehind(NodeVector* vector) const; + /// Recursively moves all users (and their users and so on) of the vector behind it. + void recursivelyMoveUsersAfter(NodeVector* vector) const; + Operation* getEarliestEscapingUser(Value const& value) const; private: @@ -46,7 +47,7 @@ namespace mlir { /// The operation that was created for this node vector. Optional operation{None}; /// The way it was created. - Optional mode{None}; + Optional flag{None}; }; DenseMap vectorData; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index 62253c1a..a5e8c041 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -68,7 +68,7 @@ Value ConversionManager::getInsertionPoint(NodeVector* vector) const { Value latestVal = latestInsertion; for (size_t i = 0; i < vector->numOperands(); ++i) { auto* operand = vector->getOperand(i); - if (vectorData.lookup(operand).mode == CreationMode::Skip) { + if (vectorData.lookup(operand).flag == ElementFlag::Skip) { continue; } assert(vectorData.lookup(operand).operation.hasValue() && "operand has not yet been converted"); @@ -83,67 +83,84 @@ Value ConversionManager::getInsertionPoint(NodeVector* vector) const { return latestElement(vector); } -void ConversionManager::update(NodeVector* vector, Value const& operation, CreationMode const& mode) { - assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].mode.hasValue() +void ConversionManager::update(NodeVector* vector, Value const& operation, ElementFlag const& flag) { + assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].flag.hasValue() && "vector has been converted already"); vectorData[vector].operation = operation; - vectorData[vector].mode = mode; + vectorData[vector].flag = flag; if (!latestInsertion || isBeforeInBlock(latestInsertion, operation)) { latestInsertion = operation; } } void ConversionManager::markSkipped(NodeVector* vector) { - assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].mode.hasValue() + assert(!vectorData[vector].operation.hasValue() && !vectorData[vector].flag.hasValue() && "vector has been converted already"); - vectorData[vector].mode = CreationMode::Skip; + vectorData[vector].flag = ElementFlag::Skip; } -bool ConversionManager::isConverted(NodeVector* vector) const { +bool ConversionManager::wasConverted(NodeVector* vector) const { return vectorData.lookup(vector).operation.hasValue(); } Value ConversionManager::getValue(NodeVector* vector) const { - assert(isConverted(vector) && "vector has not yet been converted"); + assert(wasConverted(vector) && "vector has not yet been converted"); return vectorData.lookup(vector).operation.getValue(); } -CreationMode ConversionManager::getCreationMode(NodeVector* vector) const { - assert(vectorData.lookup(vector).mode.hasValue() && "vector has not yet been converted"); - return vectorData.lookup(vector).mode.getValue(); +ElementFlag ConversionManager::getElementFlag(NodeVector* vector) const { + assert(vectorData.lookup(vector).flag.hasValue() && "vector has not yet been converted"); + return vectorData.lookup(vector).flag.getValue(); } bool ConversionManager::hasEscapingUsers(Value const& value) const { return escapingUsers.count(value) && !escapingUsers.lookup(value).empty(); } -Operation* ConversionManager::moveEscapingUsersBehind(NodeVector* vector) const { - assert(isConverted(vector) && "vector has not yet been converted"); +void ConversionManager::recursivelyMoveUsersAfter(NodeVector* vector) const { + assert(wasConverted(vector) && "vector has not yet been converted"); + Operation* vectorOp = vectorData.lookup(vector).operation->getDefiningOp(); SmallVector users; - Operation* earliestEscapingUser = nullptr; for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); for (auto* user : escapingUsers.lookup(element)) { - if (!earliestEscapingUser) { - earliestEscapingUser = user; + if (user->isBeforeInBlock(vectorOp)) { + users.emplace_back(user); } - users.emplace_back(user); } } for (size_t i = 0; i < users.size(); ++i) { - users.append(std::begin(users[i]->getUsers()), std::end(users[i]->getUsers())); + for (auto* user : users[i]->getUsers()) { + if (user->isBeforeInBlock(vectorOp)) { + users.emplace_back(user); + } + } } std::sort(std::begin(users), std::end(users), [&](Operation* lhs, Operation* rhs) { return lhs->isBeforeInBlock(rhs); }); users.erase(std::unique(std::begin(users), std::end(users)), std::end(users)); - Operation* latestUser = vectorData.lookup(vector).operation->getDefiningOp(); + Operation* latestUser = vectorOp; for (size_t i = 0; i < users.size(); ++i) { if (users[i]->isBeforeInBlock(latestUser)) { users[i]->moveAfter(latestUser); } latestUser = users[i]; } - return earliestEscapingUser; +} + +Operation* ConversionManager::getEarliestEscapingUser(Value const& value) const { + assert(hasEscapingUsers(value) && "value does not have any escaping users"); + Operation* earliestUser = nullptr; + for (auto* user : escapingUsers.lookup(value)) { + if (!earliestUser) { + earliestUser = user; + continue; + } + if (user->isBeforeInBlock(earliestUser)) { + earliestUser = user; + } + } + return earliestUser; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 8c44cc1d..95553de1 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -55,7 +55,7 @@ namespace { LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternRewriter& rewriter) const { - assert(!conversionManager.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.wasConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), constantOp.getType()); rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); @@ -67,14 +67,14 @@ LogicalResult VectorizeConstant::matchAndRewrite(ConstantOp constantOp, PatternR auto const& elements = denseFloatingPoints(std::begin(constants), std::end(constants), vectorType); auto constVector = rewriter.create(constantOp.getLoc(), elements); - conversionManager.update(vector, constVector, CreationMode::Constant); + conversionManager.update(vector, constVector, ElementFlag::NoExtract); return success(); } LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, PatternRewriter& rewriter) const { - assert(!conversionManager.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.wasConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), batchReadOp.getType()); rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); @@ -82,86 +82,86 @@ LogicalResult VectorizeBatchRead::matchAndRewrite(SPNBatchRead batchReadOp, Patt if (vector->splattable()) { auto const& element = vector->getElement(0); auto vectorOperation = rewriter.create(batchReadOp.getLoc(), vectorType, element); - conversionManager.update(vector, vectorOperation, CreationMode::Splat); + conversionManager.update(vector, vectorOperation, ElementFlag::KeepFirst); } else { auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, ElementFlag::KeepAll); } } else { auto batchReadLoc = batchReadOp.getLoc(); auto memIndex = rewriter.create(batchReadLoc, rewriter.getIndexAttr(batchReadOp.sampleIndex())); ValueRange indices{batchReadOp.batchIndex(), memIndex}; auto vectorLoad = rewriter.create(batchReadLoc, vectorType, batchReadOp.batchMem(), indices); - conversionManager.update(vector, vectorLoad, CreationMode::ConsecutiveLoad); + conversionManager.update(vector, vectorLoad, ElementFlag::KeepNone); } - assert(conversionManager.isConverted(vector)); + assert(conversionManager.wasConverted(vector)); return success(); } LogicalResult VectorizeAdd::matchAndRewrite(SPNAdd addOp, PatternRewriter& rewriter) const { - assert(!conversionManager.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.wasConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), addOp.getType()); rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->isLeaf()) { assert(!vector->splattable() && "addition vector should not be a leaf vector if it is splattable"); auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, ElementFlag::KeepAll); return success(); } SmallVector operands; for (unsigned i = 0; i < addOp.getNumOperands(); ++i) { auto* operand = vector->getOperand(i); - assert(conversionManager.isConverted(operand) && "operand has not yet been vectorized"); + assert(conversionManager.wasConverted(operand) && "operand has not yet been vectorized"); operands.emplace_back(conversionManager.getValue(operand)); } auto vectorAdd = rewriter.create(addOp.getLoc(), vectorType, operands); - conversionManager.update(vector, vectorAdd, CreationMode::Default); + conversionManager.update(vector, vectorAdd, ElementFlag::KeepNone); return success(); } LogicalResult VectorizeMul::matchAndRewrite(SPNMul mulOp, PatternRewriter& rewriter) const { - assert(!conversionManager.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.wasConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), mulOp.getType()); rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->isLeaf()) { assert(!vector->splattable() && "multiplication vector should not be a leaf vector if it is splattable"); auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, ElementFlag::KeepAll); return success(); } SmallVector operands; for (unsigned i = 0; i < mulOp.getNumOperands(); ++i) { auto* operand = vector->getOperand(i); - assert(conversionManager.isConverted(operand) && "operand has not yet been vectorized"); + assert(conversionManager.wasConverted(operand) && "operand has not yet been vectorized"); operands.emplace_back(conversionManager.getValue(operand)); } auto vectorAdd = rewriter.create(mulOp.getLoc(), vectorType, operands); - conversionManager.update(vector, vectorAdd, CreationMode::Default); + conversionManager.update(vector, vectorAdd, ElementFlag::KeepNone); return success(); } LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, PatternRewriter& rewriter) const { - assert(!conversionManager.isConverted(vector) && "vector has already been created"); + assert(!conversionManager.wasConverted(vector) && "vector has already been created"); auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), gaussianOp.getType()); rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); if (vector->isLeaf()) { assert(!vector->splattable() && "gaussian vector should not be a leaf vector if it is splattable"); auto vectorOperation = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionManager.update(vector, vectorOperation, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorOperation, ElementFlag::KeepAll); return success(); } @@ -197,7 +197,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto const& stddevs = denseFloatingPoints(std::begin(stddevAttributes), std::end(stddevAttributes), vectorType); // Grab the input vector. - assert(conversionManager.isConverted(vector->getOperand(0)) && "input vector has not yet been vectorized"); + assert(conversionManager.wasConverted(vector->getOperand(0)) && "input vector has not yet been vectorized"); Value const& inputVector = conversionManager.getValue(vector->getOperand(0)); // Calculate Gaussian distribution using e^(-0.5 * ((x - mean) / stddev)^2)) / (stddev * sqrt(2 * PI)) @@ -221,7 +221,7 @@ LogicalResult VectorizeGaussian::matchAndRewrite(SPNGaussianLeaf gaussianOp, Pat auto coefficientVector = rewriter.create(gaussianLoc, coefficients); gaussianVector = rewriter.create(gaussianLoc, coefficientVector, gaussianVector); - conversionManager.update(vector, gaussianVector, CreationMode::Default); + conversionManager.update(vector, gaussianVector, ElementFlag::KeepNone); return success(); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index fd9f6c1f..96998c9d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -145,25 +145,50 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); + // This assumes that node vectors using these illegal vectors as operands don't need them. For example, + // SPNBatchReads being replaced with vector::LoadOps or 'broadcastInserts' instead of using their + // vectorized operands. + if (wouldBeIllegal(vector)) { + conversionManager.markSkipped(vector); + continue; + } // dumpSLPNodeVector(*vector); auto* vectorOp = vector->begin()->getDefiningOp(); if (vector->containsBlockArgs() || failed(applicator.matchAndRewrite(vectorOp, rewriter))) { - // This assumes that the node vectors using these illegal vectors know what they're doing and don't need them. - // For example, SPNBatchReads being replaced with vector::LoadOps or broadcastInserts instead of using their - // vectorized operands. - if (wouldBeIllegal(vector)) { - conversionManager.markSkipped(vector); - continue; - } + auto const& vectorType = VectorType::get(static_cast(vector->numLanes()), computationType); rewriter.setInsertionPointAfterValue(conversionManager.getInsertionPoint(vector)); + + // Create extractions from vectorized operands if present. + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + auto const& element = vector->getElement(lane); + if (auto* elementOp = element.getDefiningOp()) { + for (size_t i = 0; i < vector->numOperands(); ++i) { + auto* operand = vector->getOperand(i); + // E.g. illegal operand vectors. + if (!conversionManager.wasConverted(operand)) { + continue; + } + auto const& source = conversionManager.getValue(operand); + auto extractOp = rewriter.create(element.getLoc(), source, lane); + elementOp->setOperand(i, extractOp.result()); + if (elementOp->isBeforeInBlock(extractOp)) { + elementOp->moveAfter(extractOp); + rewriter.setInsertionPointAfter(elementOp); + } + } + } + if (lane == 0 && vector->splattable()) { + break; + } + } if (vector->splattable()) { auto const& element = vector->getElement(0); auto vectorizedOp = rewriter.create(element.getLoc(), vectorType, element); - conversionManager.update(vector, vectorizedOp, CreationMode::Splat); + conversionManager.update(vector, vectorizedOp, ElementFlag::KeepFirst); } else { auto vectorizedOp = broadcastFirstInsertRest(vector->begin(), vector->end(), vectorType, rewriter); - conversionManager.update(vector, vectorizedOp, CreationMode::BroadcastInsert); + conversionManager.update(vector, vectorizedOp, ElementFlag::KeepAll); } } } @@ -171,25 +196,26 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // Create vector extractions for escaping uses & erase superfluous operations. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); - auto const& creationMode = conversionManager.getCreationMode(vector); - if (creationMode == CreationMode::Skip) { + auto const& creationMode = conversionManager.getElementFlag(vector); + if (creationMode == ElementFlag::Skip) { continue; } + conversionManager.recursivelyMoveUsersAfter(vector); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { auto const& element = vector->getElement(lane); if (finishedValues.contains(element)) { continue; } finishedValues.insert(element); - if (creationMode == CreationMode::BroadcastInsert || (creationMode == CreationMode::Splat && lane == 0)) { + if (creationMode == ElementFlag::KeepAll || (creationMode == ElementFlag::KeepFirst && lane == 0)) { continue; } if (conversionManager.hasEscapingUsers(element)) { - if (creationMode == CreationMode::Constant) { + if (creationMode == ElementFlag::NoExtract) { continue; } + rewriter.setInsertionPoint(conversionManager.getEarliestEscapingUser(element)); auto const& source = conversionManager.getValue(vector); - rewriter.setInsertionPoint(conversionManager.moveEscapingUsersBehind(vector)); auto extractOp = rewriter.create(element.getLoc(), source, lane); element.replaceAllUsesWith(extractOp.result()); } From 9ea055ff1eab5a4726e59ffd7fd277df5a69c437 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 2 May 2021 03:55:44 +0200 Subject: [PATCH 139/385] Added speaker test case. --- .../test/test-slp-vectorized-speaker.py | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 python-interface/test/test-slp-vectorized-speaker.py diff --git a/python-interface/test/test-slp-vectorized-speaker.py b/python-interface/test/test-slp-vectorized-speaker.py new file mode 100644 index 00000000..123f8cc9 --- /dev/null +++ b/python-interface/test/test-slp-vectorized-speaker.py @@ -0,0 +1,92 @@ +import numpy as np +import os +import spncpy as spnc +import tempfile +from datetime import datetime +from spn.algorithms.Inference import log_likelihood +from xspn.serialization.binary.BinarySerialization import BinaryDeserializer, BinarySerializer + +# Read the trained SPN from file +query = BinaryDeserializer(os.path.join(os.path.dirname(__file__), "..", "..", "mlir", "test", "test-resources", + "speaker_FADG0.bin")).deserialize_from_file() + +batchsize = 1 + +print("feature type:", query.graph.featureType) +print("saved batch size:", query.batchSize) +print("desired batch size:", batchsize) +query.batchSize = batchsize + +# Construct a temporary file that we will use to serialize the SPN to. +timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") +tempfile = os.path.join(tempfile.gettempdir(), f"spn_{timestamp}.bin") + +# Serialize the SPN to binary format as input to the compiler. +print("Serializing SPN to file...") +BinarySerializer(tempfile).serialize_to_file(query) +# Check that the serialization worked. +if not os.path.isfile(tempfile): + raise RuntimeError("Serialization of the SPN failed") + +# Invoke the compiler. +print("Invoking compiler...") +compiler = spnc.SPNCompiler() +# Compile the query into a Kernel. +options = dict({"target": "CPU", "cpu-vectorize": "true"}) +k = compiler.compileQuery(tempfile, options) +# Check that the comiled Kernel actually exists. +if not os.path.isfile(k.fileName()): + raise RuntimeError("Compilation failed, not Kernel produced") + +samples = 50 + +for i in range(samples): + + # Randomly sample input values from Gaussian (normal) distributions. + inputs = np.column_stack(( + # 26 gaussian inputs + np.random.normal(0.01, 1.00), + np.random.normal(0.02, 0.90), + np.random.normal(0.03, 0.80), + np.random.normal(0.04, 0.70), + np.random.normal(0.05, 0.60), + np.random.normal(0.06, 0.50), + np.random.normal(0.07, 0.40), + np.random.normal(0.08, 0.30), + np.random.normal(0.09, 0.20), + np.random.normal(0.10, 0.10), + np.random.normal(0.11, 1.00), + np.random.normal(0.12, 0.90), + np.random.normal(0.13, 0.80), + np.random.normal(0.14, 0.70), + np.random.normal(0.15, 0.60), + np.random.normal(0.16, 0.50), + np.random.normal(0.17, 0.40), + np.random.normal(0.18, 0.30), + np.random.normal(0.19, 0.20), + np.random.normal(0.20, 0.10), + np.random.normal(0.21, 1.00), + np.random.normal(0.22, 0.90), + np.random.normal(0.23, 0.80), + np.random.normal(0.24, 0.70), + np.random.normal(0.25, 0.60), + np.random.normal(0.26, 0.50), + )).astype("float64") + + # Execute the compiled Kernel. + results = k.execute(1, inputs) + # Compute the reference results using the inference from SPFlow. + reference = log_likelihood(query.graph.root, inputs) + reference = reference.reshape(1) + + print(f"evaluation #{i}: result: {results}, reference: {reference}") + + # Compare computed results and reference to make sure the computation by the compiled Kernel is correct. + if not np.all(np.isclose(results, reference)): + raise RuntimeError(f"COMPUTATION FAILED: Results did not match reference! (input: {inputs})") + +print("COMPUTATION OK") + +# Remove the serialized SPN file and the compiled Kernel. +os.remove(tempfile) +# os.remove(k.fileName()) From 004f9b6ca4f0171e61a489bfcd243e212a368f76 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 2 May 2021 05:07:00 +0200 Subject: [PATCH 140/385] Formatting. --- .../HiSPNtoLoSPN/ArithmeticPrecisionAnalysis.h | 2 +- mlir/include/Conversion/HiSPNtoLoSPN/NodePatterns.h | 2 +- mlir/include/Conversion/HiSPNtoLoSPN/QueryPatterns.h | 2 +- mlir/include/Conversion/LoSPNtoCPU/NodePatterns.h | 2 +- .../LoSPNtoCPU/Vectorization/VectorizationPatterns.h | 4 ++-- mlir/lib/Conversion/HiSPNtoLoSPN/NodePatterns.cpp | 2 +- mlir/lib/Conversion/LoSPNtoCPU/NodePatterns.cpp | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 12 ++++++++++++ .../LoSPN/Bufferize/LoSPNBufferizationPatterns.h | 2 +- .../LoSPN/Passes/LoSPNGraphStatsCollection.cpp | 4 ++-- 10 files changed, 23 insertions(+), 11 deletions(-) diff --git a/mlir/include/Conversion/HiSPNtoLoSPN/ArithmeticPrecisionAnalysis.h b/mlir/include/Conversion/HiSPNtoLoSPN/ArithmeticPrecisionAnalysis.h index 0311df05..c29cd643 100644 --- a/mlir/include/Conversion/HiSPNtoLoSPN/ArithmeticPrecisionAnalysis.h +++ b/mlir/include/Conversion/HiSPNtoLoSPN/ArithmeticPrecisionAnalysis.h @@ -136,7 +136,7 @@ namespace mlir { /// \param isSum Boolean If set to true will treat operands as addends, otherwise as multiplicands. /// \return SmallVector with a single element, representing the whole Sum or Product. llvm::SmallVector - estimateErrorBinaryOperation(SmallVector operands, bool isSum); + estimateErrorBinaryOperation(SmallVector operands, bool isSum); /// Estimate the error introduced by the given (weighted) addition operation w.r.t. the current format. /// \param op Pointer to the defining operation, representing a SPN node. diff --git a/mlir/include/Conversion/HiSPNtoLoSPN/NodePatterns.h b/mlir/include/Conversion/HiSPNtoLoSPN/NodePatterns.h index 7470e017..5b766907 100644 --- a/mlir/include/Conversion/HiSPNtoLoSPN/NodePatterns.h +++ b/mlir/include/Conversion/HiSPNtoLoSPN/NodePatterns.h @@ -119,7 +119,7 @@ namespace mlir { }; static inline void populateHiSPNtoLoSPNNodePatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter) { + TypeConverter& typeConverter) { patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); diff --git a/mlir/include/Conversion/HiSPNtoLoSPN/QueryPatterns.h b/mlir/include/Conversion/HiSPNtoLoSPN/QueryPatterns.h index b734d6e9..308c62cf 100644 --- a/mlir/include/Conversion/HiSPNtoLoSPN/QueryPatterns.h +++ b/mlir/include/Conversion/HiSPNtoLoSPN/QueryPatterns.h @@ -28,7 +28,7 @@ namespace mlir { }; static inline void populateHiSPNtoLoSPNQueryPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter) { + TypeConverter& typeConverter) { patterns.insert(typeConverter, context); } diff --git a/mlir/include/Conversion/LoSPNtoCPU/NodePatterns.h b/mlir/include/Conversion/LoSPNtoCPU/NodePatterns.h index c588707d..2bb3257f 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/NodePatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/NodePatterns.h @@ -165,7 +165,7 @@ namespace mlir { }; static inline void populateLoSPNtoCPUNodePatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter) { + TypeConverter& typeConverter) { patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h index b0b7f76d..925bfe7e 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/VectorizationPatterns.h @@ -66,8 +66,8 @@ namespace mlir { }; static inline void populateLoSPNtoCPUVectorizationTaskPatterns(OwningRewritePatternList& patterns, - MLIRContext* context, - TypeConverter& typeConverter) { + MLIRContext* context, + TypeConverter& typeConverter) { patterns.insert(typeConverter, context, 5); } diff --git a/mlir/lib/Conversion/HiSPNtoLoSPN/NodePatterns.cpp b/mlir/lib/Conversion/HiSPNtoLoSPN/NodePatterns.cpp index 821d8c98..0fe4b575 100644 --- a/mlir/lib/Conversion/HiSPNtoLoSPN/NodePatterns.cpp +++ b/mlir/lib/Conversion/HiSPNtoLoSPN/NodePatterns.cpp @@ -145,7 +145,7 @@ LogicalResult RootNodeLowering::matchAndRewriteChecked(high::RootNode op, if (!isLogType(result.getType())) { // Insert a conversion to log before returning the result. // Currently always uses F64 type to represent log results. - result = rewriter.create(op->getLoc(),operands[0].getType(), result); + result = rewriter.create(op->getLoc(), operands[0].getType(), result); } rewriter.replaceOpWithNewOp(op, result); return success(); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/NodePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/NodePatterns.cpp index 47c96ed3..4174243c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/NodePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/NodePatterns.cpp @@ -342,7 +342,7 @@ namespace { auto visibility = rewriter.getStringAttr("private"); auto memrefType = mlir::MemRefType::get({(long) arrayValues.size()}, resultType); (void) rewriter.create(op.getLoc(), symbolName, visibility, - mlir::TypeAttr::get(memrefType), valArrayAttr, true); + mlir::TypeAttr::get(memrefType), valArrayAttr, true); // Restore insertion point rewriter.restoreInsertionPoint(restore); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 7ca8d8e3..33001065 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -69,6 +69,11 @@ namespace { return lhsOp->getName().getStringRef() < rhsOp->getName().getStringRef(); }); } + + SmallVector sortedByLoc() { + return SmallVector{}; + } + } // end namespace void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const { @@ -86,7 +91,14 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const for (auto& operands : allOperands) { sortByOpcode(operands, currentOpCode); } + // Determine lanes whose elements aren't allowed to be reordered. This is the case if they have escaping uses. + // DenseMap> lockedLanes; for (unsigned i = 0; i < arity; ++i) { + bool canAppendToNode = true; + // for(size_t n = 0; n < allOperands.size(); ++n) { + // SmallVector const& operands = allOperands[n]; + // for(size_t ) + // } if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](SmallVector const& operands) { return operands[i].getDefiningOp()->getName() == currentOpCode && !escapesMultinode(operands[i], currentNode); })) { diff --git a/mlir/lib/Dialect/LoSPN/Bufferize/LoSPNBufferizationPatterns.h b/mlir/lib/Dialect/LoSPN/Bufferize/LoSPNBufferizationPatterns.h index 05496873..6d26bb68 100644 --- a/mlir/lib/Dialect/LoSPN/Bufferize/LoSPNBufferizationPatterns.h +++ b/mlir/lib/Dialect/LoSPN/Bufferize/LoSPNBufferizationPatterns.h @@ -47,7 +47,7 @@ namespace mlir { }; static inline void populateLoSPNBufferizationPatterns(OwningRewritePatternList& patterns, MLIRContext* context, - TypeConverter& typeConverter) { + TypeConverter& typeConverter) { patterns.insert(typeConverter, context); patterns.insert(typeConverter, context); } diff --git a/mlir/lib/Dialect/LoSPN/Passes/LoSPNGraphStatsCollection.cpp b/mlir/lib/Dialect/LoSPN/Passes/LoSPNGraphStatsCollection.cpp index 51d43546..f45f1e43 100644 --- a/mlir/lib/Dialect/LoSPN/Passes/LoSPNGraphStatsCollection.cpp +++ b/mlir/lib/Dialect/LoSPN/Passes/LoSPNGraphStatsCollection.cpp @@ -22,8 +22,8 @@ namespace { struct LoSPNGraphStatsCollection : public PassWrapper> { public: - explicit LoSPNGraphStatsCollection(std::string graphStatsFilename) : - graphStatsFile{std::move(graphStatsFilename)} {} + explicit LoSPNGraphStatsCollection(std::string graphStatsFilename) : + graphStatsFile{std::move(graphStatsFilename)} {} protected: void runOnOperation() override { From 33315ef416e7f3cbce4c0b6ab06ff14405d0692a Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 4 May 2021 06:13:08 +0200 Subject: [PATCH 141/385] Add tree & re-use functionality to graph builder. --- .../Vectorization/SLP/SLPGraphBuilder.h | 14 +++-- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 4 +- .../Vectorization/SLP/SLPGraphBuilder.cpp | 63 +++++++++++++++---- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 23 ++++--- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 1 - 5 files changed, 76 insertions(+), 29 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index 94b02f32..6963a707 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -21,7 +21,7 @@ namespace mlir { explicit SLPGraphBuilder(size_t maxLookAhead); - std::unique_ptr build(ArrayRef const& seed) const; + std::shared_ptr build(ArrayRef const& seed); private: @@ -37,17 +37,19 @@ namespace mlir { // vectorization has failed, give higher priority to others FAILED }; - static Mode modeFromValue(Value const& value); - - void buildGraph(NodeVector* vector, SLPNode* currentNode) const; + void buildGraph(NodeVector* vector, SLPNode* currentNode); void reorderOperands(SLPNode* multinode) const; - std::pair getBest(Mode const& mode, Value const& last, SmallVector& candidates) const; - int getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const; + static Mode modeFromValue(Value const& value); + std::pair, size_t> getOrCreateOperand(ArrayRef values, + bool* isNewOperand = nullptr); + size_t const maxLookAhead; + SmallVector> nodes; + SmallPtrSet reorderWorklist; }; } diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index f2bf71f1..587e50ea 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -65,7 +65,7 @@ namespace mlir { NodeVector* addVector(ArrayRef const& operations); NodeVector* getVector(size_t index) const; - SLPNode* addOperand(ArrayRef const& values, NodeVector* definingVector); + void addOperand(std::shared_ptr operandNode, size_t vectorIndex, NodeVector* definingVector); SLPNode* getOperand(size_t index) const; std::vector getOperands() const; size_t numOperands() const; @@ -74,7 +74,7 @@ namespace mlir { private: SmallVector> vectors; - SmallVector> operandNodes; + SmallVector> operandNodes; }; } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 33001065..eadc616a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -13,8 +13,10 @@ using namespace mlir::spn::low::slp; SLPGraphBuilder::SLPGraphBuilder(size_t maxLookAhead) : maxLookAhead{maxLookAhead} {} -std::unique_ptr SLPGraphBuilder::build(ArrayRef const& seed) const { - auto root = std::make_unique(SLPNode{seed}); +std::shared_ptr SLPGraphBuilder::build(ArrayRef const& seed) { + auto root = std::make_shared(seed); + nodes.emplace_back(root); + reorderWorklist.insert(root.get()); buildGraph(root->getVector(0), root.get()); return root; } @@ -70,13 +72,9 @@ namespace { }); } - SmallVector sortedByLoc() { - return SmallVector{}; - } - } // end namespace -void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const { +void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { // Stop growing graph if (!vectorizable(vector->begin(), vector->end())) { return; @@ -94,7 +92,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const // Determine lanes whose elements aren't allowed to be reordered. This is the case if they have escaping uses. // DenseMap> lockedLanes; for (unsigned i = 0; i < arity; ++i) { - bool canAppendToNode = true; + // bool canAppendToNode = true; // for(size_t n = 0; n < allOperands.size(); ++n) { // SmallVector const& operands = allOperands[n]; // for(size_t ) @@ -114,12 +112,15 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { operandValues.emplace_back(allOperands[lane][i]); } - currentNode->addOperand(operandValues, vector); + auto operandAndVector = getOrCreateOperand(operandValues); + currentNode->addOperand(operandAndVector.first, operandAndVector.second, vector); } } // B. Normal Mode: Finished building multi-node if (currentNode->isRootOfNode(*vector)) { - reorderOperands(currentNode); + if (reorderWorklist.erase(currentNode)) { + reorderOperands(currentNode); + } for (auto* operandNode : currentNode->getOperands()) { buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); } @@ -133,14 +134,20 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) const auto operand = currentNode->getValue(lane, 0).getDefiningOp()->getOperand(i); operandValues.emplace_back(operand); } - auto* operandNode = currentNode->addOperand(operandValues, vector); - buildGraph(operandNode->getVector(0), operandNode); + bool isNewOperand = false; + auto operandAndVector = getOrCreateOperand(operandValues, &isNewOperand); + currentNode->addOperand(operandAndVector.first, operandAndVector.second, vector); + if (isNewOperand) { + buildGraph(operandAndVector.first->getVector(0), operandAndVector.first.get()); + } } } } void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { auto const& numOperands = multinode->numOperands(); + llvm::dbgs() << "Reordering multinode " << multinode << " with " << numOperands << " operands (" + << multinode->numVectors() << " vectors)\n"; SmallVector> finalOrder{multinode->numLanes()}; SmallVector> mode{multinode->numLanes()}; // 1. Strip first lane @@ -299,3 +306,35 @@ SLPGraphBuilder::Mode SLPGraphBuilder::modeFromValue(Value const& value) { } return OPCODE; } + +std::pair, size_t> SLPGraphBuilder::getOrCreateOperand(ArrayRef values, + bool* isNewOperand) { + for (auto const& node : nodes) { + if (node->numLanes() != values.size()) { + continue; + } + for (size_t i = 0; i < node->numVectors(); ++i) { + auto* vector = node->getVector(i); + bool equal = true; + for (size_t lane = 0; lane < vector->numLanes(); ++lane) { + if (vector->getElement(lane) != values[lane]) { + equal = false; + break; + } + } + if (equal) { + if (isNewOperand) { + *isNewOperand = false; + } + return std::make_pair(node, i); + } + } + } + if (isNewOperand) { + *isNewOperand = true; + } + auto operandNode = std::make_shared(values); + nodes.emplace_back(operandNode); + reorderWorklist.insert(operandNode.get()); + return std::make_pair(operandNode, 0); +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index c9810d33..8cd501ec 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -129,7 +129,8 @@ size_t SLPNode::numVectors() const { } NodeVector* SLPNode::addVector(ArrayRef const& values, NodeVector* definingVector) { - auto newVector = vectors.emplace_back(std::make_shared(values)); + auto const& newVector = std::make_shared(values); + vectors.emplace_back(newVector); if (definingVector) { definingVector->operands.emplace_back(newVector); } @@ -137,7 +138,9 @@ NodeVector* SLPNode::addVector(ArrayRef const& values, NodeVector* defini } NodeVector* SLPNode::addVector(ArrayRef const& operations) { - return vectors.emplace_back(std::make_shared(operations)).get(); + auto const& newVector = std::make_shared(operations); + vectors.emplace_back(newVector); + return newVector.get(); } NodeVector* SLPNode::getVector(size_t index) const { @@ -145,12 +148,11 @@ NodeVector* SLPNode::getVector(size_t index) const { return vectors[index].get(); } -SLPNode* SLPNode::addOperand(ArrayRef const& values, NodeVector* definingVector) { - auto const& operandNode = operandNodes.emplace_back(std::make_unique(values)); +void SLPNode::addOperand(std::shared_ptr operandNode, size_t vectorIndex, NodeVector* definingVector) { + auto const& node = operandNodes.emplace_back(std::move(operandNode)); if (definingVector) { - definingVector->operands.emplace_back(operandNode->vectors.front()); + definingVector->operands.emplace_back(node->vectors[vectorIndex]); } - return operandNode.get(); } SLPNode* SLPNode::getOperand(size_t index) const { @@ -176,8 +178,13 @@ size_t SLPNode::numOperands() const { SmallVector SLPNode::postOrder(SLPNode* root) { SmallVector order; for (auto* operand : root->getOperands()) { - assert(std::find(std::begin(order), std::end(order), operand) == std::end(order)); - order.append(postOrder(operand)); + if (std::find(std::begin(order), std::end(order), operand) == std::end(order)) { + for (auto* node : postOrder(operand)) { + if (std::find(std::begin(order), std::end(order), node) == std::end(order)) { + order.emplace_back(node); + } + } + } } order.emplace_back(root); return order; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index c4643930..b06c3b91 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -53,7 +53,6 @@ void slp::dumpSLPNode(SLPNode const& node) { for (size_t i = node.numVectors(); i-- > 0;) { dumpSLPNodeVector(*node.getVector(i)); } - llvm::dbgs() << "\n"; } // Helper functions in an anonymous namespace. From 0b34497cec9d028456543b128dbe11d2a2e2bdef Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Tue, 4 May 2021 18:45:41 +0200 Subject: [PATCH 142/385] Remove recursive postOrder, simplify node vector structure. --- .../Vectorization/SLP/SLPGraphBuilder.h | 4 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 9 ++- .../Vectorization/SLP/SLPGraphBuilder.cpp | 26 +++----- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 60 +++++++++---------- 4 files changed, 44 insertions(+), 55 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index 6963a707..bca06f25 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -44,8 +44,8 @@ namespace mlir { int getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const; static Mode modeFromValue(Value const& value); - std::pair, size_t> getOrCreateOperand(ArrayRef values, - bool* isNewOperand = nullptr); + std::pair, NodeVector*> getOrCreateOperand(ArrayRef values, + bool* isNewOperand = nullptr); size_t const maxLookAhead; SmallVector> nodes; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index 587e50ea..bad89300 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -25,7 +25,6 @@ namespace mlir { bool contains(Value const& value) const; bool containsBlockArgs() const; - bool vectorizable() const; bool splattable() const; bool isLeaf() const; @@ -41,7 +40,7 @@ namespace mlir { private: SmallVector values; - SmallVector> operands; + SmallVector operands; }; class SLPNode { @@ -62,10 +61,10 @@ namespace mlir { size_t numVectors() const; NodeVector* addVector(ArrayRef const& values, NodeVector* definingVector); - NodeVector* addVector(ArrayRef const& operations); NodeVector* getVector(size_t index) const; + NodeVector* getVectorOrNull(ArrayRef const& values) const; - void addOperand(std::shared_ptr operandNode, size_t vectorIndex, NodeVector* definingVector); + void addOperand(std::shared_ptr operandNode, NodeVector* operandVector, NodeVector* definingVector); SLPNode* getOperand(size_t index) const; std::vector getOperands() const; size_t numOperands() const; @@ -73,7 +72,7 @@ namespace mlir { static SmallVector postOrder(SLPNode* root); private: - SmallVector> vectors; + SmallVector> vectors; SmallVector> operandNodes; }; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index eadc616a..9dfa8a25 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -307,27 +307,19 @@ SLPGraphBuilder::Mode SLPGraphBuilder::modeFromValue(Value const& value) { return OPCODE; } -std::pair, size_t> SLPGraphBuilder::getOrCreateOperand(ArrayRef values, - bool* isNewOperand) { +std::pair, NodeVector*> SLPGraphBuilder::getOrCreateOperand(ArrayRef values, + bool* isNewOperand) { for (auto const& node : nodes) { if (node->numLanes() != values.size()) { continue; } - for (size_t i = 0; i < node->numVectors(); ++i) { - auto* vector = node->getVector(i); - bool equal = true; - for (size_t lane = 0; lane < vector->numLanes(); ++lane) { - if (vector->getElement(lane) != values[lane]) { - equal = false; - break; - } - } - if (equal) { - if (isNewOperand) { - *isNewOperand = false; - } - return std::make_pair(node, i); + auto* vector = node->getVectorOrNull(values); + if (vector) { + if (isNewOperand) { + *isNewOperand = false; } + llvm::dbgs() << "Duplicate found, skipping operand building & reordering...\n"; + return std::make_pair(node, vector); } } if (isNewOperand) { @@ -336,5 +328,5 @@ std::pair, size_t> SLPGraphBuilder::getOrCreateOperand( auto operandNode = std::make_shared(values); nodes.emplace_back(operandNode); reorderWorklist.insert(operandNode.get()); - return std::make_pair(operandNode, 0); + return std::make_pair(operandNode, operandNode->getVector(0)); } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 8cd501ec..76b4f7e2 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -39,12 +39,6 @@ bool NodeVector::containsBlockArgs() const { }); } -bool NodeVector::vectorizable() const { - return std::all_of(std::begin(values), std::end(values), [&](Value const& value) { - return low::slp::vectorizable(value); - }); -} - bool NodeVector::splattable() const { if (containsBlockArgs()) { return std::all_of(std::begin(values), std::end(values), [&](Value const& element) { @@ -70,7 +64,7 @@ size_t NodeVector::numOperands() const { NodeVector* NodeVector::getOperand(size_t index) const { assert(index < operands.size()); - return operands[index].get(); + return operands[index]; } SmallVectorImpl::const_iterator NodeVector::begin() const { @@ -93,11 +87,11 @@ Value const& NodeVector::operator[](size_t lane) const { // === SLPNode === // SLPNode::SLPNode(ArrayRef const& values) { - addVector(values, nullptr); + vectors.emplace_back(std::make_unique(values)); } SLPNode::SLPNode(ArrayRef const& operations) { - addVector(operations); + vectors.emplace_back(std::make_unique(operations)); } Value SLPNode::getValue(size_t lane, size_t index) const { @@ -129,17 +123,8 @@ size_t SLPNode::numVectors() const { } NodeVector* SLPNode::addVector(ArrayRef const& values, NodeVector* definingVector) { - auto const& newVector = std::make_shared(values); - vectors.emplace_back(newVector); - if (definingVector) { - definingVector->operands.emplace_back(newVector); - } - return newVector.get(); -} - -NodeVector* SLPNode::addVector(ArrayRef const& operations) { - auto const& newVector = std::make_shared(operations); - vectors.emplace_back(newVector); + auto const& newVector = vectors.emplace_back(std::make_unique(values)); + definingVector->operands.emplace_back(newVector.get()); return newVector.get(); } @@ -148,11 +133,16 @@ NodeVector* SLPNode::getVector(size_t index) const { return vectors[index].get(); } -void SLPNode::addOperand(std::shared_ptr operandNode, size_t vectorIndex, NodeVector* definingVector) { - auto const& node = operandNodes.emplace_back(std::move(operandNode)); - if (definingVector) { - definingVector->operands.emplace_back(node->vectors[vectorIndex]); - } +NodeVector* SLPNode::getVectorOrNull(ArrayRef const& values) const { + auto it = std::find_if(std::begin(vectors), std::end(vectors), [&](auto const& vector) { + return values.equals(vector->values); + }); + return it != std::end(vectors) ? it->get() : nullptr; +} + +void SLPNode::addOperand(std::shared_ptr operandNode, NodeVector* operandVector, NodeVector* definingVector) { + operandNodes.emplace_back(std::move(operandNode)); + definingVector->operands.emplace_back(operandVector); } SLPNode* SLPNode::getOperand(size_t index) const { @@ -177,15 +167,23 @@ size_t SLPNode::numOperands() const { SmallVector SLPNode::postOrder(SLPNode* root) { SmallVector order; - for (auto* operand : root->getOperands()) { - if (std::find(std::begin(order), std::end(order), operand) == std::end(order)) { - for (auto* node : postOrder(operand)) { - if (std::find(std::begin(order), std::end(order), node) == std::end(order)) { - order.emplace_back(node); + // false = visit operands, true = insert into order + std::vector> worklist; + worklist.emplace_back(root, false); + while (!worklist.empty()) { + auto* node = worklist.back().first; + bool insert = worklist.back().second; + worklist.pop_back(); + if (insert) { + order.emplace_back(node); + } else { + worklist.emplace_back(node, true); + for (auto* operand: node->getOperands()) { + if (std::find(std::begin(order), std::end(order), operand) == std::end(order)) { + worklist.emplace_back(operand, false); } } } } - order.emplace_back(root); return order; } From 1210a577c3ed7833f4d590004e389c51da018e09 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 5 May 2021 06:19:54 +0200 Subject: [PATCH 143/385] Fix: postOrder computation containing duplicates. --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.h | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.h | 3 +++ .../Vectorization/SLP/SLPConversion.cpp | 2 +- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 19 +++++++++------- .../LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp | 22 ++++++++++++++----- .../VectorizeStructurePatterns.cpp | 8 ++++++- 6 files changed, 39 insertions(+), 17 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h index bad89300..7c52ae82 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h @@ -69,7 +69,7 @@ namespace mlir { std::vector getOperands() const; size_t numOperands() const; - static SmallVector postOrder(SLPNode* root); + static SmallVector postOrder(SLPNode const& root); private: SmallVector> vectors; diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h index b52e9a6d..cf12f8b9 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h @@ -80,6 +80,9 @@ namespace mlir { return vectorOp; } + size_t numNodes(SLPNode const& root); + size_t numVectors(SLPNode const& root); + void dumpOpTree(ArrayRef const& values); void dumpSLPGraph(SLPNode const& root); void dumpSLPNode(SLPNode const& node); diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp index a5e8c041..cd83314d 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp @@ -37,7 +37,7 @@ namespace { } ConversionManager::ConversionManager(SLPNode* root) { - for (auto* node : SLPNode::postOrder(root)) { + for (auto* node : SLPNode::postOrder(*root)) { for (size_t i = node->numVectors(); i-- > 0;) { auto* vector = node->getVector(i); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 76b4f7e2..d4254a34 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -165,11 +165,11 @@ size_t SLPNode::numOperands() const { // === Utilities === // -SmallVector SLPNode::postOrder(SLPNode* root) { - SmallVector order; +SmallVector SLPNode::postOrder(SLPNode const& root) { + SmallVector order; // false = visit operands, true = insert into order - std::vector> worklist; - worklist.emplace_back(root, false); + std::vector> worklist; + worklist.emplace_back(&root, false); while (!worklist.empty()) { auto* node = worklist.back().first; bool insert = worklist.back().second; @@ -177,10 +177,13 @@ SmallVector SLPNode::postOrder(SLPNode* root) { if (insert) { order.emplace_back(node); } else { - worklist.emplace_back(node, true); - for (auto* operand: node->getOperands()) { - if (std::find(std::begin(order), std::end(order), operand) == std::end(order)) { - worklist.emplace_back(operand, false); + if (std::find(std::begin(order), std::end(order), node) == std::end(order)) { + worklist.emplace_back(node, true); + } + for (auto const* operand: node->getOperands()) { + auto pair = std::make_pair(operand, false); + if (std::find(std::begin(worklist), std::end(worklist), pair) == std::end(worklist)) { + worklist.emplace_back(pair); } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp index b06c3b91..66c051e1 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp @@ -6,7 +6,6 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include -#include using namespace mlir; using namespace mlir::spn; @@ -55,6 +54,17 @@ void slp::dumpSLPNode(SLPNode const& node) { } } +size_t slp::numNodes(SLPNode const& root) { + return SLPNode::postOrder(root).size(); +} +size_t slp::numVectors(SLPNode const& root) { + size_t n = 0; + for (auto* node : SLPNode::postOrder(root)) { + n += node->numVectors(); + } + return n; +} + // Helper functions in an anonymous namespace. namespace { void dumpBlockArgOrDefiningAddress(Value const& val) { @@ -91,14 +101,14 @@ void slp::dumpOpTree(ArrayRef const& values) { DenseMap nodes; SmallVector> edges; - std::stack worklist; + std::vector worklist; for (auto const& value : values) { - worklist.push(value); + worklist.emplace_back(value); } while (!worklist.empty()) { - auto value = worklist.top(); - worklist.pop(); + auto value = worklist.back(); + worklist.pop_back(); if (nodes.count(value)) { continue; } @@ -107,7 +117,7 @@ void slp::dumpOpTree(ArrayRef const& values) { for (unsigned i = 0; i < definingOp->getNumOperands(); ++i) { auto const& operand = definingOp->getOperand(i); edges.emplace_back(std::make_tuple(value, operand, i)); - worklist.push(operand); + worklist.emplace_back(operand); } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index e3653626..3529a4ff 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -116,17 +116,23 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, // Apply SLP vectorization. //task->getParentOfType()->dump(); + task->emitRemark() << "Beginning SLP vectorization"; auto computationType = operands.back().getType().dyn_cast().getElementType(); auto hwVectorWidth = TargetInformation::nativeCPUTarget().getHWVectorEntries(computationType); SeedAnalysis seedAnalysis{taskFunc, hwVectorWidth}; SmallVector seed; + task->emitRemark("Computing seed..."); seedAnalysis.fillSeed(seed, SearchMode::UseBeforeDef); assert(!seed.empty() && "couldn't find a seed!"); //low::slp::dumpOpTree(seed); SLPGraphBuilder builder{3}; + task->emitRemark("Computing graph..."); auto graph = builder.build(seed); + task->emitRemark("Number of SLP nodes in graph: " + std::to_string(numNodes(*graph))); + task->emitRemark("Number of SLP vectors in graph: " + std::to_string(numVectors(*graph))); //low::slp::dumpSLPGraph(*graph); + task->emitRemark("Converting graph..."); // The current vector being transformed. NodeVector* vector = nullptr; ConversionManager conversionManager{graph.get()}; @@ -144,7 +150,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, applicator.applyDefaultCostModel(); // Traverse the SLP graph in postorder and apply the vectorization patterns. - for (auto* node : SLPNode::postOrder(graph.get())) { + for (auto* node : SLPNode::postOrder(*graph)) { // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); From 43f6b327501150fcbdebe8a0221038668889e8a6 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 5 May 2021 06:21:08 +0200 Subject: [PATCH 144/385] Clean SLP graph builder. --- .../Vectorization/SLP/SLPGraphBuilder.h | 5 +- .../Vectorization/SLP/SLPGraphBuilder.cpp | 132 ++++++++---------- .../Vectorization/SLP/SLPSeeding.cpp | 2 +- 3 files changed, 64 insertions(+), 75 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index bca06f25..82e7b8c4 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -41,11 +41,10 @@ namespace mlir { void buildGraph(NodeVector* vector, SLPNode* currentNode); void reorderOperands(SLPNode* multinode) const; std::pair getBest(Mode const& mode, Value const& last, SmallVector& candidates) const; - int getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const; + unsigned getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const; static Mode modeFromValue(Value const& value); - std::pair, NodeVector*> getOrCreateOperand(ArrayRef values, - bool* isNewOperand = nullptr); + Optional> nodeOrNone(ArrayRef const& values) const; size_t const maxLookAhead; SmallVector> nodes; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 9dfa8a25..b714de32 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -6,7 +6,7 @@ #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" -#include +#include "llvm/ADT/SmallSet.h" using namespace mlir; using namespace mlir::spn::low::slp; @@ -24,11 +24,20 @@ std::shared_ptr SLPGraphBuilder::build(ArrayRef const& seed) { // Some helper functions in an anonymous namespace. namespace { - bool escapesMultinode(Value const& value, SLPNode* currentNode) { - // TODO: determine if multinodes should stop building if an operation escapes it - // or if simply disallowing reordering in this lane might be better - return std::any_of(std::begin(value.getUsers()), std::end(value.getUsers()), [&](auto* user) { - return !currentNode->contains(user->getResult(0)); + bool appendable(SLPNode* node, + OperationName const& opCode, + ArrayRef> const& allOperands, + unsigned operandIndex) { + return std::all_of(std::begin(allOperands), std::end(allOperands), [&](auto const& operands) { + auto const& operand = operands[operandIndex]; + if (operand.getDefiningOp()->getName() != opCode) { + return false; + } + // Check if any operand escapes the current node. + // TODO: determine if multinodes should stop building if an operation escapes it or if simply disallowing reordering in this lane might be better + return std::all_of(std::begin(operand.getUsers()), std::end(operand.getUsers()), [&](auto* user) { + return node->contains(user->getResult(0)); + }); }); } @@ -41,15 +50,6 @@ namespace { return operands; } - SmallVector> getAllOperands(NodeVector* vector) { - SmallVector> allOperands; - allOperands.reserve(vector->numLanes()); - for (auto const& value : *vector) { - allOperands.emplace_back(getOperands(value)); - } - return allOperands; - } - void sortByOpcode(SmallVector& values, Optional const& smallestOpcode) { std::sort(std::begin(values), std::end(values), [&](Value const& lhs, Value const& rhs) { auto* lhsOp = lhs.getDefiningOp(); @@ -72,6 +72,18 @@ namespace { }); } + SmallVector> getAllOperandsSorted(NodeVector* vector, OperationName const& currentOpCode) { + SmallVector> allOperands; + allOperands.reserve(vector->numLanes()); + for (auto const& value : *vector) { + allOperands.emplace_back(getOperands(value)); + } + for (auto& operands : allOperands) { + sortByOpcode(operands, currentOpCode); + } + return allOperands; + } + } // end namespace void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { @@ -85,41 +97,30 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { // 1. Commutative if (commutative(vector->begin(), vector->end())) { // A. Coarsening Mode - auto allOperands = getAllOperands(vector); - for (auto& operands : allOperands) { - sortByOpcode(operands, currentOpCode); - } - // Determine lanes whose elements aren't allowed to be reordered. This is the case if they have escaping uses. - // DenseMap> lockedLanes; + auto allOperands = getAllOperandsSorted(vector, currentOpCode); for (unsigned i = 0; i < arity; ++i) { - // bool canAppendToNode = true; - // for(size_t n = 0; n < allOperands.size(); ++n) { - // SmallVector const& operands = allOperands[n]; - // for(size_t ) - // } - if (std::all_of(std::begin(allOperands), std::end(allOperands), [&](SmallVector const& operands) { - return operands[i].getDefiningOp()->getName() == currentOpCode && !escapesMultinode(operands[i], currentNode); - })) { - SmallVector vectorValues; - for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - vectorValues.emplace_back(allOperands[lane][i]); - } + SmallVector vectorValues; + for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { + vectorValues.emplace_back(allOperands[lane][i]); + } + auto const existingNode = nodeOrNone(vectorValues); + if (existingNode.hasValue()) { + currentNode->addOperand(nodes[existingNode->first], existingNode->second, vector); + } else if (appendable(currentNode, currentOpCode, allOperands, i)) { auto* newVector = currentNode->addVector(vectorValues, vector); buildGraph(newVector, currentNode); } else { // TODO: here might be a good place to implement variable vector width - SmallVector operandValues; - for (size_t lane = 0; lane < currentNode->numLanes(); ++lane) { - operandValues.emplace_back(allOperands[lane][i]); - } - auto operandAndVector = getOrCreateOperand(operandValues); - currentNode->addOperand(operandAndVector.first, operandAndVector.second, vector); + auto operandNode = std::make_shared(vectorValues); + nodes.emplace_back(operandNode); + reorderWorklist.insert(operandNode.get()); + currentNode->addOperand(operandNode, operandNode->getVector(0), vector); } } // B. Normal Mode: Finished building multi-node if (currentNode->isRootOfNode(*vector)) { if (reorderWorklist.erase(currentNode)) { - reorderOperands(currentNode); + //reorderOperands(currentNode); } for (auto* operandNode : currentNode->getOperands()) { buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); @@ -134,11 +135,15 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { auto operand = currentNode->getValue(lane, 0).getDefiningOp()->getOperand(i); operandValues.emplace_back(operand); } - bool isNewOperand = false; - auto operandAndVector = getOrCreateOperand(operandValues, &isNewOperand); - currentNode->addOperand(operandAndVector.first, operandAndVector.second, vector); - if (isNewOperand) { - buildGraph(operandAndVector.first->getVector(0), operandAndVector.first.get()); + auto const existingNode = nodeOrNone(operandValues); + if (existingNode.hasValue()) { + currentNode->addOperand(nodes[existingNode->first], existingNode->second, vector); + } else { + auto operandNode = std::make_shared(operandValues); + nodes.emplace_back(operandNode); + reorderWorklist.insert(operandNode.get()); + currentNode->addOperand(operandNode, operandNode->getVector(0), vector); + buildGraph(operandNode->getVector(0), operandNode.get()); } } } @@ -146,8 +151,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { void SLPGraphBuilder::reorderOperands(SLPNode* multinode) const { auto const& numOperands = multinode->numOperands(); - llvm::dbgs() << "Reordering multinode " << multinode << " with " << numOperands << " operands (" - << multinode->numVectors() << " vectors)\n"; + //llvm::dbgs() << "Reordering multinode " << multinode << " with " << numOperands << " operands (" << multinode->numVectors() << " vectors)\n"; SmallVector> finalOrder{multinode->numLanes()}; SmallVector> mode{multinode->numLanes()}; // 1. Strip first lane @@ -246,11 +250,11 @@ std::pair SLPGraphBuilder::getBest(Mode const& mod // TODO: when the level is increased, we recompute everything from the level before. change that maybe? for (size_t level = 1; level <= maxLookAhead; ++level) { // Best is the candidate with max score - auto bestScore = 0; - std::set scores; + unsigned bestScore = 0; + llvm::SmallSet scores; for (auto const& candidate : bestCandidates) { // Get the look-ahead score - auto const& score = getLookAheadScore(last, candidate, level); + unsigned score = getLookAheadScore(last, candidate, level); if (scores.empty() || score > bestScore) { best = candidate; bestScore = score; @@ -272,7 +276,7 @@ std::pair SLPGraphBuilder::getBest(Mode const& mod return {best, resultMode}; } -int SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const { +unsigned SLPGraphBuilder::getLookAheadScore(Value const& last, Value const& candidate, unsigned maxLevel) const { if (maxLevel == 0 || last.isa() || candidate.isa()) { if (last == candidate) { return 1; @@ -307,26 +311,12 @@ SLPGraphBuilder::Mode SLPGraphBuilder::modeFromValue(Value const& value) { return OPCODE; } -std::pair, NodeVector*> SLPGraphBuilder::getOrCreateOperand(ArrayRef values, - bool* isNewOperand) { - for (auto const& node : nodes) { - if (node->numLanes() != values.size()) { - continue; - } - auto* vector = node->getVectorOrNull(values); - if (vector) { - if (isNewOperand) { - *isNewOperand = false; - } - llvm::dbgs() << "Duplicate found, skipping operand building & reordering...\n"; - return std::make_pair(node, vector); +Optional> SLPGraphBuilder::nodeOrNone(ArrayRef const& values) const { + for (size_t i = 0; i < nodes.size(); ++i) { + auto const& node = nodes[i]; + if (auto* vector = node->getVectorOrNull(values)) { + return std::make_pair(i, vector); } } - if (isNewOperand) { - *isNewOperand = true; - } - auto operandNode = std::make_shared(values); - nodes.emplace_back(operandNode); - reorderWorklist.insert(operandNode.get()); - return std::make_pair(operandNode, operandNode->getVector(0)); + return None; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp index 5463f730..dbf10bd2 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp @@ -34,7 +34,7 @@ namespace { void SeedAnalysis::fillSeed(SmallVectorImpl& seed, SearchMode const& mode) const { llvm::StringMap>> seedsByOpName; auto const& opDepths = getOpDepths(rootOp); - + rootOp->emitRemark("Computing seed out of " + std::to_string(opDepths.size()) + " operations..."); rootOp->walk([&](Operation* op) { if (!vectorizable(op)) { return WalkResult::advance(); From 814a22272e7d4d4686708ae1e0e5564b7adebcb5 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Wed, 5 May 2021 06:22:02 +0200 Subject: [PATCH 145/385] Add nlts & fashion-mnist tests. --- ...ashion_mnist_200_100_1_14_15_10_1_True.bin | Bin 0 -> 8741816 bytes ...mnist_200_100_1_14_15_10_1_True_output.csv | 1000 ++ .../test/examples/fashion-mnist/input.csv | 1000 ++ .../test_vector_fashion-mnist.py | 48 + .../test/examples/nltcs/input.csv | 10000 ++++++++++++++++ .../nltcs/nltcs_100_200_2_10_8_8_1_True.bin | Bin 0 -> 288880 bytes .../nltcs_100_200_2_10_8_8_1_True_output.csv | 10000 ++++++++++++++++ .../test/examples/nltcs/spn_0.bin | Bin 0 -> 40144 bytes .../test/examples/nltcs/test_vector_nltcs.py | 47 + 9 files changed, 22095 insertions(+) create mode 100644 python-interface/test/examples/fashion-mnist/fashion_mnist_200_100_1_14_15_10_1_True.bin create mode 100644 python-interface/test/examples/fashion-mnist/fashion_mnist_200_100_1_14_15_10_1_True_output.csv create mode 100644 python-interface/test/examples/fashion-mnist/input.csv create mode 100644 python-interface/test/examples/fashion-mnist/test_vector_fashion-mnist.py create mode 100644 python-interface/test/examples/nltcs/input.csv create mode 100644 python-interface/test/examples/nltcs/nltcs_100_200_2_10_8_8_1_True.bin create mode 100644 python-interface/test/examples/nltcs/nltcs_100_200_2_10_8_8_1_True_output.csv create mode 100644 python-interface/test/examples/nltcs/spn_0.bin create mode 100644 python-interface/test/examples/nltcs/test_vector_nltcs.py diff --git a/python-interface/test/examples/fashion-mnist/fashion_mnist_200_100_1_14_15_10_1_True.bin b/python-interface/test/examples/fashion-mnist/fashion_mnist_200_100_1_14_15_10_1_True.bin new file mode 100644 index 0000000000000000000000000000000000000000..59ce1411bdb8eb50b12b9b9a5cfd04ef65024207 GIT binary patch literal 8741816 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 z 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
    o9hReJb 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%0AkK`U7#Un0r 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

    %9vk|zbCT!a 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 X&TyXB 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%0Ai@Xw7In7O8nY+9S4|!FNejoa) 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 `Mf`xhwR4 z;ROH68UBq6{5x0p4{q?E+~F|~_%DvMLjP}0@IRd4f4RW_afK&1A>0o%ctY-Qga&i8;ZOaE2%40#C*jo}3#z1$Q{g1D=v2_k{jboZzWB!~f#~Ps0_SmK!`BcR0oa zo}MH3hW-qk;2Al?GjV}u<_gck4W5-d9OnVg#*zC%e|Apr9Gu}fxxjOAh3Do5&%+%~ z@POy#$o-)|A18Qz&hP?U;03wD3vq)N<_;%$z>9F?fzV%+6TBE_cyTW95?tXWxxq_u zhf_S@r8)9o=r6+wUY0Yw92avDzH;|8zK9nSKAH{i&_p}!#~cq7j6#$4b{xWb!q zgE!+2=Xk)IbL5fG-+~joC1-dmF7Vb|;cd9V+j58VJmBp(@@VL9&k5dvGrS`gcqgv# z&fMT#xWfe=@U9$rEcAEd1nKcc3H{4C!B=pG zujB$>#TCAq8+;9SxWNOymLt!G{&k$->p8^7HR!;D3 zoZ;KKz;|$k@8kyG#T{<(fbZtW^PztaC-`2@@O@n1`?bA{jG2EWT4?(=}(j1&AhXZQ;)@RwZSueiZqbBBjK;BPqc zYUqE<3I2{V{5===2d?ms+~A+M!y_K>&m4Iz^nc+5|H>KujSKucSNIQZ@Soh_F%S4J zj`TwRZ%*((oZ)}D!2fZDC#X38^Mu^t2oHE7j=UcF6LW$m;S5j81)hv6JUKUb3hr=} z2fT*)MC6UokD5=U`oU9LpXI5z$WwEb|Hn<9hPym14|zI{z888iPV)4e|EqIxXN>Kljq_t&&@-ghoc{aeu9%cFK2l^F7o_b zv%Dx5c`>f?;@spVxXVlOkeA}nMBrnZbUWSXj zELV9sZu0WntGp^Vc{T3x>OAB%IQmKGXE@1ga+cTP zBCpL=UWc2!E_Zo79`gDe9fW?Cle__Ec|$JpMqK5MxyhSwmpA1hZ^qG2LqEq!-kh_% z1s8csuJTsg+UjpXVfR$64NK^*-u^h=!N zgE`BGaFGw?Dj&v8KAgLJ1P}R0j(!#TWlr)@oaLjr$j5M%kL4yG$6Y?2hkOD@zYhHh zC;3Fq@=09elex;LaFb8vE}zCjKAoe((64fm&)_Vd$wfYkt9&*$`5f-@xjf|aIQmWK z*Eq@NbCxgQB45Z=zKENAF?abA9`dCe{WkRLoaDed`5KOX z7y1oO^0l1h>$u3*bCqx4Cf~?izKMr?Ge^G<{U#^*7S8gmT;$uh%C~cq@8B-q$wR)2 zqd$axi<5jeXZap3^1WQ;`?$&XbC)0BAwS5`A49**Nq&g4{4f{!5w7y1+~mi&%a8Mr zpWx_Eq2J*oKgn5sii`X-SNR!k^0VCK=Xl7^b95B?T~6`~oaGm}$S-k~U*;yi!d-rq zhx{5xe-8Z~C;4^G@*7;_H@V7hag*QXF2BP=ewU-agnpls{2pideJ=6`T;&hB$sci- zKjtBS!qHztf51upl(YO97x{Cp@)z9XFS*NK@sPjf=x?DvMdv5X% z+~ps6$UkxP_s}14l7Hqb|H4K7m8<+4H~Dw&@*h0pKRNnG=#M$ce{q)o<|6;YRsNTo z{2zCDf)m62z>p{8=%1k<;UrJQS)Q1SJPB8MQf~5O+~vu6$Ww519QsjC@|2wAskq2f zbCv(cO`e9kJS`7-I*$Go`Y}%O^ql1xxX3edm1p86&&*w(g@-&VNB<7}I45~F&hqSB zMD#uJYpC&pW-Ah%~@WCi@YpXc{y(K^4#SWc*rYqbb_h=@Bcy5 zoaB`_%PVt{SK%tJ%1vI4ySzFNc@2(E82TAb@|v9GwYbP@bCuWOCa=p~UXO>oK1U;= zpXDTPz**jqi@Xt6d1G$!CfwysdB~e_bfVDDagsOZEN{U@-jb`l6*qZn?(#M~nc$=h+3x91}7z*XLno4gZud1oH-E*zaC^b4HiT{+9UaglfDD(}Hf-jln$7Y})F zj!qi-MNaZQoaKGF$op}X_va=bz+FC&hkOu6Cky=&C;4E`@*!O0L%GU_agz_{E+4@| zK9Zx8hklupd=zK-XfEJW`8jfj%Tt<9l&1^p&$qtD z7jTO&Z{QK%$gvqh|0YiH&79*Vm-rU0@vYqA+qlQK^N8=@*o>inC#U!>&T)%N zd^gwl9&Yiy+~fOr#P@S-rqF+YQ~V(3xXmSgh->^XxA+n6@uNKA$2c}~=s(UWeu8t{ z;SxW|HGYa){51FY86NSo9GfNdpW_ri&pGaLiC^FvzsN0qiF^DqkN6di%^Lcza*AK$ z9QU}yuXByx;1<8hJ${Qv{5Hqpq5lr2_+8F%pG*86*Z6&I@dw=F4|&8Nacs8G|Cm$! z3FmmgCH|Ca{290SbMEmMJmN1oHhbuQ#VP)pb3Eh{f5SEYmRtNC_xO7r@edrEBlLgd z6#v9I9&w3(<{JOPE&i2z{2Pz>caF^&`hReW|KuExxx{~QjsNBr|HD20mq+{`$L0$C z2~G<411X-6a~$CkPsBBzm|Hvv_jpns@njsEJM<^#6i>l9j&g~o`a*fyG7O%}cUWZ4#F2@!M{q;D->vN8?T;dJ5#v5{r zH{u>|%p=}}V+)7=rkvu$t_&bB}M}5#PwMWkUZZPVvp0 z<0hB*7OwHF+~V7~$G7u{@8H<7p?@c*_%6jo;uFzsWs*i%0x6$I_wy z4yX8C&T*eh{2tf%eQxmw+~W^<#2;~NrO^MFQ~U|%c)%t8lxzGMxA=4J@fSSeFFCey z=zqm2{+e?<uiGSuA|H3W)m3#afkN9_v zts44&aEkxr9FMuge{qff<`)0MJ^q(R{2#|w3;hXBcK+uHImZz$@kCtXiMhp-aE~YD z5l_ak)kA-BPVp3+<0zMSO0Mx#+~TRZ$N%FIPs6b_LVsFL@pPQy7?*f@uJH`q;u*Qe zGx3OL=2#~5XW5t8t!J z=Q6Lsbl22O+tTTPV*+5 z=S{iHn{l0U+~&=>&s*@Ax8(Syp}!TUd27z|HeBXyxz2fR^LE_l?Rm^QaD21S-;vY2 z6X$tnF7qy2=K{BRSMKv}Jm%dwo(ugwIL&)js1+~<>c%qMevtI$7%(|juD`7|!`>0IY3xA_e2^O-#6vpBwW z=%3ALK8N#sE|>W{u5*psd_MR20v_{)9N#ANFXA*`%z3_q%X}%RG(X09ew@qv1lPI4ZGMvb{1lJ*X^!t0`p)howzrcNd zk;nWJ$9D?-mpRR^aGqb~GQY-k?s1!6=RUu|V}6t4JBR*ToaVPV&+l-V-{m^@xy|o! zpWo*(f57owLjOZf^GBTLkGagBaGeL-=1;lLpYfPK=XfFXzu+`~$$9>Y%ltLhdB|=4 zhWq?2kNG=}?;85wbDDqPJpagL{)y{6;x_-xeg1{V{42+I3;o|X&A)S=|KKwJ$#ouc zoB!fI|IK6mhvU14{=b~&|2WSRoD%K_$~+<0Il^t8i2FP-k9iV~?-BZwa+)XOJWtML zo`UNf%8GufcWBaGTfUKCi`NUYq0lhyFU8 z=5;yG>v5Ua=Q?M(%^Pr^H{>yI#PI_{e`8MbCYCp?@r=`8dw=@m%H;xXu-B^NHN&lX%Q0 zbNsN-KZVnLD(Cq$F7xSJ=PI}P4DR!pJm#}Fet77g&1pV|^L#Fs`8=+3joW-a_xS=I z^MxEgBJ?lfG+)elzJ$wsDc8BqZN7~Ad^wN#3XUHc`d4zAui`vk&1JrZ>)hZruVp^b z=c&ynqQ{5cwbm#2I?nL*T;LnH!Z&h*Z{iN$%mZ$6~zsCuFpELXc7x+W2 z@JHO>kGaF2@PG##IW6=* zo-6zVH~2^H@J~G85l5<_|1&4}7tZjnT;Sih!oPEa|KJY)$pap9uoEq*2Iy@l{IKq)LLw_Pp@WhLPs<&ijt3m$$l0MkJtueu&hU&};F-9>GjoGy;SSHr1CDd#oY0?* z6FfU-cn&V`oLu3#xWRLChv(q|CpdC$=+Dauo{uv;KNolbuJD4~;Dxxu3-f@J962xa z7vTgi${Aja3%od2cnNOslHB2?c)%%+)Ixu0PVh3E;bpnN%W;L5=LWC99bSEF7P^B;dQye>v4zI=K*Iq za$)FizzN=vGrSQOcw?^cCfwjnxx<_BfO8zVDD*ey1aH9^-jWNv6<2s`ZtynT;ca=q zd5&Bh`rC1Wx91G+zy;osE4&jocxUeLE9zzsf-JA4oixWtiq=pW1pK7=!TC>QuJuJGa9;3K%h zNAiHn9Jws?kKzO$%^5z13w$hB_&9Fx@!a7Pc)%5oTps!-a)M9d44=#eK7}iMDmVBv z?(pgS|5&=Ks0FLGQKO2Djg5_sjg5_sjg5_sjg5_sjg5_sjg5_sjg5_sjg9)b_xRU* z&*tEM*2UR7o^>BE;3`M14E-}X!Dn%X&*lQ3!xcW48+;yj_4&TB9ZgS+>(7%-vd>d!@b}sN8T;V&p!FO?o@8$uwIMN9HdpN=O za)$5Y0^iRSet;YNAb0p79&no@*M26T;Nx@!mo0JU*itH&I9go?kBd+kr+~7~R!=Lhi2OPOM z^grVSf6f{Hf(!g5SNJP#@YmeoZ+O5%j@%OZ-*SS#;|zb#1^$66{3AE`C+_giJm3*W znxX#-C-_&+@NZn;-?_qnaD)Hk4*$gi9&_Z@(Epng{10dNUoP} z1CDUyw$Pu56Ff0zcoHt~q+H?2xWSWiho|5HM>%qP=ugQBo{BR(H5YgquJE+n;OV%- z)AN919JwR(XW#_S$QhoA3p_JdcouH(tlZ(*c))Rv+!^|_bAspK4A030o{K9yH#c}5 z?(n=k-~>nR3jO&w!Si#57vKUf$Q53Q8@w=gco80Ok|TGA{yO#(37*D&BKJV}d{Og7 zUW}`}I5&9-?(&j6+Zc zp0m6?7kLM+@{Zi(ow&<8^N@Gp=wqS3D<`?YS>BC{ygOHU4{q|F+~vJ^$a{12@zCFg zlU(F1@5@ErkE^^tH~9eW@_{_$gE;y`=pW2UE^(F*;UXW(RX&WHd^mUc2p;m09DOqM zkK!bkIm<_Lk&odjAInWXj=Ow35BUU+c0&I|PI85_d=eM=WUlfl+~iZa%ct>>Pv_`U zp??M^xyo5SlZ$*7SNUvi@;Th)b9u<;arEiXKcACa<1AmmMZS=$d=WSKV(#)KJmgC` z`b_9w#!0SomM`ZbU%^$rlAC-Lcll}_@--ZNHuSIMBsVzA*Kv`r=PKX8O}>%4d=n4( zW{y4=`nPbBo1EoaxyZM1m2c-J-@#qJlZSj4N1qSZ&=Pp0M zLw=B>FNFR>oa8oV`C%^dBV6T2xyg@lmmlXLKf%#%=s(Fx?r@f$;vzrIRepw>{496* zIUe%!9DOnLU*IHnIm<6{kze8}zsya3g}eMJ5BW8Yz7+bebCP?UPe0cZI$F7oGG-D7d0HOwbR2y%^rz<}$2iL~ zaFJ)^D$m4Co|(Hm3lDi#j=mN8vvHE+oaNcM$a8R&=j0~O#a*78hdd8Q-wyqGImrpm z@_bz6`MJsqaFZA0E-%DGUYMirg#IF&|e`!u~ zinF{77kOE(@^akd<+;l%@Q_#J=zF2R5+^y$Szeioyb4!&Rc`WX+~w7I$ZK%4ANp%@ zk~5s;wYbP@bCuWOCa=p~UXO>oK1bgV{S7$DSfsbC?%t3 zY98`69Q`u%ujM2+ILp^@k+0_}-@r}2k-K~o5BX+}eiiz+aFUyx2Q*4*k11$t}+Ey7m)Ap4NV%{zG{F9`h}}mwS94kNAF${TQBqfK&V+=lCHm zahq%WFt_*-?(w5M;>S4lQ|Ld=DSm=;{3MsS!!>@2Tl_Tl_!%DYvmE<5^q=DtKhHUS zflJ)w8o$Ubeu;bhGLQHbj*UY9RZj71oa5KI#67O@8{FbIxyNtuh~MVeFQNYqr}$mY z@q1k2KG*ntZt(});}3bnA93v0(EpfI{0ZmyQ!ep@7d+xGIrdxVf5j>O znsfXOmw3oE{+3((9ryTq9`O$x`#to3dO<8^q%>vC+u&|i;Jygui611@ovYrG-1cq8ud#ysLpI2H;0O*zGzagI0V66d(a zTX2iF06NUaZoZ@Xc$J=p<^IYTYxy3thk9Xt|@5Hf*Lw{#Z@h+U>UAe>s zuJLZ%;@!E&d+><&PT;d|vcwcVue%#~zdBg{BY|_v_kW+jR=lEbQ zafxeu2)Fo9?(tzf;=?&MS?C|ZDL#^Od=!_s%r!omTYL=n_*fqCaU7dG^pEEhpTIdj zkxN|R8lS{1KAC%b3Xk|yj!hBzr*Vo;=NzBGC9ZOf&*T=L#XUZoM|=*)qM?5-r}#Y1 z@%dch8rS#&Zt;cOzGw;uPP^IlhHU+~gYH$}PT)dwe^O_zsRu6Z&^@ zitpka-_0d%agFcc7T?P~zK=(IKgXsG{RcS34|0wl;u5#H#t(CgAK@N9$|HV^W7CEH z@rZxt*es#{2dDT?&hcMd;xX6wZ*K8F+~a?F z#Q)>itfBuOr+9)hz5nxsT;d4Vcp`4`#N6Xac*K)(Y_`y!j8i;0=XeS(ag=L3CAWAg z?(x(-;%PV*5B+I5#nW+)r{@yKxW+SZi)Z8>&%`61nPanu{w$p0SvkkEaf#zxFCIuWWwIt8je5@cF8o=G8dQt85ZRT;M+M#$(={nfK;8@55~_a-a9*G4IFm#X^67PV)hr=L5OS2XUPb<~EnO&xi1s59Rpc zp??^s`Ebtj5nSdYxz0y%o6Fqiqj}87aD0i-KbF&c9OwCXF7pXo=M%Zj74Gv%Jm!-* zzGUd1!f8I0^L!eY`E;)H8QkV7_xVg7^I05UD)i6hG@rwHK9|dU9@qJNZgY+Md;yR7 zLXIyT`WJDUFXlX7!ezdc>wFovxz2sQoX30x$5WwyC8zl+&hyn==4-gl*K(U1+~@0f z%-3^#nb5z1(|jZ6`6e#&&0ObOxXn%O^Q}DQ+c>^#=-oX`&Chb4pW`w=&vkx*+uY?ozsO^LiQ_AV{>z-^S2)kFa+zP_I={|s z?s1>r;4#0+@s&dVEl%^>oacAA%--J3dB}bKmdE@Z$5#pc?>WssaGrnUGXKPN z{+Zi6;y(YvWB!%ntA_q>oaWy-&wp^4|KvLV#cdvQpa14D|HJXsLjPY*^Zz){|8bco zI4j%_)OkW~bA|R zo~Pw9Pseqhp4%MbKF`2oo{{5ghW<>P=9xLqvv8SbV1owG99`pPhUn}$%;50ADd0vRiyfD{!5pHvm`@ATRc`=T!9r}xN znwQ`_FUe(IitD^Iw>iaqUWUiKEXUUg{pC2#%X6Mr;4-hsbzX_voaR2S%wt}K^+JCgPV>5)=k>VE>vNqq;5KKu&l~cXH{$sE zp}#Swc@xg_rd;ODxXzn%n{(XfEqKgZa(si(--^?`HRpL7F7vir=k2)7dG7P}JmwuZ zo(=sSIn6t9o_FRl@4|K7mD^n4KJUh3-kswchW;L$<~=#jdvTff<~r}gZ7y=3_vJC~ z$MKCqe}7K%0i5Rpxy%P~oe$s^GQ7BlR3U==%2!AK9%!)8khNWuJak(<|_C3 zOdj)D9N#ST&*n6r!+AcJ%X}W!`Fw73jr)87kNHB5Zyx#=ahfmYJYT|PzLe{H8MnF4 zeZHK>dv+u9b9{@?zk$-;3Qxx;<_|Nr*>?{Cc0+fO8S4E?9fXZUF@ z@H1TDXSu=8afhGh0l&bJokFk634W0?{1O-VWv=im+~8Na!>{pxU+2iqq2J>Kzrh)P zlMDP7SNLsi@H^b$cX`0?ab%a!?{k9R=L~@bBEl2rcp}d5#9ZJ>xWbcigD2w-PtF6Lf+Kr|ev}hDC1-dlF7VV`;c2+R({hKW;{i|4 zk-b7c#tEK*Gdv>~cqXp!%-rBvxWlvZfM?^#-k~4o1kcVHo`VZKCs%kbZt&dP;dyw# z^KxXL&`)rJ=i>~|&jnt9E4&~#cp>ia!aU$bI8qG#Bqw-L&hTPf;KjMZOK^jiAKx8wqE#TDL~8@vs7cv~Lub{sh<^z)qH?K#6caDjK^3h%@X z-kCeR3lDf#jvO5N1y1m8oZ;QMzlbB2%M0w2p2 zK8_oFJa_m69`K1AIV|)moZyoI@R^+9v$()# zbA`|02A|6vK92`{K1YrS{Te6u0?zP-T;Pki!WVOcFX0Yf$^*WPBS(gQofCXHXZQ*( z@ReNQtGK~ebBC|t0bk3Jqe8#I3BHaqd_5QV2Cndp+~AwI!#DGQZ{bKe^qZXETRFqG zae;5=3g5vEzLPtA7Z3PujvO8OEl%(~oZ)-9!1r;5@8&2mBC6jtTuXC-`B` z@FQH{N4dg}af2V{4nM&Iev%`{hJJ?={1j*SX)f?HT;XTA!OwArpXUL;z>(uZzsm`J zku&@f7x-na@GIQlSGmKl@ql0F$nl}y;{?CK8Ge%s{1#XEZEo;8+~Ie5!0&P7gwXGE zg5T#1f4~L)kSqKVH~3@j@FzUrPdRd8=npu-pK*pi=K_Dh75;mLWx zQ*h+e(2sJ0r{oMz#RZ<4D?AN1cv|l8bUfhcIdWR)$2h?=aE52(0?))1o|zjw3wL-{ z9`I}&IX(2_oZ#6x!*g(f=i~~{#SNaDJ3J2$cwUa25&8*E@O+%%`MJOgaD^A-1~0@N zUYG~G2uG@+pX3BD${Aja3%od2cnNOslHB2?c)&|@Uj+_(vSx)c<_7fS7*-w-%4D%bBukuFR*D>yv;btn{$?P zT;wgd%3E@ix8g2u%|qUXqZfz%ww&bcILmo1^7dTi9k|Ima+i1FA@9u5OG1AaPV%mt z>a`dv$KZuij zFlV{MMLvY9d?+{hFz)i#?dQ6|8!3B8Jy)R7x_%C@>$&Ev$@OX@Q}~t=#`;= z9w+&H&T@^5d;wSaLT>U!+~tdT$d_>Rs?fiblYALxxz0ttoU42VH~C8L@>M+Kt2ugg z=wHK0zLvAx;38kgRlc5^d;@p+MjrA_9K9y=Z{{T5!dY%|k#FTH-^NY8ox6Mo5BW}x zUK{#%agy)mEVsDG_i&Z(LjNaD^3R;*5f}LvuJW(kJOyVt%0-@% zt2`Aqd1~(RG(6;KIeL5OPsd4~p0ga|BG158o{^h86L)!L9`Y<4y(9EzS&nm& zXXh%Ud2Wv08T#{ZlIP_tC%DM-ah2!iCNIEUUXX{p5J&F{{e?Nni*S~c zT;xT$%8PN67w0Z7!9!k>qj!h?Qk>+aIm;<7@-kfIWx2`AahI3pA+NyER_L$DNnVMw zoaQ30%vD~6o4hJ_c{LvL>Kwf%^w;1dugO`?aFN&IDzD8=UWdE9E)RJvNJf z;4Ejk$QyE%H{vF5%w67uhrB6A?+g9SILVuHmUCR>Ex5{Ca+9~>E^p04-iD+1hyJ#l zjuAJop7kM|X^6uQ^J-Ewz@{sr9=!2oZ zHz#=?&T^59yf0UIKW_5=+~os!$Om%tq0m2wlYB5|xx__2gsXfgH~BE`^5Hz>BRJX) z{UbTaM{$6&~`d9DOGAU*jad&ROnpk+b#_Ri43q zqWxkx?+x=kev?Q17RO!+^KWyC-{Bm;%O!q~Yux7+zt27XfJgix$6gNok2u92bB;gZ z5`W4y9&n34;~sy`BmRP8uY~@WoZ_!I$6s@azu_7Wxy9ddkH6y)f6uX3L;nX(@sFJ2 zpSZ+7bB#yb;$OJOzw(HG~ z&hZ52h5LaLPslZnaEmA69#708o`hq)(4Ul3JQ?SBaxU={T;nLWcuMZ^R6OFTIrc{A zPs1smmUBEEmw0-vag19$1NV4F9`Q^Zdo%QB<`mDuIi8hEJR8?I&Mlsudprk^cutPJ z75Z~=is$AW&%-62musBh7SG2$o}Wj&0LR`A{RKJ23vrGY<`OT$HBNGi7v&x=#v@*w zWAB9i5}e{CImb(JiI?UYr?|z-aF3Ve5iiHFcSC=9PVowy;}yBYD{+m}+~SqF$E)y& zSLN7yp}!iZcy-S48eHNvxyBi8@mk#DwRyzraI7Et>vD?M;~cNgCEkE*oaGj8$UWYO zN4zn|-VgmvIK`WCjyK~HZ_YK&af`R$9&gDb-il)%g#Ol?;%zv`+j5Dw;~M9=#oKd_ zci<84$gvMYefDWc8+}&`gd@O@8lfc#U;L*Yuw@%-@`q=mq&ab$G#5z`#HrAaE>43 z5ZgYzt<{m%7BYu=)--P~SoZ`nh$4_vHpX3^MxW!L#kDuldKf|$M=s(LTevWhe zJeT+du5p)J{37@GB_8q19Q!u(U*QzL$~k_GOZ+<5xW_GigM0iYkN7Q)eHZ#~bBf>L z9KXvYevfP1=N7-uJ^p}4{2|A_5B-lg#UFEyKj9L8$~7Kvi$CKYf6gQRf@42~{+FEM zuQsT<9~R>|8nf-(ElH&_&?6^1m}DI=LxyS5pMBB+~bLP#FKDr z6#A2LiYMb7PtGNtf@>V*7Ej4No{C32HOGDl{b@MG({hfd;}TELHI8wMXW$;s$RnPK zW50&}%$(v`ILEVciD%;)$GOF`bC2iX5zoo7-$H*bPVwBF<9WEm^Ky+7+~WDT$Mf@u z7vR|Mp}!!fcp=X5!d&7-xW-9t@uJ-0#dySvbL@}MUxHJ-B9`n8&pCt76<23Kj zc|L&4d?45PAa3))+~*RH`4Emz8v2KFnh)bVAI@byg6n)FxA`dUbD76{G{+|k{bM-I z$8w&J<1!!5bv}XHd?NR`!ec&(IM1hYnNQ<7pU!PQgZo_NF`votDMJ4& zPV?EE=X1Es=W?CT<2IkqeXjACFW`7I^e^NzU&ML7n9F<#*ZERz^JU!UI*<8sj!zl- zS8$rIeVpg}xy%o6ogd^jKg4}*^Ozsz z__U$_2&ef`&hukj=Eu3tPjH)`(dpSwKf z7dbwC=)c5iewp+93YYm+uJdc$=GVE;Js$HL9FK+mo1EsiIL~i$ncv|$zsqfYkNe!` zF~8688AAU9PV%1bjc_r?1n#a5{$L9|HRXEM7a-LV?GOx~cUW41bCigkRV_u8n^MwA|oaS{n z&+BrT*W)^`&u!j-`<&%5Z^-d^Lw_Sq^TwR#O}NaPa-BEhHgC>-&hePH;CLeRx8yW$ z#d+SE%e)QOd0TGtcHHMYk9m8J&lmbTaGH1IJnzJ1-kIyX3%7Y!?sI|1yc@^o5B=Ra z&3ka3_vA9~#dY4B+q@6=xyWPQm*WeB{(hY1{W;GEaG4L}Iv>PsKA8Jl;xQk>@dZQw zP)_qQr}SdCa$ReDTn~jnjNP=lKpU^PODhySUAFbDvv0 z=6g84MCjkkX}*v1d_R}@0j~3d+~$Y4&ut#_!yI2S^dI3gKgxN2jLZBu*ZB!<^OM}? z4v+aMjxQDZPji}|;XFUfWqyw9{5-e$1@3c~$NVD4mk#}xIL$9}o?qcIzshxfjobV> z_qoSoeuLww(0`ND{1)f=Z7%aWT<3SW&F^ua`#k3NIlfHjf52(}kn{Wzm-%C^^C#Tq zPr1(n9`i=_6Y*t3eKh$SR@#Gbeb&8UBR}{3}=ZH*WCn+~GfXz<+XN)zJTo6FlY&|IG#d zhb#OqH~4?t;s1ER6I>AP2O_J5{)C+12xoXAF7U)$;Yql`lX8bA;{i|3k<~+g3Qlm8 zGdv|1cq*>&)ZE}{xWm)(fT!cg8lgWuCpg9#o`DNIBUgAPZt%?9;aPaVvvOq3(4UPH z9On$r&IO)>D?BGRcrNbn+&tiUIFbqdc{#xe&hUI(;Q6`23vh!MSD=uJCf);N`i)EAW6<?-kLkS4G(x* zj%*P6+i`;PoZ;=cz&mh-cjN}|#2wz52fPbMvZ22#C%C{F-i-^qJ6CuQZt$Mm;k|gk zdvj#N(BFp>T;vSz%LU$#E4)89_yF$kfjr=YII>abAIu3ZafT1!0w2m1K8zcDICuC6 z9`KPI**Nr%;slpD!$)(0kKqa*%MCt`JA6D3_ymq@68a}{f-9WileoYqbA?ag2A|3u zK8*)_I!87Q{WCbhRnG94T;Q{~!e?`X&*2WA%L6`-Bb$Z(`JCVyXZQjx@P%CAi@3oT zbB8bC0bk0I%|rh(PH>$wd^s2R3a;>#+~BLY!&mcwui;28^snUvH#o!Bae=Sr3g5sD zzL7h86A$=ij%*S7w{U`+oZ(x!z_)RQZ|4Tz!5zMn2YeStwhaBdIl(Q?@I74Md%42* zaf9#Y4nM#Hevl(uh5kdF;5KLYVJ`3^T;WH#!H;o=ALju-!I7;)|4B}8hco;X7x-ze z@H5=tXSu`A@qnM_$Tp$>0w=i38Gexq{1R9AWp3~*+~HSwz^`#++t7cV6Wrqrzrh85 zlPmldH~4Mt@H;%@bBE=KX|}@a%9KQ|BDkm<_!PM1^$OC{4Y27f862!c)$}}=>31E(4UYK z9N`R4#08$1D?AA|cv9~0WIW)>IkI!;Pr(U}a)zhm0#C&io|+px4R?529`JM=*(LO+ z=LE+%!!vM!XXFac#0{RAJ3I>ycvg<=8v3(wg5#Xw*}1@TaE0gO2G7MEo|^|e4@U~2 zKQAXZ!5N;93p_tpcmZzkg52SSc)$yDWVg^?gcF?P3@^$BUW_ZeI5&6+?(mX4;H5aS zd+0CC2~Kf_m*E00%N1UZ8@xPscm*EtiX7P^^jG2pr#ZtbbAeak3a`oyUX44vIuCda zj_euwYjT1!oZ+>&z-x1b*Wm`Q%N<^i2fRK<_6q$CIKf%Y@P=IAjkv-abAvbG4sXf> z-i#xAhyLcA;2dXo3oh`MT;Z*_!CP~Ox8VVA%aMITe>+Zao-@2X7kCG*@Q&Qzow&n0 z^MH5ZNHO$xVUcyEsE8~Xcjf{UEtjqN82JhS~o?cnhI zzUG^}A9s0w9`XSkErsU~5o zk*i$gGr7rUahK2LA)mw1!$bdEPV#x2<@347HLmgn+~fo@)g|WD|yIQarDU0znYVL4QKgUE^>pbd>uFWdhYTKJmecWdQ|AVxH zvwRB|xye<&m79DUclmZ6@*Ny4hyI)D)KN%-^a?bJ;T;wQMc}i~bRNUpMdC1dn^wiLwmXkakXL))qa*V4y12=g_ z?($4L+`1c}^bkTpT?;^ylUz&%;@smy4X>D$mDF zo}atC01tUVj-C+7v&}|#$8^Vhr9$wtD(OnCwVE(^3q)76jyl} zZt}9+<>h$D%X9S1&|iU*ydr0LB`$KBtGqHdc@^&RsyyV?IC@s-ug*zcgR{IQ7dgXK zUW=Q&Hg|a)9`d>zJv;Q*<0P-oS>Aw)oaHKS$W7jeySytvA@9l2^Fx0xPV(NI<$buwMXvI`+~obZ%lq??58!Am^bh1DAH-Qc zn2TKEDj&j4K9swB7!Ubyj$RP@M{tslMJ{udkLD&H!(Bd>hkP7IFAV+TImst* zmQUm&SGdY2ag$HxE}z0fK9!>vh5l)reQ9b{_H_9Ic1` zot)&mILmi)ky~8ld$`H>a+mMpA>Yr@%R~PGPV$4C<%hV)ZLade+~h~N%a8JqALHm1 zq5n81`3cVQlU(EuSNSP!^3&YqXL!iZa`ej3e~y#qd zBaU7Z`X6(WKjAEY%0(V9@qb+62`&!z12vwITO8pYPsAghm}9qw{v@2@Njb-p zafv7A8c)G3j&hHuJkx9`RxvyDRh;=M*o&IbM=WycE}XX>M_fd%O&fcv+6!9s0|0 zikIgcufQcZr`UYSR{3ddTZzbdDAHO}$sT;esj#%pqmGu-2~c*JXS?4HnH zhf};R=XgCX@%mij4YGp_OG+~OSfcnco!mK?h; z^ta*^Z_PR0hD*FH*LXW_ah`j;J&$+?j@=*nJ93J5;vDbHCEkT=yeqf3z&+lLN4z`7 z9tizCIK_K%j`!jc@69#dhg)3a9`DN|-j8DshW`GX;sZFx2XcuI;u;^!EiQ4758)9X z%CUz+|1eJR;hf_mxWq?tjgR6Mm$}DB^N5e(SUdEOJ zz$3npV~>XZMV#V`Imef9i7(|EU&bx2bB{0Q5nsWv$3p)~PVrToJmPyf_GIYa$0@#_bNm38_(87mL)_vv_xNER@gp4Tg#M$P;>S40k8_Ei;2J;4 zE$(oSpW+ce&9SFK{~1p4vz+7SxWvzMjbGpvce%$e@`zvJ*wdl^GN8_#>s=5V?DmFGYHa0dkHa0dkHa0dkHa0dkHa0dkHa0dk z{uVYiHr5^E?)f+eaK1J6+u7>@j=d22zjBIy;~f9aCH{kJ{3o|~%su{#NBlR(x}pCM zr}$sa@qb+62`=&e&l7TsBi!SOc*GNP?8VTZgi|~z=Xf$M@#I|NDY(T^?(vj7;;A_H zQs__3DV~ONJS~@aINcju+w*FU&Pwgj<~C9xuux zUW{X}h5q84;w3o8OLB>q;uqO^@|@!pxWp@RjaT9pr@6-~ z^N3gBSTFQfS|9d%PBpcx{fo5&G+Jir3{Fug4``pKH7Uw>Zl^ z-jGMU5y##P{f#-rn{bXd@iMQn%Z^tdp zbC0*@5%0jUw?ltNPVr8hh6xyJi& zi;LXjeR;(DaqQjD-=9-_0O$BXF7ZKJaz zNuHlGya4BUK`!yp&ZEl5aFdVaE+5B3KAxk4FwY5` z#?enh|8!3B8Jy)R7x_%C@>$&Ev$@OX@Q}~t=x3pS9w+&H&T@^5d;wSaLT>U!+~tdT z$d_>R^U%MPlYALxxz0ttoU42VH~C8L@>M+Kt2z2b=wHK0zLvAx;38kgRlc5^d;@p+ zMjrA_9Q`u%Z{{T5!dY%|k#FTH-^NY8ox6Mo5BW}xeiiz6agy)mEVsDG_i&Z(`pPc0}7x^!)^55L#f4Iy4@{s@I=qU6jxHQ~JOyVt%0-@%t2`Aqd1~(RG(6;KIr>ZJPsd4~ zp0ga|BG158o{^h86L)!L9`Y<4{WbJwS&nm&XXh%Ud2WvW7W(sW zlIP_tC%DM-ah2!iCNIEUUXX{p5J!Ix{e?Nni*S~cT;xT$%8PN67w0Z7!9!k>qkn|{ zQk>+aIm;<7@-kfIWx2`AahI3pA+NyEKSO^-PV!2evNJf;4Ejk$QyE%H{vF5%w67uhrB6A z{|^1lILVuHmUCR>Ex5{Ca+9~>E^p04-iD+9g#NaijuAJop7kM|X^6uQ^J-Ewz@{sr9=zpQVHz#=?&T^59yf0UIKW_5=+~os! z$Om$Cf@%N%|0)mSBp=LKE^(0$;VK`>O+Jjfd^ivJ2#!t|`bTn-kK!zsxyVOzm5<>j zAIn`nj)#0aMB`lY9nexynU8ldF6d zH~DPt@;N-@b2&P3=%2?)KA*E(<04e zU%^ejlDm8r5BX}2P8#~xaFVa(EH}8w*Kw7v=O*94UA~crd=p0}3;mlp$+vKpn_T2u zxyrY3lW*rP-@!w^lcSS|{#~5pyE)4(F7iEG<$Jlw_i>l+=OI79(J4azK~C~RoaHtb z`C+c|Bi!Uixyz67kRRu0H1wa~BtOYn?r@Qx;wnGQO@4;E{45XoIgU;l`pv%MH~Am#^1nRf|2P^8{RuAf{?8L~mLpu`&Fo*Qypa7wd)Dy0g}KLz z@Q{-nnJs*OQI7LsoZ`hf%S&*9m*g@p#Wh}Hx!UIlnWbV*kloPxdXLxZg@Dg0%CAq;%afg@Y0jD@JPv|eh z30{^nyc`#Jd9LsZ+~5_t!z=NC(;S&M^jGEtufiE#l?%KYS9o=9@EY9VHF>}pjwC{V zEl%*-oZ)r2!0U2_*W(7S&mG=?2b|@|e4)P~CwL>y@Wx!=O}N6Fa)USH4sXr_&T(Y^ z(BFa+yd`IND=zTXT;XlF!P|0&x8nilIkG_LZ_f$dfit`#7kDSG@Xp-eUAV)$@_-8* zSupf>;{@-{8Qy~nyeC(9FK+PO+~IwAz(tNM6#Dyeg7@PL@6QE3fGd0;H~1j#@WDLb z5=Rye{X;mxhjNAw;{qSf6+VI+d?a`HC?0T`Ba4Lo(VXC8IK#(sfsf+~AI}XwfjfL6 z54ggSWayv72|k%Kd!)Ne-s~lN0^v~o3pT!wIn+tpnSNL3R@Oj+f z^LfBEjw}}X7jS|vdP|5i@$ZJgoTxxjaDh417B z-^Crin+M$D$Wozy4=4Cu&hUL);QP744{(DYCk_e6Z{Bg_)#wKV_f0K zxxr6xho9sDcQ}#?{iis=PjiN!;Q~L)6@HEz{5*H~1s-shBg=&Ti=5z>IKwY%0q5nQ7_y2CWQEZGh7;Yql_lX8V8;|5R89iD;*9OcN$p+6-j zcq-2D)Lh_cxWdzNgQw#TPtOC6ab%UypMeuRBWHLfF7V7;;aRxBvvP-L;{nGxvTEqh z&Iz7_Gdw33crLE++}z-KxWn`EfD;^9E%fK(1kcYIUVsa{AXj)HZt%j~;YE1BNsg=@ z`ipXc7vl^s&IMkAE4(B(cq#7i(mdc4N7e}aWjMjha)y`V0x!=MUV$6DB6oNt9&nl? zYli;HoZwYB!>e+ESK|t=&JA9JJG>?jIKz=l=&!{IUYj$#4i|V`uJC%?;Ptt~8}NX$ z99b*$H{=9w#2Mb03%m(ecvEihX58V;dB8c2tR4DWaDunw3~$8+-kK}C4L5jO?(lXz z;5qE^}mq&_9|Jd<Re#+~rkxz^n3@SL0YN^jGI3 zufZ8!lk=S660gNoUYi?yrt@g?S={HddCcciE;=)c2hewXw79+$b#b$*}Q{6FsV2R!BvIlg1)f5d72nDhJzmwCW- z{*>GN8Ta{f9`hF*-zoIJjb!(;xJc8DY(p0uJe@K=Bc>PQ}dXo;rMQ$KP{(u zI?nU-T;>?pc?NFtjNIp$c+4|%eD~0wh0{DM=Xo|RbDZluJGXfb?(>{H=D9e&N9fPZ zX`YAkJTI3y!F8UG+dMz_c>x~tf*jv7^cUhZFU)yfgv*@dIxos?UX1&^IFES=j_(!v zOLCf*;yf?SWlnLOm*F-q%Y9ys$Gkkp_YVCPIL#|^o>$^Br@786bDLM;KCjASUXA1X zg#PNB<~2CaYjT-0T<5j8&1-X?*Wod*%kg69ug7U#pYyx{mpRLI-jLh85%+mx9`hy~ z-#7F(`@9v8d25dE7y8?9nz!XVZ^vcMbDg*6Ht)cF-jT<= z6UX-t{hc|@yKtU&xXg8~^X1&; zE4a^B@|dsU_+g=cHK+L+&hxcg<_6dKI&Smz+~*s3%r|oU@X)`B(|j}M`4%p7lk0pd zxA`{i^X)w5J2-ws=-^uOdZf5mzJ zn#(-oI)B4${+9dv9gq2YjvpWTKX96Vw?<_WIw{?8L~nIl~1iMY)ZbDt;SF;B|zO6X6< zX`Y<(JO!6I%5|QS+dLKbd1@Z>G#o!E^rz)CPse$lp35BLI_KAQydbxDA@1?QJmN(-c24LgImL@|ju+z+FU~byf?K>K_joBD@zNYSH}q4S;$=9; z%W{dA;~Fo|Enb0pydsZyC61jJ`e{z_%ADg>xWub+jaTCqug*PQgGan3$IcJ^45xT4 z&hgq@;&r&j>vD_N;~uZiBi?{xwb0LUiZ|pOZ^R|um}|TVw|GHu~ybs4N4*ephcwf%(eq7@HxyA=@ix1=;AH*X*m}8fO zeu-0j2XK<_@`c+QxnVjRZxWs33jnCm0pUXWyk4Jny z$1V^38mIUI&hdp@;)}S(7jug*;T~VgBfgAdSA>3@Q+zq+_zEuZm0aVixW!j;)ghPP3X5d#Se3iAK?-|$~AtBTl_fp z_z52IlN`G?^gEp5r#Qz?bBUkf8b8Y|evW(mJdgMVjx|ER%PD@5bNmvQ_+_r~E8OB& zxyP^Zh+pT}b)nzm6u-eaev?c57T5S~Zt*+Z<9B()?{Vz<(C>4K-{&0vk4yXk*Z4zj z@kiX_k9owOaO{TAA8?94_j=$v+f5$cc zo?H9__xML1@lPDPDfCC2;-5Lkzi^3vljjwj|4Pr@~xlv_L*_jqz1@e~|uhJKV&JSFFN zDlYNVT;plD#nW<+r{fV%&#_xWKgKDZfpa_~mv|M* zIi7<{JSW$9E^hJM+~aw8#Pf3O_Rvpois$1T&(9@ZfNQ)Uw|F7$@xnafML2dx=qEYF zi*k+^;}S2Syd?K{DIW3C9J@30Q=H;uILFI!iI?LVFV8JrfqT3nk9Z}H-4*(2 zPVvf|<5jrCt8$H3;});ZJzj%Hye7x)4*d+LcrDKH+FaswxW?;pi`U~Gug@difMc!D z&vJ@4Q||F*JmSqcc2DT%IK^9Vj<@6zZ^bpL_)sqKVO-4*eRZ_yW%Hgt(zMiAc zg#HbjT0RZ{;E1#?fa(|8`FD9h~JmxyW~MmG9;zx46sq@R0B2 z=yRceA1C>K&hi6Xw@>4wI zr#bpU=s&|rewMTR92fa{uJQ}q z$n$WO=jA3RxXbhLkmu*iMFULtT0AySx?;d2Noq7y9dPlGo)dug67RpR2q9H#y5)-jIj95l8!>zcD9y z6VCFcT;$ET%A0eObKK=Ec*t9F^!?D^ij%xGXL%bg^0r*%?YPN#?(+6L2 zle`mWd1o&2E?nhZxyc3Y@@_oj-8uR}=}$;WY)kLMzvz*Rnxn_S^8pTt8xnWLYC{wbW~Q#s40agk5wDxbkku5y>pDOdS2ZgQQwd^r#K z3XXmj`d4z2ui`9U%|*V3t9>xxrn&j)#0bM?Vk!8#u`~a+Yu6BHzqazJ;6Ir-^8;pkVP|0pNim$**vhU*#gd##Mfuo803rzrjO(lcV2+{#%^nw>iu2aFO5TD!<1~ z?sJ#l=OO=(qu+-92b|;ℑh$kw4}tf5J^3aF;*jA%Div??V4`PVyI=OSLpA~ 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

    (CeHEAT;e9z_!e&Qt=!|=c*M7J?2^#GgHwDb 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 z zFmCeU+~p&9$VYN?z0fanl8@pnAI(KRhO2xmH~Bd3^6@<66F9nl=vO$&Cvuig;v%2S zRX&BAd@6VOG#>Kl9Ni%FtDNLBILl{pkf+~kY7%a`zwFXiZlpSgBt9i)RaCD>4Z*Y>YT6M(*-WJmi}>x^d_?Imx$hmT%=E-^NwGotu0Iclk~p@?9L=B=lRHh-o4k!6Z z&hk@Sdvll%f_`9&`BOI+obxyi3^mtW-}zsAvA==V6u zuXC2);3B`tRep<`{5E&_9Uk(#9Ni-H`<&$WILq&Ikw4%nf5=V#h`anT5BU?0ZW;Om zPV%Rm<IwdDW%;ftg3CLG`M=E9_-}6U zKiuR0@`(TC*iK=;31X4|1tyvx#S?OlBV6K%xW*H6izne8Ps$^njAJ{8{^XqEDLBVb zF7cFHEv0XxcI!^KQoZ}dmcm}TVjNIaxxW_Z|h-cy0uAx6Gr+7Bb zahyv$JJ)y)ZtP?BVLkYyNCW#oZ_W9$0;uHGF;cx`U+I^5%RdBp2+Y_HH? zpHsX6=QztH-jHj&5x00_?(rr(;!QcWcj#}%Dc+oOoZ}L2!8P8JTf7zbcxxW#bBVX-8t=d@-jRE}6OVXjjuk_H7f$i6oZ|wQcsH)`?%d)%xW{|)i1*^y zzM;Q2r+6REagj^BFV}cKZt?!y;{$la2Xbt`(Ekso_#n=4iA#Ji*Z2@_@uA$~!+6Ap zb8P?6KY~+yBniCcU!_xKbZ z@u?g;F!WF36ravHu5yXb;2NLFEk28Td^V5x9FF}b^v~rKpT{|_af#388ehOIzL0x- z5s&y{jvW;GmvD+N5>N}+!>r}!Gqaf3^IE!X%uZt?Zp z;~RLyH*)OY(7%aOd^6{`$tAvpYkVuW_%`nG?L6W;ICeo`BSZfkPVu{(<35-8J+ATl+~NDKjK(9^grelf5JH)aEU+V z8h^$u{+xUK1&{bkjvW>HUvY}R<{S^X#NTj@zvUKx$36a@NBjfFjt>1FImJJ5jz?VL zpSi}raEpKC9{SWyezkPIqvcDJmM8Nc5>*i$SGclbDZW9ugo=Gg;u^2bEnbIvye^M;J&v6k`s;IwH{cv+xx^cCjW^;JZ_GX3 zgh#w7$4(3V%{axIbB=Rd;w`wwTXKuH;vR3!Bi@E%r-%NwoZ{^`$9XRC_FUr~xWzki zk9Xn`@654k=ovYmDGq}%Z@|e%!_(h?AHmCU<&hxok=JUADHE#3y+~*5;%olR};?Tc{ z(|j@K`4TSkrCjGaxA`*e^W{9|D>!~h=wHcczKZjFHJAAsu5*Lid@c9+Iv(@&9KSU5 zZ{RfF$a%hr%X~A}xyfz5h5LLfkNGx^*F*nyPV*g{=R3K~cX6Ft+~&Kv&-d_{@8$Sq zp?@Ez`F_sx16<|@xz25F^F!R{hk4A8aQyPnf0Wbw80YzMF7p#y=MJ~|N$&GgJm#l4 zensd%!)bn&^ZXo_`FXB$m)raT_xVL0^Gh7RGW1{OG{3@mewEAo8rQkUZGN5m{05Kt zO^#m``fqWX-{w5O!)1P#>)huyzsG%kpU3`>rah^ZsGJnE#9&npKtUl;oS zo`=gkFV{K2ZJv+&JU@?l0gm4s`U`TJ7velG%w=AL>zw2^FUoyhjK{n<$D5(Q1gCjP z&ht`S=B2sLDQ@#J+~;L^%*%27me60G)4T%bc||VsN?hkOw|Qmm^C~>%RXKiZ=�U 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

    (<)4ze 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%0DQqlunBAiTfkPZ4QvNHz)r9W>;`+lUa$}B2M54G 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 z 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%0DZWJGd9tl^{+ciG_CGv-R(y#@*Gs%VtoRbG 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 z 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

    6T8hz;U^xF8;g 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

    @YI<;R{PsVPxu5I` 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%0D0X6d!gDSlJ? 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%0A(;0$ijU4do5-W`6(60M-~^xJD?U1V^ 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�DHaN^doa#qW>Nr1uYf*+Bh^F1@v=A>Ti76d$P_ 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%0Df=HuAkU`7_eHYyP}R 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

    q__-mke?4XH#Yq}S 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Ξ;sDH&v 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⪚1(ja&%taEPQ<`IXZWJ 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%0D{0(znj8 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%0D{0(znj8^rN$@_|(}|`|IqA-%xvKKT{{Z->y1- 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 literal 0 HcmV?d00001 diff --git a/python-interface/test/examples/nltcs/nltcs_100_200_2_10_8_8_1_True_output.csv b/python-interface/test/examples/nltcs/nltcs_100_200_2_10_8_8_1_True_output.csv new file mode 100644 index 00000000..7264b3b7 --- /dev/null +++ b/python-interface/test/examples/nltcs/nltcs_100_200_2_10_8_8_1_True_output.csv @@ -0,0 +1,10000 @@ +-1.476121399530314626e+01 +-1.924594075788908754e+01 +-1.524869807180282599e+01 +-2.224000337054214782e+01 +-1.722859039101756906e+01 +-1.973021702507443109e+01 +-1.973021702507443109e+01 +-1.871092833847788839e+01 +-1.476121399530314626e+01 +-1.770714836572998507e+01 +-1.476121399530314626e+01 +-1.874878564670296655e+01 +-1.526748398200428447e+01 +-1.718802835788423167e+01 +-1.573806653833328539e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.772451260815015317e+01 +-1.823035575667507047e+01 +-1.624707538080579994e+01 +-2.120790317261229063e+01 +-1.526710153869924547e+01 +-1.674395486764542795e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.924122905610159151e+01 +-1.823666718221532079e+01 +-1.876689242380431466e+01 +-2.126350578254113799e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.821131569008644036e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.768979362731587912e+01 +-1.823335672362106052e+01 +-1.675869842299823986e+01 +-1.723541585542474408e+01 +-1.867745931589744046e+01 +-1.476121399530314626e+01 +-2.119761667484912948e+01 +-2.222221915589203434e+01 +-2.073776729789872064e+01 +-1.823609960693417520e+01 +-1.525677914886782283e+01 +-1.868220452112003471e+01 +-1.476121399530314626e+01 +-1.871880861275738539e+01 +-1.476121399530314626e+01 +-1.574415113675572009e+01 +-1.575500212791669163e+01 +-1.624330830693308059e+01 +-1.821673196270062789e+01 +-1.921245071865289944e+01 +-2.069603689810960745e+01 +-1.770217182386578259e+01 +-2.123786065989509098e+01 +-1.624899520224715133e+01 +-1.526710153869924547e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.672514086318954796e+01 +-1.773556618231568649e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.224879281313178225e+01 +-1.973031973517421633e+01 +-1.524908418974633584e+01 +-1.672231191301397502e+01 +-1.823199299782174165e+01 +-1.776094105428315117e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.222517495552305533e+01 +-1.622853806956639389e+01 +-1.626689428319512842e+01 +-1.575500212791669163e+01 +-2.075629790914084793e+01 +-1.673085677529565984e+01 +-1.476121399530314626e+01 +-1.627867642393005099e+01 +-1.672231191301397502e+01 +-2.073242345465093806e+01 +-2.075629790914084793e+01 +-1.574338251301774250e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.573575688418649499e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.973803425252446786e+01 +-1.672231191301397502e+01 +-1.625713552678327289e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-2.021371760524901262e+01 +-1.670591629284359669e+01 +-1.476121399530314626e+01 +-2.221559445291741852e+01 +-2.076084574685159723e+01 +-1.476121399530314626e+01 +-1.819307746000575321e+01 +-1.623636021641668492e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.026230564231066822e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.722689516238723684e+01 +-2.173090294339966277e+01 +-1.821678987860544296e+01 +-1.874590785030669693e+01 +-1.476121399530314626e+01 +-1.624330830693308059e+01 +-1.874579534888891885e+01 +-1.771674274050266007e+01 +-1.624899520224715133e+01 +-1.527093049984081752e+01 +-1.526710153869924547e+01 +-1.768979362731587912e+01 +-1.624184012924291309e+01 +-1.624707538080579994e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.624330830693308059e+01 +-1.624899520224715133e+01 +-1.871092833847788839e+01 +-1.719995975008564670e+01 +-1.524869807180282599e+01 +-1.772194129341725954e+01 +-1.524908418974633584e+01 +-1.624330830693308059e+01 +-1.721570613406404959e+01 +-1.772639596685652208e+01 +-1.721038905335863589e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.027540175406340239e+01 +-1.821130718498294954e+01 +-2.273083870283389629e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-1.824515236460867840e+01 +-2.073327893724220772e+01 +-1.476121399530314626e+01 +-1.674858455771563470e+01 +-1.575838338479935175e+01 +-2.173992036335968336e+01 +-1.476121399530314626e+01 +-1.524160916598259874e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624968019918323137e+01 +-1.723618582583572234e+01 +-1.969750509879924749e+01 +-1.621747192744323129e+01 +-1.672277259766056545e+01 +-2.171641102924940014e+01 +-1.575891057177604360e+01 +-1.673668984784076841e+01 +-1.724838158629343354e+01 +-2.223497516213418734e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-2.222247508060926791e+01 +-1.768426182203620201e+01 +-1.822339480897428743e+01 +-1.624707538080579994e+01 +-1.868327583019824800e+01 +-1.476121399530314626e+01 +-1.575891057177604360e+01 +-1.873805297804400638e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-1.574715332371951604e+01 +-2.019667253064575974e+01 +-1.524869807180282599e+01 +-1.672379217782949112e+01 +-1.825309371824032212e+01 +-1.925501931337553074e+01 +-1.724207481340630821e+01 +-1.476121399530314626e+01 +-1.870371294862355427e+01 +-1.822372306885679194e+01 +-1.578125364629256744e+01 +-1.675514122835551589e+01 +-1.524908418974633584e+01 +-1.578140348829063377e+01 +-1.476121399530314626e+01 +-1.671039843285468507e+01 +-2.070875976338370350e+01 +-1.920629982379544742e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.221559445291741852e+01 +-1.575174991524399992e+01 +-1.725704439240779209e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.872085149652250280e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-2.026071609020188191e+01 +-1.874850907562007407e+01 +-1.672368307968645951e+01 +-1.972619691108814877e+01 +-1.669025420133567295e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.925749253033120212e+01 +-1.774227154328873013e+01 +-1.771650727420470162e+01 +-1.476121399530314626e+01 +-1.673096835416569661e+01 +-1.576112879427005176e+01 +-1.721570613406404959e+01 +-1.871877544918941894e+01 +-1.672844394444672744e+01 +-1.973021702507443109e+01 +-1.772598974940754957e+01 +-1.775651912746867467e+01 +-1.723541585542474408e+01 +-1.722868364608472902e+01 +-1.623856472485708480e+01 +-1.675361186263414837e+01 +-1.976096635709246385e+01 +-1.676281926862539606e+01 +-1.970473100808620259e+01 +-2.222517495552305533e+01 +-1.526710153869924547e+01 +-1.922018939185947772e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.869554098349383153e+01 +-1.624707538080579994e+01 +-1.673668984784076841e+01 +-1.573659808073013977e+01 +-1.476121399530314626e+01 +-1.721570613406404959e+01 +-2.021664899926371106e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.871092833847788839e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-2.074478453093824371e+01 +-1.621747192744323129e+01 +-1.722317743568631343e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.621768684890690437e+01 +-1.724838158629343354e+01 +-1.574365229112152953e+01 +-1.621747192744323129e+01 +-1.524908418974633584e+01 +-1.926473148058705220e+01 +-2.021911014269795004e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.769679025414838236e+01 +-1.872023028932996169e+01 +-1.866682818321951132e+01 +-1.671060634321655058e+01 +-1.476121399530314626e+01 +-1.973817701781753797e+01 +-1.775651912746867467e+01 +-1.721038905335863589e+01 +-1.575941674449784813e+01 +-1.722324957545030344e+01 +-1.820671417236521705e+01 +-1.624282679516225514e+01 +-1.775649854270165307e+01 +-1.722367244831811206e+01 +-1.968251309479292743e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524869807180282599e+01 +-1.524982321799113549e+01 +-1.772947864854536704e+01 +-2.174480670537584004e+01 +-1.476121399530314626e+01 +-1.823199299782174165e+01 +-1.573671015552776176e+01 +-1.527093049984081752e+01 +-1.775250955997267965e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.771360572077836437e+01 +-1.772218610171639597e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.823609960693417520e+01 +-1.724897098043182098e+01 +-2.174480670537584004e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.575480887862977042e+01 +-1.476121399530314626e+01 +-2.024740473977704269e+01 +-1.722073389168845026e+01 +-1.723618582583572234e+01 +-1.974200698184958469e+01 +-1.622331972918252774e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.021976207345208110e+01 +-1.871697671652540507e+01 +-1.524908418974633584e+01 +-1.924092727116990886e+01 +-1.576158180483365001e+01 +-1.775651912746867467e+01 +-1.969750509879924749e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.623117287636750561e+01 +-1.672231191301397502e+01 +-1.575500212791669163e+01 +-1.921090887956371418e+01 +-1.726222433387699695e+01 +-1.672599108999033035e+01 +-1.623234098707541051e+01 +-1.476121399530314626e+01 +-1.874758288471387857e+01 +-1.721862556337221406e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.973612332719512708e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.726631940373485108e+01 +-1.724547610597979386e+01 +-1.476121399530314626e+01 +-1.821642491849179635e+01 +-1.926084300068322719e+01 +-2.172816286903316652e+01 +-1.476121399530314626e+01 +-1.574415113675572009e+01 +-1.476121399530314626e+01 +-2.121372410942373321e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.870884795913650933e+01 +-1.476121399530314626e+01 +-1.672844394444672744e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672268167690024754e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.823035575667507047e+01 +-1.573032571106647381e+01 +-1.772848271481247906e+01 +-1.972766768608530086e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.823692877123765754e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.673668984784076841e+01 +-1.575500212791669163e+01 +-1.922405736954551969e+01 +-1.822051383918279299e+01 +-1.524908418974633584e+01 +-1.726222433387699695e+01 +-1.575941674449784813e+01 +-1.717874200733868051e+01 +-1.723051666275072691e+01 +-1.673727645406095377e+01 +-1.476121399530314626e+01 +-2.172683406269010220e+01 +-1.918935542705584041e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.724838158629343354e+01 +-1.525525062138791199e+01 +-1.573671015552776176e+01 +-1.622331972918252774e+01 +-1.476121399530314626e+01 +-2.021142229771068344e+01 +-1.821953806508675200e+01 +-1.723303966857449865e+01 +-2.222221915589203434e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.774879087814420942e+01 +-2.222247508060926791e+01 +-1.723541585542474408e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.770151323198132687e+01 +-1.725097808361455165e+01 +-1.920756843093332478e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.625735786813525507e+01 +-1.922018939185947772e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-1.774040371086747214e+01 +-1.524908418974633584e+01 +-2.224000337054214782e+01 +-1.526710153869924547e+01 +-1.825481272058773285e+01 +-1.723549805565504300e+01 +-1.623488952797946538e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723037998125636605e+01 +-1.721519861582816446e+01 +-1.674142443227539445e+01 +-1.524160916598259874e+01 +-1.721862556337221406e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-2.273083870283389629e+01 +-1.874163567617201664e+01 +-1.872487700516799336e+01 +-1.873772946353135183e+01 +-1.575174991524399992e+01 +-1.871583922947093015e+01 +-1.820488902360093775e+01 +-1.677604342440111651e+01 +-1.672059177505631311e+01 +-1.626856923049603765e+01 +-1.822159775500104928e+01 +-1.575500212791669163e+01 +-1.820080100407124846e+01 +-1.820039631745250830e+01 +-2.071297322672897678e+01 +-2.171328788034910318e+01 +-1.572916749806838332e+01 +-1.975866045828849593e+01 +-1.823843498386943196e+01 +-1.476121399530314626e+01 +-1.623856472485708480e+01 +-1.621637955805593734e+01 +-1.772999389696753170e+01 +-1.574744664573250397e+01 +-1.973021702507443109e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.621813495161159224e+01 +-1.976096635709246385e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.819307746000575321e+01 +-1.823610021196117614e+01 +-1.920949430540230196e+01 +-1.868220452112003471e+01 +-1.524869807180282599e+01 +-1.975780229213037842e+01 +-1.476121399530314626e+01 +-2.026966080094772238e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623117287636750561e+01 +-1.825215661395933964e+01 +-2.073272056895710591e+01 +-1.476121399530314626e+01 +-1.973803425252446786e+01 +-1.623896172686500350e+01 +-2.222221915589203434e+01 +-1.572854899885174440e+01 +-1.722243460686622640e+01 +-2.223497516213418734e+01 +-1.476121399530314626e+01 +-1.878165064380100802e+01 +-1.476121399530314626e+01 +-1.624406660119286627e+01 +-2.273083870283389629e+01 +-1.722007765367704479e+01 +-1.774353575309854136e+01 +-1.925501931337553074e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-2.172842358251617867e+01 +-1.920276591824280388e+01 +-1.575500212791669163e+01 +-1.726227881928535624e+01 +-1.669025420133567295e+01 +-1.674739960707474395e+01 +-1.476121399530314626e+01 +-1.624402231297329635e+01 +-1.624899520224715133e+01 +-1.973167600370641850e+01 +-1.524982321799113549e+01 +-2.072902765182040241e+01 +-2.273083870283389629e+01 +-1.621747192744323129e+01 +-1.823803204817916068e+01 +-1.575174991524399992e+01 +-1.670886511577105082e+01 +-1.621637955805593734e+01 +-1.823609960693417520e+01 +-1.772025501582361073e+01 +-1.724838158629343354e+01 +-1.575941674449784813e+01 +-1.922018939185947772e+01 +-1.476121399530314626e+01 +-1.624169944267757870e+01 +-1.723549805565504300e+01 +-1.575941674449784813e+01 +-1.723780670936824322e+01 +-1.822318923819913650e+01 +-1.822147755477000786e+01 +-1.476121399530314626e+01 +-1.719716187590978151e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.669943025450141150e+01 +-2.273083870283389629e+01 +-1.727167756785197028e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.671315867724711879e+01 +-1.476121399530314626e+01 +-2.222517495552305533e+01 +-1.524908418974633584e+01 +-1.575480887862977042e+01 +-1.526710153869924547e+01 +-1.820427899812930050e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.921558071369304344e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.771647984075274707e+01 +-1.527093049984081752e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.721988312766665175e+01 +-1.476121399530314626e+01 +-1.820427899812930050e+01 +-1.971889661071904598e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.726445732099652020e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.673096835416569661e+01 +-1.524869807180282599e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-1.828351638531428947e+01 +-1.672277259766056545e+01 +-1.573671015552776176e+01 +-1.675356045266369875e+01 +-2.173256547040595166e+01 +-1.575500212791669163e+01 +-1.873344928867664194e+01 +-1.822707172309890566e+01 +-1.573671015552776176e+01 +-1.673231300605496230e+01 +-1.476121399530314626e+01 +-1.922018939185947772e+01 +-1.823803204817916068e+01 +-2.073111501711688831e+01 +-1.575500212791669163e+01 +-1.573769824264884676e+01 +-1.675514122835551589e+01 +-1.624169944267757870e+01 +-1.874590785030669693e+01 +-1.476121399530314626e+01 +-1.974216904010746632e+01 +-1.575112215998505860e+01 +-1.626856923049603765e+01 +-1.872023028932996169e+01 +-1.925491571558363546e+01 +-2.072877267841517934e+01 +-1.524908418974633584e+01 +-1.871479322408159618e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.973817701781753797e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.920049022646024284e+01 +-1.719378504758848791e+01 +-1.926877547090115073e+01 +-1.674739960707474395e+01 +-1.524147195489286943e+01 +-1.920745436286413010e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-2.074823000406804496e+01 +-1.626701727170046752e+01 +-1.623446448135860720e+01 +-1.672599108999033035e+01 +-1.973817701781753797e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.672844394444672744e+01 +-1.476121399530314626e+01 +-1.676170940838562728e+01 +-1.623856472485708480e+01 +-1.920667194734074812e+01 +-1.526710153869924547e+01 +-1.575593191261256365e+01 +-1.775001916423232728e+01 +-2.173090294339966277e+01 +-2.074120393459206468e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.922201363352617420e+01 +-1.874320598487806677e+01 +-1.823199299782174165e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624184012924291309e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.675514122835551589e+01 +-1.621637955805593734e+01 +-1.823726237026752628e+01 +-1.573671015552776176e+01 +-2.025656428814633614e+01 +-1.672277259766056545e+01 +-1.722000785778043053e+01 +-1.972698265110225790e+01 +-2.024198459128254513e+01 +-1.524869807180282599e+01 +-1.719205678833346340e+01 +-1.524908418974633584e+01 +-1.723873303077533947e+01 +-2.126350578254113799e+01 +-1.623896172686500350e+01 +-2.273083870283389629e+01 +-1.524982321799113549e+01 +-2.175361348163336217e+01 +-1.575500212791669163e+01 +-2.120258955543470591e+01 +-1.772660000527323731e+01 +-1.673969422044341115e+01 +-1.769735274376119705e+01 +-1.720468235604566232e+01 +-1.875963899728734674e+01 +-1.823673758690692281e+01 +-1.621747192744323129e+01 +-2.074469427287759160e+01 +-2.126350578254113799e+01 +-1.524147195489286943e+01 +-1.624230291321646646e+01 +-2.023710856365445565e+01 +-1.573773743783412904e+01 +-1.723618582583572234e+01 +-2.175801482215007709e+01 +-1.721549262239476263e+01 +-1.574365229112152953e+01 +-1.776479729411533270e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-2.172683406269010220e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575891057177604360e+01 +-1.672231191301397502e+01 +-1.476121399530314626e+01 +-1.823975359216384007e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.823666718221532079e+01 +-1.820039631745250830e+01 +-1.575941674449784813e+01 +-1.574365229112152953e+01 +-2.273083870283389629e+01 +-1.671833305819973248e+01 +-1.774825788712459484e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.722007765367704479e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-1.772660000527323731e+01 +-1.823609960693417520e+01 +-2.122392136261502316e+01 +-2.124917029005798241e+01 +-2.171586488874555343e+01 +-1.573671015552776176e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.925752808852810105e+01 +-1.922230874411467383e+01 +-1.476121399530314626e+01 +-1.874362519877741207e+01 +-1.925617706921889294e+01 +-2.075176627020447029e+01 +-1.918809513955038781e+01 +-1.922230874411467383e+01 +-2.224879281313178225e+01 +-1.723618582583572234e+01 +-2.222221915589203434e+01 +-1.923606052856875692e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.676170940838562728e+01 +-1.524908418974633584e+01 +-1.921245071865289944e+01 +-1.772218610171639597e+01 +-1.524908418974633584e+01 +-1.923062226603550329e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.775651912746867467e+01 +-1.774902923630338236e+01 +-2.222221915589203434e+01 +-1.775790090721342906e+01 +-1.825620525767849500e+01 +-1.524908418974633584e+01 +-1.575894212839201280e+01 +-1.720197974977325828e+01 +-2.020425564848582667e+01 +-1.625307476218753777e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.622576612183031131e+01 +-1.726445732099652020e+01 +-1.476121399530314626e+01 +-1.821128066724145356e+01 +-1.476121399530314626e+01 +-1.721570613406404959e+01 +-1.777155450638071699e+01 +-1.820080100407124846e+01 +-1.922230874411467383e+01 +-1.476121399530314626e+01 +-1.773061131562093706e+01 +-1.923958717682283392e+01 +-1.624707538080579994e+01 +-1.573671015552776176e+01 +-1.624707538080579994e+01 +-1.624899520224715133e+01 +-2.022403306297606562e+01 +-1.524147195489286943e+01 +-2.122392136261502316e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-2.019898673581996107e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-2.075629790914084793e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-1.620387993917162817e+01 +-1.873245491439413968e+01 +-2.120790317261229063e+01 +-2.122392136261502316e+01 +-1.826080012260337782e+01 +-1.624707538080579994e+01 +-2.175801482215007709e+01 +-1.526710153869924547e+01 +-2.020409466013249400e+01 +-1.676064322573188647e+01 +-1.821160743827642747e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-1.725710868371477247e+01 +-1.966923498797700276e+01 +-1.523508173933331733e+01 +-1.721783661017421707e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-2.074186931354768149e+01 +-1.672277259766056545e+01 +-2.222221915589203434e+01 +-2.019008469919278781e+01 +-1.972396974822433435e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.772639596685652208e+01 +-1.866807545787092337e+01 +-1.772217362413249475e+01 +-1.818467718464102489e+01 +-1.775651912746867467e+01 +-1.476121399530314626e+01 +-1.821167239494559809e+01 +-1.724109164895367741e+01 +-1.820928192064918250e+01 +-1.871790112676456985e+01 +-1.623845753025665672e+01 +-1.624282679516225514e+01 +-1.869555495458960337e+01 +-1.476121399530314626e+01 +-1.721643821422440723e+01 +-1.923401164615443193e+01 +-1.820412546821324895e+01 +-2.172670496945983842e+01 +-2.175801482215007709e+01 +-1.573773743783412904e+01 +-2.222517495552305533e+01 +-2.225682218684830715e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.674766233776160007e+01 +-1.476121399530314626e+01 +-1.724012703459143836e+01 +-1.622569173320911418e+01 +-1.871194095429955340e+01 +-1.724335290286656175e+01 +-1.970316187892901993e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.772999389696753170e+01 +-1.524908418974633584e+01 +-2.019008469919278781e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.870512823396490987e+01 +-1.620363008387797166e+01 +-1.775075789635342005e+01 +-2.222247508060926791e+01 +-2.125030255279273206e+01 +-1.574338251301774250e+01 +-2.173090294339966277e+01 +-1.719184223273999379e+01 +-1.625710826631413752e+01 +-2.175801482215007709e+01 +-2.126350578254113799e+01 +-1.920629982379544742e+01 +-1.574415113675572009e+01 +-1.524908418974633584e+01 +-1.823666718221532079e+01 +-1.476121399530314626e+01 +-1.575174991524399992e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.723051666275072691e+01 +-1.524908418974633584e+01 +-1.777230560209033072e+01 +-1.772217362413249475e+01 +-2.224173453399332345e+01 +-2.074122138262117332e+01 +-1.524908418974633584e+01 +-1.774320087269487090e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.673413142263268583e+01 +-1.675467789118465944e+01 +-1.573671015552776176e+01 +-1.623417494482859524e+01 +-1.573671015552776176e+01 +-1.770491988632109681e+01 +-1.476121399530314626e+01 +-2.123786065989509098e+01 +-1.574365229112152953e+01 +-1.771583971727682183e+01 +-1.923002884090942644e+01 +-1.820856975016894097e+01 +-2.019820414532594910e+01 +-1.476121399530314626e+01 +-1.819307746000575321e+01 +-1.624282679516225514e+01 +-1.576112879427005176e+01 +-1.575941674449784813e+01 +-1.623488952797946538e+01 +-2.120241199707932012e+01 +-2.021664899926371106e+01 +-1.524908418974633584e+01 +-1.574365229112152953e+01 +-1.622331972918252774e+01 +-1.722761926899734419e+01 +-1.825931049843509868e+01 +-1.525525062138791199e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.769195334062483127e+01 +-1.527337507837401809e+01 +-2.069923279741131594e+01 +-1.675356045266369875e+01 +-1.476121399530314626e+01 +-1.817135481296195110e+01 +-1.725424135558414207e+01 +-1.476121399530314626e+01 +-2.024725712422599599e+01 +-2.070480102922019938e+01 +-2.026488107021837237e+01 +-1.823794631484545903e+01 +-1.775651912746867467e+01 +-1.774480232771351496e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.823247920348312689e+01 +-1.721570613406404959e+01 +-1.871118755427367120e+01 +-1.724547610597979386e+01 +-1.476121399530314626e+01 +-1.776338775010844628e+01 +-1.524982321799113549e+01 +-1.626701727170046752e+01 +-1.476121399530314626e+01 +-2.074186931354768149e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.976096635709246385e+01 +-1.673209625834821068e+01 +-1.572916749806838332e+01 +-1.922888884520784103e+01 +-1.476121399530314626e+01 +-1.970025137279295890e+01 +-2.020684596190364246e+01 +-1.719618497250093370e+01 +-2.075629790914084793e+01 +-1.624707538080579994e+01 +-1.775790090721342906e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.624976440436766012e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573014140381678772e+01 +-1.725710868371477247e+01 +-1.973838731116963885e+01 +-2.121425467138256238e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.973021702507443109e+01 +-1.820080100407124846e+01 +-1.626689428319512842e+01 +-1.970122614985661258e+01 +-1.719995975008564670e+01 +-2.224000337054214782e+01 +-1.574093506489515804e+01 +-1.773188449732825944e+01 +-1.920212563707578823e+01 +-1.774530815917752236e+01 +-1.772660000527323731e+01 +-1.922018939185947772e+01 +-1.674142443227539445e+01 +-1.874590785030669693e+01 +-1.575547888688316611e+01 +-1.524908418974633584e+01 +-1.823035575667507047e+01 +-1.725223501004910176e+01 +-1.476121399530314626e+01 +-2.121736006615081749e+01 +-1.674428556677437285e+01 +-1.673668984784076841e+01 +-1.673340478404663045e+01 +-1.524160916598259874e+01 +-1.677397257584128809e+01 +-1.526710153869924547e+01 +-1.524908418974633584e+01 +-1.774055835519923008e+01 +-1.476121399530314626e+01 +-1.773933536443170667e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.823666718221532079e+01 +-1.719618497250093370e+01 +-1.923090707843258684e+01 +-1.526748398200428447e+01 +-1.575480887862977042e+01 +-1.476121399530314626e+01 +-1.826296728120957269e+01 +-1.524908418974633584e+01 +-1.673096835416569661e+01 +-1.621747192744323129e+01 +-1.874320598487806677e+01 +-1.724838158629343354e+01 +-1.721623296682883719e+01 +-1.769512552543276485e+01 +-1.575500212791669163e+01 +-1.722389795456495065e+01 +-1.773101712353213699e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.723268737333488687e+01 +-1.826154867282062710e+01 +-2.125030255279273206e+01 +-1.820080100407124846e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.626480553453878386e+01 +-1.624386184863087834e+01 +-2.071590189368102841e+01 +-1.524908418974633584e+01 +-1.675467789118465944e+01 +-2.126436549497429240e+01 +-1.824452030883065135e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.973838731116963885e+01 +-1.674142443227539445e+01 +-1.968062728543632645e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575941918869449232e+01 +-1.623417494482859524e+01 +-1.524908418974633584e+01 +-2.075176627020447029e+01 +-1.574744664573250397e+01 +-1.774530815917752236e+01 +-1.821633136274130393e+01 +-1.575480887862977042e+01 +-1.873102006394000085e+01 +-1.524908418974633584e+01 +-1.926135485443874629e+01 +-1.873102006394000085e+01 +-1.719618497250093370e+01 +-1.621637955805593734e+01 +-1.772019359504716363e+01 +-1.771650727420470162e+01 +-1.867599211767808498e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.726446962142870944e+01 +-1.772993204690818558e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-2.073111501711688831e+01 +-2.073647524764212591e+01 +-1.720920287902952950e+01 +-2.173256547040595166e+01 +-2.073545598077364360e+01 +-1.524147195489286943e+01 +-1.920100027404897958e+01 +-2.020823092456854653e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.524908418974633584e+01 +-2.120745861436619606e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.673668984784076841e+01 +-1.672231191301397502e+01 +-1.775651912746867467e+01 +-1.724838158629343354e+01 +-1.772598974940754957e+01 +-1.625472719831366319e+01 +-1.524908418974633584e+01 +-1.572916749806838332e+01 +-2.273083870283389629e+01 +-1.918935542705584041e+01 +-1.524908418974633584e+01 +-1.774262720290527540e+01 +-2.173635833472344103e+01 +-1.721570613406404959e+01 +-2.173635833472344103e+01 +-1.622569173320911418e+01 +-1.772217362413249475e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.624011578680249457e+01 +-2.020566894829939386e+01 +-2.019978270105077200e+01 +-1.770934375498644542e+01 +-1.820984470438421354e+01 +-2.273083870283389629e+01 +-1.526710153869924547e+01 +-1.674739960707474395e+01 +-1.769735274376119705e+01 +-1.476121399530314626e+01 +-1.823609960693417520e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.175801482215007709e+01 +-1.821758047398477842e+01 +-1.872520758225396165e+01 +-2.075719237248635451e+01 +-1.575480887862977042e+01 +-1.575941674449784813e+01 +-2.069603689810960745e+01 +-2.024725712422599599e+01 +-1.722874908024676088e+01 +-1.476121399530314626e+01 +-2.120510783473741512e+01 +-2.021748338020809399e+01 +-2.173635833472344103e+01 +-1.971202130016335019e+01 +-1.476121399530314626e+01 +-1.674142443227539445e+01 +-1.727105751173519366e+01 +-1.524908418974633584e+01 +-1.920434497127330076e+01 +-1.476121399530314626e+01 +-1.922888884520784103e+01 +-1.923161739582525698e+01 +-2.019670184548774472e+01 +-1.823224414295961182e+01 +-1.476121399530314626e+01 +-1.825215661395933964e+01 +-1.722857014081084515e+01 +-1.524869807180282599e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.824987451126001048e+01 +-1.869124224803620393e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.724522632620288931e+01 +-2.074469427287759160e+01 +-2.171959012714755488e+01 +-1.524908418974633584e+01 +-2.024901261058512958e+01 +-1.773263942972628371e+01 +-2.224879281313178225e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.870647306096768503e+01 +-1.572916749806838332e+01 +-1.524908418974633584e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.723390373210351356e+01 +-1.670487396547499870e+01 +-1.724409046467568984e+01 +-2.073961609748555901e+01 +-1.574365229112152953e+01 +-1.774073021162808672e+01 +-1.621671222869046147e+01 +-1.476121399530314626e+01 +-1.676413376275568368e+01 +-1.476121399530314626e+01 +-2.073043986740847799e+01 +-1.574365229112152953e+01 +-1.773789108157372496e+01 +-1.726844370297998665e+01 +-2.024129746737908775e+01 +-1.572902897713327164e+01 +-1.870371294862355427e+01 +-1.721570613406404959e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-2.222247508060926791e+01 +-1.572916749806838332e+01 +-1.626907270837495290e+01 +-1.575500212791669163e+01 +-1.868220452112003471e+01 +-2.223497516213418734e+01 +-1.770038304100727444e+01 +-1.578125364629256744e+01 +-1.624899520224715133e+01 +-1.524869807180282599e+01 +-1.820080100407124846e+01 +-1.574744664573250397e+01 +-1.974179119130645432e+01 +-1.969726181361501816e+01 +-1.524908418974633584e+01 +-1.772217362413249475e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.626888752469497845e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.675869842299823986e+01 +-1.575891057177604360e+01 +-1.573014140381678772e+01 +-2.273083870283389629e+01 +-2.023074987981114958e+01 +-1.625088400431843993e+01 +-2.175801482215007709e+01 +-2.273083870283389629e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-1.973581169737493113e+01 +-1.526710153869924547e+01 +-1.773015376045774261e+01 +-1.524908418974633584e+01 +-1.624899520224715133e+01 +-2.221559445291741852e+01 +-1.872934421126548088e+01 +-1.476121399530314626e+01 +-1.922249952029773823e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.871287128712486592e+01 +-1.524147195489286943e+01 +-1.919441869225782327e+01 +-1.476121399530314626e+01 +-1.822826907599784363e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.674858455771563470e+01 +-1.624707538080579994e+01 +-2.024725712422599599e+01 +-1.524908418974633584e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.973817701781753797e+01 +-1.874878564670296655e+01 +-1.923767944811499930e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.070830762098425737e+01 +-1.775651912746867467e+01 +-1.722026432974114485e+01 +-2.172842358251617867e+01 +-2.071459065174929748e+01 +-1.725291462811145138e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.925794384627054612e+01 +-2.173256547040595166e+01 +-1.674901352978258728e+01 +-1.524908418974633584e+01 +-1.973636702315670632e+01 +-1.724838158629343354e+01 +-1.573671015552776176e+01 +-1.576210879656242447e+01 +-1.624282679516225514e+01 +-1.524869807180282599e+01 +-1.671432998502842793e+01 +-1.922647690864689807e+01 +-1.772159784711116259e+01 +-1.572916749806838332e+01 +-1.724378960646741987e+01 +-1.769224685667877495e+01 +-1.974771631863592347e+01 +-1.774997003592084610e+01 +-1.476121399530314626e+01 +-1.820488902360093775e+01 +-1.820651540836642823e+01 +-1.971628804126131485e+01 +-2.075629790914084793e+01 +-2.273083870283389629e+01 +-1.972206935004004436e+01 +-1.823035575667507047e+01 +-1.719716187590978151e+01 +-2.020425564848582667e+01 +-2.175801482215007709e+01 +-2.222517495552305533e+01 +-1.524908418974633584e+01 +-2.171360073915518285e+01 +-2.071586809441644661e+01 +-1.476121399530314626e+01 +-2.121748415248153563e+01 +-1.822339480897428743e+01 +-1.719995975008564670e+01 +-1.524908418974633584e+01 +-1.673231300605496230e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.675298025263422019e+01 +-2.022644278106050919e+01 +-1.524908418974633584e+01 +-1.626689428319512842e+01 +-1.624707538080579994e+01 +-1.772239754538751555e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-2.120411165261994668e+01 +-1.818819283341955284e+01 +-1.672599108999033035e+01 +-2.122697073570241955e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.527093049984081752e+01 +-1.774530815917752236e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-2.224000337054214782e+01 +-1.873965512608216599e+01 +-1.918935542705584041e+01 +-1.476121399530314626e+01 +-1.772217362413249475e+01 +-1.476121399530314626e+01 +-1.873338092447980330e+01 +-1.721783661017421707e+01 +-1.922230874411467383e+01 +-1.774607709853776427e+01 +-1.770729053849431267e+01 +-1.676128788677756631e+01 +-2.126350578254113799e+01 +-1.870541168090492334e+01 +-1.623856472485708480e+01 +-1.871400079591393961e+01 +-1.672599108999033035e+01 +-1.820984470438421354e+01 +-1.772088655549763558e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-1.772217362413249475e+01 +-1.575500212791669163e+01 +-1.822318923819913650e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-1.725710868371477247e+01 +-1.922649250710232849e+01 +-2.023686469289945222e+01 +-1.476121399530314626e+01 +-2.171328788034910318e+01 +-1.820080100407124846e+01 +-1.572916749806838332e+01 +-1.624968019918323137e+01 +-2.172670496945983842e+01 +-1.921528919064225605e+01 +-1.724838158629343354e+01 +-1.770736366512549509e+01 +-1.575480887862977042e+01 +-1.726429041400032105e+01 +-1.820080100407124846e+01 +-2.019898673581996107e+01 +-1.476121399530314626e+01 +-1.925779813747088909e+01 +-1.721661173299558101e+01 +-1.524147195489286943e+01 +-1.721038905335863589e+01 +-1.924974195246140596e+01 +-1.969141808769501978e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.026370871090030690e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.574744664573250397e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.778509329951253548e+01 +-2.273083870283389629e+01 +-1.572265874903633431e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.672379217782949112e+01 +-1.874590785030669693e+01 +-1.525677914886782283e+01 +-1.721862556337221406e+01 +-1.725010018486193530e+01 +-1.722389795456495065e+01 +-1.622853806956639389e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.672680116746003876e+01 +-1.725591159367355942e+01 +-1.476121399530314626e+01 +-1.574744664573250397e+01 +-1.476121399530314626e+01 +-1.823915852722713282e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.721570613406404959e+01 +-1.869710192606887134e+01 +-1.775651912746867467e+01 +-1.921683229546970750e+01 +-1.973683913589787764e+01 +-1.922018939185947772e+01 +-2.123786065989509098e+01 +-1.476121399530314626e+01 +-1.921528919064225605e+01 +-1.576210879656242447e+01 +-1.721783661017421707e+01 +-1.823609960693417520e+01 +-1.723618582583572234e+01 +-2.174480670537584004e+01 +-1.526710153869924547e+01 +-2.071213914613556284e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.673413142263268583e+01 +-1.720263079431909858e+01 +-1.922888884520784103e+01 +-1.624707538080579994e+01 +-2.222247508060926791e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.625360295346346362e+01 +-1.623856472485708480e+01 +-1.524982321799113549e+01 +-1.771667436109759919e+01 +-2.122593937376381490e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575439587360435567e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.871434500139005408e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.222247508060926791e+01 +-2.222221915589203434e+01 +-2.021976207345208110e+01 +-1.524869807180282599e+01 +-1.575174991524399992e+01 +-1.573671015552776176e+01 +-1.721454399044549177e+01 +-1.476121399530314626e+01 +-1.773582030646098673e+01 +-1.770876238501836752e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-2.224000337054214782e+01 +-1.925503557153448497e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-2.075629790914084793e+01 +-2.273083870283389629e+01 +-1.871092833847788839e+01 +-1.875446259801316984e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-2.222517495552305533e+01 +-1.721570613406404959e+01 +-1.923522381409406989e+01 +-1.476121399530314626e+01 +-1.723875790085773829e+01 +-1.524147195489286943e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.173256547040595166e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.574338251301774250e+01 +-1.918139615868678760e+01 +-1.476121399530314626e+01 +-1.820109237008371039e+01 +-2.075474167493039701e+01 +-2.173133788547372447e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.971468774030995874e+01 +-1.675514122835551589e+01 +-1.624330830693308059e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.973612332719512708e+01 +-1.722852944691108235e+01 +-2.068931015605983603e+01 +-1.573769824264884676e+01 +-1.572916749806838332e+01 +-1.622685167663187400e+01 +-1.673668984784076841e+01 +-1.768426182203620201e+01 +-1.775349395008742448e+01 +-1.476121399530314626e+01 +-2.173458106512043742e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.027664142838474959e+01 +-1.922405736954551969e+01 +-1.823666718221532079e+01 +-1.871434500139005408e+01 +-1.624679776812607912e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.867745931589744046e+01 +-1.675963424815755332e+01 +-1.820424813924134710e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.918602486282601305e+01 +-1.771393947807641922e+01 +-1.476121399530314626e+01 +-1.823666718221532079e+01 +-1.972273007189557603e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.873102006394000085e+01 +-2.121170465044211184e+01 +-1.769955819423957166e+01 +-1.476121399530314626e+01 +-1.774353575309854136e+01 +-1.771681533385575591e+01 +-1.624218251951983660e+01 +-1.970516887963223240e+01 +-1.476121399530314626e+01 +-1.921683229546970750e+01 +-1.525677914886782283e+01 +-1.820080100407124846e+01 +-1.672884421037827707e+01 +-1.774530815917752236e+01 +-1.672844394444672744e+01 +-1.774530815917752236e+01 +-1.476121399530314626e+01 +-1.622331972918252774e+01 +-1.572265874903633431e+01 +-1.772660000527323731e+01 +-1.773556618231568649e+01 +-1.623446448135860720e+01 +-2.175801482215007709e+01 +-1.876168441035147794e+01 +-1.769693998819529313e+01 +-1.476121399530314626e+01 +-2.074823000406804496e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-2.173635833472344103e+01 +-2.024732701160147741e+01 +-1.623417494482859524e+01 +-1.672680116746003876e+01 +-1.524869807180282599e+01 +-1.677501821277620664e+01 +-1.772993204690818558e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-2.120447254404176363e+01 +-2.120447254404176363e+01 +-2.172842358251617867e+01 +-1.669755482749530628e+01 +-2.120514229137396711e+01 +-1.476121399530314626e+01 +-1.672277259766056545e+01 +-2.273083870283389629e+01 +-1.968946795445280173e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-2.070800668582365134e+01 +-1.672231191301397502e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.825242081628093871e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.772791459499736533e+01 +-1.724638823931150711e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-2.273083870283389629e+01 +-1.723873303077533947e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.573671015552776176e+01 +-1.574365229112152953e+01 +-1.573659808073013977e+01 +-2.070875976338370350e+01 +-2.173256547040595166e+01 +-1.770736366512549509e+01 +-2.273083870283389629e+01 +-1.769735274376119705e+01 +-1.917858385295538426e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723535518410123046e+01 +-1.476121399530314626e+01 +-1.774227154328873013e+01 +-1.924303582026224646e+01 +-1.774825788712459484e+01 +-2.172683406269010220e+01 +-1.774508080035682767e+01 +-1.622853806956639389e+01 +-1.724907359714923416e+01 +-1.869924242087718014e+01 +-2.173992036335968336e+01 +-2.069314974418632502e+01 +-1.826576947263134798e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.871287128712486592e+01 +-1.872623143483904329e+01 +-2.273083870283389629e+01 +-1.968951381459886107e+01 +-1.920666578230992272e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.624899520224715133e+01 +-1.769955819423957166e+01 +-1.572162754304351395e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.922018939185947772e+01 +-1.476121399530314626e+01 +-1.823819735553072618e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-1.971149341720595061e+01 +-1.574415113675572009e+01 +-1.877767410781578050e+01 +-1.874590785030669693e+01 +-1.526710153869924547e+01 +-1.671039843285468507e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.573671015552776176e+01 +-1.770038304100727444e+01 +-1.526748398200428447e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.723618582583572234e+01 +-1.623321632101648859e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.675514122835551589e+01 +-2.024740473977704269e+01 +-2.273083870283389629e+01 +-1.969963523876843325e+01 +-1.972156315577562680e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.724263414955195373e+01 +-1.969297919171340183e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-1.721988312766665175e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.920276591824280388e+01 +-1.772660000527323731e+01 +-2.222247508060926791e+01 +-1.624976440436766012e+01 +-1.925501931337553074e+01 +-1.727259332061154495e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.820488902360093775e+01 +-1.669943025450141150e+01 +-1.920830192806889514e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.720468235604566232e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.624899520224715133e+01 +-1.526710153869924547e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.774227154328873013e+01 +-2.123857311620221466e+01 +-1.574365229112152953e+01 +-1.574365229112152953e+01 +-1.720065729437846969e+01 +-1.671039843285468507e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.917756601686322782e+01 +-1.774508080035682767e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-2.122392136261502316e+01 +-1.775203540892192322e+01 +-1.574093506489515804e+01 +-1.774996717221472764e+01 +-1.621747192744323129e+01 +-1.922888884520784103e+01 +-1.476121399530314626e+01 +-1.624654151831733984e+01 +-1.774227154328873013e+01 +-2.224000337054214782e+01 +-1.772217362413249475e+01 +-2.071481865277864642e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.071506175959065033e+01 +-2.224879281313178225e+01 +-1.526710153869924547e+01 +-2.072499391124386747e+01 +-1.621637955805593734e+01 +-1.817135481296195110e+01 +-1.724838158629343354e+01 +-1.722032179331528923e+01 +-1.524908418974633584e+01 +-2.124917029005798241e+01 +-1.673727645406095377e+01 +-1.476121399530314626e+01 +-1.876689242380431466e+01 +-1.626480553453878386e+01 +-2.273083870283389629e+01 +-1.966923498797700276e+01 +-1.476121399530314626e+01 +-1.672027119687655627e+01 +-1.723337861536438709e+01 +-1.826576947263134798e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.575500212791669163e+01 +-2.017955958427454988e+01 +-1.626701727170046752e+01 +-1.676064322573188647e+01 +-1.871434500139005408e+01 +-2.018070769283313481e+01 +-1.719234209407089864e+01 +-2.022464288974876112e+01 +-2.273083870283389629e+01 +-1.524160916598259874e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-2.077610912958278533e+01 +-1.624402231297329635e+01 +-1.874590785030669693e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.971712352789465683e+01 +-1.771084103535594778e+01 +-2.023256598729861722e+01 +-1.476121399530314626e+01 +-2.069603689810960745e+01 +-1.622569173320911418e+01 +-1.476121399530314626e+01 +-1.773359224473547968e+01 +-1.575941674449784813e+01 +-1.623117287636750561e+01 +-2.119761667484912948e+01 +-1.920031274137578237e+01 +-1.524160916598259874e+01 +-1.476121399530314626e+01 +-1.872623143483904329e+01 +-1.672599108999033035e+01 +-1.720536799296077390e+01 +-1.772598974940754957e+01 +-1.621747192744323129e+01 +-1.476121399530314626e+01 +-1.923188530568091537e+01 +-1.871400079591393961e+01 +-1.769407381584957406e+01 +-1.624899520224715133e+01 +-2.076344944064390319e+01 +-1.672844394444672744e+01 +-1.672844394444672744e+01 +-1.918139615868678760e+01 +-2.075419326674170861e+01 +-1.820080100407124846e+01 +-1.823199299782174165e+01 +-1.573773743783412904e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.527191419712450049e+01 +-1.620318880666199135e+01 +-1.674594070027254133e+01 +-2.171413861831982217e+01 +-1.524908418974633584e+01 +-1.524160916598259874e+01 +-1.721570613406404959e+01 +-1.871133106658119161e+01 +-1.476121399530314626e+01 +-1.623068968097969034e+01 +-1.476121399530314626e+01 +-1.874533290931689677e+01 +-1.525677914886782283e+01 +-1.575941674449784813e+01 +-1.722821928973528571e+01 +-2.224000337054214782e+01 +-1.973817701781753797e+01 +-1.723337861536438709e+01 +-2.074469427287759160e+01 +-2.122795143893339187e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723337861536438709e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.820080100407124846e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.672231191301397502e+01 +-1.723104423802037033e+01 +-1.573575688418649499e+01 +-2.172648013552934287e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.873915466199800761e+01 +-1.622576612183031131e+01 +-1.573671015552776176e+01 +-1.823609960693417520e+01 +-2.120207002984464850e+01 +-1.922018939185947772e+01 +-2.173635833472344103e+01 +-2.273083870283389629e+01 +-2.172450756719466369e+01 +-1.623117287636750561e+01 +-1.820386290593106438e+01 +-1.476121399530314626e+01 +-2.020337916582672122e+01 +-2.173256547040595166e+01 +-1.724838158629343354e+01 +-1.526710153869924547e+01 +-1.526710153869924547e+01 +-1.721570613406404959e+01 +-1.621815045711349867e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.623961616816850295e+01 +-1.774353575309854136e+01 +-1.524908418974633584e+01 +-1.771583971727682183e+01 +-2.172683406269010220e+01 +-1.673668984784076841e+01 +-2.075419326674170861e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.022628807987375410e+01 +-2.024789350154739864e+01 +-1.476121399530314626e+01 +-1.924342982989376694e+01 +-2.222221915589203434e+01 +-2.019923977813712668e+01 +-1.476121399530314626e+01 +-1.872723752430217203e+01 +-1.725763223976502658e+01 +-1.722821928973528571e+01 +-1.476121399530314626e+01 +-1.675869842299823986e+01 +-1.672277259766056545e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.624330830693308059e+01 +-2.273083870283389629e+01 +-1.624968019918323137e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.772538519989023698e+01 +-2.222221915589203434e+01 +-2.071937658751493672e+01 +-1.769023955610332521e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.575174991524399992e+01 +-1.476121399530314626e+01 +-1.921528919064225605e+01 +-2.075091914329109244e+01 +-1.719618497250093370e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.871033085219637471e+01 +-1.572916749806838332e+01 +-1.874590785030669693e+01 +-1.476121399530314626e+01 +-1.672277259766056545e+01 +-1.870323904848858376e+01 +-1.524908418974633584e+01 +-1.575480887862977042e+01 +-1.624707538080579994e+01 +-2.075397199959315131e+01 +-2.121828869553178976e+01 +-2.273083870283389629e+01 +-1.775651912746867467e+01 +-1.476121399530314626e+01 +-1.825898233633606438e+01 +-1.823319706961683195e+01 +-1.770939713313940445e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-1.871133106658119161e+01 +-1.972562070096249087e+01 +-1.476121399530314626e+01 +-1.623417494482859524e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.624707538080579994e+01 +-1.770736366512549509e+01 +-1.573575688418649499e+01 +-1.476121399530314626e+01 +-1.576112879427005176e+01 +-1.726222433387699695e+01 +-1.727105751173519366e+01 +-1.922228036751121039e+01 +-1.624707538080579994e+01 +-1.674739960707474395e+01 +-1.576210879656242447e+01 +-1.922249952029773823e+01 +-1.625152769793173491e+01 +-1.823666718221532079e+01 +-2.172648013552934287e+01 +-1.575941674449784813e+01 +-1.919973922861363747e+01 +-1.675467789118465944e+01 +-1.670886511577105082e+01 +-1.524908418974633584e+01 +-1.621637955805593734e+01 +-1.524147195489286943e+01 +-1.823413916523201550e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.924931440866631149e+01 +-1.524908418974633584e+01 +-2.222221915589203434e+01 +-1.826318098594044415e+01 +-1.626701727170046752e+01 +-1.921528919064225605e+01 +-1.575500212791669163e+01 +-1.770601377564818790e+01 +-2.273083870283389629e+01 +-1.672599108999033035e+01 +-1.772848271481247906e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.672277259766056545e+01 +-1.772660000527323731e+01 +-2.020971996676939142e+01 +-1.524908418974633584e+01 +-1.773303920736994144e+01 +-1.672277259766056545e+01 +-1.918935542705584041e+01 +-1.574365229112152953e+01 +-1.721704783178955722e+01 +-1.969392252962956746e+01 +-1.725704439240779209e+01 +-1.672231191301397502e+01 +-1.823248128444570781e+01 +-1.573671015552776176e+01 +-1.924376349879660353e+01 +-1.476121399530314626e+01 +-1.918888220531038513e+01 +-1.675514122835551589e+01 +-1.624968019918323137e+01 +-1.723051666275072691e+01 +-2.120514229137396711e+01 +-1.476121399530314626e+01 +-2.173992036335968336e+01 +-2.022628807987375410e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.575891057177604360e+01 +-2.019329676271890861e+01 +-1.572916749806838332e+01 +-2.273083870283389629e+01 +-1.524869807180282599e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-2.171143261821722703e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.823666718221532079e+01 +-1.775651912746867467e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-2.175361348163336217e+01 +-1.672277259766056545e+01 +-1.476121399530314626e+01 +-1.874866461478081092e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.922459124356883109e+01 +-1.922888884520784103e+01 +-1.674858455771563470e+01 +-1.672844394444672744e+01 +-2.223497516213418734e+01 +-1.725010018486193530e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.823609960693417520e+01 +-1.822503222638315989e+01 +-2.273083870283389629e+01 +-1.723970814728509637e+01 +-2.273083870283389629e+01 +-2.224879281313178225e+01 +-1.624330830693308059e+01 +-1.871033085219637471e+01 +-1.524869807180282599e+01 +-1.672844394444672744e+01 +-1.524908418974633584e+01 +-1.773015376045774261e+01 +-2.273083870283389629e+01 +-1.821583862853639246e+01 +-1.922717239745254858e+01 +-2.021990666300355244e+01 +-1.820412546821324895e+01 +-1.874318708913091314e+01 +-1.476121399530314626e+01 +-2.022033131282586282e+01 +-1.576210879656242447e+01 +-1.918935542705584041e+01 +-1.672231191301397502e+01 +-1.672231191301397502e+01 +-1.721038905335863589e+01 +-1.925398858696311422e+01 +-2.173256547040595166e+01 +-1.476121399530314626e+01 +-1.823673758690692281e+01 +-1.476121399530314626e+01 +-2.023399855246237067e+01 +-1.822645957363882019e+01 +-1.822307365626555509e+01 +-1.672059177505631311e+01 +-1.625311751726054510e+01 +-1.476121399530314626e+01 +-1.572854899885174440e+01 +-1.573671015552776176e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.621637955805593734e+01 +-1.874590785030669693e+01 +-1.524908418974633584e+01 +-1.623856472485708480e+01 +-1.524908418974633584e+01 +-1.525677914886782283e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.224000337054214782e+01 +-1.624899520224715133e+01 +-1.724838158629343354e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.768979362731587912e+01 +-1.773178943812436259e+01 +-2.023464596939292193e+01 +-2.175361348163336217e+01 +-2.124288580546417649e+01 +-1.776094105428315117e+01 +-1.476121399530314626e+01 +-1.575838338479935175e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.623446448135860720e+01 +-1.575174991524399992e+01 +-1.575891057177604360e+01 +-1.768860220840159769e+01 +-1.524869807180282599e+01 +-1.672277259766056545e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.723250698099688094e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.719716187590978151e+01 +-1.973612332719512708e+01 +-1.524908418974633584e+01 +-1.677241967275444878e+01 +-1.774039056800624792e+01 +-1.622853806956639389e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-2.071606620308072522e+01 +-1.476121399530314626e+01 +-1.525525062138791199e+01 +-1.526710153869924547e+01 +-1.524147195489286943e+01 +-2.023628821070739292e+01 +-1.871033085219637471e+01 +-1.775651912746867467e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.820039631745250830e+01 +-1.924200539039091851e+01 +-2.273083870283389629e+01 +-2.024725712422599599e+01 +-1.676170940838562728e+01 +-1.772993204690818558e+01 +-1.524908418974633584e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.772217362413249475e+01 +-1.820013411746548115e+01 +-2.023294506340621979e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.876168441035147794e+01 +-1.820412546821324895e+01 +-1.672231191301397502e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.575941674449784813e+01 +-1.574365229112152953e+01 +-1.624899520224715133e+01 +-1.572265874903633431e+01 +-1.972683403807351965e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.124645296855783982e+01 +-1.476121399530314626e+01 +-2.121777648509584324e+01 +-1.674657900979885383e+01 +-1.476121399530314626e+01 +-2.025119055719394368e+01 +-1.920524975306400961e+01 +-1.577680841736110828e+01 +-1.524869807180282599e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.574715332371951604e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.925531521962374626e+01 +-2.174309903499456098e+01 +-1.525677914886782283e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.725010018486193530e+01 +-1.971705862385704577e+01 +-1.817549114744108607e+01 +-1.476121399530314626e+01 +-1.772999389696753170e+01 +-1.527191419712450049e+01 +-1.623856472485708480e+01 +-2.074144729451301927e+01 +-1.673668984784076841e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.626689428319512842e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.623882026607401130e+01 +-1.775651912746867467e+01 +-1.672680116746003876e+01 +-1.824271439628197555e+01 +-1.624707538080579994e+01 +-1.574415113675572009e+01 +-1.476121399530314626e+01 +-1.625443543088551479e+01 +-1.724838158629343354e+01 +-1.823413916523201550e+01 +-2.024725712422599599e+01 +-1.524908418974633584e+01 +-2.221559445291741852e+01 +-1.875124848762851926e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.767679293755818648e+01 +-2.120524907987791252e+01 +-1.971058156569212372e+01 +-1.871748086511768605e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.725291462811145138e+01 +-1.623488952797946538e+01 +-2.222221915589203434e+01 +-1.721518923256541811e+01 +-1.476121399530314626e+01 +-1.574093506489515804e+01 +-1.624707538080579994e+01 +-2.026754825281421901e+01 +-1.770510475769095748e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.974407442136096336e+01 +-1.772217362413249475e+01 +-2.021686182558386236e+01 +-1.524908418974633584e+01 +-1.823942420243807661e+01 +-1.925779813747088909e+01 +-1.524869807180282599e+01 +-1.525525062138791199e+01 +-1.575500212791669163e+01 +-2.024542708031925287e+01 +-1.772481489835750068e+01 +-2.273083870283389629e+01 +-1.622853806956639389e+01 +-1.968881031012973892e+01 +-1.527191419712450049e+01 +-1.974256101996287072e+01 +-1.722868364608472902e+01 +-1.573659808073013977e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.575591656132124463e+01 +-1.476121399530314626e+01 +-1.672231191301397502e+01 +-1.823609960693417520e+01 +-1.572854899885174440e+01 +-1.772218610171639597e+01 +-1.724838158629343354e+01 +-1.874610668640177380e+01 +-1.774374503764564182e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.776094105428315117e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-1.774156005670232616e+01 +-1.624645653891432673e+01 +-1.876168441035147794e+01 +-2.173635833472344103e+01 +-1.970168445657480305e+01 +-1.721014515272629097e+01 +-2.273083870283389629e+01 +-1.874988389985277237e+01 +-1.969750509879924749e+01 +-1.772598974940754957e+01 +-1.476121399530314626e+01 +-2.121571772166121050e+01 +-1.524147195489286943e+01 +-1.524908418974633584e+01 +-2.024204329508548383e+01 +-1.823666718221532079e+01 +-2.023677173728567880e+01 +-2.023464596939292193e+01 +-1.922100128193908830e+01 +-1.624707538080579994e+01 +-1.524160916598259874e+01 +-1.524869807180282599e+01 +-1.818151690641327534e+01 +-1.771244149305044147e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-2.273083870283389629e+01 +-1.824454829323622818e+01 +-2.021976207345208110e+01 +-1.774607709853776427e+01 +-1.676064322573188647e+01 +-1.872081342347571109e+01 +-1.823609960693417520e+01 +-1.721862556337221406e+01 +-2.273083870283389629e+01 +-1.576112879427005176e+01 +-1.871287128712486592e+01 +-2.025123930478707734e+01 +-1.918030603293860281e+01 +-2.273083870283389629e+01 +-1.973106671327343165e+01 +-1.674812704884073256e+01 +-2.173635833472344103e+01 +-1.624330830693308059e+01 +-1.972156315577562680e+01 +-1.623603104653742335e+01 +-1.721570613406404959e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.973612332719512708e+01 +-1.624899520224715133e+01 +-2.222221915589203434e+01 +-1.674594070027254133e+01 +-1.576210879656242447e+01 +-1.575500212791669163e+01 +-1.872023028932996169e+01 +-1.575500212791669163e+01 +-1.772217362413249475e+01 +-1.526710153869924547e+01 +-2.126350578254113799e+01 +-2.024740473977704269e+01 +-2.173256547040595166e+01 +-2.126350578254113799e+01 +-1.769352391111501532e+01 +-2.122392136261502316e+01 +-1.671451113996016602e+01 +-2.273083870283389629e+01 +-1.868146143304237938e+01 +-1.676170940838562728e+01 +-2.024542708031925287e+01 +-1.825811899518099679e+01 +-1.971951997822286273e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.622371151329624439e+01 +-1.675514122835551589e+01 +-1.524982321799113549e+01 +-1.525525062138791199e+01 +-1.575941674449784813e+01 +-1.874535488267139272e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.774530815917752236e+01 +-1.820984470438421354e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.022457298546748206e+01 +-1.826896755862118127e+01 +-1.476121399530314626e+01 +-1.672514086318954796e+01 +-1.820080100407124846e+01 +-1.476121399530314626e+01 +-1.773015376045774261e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.724838158629343354e+01 +-1.526710153869924547e+01 +-1.524908418974633584e+01 +-1.723541585542474408e+01 +-1.768177321644598265e+01 +-1.574365229112152953e+01 +-1.772660000527323731e+01 +-2.072533504920817649e+01 +-1.724838158629343354e+01 +-2.223497516213418734e+01 +-1.524908418974633584e+01 +-2.173256547040595166e+01 +-1.524869807180282599e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.620318880666199135e+01 +-1.624330830693308059e+01 +-2.073276991803014013e+01 +-1.575147103248868952e+01 +-1.524908418974633584e+01 +-1.823808337526899592e+01 +-2.224879281313178225e+01 +-2.074144729451301927e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.875546000178560391e+01 +-1.821642491849179635e+01 +-1.524908418974633584e+01 +-2.222216290213661694e+01 +-2.222221915589203434e+01 +-1.524869807180282599e+01 +-1.825527647481903415e+01 +-1.624899520224715133e+01 +-1.726222433387699695e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-2.020027519408485972e+01 +-1.476121399530314626e+01 +-1.677644709106239063e+01 +-2.126350578254113799e+01 +-2.171413861831982217e+01 +-1.524908418974633584e+01 +-1.872969073742070023e+01 +-2.222221915589203434e+01 +-1.621637955805593734e+01 +-2.121575365075320008e+01 +-1.524869807180282599e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.722026432974114485e+01 +-1.771115088764974743e+01 +-1.476121399530314626e+01 +-2.070854355367512056e+01 +-1.820809338267425304e+01 +-2.018230891852952169e+01 +-1.821758047398477842e+01 +-1.476121399530314626e+01 +-1.723250224583286183e+01 +-1.725688403572214469e+01 +-1.476121399530314626e+01 +-1.825059849126991196e+01 +-1.575500212791669163e+01 +-2.223497516213418734e+01 +-1.772639596685652208e+01 +-2.074009914378694219e+01 +-2.173133788547372447e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-2.127029659366525749e+01 +-2.224879281313178225e+01 +-2.024980959456539864e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.524908418974633584e+01 +-1.771518959670193638e+01 +-1.675514122835551589e+01 +-1.624899520224715133e+01 +-1.524869807180282599e+01 +-2.126062803264706247e+01 +-1.624899520224715133e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.223497516213418734e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.873809039579342439e+01 +-1.674091388048885420e+01 +-1.524869807180282599e+01 +-1.921118183497078391e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.973838731116963885e+01 +-2.273083870283389629e+01 +-1.623488952797946538e+01 +-1.476121399530314626e+01 +-1.626151001147714936e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.820608450387680932e+01 +-1.918935542705584041e+01 +-1.966789907653068781e+01 +-1.524908418974633584e+01 +-1.525677914886782283e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.922100128005653730e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.971495681128613953e+01 +-2.224970701930812567e+01 +-1.575480887862977042e+01 +-1.723337861536438709e+01 +-1.624968019918323137e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.820172362779080188e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-2.120524907987791252e+01 +-1.823609960693417520e+01 +-1.869643762296800560e+01 +-1.973817701781753797e+01 +-1.572916749806838332e+01 +-1.823609960693417520e+01 +-1.871748086511768605e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.922888884520784103e+01 +-1.871194095429955340e+01 +-1.823199299782174165e+01 +-1.822175333755717475e+01 +-2.071810537594562973e+01 +-2.224000337054214782e+01 +-1.920636135741791506e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.973612332719512708e+01 +-1.476121399530314626e+01 +-1.823609960693417520e+01 +-1.975374582282164226e+01 +-2.224000337054214782e+01 +-1.524147195489286943e+01 +-1.572916749806838332e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.872726944109939495e+01 +-2.173256547040595166e+01 +-2.024129746737908775e+01 +-1.575500212791669163e+01 +-1.524908418974633584e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-1.621671222869046147e+01 +-1.524869807180282599e+01 +-1.724838158629343354e+01 +-1.524908418974633584e+01 +-1.870514623059212767e+01 +-1.572916749806838332e+01 +-2.273083870283389629e+01 +-1.817358247699133145e+01 +-1.476121399530314626e+01 +-2.124523402989096610e+01 +-2.021879398416117724e+01 +-1.673231300605496230e+01 +-2.224879281313178225e+01 +-1.624899520224715133e+01 +-1.821139996696712515e+01 +-1.820080100407124846e+01 +-1.524982321799113549e+01 +-1.624899520224715133e+01 +-1.577928760605626302e+01 +-1.827689733075471779e+01 +-1.723333716780135560e+01 +-1.621637955805593734e+01 +-1.622505204508354382e+01 +-1.920500688072428375e+01 +-1.973184484342166556e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.674594070027254133e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.672277259766056545e+01 +-1.773621656763996768e+01 +-1.823720787903685192e+01 +-1.672277259766056545e+01 +-1.922635649125861690e+01 +-1.673085677529565984e+01 +-1.775651912746867467e+01 +-2.273083870283389629e+01 +-1.823673758690692281e+01 +-1.873805297804400638e+01 +-1.524908418974633584e+01 +-1.774363886222296571e+01 +-2.072877267841517934e+01 +-1.677397257584128809e+01 +-1.675671679029955286e+01 +-1.871033085219637471e+01 +-2.074186931354768149e+01 +-1.720576302007934899e+01 +-1.476121399530314626e+01 +-2.023256598729861722e+01 +-1.476121399530314626e+01 +-1.622371151329624439e+01 +-1.769407381584957406e+01 +-1.871400079591393961e+01 +-1.774669984207140772e+01 +-1.575500212791669163e+01 +-1.575941918869449232e+01 +-2.121566138510759103e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.821139996696712515e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.576210879656242447e+01 +-1.724547610597979386e+01 +-1.819105648145679766e+01 +-1.925501931337553074e+01 +-1.871634302503304070e+01 +-1.524908418974633584e+01 +-1.774521524398262429e+01 +-2.017658396155848521e+01 +-1.868351990371633420e+01 +-1.972156315577562680e+01 +-1.922018939185947772e+01 +-1.622371151329624439e+01 +-1.623882026607401130e+01 +-1.476121399530314626e+01 +-1.622331972918252774e+01 +-1.675514122835551589e+01 +-1.576112879427005176e+01 +-1.623117287636750561e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.773489290939097529e+01 +-1.572265874903633431e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.923397562964045449e+01 +-1.919867740239916643e+01 +-1.871400079591393961e+01 +-1.674858455771563470e+01 +-1.723066516839760354e+01 +-2.024358461044586832e+01 +-2.175801482215007709e+01 +-1.575500212791669163e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.577672769096708194e+01 +-1.575112215998505860e+01 +-1.926739285657639300e+01 +-1.970516887963223240e+01 +-1.971495681128613953e+01 +-2.273083870283389629e+01 +-2.175801482215007709e+01 +-1.871564989338683915e+01 +-1.773842904396224185e+01 +-1.772217362413249475e+01 +-1.524908418974633584e+01 +-1.675467789118465944e+01 +-1.773008233168269143e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-2.224000337054214782e+01 +-2.273083870283389629e+01 +-1.576210879656242447e+01 +-1.726222433387699695e+01 +-2.123786065989509098e+01 +-1.867745931589744046e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-2.024740473977704269e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-2.171328788034910318e+01 +-1.575500212791669163e+01 +-2.021681936593007123e+01 +-1.476121399530314626e+01 +-2.017955958427454988e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.775279094209896158e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.672231191301397502e+01 +-1.572916749806838332e+01 +-1.574434717685975293e+01 +-1.722689516238723684e+01 +-1.620993516008241286e+01 +-1.722852944691108235e+01 +-1.476121399530314626e+01 +-2.024725712422599599e+01 +-1.476121399530314626e+01 +-1.723873303077533947e+01 +-1.974961612043972181e+01 +-1.722088396061420212e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.024648514433614466e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-2.222148043750684110e+01 +-1.871287128712486592e+01 +-2.125030255279273206e+01 +-1.874052997644145790e+01 +-1.922489772331579516e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.724838158629343354e+01 +-1.723571963611086133e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624406660119286627e+01 +-1.524869807180282599e+01 +-2.021976207345208110e+01 +-1.922635649125861690e+01 +-1.624683782028248302e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.121748415248153563e+01 +-1.725763223976502658e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623417494482859524e+01 +-1.672844394444672744e+01 +-1.524908418974633584e+01 +-1.672277259766056545e+01 +-1.575500212791669163e+01 +-1.721038905335863589e+01 +-2.075305976463965152e+01 +-1.869908582975853051e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.175801482215007709e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-1.677458289104131950e+01 +-2.023628821070739292e+01 +-1.476121399530314626e+01 +-2.122265700821852263e+01 +-1.922888884520784103e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.926086329552414966e+01 +-1.925406620777335220e+01 +-1.922249952029773823e+01 +-1.476121399530314626e+01 +-1.817135481296195110e+01 +-1.823666718221532079e+01 +-2.121828869553178976e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.771566108757679103e+01 +-1.673413142263268583e+01 +-1.725591159367355942e+01 +-1.820102597697857760e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.173635833472344103e+01 +-2.273083870283389629e+01 +-1.970650839493320916e+01 +-1.624717601381815868e+01 +-2.171413861831982217e+01 +-1.818008777670253906e+01 +-2.273083870283389629e+01 +-1.772660000527323731e+01 +-2.273083870283389629e+01 +-1.970944504185506219e+01 +-2.173635833472344103e+01 +-1.527191419712450049e+01 +-2.222148043750684110e+01 +-1.525525062138791199e+01 +-2.075629790914084793e+01 +-2.224879281313178225e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.720300929030401349e+01 +-1.623882026607401130e+01 +-1.624899520224715133e+01 +-1.575894212839201280e+01 +-1.875860494300633974e+01 +-1.476121399530314626e+01 +-1.868220452112003471e+01 +-1.922703178757360121e+01 +-2.123786065989509098e+01 +-1.624282679516225514e+01 +-1.923046329611622340e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.173342233487688802e+01 +-1.876834414191631595e+01 +-1.624330830693308059e+01 +-1.572265874903633431e+01 +-1.671315867724711879e+01 +-1.672680116746003876e+01 +-1.871790112676456985e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.823666718221532079e+01 +-1.476121399530314626e+01 +-2.022454497886462121e+01 +-1.624683782028248302e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-2.069497008367253699e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.820424813924134710e+01 +-1.524869807180282599e+01 +-1.827836839495897436e+01 +-1.524147195489286943e+01 +-1.771332661399253539e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.927250449889735151e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.623488952797946538e+01 +-1.623856472485708480e+01 +-2.222221915589203434e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.769407381584957406e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-2.023583461048865217e+01 +-2.173256547040595166e+01 +-1.823413916523201550e+01 +-2.173256547040595166e+01 +-1.721570613406404959e+01 +-1.623068968097969034e+01 +-2.021519057401021868e+01 +-1.524869807180282599e+01 +-1.726515319491090494e+01 +-2.075981042083337869e+01 +-1.476121399530314626e+01 +-2.223497516213418734e+01 +-2.123786065989509098e+01 +-2.071590189368102841e+01 +-1.675467789118465944e+01 +-1.723337861536438709e+01 +-1.972607207221627590e+01 +-1.672844394444672744e+01 +-1.476121399530314626e+01 +-2.172450756719466369e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.624899520224715133e+01 +-1.820856975016894097e+01 +-2.125419824025551563e+01 +-1.572265874903633431e+01 +-1.820651540836642823e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.672896781870896987e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.823035575667507047e+01 +-1.674964043676191849e+01 +-1.927250449889735151e+01 +-1.624654151831733984e+01 +-1.672277259766056545e+01 +-1.623875074298816301e+01 +-1.775935426900304037e+01 +-1.823819169589564027e+01 +-1.723706637276084663e+01 +-1.718676376481657897e+01 +-1.826707834580034984e+01 +-1.722026432974114485e+01 +-2.173458106512043742e+01 +-1.973021702507443109e+01 +-1.624707538080579994e+01 +-1.524908418974633584e+01 +-1.769634941062717459e+01 +-1.624899520224715133e+01 +-1.772098137252477912e+01 +-1.875651912895417439e+01 +-1.823803204817916068e+01 +-2.273083870283389629e+01 +-1.771768783914798817e+01 +-1.773039826822828857e+01 +-1.924092727116990886e+01 +-1.621747192744323129e+01 +-1.871033085219637471e+01 +-1.524908418974633584e+01 +-1.625713552678327289e+01 +-2.070746370004844294e+01 +-1.769184933493467682e+01 +-1.922760590036968154e+01 +-1.476121399530314626e+01 +-2.171328788034910318e+01 +-1.772660000527323731e+01 +-1.817135481296195110e+01 +-1.673668984784076841e+01 +-1.620993516008241286e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.622371151329624439e+01 +-1.576210879656242447e+01 +-1.768979362731587912e+01 +-1.774353575309854136e+01 +-2.018535029303951234e+01 +-1.971058156569212372e+01 +-1.675514122835551589e+01 +-2.122376992995476641e+01 +-2.126350578254113799e+01 +-1.624282679516225514e+01 +-1.869924242087718014e+01 +-2.120411165261994668e+01 +-1.622331972918252774e+01 +-1.575941674449784813e+01 +-1.623234098707541051e+01 +-1.676170940838562728e+01 +-1.922274107285604927e+01 +-1.476121399530314626e+01 +-1.621828610441836460e+01 +-1.875341583043020677e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.679348766584768171e+01 +-1.624899520224715133e+01 +-1.624899520224715133e+01 +-1.726222433387699695e+01 +-1.575500212791669163e+01 +-1.770895215237342768e+01 +-1.575500212791669163e+01 +-1.971468774030995874e+01 +-1.624707538080579994e+01 +-1.524908418974633584e+01 +-2.023810363926413913e+01 +-1.575941674449784813e+01 +-1.574365229112152953e+01 +-2.273083870283389629e+01 +-1.723875790085773829e+01 +-1.625088400431843993e+01 +-1.623068968097969034e+01 +-1.574365229112152953e+01 +-1.824291054264652701e+01 +-2.175361348163336217e+01 +-1.972698265110225790e+01 +-2.221559445291741852e+01 +-1.770445791497500210e+01 +-1.872623143483904329e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.975959434854120289e+01 +-1.575894212839201280e+01 +-1.524869807180282599e+01 +-1.675298025263422019e+01 +-1.476121399530314626e+01 +-1.872023028932996169e+01 +-2.175801482215007709e+01 +-1.871786081288957249e+01 +-1.919973922861363747e+01 +-2.123786065989509098e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.820386290593106438e+01 +-1.624011578680249457e+01 +-1.476121399530314626e+01 +-1.622853806956639389e+01 +-1.524908418974633584e+01 +-2.126350578254113799e+01 +-1.524908418974633584e+01 +-1.626681877602456794e+01 +-1.819631526220892326e+01 +-2.222015462387604856e+01 +-1.874221154287826252e+01 +-1.624899520224715133e+01 +-1.724838158629343354e+01 +-1.877886530571909773e+01 +-1.573659808073013977e+01 +-1.672231191301397502e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-2.120337326194452743e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.673140919300280061e+01 +-1.825252121023862273e+01 +-1.872742342300878704e+01 +-1.573671015552776176e+01 +-1.574365229112152953e+01 +-1.675514122835551589e+01 +-2.222517495552305533e+01 +-1.871697671652540507e+01 +-1.922630055840296137e+01 +-2.122368067512150347e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.573626404857689742e+01 +-1.721570613406404959e+01 +-1.772218610171639597e+01 +-1.874988389985277237e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.823588982822722926e+01 +-1.970358716881368366e+01 +-1.576112879427005176e+01 +-1.823175257557203821e+01 +-1.673668984784076841e+01 +-1.623446448135860720e+01 +-1.673231300605496230e+01 +-2.022457298546748206e+01 +-2.174480670537584004e+01 +-2.074120393459206468e+01 +-2.074144729451301927e+01 +-1.968417849024763555e+01 +-1.930142098750851787e+01 +-1.718449325134605132e+01 +-1.574715332371951604e+01 +-1.775147759897073030e+01 +-1.772217362413249475e+01 +-1.972106199419392070e+01 +-2.171360073915518285e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.624707538080579994e+01 +-1.671451113996016602e+01 +-1.820412546821324895e+01 +-1.524908418974633584e+01 +-1.870084868698528169e+01 +-1.476121399530314626e+01 +-2.122376992995476641e+01 +-1.672379217782949112e+01 +-1.576210879656242447e+01 +-1.623856472485708480e+01 +-1.823666718221532079e+01 +-2.222221915589203434e+01 +-1.823610021196117614e+01 +-2.126350578254113799e+01 +-1.922018939185947772e+01 +-1.670487396547499870e+01 +-1.924868480417783800e+01 +-2.170356701767724772e+01 +-1.623603104653742335e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.676064322573188647e+01 +-1.673668984784076841e+01 +-2.122697073570241955e+01 +-1.624282679516225514e+01 +-1.775651912746867467e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.623068968097969034e+01 +-2.173346903911949468e+01 +-1.621747192744323129e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.524908418974633584e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-1.671297194492850124e+01 +-1.621747192744323129e+01 +-1.972915414877020268e+01 +-1.774059601188016799e+01 +-1.871786081288957249e+01 +-2.023158284396985707e+01 +-1.820013411746548115e+01 +-1.973803425252446786e+01 +-1.823799528303206330e+01 +-1.874590785030669693e+01 +-1.671627868033377950e+01 +-2.224879281313178225e+01 +-1.476121399530314626e+01 +-1.776094105428315117e+01 +-1.476121399530314626e+01 +-1.771312582097505484e+01 +-2.120447254404176363e+01 +-1.821729800949909261e+01 +-1.924387492540852307e+01 +-1.574241281237977041e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-1.826576947263134798e+01 +-2.172450756719466369e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.672844394444672744e+01 +-1.624968019918323137e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.771021753149668143e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.726222433387699695e+01 +-1.771390235315651651e+01 +-1.774299265990639185e+01 +-1.677241967275444878e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.818759384776939925e+01 +-1.677664731538655829e+01 +-2.171641102924940014e+01 +-1.624899520224715133e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.822786225379795866e+01 +-1.524908418974633584e+01 +-1.624282679516225514e+01 +-1.524869807180282599e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.625979594396532590e+01 +-2.074469427287759160e+01 +-1.674686990972566747e+01 +-1.673668984784076841e+01 +-1.723337861536438709e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.775651912746867467e+01 +-1.721014515272629097e+01 +-2.074186931354768149e+01 +-1.524147195489286943e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.868365538695850248e+01 +-1.972683403807351965e+01 +-1.773976826223668013e+01 +-1.524908418974633584e+01 +-1.624654151831733984e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.820549918395557043e+01 +-1.622853806956639389e+01 +-1.526710153869924547e+01 +-1.819540782969806614e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.774411771829201356e+01 +-1.820080100407124846e+01 +-1.524908418974633584e+01 +-1.823588982822722926e+01 +-1.721862556337221406e+01 +-1.775651912746867467e+01 +-1.573671015552776176e+01 +-1.871092833847788839e+01 +-1.476121399530314626e+01 +-1.623961616816850295e+01 +-1.574338251301774250e+01 +-1.676520794583778340e+01 +-1.476121399530314626e+01 +-1.724838158629343354e+01 +-2.024725712422599599e+01 +-1.476121399530314626e+01 +-1.925779813747088909e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.623117287636750561e+01 +-1.772219780000752110e+01 +-1.575894212839201280e+01 +-2.173256547040595166e+01 +-2.072051831363942398e+01 +-1.673140919300280061e+01 +-1.671039843285468507e+01 +-1.675574501360046042e+01 +-1.970122614985661258e+01 +-2.020027519408485972e+01 +-1.722689516238723684e+01 +-2.075629790914084793e+01 +-2.174480670537584004e+01 +-1.719618497250093370e+01 +-1.966923498797700276e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-1.624011578680249457e+01 +-1.822032913902434004e+01 +-1.622331972918252774e+01 +-1.774973138385896121e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.973021702507443109e+01 +-2.021202821606018674e+01 +-1.770736366512549509e+01 +-1.726429041400032105e+01 +-1.872623143483904329e+01 +-1.621671222869046147e+01 +-1.675514122835551589e+01 +-1.874988389985277237e+01 +-1.673668984784076841e+01 +-1.825481272058773285e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672698356923321583e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.171328788034910318e+01 +-1.674428556677437285e+01 +-2.068772940767064838e+01 +-2.022715797649670932e+01 +-1.574365229112152953e+01 +-1.774554124351802997e+01 +-2.021911014269795004e+01 +-2.073545598077364360e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.074572289350636822e+01 +-1.774203301527335697e+01 +-1.820386290593106438e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.921508387039743226e+01 +-1.820412546821324895e+01 +-1.772598974940754957e+01 +-2.221559445291741852e+01 +-1.476121399530314626e+01 +-1.726445732099652020e+01 +-1.826707834580034984e+01 +-1.820424813924134710e+01 +-1.576210879656242447e+01 +-1.575500212791669163e+01 +-1.674438106760842970e+01 +-1.672277259766056545e+01 +-1.524147195489286943e+01 +-2.173256547040595166e+01 +-1.624330830693308059e+01 +-1.871786081288957249e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.721045836495326498e+01 +-1.723051666275072691e+01 +-1.724838158629343354e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.721570613406404959e+01 +-1.922888884520784103e+01 +-1.525525062138791199e+01 +-1.476121399530314626e+01 +-1.919973922861363747e+01 +-2.223627178985864106e+01 +-1.676065916168086645e+01 +-1.573671015552776176e+01 +-1.871039313420287442e+01 +-2.024740473977704269e+01 +-2.124917029005798241e+01 +-1.476121399530314626e+01 +-1.872500739399248104e+01 +-1.624707538080579994e+01 +-1.873028186883542645e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-2.072270607654252927e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.625735786813525507e+01 +-1.726429041400032105e+01 +-1.778407069124168061e+01 +-1.721038905335863589e+01 +-1.628813399185705180e+01 +-1.673668984784076841e+01 +-1.672231191301397502e+01 +-2.273083870283389629e+01 +-2.174480670537584004e+01 +-1.872326162756382573e+01 +-1.573671015552776176e+01 +-1.620363008387797166e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-1.823803204817916068e+01 +-1.476121399530314626e+01 +-2.024903564254980992e+01 +-1.820080100407124846e+01 +-1.971662605177017014e+01 +-1.774530815917752236e+01 +-1.825865399896299479e+01 +-1.823666718221532079e+01 +-1.722000785778043053e+01 +-1.673549760992038316e+01 +-1.524982321799113549e+01 +-1.675467789118465944e+01 +-1.624707538080579994e+01 +-1.723458306422291031e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-2.172683406269010220e+01 +-1.622576612183031131e+01 +-1.672231191301397502e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.524869807180282599e+01 +-1.823035575667507047e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.872072560326711610e+01 +-1.573014140381678772e+01 +-2.224000337054214782e+01 +-1.720263079431909858e+01 +-2.222221915589203434e+01 +-1.772993204690818558e+01 +-1.622576612183031131e+01 +-1.870870647451403457e+01 +-1.574365229112152953e+01 +-1.923302535988793238e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.969302103348667998e+01 +-2.025656428814633614e+01 +-1.672277259766056545e+01 +-1.524908418974633584e+01 +-1.723618582583572234e+01 +-1.722602374936149161e+01 +-1.476121399530314626e+01 +-1.871756951947451952e+01 +-1.476121399530314626e+01 +-2.174480670537584004e+01 +-2.273083870283389629e+01 +-2.070840790829773326e+01 +-2.224879281313178225e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.925882217573040478e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.723390373210351356e+01 +-1.869356163083492461e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.623856472485708480e+01 +-1.922249952029773823e+01 +-1.476121399530314626e+01 +-1.672896781870896987e+01 +-1.725424135558414207e+01 +-1.526710153869924547e+01 +-1.868137327358846633e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-1.970300526692444620e+01 +-2.125030255279273206e+01 +-1.920524975306400961e+01 +-1.875546748398325647e+01 +-1.922649250710232849e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-2.222517495552305533e+01 +-1.723577482454383514e+01 +-1.675923320270453587e+01 +-1.971949602048704264e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.726924897732200037e+01 +-1.870388024134548388e+01 +-2.273083870283389629e+01 +-1.671451113996016602e+01 +-1.476121399530314626e+01 +-1.823247920348312689e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.625908856057943197e+01 +-1.721038905335863589e+01 +-1.624218251951983660e+01 +-1.975277475111823122e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.621671222869046147e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.723875790085773829e+01 +-1.923302535988793238e+01 +-1.572916749806838332e+01 +-1.524869807180282599e+01 +-1.573769824264884676e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.676281926862539606e+01 +-1.922703178757360121e+01 +-1.575941674449784813e+01 +-1.621637955805593734e+01 +-1.823975359216384007e+01 +-1.476121399530314626e+01 +-1.821751378805696220e+01 +-1.772598974940754957e+01 +-1.476121399530314626e+01 +-1.874168635886237055e+01 +-1.524160916598259874e+01 +-1.476121399530314626e+01 +-1.772217362413249475e+01 +-1.625862964291810542e+01 +-1.476121399530314626e+01 +-1.968062728543632645e+01 +-1.574365229112152953e+01 +-1.622569173320911418e+01 +-1.672599108999033035e+01 +-1.823609960693417520e+01 +-1.922635649125861690e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.222221915589203434e+01 +-2.222517495552305533e+01 +-1.921528919064225605e+01 +-1.772993204690818558e+01 +-1.524908418974633584e+01 +-1.773369648049568070e+01 +-2.020823092456854653e+01 +-1.624386184863087834e+01 +-2.125030255279273206e+01 +-1.524908418974633584e+01 +-1.820080100407124846e+01 +-1.922018939185947772e+01 +-1.573671015552776176e+01 +-2.175801482215007709e+01 +-1.576210879656242447e+01 +-1.774227154328873013e+01 +-1.673209625834821068e+01 +-1.821629728268181125e+01 +-1.624282679516225514e+01 +-1.524869807180282599e+01 +-1.917756601686322782e+01 +-1.576158180483365001e+01 +-1.574415113675572009e+01 +-1.575500212791669163e+01 +-2.125030255279273206e+01 +-1.524147195489286943e+01 +-1.623234098707541051e+01 +-1.476121399530314626e+01 +-1.724838158629343354e+01 +-1.675514122835551589e+01 +-1.524908418974633584e+01 +-2.071636052883271617e+01 +-1.671566875366153226e+01 +-1.824698085472326881e+01 +-1.976333010173202709e+01 +-1.526641710362425641e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.171360073915518285e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.724012703459143836e+01 +-1.524147195489286943e+01 +-1.576210879656242447e+01 +-1.670487396547499870e+01 +-1.820412546821324895e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.721519861582816446e+01 +-1.526710153869924547e+01 +-1.772217362413249475e+01 +-1.624899520224715133e+01 +-1.672896781870896987e+01 +-1.823666718221532079e+01 +-1.725010018486193530e+01 +-1.674469191097587739e+01 +-1.524908418974633584e+01 +-1.874590785030669693e+01 +-2.273083870283389629e+01 +-2.123623683795330308e+01 +-2.175801482215007709e+01 +-1.675671679029955286e+01 +-1.970516887963223240e+01 +-1.524908418974633584e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.575500212791669163e+01 +-1.773023309443498263e+01 +-1.973167600370641850e+01 +-1.676170940838562728e+01 +-1.823035575667507047e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.775154295529406667e+01 +-1.871092833847788839e+01 +-1.572854899885174440e+01 +-2.124288580546417649e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.524908418974633584e+01 +-2.074366420331992700e+01 +-1.673085677529565984e+01 +-1.672680116746003876e+01 +-1.624707538080579994e+01 +-1.821934196457588939e+01 +-2.223497516213418734e+01 +-1.674438106760842970e+01 +-1.773015376045774261e+01 +-1.476121399530314626e+01 +-1.976467867189250782e+01 +-1.723965981846117757e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.723931309426058078e+01 +-1.575891057177604360e+01 +-1.671515213673033173e+01 +-1.476121399530314626e+01 +-1.574715332371951604e+01 +-1.820080100407124846e+01 +-1.671720549522785859e+01 +-1.574715332371951604e+01 +-1.825279426501182911e+01 +-2.020425564848582667e+01 +-2.273083870283389629e+01 +-1.672844394444672744e+01 +-2.023796262335018881e+01 +-2.071481865277864642e+01 +-1.577672769096708194e+01 +-1.874316074297056289e+01 +-1.672231191301397502e+01 +-1.775200650259733237e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-2.222517495552305533e+01 +-1.722868364608472902e+01 +-1.723337861536438709e+01 +-2.273083870283389629e+01 +-1.623488952797946538e+01 +-1.974250418879194058e+01 +-1.823035575667507047e+01 +-2.175801482215007709e+01 +-1.575941674449784813e+01 +-1.720468235604566232e+01 +-1.920045303328924646e+01 +-1.623875074298816301e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.024725712422599599e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-2.027344163574385405e+01 +-1.871676447370300522e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.922018939185947772e+01 +-2.073893354297136327e+01 +-1.476121399530314626e+01 +-1.773279106632562119e+01 +-2.022098938667497237e+01 +-2.273083870283389629e+01 +-1.672379217782949112e+01 +-1.869356163083492461e+01 +-2.026073723432901019e+01 +-1.821642491849179635e+01 +-1.772791459499736533e+01 +-1.575941674449784813e+01 +-1.675671679029955286e+01 +-1.771093898840483405e+01 +-1.624679776812607912e+01 +-1.524908418974633584e+01 +-1.575480887862977042e+01 +-1.726829177868622622e+01 +-1.575941918869449232e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.173133788547372447e+01 +-1.969802150682075847e+01 +-1.874579534888891885e+01 +-1.774554124351802997e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.621637955805593734e+01 +-2.273083870283389629e+01 +-2.024198459128254513e+01 +-1.873178379202328969e+01 +-1.476121399530314626e+01 +-1.670886511577105082e+01 +-1.871103636114980873e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.622853806956639389e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.969399057477417259e+01 +-1.969084690959517303e+01 +-1.623426684153398014e+01 +-1.476121399530314626e+01 +-1.723337861536438709e+01 +-1.524908418974633584e+01 +-1.820080100407124846e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.720468235604566232e+01 +-1.872344736253824848e+01 +-1.575500212791669163e+01 +-1.767578341615688942e+01 +-1.823609960693417520e+01 +-1.919208032413412113e+01 +-1.526710153869924547e+01 +-1.970700460729785775e+01 +-1.524908418974633584e+01 +-1.573773743783412904e+01 +-1.772217362413249475e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.572162754304351395e+01 +-1.574715332371951604e+01 +-1.524908418974633584e+01 +-1.621815045711349867e+01 +-1.476121399530314626e+01 +-1.623636021641668492e+01 +-1.769735274376119705e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.524908418974633584e+01 +-2.174024516559435938e+01 +-1.673668984784076841e+01 +-1.876956815750871144e+01 +-1.724263414955195373e+01 +-1.827357272249275510e+01 +-1.823609960693417520e+01 +-2.124424875277645697e+01 +-1.572265874903633431e+01 +-1.925584560412848489e+01 +-2.173103492470965037e+01 +-1.820276912767260313e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.525525062138791199e+01 +-1.476121399530314626e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-1.823975359216384007e+01 +-1.922589243129989711e+01 +-2.074144729451301927e+01 +-1.673898015532297734e+01 +-1.622371151329624439e+01 +-1.524908418974633584e+01 +-1.673085677529565984e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.122365804796319111e+01 +-1.968951381459886107e+01 +-1.573671015552776176e+01 +-1.673668984784076841e+01 +-1.871201244839308231e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-2.026170118306490764e+01 +-2.122376992995476641e+01 +-1.769735274376119705e+01 +-2.170922214338252587e+01 +-1.573671015552776176e+01 +-1.676520794583778340e+01 +-1.922228036751121039e+01 +-1.574415113675572009e+01 +-1.823005249013490570e+01 +-1.524869807180282599e+01 +-1.624899520224715133e+01 +-2.173133788547372447e+01 +-1.476121399530314626e+01 +-1.723451286367948398e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.766604857999016787e+01 +-1.922888884520784103e+01 +-1.524908418974633584e+01 +-1.969750509879924749e+01 +-1.476121399530314626e+01 +-1.970058804088185056e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.823803204817916068e+01 +-1.673278235744476916e+01 +-1.524908418974633584e+01 +-1.525525062138791199e+01 +-1.524908418974633584e+01 +-1.675467789118465944e+01 +-1.524908418974633584e+01 +-1.572265874903633431e+01 +-1.524908418974633584e+01 +-1.775936310381216288e+01 +-1.871194095429955340e+01 +-1.572854899885174440e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.772993204690818558e+01 +-1.871092833847788839e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.721570613406404959e+01 +-1.674657900979885383e+01 +-2.173635833472344103e+01 +-1.622685167663187400e+01 +-2.119845234540618151e+01 +-1.524869807180282599e+01 +-1.823975359216384007e+01 +-2.023207472346632940e+01 +-2.022033131282586282e+01 +-1.476121399530314626e+01 +-1.721454399044549177e+01 +-2.173256547040595166e+01 +-1.624899520224715133e+01 +-1.770736366512549509e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.074186931354768149e+01 +-1.476121399530314626e+01 +-1.871634302503304070e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.626689428319512842e+01 +-1.624968019918323137e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.525677914886782283e+01 +-1.476121399530314626e+01 +-1.822750904164951535e+01 +-1.672514086318954796e+01 +-1.970095429079641747e+01 +-1.524908418974633584e+01 +-1.621747192744323129e+01 +-1.575480887862977042e+01 +-1.476121399530314626e+01 +-1.721570613406404959e+01 +-2.125030255279273206e+01 +-1.524908418974633584e+01 +-1.674594070027254133e+01 +-1.672844394444672744e+01 +-1.823803204817916068e+01 +-1.574338251301774250e+01 +-2.221559445291741852e+01 +-1.573014140381678772e+01 +-1.673727645406095377e+01 +-1.769679025414838236e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.924082412716473556e+01 +-1.676520794583778340e+01 +-1.717081539490353137e+01 +-1.721783661017421707e+01 +-2.074186931354768149e+01 +-1.769735274376119705e+01 +-1.973546640326606649e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.772536429342513387e+01 +-2.273083870283389629e+01 +-1.969191323907348945e+01 +-1.476121399530314626e+01 +-1.721862556337221406e+01 +-1.672844394444672744e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.878165064380100802e+01 +-1.476121399530314626e+01 +-2.172648013552934287e+01 +-1.524908418974633584e+01 +-1.867841855307942467e+01 +-2.224000337054214782e+01 +-2.273083870283389629e+01 +-2.223497516213418734e+01 +-1.572265874903633431e+01 +-1.724838158629343354e+01 +-1.969750509879924749e+01 +-1.527090562473298618e+01 +-1.476121399530314626e+01 +-1.721570613406404959e+01 +-1.527093049984081752e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.721519861582816446e+01 +-2.173256547040595166e+01 +-1.624481733919906290e+01 +-1.573014140381678772e+01 +-1.526710153869924547e+01 +-2.121170465044211184e+01 +-1.869554098349383153e+01 +-1.573671015552776176e+01 +-1.874888505650621795e+01 +-1.672277259766056545e+01 +-1.825481272058773285e+01 +-1.873196412259302690e+01 +-1.623488952797946538e+01 +-2.222247508060926791e+01 +-1.918139615868678760e+01 +-1.476121399530314626e+01 +-1.871790112676456985e+01 +-2.222221915589203434e+01 +-1.724899621035856256e+01 +-1.675923320270453587e+01 +-1.526710153869924547e+01 +-1.575147103248868952e+01 +-2.174309903499456098e+01 +-2.021750030591021741e+01 +-1.722481119789010151e+01 +-1.768979362731587912e+01 +-1.771681533385575591e+01 +-1.573671015552776176e+01 +-1.873456338381381414e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.922018939185947772e+01 +-1.524147195489286943e+01 +-1.874257297832982161e+01 +-2.021482934858932623e+01 +-2.273083870283389629e+01 +-1.726429041400032105e+01 +-1.674858455771563470e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.820604855671969347e+01 +-1.621637955805593734e+01 +-1.525677914886782283e+01 +-1.623636021641668492e+01 +-1.624899520224715133e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-1.774039056800624792e+01 +-1.525677914886782283e+01 +-2.175801482215007709e+01 +-1.572854899885174440e+01 +-1.772536429342513387e+01 +-2.122702504987173810e+01 +-2.223627178985864106e+01 +-1.723541585542474408e+01 +-1.722167911736874046e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.722689516238723684e+01 +-1.625473807619719580e+01 +-2.024740473977704269e+01 +-2.222247508060926791e+01 +-1.922635649125861690e+01 +-1.573032571106647381e+01 +-1.871786081288957249e+01 +-1.724012703459143836e+01 +-2.222247508060926791e+01 +-1.772217362413249475e+01 +-1.722857014081084515e+01 +-1.624282679516225514e+01 +-1.527090562473298618e+01 +-1.871197302560942077e+01 +-1.524908418974633584e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.923476556991442266e+01 +-1.675467789118465944e+01 +-1.674860711005826985e+01 +-2.273083870283389629e+01 +-1.723204088983086990e+01 +-1.575480887862977042e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.721519861582816446e+01 +-2.019667253064575974e+01 +-1.673085677529565984e+01 +-1.623882026607401130e+01 +-2.124288580546417649e+01 +-1.572916749806838332e+01 +-2.222517495552305533e+01 +-1.574365229112152953e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.524908418974633584e+01 +-1.772821645400870594e+01 +-1.821160743827642747e+01 +-1.476121399530314626e+01 +-1.820739463176786543e+01 +-2.172683406269010220e+01 +-1.524908418974633584e+01 +-1.722689516238723684e+01 +-1.623117287636750561e+01 +-1.726631940373485108e+01 +-1.976095324312815649e+01 +-1.476121399530314626e+01 +-1.576112879427005176e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.524908418974633584e+01 +-1.723337861536438709e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.675262076126525912e+01 +-1.774227154328873013e+01 +-2.075629790914084793e+01 +-2.175801482215007709e+01 +-1.524982321799113549e+01 +-2.224000337054214782e+01 +-1.624169944267757870e+01 +-2.172450756719466369e+01 +-1.476121399530314626e+01 +-1.969596951090754899e+01 +-1.872085149652250280e+01 +-1.476121399530314626e+01 +-2.222247508060926791e+01 +-1.673085677529565984e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-2.020425564848582667e+01 +-1.924303582026224646e+01 +-1.576210879656242447e+01 +-1.573671015552776176e+01 +-1.573671015552776176e+01 +-2.070075299077823416e+01 +-2.222221915589203434e+01 +-2.070167155452777763e+01 +-1.727127595199632637e+01 +-1.670487396547499870e+01 +-1.772809285813194435e+01 +-1.524869807180282599e+01 +-2.127237396029247662e+01 +-1.673668984784076841e+01 +-1.526710153869924547e+01 +-1.823803204817916068e+01 +-1.576112879427005176e+01 +-1.724547610597979386e+01 +-1.876168441035147794e+01 +-1.671039843285468507e+01 +-2.273083870283389629e+01 +-1.722073389168845026e+01 +-1.823609960693417520e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.273083870283389629e+01 +-2.224000337054214782e+01 +-1.870337548436646102e+01 +-1.672599108999033035e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.576112879427005176e+01 +-2.171351517461918235e+01 +-1.476121399530314626e+01 +-1.623117287636750561e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.672680116746003876e+01 +-1.825215661395933964e+01 +-1.672565088419182899e+01 +-1.626689428319512842e+01 +-1.871583922947093015e+01 +-1.823609960693417520e+01 +-1.974349566987696036e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.773484771647067504e+01 +-1.670487396547499870e+01 +-1.624899520224715133e+01 +-2.171413861831982217e+01 +-1.476121399530314626e+01 +-1.871634302503304070e+01 +-1.876092369850896091e+01 +-1.727167756785197028e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-2.173256547040595166e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.974225329277471275e+01 +-1.673795990030590275e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.922687312300714169e+01 +-1.576210879656242447e+01 +-1.524908418974633584e+01 +-1.674142443227539445e+01 +-2.173256547040595166e+01 +-1.673898015532297734e+01 +-1.476121399530314626e+01 +-2.074120393459206468e+01 +-1.821934196457588939e+01 +-1.772598974940754957e+01 +-1.621637955805593734e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.925144646310489449e+01 +-1.669755482749530628e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.871033085219637471e+01 +-1.823413916523201550e+01 +-1.821672785938211447e+01 +-1.476121399530314626e+01 +-1.575894212839201280e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-2.222517495552305533e+01 +-1.575500212791669163e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.018535029303951234e+01 +-1.575838338479935175e+01 +-1.772598974940754957e+01 +-1.574338251301774250e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.873678990782827114e+01 +-1.770479003022999009e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-1.721988312766665175e+01 +-1.675514122835551589e+01 +-1.623488952797946538e+01 +-1.871771262911069655e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.574338251301774250e+01 +-2.075474167493039701e+01 +-1.719618497250093370e+01 +-1.971495681128613953e+01 +-2.073130225689504869e+01 +-2.018535029303951234e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.122795143893339187e+01 +-2.223497516213418734e+01 +-1.772993204690818558e+01 +-1.624707538080579994e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-1.575894212839201280e+01 +-1.722073389168845026e+01 +-2.021976207345208110e+01 +-2.022454497886462121e+01 +-1.972334968186569526e+01 +-1.526710153869924547e+01 +-1.524160916598259874e+01 +-1.826576947263134798e+01 +-1.675514122835551589e+01 +-1.576677902956226340e+01 +-1.573671015552776176e+01 +-1.624899520224715133e+01 +-1.877787364388593261e+01 +-1.476121399530314626e+01 +-1.870314579694262846e+01 +-1.672277259766056545e+01 +-1.476121399530314626e+01 +-2.024740473977704269e+01 +-1.871786081288957249e+01 +-1.575941674449784813e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.674142443227539445e+01 +-1.625528770361353992e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624968019918323137e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.726507619433597185e+01 +-2.074144729451301927e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.171328788034910318e+01 +-1.725424135558414207e+01 +-1.626701727170046752e+01 +-2.224000337054214782e+01 +-1.820039631745250830e+01 +-1.775790090721342906e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.021281290358027505e+01 +-1.575941674449784813e+01 +-1.721570613406404959e+01 +-1.823609960693417520e+01 +-1.526710153869924547e+01 +-2.173256547040595166e+01 +-2.021976207345208110e+01 +-1.673668984784076841e+01 +-1.926486640768151659e+01 +-1.476121399530314626e+01 +-1.973612332719512708e+01 +-1.820739463176786543e+01 +-2.069865449267033242e+01 +-1.975437993603084053e+01 +-1.770211803953870344e+01 +-1.524908418974633584e+01 +-1.821884064649419344e+01 +-1.476121399530314626e+01 +-1.871092833847788839e+01 +-1.920005122340247539e+01 +-1.623882026607401130e+01 +-1.476121399530314626e+01 +-1.972436302921182616e+01 +-1.524908418974633584e+01 +-1.524869807180282599e+01 +-1.673668984784076841e+01 +-1.724838158629343354e+01 +-1.823035575667507047e+01 +-2.224173453399332345e+01 +-1.677642494883433955e+01 +-2.018230891852952169e+01 +-1.524908418974633584e+01 +-1.572854899885174440e+01 +-1.623488952797946538e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.768979362731587912e+01 +-1.768979362731587912e+01 +-2.172982866688880677e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.273083870283389629e+01 +-1.721038905335863589e+01 +-1.675467789118465944e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.972334968186569526e+01 +-1.525525062138791199e+01 +-1.622569173320911418e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.821837961046745491e+01 +-1.621637955805593734e+01 +-2.071761366734365595e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.772993204690818558e+01 +-1.977035039659860516e+01 +-1.769224685667877495e+01 +-1.823609960693417520e+01 +-1.929007537989079779e+01 +-1.622331972918252774e+01 +-1.574744664573250397e+01 +-1.775651912746867467e+01 +-1.976469295824917793e+01 +-1.823035575667507047e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.621015720338139943e+01 +-1.823609960693417520e+01 +-1.673340478404663045e+01 +-1.476121399530314626e+01 +-1.724838158629343354e+01 +-1.572916749806838332e+01 +-1.524908418974633584e+01 +-1.674084722187516050e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.771965155907956913e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.223497516213418734e+01 +-1.672277259766056545e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.626444537000335089e+01 +-1.526710153869924547e+01 +-1.723227151829067338e+01 +-1.774530815917752236e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.124523402989096610e+01 +-2.273083870283389629e+01 +-1.771445508278171488e+01 +-1.877886530571909773e+01 +-2.223497516213418734e+01 +-1.623961616816850295e+01 +-2.173133788547372447e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.871033085219637471e+01 +-1.574365229112152953e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.721038905335863589e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-2.074469427287759160e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.673689361701794454e+01 +-1.573806653833328539e+01 +-2.124917029005798241e+01 +-1.573671015552776176e+01 +-2.021271273183619499e+01 +-1.973021702507443109e+01 +-1.969392252962956746e+01 +-1.476121399530314626e+01 +-1.922018939185947772e+01 +-2.273083870283389629e+01 +-1.573773743783412904e+01 +-1.577892733665078850e+01 +-2.124062125501495402e+01 +-1.818979266743033207e+01 +-1.721885290559418280e+01 +-1.572916749806838332e+01 +-2.076407489245549698e+01 +-1.871959612929023820e+01 +-1.624011578680249457e+01 +-1.624169944267757870e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-2.171351517461918235e+01 +-1.476121399530314626e+01 +-1.624330830693308059e+01 +-1.524908418974633584e+01 +-2.173458106512043742e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.623603104653742335e+01 +-1.626129712870425337e+01 +-1.572916749806838332e+01 +-1.669025420133567295e+01 +-1.476121399530314626e+01 +-1.823881161717357813e+01 +-2.175801482215007709e+01 +-1.825215661395933964e+01 +-1.621768684890690437e+01 +-1.820172362779080188e+01 +-1.673231300605496230e+01 +-1.672231191301397502e+01 +-1.476121399530314626e+01 +-1.574544230811089029e+01 +-1.721038905335863589e+01 +-1.774353575309854136e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.624707538080579994e+01 +-1.769224685667877495e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-2.023461290750436348e+01 +-1.624899520224715133e+01 +-2.222247508060926791e+01 +-1.623845753025665672e+01 +-1.774353575309854136e+01 +-1.476121399530314626e+01 +-1.624910305126109122e+01 +-1.823035575667507047e+01 +-1.923062226603550329e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-2.069818350443721755e+01 +-2.121856034884517683e+01 +-1.674858455771563470e+01 +-1.775001916423232728e+01 +-1.871400079591393961e+01 +-1.722619671018119547e+01 +-1.476121399530314626e+01 +-1.722371435990219979e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574415113675572009e+01 +-1.674898419055811516e+01 +-1.970928288961624730e+01 +-2.122392136261502316e+01 +-2.173992036335968336e+01 +-1.726446962142870944e+01 +-1.972334968186569526e+01 +-1.672765467633585956e+01 +-1.823035575667507047e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-2.075730237035045533e+01 +-1.525525062138791199e+01 +-1.772218610171639597e+01 +-1.925501931337553074e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.723268737333488687e+01 +-1.868327583019824800e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.674739960707474395e+01 +-1.922888884520784103e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.823609960693417520e+01 +-1.574365229112152953e+01 +-1.869808419478013306e+01 +-1.773786076094055275e+01 +-1.524869807180282599e+01 +-2.123786065989509098e+01 +-1.973589880436112409e+01 +-1.675990043656574358e+01 +-1.624282679516225514e+01 +-1.624707538080579994e+01 +-2.123786065989509098e+01 +-1.825215661395933964e+01 +-1.524908418974633584e+01 +-1.872081342347571109e+01 +-1.823413916523201550e+01 +-1.670886511577105082e+01 +-1.721454399044549177e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.724838158629343354e+01 +-1.672599108999033035e+01 +-1.672599108999033035e+01 +-2.074186931354768149e+01 +-1.970122614985661258e+01 +-1.827241817337270646e+01 +-2.123989527858107351e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-1.920212563707578823e+01 +-1.824686191974634397e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.625473807619719580e+01 +-1.774776769653348651e+01 +-1.572265874903633431e+01 +-1.868213155868149400e+01 +-1.572854899885174440e+01 +-1.677604342440111651e+01 +-1.672277259766056545e+01 +-2.076183154132270658e+01 +-2.273083870283389629e+01 +-1.874579534888891885e+01 +-1.524908418974633584e+01 +-1.624976440436766012e+01 +-1.476121399530314626e+01 +-1.725240580480755881e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.170710933607303517e+01 +-2.223497516213418734e+01 +-1.821629728268181125e+01 +-1.825487142436118759e+01 +-1.970282275053676457e+01 +-1.476121399530314626e+01 +-2.017955958427454988e+01 +-1.624707538080579994e+01 +-1.820080100407124846e+01 +-2.120751464089934402e+01 +-2.122795143893339187e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-2.022715797649670932e+01 +-1.623896172686500350e+01 +-1.826576947263134798e+01 +-1.524908418974633584e+01 +-1.673340478404663045e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.821139996696712515e+01 +-1.476121399530314626e+01 +-1.669916777989973156e+01 +-1.524147195489286943e+01 +-2.124710163036769117e+01 +-1.725438764197365415e+01 +-1.726446962142870944e+01 +-1.524908418974633584e+01 +-2.222221915589203434e+01 +-1.767679293755818648e+01 +-1.773556618231568649e+01 +-1.973167600370641850e+01 +-1.875912412097935800e+01 +-1.476121399530314626e+01 +-1.872487700516799336e+01 +-1.973021702507443109e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-2.123786065989509098e+01 +-1.624707538080579994e+01 +-1.624968019918323137e+01 +-1.776513349709601997e+01 +-1.874590785030669693e+01 +-1.769224685667877495e+01 +-1.676298792294346285e+01 +-1.822070552851752367e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.123409263393473623e+01 +-2.120411165261994668e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.722619671018119547e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.626689428319512842e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.822762149922083452e+01 +-1.770038304100727444e+01 +-2.273083870283389629e+01 +-2.124917029005798241e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.573806653833328539e+01 +-2.123786065989509098e+01 +-1.727105751173519366e+01 +-1.724897098043182098e+01 +-2.024740473977704269e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.972106199419392070e+01 +-2.125030255279273206e+01 +-1.772014412657385662e+01 +-1.524908418974633584e+01 +-1.823609960693417520e+01 +-1.476121399530314626e+01 +-2.075914697405290710e+01 +-2.020823092456854653e+01 +-1.524147195489286943e+01 +-2.071481865277864642e+01 +-1.973817701781753797e+01 +-1.877269480852469741e+01 +-1.774353575309854136e+01 +-1.476121399530314626e+01 +-1.924698564987253135e+01 +-1.776220295724480636e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.973021702507443109e+01 +-2.273083870283389629e+01 +-2.123094112695031654e+01 +-1.674142443227539445e+01 +-1.575134311982780844e+01 +-1.575891057177604360e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-2.123482785441946419e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.621015720338139943e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-2.222247508060926791e+01 +-2.125264215829687942e+01 +-2.174855879880269427e+01 +-1.624330830693308059e+01 +-1.672599108999033035e+01 +-1.723541585542474408e+01 +-2.171143261821722703e+01 +-1.673096835416569661e+01 +-1.524908418974633584e+01 +-1.674724380468661167e+01 +-1.772999389696753170e+01 +-1.476121399530314626e+01 +-1.871197302560942077e+01 +-1.476121399530314626e+01 +-1.672844394444672744e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.674536156598010095e+01 +-1.820424813924134710e+01 +-1.823609960693417520e+01 +-1.572854899885174440e+01 +-1.624899520224715133e+01 +-1.626681877602456794e+01 +-1.575941674449784813e+01 +-1.772993204690818558e+01 +-1.673315204625662389e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.874610668640177380e+01 +-1.627412127218348203e+01 +-1.823925730412619828e+01 +-1.476121399530314626e+01 +-1.769735274376119705e+01 +-1.876917118486435498e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.671227424626173885e+01 +-1.476121399530314626e+01 +-1.774902923630338236e+01 +-2.273083870283389629e+01 +-1.822598789393340013e+01 +-1.574365229112152953e+01 +-2.171413861831982217e+01 +-1.672983728913303381e+01 +-2.221559445291741852e+01 +-1.871033085219637471e+01 +-1.575500212791669163e+01 +-1.624707538080579994e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.819362734021373029e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.575941918869449232e+01 +-1.973817701781753797e+01 +-1.476121399530314626e+01 +-1.876074522544445244e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.574338251301774250e+01 +-2.020566894829939386e+01 +-1.673668984784076841e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.922230874411467383e+01 +-1.575375986092588221e+01 +-2.074823000406804496e+01 +-1.575174991524399992e+01 +-1.773015376045774261e+01 +-1.672059177505631311e+01 +-1.476121399530314626e+01 +-1.820608450387680932e+01 +-2.224000337054214782e+01 +-2.222247508060926791e+01 +-1.526710153869924547e+01 +-1.675671679029955286e+01 +-1.622505204508354382e+01 +-1.524869807180282599e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-1.772809285813194435e+01 +-2.171125522272987496e+01 +-1.674428556677437285e+01 +-1.774530815917752236e+01 +-2.024903564254980992e+01 +-1.672599108999033035e+01 +-1.624968019918323137e+01 +-1.922635649125861690e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.972683403807351965e+01 +-1.874059338647423800e+01 +-1.722868364608472902e+01 +-1.774353575309854136e+01 +-1.624968019918323137e+01 +-1.817135481296195110e+01 +-1.672268167690024754e+01 +-1.724838158629343354e+01 +-1.723780670936824322e+01 +-1.626701727170046752e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.720323520792426564e+01 +-1.672059177505631311e+01 +-1.726222433387699695e+01 +-1.721696622180139258e+01 +-1.524160916598259874e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.222247508060926791e+01 +-1.622331972918252774e+01 +-1.723337861536438709e+01 +-2.173090294339966277e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.774973138385896121e+01 +-1.575891057177604360e+01 +-2.273083870283389629e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.620363008387797166e+01 +-1.576210879656242447e+01 +-1.973803425252446786e+01 +-2.175801482215007709e+01 +-2.023628821070739292e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.823199299782174165e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-2.074186931354768149e+01 +-1.772217362413249475e+01 +-1.476121399530314626e+01 +-1.623117287636750561e+01 +-1.476121399530314626e+01 +-1.675467789118465944e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.919973922861363747e+01 +-2.222247508060926791e+01 +-1.626701727170046752e+01 +-1.871033085219637471e+01 +-1.772660000527323731e+01 +-1.971495681128613953e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.820651540836642823e+01 +-2.125256709170832181e+01 +-1.624707538080579994e+01 +-1.526710153869924547e+01 +-2.273083870283389629e+01 +-1.775651912746867467e+01 +-1.524908418974633584e+01 +-1.576677902956226340e+01 +-1.524908418974633584e+01 +-1.572902897713327164e+01 +-1.575941674449784813e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.821633136274130393e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.476121399530314626e+01 +-2.174480670537584004e+01 +-1.770736366512549509e+01 +-1.625375933158838393e+01 +-1.824856427694206928e+01 +-1.476121399530314626e+01 +-1.621015720338139943e+01 +-2.125256709170832181e+01 +-1.674438106760842970e+01 +-1.624968019918323137e+01 +-1.575894212839201280e+01 +-1.871092833847788839e+01 +-1.626151001147714936e+01 +-1.976269217103936882e+01 +-2.124645296855783982e+01 +-1.924870498974921773e+01 +-1.524908418974633584e+01 +-1.920500688072428375e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.575894212839201280e+01 +-2.072877267841517934e+01 +-1.871287128712486592e+01 +-1.476121399530314626e+01 +-1.622853806956639389e+01 +-1.672599108999033035e+01 +-1.922888884520784103e+01 +-2.172450756719466369e+01 +-2.025119055719394368e+01 +-1.624282679516225514e+01 +-2.124917029005798241e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.626689428319512842e+01 +-1.576638880537286624e+01 +-1.524908418974633584e+01 +-1.523508173933331733e+01 +-2.222221915589203434e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.823666718221532079e+01 +-1.818759384776939925e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723571963611086133e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-2.173205824902895245e+01 +-1.624707538080579994e+01 +-1.672844394444672744e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.872623143483904329e+01 +-1.673668984784076841e+01 +-1.721570613406404959e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.775651912746867467e+01 +-1.476121399530314626e+01 +-1.827326694655673478e+01 +-1.624169944267757870e+01 +-1.573014140381678772e+01 +-2.222247508060926791e+01 +-1.673367770243245545e+01 +-1.919425949831251188e+01 +-2.173346903911949468e+01 +-2.273083870283389629e+01 +-2.174024516559435938e+01 +-1.823063001351340162e+01 +-1.623488952797946538e+01 +-1.924058239804652715e+01 +-1.723104423802037033e+01 +-1.574365229112152953e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.624282679516225514e+01 +-2.068995493598808366e+01 +-1.924673486921324539e+01 +-1.622331972918252774e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.675514122835551589e+01 +-1.970058804088185056e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.823666718221532079e+01 +-1.970849488401433547e+01 +-1.973717178409729911e+01 +-1.724012703459143836e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.871930666366062823e+01 +-2.072250397104227559e+01 +-1.524908418974633584e+01 +-1.624968019918323137e+01 +-1.775250955997267965e+01 +-1.920011515312193850e+01 +-2.024740473977704269e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.823915852722713282e+01 +-1.621828610441836460e+01 +-1.524908418974633584e+01 +-1.822159775500104928e+01 +-1.623856472485708480e+01 +-1.573671015552776176e+01 +-2.224000337054214782e+01 +-2.020027519408485972e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.922635649125861690e+01 +-1.675923320270453587e+01 +-1.721038905335863589e+01 +-2.171225354622955095e+01 +-1.623488952797946538e+01 +-1.525677914886782283e+01 +-1.772999389696753170e+01 +-1.824452030883065135e+01 +-1.723800605715791434e+01 +-1.820080100407124846e+01 +-1.624707538080579994e+01 +-1.820080100407124846e+01 +-2.021271273183619499e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.174480670537584004e+01 +-1.524908418974633584e+01 +-1.572916749806838332e+01 +-1.623845753025665672e+01 +-1.476121399530314626e+01 +-1.873685177238817090e+01 +-1.574365229112152953e+01 +-1.525525062138791199e+01 +-1.725791418346992856e+01 +-1.623619700210172567e+01 +-2.224000337054214782e+01 +-1.920850789550599202e+01 +-1.524869807180282599e+01 +-1.727583831085261679e+01 +-1.524869807180282599e+01 +-2.222517495552305533e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.827341417966046322e+01 +-1.572902897713327164e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.871033085219637471e+01 +-1.920500688072428375e+01 +-1.971826634294492209e+01 +-2.173635833472344103e+01 +-1.575174991524399992e+01 +-1.476121399530314626e+01 +-2.122170482463785390e+01 +-1.572916749806838332e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.021748338020809399e+01 +-2.019281052868158710e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.221559445291741852e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.876074522544445244e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.625473807619719580e+01 +-1.871790112676456985e+01 +-1.673898015532297734e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.726446962142870944e+01 +-2.273083870283389629e+01 +-1.524147195489286943e+01 +-1.524908418974633584e+01 +-1.524982321799113549e+01 +-1.623875074298816301e+01 +-1.476121399530314626e+01 +-2.123786065989509098e+01 +-1.726429041400032105e+01 +-1.771093898840483405e+01 +-1.969972037292302858e+01 +-1.871033085219637471e+01 +-2.273083870283389629e+01 +-1.576677902956226340e+01 +-1.721038905335863589e+01 +-1.674085584015239547e+01 +-1.673668984784076841e+01 +-1.869124224803620393e+01 +-1.923891868219538637e+01 +-1.573671015552776176e+01 +-2.023566328571955353e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.173635833472344103e+01 +-1.476121399530314626e+01 +-1.769266577804374663e+01 +-1.676956333088060802e+01 +-1.672059177505631311e+01 +-1.820412546821324895e+01 +-1.624899520224715133e+01 +-1.673668984784076841e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.671733069571933683e+01 +-1.524869807180282599e+01 +-1.572916749806838332e+01 +-2.222221915589203434e+01 +-1.778438927059725216e+01 +-1.476121399530314626e+01 +-2.023256598729861722e+01 +-1.872893183157854935e+01 +-1.871287128712486592e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.624406660119286627e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.726071583662074360e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-1.723541585542474408e+01 +-1.524908418974633584e+01 +-2.224000337054214782e+01 +-1.922340401335920035e+01 +-1.573671015552776176e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.973021702507443109e+01 +-2.273083870283389629e+01 +-1.820080100407124846e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-2.025119055719394368e+01 +-1.524908418974633584e+01 +-1.623961616816850295e+01 +-1.626689428319512842e+01 +-1.672514086318954796e+01 +-1.923049726467222342e+01 +-2.174480670537584004e+01 +-2.120524907987791252e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.723618582583572234e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.572916749806838332e+01 +-1.973021702507443109e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575891057177604360e+01 +-1.717874200733868051e+01 +-1.774508080035682767e+01 +-1.824890361704521879e+01 +-1.874728026241506385e+01 +-1.674594070027254133e+01 +-1.874535488267139272e+01 +-1.672599108999033035e+01 +-2.071071419373933864e+01 +-1.575480887862977042e+01 +-1.820013411746548115e+01 +-1.526710153869924547e+01 +-1.524869807180282599e+01 +-1.927879141502761939e+01 +-1.821629728268181125e+01 +-1.476121399530314626e+01 +-2.024740473977704269e+01 +-1.476121399530314626e+01 +-1.871564989338683915e+01 +-1.673668984784076841e+01 +-1.526710153869924547e+01 +-1.772947864854536704e+01 +-1.672277259766056545e+01 +-2.273083870283389629e+01 +-2.223497516213418734e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.623603104653742335e+01 +-2.273083870283389629e+01 +-1.572854899885174440e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.772194129341725954e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.768380837052382049e+01 +-1.774227154328873013e+01 +-1.674142443227539445e+01 +-1.524908418974633584e+01 +-1.775316746847640204e+01 +-1.721570613406404959e+01 +-1.674594070027254133e+01 +-2.019876704091832664e+01 +-1.871790112676456985e+01 +-2.222247508060926791e+01 +-1.524869807180282599e+01 +-1.922018939185947772e+01 +-1.672231191301397502e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.623068968097969034e+01 +-1.974848545678862877e+01 +-1.674469191097587739e+01 +-1.670886511577105082e+01 +-1.624899520224715133e+01 +-1.524908418974633584e+01 +-1.970849488401433547e+01 +-1.573671015552776176e+01 +-1.624282679516225514e+01 +-1.769879203300193282e+01 +-2.119607287913738247e+01 +-1.773582030646098673e+01 +-1.823413916523201550e+01 +-2.126466297767604274e+01 +-2.273083870283389629e+01 +-1.674743599578497566e+01 +-2.125030255279273206e+01 +-2.273083870283389629e+01 +-1.575500212791669163e+01 +-2.175801482215007709e+01 +-1.575941674449784813e+01 +-1.975507291290928436e+01 +-2.222221915589203434e+01 +-2.273083870283389629e+01 +-1.673768701327504260e+01 +-1.476121399530314626e+01 +-1.821629728268181125e+01 +-2.023256598729861722e+01 +-1.476121399530314626e+01 +-1.774837199908511565e+01 +-1.576210879656242447e+01 +-1.721038905335863589e+01 +-1.624899520224715133e+01 +-2.026488107021837237e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-1.524869807180282599e+01 +-1.525525062138791199e+01 +-1.524908418974633584e+01 +-1.575593191261256365e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-2.123786065989509098e+01 +-1.827341417966046322e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.816106932634765059e+01 +-1.476121399530314626e+01 +-1.976269217103936882e+01 +-1.722689516238723684e+01 +-1.676956333088060802e+01 +-1.574415113675572009e+01 +-1.476121399530314626e+01 +-1.868220452112003471e+01 +-1.575480887862977042e+01 +-1.821160743827642747e+01 +-1.918139615868678760e+01 +-2.071721687448214766e+01 +-1.525525062138791199e+01 +-1.624899520224715133e+01 +-1.873965512608216599e+01 +-1.872072560326711610e+01 +-1.524908418974633584e+01 +-2.222221915589203434e+01 +-1.623603104653742335e+01 +-1.575591656132124463e+01 +-1.822273779422356199e+01 +-1.970516887963223240e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.821846213908986911e+01 +-1.621747192744323129e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.823065404630386865e+01 +-1.868327583019824800e+01 +-1.575941674449784813e+01 +-1.572265874903633431e+01 +-2.069332372199345116e+01 +-1.672231191301397502e+01 +-1.525677914886782283e+01 +-1.721093810923069256e+01 +-1.771891055676373128e+01 +-1.922230874411467383e+01 +-2.075629790914084793e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-2.223497516213418734e+01 +-2.273083870283389629e+01 +-1.823588982822722926e+01 +-1.524908418974633584e+01 +-1.672599108999033035e+01 +-1.675514122835551589e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-1.626666788901153993e+01 +-1.573671015552776176e+01 +-2.018535029303951234e+01 +-1.574338251301774250e+01 +-1.623117287636750561e+01 +-1.525677914886782283e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.126350578254113799e+01 +-1.624169944267757870e+01 +-1.925501931337553074e+01 +-1.476121399530314626e+01 +-1.919425949831251188e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.975281661553279022e+01 +-1.769224685667877495e+01 +-1.774388054094312750e+01 +-1.927341269355112630e+01 +-1.476121399530314626e+01 +-1.669755482749530628e+01 +-1.772999389696753170e+01 +-1.623856472485708480e+01 +-1.524982321799113549e+01 +-1.721862556337221406e+01 +-2.174480670537584004e+01 +-1.476121399530314626e+01 +-2.023256598729861722e+01 +-1.476121399530314626e+01 +-1.623117287636750561e+01 +-1.624282679516225514e+01 +-2.273083870283389629e+01 +-1.673096835416569661e+01 +-2.273083870283389629e+01 +-1.672988915214743955e+01 +-1.675514122835551589e+01 +-2.123786065989509098e+01 +-2.017658396155848521e+01 +-1.973817701781753797e+01 +-1.723541585542474408e+01 +-1.718449325134605132e+01 +-1.825481272058773285e+01 +-2.125957170867966894e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.674094719953384569e+01 +-1.968417849024763555e+01 +-1.572854899885174440e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-1.722000785778043053e+01 +-2.224000337054214782e+01 +-2.172450756719466369e+01 +-1.624707538080579994e+01 +-1.673413142263268583e+01 +-2.224000337054214782e+01 +-1.825194076241419694e+01 +-2.074186931354768149e+01 +-1.721038905335863589e+01 +-1.624707538080579994e+01 +-1.524908418974633584e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.673609137789295787e+01 +-2.222247508060926791e+01 +-2.071112408792075854e+01 +-1.871564989338683915e+01 +-1.476121399530314626e+01 +-2.123786065989509098e+01 +-1.476121399530314626e+01 +-1.524160916598259874e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.575480887862977042e+01 +-1.676170940838562728e+01 +-2.222148043750684110e+01 +-2.070628549455068779e+01 +-1.971437931508216934e+01 +-1.725591159367355942e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.624707538080579994e+01 +-1.573773743783412904e+01 +-1.972930357370962184e+01 +-1.723665742023250047e+01 +-1.773842904396224185e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.676170940838562728e+01 +-1.672277259766056545e+01 +-1.524908418974633584e+01 +-1.672599108999033035e+01 +-1.624707538080579994e+01 +-1.575500212791669163e+01 +-1.624282679516225514e+01 +-1.822645957363882019e+01 +-2.273083870283389629e+01 +-1.720263079431909858e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.924534335230343274e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.674858455771563470e+01 +-1.920745179096544319e+01 +-1.576210879656242447e+01 +-2.075629790914084793e+01 +-1.674142443227539445e+01 +-1.524908418974633584e+01 +-1.871748086511768605e+01 +-1.525525062138791199e+01 +-1.672896781870896987e+01 +-1.476121399530314626e+01 +-1.525525062138791199e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.022393129704409631e+01 +-1.720789971422844289e+01 +-1.624899520224715133e+01 +-1.624282679516225514e+01 +-1.977197821896778862e+01 +-1.823808337526899592e+01 +-1.874988389985277237e+01 +-1.774607709853776427e+01 +-1.524908418974633584e+01 +-2.224000337054214782e+01 +-1.721862556337221406e+01 +-1.476121399530314626e+01 +-2.021644879470475331e+01 +-2.074120393459206468e+01 +-1.772821645400870594e+01 +-1.820488902360093775e+01 +-1.476121399530314626e+01 +-1.575480887862977042e+01 +-1.524908418974633584e+01 +-1.926739285657639300e+01 +-1.674527510337110670e+01 +-1.723549805565504300e+01 +-1.575174991524399992e+01 +-1.624707538080579994e+01 +-1.623488952797946538e+01 +-2.071481865277864642e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-1.771064255648643027e+01 +-1.574365229112152953e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.524147195489286943e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.820412546821324895e+01 +-1.524908418974633584e+01 +-1.720468235604566232e+01 +-1.476121399530314626e+01 +-1.672514086318954796e+01 +-1.970358716881368366e+01 +-1.823609960693417520e+01 +-1.524147195489286943e+01 +-1.970144074704691661e+01 +-1.622331972918252774e+01 +-1.877492331070815368e+01 +-1.524147195489286943e+01 +-1.920745436286413010e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-2.173992036335968336e+01 +-1.524908418974633584e+01 +-1.719710439581519879e+01 +-1.575941674449784813e+01 +-1.774530815917752236e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575838338479935175e+01 +-1.524908418974633584e+01 +-1.918583301665278995e+01 +-1.774041199586963913e+01 +-1.623255041049284131e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.675148773309341976e+01 +-1.823666718221532079e+01 +-1.672985465088941837e+01 +-2.224000337054214782e+01 +-1.575838338479935175e+01 +-1.476121399530314626e+01 +-1.726113370611358988e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-2.173256547040595166e+01 +-2.024129746737908775e+01 +-1.924342982989376694e+01 +-1.476121399530314626e+01 +-1.723656938978198383e+01 +-2.175801482215007709e+01 +-2.273083870283389629e+01 +-2.072698087848790038e+01 +-1.624968019918323137e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.573806653833328539e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-2.173133788547372447e+01 +-1.874523596264787173e+01 +-1.622853806956639389e+01 +-1.624707538080579994e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.575500212791669163e+01 +-1.623896172686500350e+01 +-2.125030255279273206e+01 +-1.624707538080579994e+01 +-2.273083870283389629e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.623446448135860720e+01 +-1.772821645400870594e+01 +-1.476121399530314626e+01 +-1.870084868698528169e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-1.527093049984081752e+01 +-1.476121399530314626e+01 +-1.823666718221532079e+01 +-1.524908418974633584e+01 +-1.525525062138791199e+01 +-2.024181817863501109e+01 +-1.924092727116990886e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624406660119286627e+01 +-1.526710153869924547e+01 +-1.672599108999033035e+01 +-2.273083870283389629e+01 +-1.625473807619719580e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-1.572916749806838332e+01 +-1.576158180483365001e+01 +-1.968584134518410522e+01 +-2.173256547040595166e+01 +-1.476121399530314626e+01 +-2.018535029303951234e+01 +-1.476121399530314626e+01 +-1.673791297006278711e+01 +-1.476121399530314626e+01 +-1.976269217103936882e+01 +-1.917640145747247615e+01 +-1.823413916523201550e+01 +-1.524869807180282599e+01 +-2.120447254404176363e+01 +-2.023158284396985707e+01 +-1.524908418974633584e+01 +-1.774499545346590779e+01 +-1.524869807180282599e+01 +-1.672680116746003876e+01 +-1.575500212791669163e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.576158180483365001e+01 +-1.768409224687601622e+01 +-1.775097497601617391e+01 +-1.723452241439588661e+01 +-1.726222433387699695e+01 +-1.623488952797946538e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-2.173635833472344103e+01 +-1.524147195489286943e+01 +-1.524908418974633584e+01 +-2.024740473977704269e+01 +-1.573773743783412904e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.525525062138791199e+01 +-1.823035575667507047e+01 +-2.173256547040595166e+01 +-1.524908418974633584e+01 +-1.772287144282779181e+01 +-2.022849058332539585e+01 +-1.524869807180282599e+01 +-1.672277259766056545e+01 +-1.775701433569765086e+01 +-2.273083870283389629e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-2.019182073399973731e+01 +-2.173992036335968336e+01 +-2.173635833472344103e+01 +-1.524908418974633584e+01 +-1.673668984784076841e+01 +-2.071368585422325381e+01 +-1.624654151831733984e+01 +-2.125256709170832181e+01 +-1.476121399530314626e+01 +-1.922888884520784103e+01 +-1.624406660119286627e+01 +-1.476121399530314626e+01 +-1.725710868371477247e+01 +-1.524147195489286943e+01 +-1.624707538080579994e+01 +-1.524869807180282599e+01 +-1.675514122835551589e+01 +-1.820928192064918250e+01 +-1.723337861536438709e+01 +-1.726222433387699695e+01 +-2.224879281313178225e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.768979362731587912e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.120524907987791252e+01 +-1.572854899885174440e+01 +-1.725912593207634060e+01 +-1.575891057177604360e+01 +-1.527090562473298618e+01 +-1.823975359216384007e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.975856682857991231e+01 +-2.273083870283389629e+01 +-1.876693734532868163e+01 +-1.771021753149668143e+01 +-1.524869807180282599e+01 +-1.719205678833346340e+01 +-1.575500212791669163e+01 +-2.075629790914084793e+01 +-2.017955958427454988e+01 +-2.126466297767604274e+01 +-1.821613451208373036e+01 +-1.476121399530314626e+01 +-1.922068014464234764e+01 +-1.476121399530314626e+01 +-1.868010298287624948e+01 +-1.524869807180282599e+01 +-1.775676692016372016e+01 +-1.919734672180506507e+01 +-1.524869807180282599e+01 +-1.624707538080579994e+01 +-2.126350578254113799e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.627206085421737924e+01 +-1.572854899885174440e+01 +-1.673921173506978732e+01 +-1.724429200657408146e+01 +-1.876917118486435498e+01 +-1.876681014941510739e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.922888884520784103e+01 +-1.526710153869924547e+01 +-2.075629790914084793e+01 +-2.222221915589203434e+01 +-1.727854539992539529e+01 +-1.674670068125587008e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.773287345463046449e+01 +-1.719618497250093370e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.674148033189216989e+01 +-1.624169944267757870e+01 +-1.922230874411467383e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.623117287636750561e+01 +-2.122803773153451701e+01 +-1.922018939185947772e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.068864281997302967e+01 +-1.575941674449784813e+01 +-1.721570613406404959e+01 +-1.723780670936824322e+01 +-1.476121399530314626e+01 +-1.822318912813950575e+01 +-1.673668984784076841e+01 +-1.575894212839201280e+01 +-1.823666718221532079e+01 +-1.575972994744486400e+01 +-1.822273779422356199e+01 +-1.524908418974633584e+01 +-1.973975127253443418e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.525677914886782283e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.820856975016894097e+01 +-2.222221915589203434e+01 +-1.820809338267425304e+01 +-1.623603104653742335e+01 +-1.577707129818166365e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.921085533507093146e+01 +-1.526710153869924547e+01 +-1.575941918869449232e+01 +-1.771293010760421183e+01 +-1.626907270837495290e+01 +-1.673668984784076841e+01 +-1.866682818321951132e+01 +-1.926739285657639300e+01 +-1.818759384776939925e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.676170940838562728e+01 +-1.476121399530314626e+01 +-2.174480670537584004e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.621637955805593734e+01 +-1.624707538080579994e+01 +-2.273083870283389629e+01 +-1.524869807180282599e+01 +-1.721783758910225259e+01 +-1.772217362413249475e+01 +-1.672844394444672744e+01 +-2.075629790914084793e+01 +-1.626689428319512842e+01 +-1.672277259766056545e+01 +-1.673096835416569661e+01 +-1.623856472485708480e+01 +-2.121865855027484571e+01 +-1.872057276610575016e+01 +-1.672277259766056545e+01 +-1.675467789118465944e+01 +-1.823803204817916068e+01 +-2.222221915589203434e+01 +-2.070854355367512056e+01 +-1.476121399530314626e+01 +-1.573769824264884676e+01 +-2.273083870283389629e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.574415113675572009e+01 +-1.820386290593106438e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.874579534888891885e+01 +-1.575223534285978566e+01 +-1.723051666275072691e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-2.222517495552305533e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.922018939185947772e+01 +-1.623488952797946538e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.623327208010990574e+01 +-1.722157240776754605e+01 +-1.621747192744323129e+01 +-1.675514122835551589e+01 +-2.273083870283389629e+01 +-1.624282679516225514e+01 +-1.774530815917752236e+01 +-1.724335290286656175e+01 +-2.173133788547372447e+01 +-1.721862556337221406e+01 +-1.575941674449784813e+01 +-2.222247508060926791e+01 +-1.670487396547499870e+01 +-2.022618653440844128e+01 +-1.575500212791669163e+01 +-1.623446448135860720e+01 +-1.971255041416715770e+01 +-1.524908418974633584e+01 +-1.674739960707474395e+01 +-1.874486386703869556e+01 +-1.875860494300633974e+01 +-1.624330830693308059e+01 +-1.575500212791669163e+01 +-2.173635833472344103e+01 +-2.023074987981114958e+01 +-1.526710153869924547e+01 +-1.624899520224715133e+01 +-1.621637955805593734e+01 +-1.575500212791669163e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-1.826747219709448089e+01 +-1.672305802257370644e+01 +-1.672784918192654757e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.721014515272629097e+01 +-1.526710153869924547e+01 +-1.922018939185947772e+01 +-2.273083870283389629e+01 +-1.922050261396890747e+01 +-1.476121399530314626e+01 +-1.972436580486630930e+01 +-1.575838338479935175e+01 +-1.622855186589454490e+01 +-1.769352391111501532e+01 +-1.772217362413249475e+01 +-1.476121399530314626e+01 +-1.875380431414634685e+01 +-1.525525062138791199e+01 +-1.724838158629343354e+01 +-2.273083870283389629e+01 +-1.919161681582085421e+01 +-1.574365229112152953e+01 +-1.575941674449784813e+01 +-1.524869807180282599e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.672277259766056545e+01 +-1.573773743783412904e+01 +-2.173133788547372447e+01 +-2.026106478892402052e+01 +-1.670487396547499870e+01 +-1.575891057177604360e+01 +-2.023256598729861722e+01 +-1.823609960693417520e+01 +-1.476121399530314626e+01 +-1.821758047398477842e+01 +-1.771463331090560089e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.669025420133567295e+01 +-1.476121399530314626e+01 +-1.923916097094008038e+01 +-1.476121399530314626e+01 +-1.524982321799113549e+01 +-1.573671015552776176e+01 +-1.775657289167928710e+01 +-1.769735274376119705e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-1.975780229213037842e+01 +-1.572916749806838332e+01 +-1.769786082548910500e+01 +-1.476121399530314626e+01 +-1.976096635709246385e+01 +-2.173992036335968336e+01 +-1.476121399530314626e+01 +-1.624654151831733984e+01 +-1.977287036362850259e+01 +-1.626151001147714936e+01 +-1.476121399530314626e+01 +-1.821211734718204056e+01 +-1.573671015552776176e+01 +-1.524982321799113549e+01 +-2.124843424083564258e+01 +-1.771021753149668143e+01 +-1.823609960693417520e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623882026607401130e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.672231191301397502e+01 +-1.822513197236414939e+01 +-1.476121399530314626e+01 +-2.222216290213661694e+01 +-1.624707538080579994e+01 +-2.076838078518492736e+01 +-1.524869807180282599e+01 +-1.626701727170046752e+01 +-1.476121399530314626e+01 +-1.769735274376119705e+01 +-1.527090562473298618e+01 +-1.476121399530314626e+01 +-2.175131404354247167e+01 +-1.572854899885174440e+01 +-1.672599108999033035e+01 +-1.724907359714923416e+01 +-1.576210879656242447e+01 +-1.769735274376119705e+01 +-2.122365804796319111e+01 +-1.526710153869924547e+01 +-1.575500212791669163e+01 +-1.623856472485708480e+01 +-1.524869807180282599e+01 +-1.924841833352611431e+01 +-1.476121399530314626e+01 +-2.222148043750684110e+01 +-1.578125364629256744e+01 +-1.824297293532114494e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.575480887862977042e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.970194694889335452e+01 +-1.572916749806838332e+01 +-2.021923043919861840e+01 +-1.918214980855363194e+01 +-1.573014140381678772e+01 +-2.125030255279273206e+01 +-1.625979594396532590e+01 +-1.573671015552776176e+01 +-1.871092833847788839e+01 +-1.725097808361455165e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.624899520224715133e+01 +-1.527093049984081752e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.769224685667877495e+01 +-1.824644666202567933e+01 +-1.915722431606476306e+01 +-2.222221915589203434e+01 +-1.671627868033377950e+01 +-1.919292346156744600e+01 +-1.476121399530314626e+01 +-1.925749253033120212e+01 +-2.170922930922623095e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.721014515272629097e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.872742342300878704e+01 +-1.922797478301583496e+01 +-1.973817701781753797e+01 +-2.171586488874555343e+01 +-1.476121399530314626e+01 +-1.672646572763065009e+01 +-1.672277259766056545e+01 +-1.524869807180282599e+01 +-2.222221915589203434e+01 +-1.574415113675572009e+01 +-1.524908418974633584e+01 +-1.823666718221532079e+01 +-2.069470686262908643e+01 +-2.024740473977704269e+01 +-1.476121399530314626e+01 +-1.923279008979562832e+01 +-1.768979362731587912e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.670487396547499870e+01 +-1.772389088974438209e+01 +-1.524982321799113549e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-1.721862556337221406e+01 +-1.725912593207634060e+01 +-1.723337861536438709e+01 +-1.476121399530314626e+01 +-1.671627868033377950e+01 +-1.575894212839201280e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.917858385295538426e+01 +-1.623446448135860720e+01 +-2.224879281313178225e+01 +-1.870946657697030702e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-2.223497516213418734e+01 +-1.721862556337221406e+01 +-1.575894212839201280e+01 +-1.821642491849179635e+01 +-2.074721216862934980e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.723514425644480141e+01 +-1.677082904168863564e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.620318880666199135e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-2.024204329508548383e+01 +-2.273083870283389629e+01 +-1.723268737333488687e+01 +-1.670487396547499870e+01 +-1.575500212791669163e+01 +-1.575941918869449232e+01 +-1.524147195489286943e+01 +-1.724012703459143836e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.525677914886782283e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-2.076838078518492736e+01 +-1.771392311827600707e+01 +-1.872853885273731223e+01 +-1.823609960693417520e+01 +-1.821139996696712515e+01 +-2.222221915589203434e+01 +-1.574338251301774250e+01 +-1.476121399530314626e+01 +-1.671566875366153226e+01 +-1.721570613406404959e+01 +-1.672863582297891583e+01 +-1.722689516238723684e+01 +-1.573671015552776176e+01 +-1.769224685667877495e+01 +-1.476121399530314626e+01 +-1.671566875366153226e+01 +-1.726222433387699695e+01 +-1.976241459617140706e+01 +-1.624707538080579994e+01 +-2.273083870283389629e+01 +-1.527093049984081752e+01 +-1.672808138194494632e+01 +-1.524147195489286943e+01 +-1.625908856057943197e+01 +-1.572902897713327164e+01 +-1.720468235604566232e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.524908418974633584e+01 +-1.868327583019824800e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723390373210351356e+01 +-1.774320087269487090e+01 +-1.672268167690024754e+01 +-2.122153608031594629e+01 +-2.071810537594562973e+01 +-1.672514086318954796e+01 +-1.870510832449962280e+01 +-1.572854899885174440e+01 +-1.771445508278171488e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.873863653949177888e+01 +-1.476121399530314626e+01 +-1.923062226603550329e+01 +-2.171360073915518285e+01 +-2.123623683795330308e+01 +-2.175801482215007709e+01 +-2.023256598729861722e+01 +-1.524908418974633584e+01 +-2.222247508060926791e+01 +-1.775001916423232728e+01 +-1.973683913589787764e+01 +-1.476121399530314626e+01 +-2.072591804271121063e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-1.918139615868678760e+01 +-1.572916749806838332e+01 +-1.823609960693417520e+01 +-2.171641102924940014e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.577887650139654419e+01 +-1.822318923819913650e+01 +-1.824519833525244650e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.772598974940754957e+01 +-1.925882217573040478e+01 +-1.921683229546970750e+01 +-2.224000337054214782e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.722868364608472902e+01 +-1.721862556337221406e+01 +-2.222517495552305533e+01 +-1.526710153869924547e+01 +-1.777155450638071699e+01 +-1.524869807180282599e+01 +-1.769735274376119705e+01 +-1.676170940838562728e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.674428556677437285e+01 +-2.075629790914084793e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.920950723280225247e+01 +-1.524908418974633584e+01 +-1.821954557423049437e+01 +-1.973803425252446786e+01 +-1.575891057177604360e+01 +-1.824239860231532262e+01 +-1.823035575667507047e+01 +-1.476121399530314626e+01 +-1.574744664573250397e+01 +-1.623882026607401130e+01 +-1.624899520224715133e+01 +-1.973581169737493113e+01 +-1.772660000527323731e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-2.221559445291741852e+01 +-1.923302535988793238e+01 +-1.774112461747202829e+01 +-1.721038905335863589e+01 +-1.821504512365470774e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.624968019918323137e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-1.770939713313940445e+01 +-1.525525062138791199e+01 +-1.676064322573188647e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.872043910611856532e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.719995975008564670e+01 +-1.920757820087878187e+01 +-1.575941674449784813e+01 +-1.575480887862977042e+01 +-1.672277259766056545e+01 +-1.623961616816850295e+01 +-1.476121399530314626e+01 +-1.626121606810474063e+01 +-1.724335290286656175e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.624976440436766012e+01 +-1.975203175200804395e+01 +-2.075397199959315131e+01 +-2.024740473977704269e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.825481272058773285e+01 +-1.672680116746003876e+01 +-1.527090562473298618e+01 +-1.872326162756382573e+01 +-2.171143261821722703e+01 +-1.721885290559418280e+01 +-1.624707538080579994e+01 +-1.775649854270165307e+01 +-1.476121399530314626e+01 +-1.575941918869449232e+01 +-1.524908418974633584e+01 +-2.021976207345208110e+01 +-1.873678990782827114e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-1.772218610171639597e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.770677130473237781e+01 +-1.476121399530314626e+01 +-1.769407381584957406e+01 +-2.173103492470965037e+01 +-1.672277259766056545e+01 +-2.024725712422599599e+01 +-1.572916749806838332e+01 +-1.524908418974633584e+01 +-1.524869807180282599e+01 +-2.023294506340621979e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.674142443227539445e+01 +-2.020847896186296921e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.075419326674170861e+01 +-1.524147195489286943e+01 +-1.675262076126525912e+01 +-1.723299090969278424e+01 +-1.573773743783412904e+01 +-2.024151392986987474e+01 +-1.623068968097969034e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623531484758887800e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.624282679516225514e+01 +-2.071238908209322460e+01 +-2.075629790914084793e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.869786833381631297e+01 +-1.871033085219637471e+01 +-1.623510513768046337e+01 +-1.823248222898600446e+01 +-1.820172362779080188e+01 +-1.774480232771351496e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.622331972918252774e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.922165076711631926e+01 +-1.722073389168845026e+01 +-1.671204798526477475e+01 +-1.875784656222484514e+01 +-1.824286068106533065e+01 +-1.924200539039091851e+01 +-1.768979362731587912e+01 +-2.224000337054214782e+01 +-1.721988312766665175e+01 +-1.526710153869924547e+01 +-1.575480887862977042e+01 +-1.825481272058773285e+01 +-2.123420556749341870e+01 +-2.172683406269010220e+01 +-1.724838158629343354e+01 +-1.573671015552776176e+01 +-1.674858455771563470e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.771760426503834651e+01 +-2.122392136261502316e+01 +-1.572916749806838332e+01 +-1.874736891886622558e+01 +-1.623488952797946538e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.823803204817916068e+01 +-2.172648013552934287e+01 +-1.768979362731587912e+01 +-1.874590785030669693e+01 +-1.874988389985277237e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-2.075474167493039701e+01 +-1.524908418974633584e+01 +-1.724211540626578198e+01 +-1.627867642393005099e+01 +-2.123786065989509098e+01 +-1.476121399530314626e+01 +-1.973817701781753797e+01 +-2.172683406269010220e+01 +-1.724897098043182098e+01 +-1.524908418974633584e+01 +-1.724838158629343354e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.973021702507443109e+01 +-2.073960800464843501e+01 +-1.721928314569467844e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-2.222221915589203434e+01 +-1.577892733665078850e+01 +-1.524908418974633584e+01 +-1.524982321799113549e+01 +-1.972206728706104073e+01 +-1.871634302503304070e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.820412546821324895e+01 +-1.524908418974633584e+01 +-1.775651912746867467e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.770736366512549509e+01 +-1.721570613406404959e+01 +-2.273083870283389629e+01 +-2.175361348163336217e+01 +-2.073545598077364360e+01 +-1.826896755862118127e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.874549798251536714e+01 +-1.670068211802541569e+01 +-2.021236837633149364e+01 +-1.775831369292695783e+01 +-1.572916749806838332e+01 +-2.021271273183619499e+01 +-1.923188530568091537e+01 +-1.623603104653742335e+01 +-1.575500212791669163e+01 +-1.823666718221532079e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.725097808361455165e+01 +-2.022454497886462121e+01 +-1.527191419712450049e+01 +-1.970516887963223240e+01 +-1.971058156569212372e+01 +-1.620387993917162817e+01 +-1.575941674449784813e+01 +-1.972106199419392070e+01 +-1.771612585089139813e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.722157240776754605e+01 +-1.476121399530314626e+01 +-1.723875790085773829e+01 +-1.623856472485708480e+01 +-1.674964043676191849e+01 +-2.075629790914084793e+01 +-2.273083870283389629e+01 +-1.772639596685652208e+01 +-1.574365229112152953e+01 +-1.724838158629343354e+01 +-1.572916749806838332e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.626689428319512842e+01 +-2.171641102924940014e+01 +-1.476121399530314626e+01 +-1.672059177505631311e+01 +-1.772201448119361800e+01 +-1.869271471790862549e+01 +-1.527093049984081752e+01 +-1.476121399530314626e+01 +-1.972485754360967292e+01 +-2.170723691096281627e+01 +-1.869511275847703757e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.674142443227539445e+01 +-1.724390155869233610e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.722109224200146471e+01 +-2.023365347809207293e+01 +-2.077575976691085202e+01 +-1.721038905335863589e+01 +-1.622331972918252774e+01 +-1.922100128005653730e+01 +-1.673096835416569661e+01 +-2.173474809432730837e+01 +-1.575500212791669163e+01 +-1.725591159367355942e+01 +-2.075730237035045533e+01 +-1.524908418974633584e+01 +-1.675514122835551589e+01 +-1.573671015552776176e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.924873729021784285e+01 +-1.476121399530314626e+01 +-1.620363008387797166e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.722602374936149161e+01 +-1.674858455771563470e+01 +-1.720614671864527168e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.622331972918252774e+01 +-2.172683406269010220e+01 +-2.224879281313178225e+01 +-2.173256547040595166e+01 +-1.772217362413249475e+01 +-2.273083870283389629e+01 +-1.774530815917752236e+01 +-1.575941674449784813e+01 +-1.770661714034795153e+01 +-1.476121399530314626e+01 +-1.973970570055487528e+01 +-1.775001916423232728e+01 +-1.524908418974633584e+01 +-2.020456596012656902e+01 +-1.871189452540390619e+01 +-1.721038905335863589e+01 +-1.975277475111823122e+01 +-1.673791297006278711e+01 +-1.869643762296800560e+01 +-1.624282679516225514e+01 +-1.527090562473298618e+01 +-1.872023028932996169e+01 +-1.823579922824239929e+01 +-1.970194694889335452e+01 +-1.624251645875741090e+01 +-1.476121399530314626e+01 +-2.122365804796319111e+01 +-1.823035575667507047e+01 +-1.524908418974633584e+01 +-1.674667541106638780e+01 +-1.524908418974633584e+01 +-2.174480670537584004e+01 +-1.871858245699045398e+01 +-2.172450756719466369e+01 +-1.676170940838562728e+01 +-2.223497516213418734e+01 +-1.524147195489286943e+01 +-1.820412546821324895e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.672884421037827707e+01 +-1.476121399530314626e+01 +-1.723165908096491350e+01 +-1.877865631578022843e+01 +-1.671451113996016602e+01 +-1.573671015552776176e+01 +-1.623117287636750561e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-2.077095577395444792e+01 +-2.224000337054214782e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.769224685667877495e+01 +-1.919867740239916643e+01 +-1.971944719440596572e+01 +-1.726924897732200037e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.173256547040595166e+01 +-1.876168441035147794e+01 +-2.075176627020447029e+01 +-1.577686697330885224e+01 +-1.922065625643224251e+01 +-1.476121399530314626e+01 +-1.674142443227539445e+01 +-1.623603104653742335e+01 +-2.069603689810960745e+01 +-2.222221915589203434e+01 +-2.224173453399332345e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.820386290593106438e+01 +-1.677397257584128809e+01 +-1.923957671018408178e+01 +-1.524869807180282599e+01 +-1.820172362779080188e+01 +-1.719618497250093370e+01 +-1.526748398200428447e+01 +-2.073778220339691458e+01 +-1.673668984784076841e+01 +-1.527093049984081752e+01 +-1.777390337927547392e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.673668984784076841e+01 +-1.873102006394000085e+01 +-1.874320598487806677e+01 +-1.524869807180282599e+01 +-2.171413861831982217e+01 +-1.524908418974633584e+01 +-1.822382070557781475e+01 +-1.973636702315670632e+01 +-1.721862556337221406e+01 +-2.075419326674170861e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.224173453399332345e+01 +-1.524869807180282599e+01 +-1.726823678523565420e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-1.624717601381815868e+01 +-1.476121399530314626e+01 +-1.876168441035147794e+01 +-1.575941674449784813e+01 +-1.621015720338139943e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.723687318899728638e+01 +-2.173256547040595166e+01 +-1.823060392607572666e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.525525062138791199e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.977990295388240227e+01 +-1.575941674449784813e+01 +-1.524982321799113549e+01 +-2.224879281313178225e+01 +-1.476121399530314626e+01 +-1.573032571106647381e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.872977206263806238e+01 +-1.624282679516225514e+01 +-1.870779631764987982e+01 +-1.575593191261256365e+01 +-1.920949430540230196e+01 +-1.524908418974633584e+01 +-1.723337861536438709e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.971431516126731864e+01 +-1.772660000527323731e+01 +-1.675467789118465944e+01 +-1.527191419712450049e+01 +-1.867001029691583369e+01 +-2.273083870283389629e+01 +-2.273083870283389629e+01 +-1.527093049984081752e+01 +-1.620318880666199135e+01 +-1.623341291522737961e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.622569173320911418e+01 +-1.772999389696753170e+01 +-1.573671015552776176e+01 +-1.675467789118465944e+01 +-1.625100064103294173e+01 +-1.872326162756382573e+01 +-1.921528919064225605e+01 +-1.775651912746867467e+01 +-1.768979362731587912e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-2.273083870283389629e+01 +-1.968394638981045830e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.675453718969792760e+01 +-1.623117287636750561e+01 +-1.721014515272629097e+01 +-1.624899520224715133e+01 +-1.524147195489286943e+01 +-1.623845753025665672e+01 +-1.724838158629343354e+01 +-1.575500212791669163e+01 +-1.923916097094008038e+01 +-1.573671015552776176e+01 +-1.572916749806838332e+01 +-2.273083870283389629e+01 +-1.572854899885174440e+01 +-1.721783661017421707e+01 +-1.725291462811145138e+01 +-1.624282679516225514e+01 +-1.724547610597979386e+01 +-1.720722962850533477e+01 +-1.768979362731587912e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.772593861516610403e+01 +-1.774508080035682767e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.922888884520784103e+01 +-1.524869807180282599e+01 +-2.224000337054214782e+01 +-2.122593937376381490e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.223497516213418734e+01 +-1.574365229112152953e+01 +-1.724547610597979386e+01 +-1.772754573296659331e+01 +-1.874397263893968102e+01 +-1.771786421542914880e+01 +-1.675410544113060141e+01 +-1.778074950339586380e+01 +-1.870870647451403457e+01 +-1.524869807180282599e+01 +-1.770928394157458996e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.823609960693417520e+01 +-1.672231191301397502e+01 +-1.576210879656242447e+01 +-1.973210993298011573e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-2.172842358251617867e+01 +-1.575941674449784813e+01 +-2.176577958073914587e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-2.273083870283389629e+01 +-1.928183019439507362e+01 +-1.524147195489286943e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.577680841736110828e+01 +-1.476121399530314626e+01 +-2.071606620308072522e+01 +-1.573671015552776176e+01 +-1.772536429342513387e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.020064524701641773e+01 +-1.920949430540230196e+01 +-1.673340478404663045e+01 +-1.768979362731587912e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.866682818321951132e+01 +-1.524908418974633584e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.573806653833328539e+01 +-1.476121399530314626e+01 +-1.976096635709246385e+01 +-2.075629790914084793e+01 +-1.672277259766056545e+01 +-1.524908418974633584e+01 +-1.972686750254985455e+01 +-2.273083870283389629e+01 +-1.771650727420470162e+01 +-2.222517495552305533e+01 +-2.074186931354768149e+01 +-1.623068968097969034e+01 +-1.924092727116990886e+01 +-1.724547610597979386e+01 +-2.175361348163336217e+01 +-1.524908418974633584e+01 +-2.075629790914084793e+01 +-2.020684596190364246e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.970794177908450706e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.125030255279273206e+01 +-1.725113358142434095e+01 +-2.018535029303951234e+01 +-1.623488952797946538e+01 +-2.021142229771068344e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.873337668998486905e+01 +-2.126350578254113799e+01 +-1.974961612043972181e+01 +-1.476121399530314626e+01 +-1.871103636114980873e+01 +-1.476121399530314626e+01 +-1.524982321799113549e+01 +-1.726222433387699695e+01 +-1.476121399530314626e+01 +-2.172842358251617867e+01 +-1.572265874903633431e+01 +-1.872085149652250280e+01 +-1.971662605177017014e+01 +-1.623488952797946538e+01 +-1.723337861536438709e+01 +-1.772218610171639597e+01 +-1.625568452565532596e+01 +-2.024129746737908775e+01 +-1.671451113996016602e+01 +-2.120524907987791252e+01 +-1.772993204690818558e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.973121421321525659e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.969492395416920161e+01 +-1.670504981404951295e+01 +-1.624282679516225514e+01 +-1.721038905335863589e+01 +-1.624282679516225514e+01 +-1.524869807180282599e+01 +-1.772999389696753170e+01 +-1.626701727170046752e+01 +-1.574365229112152953e+01 +-1.676201665239650751e+01 +-1.624717601381815868e+01 +-1.922702108789699693e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-2.273083870283389629e+01 +-1.524869807180282599e+01 +-1.723337861536438709e+01 +-1.623737399663061609e+01 +-1.623882026607401130e+01 +-2.070644491139230325e+01 +-1.824515236460867840e+01 +-1.871033085219637471e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.719572907057564848e+01 +-1.476121399530314626e+01 +-1.770736366512549509e+01 +-1.623117287636750561e+01 +-1.720300929030401349e+01 +-2.021976207345208110e+01 +-2.122376992995476641e+01 +-2.120447254404176363e+01 +-1.623068968097969034e+01 +-1.876074522544445244e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.172623366696909741e+01 +-1.673609137789295787e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.726222433387699695e+01 +-1.773312046559081523e+01 +-1.476121399530314626e+01 +-1.673096835416569661e+01 +-1.524908418974633584e+01 +-1.876833218155868011e+01 +-1.573773743783412904e+01 +-1.624899520224715133e+01 +-1.871033085219637471e+01 +-1.524147195489286943e+01 +-1.524147195489286943e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.868220452112003471e+01 +-1.476121399530314626e+01 +-1.872854028384098513e+01 +-1.924894295554159385e+01 +-1.622569173320911418e+01 +-1.922018939185947772e+01 +-1.621637955805593734e+01 +-1.823953701116056436e+01 +-1.476121399530314626e+01 +-1.822684655522449049e+01 +-1.673668984784076841e+01 +-1.772451260815015317e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574744664573250397e+01 +-1.878477102277027555e+01 +-1.973581169737493113e+01 +-1.672884421037827707e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.672231191301397502e+01 +-1.719909300738579816e+01 +-1.476121399530314626e+01 +-1.823575750905781945e+01 +-1.624282679516225514e+01 +-1.572902897713327164e+01 +-1.574715332371951604e+01 +-2.122376992995476641e+01 +-1.973021702507443109e+01 +-1.623603104653742335e+01 +-1.524869807180282599e+01 +-1.626689428319512842e+01 +-2.073927450690683472e+01 +-1.476121399530314626e+01 +-1.872779260392717404e+01 +-1.821934196457588939e+01 +-1.673668984784076841e+01 +-1.723268737333488687e+01 +-1.675467789118465944e+01 +-1.621747192744323129e+01 +-2.171328788034910318e+01 +-1.820412546821324895e+01 +-1.771509068296203537e+01 +-2.074120393459206468e+01 +-1.624899520224715133e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.922635649125861690e+01 +-1.920850789550599202e+01 +-1.526710153869924547e+01 +-1.868543546743634920e+01 +-1.721014515272629097e+01 +-2.021142229771068344e+01 +-1.723618582583572234e+01 +-1.675514122835551589e+01 +-1.821397285728181714e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.922703178757360121e+01 +-1.723242222265071177e+01 +-1.874163567617201664e+01 +-1.575174991524399992e+01 +-2.021624947657156568e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.222517495552305533e+01 +-1.820080100407124846e+01 +-2.075629790914084793e+01 +-1.524908418974633584e+01 +-1.721988312766665175e+01 +-1.670487396547499870e+01 +-1.774353575309854136e+01 +-1.524869807180282599e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.823666718221532079e+01 +-1.524869807180282599e+01 +-1.623488952797946538e+01 +-1.476121399530314626e+01 +-1.622353475593412853e+01 +-1.926739285657639300e+01 +-2.171413861831982217e+01 +-1.871092833847788839e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.674428556677437285e+01 +-1.772217362413249475e+01 +-1.476121399530314626e+01 +-1.922230874411467383e+01 +-1.770919397813208462e+01 +-2.122376992995476641e+01 +-1.572916749806838332e+01 +-1.820608450387680932e+01 +-1.823035575667507047e+01 +-1.626484787311743929e+01 +-1.821344907785417533e+01 +-1.476121399530314626e+01 +-1.818008777670253906e+01 +-2.124523402989096610e+01 +-1.476121399530314626e+01 +-1.527093049984081752e+01 +-1.624899520224715133e+01 +-1.771650727420470162e+01 +-1.476121399530314626e+01 +-2.068885666294826819e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-1.774320087269487090e+01 +-1.575838338479935175e+01 +-1.573671015552776176e+01 +-2.124645296855783982e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.768979362731587912e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.622729882260567891e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.721570613406404959e+01 +-1.572854899885174440e+01 +-1.672231191301397502e+01 +-2.224000337054214782e+01 +-1.524147195489286943e+01 +-1.575480887862977042e+01 +-1.673668984784076841e+01 +-1.623446448135860720e+01 +-1.476121399530314626e+01 +-1.970122614985661258e+01 +-1.622371151329624439e+01 +-1.721570613406404959e+01 +-2.224000337054214782e+01 +-1.526748398200428447e+01 +-1.920413108982053885e+01 +-1.624654151831733984e+01 +-1.524908418974633584e+01 +-2.224879281313178225e+01 +-1.525677914886782283e+01 +-1.970794177908450706e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.774530815917752236e+01 +-1.823609960693417520e+01 +-2.273083870283389629e+01 +-2.175801482215007709e+01 +-1.625473807619719580e+01 +-1.623488952797946538e+01 +-1.975780229213037842e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672277259766056545e+01 +-1.772780290691011018e+01 +-1.524147195489286943e+01 +-1.524982321799113549e+01 +-1.927770155055014811e+01 +-2.173992036335968336e+01 +-1.823803204817916068e+01 +-1.476121399530314626e+01 +-1.724152411705875210e+01 +-1.476121399530314626e+01 +-1.821629728268181125e+01 +-1.922018939185947772e+01 +-2.273083870283389629e+01 +-1.966923498797700276e+01 +-1.774299265990639185e+01 +-2.025119055719394368e+01 +-1.575941674449784813e+01 +-1.724278839839321265e+01 +-2.273083870283389629e+01 +-1.974216904010746632e+01 +-2.071586809441644661e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.674670068125587008e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.525525062138791199e+01 +-1.576216456244325492e+01 +-1.524869807180282599e+01 +-1.573671015552776176e+01 +-1.723165908096491350e+01 +-1.769965885864320043e+01 +-1.524908418974633584e+01 +-1.672884421037827707e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.573671015552776176e+01 +-1.820080100407124846e+01 +-2.222221915589203434e+01 +-1.725254872961511055e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.917858385295538426e+01 +-2.125030255279273206e+01 +-1.621747192744323129e+01 +-2.072151789369197061e+01 +-1.624707538080579994e+01 +-1.920045303328924646e+01 +-1.968951381459886107e+01 +-2.172683406269010220e+01 +-2.075419326674170861e+01 +-1.476121399530314626e+01 +-1.973397828254867648e+01 +-1.672231191301397502e+01 +-2.170723691096281627e+01 +-1.820488902360093775e+01 +-1.624267133138629049e+01 +-1.820172362779080188e+01 +-1.476121399530314626e+01 +-1.772993204690818558e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.173635833472344103e+01 +-1.575894212839201280e+01 +-2.225682218684830715e+01 +-1.476121399530314626e+01 +-2.073647524764212591e+01 +-1.721038905335863589e+01 +-2.121571772166121050e+01 +-2.018996159996211404e+01 +-1.527090562473298618e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.820080100407124846e+01 +-1.969492395416920161e+01 +-1.575500212791669163e+01 +-1.772604928402287428e+01 +-1.624707538080579994e+01 +-2.222221915589203434e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.573806653833328539e+01 +-1.622251341631351806e+01 +-1.676170940838562728e+01 +-2.222517495552305533e+01 +-1.971495681128613953e+01 +-1.923125818457031144e+01 +-1.821096849610254864e+01 +-2.024802046216201035e+01 +-1.823925730412619828e+01 +-1.573032571106647381e+01 +-2.223497516213418734e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.723242222265071177e+01 +-1.769239639422828603e+01 +-2.224000337054214782e+01 +-1.672599108999033035e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.623856472485708480e+01 +-1.776047670102711251e+01 +-1.774508080035682767e+01 +-1.918139615868678760e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.919973922861363747e+01 +-1.974216904010746632e+01 +-1.673668984784076841e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-2.224000337054214782e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-1.624282679516225514e+01 +-1.575941674449784813e+01 +-1.572162754304351395e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.725010018486193530e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.922405736954551969e+01 +-1.626072596331811937e+01 +-1.725710868371477247e+01 +-1.917539811773174918e+01 +-1.524147195489286943e+01 +-1.525677914886782283e+01 +-1.925501931337553074e+01 +-2.075176627020447029e+01 +-2.023405998638889969e+01 +-2.069497008367253699e+01 +-2.024725712422599599e+01 +-2.224000337054214782e+01 +-1.621637955805593734e+01 +-2.120165078998461894e+01 +-1.771583971727682183e+01 +-1.823548558661385854e+01 +-1.573671015552776176e+01 +-1.672231191301397502e+01 +-1.676471067976718743e+01 +-2.222221915589203434e+01 +-1.675344534810514929e+01 +-1.575894212839201280e+01 +-1.723541585542474408e+01 +-1.971047763375619155e+01 +-1.622331972918252774e+01 +-1.723541585542474408e+01 +-1.820080100407124846e+01 +-2.123845383496838579e+01 +-1.871748086511768605e+01 +-1.524908418974633584e+01 +-1.824271439628197555e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.572854899885174440e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.524982321799113549e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.623510513768046337e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.524869807180282599e+01 +-1.524869807180282599e+01 +-1.524869807180282599e+01 +-1.769735274376119705e+01 +-1.823035575667507047e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.973817701781753797e+01 +-2.173458106512043742e+01 +-2.024198459128254513e+01 +-1.476121399530314626e+01 +-1.823819169589564027e+01 +-1.870168310659785149e+01 +-1.573014140381678772e+01 +-1.476121399530314626e+01 +-1.727105751173519366e+01 +-1.773842904396224185e+01 +-1.574744664573250397e+01 +-1.919028151591391307e+01 +-2.023562962772636453e+01 +-1.875143832716543457e+01 +-1.621637955805593734e+01 +-1.576140309317931276e+01 +-2.021681936593007123e+01 +-2.273083870283389629e+01 +-1.973838731116963885e+01 +-2.222247508060926791e+01 +-2.075629790914084793e+01 +-1.774530815917752236e+01 +-1.572916749806838332e+01 +-1.728563926295256081e+01 +-1.726924897732200037e+01 +-1.673085677529565984e+01 +-1.872742342300878704e+01 +-1.973581169737493113e+01 +-1.672646572763065009e+01 +-1.476121399530314626e+01 +-1.823808337526899592e+01 +-1.527093049984081752e+01 +-1.675514122835551589e+01 +-1.973838731116963885e+01 +-1.671627868033377950e+01 +-1.526710153869924547e+01 +-2.171360073915518285e+01 +-1.575480887862977042e+01 +-1.672844394444672744e+01 +-1.524908418974633584e+01 +-1.724462125213837282e+01 +-1.819540782969806614e+01 +-1.674142443227539445e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.919969781048534330e+01 +-1.925501931337553074e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.874535488267139272e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.768979362731587912e+01 +-1.723541585542474408e+01 +-2.273083870283389629e+01 +-1.926918137545213128e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.970516887963223240e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.973838731116963885e+01 +-1.476121399530314626e+01 +-1.625979594396532590e+01 +-1.575480887862977042e+01 +-2.072591804271121063e+01 +-1.527093049984081752e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.775001916423232728e+01 +-1.819307746000575321e+01 +-1.672599108999033035e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-2.171959012714755488e+01 +-1.918139615868678760e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-2.025999209441493321e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.968756957538227681e+01 +-1.871748086511768605e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-2.173133788547372447e+01 +-1.721014515272629097e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672863582297891583e+01 +-1.721014515272629097e+01 +-1.922018939185947772e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.524147195489286943e+01 +-1.876059135322157800e+01 +-1.673085677529565984e+01 +-1.724522632620288931e+01 +-1.575500212791669163e+01 +-1.972844308715696826e+01 +-1.476121399530314626e+01 +-1.674428556677437285e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.822070552851752367e+01 +-2.069470686262908643e+01 +-1.821934196457588939e+01 +-1.575480887862977042e+01 +-1.673898015532297734e+01 +-1.674739960707474395e+01 +-1.626104322152640336e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.823035575667507047e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.669943025450141150e+01 +-1.624169944267757870e+01 +-1.573671015552776176e+01 +-1.925491571558363546e+01 +-1.676170940838562728e+01 +-2.273083870283389629e+01 +-2.022464288974876112e+01 +-1.524869807180282599e+01 +-2.171641102924940014e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-1.673413142263268583e+01 +-1.572916749806838332e+01 +-2.174480670537584004e+01 +-1.874590785030669693e+01 +-1.770140789578828944e+01 +-1.524908418974633584e+01 +-1.876681140922408275e+01 +-1.623488952797946538e+01 +-1.524147195489286943e+01 +-1.574715332371951604e+01 +-1.871786081288957249e+01 +-2.172788475480007264e+01 +-1.821137292126866569e+01 +-1.575591656132124463e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623603104653742335e+01 +-1.625979594396532590e+01 +-1.476121399530314626e+01 +-2.124045870254296986e+01 +-1.719234209407089864e+01 +-1.871092833847788839e+01 +-2.171360073915518285e+01 +-1.574744664573250397e+01 +-1.871033085219637471e+01 +-2.122392136261502316e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.721704783178955722e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.771650727420470162e+01 +-2.273083870283389629e+01 +-1.922018939185947772e+01 +-1.774593786165947407e+01 +-2.222221915589203434e+01 +-1.973345042772951530e+01 +-1.772947864854536704e+01 +-1.624968019918323137e+01 +-2.172683406269010220e+01 +-1.670886511577105082e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.823005249013490570e+01 +-1.673668984784076841e+01 +-2.273083870283389629e+01 +-2.022618653440844128e+01 +-1.476121399530314626e+01 +-1.721862556337221406e+01 +-1.623488952797946538e+01 +-1.769224685667877495e+01 +-1.476121399530314626e+01 +-1.672379217782949112e+01 +-1.874523596264787173e+01 +-1.674594070027254133e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.919208032413412113e+01 +-1.922228036751121039e+01 +-1.769407381584957406e+01 +-1.476121399530314626e+01 +-1.674739960707474395e+01 +-2.174024516559435938e+01 +-2.024740473977704269e+01 +-2.171328788034910318e+01 +-1.775944096247956239e+01 +-1.723337861536438709e+01 +-1.476121399530314626e+01 +-1.525677914886782283e+01 +-1.672599108999033035e+01 +-1.972691058225357708e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.671627868033377950e+01 +-2.173256547040595166e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.075629790914084793e+01 +-1.869708612158618166e+01 +-1.772660000527323731e+01 +-1.626689428319512842e+01 +-1.675514122835551589e+01 +-1.672844394444672744e+01 +-2.273083870283389629e+01 +-1.623856472485708480e+01 +-1.575941674449784813e+01 +-1.623117287636750561e+01 +-1.575941674449784813e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.674395486764542795e+01 +-1.524160916598259874e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.572265874903633431e+01 +-2.074120393459206468e+01 +-1.672231191301397502e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.722097300726234081e+01 +-1.775651912746867467e+01 +-1.970516887963223240e+01 +-1.621637955805593734e+01 +-1.575500212791669163e+01 +-2.021269795450446694e+01 +-1.476121399530314626e+01 +-1.922230874411467383e+01 +-1.572916749806838332e+01 +-1.922888884520784103e+01 +-1.624654151831733984e+01 +-2.072515910378310622e+01 +-1.476121399530314626e+01 +-1.672844394444672744e+01 +-1.919161681582085421e+01 +-1.476121399530314626e+01 +-1.621747192744323129e+01 +-1.624330830693308059e+01 +-1.925584560412848489e+01 +-1.476121399530314626e+01 +-1.826852416777020238e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.675467789118465944e+01 +-1.770510475769095748e+01 +-1.575500212791669163e+01 +-2.171413861831982217e+01 +-2.075474167493039701e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-1.871287128712486592e+01 +-1.672599108999033035e+01 +-1.724429200657408146e+01 +-1.623488952797946538e+01 +-1.573090552987499358e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.876714207524251776e+01 +-1.525525062138791199e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-1.572854899885174440e+01 +-1.869555495458960337e+01 +-1.726924897732200037e+01 +-1.526710153869924547e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.772993204690818558e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.572265874903633431e+01 +-1.621015720338139943e+01 +-1.476121399530314626e+01 +-1.672599108999033035e+01 +-1.874348855417471427e+01 +-1.925293573735435615e+01 +-1.869643762296800560e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.222247508060926791e+01 +-1.673549760992038316e+01 +-1.673913861565725014e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.774227154328873013e+01 +-2.273083870283389629e+01 +-1.575894212839201280e+01 +-1.771021753149668143e+01 +-1.970194694889335452e+01 +-1.870067417956657607e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.123474176086016740e+01 +-1.672599108999033035e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.626701727170046752e+01 +-2.273083870283389629e+01 +-1.820130461317987525e+01 +-1.476121399530314626e+01 +-2.171143261821722703e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.775935426900304037e+01 +-1.719909300738579816e+01 +-1.524908418974633584e+01 +-1.574365229112152953e+01 +-1.624282679516225514e+01 +-1.823609960693417520e+01 +-2.174480670537584004e+01 +-1.524869807180282599e+01 +-1.874988389985277237e+01 +-1.821673196270062789e+01 +-2.028182468626358315e+01 +-2.224879281313178225e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.069497008367253699e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.772217362413249475e+01 +-2.124917029005798241e+01 +-1.725763223976502658e+01 +-1.624897351626167818e+01 +-1.724547610597979386e+01 +-1.524982321799113549e+01 +-1.524908418974633584e+01 +-1.868220452112003471e+01 +-1.920524975306400961e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.973838731116963885e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.722821928973528571e+01 +-1.476121399530314626e+01 +-1.721052378964268215e+01 +-1.773770924773740632e+01 +-1.823975359216384007e+01 +-2.221559445291741852e+01 +-1.772389088974438209e+01 +-1.476121399530314626e+01 +-1.820406091860502329e+01 +-1.476121399530314626e+01 +-2.021664899926371106e+01 +-2.224879281313178225e+01 +-1.723541585542474408e+01 +-1.721038905335863589e+01 +-1.624707538080579994e+01 +-1.673668984784076841e+01 +-1.776393203249890362e+01 +-1.476121399530314626e+01 +-1.874610668640177380e+01 +-1.575941674449784813e+01 +-1.671627868033377950e+01 +-1.623446448135860720e+01 +-1.671515213673033173e+01 +-1.476121399530314626e+01 +-1.723093713183431319e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.624899520224715133e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.720978779700628181e+01 +-1.572265874903633431e+01 +-1.775651912746867467e+01 +-1.621637955805593734e+01 +-1.526710153869924547e+01 +-1.973021702507443109e+01 +-2.273083870283389629e+01 +-1.923279008979562832e+01 +-1.524908418974633584e+01 +-1.673668984784076841e+01 +-1.773429096901428181e+01 +-2.222221915589203434e+01 +-1.923808664893253706e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.575891057177604360e+01 +-1.672499625067947093e+01 +-1.575547888688316611e+01 +-1.768979362731587912e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.523508173933331733e+01 +-1.722326681130725845e+01 +-1.476121399530314626e+01 +-1.871790112676456985e+01 +-1.669943025450141150e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-1.673085677529565984e+01 +-1.572265874903633431e+01 +-1.671454424285110818e+01 +-1.524908418974633584e+01 +-2.173133788547372447e+01 +-1.871208256019709282e+01 +-1.526710153869924547e+01 +-1.820427899812930050e+01 +-2.273083870283389629e+01 +-1.674142443227539445e+01 +-1.825481272058773285e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.726222433387699695e+01 +-1.969750509879924749e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.772882298182372551e+01 +-1.773292154033204682e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.772217362413249475e+01 +-1.672599108999033035e+01 +-1.525525062138791199e+01 +-2.223497516213418734e+01 +-1.871033085219637471e+01 +-1.823247920348312689e+01 +-1.971202130016335019e+01 +-2.024151392986987474e+01 +-1.524908418974633584e+01 +-2.019898673581996107e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.772999389696753170e+01 +-1.872057775260024570e+01 +-1.770983889731221694e+01 +-1.921728856969237142e+01 +-2.122376992995476641e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.820080100407124846e+01 +-2.074469427287759160e+01 +-1.624282679516225514e+01 +-1.772598974940754957e+01 +-1.922018939185947772e+01 +-1.969750509879924749e+01 +-1.972683403807351965e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.623961616816850295e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.968510591904223617e+01 +-1.476121399530314626e+01 +-1.918268164013746002e+01 +-1.574365229112152953e+01 +-1.723337861536438709e+01 +-1.572916749806838332e+01 +-1.575941918869449232e+01 +-1.524908418974633584e+01 +-1.772660000527323731e+01 +-2.023460262459656533e+01 +-1.523508173933331733e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.769407381584957406e+01 +-1.871697671652540507e+01 +-2.072950280593021688e+01 +-1.623234098707541051e+01 +-1.772604928402287428e+01 +-1.476121399530314626e+01 +-1.969245069731850251e+01 +-1.970590105330802189e+01 +-1.724278839839321265e+01 +-2.273083870283389629e+01 +-2.023076880256457954e+01 +-1.925501931337553074e+01 +-1.524982321799113549e+01 +-1.869554098349383153e+01 +-1.524869807180282599e+01 +-2.024740473977704269e+01 +-1.923062226603550329e+01 +-1.621637955805593734e+01 +-1.624899520224715133e+01 +-2.123786065989509098e+01 +-2.222148043750684110e+01 +-2.120524907987791252e+01 +-1.772598974940754957e+01 +-2.021070826414548449e+01 +-1.572916749806838332e+01 +-1.525525062138791199e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.675514122835551589e+01 +-2.222221915589203434e+01 +-1.721570613406404959e+01 +-1.524908418974633584e+01 +-1.775651912746867467e+01 +-1.624707538080579994e+01 +-1.524147195489286943e+01 +-1.673413142263268583e+01 +-1.820412546821324895e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.123581622156899584e+01 +-2.273083870283389629e+01 +-1.873449673888048039e+01 +-1.622331972918252774e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-1.674898419055811516e+01 +-1.775790090721342906e+01 +-1.925794384627054612e+01 +-1.673668984784076841e+01 +-1.524869807180282599e+01 +-2.071810537594562973e+01 +-2.223497516213418734e+01 +-1.524908418974633584e+01 +-1.975281490302242560e+01 +-1.524908418974633584e+01 +-1.671204798526477475e+01 +-2.173256547040595166e+01 +-1.820443777375304251e+01 +-2.023965017754196793e+01 +-1.675262076126525912e+01 +-2.172683406269010220e+01 +-1.721014515272629097e+01 +-1.624282679516225514e+01 +-1.524869807180282599e+01 +-2.024860308847755164e+01 +-1.724838158629343354e+01 +-1.770510475769095748e+01 +-1.626701987119713877e+01 +-1.524908418974633584e+01 +-1.923188530568091537e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623673742433899747e+01 +-1.575941674449784813e+01 +-1.773015376045774261e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.222221915589203434e+01 +-2.122392136261502316e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.024740473977704269e+01 +-1.476121399530314626e+01 +-1.823975359216384007e+01 +-1.720263079431909858e+01 +-1.820386290593106438e+01 +-1.820039631745250830e+01 +-2.223497516213418734e+01 +-2.076407489245549698e+01 +-2.174196647235378421e+01 +-1.725010018486193530e+01 +-1.672776405044725578e+01 +-1.524160916598259874e+01 +-1.821629728268181125e+01 +-1.524908418974633584e+01 +-1.624282679516225514e+01 +-1.624707538080579994e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.824397989366687511e+01 +-1.572916749806838332e+01 +-2.273083870283389629e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.671210785614181304e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.971007342135905560e+01 +-2.175126527595915960e+01 +-1.820803892741727381e+01 +-2.021986013929304349e+01 +-1.476121399530314626e+01 +-1.575593191261256365e+01 +-1.575500212791669163e+01 +-1.672844394444672744e+01 +-1.572854899885174440e+01 +-1.825309371824032212e+01 +-1.524147195489286943e+01 +-1.968951381459886107e+01 +-1.670886511577105082e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.572265874903633431e+01 +-1.673791297006278711e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.572243042688165104e+01 +-1.476121399530314626e+01 +-1.970033789177819372e+01 +-1.626888752469497845e+01 +-1.821491125003426959e+01 +-1.576112879427005176e+01 +-1.524908418974633584e+01 +-1.673413142263268583e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.773015376045774261e+01 +-1.672884421037827707e+01 +-1.476121399530314626e+01 +-1.774607709853776427e+01 +-1.476121399530314626e+01 +-1.872104714653892543e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.524982321799113549e+01 +-1.623446448135860720e+01 +-1.476121399530314626e+01 +-1.624330830693308059e+01 +-1.476121399530314626e+01 +-1.868955277845932983e+01 +-1.672268167690024754e+01 +-1.876956815750871144e+01 +-1.723541585542474408e+01 +-1.875985970741261966e+01 +-1.875972643759146052e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.971475618254230966e+01 +-1.823869683688263166e+01 +-2.224173453399332345e+01 +-2.124523402989096610e+01 +-1.526710153869924547e+01 +-1.526710153869924547e+01 +-2.026966080094772238e+01 +-1.625520076464786356e+01 +-1.674142443227539445e+01 +-1.524160916598259874e+01 +-1.524908418974633584e+01 +-1.720263079431909858e+01 +-1.722026432974114485e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.625307476218753777e+01 +-1.476121399530314626e+01 +-1.575941918869449232e+01 +-1.674527510337110670e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.673898015532297734e+01 +-1.573671015552776176e+01 +-1.723541585542474408e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.772224616784403395e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.971662605177017014e+01 +-1.725591159367355942e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.572916749806838332e+01 +-1.575500212791669163e+01 +-2.120745861436619606e+01 +-1.476121399530314626e+01 +-1.973803425252446786e+01 +-1.574715332371951604e+01 +-1.623603104653742335e+01 +-1.624330830693308059e+01 +-1.476121399530314626e+01 +-2.222517495552305533e+01 +-2.123786065989509098e+01 +-1.622331972918252774e+01 +-2.121828869553178976e+01 +-1.476121399530314626e+01 +-1.820172362779080188e+01 +-2.273083870283389629e+01 +-1.524869807180282599e+01 +-1.973021702507443109e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.822769124672915453e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.823175257557203821e+01 +-1.476121399530314626e+01 +-1.722239438609299356e+01 +-1.476121399530314626e+01 +-1.724335290286656175e+01 +-1.476121399530314626e+01 +-2.171143261821722703e+01 +-1.624899520224715133e+01 +-1.871092833847788839e+01 +-2.273083870283389629e+01 +-2.273083870283389629e+01 +-1.719618497250093370e+01 +-1.524147195489286943e+01 +-1.775838648291432165e+01 +-1.722389795456495065e+01 +-2.070926759050132304e+01 +-1.924303582026224646e+01 +-1.725010018486193530e+01 +-1.976204364365056421e+01 +-1.823666718221532079e+01 +-1.922702108789699693e+01 +-1.476121399530314626e+01 +-1.925501931337553074e+01 +-1.675945915840178913e+01 +-1.874272634067583354e+01 +-1.719550258423593192e+01 +-1.919208032413412113e+01 +-1.874221154287826252e+01 +-1.476121399530314626e+01 +-1.621015720338139943e+01 +-1.624169944267757870e+01 +-1.476121399530314626e+01 +-1.772598974940754957e+01 +-1.725010018486193530e+01 +-1.721038905335863589e+01 +-1.625473807619719580e+01 +-1.769352391111501532e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.922687312300714169e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-1.524908418974633584e+01 +-1.819555549106644321e+01 +-1.624282679516225514e+01 +-1.822382070557781475e+01 +-1.675467789118465944e+01 +-1.721038905335863589e+01 +-1.624968019918323137e+01 +-1.823666718221532079e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.575941674449784813e+01 +-1.575500212791669163e+01 +-2.125030255279273206e+01 +-1.871092833847788839e+01 +-1.672277259766056545e+01 +-1.973612332719512708e+01 +-1.718956946832242494e+01 +-2.222517495552305533e+01 +-1.772308858438660906e+01 +-1.476121399530314626e+01 +-1.575838338479935175e+01 +-2.172683406269010220e+01 +-2.123482785441946419e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.919425949831251188e+01 +-1.721862556337221406e+01 +-2.170710933607303517e+01 +-2.173256547040595166e+01 +-1.574338251301774250e+01 +-1.877880311482571329e+01 +-1.624169944267757870e+01 +-1.675035627564926344e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-2.223497516213418734e+01 +-1.572916749806838332e+01 +-2.075629790914084793e+01 +-2.171360073915518285e+01 +-1.476121399530314626e+01 +-1.575547888688316611e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-2.023628821070739292e+01 +-2.075629790914084793e+01 +-1.722689516238723684e+01 +-1.476121399530314626e+01 +-1.574715332371951604e+01 +-1.919208032413412113e+01 +-1.675838502113417761e+01 +-1.673668984784076841e+01 +-1.575500212791669163e+01 +-1.476121399530314626e+01 +-1.571538868991043891e+01 +-1.526710153869924547e+01 +-1.773757241595672340e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.819307746000575321e+01 +-1.575941674449784813e+01 +-1.824698085472326881e+01 +-2.018535029303951234e+01 +-1.574365229112152953e+01 +-1.524908418974633584e+01 +-1.721282270243777290e+01 +-1.873237889889169594e+01 +-2.273083870283389629e+01 +-1.674467884582279353e+01 +-2.120447254404176363e+01 +-1.725710868371477247e+01 +-1.775651912746867467e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-2.121828869553178976e+01 +-2.125097121914592080e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.726446962142870944e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.674724380468661167e+01 +-1.773015376045774261e+01 +-1.524869807180282599e+01 +-1.726222433387699695e+01 +-1.524908418974633584e+01 +-2.024542708031925287e+01 +-1.870426013603422888e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-1.872495968476713202e+01 +-1.721570613406404959e+01 +-1.524908418974633584e+01 +-1.871644671108516889e+01 +-1.874763791630853049e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.624282679516225514e+01 +-1.575480887862977042e+01 +-1.476121399530314626e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.175801482215007709e+01 +-1.476121399530314626e+01 +-2.072515910378310622e+01 +-1.524908418974633584e+01 +-1.925144646310489449e+01 +-1.925794384627054612e+01 +-1.476121399530314626e+01 +-1.775651912746867467e+01 +-1.524908418974633584e+01 +-2.173635833472344103e+01 +-1.572916749806838332e+01 +-1.673209625834821068e+01 +-1.922487003085027979e+01 +-2.224000337054214782e+01 +-1.673525231785628264e+01 +-1.524869807180282599e+01 +-1.573671015552776176e+01 +-1.673524759126947714e+01 +-1.871103636114980873e+01 +-1.574338251301774250e+01 +-1.868220452112003471e+01 +-1.872500739399248104e+01 +-1.769390252723734491e+01 +-1.723665742023250047e+01 +-1.476121399530314626e+01 +-2.171225354622955095e+01 +-1.772389088974438209e+01 +-1.772506921051798301e+01 +-1.624406660119286627e+01 +-2.273083870283389629e+01 +-1.823609960693417520e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.624899520224715133e+01 +-1.672277259766056545e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.769224685667877495e+01 +-1.575941674449784813e+01 +-2.122527501750074563e+01 +-2.273083870283389629e+01 +-1.820424813924134710e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.823035575667507047e+01 +-1.672599108999033035e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.874590785030669693e+01 +-1.820809338267425304e+01 +-2.175801482215007709e+01 +-1.772217362413249475e+01 +-1.674898419055811516e+01 +-2.023562962772636453e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-1.768979362731587912e+01 +-1.622853806956639389e+01 +-1.672059177505631311e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-2.223497516213418734e+01 +-1.674428556677437285e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.919789892393435338e+01 +-1.575891057177604360e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.573575688418649499e+01 +-1.770445791497500210e+01 +-1.872623143483904329e+01 +-1.576210879656242447e+01 +-2.171328788034910318e+01 +-1.524908418974633584e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.775316746847640204e+01 +-1.771891055676373128e+01 +-1.476121399530314626e+01 +-1.623896172686500350e+01 +-1.524908418974633584e+01 +-1.672372654565477745e+01 +-1.768979362731587912e+01 +-1.524160916598259874e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.125008319798109468e+01 +-1.673969422044341115e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-2.023460262459656533e+01 +-1.870084868698528169e+01 +-1.772218610171639597e+01 +-1.821139996696712515e+01 +-1.524869807180282599e+01 +-2.123786065989509098e+01 +-1.671484481074108785e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.672792616789780240e+01 +-1.573671015552776176e+01 +-1.524982321799113549e+01 +-1.574365229112152953e+01 +-1.721570613406404959e+01 +-2.173695569560348773e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-1.623117287636750561e+01 +-1.872742342300878704e+01 +-2.075629790914084793e+01 +-1.621637955805593734e+01 +-1.924847523769095758e+01 +-1.721570613406404959e+01 +-1.572916749806838332e+01 +-1.724838158629343354e+01 +-1.775651912746867467e+01 +-1.574365229112152953e+01 +-1.922249952029773823e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.074120393459206468e+01 +-1.721988312766665175e+01 +-1.476121399530314626e+01 +-1.820424584685589053e+01 +-2.124288580546417649e+01 +-1.524908418974633584e+01 +-2.171328788034910318e+01 +-1.726222433387699695e+01 +-1.476121399530314626e+01 +-1.721988312766665175e+01 +-1.919769518928271168e+01 +-2.223497516213418734e+01 +-1.721570613406404959e+01 +-1.922888884520784103e+01 +-1.575891057177604360e+01 +-1.672277259766056545e+01 +-1.970925892460777717e+01 +-2.070986473588575905e+01 +-1.476121399530314626e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.723390373210351356e+01 +-1.825215661395933964e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.476121399530314626e+01 +-1.623875074298816301e+01 +-1.769488921695980466e+01 +-1.524982321799113549e+01 +-1.524147195489286943e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.024740473977704269e+01 +-1.575174991524399992e+01 +-1.718802835788423167e+01 +-1.918555022057355330e+01 +-1.624707538080579994e+01 +-1.624899520224715133e+01 +-1.724838158629343354e+01 +-1.622331972918252774e+01 +-1.675467789118465944e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.770188074099096198e+01 +-2.222221915589203434e+01 +-2.075629790914084793e+01 +-1.872487700516799336e+01 +-1.823666718221532079e+01 +-1.524908418974633584e+01 +-1.725438764197365415e+01 +-1.476121399530314626e+01 +-1.974931355056653715e+01 +-1.775772732217619065e+01 +-1.525525062138791199e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.818759384776939925e+01 +-1.919926542957836091e+01 +-2.120337326194452743e+01 +-1.871092833847788839e+01 +-1.974961612043972181e+01 +-1.823808337526899592e+01 +-1.721988312766665175e+01 +-1.524147195489286943e+01 +-1.526710153869924547e+01 +-1.623875074298816301e+01 +-1.771021753149668143e+01 +-1.772104503585201485e+01 +-2.073024874105894000e+01 +-1.823975359216384007e+01 +-2.224879281313178225e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.871092833847788839e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.673085677529565984e+01 +-1.672277259766056545e+01 +-1.476121399530314626e+01 +-1.873366092559705720e+01 +-2.173256547040595166e+01 +-1.817832044269419356e+01 +-1.677604342440111651e+01 +-1.826039236335151728e+01 +-1.476121399530314626e+01 +-1.675260518053548964e+01 +-1.922760590036968154e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.918935542705584041e+01 +-1.576158180483365001e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-2.068603939597364771e+01 +-1.721988312766665175e+01 +-1.969972037292302858e+01 +-1.626689428319512842e+01 +-1.725434979458147211e+01 +-2.019687890693889543e+01 +-1.625213922850407045e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-2.072142345778801698e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.624968019918323137e+01 +-1.476121399530314626e+01 +-1.818607921760268553e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.576677902956226340e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.071459065174929748e+01 +-1.868111097942953336e+01 +-1.720509847543797832e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.771422574456885712e+01 +-2.074120393459206468e+01 +-2.024129746737908775e+01 +-2.024542708031925287e+01 +-1.621768684890690437e+01 +-1.524908418974633584e+01 +-1.624899520224715133e+01 +-1.772217362413249475e+01 +-1.524869807180282599e+01 +-2.273083870283389629e+01 +-2.171413861831982217e+01 +-2.024171703694222657e+01 +-1.820080100407124846e+01 +-1.919801456158615593e+01 +-1.820984470438421354e+01 +-1.925165512769350329e+01 +-1.476121399530314626e+01 +-2.170723691096281627e+01 +-1.768979362731587912e+01 +-1.722810843095247080e+01 +-1.918539631988594252e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.771679924290980779e+01 +-1.921449930246589233e+01 +-1.624707538080579994e+01 +-2.171125522272987496e+01 +-1.624707538080579994e+01 +-2.075629790914084793e+01 +-2.075397199959315131e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.772882298182372551e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.673209625834821068e+01 +-1.820172362779080188e+01 +-1.527093049984081752e+01 +-1.977387132810761017e+01 +-2.019444802840741815e+01 +-1.573671015552776176e+01 +-2.175361348163336217e+01 +-2.024129746737908775e+01 +-1.719618497250093370e+01 +-1.871033085219637471e+01 +-1.822159775500104928e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-1.922100128193908830e+01 +-1.672599108999033035e+01 +-1.573671015552776176e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.673140919300280061e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.673085677529565984e+01 +-1.771393947807641922e+01 +-1.524908418974633584e+01 +-1.820080100407124846e+01 +-1.671858006336141145e+01 +-1.476121399530314626e+01 +-2.122170482463785390e+01 +-1.971857958298624425e+01 +-1.476121399530314626e+01 +-1.925144646310489449e+01 +-2.021879398416117724e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.721862556337221406e+01 +-1.672599108999033035e+01 +-1.775651912746867467e+01 +-1.572265874903633431e+01 +-1.868220452112003471e+01 +-1.871963922246305856e+01 +-1.573671015552776176e+01 +-1.823035575667507047e+01 +-1.774227154328873013e+01 +-1.917858385295538426e+01 +-1.676170940838562728e+01 +-1.623838307109894785e+01 +-2.173458106512043742e+01 +-1.774353575309854136e+01 +-2.173256547040595166e+01 +-1.975898463868803034e+01 +-1.973817701781753797e+01 +-2.122894938698999567e+01 +-1.527191419712450049e+01 +-1.770736366512549509e+01 +-1.524908418974633584e+01 +-2.024204329508548383e+01 +-1.674325273580744877e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.872023028932996169e+01 +-1.476121399530314626e+01 +-2.224000337054214782e+01 +-1.768979362731587912e+01 +-1.824397989366687511e+01 +-1.974216904010746632e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.623068968097969034e+01 +-1.725097808361455165e+01 +-1.624282679516225514e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.222517495552305533e+01 +-1.720789971422844289e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.623737399663061609e+01 +-1.721206179160600058e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.626444537000335089e+01 +-1.476121399530314626e+01 +-1.524160916598259874e+01 +-2.122205157807329101e+01 +-1.820080100407124846e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.524908418974633584e+01 +-1.574365229112152953e+01 +-1.623961616816850295e+01 +-1.673400629287548469e+01 +-1.817135481296195110e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.673898015532297734e+01 +-1.871033085219637471e+01 +-1.674922013248161790e+01 +-1.772660000527323731e+01 +-1.669025420133567295e+01 +-2.222517495552305533e+01 +-1.524908418974633584e+01 +-1.918227114432473712e+01 +-1.973838731116963885e+01 +-1.675514122835551589e+01 +-1.775316746847640204e+01 +-2.073157628695268784e+01 +-1.724838158629343354e+01 +-1.870573761771064625e+01 +-1.772660000527323731e+01 +-1.671980970055427917e+01 +-1.476121399530314626e+01 +-2.173256547040595166e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.624184012924291309e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.671039843285468507e+01 +-2.224000337054214782e+01 +-1.826989284592824703e+01 +-1.575500212791669163e+01 +-1.674142443227539445e+01 +-1.624777947689135971e+01 +-1.919425949831251188e+01 +-1.873165036379779735e+01 +-1.823175257557203821e+01 +-1.527093049984081752e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.524869807180282599e+01 +-2.020337246654747432e+01 +-2.074120393459206468e+01 +-1.476121399530314626e+01 +-2.222216290213661694e+01 +-1.622331972918252774e+01 +-1.819555549106644321e+01 +-1.572916749806838332e+01 +-2.175801482215007709e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.573671015552776176e+01 +-1.721570613406404959e+01 +-1.771422574456885712e+01 +-1.575941674449784813e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.772217362413249475e+01 +-2.173342233487688802e+01 +-1.622371151329624439e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.626689428319512842e+01 +-1.575547888688316611e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-2.073276991803014013e+01 +-1.573671015552776176e+01 +-1.526710153869924547e+01 +-2.273083870283389629e+01 +-1.821934196457588939e+01 +-1.622569173320911418e+01 +-1.572854899885174440e+01 +-2.026966080094772238e+01 +-1.672368307968645951e+01 +-1.868349242721672354e+01 +-2.018535029303951234e+01 +-1.769381237321958622e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.823035575667507047e+01 +-2.070746370004844294e+01 +-1.524908418974633584e+01 +-1.623488952797946538e+01 +-1.476121399530314626e+01 +-2.028182468626358315e+01 +-1.726446962142870944e+01 +-1.572916749806838332e+01 +-1.675467789118465944e+01 +-1.624011578680249457e+01 +-1.476121399530314626e+01 +-1.723618582583572234e+01 +-2.273083870283389629e+01 +-1.526710153869924547e+01 +-1.524908418974633584e+01 +-1.622331972918252774e+01 +-1.576210879656242447e+01 +-2.174617931936320048e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.675467789118465944e+01 +-1.778509329951253548e+01 +-2.020456596012656902e+01 +-1.575941674449784813e+01 +-1.769352391111501532e+01 +-2.126926389890097369e+01 +-1.725710868371477247e+01 +-1.923771239374057274e+01 +-2.224000337054214782e+01 +-1.873318219801290496e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.574241281237977041e+01 +-1.626689428319512842e+01 +-1.925794384627054612e+01 +-1.524908418974633584e+01 +-1.768979362731587912e+01 +-1.476121399530314626e+01 +-2.123294712121380456e+01 +-1.476121399530314626e+01 +-1.623446448135860720e+01 +-1.576112879427005176e+01 +-1.818008777670253906e+01 +-1.970364265417879679e+01 +-1.720263079431909858e+01 +-2.224879281313178225e+01 +-1.623488952797946538e+01 +-1.727669463051027421e+01 +-1.722012193963501048e+01 +-1.672231191301397502e+01 +-1.772125069322502355e+01 +-1.725710868371477247e+01 +-1.524908418974633584e+01 +-1.817945886680194079e+01 +-1.926005160392794124e+01 +-2.175801482215007709e+01 +-1.624707538080579994e+01 +-1.823609960693417520e+01 +-1.920949430540230196e+01 +-1.772660000527323731e+01 +-2.071481865277864642e+01 +-1.971788903880246835e+01 +-1.823035575667507047e+01 +-1.476121399530314626e+01 +-1.672231191301397502e+01 +-1.672277259766056545e+01 +-1.869924242087718014e+01 +-1.876168441035147794e+01 +-1.575500212791669163e+01 +-1.624654151831733984e+01 +-1.476121399530314626e+01 +-1.975315050714540988e+01 +-1.574910595324540274e+01 +-1.871786081288957249e+01 +-1.773186366090387978e+01 +-1.920500688072428375e+01 +-1.774902923630338236e+01 +-1.672277259766056545e+01 +-1.623603104653742335e+01 +-1.476121399530314626e+01 +-2.123786065989509098e+01 +-1.772535070320561346e+01 +-1.721570613406404959e+01 +-1.724638823931150711e+01 +-1.720263079431909858e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.721519861582816446e+01 +-1.524869807180282599e+01 +-1.823666718221532079e+01 +-1.673668984784076841e+01 +-2.222221915589203434e+01 +-2.224173453399332345e+01 +-1.476121399530314626e+01 +-2.073684767199585721e+01 +-1.476121399530314626e+01 +-1.621637955805593734e+01 +-1.874878564670296655e+01 +-1.972683403807351965e+01 +-1.476121399530314626e+01 +-1.870379880181302212e+01 +-2.224879281313178225e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.525525062138791199e+01 +-1.574715332371951604e+01 +-1.524908418974633584e+01 +-1.721538569198511226e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-1.972235358500437385e+01 +-1.723618582583572234e+01 +-1.574715332371951604e+01 +-1.476121399530314626e+01 +-1.974162737028647641e+01 +-2.224879281313178225e+01 +-2.126350578254113799e+01 +-1.772217362413249475e+01 +-1.675514122835551589e+01 +-2.024129746737908775e+01 +-1.726253084991973807e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.671315867724711879e+01 +-1.721038905335863589e+01 +-1.820110645697808494e+01 +-1.920756843093332478e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-2.120514229137396711e+01 +-1.573014140381678772e+01 +-1.871033085219637471e+01 +-1.672499625067947093e+01 +-1.817549114744108607e+01 +-1.721570613406404959e+01 +-1.769809280609963764e+01 +-2.126350578254113799e+01 +-2.224000337054214782e+01 +-1.720300929030401349e+01 +-2.273083870283389629e+01 +-1.923188530568091537e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.871033085219637471e+01 +-1.871033085219637471e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.724838158629343354e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.527337507837401809e+01 +-1.476121399530314626e+01 +-1.973217090423155540e+01 +-1.671627868033377950e+01 +-1.524908418974633584e+01 +-1.624707538080579994e+01 +-1.576210879656242447e+01 +-1.868220452112003471e+01 +-1.621637955805593734e+01 +-1.526710153869924547e+01 +-2.224000337054214782e+01 +-1.724409046467568984e+01 +-1.671039843285468507e+01 +-1.771760426503834651e+01 +-1.476121399530314626e+01 +-1.572854899885174440e+01 +-1.823609960693417520e+01 +-1.968756957538227681e+01 +-1.673668984784076841e+01 +-1.527093049984081752e+01 +-1.973690637175820584e+01 +-1.774530815917752236e+01 +-1.622576612183031131e+01 +-1.723541585542474408e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.769224685667877495e+01 +-2.075176627020447029e+01 +-1.921683229546970750e+01 +-2.024129746737908775e+01 +-1.621747192744323129e+01 +-1.724897098043182098e+01 +-1.922100128193908830e+01 +-1.623737399663061609e+01 +-1.524908418974633584e+01 +-1.924586333681922312e+01 +-1.476121399530314626e+01 +-1.675514122835551589e+01 +-1.476121399530314626e+01 +-1.675467789118465944e+01 +-1.725591159367355942e+01 +-1.720070440719853622e+01 +-1.624832123162859787e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.818916914051028400e+01 +-1.674594070027254133e+01 +-1.872831680651722763e+01 +-1.772014412657385662e+01 +-1.724229061328456325e+01 +-1.675923320270453587e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-1.673048821765179284e+01 +-2.025606741753175655e+01 +-1.622331972918252774e+01 +-1.624507181079695428e+01 +-1.622522609716127562e+01 +-1.527093049984081752e+01 +-2.123122805991979689e+01 +-1.817768335816179004e+01 +-1.575941674449784813e+01 +-1.526710153869924547e+01 +-2.223497516213418734e+01 +-1.877880311482571329e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.624282679516225514e+01 +-1.624282679516225514e+01 +-1.876168441035147794e+01 +-2.025448740651342305e+01 +-1.769955819423957166e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.524982321799113549e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.624282679516225514e+01 +-1.773015376045774261e+01 +-2.021371760524901262e+01 +-1.820608450387680932e+01 +-1.772598974940754957e+01 +-1.823609960693417520e+01 +-1.723898958522944724e+01 +-1.725010018486193530e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-2.175801482215007709e+01 +-2.224000337054214782e+01 +-1.723571963611086133e+01 +-1.476121399530314626e+01 +-1.576210879656242447e+01 +-1.871033085219637471e+01 +-1.575941674449784813e+01 +-1.772754573296659331e+01 +-1.575891057177604360e+01 +-1.524147195489286943e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-1.623641908174792547e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.925882217573040478e+01 +-1.823666718221532079e+01 +-1.723873303077533947e+01 +-1.971058156569212372e+01 +-1.575941918869449232e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.171328788034910318e+01 +-1.673668984784076841e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-2.125030255279273206e+01 +-2.223497516213418734e+01 +-1.626689428319512842e+01 +-1.773015376045774261e+01 +-2.224173453399332345e+01 +-2.224000337054214782e+01 +-1.624386184863087834e+01 +-1.626888752469497845e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-2.076454914101183391e+01 +-1.574415113675572009e+01 +-1.624707538080579994e+01 +-2.021664899926371106e+01 +-1.724838158629343354e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.823673758690692281e+01 +-1.673096835416569661e+01 +-1.674739960707474395e+01 +-1.672231191301397502e+01 +-1.820608450387680932e+01 +-2.222221915589203434e+01 +-2.222247508060926791e+01 +-1.624394014228976957e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.727094255327546790e+01 +-1.922053526059110595e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.918935542705584041e+01 +-1.573671015552776176e+01 +-2.070746370004844294e+01 +-2.074313998698802308e+01 +-1.869554098349383153e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-2.022457298546748206e+01 +-2.024725712422599599e+01 +-1.524869807180282599e+01 +-1.573773743783412904e+01 +-1.672059177505631311e+01 +-1.574365229112152953e+01 +-1.921728856969237142e+01 +-1.725010018486193530e+01 +-1.971202130016335019e+01 +-1.972968593430695705e+01 +-1.476121399530314626e+01 +-1.821128066724145356e+01 +-1.525525062138791199e+01 +-1.775935426900304037e+01 +-1.922760590036968154e+01 +-1.674142443227539445e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.919340857837019243e+01 +-1.719995975008564670e+01 +-1.624330830693308059e+01 +-1.572916749806838332e+01 +-1.574415113675572009e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.070840790829773326e+01 +-2.223497516213418734e+01 +-1.524908418974633584e+01 +-2.071101695394360220e+01 +-1.772217362413249475e+01 +-1.973838731116963885e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.726429041400032105e+01 +-1.675467789118465944e+01 +-1.723134545963758413e+01 +-1.723745447995607805e+01 +-2.123786065989509098e+01 +-2.074009914378694219e+01 +-1.624282679516225514e+01 +-1.524869807180282599e+01 +-1.721988312766665175e+01 +-1.873965512608216599e+01 +-1.875295739521737914e+01 +-1.524982321799113549e+01 +-1.976645466350554159e+01 +-1.623488952797946538e+01 +-1.575591656132124463e+01 +-1.874059338647423800e+01 +-1.723052371190874155e+01 +-1.873965512608216599e+01 +-1.527337507837401809e+01 +-1.721570613406404959e+01 +-1.921620051715282784e+01 +-1.673668984784076841e+01 +-1.971437931508216934e+01 +-2.126350578254113799e+01 +-1.921708269734753571e+01 +-1.574365229112152953e+01 +-1.676170940838562728e+01 +-1.476121399530314626e+01 +-2.024494414014838384e+01 +-1.524869807180282599e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.572916749806838332e+01 +-1.721988312766665175e+01 +-1.527093049984081752e+01 +-1.823808337526899592e+01 +-1.869924242087718014e+01 +-2.019877397045419087e+01 +-1.874888505650621795e+01 +-2.122795143893339187e+01 +-1.476121399530314626e+01 +-1.770807936570541585e+01 +-1.575480887862977042e+01 +-1.772993204690818558e+01 +-1.770939713313940445e+01 +-1.621637955805593734e+01 +-1.524908418974633584e+01 +-1.723618582583572234e+01 +-2.171413861831982217e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-2.126350578254113799e+01 +-1.723029543104035710e+01 +-1.674428556677437285e+01 +-1.773153477189657323e+01 +-2.222517495552305533e+01 +-1.673315204625662389e+01 +-1.723406422660010762e+01 +-1.727427519437949499e+01 +-1.723618582583572234e+01 +-2.171328788034910318e+01 +-1.476121399530314626e+01 +-1.572854899885174440e+01 +-1.623117287636750561e+01 +-1.526710153869924547e+01 +-1.623344084107452190e+01 +-1.820608450387680932e+01 +-1.773896056466678317e+01 +-1.723618582583572234e+01 +-1.525525062138791199e+01 +-1.721862556337221406e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.773484771647067504e+01 +-1.725424135558414207e+01 +-1.573671015552776176e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.575838338479935175e+01 +-1.572854899885174440e+01 +-2.273083870283389629e+01 +-1.872820926977790990e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.574093506489515804e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.769224685667877495e+01 +-1.920524975306400961e+01 +-1.672231191301397502e+01 +-1.572265874903633431e+01 +-1.674142443227539445e+01 +-1.971475618254230966e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.871092833847788839e+01 +-1.624282679516225514e+01 +-1.672599108999033035e+01 +-1.574365229112152953e+01 +-1.621747192744323129e+01 +-2.222221915589203434e+01 +-1.526710153869924547e+01 +-1.971058156569212372e+01 +-1.476121399530314626e+01 +-1.823925730412619828e+01 +-1.673668984784076841e+01 +-2.024129746737908775e+01 +-1.575480887862977042e+01 +-1.622331972918252774e+01 +-1.772239468441026844e+01 +-1.669755482749530628e+01 +-1.771583971727682183e+01 +-1.476121399530314626e+01 +-1.675514122835551589e+01 +-1.773582030646098673e+01 +-1.823666718221532079e+01 +-1.823666718221532079e+01 +-1.769407381584957406e+01 +-2.173256547040595166e+01 +-1.723618582583572234e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.525677914886782283e+01 +-2.120207002984464850e+01 +-2.071459065174929748e+01 +-2.273083870283389629e+01 +-1.624899520224715133e+01 +-2.224000337054214782e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-1.524982321799113549e+01 +-1.723337861536438709e+01 +-1.575480887862977042e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.973817701781753797e+01 +-2.120447254404176363e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.823485239070890174e+01 +-1.922635649125861690e+01 +-1.873965512608216599e+01 +-1.575941674449784813e+01 +-1.524147195489286943e+01 +-1.726260530698557361e+01 +-1.524908418974633584e+01 +-2.070875976338370350e+01 +-1.476121399530314626e+01 +-1.626121606810474063e+01 +-2.023294506340621979e+01 +-1.823413916523201550e+01 +-1.621637955805593734e+01 +-1.624406660119286627e+01 +-2.071459065174929748e+01 +-1.673668984784076841e+01 +-1.774530815917752236e+01 +-1.672231191301397502e+01 +-1.574365229112152953e+01 +-1.871194095429955340e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-2.173635833472344103e+01 +-1.524908418974633584e+01 +-2.075730237035045533e+01 +-1.722073389168845026e+01 +-2.071831551402138771e+01 +-2.222517495552305533e+01 +-1.672231191301397502e+01 +-1.974781354417776313e+01 +-1.925882217573040478e+01 +-1.721862556337221406e+01 +-1.726429041400032105e+01 +-2.017991961889664054e+01 +-1.625568452565532596e+01 +-2.173635833472344103e+01 +-2.072902765182040241e+01 +-1.673668984784076841e+01 +-1.524869807180282599e+01 +-2.123786065989509098e+01 +-1.525525062138791199e+01 +-1.721555292547076377e+01 +-1.626689428319512842e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.672844394444672744e+01 +-1.627387535971141119e+01 +-1.769407381584957406e+01 +-1.672884421037827707e+01 +-1.727669463051027421e+01 +-2.222221915589203434e+01 +-1.575941674449784813e+01 +-1.823035575667507047e+01 +-1.922671238747313183e+01 +-1.621671222869046147e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.976662917908997130e+01 +-2.120411165261994668e+01 +-1.823749470596975897e+01 +-1.575500212791669163e+01 +-1.574365229112152953e+01 +-1.476121399530314626e+01 +-1.623488952797946538e+01 +-1.622853806956639389e+01 +-2.173090294339966277e+01 +-1.672844394444672744e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.823750006740323215e+01 +-1.775651912746867467e+01 +-1.524908418974633584e+01 +-1.721862556337221406e+01 +-1.973970570055487528e+01 +-1.524908418974633584e+01 +-1.672277259766056545e+01 +-1.524869807180282599e+01 +-1.526710153869924547e+01 +-1.922635649125861690e+01 +-1.672599108999033035e+01 +-1.671204798526477475e+01 +-1.821637408358242993e+01 +-1.772660000527323731e+01 +-1.526710153869924547e+01 +-1.573806653833328539e+01 +-2.273083870283389629e+01 +-1.573671015552776176e+01 +-1.918992027665089140e+01 +-1.626701727170046752e+01 +-1.774530815917752236e+01 +-1.724907359714923416e+01 +-1.476121399530314626e+01 +-1.676223042697756682e+01 +-1.576677902956226340e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.922018939185947772e+01 +-1.922018939185947772e+01 +-1.624707538080579994e+01 +-1.975796854409565384e+01 +-1.823803204817916068e+01 +-2.174480670537584004e+01 +-1.476121399530314626e+01 +-1.875380431414634685e+01 +-1.476121399530314626e+01 +-1.575480887862977042e+01 +-1.970920692889606585e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.868539653291360025e+01 +-2.121865855027484571e+01 +-1.973817701781753797e+01 +-1.721570613406404959e+01 +-1.723541585542474408e+01 +-1.524982321799113549e+01 +-1.624707538080579994e+01 +-1.675467789118465944e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.922888884520784103e+01 +-1.524908418974633584e+01 +-1.976645466350554159e+01 +-1.524908418974633584e+01 +-1.526710153869924547e+01 +-1.722000785778043053e+01 +-1.624968019918323137e+01 +-1.827241817337270646e+01 +-1.575174991524399992e+01 +-1.524908418974633584e+01 +-1.623488952797946538e+01 +-1.476121399530314626e+01 +-1.823035575667507047e+01 +-1.973817701781753797e+01 +-1.721570613406404959e+01 +-1.773870084615713338e+01 +-1.621890885254023473e+01 +-1.673668984784076841e+01 +-2.273083870283389629e+01 +-1.773582030646098673e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.574338251301774250e+01 +-2.070800668582365134e+01 +-2.223497516213418734e+01 +-1.672277259766056545e+01 +-1.772999389696753170e+01 +-1.624707538080579994e+01 +-1.973803425252446786e+01 +-1.920757820087878187e+01 +-1.573671015552776176e+01 +-1.476121399530314626e+01 +-1.622371151329624439e+01 +-1.524908418974633584e+01 +-1.574715332371951604e+01 +-1.675467789118465944e+01 +-1.774353575309854136e+01 +-2.174830988097028950e+01 +-1.623117287636750561e+01 +-2.223497516213418734e+01 +-1.770813655538357878e+01 +-1.575941674449784813e+01 +-1.721988312766665175e+01 +-1.925501931337553074e+01 +-2.222247508060926791e+01 +-1.726446962142870944e+01 +-2.027344163574385405e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.676170940838562728e+01 +-2.071831551402138771e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.672884421037827707e+01 +-1.524908418974633584e+01 +-1.572916749806838332e+01 +-1.476121399530314626e+01 +-1.821919819377153971e+01 +-1.476121399530314626e+01 +-1.721570613406404959e+01 +-1.574338251301774250e+01 +-1.872352398712596155e+01 +-1.573671015552776176e+01 +-1.774902923630338236e+01 +-2.124514351398384804e+01 +-1.820608450387680932e+01 +-1.476121399530314626e+01 +-1.774530815917752236e+01 +-1.524908418974633584e+01 +-1.771650727420470162e+01 +-1.976733592220676172e+01 +-2.074144729451301927e+01 +-1.626907270837495290e+01 +-2.273083870283389629e+01 +-1.621815045711349867e+01 +-1.672599108999033035e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.173133788547372447e+01 +-2.222517495552305533e+01 +-1.621637955805593734e+01 +-1.774227154328873013e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.822880606939982329e+01 +-1.874590785030669693e+01 +-1.820406091860502329e+01 +-1.621747192744323129e+01 +-1.820080100407124846e+01 +-1.672277259766056545e+01 +-2.273083870283389629e+01 +-1.674428556677437285e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.621637955805593734e+01 +-1.874878564670296655e+01 +-1.476121399530314626e+01 +-1.677397257584128809e+01 +-1.823673758690692281e+01 +-1.768979362731587912e+01 +-1.623488952797946538e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.919370160326013419e+01 +-2.224000337054214782e+01 +-1.673085677529565984e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-2.073893354297136327e+01 +-1.626701727170046752e+01 +-2.075629790914084793e+01 +-2.073757424634890967e+01 +-2.175801482215007709e+01 +-2.024129746737908775e+01 +-1.871400079591393961e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-1.624968019918323137e+01 +-1.624707538080579994e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.775651912746867467e+01 +-2.023449871477346917e+01 +-1.820386290593106438e+01 +-1.524908418974633584e+01 +-1.672844394444672744e+01 +-2.222247508060926791e+01 +-1.922279200625156648e+01 +-1.727019333459753270e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.023461290750436348e+01 +-1.721038905335863589e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.624899520224715133e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.527093049984081752e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-1.572916749806838332e+01 +-1.921692977974032956e+01 +-1.626151001147714936e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.072877267841517934e+01 +-1.672277259766056545e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.820080100407124846e+01 +-1.874221154287826252e+01 +-2.127029659366525749e+01 +-1.672884421037827707e+01 +-1.476121399530314626e+01 +-2.222221915589203434e+01 +-1.524869807180282599e+01 +-1.674469191097587739e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.972070966722984764e+01 +-2.273083870283389629e+01 +-1.625862964291810542e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.820406091860502329e+01 +-1.476121399530314626e+01 +-1.824276240358334178e+01 +-1.673337673079402776e+01 +-1.719995975008564670e+01 +-1.974541565081258554e+01 +-1.572265874903633431e+01 +-1.476121399530314626e+01 +-2.121865855027484571e+01 +-1.476121399530314626e+01 +-1.973021702507443109e+01 +-1.476121399530314626e+01 +-1.926100443992202926e+01 +-1.476121399530314626e+01 +-1.575547888688316611e+01 +-1.873412853962380353e+01 +-2.125030255279273206e+01 +-1.623856472485708480e+01 +-1.725291462811145138e+01 +-1.777842643768329012e+01 +-2.024740473977704269e+01 +-1.924505227486462999e+01 +-1.768380837052382049e+01 +-1.871225528290309725e+01 +-1.772660000527323731e+01 +-1.526710153869924547e+01 +-1.773109930657913580e+01 +-1.574715332371951604e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.820608450387680932e+01 +-1.476121399530314626e+01 +-1.524982321799113549e+01 +-2.075629790914084793e+01 +-1.973629137844259418e+01 +-1.821182377061506941e+01 +-1.624777947689135971e+01 +-1.575500212791669163e+01 +-1.575500212791669163e+01 +-2.273083870283389629e+01 +-1.723312668053481289e+01 +-1.922888884520784103e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.769735274376119705e+01 +-2.273083870283389629e+01 +-1.674142443227539445e+01 +-1.973817701781753797e+01 +-1.575500212791669163e+01 +-2.224000337054214782e+01 +-1.874143904901919555e+01 +-1.722746827751542753e+01 +-1.675467789118465944e+01 +-1.672599108999033035e+01 +-2.022454497886462121e+01 +-2.024725712422599599e+01 +-1.975437993603084053e+01 +-2.173256547040595166e+01 +-1.524908418974633584e+01 +-1.722269060721612277e+01 +-1.624330830693308059e+01 +-1.723337861536438709e+01 +-1.823889231222715779e+01 +-1.476121399530314626e+01 +-1.870103423027150669e+01 +-1.724050693102397247e+01 +-2.020679221939058934e+01 +-1.823666718221532079e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.572854899885174440e+01 +-1.624899520224715133e+01 +-1.621015720338139943e+01 +-1.524160916598259874e+01 +-1.575941674449784813e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-1.524908418974633584e+01 +-1.826068997035412167e+01 +-2.174095199830723146e+01 +-1.724838158629343354e+01 +-1.725591159367355942e+01 +-1.874590785030669693e+01 +-1.973838731116963885e+01 +-1.476121399530314626e+01 +-2.121865855027484571e+01 +-1.725387134856385885e+01 +-1.723337861536438709e+01 +-1.476121399530314626e+01 +-1.769488921695980466e+01 +-1.724409151079514047e+01 +-1.626888752469497845e+01 +-1.674084722187516050e+01 +-1.524908418974633584e+01 +-1.575941674449784813e+01 +-1.917724929383264865e+01 +-1.627867642393005099e+01 +-1.770510475769095748e+01 +-2.073730736880149550e+01 +-2.173256547040595166e+01 +-2.021271273183619499e+01 +-1.524908418974633584e+01 +-1.719618497250093370e+01 +-1.621637955805593734e+01 +-1.676675621789874526e+01 +-1.673668984784076841e+01 +-1.524908418974633584e+01 +-1.721988312766665175e+01 +-1.524908418974633584e+01 +-2.174196647235378421e+01 +-1.476121399530314626e+01 +-2.222247508060926791e+01 +-1.725591159367355942e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.675467789118465944e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.825215661395933964e+01 +-1.577892733665078850e+01 +-1.572916749806838332e+01 +-1.527093049984081752e+01 +-1.672985465088941837e+01 +-1.922249952029773823e+01 +-1.772218610171639597e+01 +-1.574365229112152953e+01 +-1.671204798526477475e+01 +-1.524908418974633584e+01 +-1.720468235604566232e+01 +-1.674594070027254133e+01 +-2.173992036335968336e+01 +-2.273083870283389629e+01 +-1.572916749806838332e+01 +-1.723746345477885811e+01 +-2.078891044620021589e+01 +-1.721570613406404959e+01 +-1.476121399530314626e+01 +-1.974640565594458508e+01 +-1.524147195489286943e+01 +-2.125030255279273206e+01 +-2.273083870283389629e+01 +-1.871583922947093015e+01 +-1.574434717685975293e+01 +-1.772217362413249475e+01 +-1.724838158629343354e+01 +-2.273083870283389629e+01 +-1.627140543256985694e+01 +-1.922230874411467383e+01 +-1.524982321799113549e+01 +-1.724392566301624896e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.175801482215007709e+01 +-2.125030255279273206e+01 +-1.721862556337221406e+01 +-1.925779813747088909e+01 +-1.968417849024763555e+01 +-1.775651912746867467e+01 +-1.476121399530314626e+01 +-2.174480670537584004e+01 +-1.527191419712450049e+01 +-2.224879281313178225e+01 +-1.476121399530314626e+01 +-2.073647524764212591e+01 +-1.669916777989973156e+01 +-1.768426182203620201e+01 +-1.476121399530314626e+01 +-2.170723691096281627e+01 +-2.072902765182040241e+01 +-1.720263079431909858e+01 +-1.573671015552776176e+01 +-1.774530815917752236e+01 +-1.476121399530314626e+01 +-1.815556207297556668e+01 +-1.723541585542474408e+01 +-1.674858455771563470e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.724409046467568984e+01 +-1.624707538080579994e+01 +-1.973885270843084427e+01 +-1.621637955805593734e+01 +-1.869924242087718014e+01 +-1.623068968097969034e+01 +-1.572265874903633431e+01 +-1.820900970154662346e+01 +-2.222221915589203434e+01 +-1.524869807180282599e+01 +-1.823413916523201550e+01 +-1.922100128193908830e+01 +-1.873678990782827114e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.822014251320470279e+01 +-1.575500212791669163e+01 +-2.173256547040595166e+01 +-1.572854899885174440e+01 +-2.018005757832667868e+01 +-1.476121399530314626e+01 +-1.973021702507443109e+01 +-1.476121399530314626e+01 +-1.622331972918252774e+01 +-1.819307746000575321e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.622331972918252774e+01 +-1.524908418974633584e+01 +-1.575547888688316611e+01 +-1.773582030646098673e+01 +-1.675523568882430325e+01 +-1.622331972918252774e+01 +-1.476121399530314626e+01 +-1.874878564670296655e+01 +-1.719340187552683119e+01 +-1.922703178757360121e+01 +-1.672113302929179568e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.621637955805593734e+01 +-2.020684596190364246e+01 +-1.624707538080579994e+01 +-2.273083870283389629e+01 +-1.476121399530314626e+01 +-2.224879281313178225e+01 +-1.922703178757360121e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.025656428814633614e+01 +-1.772362708633164630e+01 +-1.677604342440111651e+01 +-2.273083870283389629e+01 +-1.624255169606767168e+01 +-1.672379217782949112e+01 +-2.173635833472344103e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.775651912746867467e+01 +-1.672818364533988955e+01 +-2.273083870283389629e+01 +-1.820488902360093775e+01 +-1.769407381584957406e+01 +-2.122376992995476641e+01 +-1.623961616816850295e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-2.172450756719466369e+01 +-1.871786081288957249e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.822442977194133817e+01 +-1.675686302479773104e+01 +-1.867001029691583369e+01 +-2.273083870283389629e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-1.772217362413249475e+01 +-1.721570613406404959e+01 +-2.122376992995476641e+01 +-1.819574372623203473e+01 +-2.171360073915518285e+01 +-1.524908418974633584e+01 +-1.575480887862977042e+01 +-1.873965512608216599e+01 +-1.721570613406404959e+01 +-1.524908418974633584e+01 +-1.524147195489286943e+01 +-1.573671015552776176e+01 +-1.524908418974633584e+01 +-1.873965512608216599e+01 +-1.870103423027150669e+01 +-1.925100646012489491e+01 +-1.925779813747088909e+01 +-1.574365229112152953e+01 +-1.575838338479935175e+01 +-1.768426182203620201e+01 +-1.476121399530314626e+01 +-1.920534279550026824e+01 +-1.820039631745250830e+01 +-1.672277259766056545e+01 +-1.524869807180282599e+01 +-1.970794177908450706e+01 +-2.122626212664006928e+01 +-1.672884421037827707e+01 +-1.526748398200428447e+01 +-1.476121399530314626e+01 +-2.068864281997302967e+01 +-1.626480553453878386e+01 +-1.575174991524399992e+01 +-1.620318880666199135e+01 +-1.672884421037827707e+01 +-1.476121399530314626e+01 +-1.527093049984081752e+01 +-1.770736366512549509e+01 +-1.974974271802293302e+01 +-1.476121399530314626e+01 +-1.720110707210196921e+01 +-1.775001916423232728e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.773770924773740632e+01 +-1.476121399530314626e+01 +-1.724838158629343354e+01 +-1.675467789118465944e+01 +-2.273083870283389629e+01 +-1.573090552987499358e+01 +-1.524908418974633584e+01 +-2.125030255279273206e+01 +-1.476121399530314626e+01 +-1.623068968097969034e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.621747192744323129e+01 +-1.524908418974633584e+01 +-1.676471597090253240e+01 +-1.476121399530314626e+01 +-1.526710153869924547e+01 +-1.572265874903633431e+01 +-1.626054207452331823e+01 +-1.970761062602291247e+01 +-1.575480887862977042e+01 +-1.476121399530314626e+01 +-1.973564499515345716e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.918139615868678760e+01 +-1.818759384776939925e+01 +-2.273083870283389629e+01 +-1.918935542705584041e+01 +-1.526710153869924547e+01 +-2.174480670537584004e+01 +-2.124288580546417649e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-1.722689516238723684e+01 +-2.173992036335968336e+01 +-1.524147195489286943e+01 +-1.721570613406404959e+01 +-1.770606328302145371e+01 +-1.875340879296892993e+01 +-2.019876704091832664e+01 +-1.772660000527323731e+01 +-2.122527501750074563e+01 +-1.868327583019824800e+01 +-1.526710153869924547e+01 +-2.222221915589203434e+01 +-1.973167600370641850e+01 +-1.976096635709246385e+01 +-1.819307746000575321e+01 +-1.476121399530314626e+01 +-1.772598974940754957e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.524908418974633584e+01 +-1.919973922861363747e+01 +-1.476121399530314626e+01 +-1.669829695597889696e+01 +-2.126350578254113799e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.822159775500104928e+01 +-1.476121399530314626e+01 +-2.222015462387604856e+01 +-1.874590785030669693e+01 +-1.924873729021784285e+01 +-2.173992036335968336e+01 +-1.977139888638158993e+01 +-1.623327208010990574e+01 +-1.672844394444672744e+01 +-1.524869807180282599e+01 +-1.823609960693417520e+01 +-1.725688403572214469e+01 +-1.972334968186569526e+01 +-1.823808337526899592e+01 +-2.224879281313178225e+01 +-1.723618582583572234e+01 +-2.024980312247824443e+01 +-1.922249952029773823e+01 +-1.725102345612314636e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.868146143304237938e+01 +-1.672880942820884087e+01 +-1.476121399530314626e+01 +-1.676170940838562728e+01 +-2.222148043750684110e+01 +-2.173992036335968336e+01 +-2.124474832269010349e+01 +-1.721038905335863589e+01 +-1.722599064651131684e+01 +-2.172683406269010220e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.674657900979885383e+01 +-1.871092833847788839e+01 +-1.574365229112152953e+01 +-1.677641585438828642e+01 +-1.476121399530314626e+01 +-1.973885270843084427e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.820080100407124846e+01 +-1.775651912746867467e+01 +-1.621637955805593734e+01 +-1.973021702507443109e+01 +-2.021271273183619499e+01 +-2.173992036335968336e+01 +-1.772217362413249475e+01 +-1.823609960693417520e+01 +-1.623488952797946538e+01 +-1.574365229112152953e+01 +-1.970220478558904631e+01 +-1.476121399530314626e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.973167600370641850e+01 +-1.626907270837495290e+01 +-1.624968019918323137e+01 +-1.574365229112152953e+01 +-1.674209319887627601e+01 +-1.674901352978258728e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.575500212791669163e+01 +-2.175801482215007709e+01 +-1.624282679516225514e+01 +-1.624707538080579994e+01 +-1.819631526220892326e+01 +-1.774353575309854136e+01 +-1.476121399530314626e+01 +-1.772660000527323731e+01 +-1.524147195489286943e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.777842643768329012e+01 +-1.524869807180282599e+01 +-1.774530815917752236e+01 +-2.024542708031925287e+01 +-1.719482900945070725e+01 +-2.120447254404176363e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.769224685667877495e+01 +-1.575941674449784813e+01 +-1.771109972052087400e+01 +-1.669943025450141150e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.973021702507443109e+01 +-1.974179119130645432e+01 +-1.626689428319512842e+01 +-1.870371294862355427e+01 +-1.769735274376119705e+01 +-1.572265874903633431e+01 +-1.873965512608216599e+01 +-2.273083870283389629e+01 +-1.823975359216384007e+01 +-1.870084868698528169e+01 +-2.273083870283389629e+01 +-1.922703178757360121e+01 +-1.476121399530314626e+01 +-1.873252467342770800e+01 +-1.623737399663061609e+01 +-1.926739285657639300e+01 +-1.524869807180282599e+01 +-2.023256598729861722e+01 +-1.725429261508091727e+01 +-1.976096635709246385e+01 +-1.621015720338139943e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.874059338647423800e+01 +-2.077718805192231599e+01 +-1.825215661395933964e+01 +-1.721783661017421707e+01 +-1.623856472485708480e+01 +-1.476121399530314626e+01 +-1.772993204690818558e+01 +-1.476121399530314626e+01 +-2.123306860593270073e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.920745436286413010e+01 +-1.868461340945898641e+01 +-2.122916722961221936e+01 +-2.125030255279273206e+01 +-1.524908418974633584e+01 +-2.125030255279273206e+01 +-2.075914697405290710e+01 +-1.524908418974633584e+01 +-2.074120393459206468e+01 +-1.823609960693417520e+01 +-2.224000337054214782e+01 +-1.525677914886782283e+01 +-1.476121399530314626e+01 +-1.872081342347571109e+01 +-1.526710153869924547e+01 +-1.675467789118465944e+01 +-1.821387752477468780e+01 +-2.024129746737908775e+01 +-2.174480670537584004e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.172450756719466369e+01 +-2.024725712422599599e+01 +-1.672844394444672744e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.573671015552776176e+01 +-1.627206085421737924e+01 +-1.924505227486462999e+01 +-1.723712373983036628e+01 +-1.873581044304184573e+01 +-1.476121399530314626e+01 +-1.574365229112152953e+01 +-2.074186931354768149e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.123786065989509098e+01 +-2.273083870283389629e+01 +-1.624282679516225514e+01 +-1.573773743783412904e+01 +-1.623896172686500350e+01 +-1.476121399530314626e+01 +-1.623417494482859524e+01 +-1.822159775500104928e+01 +-2.023562962772636453e+01 +-1.476121399530314626e+01 +-1.624707538080579994e+01 +-1.675467789118465944e+01 +-1.672231191301397502e+01 +-2.022018317014588362e+01 +-1.623117287636750561e+01 +-1.624707538080579994e+01 +-1.524160916598259874e+01 +-1.573773743783412904e+01 +-1.526710153869924547e+01 +-2.222221915589203434e+01 +-1.772598974940754957e+01 +-1.621801563926129930e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.874579534888891885e+01 +-1.823925730412619828e+01 +-1.624282679516225514e+01 +-1.624707538080579994e+01 +-2.126350578254113799e+01 +-1.476121399530314626e+01 +-1.874590785030669693e+01 +-1.673668984784076841e+01 +-1.821401371704222782e+01 +-1.721038905335863589e+01 +-2.026106478892402052e+01 +-1.576210879656242447e+01 +-1.573671015552776176e+01 +-1.768979362731587912e+01 +-1.968695564031044398e+01 +-1.476121399530314626e+01 +-1.675671679029955286e+01 +-1.820172362779080188e+01 +-1.577892733665078850e+01 +-1.524908418974633584e+01 +-1.968835109021688368e+01 +-1.820406091860502329e+01 +-1.476121399530314626e+01 +-1.971662605177017014e+01 +-1.575593191261256365e+01 +-1.623117287636750561e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-2.225682218684830715e+01 +-1.476121399530314626e+01 +-1.771093898840483405e+01 +-1.875064948151890931e+01 +-1.821613086390999570e+01 +-1.622853806956639389e+01 +-1.476121399530314626e+01 +-1.674594070027254133e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.525525062138791199e+01 +-1.873634708318065378e+01 +-1.476121399530314626e+01 +-1.623856472485708480e+01 +-1.575591656132124463e+01 +-1.572916749806838332e+01 +-2.021976207345208110e+01 +-1.923633485976019841e+01 +-1.673096835416569661e+01 +-1.723250224583286183e+01 +-2.075722861690305265e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.072250397104227559e+01 +-1.724897098043182098e+01 +-1.922018939185947772e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.821998739013170621e+01 +-2.021976207345208110e+01 +-1.524869807180282599e+01 +-1.921156143717585252e+01 +-1.476121399530314626e+01 +-1.925503557153448497e+01 +-1.871697671652540507e+01 +-2.273083870283389629e+01 +-1.722852944691108235e+01 +-1.526710153869924547e+01 +-1.672844394444672744e+01 +-1.725710868371477247e+01 +-1.972496156210225848e+01 +-1.868327583019824800e+01 +-1.526710153869924547e+01 +-1.919675296128855990e+01 +-1.870168310659785149e+01 +-1.871786081288957249e+01 +-1.476121399530314626e+01 +-1.720794842823791626e+01 +-1.476121399530314626e+01 +-1.823451341093716138e+01 +-2.024725712422599599e+01 +-2.123786065989509098e+01 +-1.973021702507443109e+01 +-1.674142443227539445e+01 +-1.476121399530314626e+01 +-1.626701727170046752e+01 +-2.222247508060926791e+01 +-1.723541585542474408e+01 +-1.772451260815015317e+01 +-1.476121399530314626e+01 +-1.773319438326335984e+01 +-1.724409046467568984e+01 +-2.172450756719466369e+01 +-1.574715332371951604e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-2.273083870283389629e+01 +-1.770619516549911410e+01 +-1.476121399530314626e+01 +-1.822159775500104928e+01 +-1.476121399530314626e+01 +-2.273083870283389629e+01 +-1.575941674449784813e+01 +-1.624169944267757870e+01 +-1.721038905335863589e+01 +-1.724838158629343354e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.721696622180139258e+01 +-2.017955958427454988e+01 +-1.621015720338139943e+01 +-1.769735274376119705e+01 +-1.727109104639348303e+01 +-1.576210879656242447e+01 +-1.476121399530314626e+01 +-1.723390373210351356e+01 +-1.624011578680249457e+01 +-1.724838158629343354e+01 +-2.125030255279273206e+01 +-1.974789679464823777e+01 +-1.726222433387699695e+01 +-1.524908418974633584e+01 +-1.971263813599706083e+01 +-1.476121399530314626e+01 +-1.768979362731587912e+01 +-1.721014515272629097e+01 +-1.721862556337221406e+01 +-1.976662917908997130e+01 +-1.868955277845932983e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-2.120258955543470591e+01 +-2.175801482215007709e+01 +-1.976096635709246385e+01 +-1.872081342347571109e+01 +-1.476121399530314626e+01 +-1.775651912746867467e+01 +-2.175801482215007709e+01 +-1.677397257584128809e+01 +-1.670886511577105082e+01 +-1.817135481296195110e+01 +-1.772660000527323731e+01 +-1.476121399530314626e+01 +-1.573671015552776176e+01 +-1.575941674449784813e+01 +-1.776297050984655357e+01 +-1.672514086318954796e+01 +-1.476121399530314626e+01 +-1.776450676918210902e+01 +-1.524908418974633584e+01 +-2.023628821070739292e+01 +-2.020027519408485972e+01 +-2.075445965583690011e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.524908418974633584e+01 +-2.222247508060926791e+01 +-1.476121399530314626e+01 +-1.875143832716543457e+01 +-1.922603573200670013e+01 +-1.476121399530314626e+01 +-1.624169944267757870e+01 +-1.875410931184019958e+01 +-1.673919622004843077e+01 +-1.924774544368563056e+01 +-1.725710868371477247e+01 +-1.675467789118465944e+01 +-2.273083870283389629e+01 +-1.671833305819973248e+01 +-1.872723752430217203e+01 +-1.719618497250093370e+01 +-1.476121399530314626e+01 +-2.173256547040595166e+01 +-1.674142443227539445e+01 +-1.774353575309854136e+01 +-1.573014140381678772e+01 +-1.823666718221532079e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.624968019918323137e+01 +-1.624707538080579994e+01 +-1.626689428319512842e+01 +-1.673471634328560498e+01 +-2.022994054206465719e+01 +-2.273083870283389629e+01 +-1.976096635709246385e+01 +-1.871930666366062823e+01 +-1.476121399530314626e+01 +-1.874535488267139272e+01 +-1.476121399530314626e+01 +-1.622371151329624439e+01 +-1.968417849024763555e+01 +-1.919161681582085421e+01 +-1.774353575309854136e+01 +-1.573014140381678772e+01 +-1.670487396547499870e+01 +-1.671315867724711879e+01 +-1.624899520224715133e+01 +-1.723618582583572234e+01 +-1.626666788901153993e+01 +-1.575838338479935175e+01 +-2.273083870283389629e+01 +-1.772451260815015317e+01 +-1.575941674449784813e+01 +-1.721014515272629097e+01 +-1.622569173320911418e+01 +-1.673096835416569661e+01 +-1.476121399530314626e+01 +-1.675467789118465944e+01 +-1.871092833847788839e+01 +-2.273083870283389629e+01 +-1.874888505650621795e+01 +-1.674898419055811516e+01 +-1.576210879656242447e+01 +-2.024542708031925287e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.673096835416569661e+01 +-1.823666718221532079e+01 +-1.672884421037827707e+01 +-1.775651912746867467e+01 +-2.122185891824704740e+01 +-1.721861554330076771e+01 +-1.775790090721342906e+01 +-1.723541585542474408e+01 +-2.222221915589203434e+01 +-1.476121399530314626e+01 +-1.819555549106644321e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.575500212791669163e+01 +-1.823035575667507047e+01 +-1.575873249742845950e+01 +-1.921156143717585252e+01 +-1.476121399530314626e+01 +-1.770038304100727444e+01 +-1.524147195489286943e+01 +-1.669704734158496251e+01 +-1.624282679516225514e+01 +-1.476121399530314626e+01 +-1.624282679516225514e+01 +-1.526710153869924547e+01 +-1.575593191261256365e+01 +-1.524908418974633584e+01 +-1.977283822158577564e+01 +-2.126350578254113799e+01 +-1.869554098349383153e+01 +-1.476121399530314626e+01 +-1.771422574456885712e+01 +-1.476121399530314626e+01 +-1.922702108789699693e+01 +-2.173256547040595166e+01 +-1.871033085219637471e+01 +-1.524908418974633584e+01 +-1.524908418974633584e+01 +-1.573671015552776176e+01 +-1.672599108999033035e+01 +-1.724638823931150711e+01 +-1.572162754304351395e+01 +-1.922206079387082767e+01 +-1.871790112676456985e+01 +-1.623165904455986563e+01 +-1.574744664573250397e+01 +-1.721038905335863589e+01 +-1.476121399530314626e+01 +-1.724142090323631393e+01 +-1.871033085219637471e+01 +-1.476121399530314626e+01 +-1.575941674449784813e+01 +-2.075629790914084793e+01 +-1.476121399530314626e+01 +-1.524147195489286943e+01 +-1.623856472485708480e+01 +-1.623856472485708480e+01 +-2.273083870283389629e+01 +-1.873965512608216599e+01 +-1.476121399530314626e+01 +-1.719716187590978151e+01 +-1.823005249013490570e+01 +-1.524147195489286943e+01 +-1.476121399530314626e+01 +-1.572265874903633431e+01 +-2.175801482215007709e+01 +-1.673668984784076841e+01 +-1.476121399530314626e+01 +-2.075474167493039701e+01 +-1.824997257358236524e+01 +-2.273083870283389629e+01 +-1.572854899885174440e+01 +-1.524908418974633584e+01 +-1.476121399530314626e+01 +-2.171413861831982217e+01 +-1.572916749806838332e+01 +-1.524147195489286943e+01 +-1.576210879656242447e+01 +-1.624707538080579994e+01 +-1.671627868033377950e+01 +-2.069865449267033242e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.623961616816850295e+01 +-1.476121399530314626e+01 +-1.673413142263268583e+01 +-2.173635833472344103e+01 +-1.526710153869924547e+01 +-1.476121399530314626e+01 +-1.524908418974633584e+01 +-1.821637408358242993e+01 +-1.624899520224715133e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.672680116746003876e+01 +-2.073960800464843501e+01 +-1.621637955805593734e+01 +-1.476121399530314626e+01 +-1.723541585542474408e+01 +-1.476121399530314626e+01 +-1.524869807180282599e+01 +-1.476121399530314626e+01 +-1.921434809032342983e+01 +-2.223497516213418734e+01 +-2.174480670537584004e+01 +-2.173992036335968336e+01 +-1.574338251301774250e+01 +-1.573671015552776176e+01 +-2.119845234540618151e+01 +-1.476121399530314626e+01 +-1.476121399530314626e+01 +-1.625713552678327289e+01 +-1.573671015552776176e+01 +-1.723390373210351356e+01 +-1.671060634321655058e+01 +-1.922888884520784103e+01 +-1.524908418974633584e+01 +-1.772821645400870594e+01 +-1.476121399530314626e+01 +-2.071149376279746690e+01 +-1.624899520224715133e+01 +-1.870676899541697935e+01 +-1.476121399530314626e+01 +-1.772098603429920516e+01 +-1.524982321799113549e+01 diff --git a/python-interface/test/examples/nltcs/spn_0.bin b/python-interface/test/examples/nltcs/spn_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..af04f975dea7ac78d0646b9fad4f805c9aa3ffa6 GIT binary patch literal 40144 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

      ^QX&XzO!DbAnT2F**3|)S*3sMeQiDR zU%&JmvGJ9o|IMmTZ{zvEsHf|JS^p{B?|+;w@!Cs<%K6PpJIi(CAAMNHgL}zHnLqsA zHFQ54-Tw_vUVMJ<=DOZ4d0gkUU2`>#o(FaR^6Zx{a{T_R!8#tt&(rldrMKLtIKQ61 zUD_8NU&9l`SC0Pm=G-CiSk5%*SMReKIxk(`N9Ucn=V=@{o8^Ah`N7tG^LJ~dzMDEI zcKzl4J*BjNgX@R$8m8y=1p3(VP>%N4o4?UGE59vqdMo~xb-@`oPVcvSzpd-?utqXI z?LD{4I_~}3K%U>4S=Y$8pe_mG=Jqs-)1ELrweGowh>L*wiM89%0dM1SwGVvy{Myt=8ffAh}F)_&_&BX)k9NX~DG zoWY2VuN>=}@yjsXS1kQRucv!{m3*4ZSIK$3hJ$3B*oBu$eEzkM>1UsPGQP~|Zfw3M zoxJ$mw=2lL!QH+>?z`=02g`h5t*I$-ncb&r|F5njc{9)KDEW1|c%pX(-z>*bM8SBN ze1iDO(Z9~x0-3M;BYU*}#@-;~)h+HQ>zRG%Mw!Q~RDE9Vch>h1ygjXD-m|Y-XDFvP4?5~gf=>#&mAhCR;}S$KmQ7yccSA?ruCVB3!o)v z_r&En|U5C3)`%ukq}{e@)243+4JCcR?Qc z9kHe%?csN=!u0$ORG6OqG>_vaOwWG8^z5fa96w=t_7mu1^ZOd*FP~%;$!e0y2^# ze(j&={5B^4O-j!Z8(%s4-)M5JoY#Hz54ld<0o|nkz4xlid7b-o|KzRgF70qzRFwUu zzk0E-Gfdx`r=|t{pM3J-bN_u^pNAZ(E9Z5;XeH~dpVUpptDRj%=dV>eWd5?he@ye) zwvvv^FB3J7(eX7sL44)tUvK*7avuBc9g;`C(nH#hxAxTg;@VSXA7FKUQsyORWFygA z{pRi9@!(GXR_tZ+$NhV1Y5$hZYnYzf6X;{dLpj=G@4Q>*&98Szd`{aVGG5KPM|6BF ztfK4Pr=QDu>CUV#`v|xHDp^mw)e~j>#Df=9kIioZ<$n#y zT9S82){(3y@kln16q2BrRR>D{dw0Go_i=WIdt{t=Ek4G$|4!BqYg0R2KUTdb3p%TR1km8HH#~!V397oT8Gb5}%`-!}de!QPBJ^KmMv!CF-@*qx*Crr$(G*zF!M7O^=`EOBrj@bCh)BnBZ>wWV#mr1``-LH}Uv^sRtb;Z;7 z9lUn?#Jk~?+|6A|Waa+_t#<#QJCmG+??nZJyNUnl$(DJx=`8~1z zBn?UUyyfU`tD7bL={%t8mig3d>1XegYO>C_dq38Fd-El7ec4aEA$EWI2#MDo(^@|1 ztU-L--zl5~DS@8z9H!^?1p3(VQI7VQFCLTloK-|YdcO7RXb7b9jXD8{pnYQVLnECEjay~6`hLGn0 zG{(61RKTlR94AGgLp{lKw9fANOxIiIyO4 z&TE*S+Y{*jPvh0>x=;4MzIROa&(06CHLv+!%5~{hOO*A+`ST?i7tY!3WZXJ4j%q*L zF(meR0JrB3Z4CWewmo5bZcm_(ZBJja_anKKgy&73GcPB(f@A>6l_V%uecg{*)3!+5 ze)S}MzC2-z%!lT)17-YrH8;z+_Wr0L*MYtFt*zXD&b#MHKhb}KxKoH);RIp7xamEVg93k7s&UP$~baX^^YAt zt?9fcDLykn|Nf4%=T5oLvj)B(>$0)=FP*Qht|aTA_s6xeE;>UV)b>0ySM=7bDzW)H z?F8|aqkrwrmr5S2iHmfl4i;jo= zgz4E&n4bOcvzM@V!u0GX(8u=E7FzeWl58XSh-5p-4w9WD{~_5$f?^q0>-}pTeIMF? z8-MSs=sUd*<}TOg{NG-o^XK2&W!(9rEg7%&tadUFk-H#|{9MlrX%9bV4Ab*-y)Zrd z3H#oc{ecJ|ih6`J7}A$zBo^dq54H zHy$1$^Py+mF4u!s@i)n*Uv##_f5YmMvIC-k{p{mxR)>45i{>#UXgMz2Q)-LD?szimtV zHyE#+*DyV|C(y@^hjO&XYW9>q$J$yX`82=1QP-C)ZAI^_{883vchoETdAI(4&pKQz znLaoQ86=k^5p*!FBE?>k6#lKh8c7sK?9+`}Ke~VTy_2x_F8Do|Fg?F_ z5~gQAVeehApD;c93DdKm;Ju4rys)1zJ^KmtvHAUi^8Y1?Px2MXK9a9Vz9IRRHHI&U;a)c z?7c|-jw4LZ-&us|*-zMek?bc-&wj%6>?e3HGRQCc3DdKmKp&gm?aBvLBt-v=>wKPU5^*Z&JyPrThX%e-b**(vug?!1>I&;H8mWc>Q)zbntp ztVZdv&k<6|fBVvN#Ku>i{(q^b?%Q{tD*b5gd|l>0XTcV78i znC^3)oGas*x+CcKjwgt(9R2I=TdeEpRnN$}?_88B^OX6=B8}(1+G4ktFVg$-!-sS| zyt=yB-3>FP|I5V3{d-1f{|0e$Uc>a3%6X-`t)vQjh%vZkmw~TM=t}z;aK@-tC*B;gD&r8`R<9Tg29Y^~g6+O8N z`e8cJoslybvGJ8-eRBuu_X_@5H6_osakI?F=E#FG?#&ttBtFBOFY%fc+RJrnExc3q zp>AV+Z>CIqcb&ZWtexjczgx+->prOQ{nEeoeowA{fB6)N%gTO#7w65bdadr8ZmlTm zu2u1va`dlPagWYl3-ouYe(nm*)3Y~d|MuA;c{Tc9AoGOzK}EeT=bWPL zTC_^`4`t%x{&h&S1pUr=b)bzN58R$WA3Gk()1F0_Nu1U=SJq#1;PWznn2pAN#Q8OA z>O5^XOw{${m31;s>^tqHVjnn4^AQ~%x91)bEoIvirswtq`q=hlkbNM@AdZSy4W#@cV?dNA6&t@GJ=I{$gA z9GzdH#|!^vh`*cF60|2hj{f{OdiKNL<%anQ)3cv2J^SJBe#88P>Df=9kInC&l)s}S zf06u6@(;lx#dC8eLLe?wua{arfX0Ke$&j>uH?{tI2XRWHK z!y_A{d9AP7q&t`gg_{IgfXJXIc0CP7O65pB|7;fBLtwPxliy$o1ni z)!&Kwz5bPbob|N+{-{iR+`pYm`!|T2^BSh-_5}La@lcNTn91Yhd6ZjA@Ar)rb#;B1 zn<;s<9zRRwUw2X^X`gHDl6lw|Q$d~=_-!wY9S_`|bKkMY-Y(tmdEpCoSc`$h6x%XW&S z-QM%>%YK#I1^sX#UElm}gqA>W#nJbOqh~*j3wA0Gb%nUc{PUO z{jMF|blg|osOwAg`0Ya1*SV$FV{Clo=zsswBw087I;j$eec51%%O6o9`wDkTGr69u zI)6z#Zigi@A6rumVSCQi`aN89d|gjsd>@RHacRt2DfeS;yLmcZTTGSf-cSEZ;x`kz zF6MQ{I{doi*Q%v|$HVM+i$1rAj_DJz*{kr}yy)V7d)BRa=eB8h3rTrU>SI%pgp4$`XW5+`|+T*@fBJtRr8%w-S z!>+n+EIU>D-J5Zm^n=w{|4yShdadp!X10_1#wqXUbHn4?bAFumgz33Gfj+i9KT<~@ zB>9QtXOdq?4w3vyQbO_@35vV3{cNhTdm3TgTzMr%N8a36IJAZ2s0;zjvHAOz%f7nxXUF_7wS~h=RCzyxvEmCD3zw!t~sp zKp)$l>&QNYWGKn?B*RE-lHnv-BsY+tI8`R-ej=rUTz`JI4`u#vMtvmX$}V0n`)Kdc z7P7DNy3~^P7~MXXJh=b(a{ZFKAnvwA?ILFgx&F%We8T)%pJzE;PLcJ)>)1;2Y7AJT z-`{q(Wt^Dvr^>kTU+Jp%RV(Mqx?(?>BlAa@_)&nd`~_{{zFbsYbitm}35B5lW2En?>{?%xh1T7rJ(yoTwyJ%RrJG+xc-@9KPU z?tZzB{2#BB{&lbWTgI*bOiP`QA8o1m9@$I#rKrW|js{6Olttq05({b$4Ey0czb zsQcsRrsc@-mtLd(whs}1{>|q Date: Wed, 5 May 2021 18:35:15 +0200 Subject: [PATCH 146/385] Fix: SLP graph builder building SLP nodes more than once. --- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h | 2 +- .../Vectorization/SLP/SLPGraphBuilder.cpp | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index 82e7b8c4..3478a1d6 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -48,7 +48,7 @@ namespace mlir { size_t const maxLookAhead; SmallVector> nodes; - SmallPtrSet reorderWorklist; + SmallPtrSet buildWorklist; }; } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index b714de32..80900da3 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -16,7 +16,7 @@ SLPGraphBuilder::SLPGraphBuilder(size_t maxLookAhead) : maxLookAhead{maxLookAhea std::shared_ptr SLPGraphBuilder::build(ArrayRef const& seed) { auto root = std::make_shared(seed); nodes.emplace_back(root); - reorderWorklist.insert(root.get()); + buildWorklist.insert(root.get()); buildGraph(root->getVector(0), root.get()); return root; } @@ -113,17 +113,17 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { // TODO: here might be a good place to implement variable vector width auto operandNode = std::make_shared(vectorValues); nodes.emplace_back(operandNode); - reorderWorklist.insert(operandNode.get()); + buildWorklist.insert(operandNode.get()); currentNode->addOperand(operandNode, operandNode->getVector(0), vector); } } // B. Normal Mode: Finished building multi-node if (currentNode->isRootOfNode(*vector)) { - if (reorderWorklist.erase(currentNode)) { - //reorderOperands(currentNode); - } + //reorderOperands(currentNode); for (auto* operandNode : currentNode->getOperands()) { - buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); + if (buildWorklist.erase(operandNode)) { + buildGraph(operandNode->getVector(operandNode->numVectors() - 1), operandNode); + } } } } @@ -141,7 +141,7 @@ void SLPGraphBuilder::buildGraph(NodeVector* vector, SLPNode* currentNode) { } else { auto operandNode = std::make_shared(operandValues); nodes.emplace_back(operandNode); - reorderWorklist.insert(operandNode.get()); + buildWorklist.insert(operandNode.get()); currentNode->addOperand(operandNode, operandNode->getVector(0), vector); buildGraph(operandNode->getVector(0), operandNode.get()); } From b1ab2d420cae9ff0d73a94ba414a5c9917e8bca0 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 7 May 2021 17:26:03 +0200 Subject: [PATCH 147/385] Speed up postOrder computation. --- .../LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index d4254a34..76b6e37f 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -5,6 +5,7 @@ #include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "llvm/ADT/SmallSet.h" using namespace mlir; using namespace mlir::spn; @@ -168,23 +169,25 @@ size_t SLPNode::numOperands() const { SmallVector SLPNode::postOrder(SLPNode const& root) { SmallVector order; // false = visit operands, true = insert into order - std::vector> worklist; + SmallVector> worklist; + llvm::SmallSet finishedNodes; worklist.emplace_back(&root, false); while (!worklist.empty()) { + if (finishedNodes.contains(worklist.back().first)) { + worklist.pop_back(); + continue; + } auto* node = worklist.back().first; bool insert = worklist.back().second; worklist.pop_back(); if (insert) { order.emplace_back(node); + finishedNodes.insert(node); } else { - if (std::find(std::begin(order), std::end(order), node) == std::end(order)) { - worklist.emplace_back(node, true); - } + worklist.emplace_back(node, true); for (auto const* operand: node->getOperands()) { auto pair = std::make_pair(operand, false); - if (std::find(std::begin(worklist), std::end(worklist), pair) == std::end(worklist)) { - worklist.emplace_back(pair); - } + worklist.emplace_back(pair); } } } From b0e98337cf07a9cabca0fe752531492c40eaa610 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 7 May 2021 17:33:08 +0200 Subject: [PATCH 148/385] Speed up postOrder computation even more. --- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp index 76b6e37f..a13bd103 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp @@ -186,8 +186,7 @@ SmallVector SLPNode::postOrder(SLPNode const& root) { } else { worklist.emplace_back(node, true); for (auto const* operand: node->getOperands()) { - auto pair = std::make_pair(operand, false); - worklist.emplace_back(pair); + worklist.emplace_back(operand, false); } } } From bdca6de82fb2f0106d95854f69c4d14c16959606 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 7 May 2021 17:37:39 +0200 Subject: [PATCH 149/385] Add basic cost model draft. --- .../LoSPNtoCPU/Vectorization/SLP/CostModel.h | 39 +++++++++++++++ mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 1 + .../Vectorization/SLP/CostModel.cpp | 47 +++++++++++++++++++ .../VectorizeStructurePatterns.cpp | 1 + 4 files changed, 88 insertions(+) create mode 100644 mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h create mode 100644 mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.cpp diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h new file mode 100644 index 00000000..9bfa6426 --- /dev/null +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h @@ -0,0 +1,39 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_COSTMODEL_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_COSTMODEL_H + +#include "SLPNode.h" + +namespace mlir { + namespace spn { + namespace low { + namespace slp { + + // TODO: google "use weak_ptrs as cache" + + class CostModel { + public: + unsigned getScalarCost(Value const& value); + unsigned getVectorCost(NodeVector const* vector); + protected: + virtual unsigned computeScalarCost(Value const& value) = 0; + virtual unsigned computeVectorCost(NodeVector const* vector) = 0; + private: + DenseMap cachedScalarCosts; + DenseMap cachedVectorCosts; + }; + + class UnitCostModel : public CostModel { + unsigned computeScalarCost(Value const& value) override; + unsigned computeVectorCost(NodeVector const* vector) override; + }; + } + } + } +} + +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_COSTMODEL_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index 775fb3be..f32d3489 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -14,6 +14,7 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/VectorizeStructurePatterns.cpp Vectorization/VectorizeNodePatterns.cpp Vectorization/ReplaceGatherWithShuffle.cpp + Vectorization/SLP/CostModel.cpp Vectorization/SLP/SLPNode.cpp Vectorization/SLP/SLPSeeding.cpp Vectorization/SLP/SLPGraphBuilder.cpp diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.cpp new file mode 100644 index 00000000..b2b23288 --- /dev/null +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.cpp @@ -0,0 +1,47 @@ +// +// This file is part of the SPNC project. +// Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. +// + +#include "LoSPNtoCPU/Vectorization/SLP/CostModel.h" + +using namespace mlir; +using namespace mlir::spn::low::slp; + +// === CostModel === // + +unsigned CostModel::getScalarCost(Value const& value) { + auto const& entry = cachedScalarCosts.try_emplace(value, 0); + if (entry.second) { + entry.first->getSecond() = computeScalarCost(value); + } + return entry.first->second; +} + +unsigned CostModel::getVectorCost(NodeVector const* vector) { + auto const& entry = cachedVectorCosts.try_emplace(vector, 0); + if (entry.second) { + entry.first->getSecond() = computeVectorCost(vector); + } + return entry.first->second; +} + +// === UnitCostModel === // + +unsigned UnitCostModel::computeScalarCost(Value const& value) { + unsigned cost = 1; + if (auto* definingOp = value.getDefiningOp()) { + for (auto const& operand : definingOp->getOperands()) { + cost += getScalarCost(operand); + } + } + return cost; +} + +unsigned UnitCostModel::computeVectorCost(NodeVector const* vector) { + unsigned cost = 1; + for (size_t i = 0; i < vector->numOperands(); ++i) { + cost += getVectorCost(vector->getOperand(i)); + } + return cost; +} diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index 3529a4ff..d966f92a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -232,6 +232,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, } } } + task->emitRemark("Graph conversion complete."); rewriter.restoreInsertionPoint(callPoint); rewriter.replaceOpWithNewOp(task, taskFunc, operands); return success(); From 4528de26097b93ce58096e8561e8255a57c47129 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 7 May 2021 17:47:43 +0200 Subject: [PATCH 150/385] Rename SLP files. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h | 2 +- .../SLP/{SLPConversion.h => GraphConversion.h} | 8 ++++---- .../Vectorization/SLP/{SLPNode.h => SLPGraph.h} | 6 +++--- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h | 4 ++-- .../Vectorization/SLP/SLPVectorizationPatterns.h | 4 ++-- .../Vectorization/SLP/{SLPSeeding.h => Seeding.h} | 8 ++++---- .../LoSPNtoCPU/Vectorization/SLP/{SLPUtil.h => Util.h} | 8 ++++---- mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt | 8 ++++---- .../SLP/{SLPConversion.cpp => GraphConversion.cpp} | 2 +- .../Vectorization/SLP/{SLPNode.cpp => SLPGraph.cpp} | 4 ++-- .../LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp | 2 +- .../Vectorization/SLP/SLPVectorizationPatterns.cpp | 2 +- .../Vectorization/SLP/{SLPSeeding.cpp => Seeding.cpp} | 4 ++-- .../Vectorization/SLP/{SLPUtil.cpp => Util.cpp} | 2 +- .../Vectorization/VectorizeStructurePatterns.cpp | 6 +++--- 15 files changed, 35 insertions(+), 35 deletions(-) rename mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPConversion.h => GraphConversion.h} (95%) rename mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPNode.h => SLPGraph.h} (98%) rename mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPSeeding.h => Seeding.h} (93%) rename mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPUtil.h => Util.h} (98%) rename mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPConversion.cpp => GraphConversion.cpp} (98%) rename mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPNode.cpp => SLPGraph.cpp} (98%) rename mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPSeeding.cpp => Seeding.cpp} (96%) rename mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/{SLPUtil.cpp => Util.cpp} (99%) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h index 9bfa6426..64765dc9 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/CostModel.h @@ -6,7 +6,7 @@ #ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_COSTMODEL_H #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_COSTMODEL_H -#include "SLPNode.h" +#include "SLPGraph.h" namespace mlir { namespace spn { diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.h similarity index 95% rename from mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.h index 384f8325..01bb3127 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.h @@ -3,10 +3,10 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPCONVERSION_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPCONVERSION_H +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_GRAPHCONVERSION_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_GRAPHCONVERSION_H -#include "SLPNode.h" +#include "SLPGraph.h" namespace mlir { namespace spn { @@ -62,4 +62,4 @@ namespace mlir { } } -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPCONVERSION_H +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_GRAPHCONVERSION_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h similarity index 98% rename from mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index 7c52ae82..f0c47bf5 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -3,8 +3,8 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPNODE_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPNODE_H +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H #include "mlir/IR/Operation.h" #include "llvm/ADT/SmallPtrSet.h" @@ -80,4 +80,4 @@ namespace mlir { } } -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPNODE_H +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPH_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h index 3478a1d6..42894148 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h @@ -7,8 +7,8 @@ #define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPGRAPHBUILDER_H #include "mlir/IR/Operation.h" -#include "SLPNode.h" -#include "SLPSeeding.h" +#include "SLPGraph.h" +#include "Seeding.h" namespace mlir { namespace spn { diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h index 1022a3ba..5d4fc0b5 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h @@ -8,8 +8,8 @@ #include -#include "SLPNode.h" -#include "SLPConversion.h" +#include "SLPGraph.h" +#include "GraphConversion.h" #include "LoSPN/LoSPNDialect.h" #include "LoSPN/LoSPNOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/Seeding.h similarity index 93% rename from mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/Seeding.h index 8ec14d09..9b58b06f 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/Seeding.h @@ -3,11 +3,11 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SEEDING_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SEEDING_H #include "mlir/IR/Operation.h" -#include "SLPNode.h" +#include "SLPGraph.h" namespace mlir { namespace spn { @@ -40,4 +40,4 @@ namespace mlir { } } -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPSEEDING_H +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SEEDING_H diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.h similarity index 98% rename from mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h rename to mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.h index cf12f8b9..ce46edb5 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.h @@ -3,10 +3,10 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H -#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H +#ifndef SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_UTIL_H +#define SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_UTIL_H -#include "SLPNode.h" +#include "SLPGraph.h" #include "LoSPN/LoSPNOps.h" #include "mlir/IR/Operation.h" #include "mlir/IR/PatternMatch.h" @@ -93,4 +93,4 @@ namespace mlir { } } -#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_SLPUTIL_H +#endif //SPNC_MLIR_INCLUDE_CONVERSION_LOSPNTOCPU_VECTORIZATION_SLP_UTIL_H diff --git a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt index f32d3489..5ef585ef 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoSPNtoCPU/CMakeLists.txt @@ -14,13 +14,13 @@ add_mlir_conversion_library(MLIRLoSPNtoCPUTransforms Vectorization/VectorizeStructurePatterns.cpp Vectorization/VectorizeNodePatterns.cpp Vectorization/ReplaceGatherWithShuffle.cpp + Vectorization/SLP/GraphConversion.cpp Vectorization/SLP/CostModel.cpp - Vectorization/SLP/SLPNode.cpp - Vectorization/SLP/SLPSeeding.cpp + Vectorization/SLP/Seeding.cpp + Vectorization/SLP/Util.cpp + Vectorization/SLP/SLPGraph.cpp Vectorization/SLP/SLPGraphBuilder.cpp - Vectorization/SLP/SLPUtil.cpp Vectorization/SLP/SLPVectorizationPatterns.cpp - Vectorization/SLP/SLPConversion.cpp LoSPNtoCPUConversionPasses.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp similarity index 98% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp rename to mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp index cd83314d..cf581ea0 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp @@ -3,7 +3,7 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "LoSPNtoCPU/Vectorization/SLP/SLPConversion.h" +#include "LoSPNtoCPU/Vectorization/SLP/GraphConversion.h" using namespace mlir; using namespace mlir::spn::low::slp; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp similarity index 98% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp rename to mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index a13bd103..98a5eeee 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPNode.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -3,8 +3,8 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "LoSPNtoCPU/Vectorization/SLP/SLPNode.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/SLPGraph.h" +#include "LoSPNtoCPU/Vectorization/SLP/Util.h" #include "llvm/ADT/SmallSet.h" using namespace mlir; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp index 80900da3..5a691a80 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.cpp @@ -5,7 +5,7 @@ #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/Util.h" #include "llvm/ADT/SmallSet.h" using namespace mlir; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp index 95553de1..d439ed92 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.cpp @@ -4,7 +4,7 @@ // #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/Util.h" #include "mlir/Dialect/Math/IR/Math.h" #include "mlir/IR/BlockAndValueMapping.h" #include "llvm/Support/FormatVariadic.h" diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Seeding.cpp similarity index 96% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp rename to mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Seeding.cpp index dbf10bd2..2078cdd5 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPSeeding.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Seeding.cpp @@ -3,8 +3,8 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/Seeding.h" +#include "LoSPNtoCPU/Vectorization/SLP/Util.h" using namespace mlir; using namespace mlir::spn::low::slp; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp similarity index 99% rename from mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp rename to mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp index 66c051e1..8dee669c 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPUtil.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp @@ -3,7 +3,7 @@ // Copyright (c) 2020 Embedded Systems and Applications Group, TU Darmstadt. All rights reserved. // -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/Util.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index d966f92a..e85a403a 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -7,9 +7,9 @@ //============================================================================== #include "LoSPNtoCPU/Vectorization/VectorizationPatterns.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPSeeding.h" +#include "LoSPNtoCPU/Vectorization/SLP/Seeding.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPGraphBuilder.h" -#include "LoSPNtoCPU/Vectorization/SLP/SLPUtil.h" +#include "LoSPNtoCPU/Vectorization/SLP/Util.h" #include "LoSPNtoCPU/Vectorization/SLP/SLPVectorizationPatterns.h" #include "llvm/Support/FormatVariadic.h" #include "mlir/Dialect/SCF/SCF.h" @@ -150,7 +150,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, applicator.applyDefaultCostModel(); // Traverse the SLP graph in postorder and apply the vectorization patterns. - for (auto* node : SLPNode::postOrder(*graph)) { + for (auto* node : SLPGraph::postOrder(*graph)) { // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); From ee2e686016b7a3a32465f9b873fbb7e1021ad9bc Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Fri, 7 May 2021 17:57:52 +0200 Subject: [PATCH 151/385] Separate postOrder from SLPNode. --- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h | 7 +++++-- .../LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp | 2 +- .../Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp | 2 +- mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp | 4 ++-- .../Vectorization/VectorizeStructurePatterns.cpp | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h index f0c47bf5..9ebe45bf 100644 --- a/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h +++ b/mlir/include/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.h @@ -69,12 +69,15 @@ namespace mlir { std::vector getOperands() const; size_t numOperands() const; - static SmallVector postOrder(SLPNode const& root); - private: SmallVector> vectors; SmallVector> operandNodes; }; + + namespace graph { + SmallVector postOrder(SLPNode const& root); + } + } } } diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp index cf581ea0..78333c96 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/GraphConversion.cpp @@ -37,7 +37,7 @@ namespace { } ConversionManager::ConversionManager(SLPNode* root) { - for (auto* node : SLPNode::postOrder(*root)) { + for (auto* node : graph::postOrder(*root)) { for (size_t i = node->numVectors(); i-- > 0;) { auto* vector = node->getVector(i); for (size_t lane = 0; lane < vector->numLanes(); ++lane) { diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp index 98a5eeee..c81e1533 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/SLPGraph.cpp @@ -166,7 +166,7 @@ size_t SLPNode::numOperands() const { // === Utilities === // -SmallVector SLPNode::postOrder(SLPNode const& root) { +SmallVector graph::postOrder(SLPNode const& root) { SmallVector order; // false = visit operands, true = insert into order SmallVector> worklist; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp index 8dee669c..2f317dcf 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/SLP/Util.cpp @@ -55,11 +55,11 @@ void slp::dumpSLPNode(SLPNode const& node) { } size_t slp::numNodes(SLPNode const& root) { - return SLPNode::postOrder(root).size(); + return graph::postOrder(root).size(); } size_t slp::numVectors(SLPNode const& root) { size_t n = 0; - for (auto* node : SLPNode::postOrder(root)) { + for (auto* node : graph::postOrder(root)) { n += node->numVectors(); } return n; diff --git a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp index e85a403a..09aaa2ff 100644 --- a/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp +++ b/mlir/lib/Conversion/LoSPNtoCPU/Vectorization/VectorizeStructurePatterns.cpp @@ -150,7 +150,7 @@ LogicalResult VectorizeSingleTask::matchAndRewrite(SPNTask task, applicator.applyDefaultCostModel(); // Traverse the SLP graph in postorder and apply the vectorization patterns. - for (auto* node : SLPGraph::postOrder(*graph)) { + for (auto* node : graph::postOrder(*graph)) { // Also traverse nodes in postorder to properly handle multinodes. for (size_t vectorIndex = node->numVectors(); vectorIndex-- > 0;) { vector = node->getVector(vectorIndex); From 955235ff7c89c4196ad5a43c2da982e4a105cf85 Mon Sep 17 00:00:00 2001 From: Sebastian Vollbrecht Date: Sun, 9 May 2021 20:29:10 +0200 Subject: [PATCH 152/385] Update tests, remove outdated .mlir files. --- mini-example.mlir | 29 - mini-example_blockargs.mlir | 60 - mini-example_blockargs_only.mlir | 50 - .../test_vector_fashion-mnist.py | 10 +- .../test/examples/nltcs/test_vector_nltcs.py | 10 +- .../test/examples/plants/input.csv | 10000 ++++++++++++++++ .../plants_100_200_1_50_45_10_1_True.bin | Bin 0 -> 13491488 bytes ...lants_100_200_1_50_45_10_1_True_output.csv | 10000 ++++++++++++++++ .../plants/plants_100_200_3_3_5_3_1_True.bin | Bin 0 -> 89136 bytes .../plants_100_200_3_3_5_3_1_True_output.csv | 10000 ++++++++++++++++ .../examples/plants/test_vector_plants.py | 52 + .../test/test-slp-vectorized-consecutive.py | 7 +- .../test/test-slp-vectorized-escaping.py | 7 +- .../test/test-slp-vectorized-mini.py | 7 +- .../test/test-slp-vectorized-speaker.py | 19 +- .../test/test-slp-vectorized-tree.py | 7 +- 16 files changed, 30093 insertions(+), 165 deletions(-) delete mode 100644 mini-example.mlir delete mode 100644 mini-example_blockargs.mlir delete mode 100644 mini-example_blockargs_only.mlir create mode 100644 python-interface/test/examples/plants/input.csv create mode 100644 python-interface/test/examples/plants/plants_100_200_1_50_45_10_1_True.bin create mode 100644 python-interface/test/examples/plants/plants_100_200_1_50_45_10_1_True_output.csv create mode 100644 python-interface/test/examples/plants/plants_100_200_3_3_5_3_1_True.bin create mode 100644 python-interface/test/examples/plants/plants_100_200_3_3_5_3_1_True_output.csv create mode 100644 python-interface/test/examples/plants/test_vector_plants.py diff --git a/mini-example.mlir b/mini-example.mlir deleted file mode 100644 index ae45c2e8..00000000 --- a/mini-example.mlir +++ /dev/null @@ -1,29 +0,0 @@ -module { - "hi_spn.joint_query"() ( { - "hi_spn.graph"() ( { - ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64): // no predecessors - %0 = "hi_spn.gaussian"(%arg0) {mean = 1.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability - %1 = "hi_spn.gaussian"(%arg1) {mean = 1.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability - %2 = "hi_spn.gaussian"(%arg2) {mean = 1.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability - %3 = "hi_spn.gaussian"(%arg3) {mean = 1.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability - %4 = "hi_spn.product"(%0, %1, %2, %3) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability - %5 = "hi_spn.gaussian"(%arg4) {mean = 2.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability - %6 = "hi_spn.gaussian"(%arg5) {mean = 2.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability - %7 = "hi_spn.gaussian"(%arg6) {mean = 2.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability - %8 = "hi_spn.gaussian"(%arg7) {mean = 2.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability - %9 = "hi_spn.product"(%5, %6, %7, %8) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability - %10 = "hi_spn.gaussian"(%arg8) {mean = 3.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability - %11 = "hi_spn.gaussian"(%arg9) {mean = 3.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability - %12 = "hi_spn.gaussian"(%arg10) {mean = 3.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability - %13 = "hi_spn.gaussian"(%arg11) {mean = 3.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability - %14 = "hi_spn.product"(%10, %11, %12, %13) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability - %15 = "hi_spn.gaussian"(%arg12) {mean = 4.100000e-01 : f64, stddev = 1.000000e+00 : f64} : (f64) -> !hi_spn.probability - %16 = "hi_spn.gaussian"(%arg13) {mean = 4.200000e-01 : f64, stddev = 7.500000e-01 : f64} : (f64) -> !hi_spn.probability - %17 = "hi_spn.gaussian"(%arg14) {mean = 4.300000e-01 : f64, stddev = 5.000000e-01 : f64} : (f64) -> !hi_spn.probability - %18 = "hi_spn.gaussian"(%arg15) {mean = 4.400000e-01 : f64, stddev = 2.500000e-01 : f64} : (f64) -> !hi_spn.probability - %19 = "hi_spn.product"(%15, %16, %17, %18) : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability - %20 = "hi_spn.sum"(%4, %9, %14, %19) {weights = [2.500000e-01, 2.500000e-01, 2.500000e-01, 2.500000e-01]} : (!hi_spn.probability, !hi_spn.probability, !hi_spn.probability, !hi_spn.probability) -> !hi_spn.probability - "hi_spn.root"(%20) : (!hi_spn.probability) -> () - }) {numFeatures = 16 : ui32} : () -> () - }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "spn_vector", maxError = 2.000000e-02 : f64, numFeatures = 16 : ui32} : () -> () -} \ No newline at end of file diff --git a/mini-example_blockargs.mlir b/mini-example_blockargs.mlir deleted file mode 100644 index c9279581..00000000 --- a/mini-example_blockargs.mlir +++ /dev/null @@ -1,60 +0,0 @@ -module { - "hi_spn.joint_query"() ( { - "hi_spn.graph"() ( { - ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64): // no predecessors - %0 = "lo_spn.gaussian"(%arg0) {mean = 1.100000e-01 : f64, stddev = 1.000000e+00 : f64, supportMarginal = false} : (f64) -> f64 - %1 = "lo_spn.gaussian"(%arg1) {mean = 1.200000e-01 : f64, stddev = 7.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %2 = "lo_spn.gaussian"(%arg2) {mean = 1.300000e-01 : f64, stddev = 5.000000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %3 = "lo_spn.gaussian"(%arg3) {mean = 1.400000e-01 : f64, stddev = 2.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %4 = "lo_spn.mul"(%0, %1) : (f64, f64) -> f64 - %5 = "lo_spn.mul"(%2, %3) : (f64, f64) -> f64 - %6 = "lo_spn.mul"(%4, %5) : (f64, f64) -> f64 - - %7 = "lo_spn.gaussian"(%arg4) {mean = 2.100000e-01 : f64, stddev = 1.000000e+00 : f64, supportMarginal = false} : (f64) -> f64 - %8 = "lo_spn.gaussian"(%arg5) {mean = 2.200000e-01 : f64, stddev = 7.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %9 = "lo_spn.gaussian"(%arg6) {mean = 2.300000e-01 : f64, stddev = 5.000000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %10 = "lo_spn.gaussian"(%arg7) {mean = 2.400000e-01 : f64, stddev = 2.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %11 = "lo_spn.mul"(%7, %8) : (f64, f64) -> f64 - %12 = "lo_spn.mul"(%9, %10) : (f64, f64) -> f64 - %13 = "lo_spn.mul"(%11, %12) : (f64, f64) -> f64 - - %14 = "lo_spn.mul"(%arg8, %arg9) : (f64, f64) -> f64 - %15 = "lo_spn.mul"(%arg10, %arg11) : (f64, f64) -> f64 - %16 = "lo_spn.mul"(%14, %15) : (f64, f64) -> f64 - - %17 = "lo_spn.gaussian"(%arg12) {mean = 4.100000e-01 : f64, stddev = 1.000000e+00 : f64, supportMarginal = false} : (f64) -> f64 - %18 = "lo_spn.gaussian"(%arg13) {mean = 4.200000e-01 : f64, stddev = 7.500000e-01 : f64, supportMarginal = false} : (f64) -> f64 - %19 = "lo_spn.mul"(%arg14, %17) : (f64, f64) -> f64 - %20 = "lo_spn.mul"(%18, %arg15) : (f64, f64) -> f64 - %21 = "lo_spn.mul"(%19, %20) : (f64, f64) -> f64 - - - %22 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %23 = "lo_spn.mul"(%6, %22) : (f64, f64) -> f64 - - - %24 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %25 = "lo_spn.mul"(%13, %24) : (f64, f64) -> f64 - - %26 = "lo_spn.add"(%23, %25) : (f64, f64) -> f64 - - - %27 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %28 = "lo_spn.mul"(%16, %27) : (f64, f64) -> f64 - - - %29 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %30 = "lo_spn.mul"(%21, %29) : (f64, f64) -> f64 - - - %31 = "lo_spn.add"(%28, %30) : (f64, f64) -> f64 - - - %32 = "lo_spn.add"(%26, %31) : (f64, f64) -> f64 - - - %33 = "lo_spn.log"(%32) : (f64) -> f64 - "lo_spn.yield"(%33) : (f64) -> () - }) {numFeatures = 16 : ui32} : () -> () - }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "spn_vector", maxError = 2.000000e-02 : f64, numFeatures = 16 : ui32} : () -> () -} \ No newline at end of file diff --git a/mini-example_blockargs_only.mlir b/mini-example_blockargs_only.mlir deleted file mode 100644 index 215d8606..00000000 --- a/mini-example_blockargs_only.mlir +++ /dev/null @@ -1,50 +0,0 @@ -module { - "hi_spn.joint_query"() ( { - "hi_spn.graph"() ( { - ^bb0(%arg0: f64, %arg1: f64, %arg2: f64, %arg3: f64, %arg4: f64, %arg5: f64, %arg6: f64, %arg7: f64, %arg8: f64, %arg9: f64, %arg10: f64, %arg11: f64, %arg12: f64, %arg13: f64, %arg14: f64, %arg15: f64): // no predecessors - %4 = "lo_spn.mul"(%arg0, %arg1) : (f64, f64) -> f64 - %5 = "lo_spn.mul"(%arg2, %arg3) : (f64, f64) -> f64 - %6 = "lo_spn.mul"(%4, %5) : (f64, f64) -> f64 - - %11 = "lo_spn.mul"(%arg4, %arg5) : (f64, f64) -> f64 - %12 = "lo_spn.mul"(%arg6, %arg7) : (f64, f64) -> f64 - %13 = "lo_spn.mul"(%11, %12) : (f64, f64) -> f64 - - %14 = "lo_spn.mul"(%arg8, %arg9) : (f64, f64) -> f64 - %15 = "lo_spn.mul"(%arg10, %arg11) : (f64, f64) -> f64 - %16 = "lo_spn.mul"(%14, %15) : (f64, f64) -> f64 - - %19 = "lo_spn.mul"(%arg12, %arg13) : (f64, f64) -> f64 - %20 = "lo_spn.mul"(%arg14, %arg15) : (f64, f64) -> f64 - %21 = "lo_spn.mul"(%19, %20) : (f64, f64) -> f64 - - - %22 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %23 = "lo_spn.mul"(%6, %22) : (f64, f64) -> f64 - - - %24 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %25 = "lo_spn.mul"(%13, %24) : (f64, f64) -> f64 - - %26 = "lo_spn.add"(%23, %25) : (f64, f64) -> f64 - - - %27 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %28 = "lo_spn.mul"(%16, %27) : (f64, f64) -> f64 - - - %29 = "lo_spn.constant"() {type = f64, value = 2.500000e-01 : f64} : () -> f64 - %30 = "lo_spn.mul"(%21, %29) : (f64, f64) -> f64 - - - %31 = "lo_spn.add"(%28, %30) : (f64, f64) -> f64 - - - %32 = "lo_spn.add"(%26, %31) : (f64, f64) -> f64 - - - %33 = "lo_spn.log"(%32) : (f64) -> f64 - "lo_spn.yield"(%33) : (f64) -> () - }) {numFeatures = 16 : ui32} : () -> () - }) {batchSize = 1 : ui32, errorModel = 1 : i32, inputType = f64, kernelName = "spn_vector", maxError = 2.000000e-02 : f64, numFeatures = 16 : ui32} : () -> () -} \ No newline at end of file diff --git a/python-interface/test/examples/fashion-mnist/test_vector_fashion-mnist.py b/python-interface/test/examples/fashion-mnist/test_vector_fashion-mnist.py index 17df5d33..c3360b90 100644 --- a/python-interface/test/examples/fashion-mnist/test_vector_fashion-mnist.py +++ b/python-interface/test/examples/fashion-mnist/test_vector_fashion-mnist.py @@ -31,16 +31,18 @@ def test_vector_fashion_mnist(): dtype="float64") reference = reference.reshape(1000) # Compile the kernel. - compiler = CPUCompiler(vectorize=False, computeInLogSpace=False) + compiler = CPUCompiler(vectorize=True, computeInLogSpace=False) kernel = compiler.compile_ll(spn=spn, batchSize=1, supportMarginal=False) # Execute the compiled Kernel. - start = time.time() + time_sum = 0 for i in range(len(reference)): # Check the computation results against the reference + start = time.time() result = compiler.execute(kernel, inputs=np.array([inputs[i]])) + time_sum = time_sum + time.time() - start + print(f"evaluation #{i}: result: {result[0]:16.8f}, reference: {reference[i]:16.8f}", end='\r') assert np.isclose(result, reference[i]) - end = time.time() - print(f"Execution took {end - start} seconds.") + print(f"Execution took {time_sum} seconds.") if __name__ == "__main__": diff --git a/python-interface/test/examples/nltcs/test_vector_nltcs.py b/python-interface/test/examples/nltcs/test_vector_nltcs.py index 4072dad3..0d908f15 100644 --- a/python-interface/test/examples/nltcs/test_vector_nltcs.py +++ b/python-interface/test/examples/nltcs/test_vector_nltcs.py @@ -30,16 +30,18 @@ def test_vector_fashion_mnist(): dtype="float64") reference = reference.reshape(10000) # Compile the kernel. - compiler = CPUCompiler(vectorize=False, computeInLogSpace=False) + compiler = CPUCompiler(vectorize=True, computeInLogSpace=False) kernel = compiler.compile_ll(spn=spn, batchSize=1, supportMarginal=False) # Execute the compiled Kernel. - start = time.time() + time_sum = 0 for i in range(len(reference)): # Check the computation results against the reference + start = time.time() result = compiler.execute(kernel, inputs=np.array([inputs[i]])) + time_sum = time_sum + time.time() - start + print(f"evaluation #{i}: result: {result[0]:16.8f}, reference: {reference[i]:16.8f}", end='\r') assert np.isclose(result, reference[i]) - end = time.time() - print(f"Execution took {end - start} seconds.") + print(f"Execution took {time_sum} seconds.") if __name__ == "__main__": diff --git a/python-interface/test/examples/plants/input.csv b/python-interface/test/examples/plants/input.csv new file mode 100644 index 00000000..dbabd325 --- /dev/null +++ b/python-interface/test/examples/plants/input.csv @@ -0,0 +1,10000 @@ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0 +0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,1 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,1,0,1,1,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0 +0,0,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,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,0,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,1 +0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,0,0 +0,1,0,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,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,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,1,1,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,1,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,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,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,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,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1 +0,1,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0 +0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,0,1,1,1,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,1,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0 +0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,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,0,1,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,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,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,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,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,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,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,1,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,0,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,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,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,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,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,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0 +0,0,0,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0 +0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,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,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,0,1,0,0,1,0,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,1,1,1,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0 +0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,0,0,0,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,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,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,1 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0 +0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0 +0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,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,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,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,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,1,1,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,1,0,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,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,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,1,0,0,0,0,1,0,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0 +0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1 +0,0,1,1,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,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,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,0,1,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,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,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,1,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,0,1,1,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,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,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,0,1,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,0,0,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0 +0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,1,1,0,1,1,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,1,0,1,0,0,0,1,1,1,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,1 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,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,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,0,0,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1,0,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,1,0,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 +0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,0,1,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,1,0,0,1,1,0,1,1,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,1,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,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,1,1,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,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,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,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1,0,1,1,1,1,1,0,0,1,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0 +0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,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,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,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,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,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,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,1,1,0,0,1,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,1,1,1,0,1,1 +0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,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,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,1,0,1,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0 +0,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,0,0,1,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1 +0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,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,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,1,1,1,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,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,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0 +0,0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,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,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,1,1,0,0,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,1,1,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1 +0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,1,1,1 +0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,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,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +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,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,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,1,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,0,1,0,1,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,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,1,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0 +0,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,1,0,1,1,1,1,0,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,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,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,1,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0 +0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,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,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,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,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,1,0,0,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0 +0,1,0,1,1,0,1,1,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,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,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,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,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1 +0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0 +0,0,0,0,1,1,0,1,1,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,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,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,1,0,0,1,1 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,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,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,1,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,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0 +0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,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,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,0,0,1,1,1,0,1,0,1,1,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,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,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0 +0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,1,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,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,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,1 +0,1,1,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,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1 +0,0,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0 +0,0,0,1,0,1,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,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,1,1,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,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,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,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,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,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,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,0,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,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,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1 +0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,1,1 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,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,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1 +0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,0,1,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,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,1,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,1,0,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,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,1,1 +0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,0,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,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0 +0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,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,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,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,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,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,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,1,0,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,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,1 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,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,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,1,1,1,0,1,1,1,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,0,1,1,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1 +0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,1 +0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,1,1,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,1,0,1,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,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,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,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,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0 +0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,0,0,0,0,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,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1 +0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,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,0,0,0,0,0,0,0,1,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,1,0,0,0 +0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,1,0,0,0,0 +0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,1,1,0,1,0,1,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,1,0,1,1,1 +0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,1,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0 +0,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,1,0,0,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,1,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,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1 +0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,0,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,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,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,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,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,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,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,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,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,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,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,1,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,0,1,1,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1 +0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,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,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,1,0,0,1,0,1,1,0,1,0,1,0,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,1 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,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,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,0,1,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,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,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,1,1,1,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,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,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1 +0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,1,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,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,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,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,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,0,1,0,1,1,0,1,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,1,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,1 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,0,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0 +0,0,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,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,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,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,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,0,0,1,1,0,0,0,0,1,1,1,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,0,1,0,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,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,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,1,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,1,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,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,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,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,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,1,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,0,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,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0 +0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0 +0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,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,0,0,1,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,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,1,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,0,0,1,0,1,0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,1,0,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,0,1,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,1,1,0,0,0,0,1,0,1,0 +0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0 +0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,1,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,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,0,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1 +0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,1,0,1,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,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1,0,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,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,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,1 +0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1 +0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,0 +0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 +0,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 +0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,1,1,1,0,1,0 +0,0,0,0,1,1,0,1,1,1,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,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,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,0,0 +0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,0,0,1,1,0,1,1,0,0,0,0,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,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,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,1 +0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0 +0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,1,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,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,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1 +0,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0 +0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,1,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,1,0,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1 +0,0,0,1,1,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0 +0,0,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,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0 +0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,1,1,1,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,1,1,1,0,0,0,0,1,1,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,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,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,1,1,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,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,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1 +0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0 +0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 +0,1,0,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,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,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,1,1 +0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,0,0 +0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0 +0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,0,1,0,0,1,1,1,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1 +0,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,1,1,1,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,1,1,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,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,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,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,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,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,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0 +0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,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,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,1,0,0,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,1,1,0,0,0,0,1,0,1,0 +0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,1,1,0,0,1,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,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0 +0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0 +0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,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,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,0,1,0,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,1,1,1,0 +0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,1,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1 +0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,0,1,1 +0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1 +0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,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,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,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,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,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0 +0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0 +0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1 +0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0 +0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0 +0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,1,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0 +0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0 +0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0 +0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0 +0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,0,1,1,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0 +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 +0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 +0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 +0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0 +0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,1,0 +0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0 diff --git a/python-interface/test/examples/plants/plants_100_200_1_50_45_10_1_True.bin b/python-interface/test/examples/plants/plants_100_200_1_50_45_10_1_True.bin new file mode 100644 index 0000000000000000000000000000000000000000..313b426377ea00c0a73db42f796f612f86d51abf GIT binary patch literal 13491488 zcmY)11$-k_8!zD9ELuEx@!-XS2M=C6c<|uGg9jhHc<|uCiw6%Lym;{7!HWkkb|*d0 z_q+EVIP5;{ne%^}zM0H)*>=LXapRVb=M2A3I&Ox)CLOoV^OMI4WBj=8KmT_m{vRJT z!|m&SQo3NZ?tB0LRb5XscF@}Kf2WFPKAzLXGwaty6XV9k|Bmf_@PYg9blC2@9&$i2 zenUL=*!O^44q0xQvEO&IyXz*zv%BNO@th={lg4whcy=r8iRTpYoHCx>tf}KUO+2TK zXE!q$&*|eiLp*1U=S=aOIi9n`bJlqF#&foK&K}P>;yGtL=Zfdt@th}~sd&yC&-vmx ze>@k6=YsKED4q+)voD^D#B`+l1E_v6RSd`0&y z6UH8=?qf9zckAwYR_^Z8buSlqHja39uJRn*;5oU?b8#XrBN4xCZcgz$oaGc3cwUZp zKCbfo+~5Vc%?olO4)5kK#3^2wv)so8UW6lFl&icLH+XSw^Aenhn>2pYxFtEoOL3Od zT;QcS;$^tX%W{L4<2EnPiTDZ9&0m32eBv4L0~L=fuju_P&hRL&#J%y8t-IgKoZ(eC z&#Q8YSK|t=&UIdcTb$)lUXy#{Cwe!3Eza=Toac48#Orc}*W)^`&n@ofQQm-i+RZ;n|719H)3|Xh-ro8S@4(6U#N0i8M^5ujoa3Fj$h&Zv3tZz}xyie6hj-^> z{G!m!--FY`*pae+VPh(F;fx4FTea+^=nKZ*F}u$v!WrjCsYe`bA+Kj$WY!5#jR zlktsacfYSV&0lklN4Ut}aGAg58h^)4{+>Jh11IB~+;0AloaUc6#~m*6&s^qTxW>P7 zlYiq5|IW#|L;fF}=07>dqg>>_xXgcZjsM{$|H~czkCXF+{Bc)yuV^QXOY?Znae|9H zfy+D**LY%X^6C1g!|`p#*ceQO{7I~@@}%70$+*pvb7J0bd=IC13eNJBT;QoV;;FgH z({O{Q1Id3G-F931hS zT;;jA!E$RnGBhT;$cc%xiFsv)tr0xx;I5a*>d~Hm7+V&hffjvN6I&_7L{O#cil8uI$Bk9Y&F@`l{tjkwJlb7HZu-zJ>mO*zY(ae;Fj@#b9REx5s3 za+|l}#Nr`;YfkYtoaJq~z5+d^k7x2=4HaoLoBOmpIKwagLAXA|JzLK9*~I95?xR z?(hkmTqfj4oaPfb$0u=-Pv$b8!ZkjXn|vB~_;gM#8}bJ^&1Z0q&*UPX#pVB5|J1lg z|MV{x_CMSD0-wVXpUYJ~j~iU(HlNRl<-`6LaEdSFEMLS0zL+DvgsXfhH@L!WzKjzq zg#61n#aD2aujB$>#Svf4RlbHBT;(=j%ZU|3{&k$<>p9CeaDi{+h;QO5-^>jj;x^yH ziA>19l~a5hXZdz6@EsiS+4`r-Q|O<}N@4#yt2Abxx@Eya^;YB zKd1Qt&hdj>F`8m$<^IYU%F7pdq;}^NfFL8%o=HzN2{}oR2tDNK4xX9<|pE6IWfBIGr`!%i4 z^6OmSH#p)qxyo;GgWu*hzr%?&Lf*Ta;udH5JudM39PtNSkh|G_o>lbbxs9sY}x>xBHjInDoY zj{oH%|How>ch&g#1DY_d#^brk3GVO&POcmBC*m|u%sHNfi##cpc`~l?8#Z{h{8$2Jkd45i881fh3 z6fekGUWg04Fh|_SRbGS}yePMMF-~k0@)ze6FTq(}k_)^PN1Wy=FU<{JhTFU>CpHfG z%W;aA=PZ}?Pl2b=Kcl>Y^~p`bek*dCGo0gqzHw*debDH}(#~W~wH{>#J#5LZSo4g5kcvDX1LjGo) z<{amEb1w20T;?sg##?cdx8@FS!^zD<{FzYnK)U(WJ= zT;TmV;sdzK2XccC;x-pKv31Blm{WWRXZcVr@L?SB;aue-xWPwqn@gP7CgdN*DZW7e zWO+LM)8eD8@9;64+&1iYET{Q6&hhbF0eAR9PHrFaFXA*`%sIY< zi+m}UxxzKRjGKHpclZiU?hx`X)IVuX>Yri0()u=E#fcrm@mF(-ui-3Lxxm+Q#Mg0^ zujdBez-_*f6FY_cn>fWcbC!p=z_)P3w{n$l;|AZ(ZN7sOJBR!`ImLHzmTO$#yE)=} zxXSl(gYV-u-_MC%LjD7s;s-g)buREj9Pz_kioF% zO@4wq+~DM{VZSFi%};TTpXMSz!)1P!Yy2EH`FZZ}Fei5l`7dyqU*sIW#6^CY%lr!0 z_*HK5Yuw=`CwC9|uXCE;;2ginMShFR{5IG49d7cw+~F1{_Xzp#ahl)f9Dl$?{*cT3 z5!d)*Zt^GG;fwW8a?g-IgZ>%fw)GAEl-v9nC-w@*f6giXg0uW37x*iV_-n562sii} zZu7UC*gNEZ$0`1vv-|@W_(zWTC$4gb8~ii3`4>(Mg#2GQ#lLZuf9C@K!4dz-RUYLA z|HWF7xbM<2ks=b8?60;^cuLe{N3mJe=bc7kOST z^L$+6`MJrL>YonJq<;nv3i%6IU*!e4!3%Ml7v@AU9N)(&UWBu}C>MA!j(Bmd@)F$O zCArN@apK^RpXL-V%~@WC3%o2xyc}0~d2a9u+~yTIaY)F|aEe#rEU(N3UWFrGm8-lO zH+Xe!^BSBuG~{PF#cOhw*Wv=N%@MD|RbH1HT+u&mo>~8t4h#9~SzqS$xyJq6tAxyG02 zpC-?ue+G^Uc>~r*ybo7-UvBVz+~)l`adg=408a6NoaKYKz(tPuV6O5Z+~7mG&4+Q~ zn2>)sr}zlY@{wHN5=VR#SNUje@G;!xV>xkb$Ulx#d^~6Q1TJvI5ueCaK8YKAGPn5@ zP8=8VPvsP!##ug{3p~gXpTSkWT>mt9R{fJdKIENgeUZ=NGM~*gK8KrpE_e7mPM#3< zFLRpD=NwBd=c09Vs7#!+~G?(8HM}`r};9@@#S3PE4a*8a*eOzCST1RzJ`-0 zhWsk0`C88LbzJ1@xy(0kjc?>8-^3lhnUg1l{2@;BEu7<9xyZM1nXk}4HSQf3M*qoS z|J$uE@EsiSom}O+xWP4U^WB^{CG39>r}$pZ@_k(3`#ItVxXKT5gX`Sphd6O+$bXnq z{0L|HQ7-Uf9P#5^6JMQrJoIE?^|G;Vfk#qbL7x^mvQ|8(APv1FVzmD};{+SE> z3rGAbSNS(?@bBE_KR9u2$orF1Jjz-AiwpcWNBj?0`Co4Ef86GA*Nl%p;`sYRoEP%P zbBYt3AfKAH-q(Qo{@7r6Bl`AF7qs0<5{`Mz1-p1IC){npPkb@ z2j_TBF7jMl=DE4X^Kg?>+~IjSc~QupkJCIq=Xe1w@`7CEg}BBGbCdhH!;5h8;*h^6 zr+G2X@#0+MCAiE>a*dbbCa1Z>OLOv)kiQJ4d0Ec!HTtK>bLyX-OT+QYS)bzNIm;_> zfmh^+GhF4BxWOxPn^)mPCFHNlDPE1UygCG9St{K8%}uICuC6PF6$yk(}mh^-qrH9v8+4m#j}*8;(DUQ+zaM`4}$nu^jPn zT;=1r!6$H=BTifw@=xRxpTt={nG1XhM|>(*`800u>D=Z)PFx@I&)^iF$yq*&3w$<5 zd=6LnTyF4r+~zVTZV373bBZtEEMLe4zKA2fn5%pVH~3O+bA=N(hWyJo#n9P)4AG~dWMzKM%`GnaXY zYkUhg`Bv`mZJZnm`L}bL@8BHY$wj`4%Ut6c-_1?FhdX>PCvOS)_i>u<=Nv!4MShUW zT<01;#7%yfJNyVIZw>j^>z_2I^v^IqYJHm@m2bLT;(^p z!EbS!-{!=fA^#mt@w=Sm78m$Ej`)49@(0}D54p`BapJC!e}n!>@x1z{&L3OfOWbD5Xn8ZXOD zUXDAwJSQIw`73amSL7ULxX3GUnOEi-ufk1Ul{>r|Cm##>t8<#y;2dYU$ZK+$*Wwzl z%}u^p|8#f({WJJ@$Y00$DzD28UXRitbAz|xHgC&`CqsUoQ@kB#d3!GK4jl20T;-j(!8>!C zcj3fSA-}*W-j%bw8y9$Yj(88Q@}At_A^p?l1;>R^dOGCqWqq0V<{A%hllS2c@5{+& z!hZX4n)l}%AHYREkjs1!*SN?{KA1av2q&Kn`G<0v591sk&P6_g%X}o)xWr99iaUHX zC!Y)X$8egD$%N0aN^~V ze

      (CeHHBT;L&&_!h46t@@|I3+tc!Dx+CFm-%+C@g3acJGsMmaq`u$e~r_8 zH|O{sF7mxx=KHwD_j8jU;0`~?$=5=Dozwgf=lEeR@*`a4N4dt2ag!hC4nM)kX2@@F znxEtxKgC6Un#=qQ*Z5g(@^jqb=Q;U$$RFl3zrZDp&b6Zg7*^{5mJz4Ew*qDSnf){1zAZZI1XIuJXIw;1;*}Jx;t8^55qaf52J( zkPG|~NBl8Y`4et%o7?;;C*BVEpK*#m=PZB01^$vF{)(&oH8*&K+x!hD-U<2Na*Ds> zEPu}h{(&RDUH?>h5&e^SH|+nT^*R2Di`?Nd|I9W1g`4~wnE zN4d;@agG1xCjY}7{+E;Qh5Y|G&Eu{eA3q`!#^rcC7dgRYp1?Jph?_hycX$#`z8~@@ zt z3p@iyJR?_mCT{S|+~!$0@lnW|l~dfyS)PpxJUd4`2UmGcZtz^(=D9iXamb&CQ=H-~ z&&vg#k0YL+tGoa=ctLLSLY(*{b_&ha{2v4_O=O*`ahd1El7a@N`PV+{b zc{{qKCli|eQKS7E;;xSyBg0x!iS zPIH-;<{@5&8@w#HcscIy^4#-vsAmOE@rs<`4Cij?26`5Ahb<;4QhuTXBcC=ALguz1wh#x8)4yImcV;_ksT%&x8Lvo`?Q-JP-4B zJi^;^&v&7o9k`Eo5Q4?-MNqV;C|kd2Y4?YB!VyayL~ zPafpGxXOETod>wd`|t?w%ZZOGPB_$1Eq$(-j? zxX7pSAeZ!em5<^EAI)t(h7-SqdXD83AIDifo(p^eM;vjLPvi!l#BDyA6TgT2Q#i$^ za+Xiy0-w$i4|0{y;0B+`Z9a<=e}w$AImPF2me1t^pT`lGxyt8rgD>DVU&x6+L;gja z;)^-UmvDhE<%la><;%Fimvfu%c0NpuhWyj?QoIaDy-87GK02zLQLb|GpHT0$+{f2(mapeL-@rw_kq7xEuJX-X=OJ$LEj+@va^l}m-)-E> zw{x2B;C{Z73w#%sxW;9^n}_%wZtxZQy~S7ZC|||B|Al(5<_urMd9HGaujL9~$92A* zTYLkL@{Qa(Zv41JT>DL&;hQN$%sPILl9S zo}b|&Kg)ys99Q{yuJbTA`2`-~7dbIWsP852<(E0luW&!V$_0LnOWfo#zs^Ja1~>Rk zZt+{(;kUVG(opX^oZ@#m!!6G7dpyAJbHpETg+JsPf5gN5F}L{>9_7cc9Us4C!novQ zq24Dr%?-}+lU(GdxXe#;ji2ErKg%6{j+2vz{O38%!<^$6xX3SZnP1`>zsya3g**Hz zCwoHvYnEJr}+o&=O4MiKXHjWT;}*TbZiW9e495m8XVtdjg1z^ zw>@K{!|`p%*yx!i)EnOxjExk>m+508!|`SI*vN5w89O!xIKE6A8xhBsWn-hl@nz50 zsBwH5GB$=ezAP9UZH`~2$HpkfFPmc{Ic=zS0{3zJGBY-^9G}+5MxNu-=GZ85d|DbC zgB+hG#zvLnr|sCNbNnVedTfkv+@@nAFe=_)8w5A9;j-;-2Y4euw+`XYS`; zcz}Q9LH>=0_;()WKX`=y^DIHcA|STE<414zBQ=T;sWTnCIp;&%>jf z;$&QCx88ZVkLTko&(C>YfQ!5!5As4><%PMsyR_d2vqj65P*A za)FoP5~sP$OY;yf!wp`RTf7{1czN!LKe63B5vev{`8#U892)`a)D>!h-c<1 z&%zC!mD}9QiTH`r&7X}^JUeH34leMV9PwOS<+-`R^KhF}oQR*O-TZku#q)8N=jQ@1 zz!5LVRbGf2e82Nyn^)FPQG8v5IW=Q{UulQ-ZI-jEaViLYDVM%>FAbDB5de%_P|ycw4`$7SA}hjNmb5DF??$)~vr+8b=aGrC#9S`vK9PtiZ;T^fgJMl2@%x&I#%ycE|t z%`IMTdojoZ(eD&#Q5X zSLX_^!FA4Zi`V2)UW9E@5jBoKd1Qs?&kx!zz1=Oi(KY|d590;1|P~TK8!njIQPUC zR^57!;1nOp87^^-kKzG7nj=1jD|{^1_&6TsAjjMb**Ljeed)s$%w;~Ghxh_+@P*vs z4fT76H{xV`q1>%^V@~rXoa0To$eVGQb6n%ixyf5_hqvTpd|}?r--^?`HRpI6F7mcq z<~-MUJ8ts!+~FNK8Q%zW^LOMl@5DLYnTxy&m$|?--j$oY8+UkjPR2JL-TXZ`&3kf= z_u?Y&&1D|o8t=nR-j_SPA1C7*oo@dAoaP5Lc#bd9PaVFPd*U0T?(vs!iZA61S2)L) z@c>`W5nsU-zLINv6%X^(+~#X|l&hSKZ```|Udw$v_Tk5G&+_%&pXVF6$T#vJ-^5kE znd>~nO}>Rk_*PEDH=K z^*+EUevmU<=Nv!81N<;Y{0LY0QLgc0Jj{=Co1frOZg6tBQ11cyy^jy%em;l?xX6Qi zFc0w|Jj{pk2p`5h%ZL2KxsQ+Fem;^1xWt2e6c6#yJj}=N2p`KmD}?;xxQ~zLem;Q* zIO0J*k%#ys9_EvIgiqm~6+`~1+{dSJKcCJ6JjjE51`qL>Jj`eD2%pV8nUH@D_wl*h z&*$*~*PRas`APlMw^G>eDbDiKoabk_$j|a1KgU&mp6fi!O@4t#_(e{v9O`+Ad--Kf z^DErXuX2H3;}SQy%&+qhzrhWDlUw{2cld4YStZo_4yX8C&Txx!{2mYR`yBBHT;UJ7 z#vk!8f6Q(Egh#o}$yGzWpK>36###QH^ZW%D`AZ(;uei!zbDc-H$=~n@f6Iy0LVe$H zFMrQz{(<|stltZKK1X~3SNTG2@I~C_i#f4+sOJ(+@ui&Q3K#e?j`(t}@)g|RE4j^A zabk^-e>JE08qRW+3w$j{d>vQ$dT#Iy+~ylOkq!Abaf)x|EDv#kZ{dh<l^=3GZ19izsjyba`-w~3;WGcsL;MRj_*ZW6Z`|SE zxo7Q=_Xnr=PtNct=lCxk;J-QIf4IW`a*hAvVII3^i?7?-JidDo7mra+aB`hc?*#7S zi8#v>bDk&RB2UVLJQ-Jca;|d^H+c#k;VC(>Zm4f6?&YaD&C_r{Ps;_Kj!T^6GEdJ# zJOej)MsD#;+~JwIXT4DGES%z5Im5l2%?=N3P}qx>NE zt{>{FbA}({JU`4OeuOLhDA)NhZt>$h%1>}_f5>lehM(j-KgA_}nk)Pa*ZEm)@pC-N z&vWkvA%B=N`~v6sMK1A6T;Z3w&aZHbU*%DLje9o?`AyF7>zwB|xWsRAh2P>jzs)Uv z_>6Eu809(iQ)Q!&KPT6CE*|E&xy|$ND5p5NaoBHO?&JA5%ky)d7vLf<$b-BPS9xKs zb00T(5gy@1Ik8EoZ!zxW#W~GOa6d1}1zw6voaQnw%|pBlH+WfY@p9bZ<+*3mQ11$y z;uSf=8P4%aJise+#H(2ciw|Na780Yxy6TZhyT*=J==wP|K>jahx_?o9^n6YkjGsgt~ZBxJP&h% zM|cAFY#;I`;y#|3`*{)`;7NIqC*vWWoQJuGM|cYE*&*al$$dN(_w&>|z|-&`Ps>9* z9S?JoM|gVf*)inLzg z{nWE_IQ|Gu@sXV266g3R9^j)n;$yhN$8wF2<6%CY+k66#a>U79LcJ$)AD_foKAH1; z3K#iQ9^})w%BORk2f4{-@CcvDi9)FFEbisAInC#AKcCA5K95UW<}#npLwo@@_(E>+ zMcm(w z-%H%fFLRn-;eLLV3%rJYFL9PDye8LqEpGAJJj&~E@BX2_bveW9ah})b68Ce3H{d#N z$SvN8M|orJJs{+7!WrI_^Sl|CIL8&vQ+XLuXV^R`^#JXd%- zuJiWX;vIODcjVrKLjF#i;hj0pyKspMT;W~0&X1oFzJA!^*Ys1V81kB2=GS?M-{1zn z$t`}1JN!2H931w4hg1A6XSl^Vevb$EeUA78uJDIkn zFWlf?xy8S6hkxgu!$Q4(aEkxr43Bb-|Kb7un^@+sWmC!7zH zM}_=<^;3=i<6(~fsBUbuc|4DDf|Eyw{U&f9PsCZCnDaad7kN@1~;u*NXGjfY(;ttQuJ;#Q6XWx8@XY(+h!y|ky_nZ*&&*MHWb3dQY1AGAw z@`XIa7x6G(%p-gW_e3H8Qtsml_w!{uz?btNU%^9sB@gpeJi=FV&xs-b8t&sN_w%(p zz}N90U(Z8)0}u0!Ji<3|&q*QwX71yL^I<d2vqj65P*Aa)FoP z5~sP$OY;yf!wp`RTf7{1czNzQCDgkDr+7uqaE5cd5)bgo9Puh#;Z?cDtMM?e&TU?U zM>)&MQ$xLLav!h7Szep-ybc$6T^{81xXSBuo%^}T8}JBk$cfWJeH(EvZ_H`lg!_3@ zF7Ret;vAQGa~|R?xWQX;i?`wqZ_PcYhkA#u4}boV;#)Y&w{n4Rc z{5ZGy2~M0D@*AAuCppVcae<%ah@asqKg$h%j@$e^C(a7_!<^z5ILj|`fuD>&j_!zf z8~v0zJM6bDXE@I}-i`-&dyaSquJDdrq9xy}RJ80Yxy6TZ zhY#nT^FqBxaEg!Q43{{^NAUn3%@H5N6+V`0d>jw+@!aMUc$6bfmP5TKavz_>S$;{s z=lNwW@he>6SGmrwaf_Qg%CB?p`JtXSIKyvpp5NjUzs(hXhwJ<=+r`&sC$p4Hp{5j|O3oh}OT;Z>{&R=tjM|hOK;ogfv z{NujbBTZ83P0t1Sm%@VQ~u(x|0!JLQ+be2<0_xdbspp-NpxWN~4i!b61U(7w1hI%jI6kp02u5gYo;{m>$Bff$w zd?nZTDjw#mxy{$`C|5aI3H4sfeS95f`FhUt4P4|Kd5~}7D&Nd?9^xk7!XtbuCoT*1 z-NwCqJE!>$?&mwXz;|(pf7I_~{)ubc;U@pg9sY%rmxua(A1#8Zt~O4haIlzr}EVy|85@Qd$_^( za*OZd4&To`*M$8Z;1oZ|8Lo4VAL0Rim?M6KEBq+e_%R;l$GQ7+?7R09PjL6=s(0Ps zWHtCn?&GI8%TIHjpWz}u%Y*zJcYjW0H}84w{#?Yahq?Q6__}_9yFVAM>lZn3ZSYIn z%P(`9U*Ud!l?(hDm$=Dgex1ADm${q&26w-YYS(Xa_xpNw{T6q>4`0`BbI*0b?{JFW z#V=UI4w zXXQce36###QH^ZW%D`AZ(;uei!zbDc-H$=~n@f6Iwm zLVe$HFMrQz{(<}XM=tPBT;dLw`DY&DU%0`)a*KcC4*$+Qw}yKE;1vJK86M>v|HT9R zH%I&rSNLD9@qawb<0guqr15C;cpl{hCvOY&PT)SCh_gH~=Xnw?@}xY-lW~&naGkv%De~IKvUI#8qCI8@vj)c~wr_5%O2#6tB)%UV{sq<%rkh zDzC*2UYpyz4kzvm`Rj6u*W)a&&js%1h&SLWZ^#Yah}*m|C+-UQn{bLZ+&G4$5mdR z>)g*x-hfAVLry#z>f4BWd1FrVCfv`Pa)CGF66d(goAVHF!42M$Tf7x_cx&!?EY!OV zr+8b=aGrC#9S`vK9PtiZ;T^fgJMl2@%x&IB!Ve6)Tq@-bZI zW4Xr1ag&ed4xhluCqg|Dr};$A@kw0dlex^NaE(vpCZEO~KAn?|kUz+2K7(_7CKvfE zF7w%3<8!#l=W>V7_ai@C{{aECADncqZ(>ANTV9oaO_#pAX~$ zAH*dta+we2AwGl~d?>g0Fz)c--1BUx_Xtk$k(}WY=lCcd;G;R>W4OY{a*dDUVLqPQ zd;*Vh#L4GEy(e-XpTt={ne%)K7x`2k%2l);j;yZbm@8S`zanFk(|8DN%d$^zP2l+7`;>UTIpWqQ5J|o;O_q-hP&(}{wd;vH3LT>Rz z+~JG4=asPEC7j|*Il~ps@nt-~mvh8daD}hr8ehf3d^NZE8Xn~;CtnTqUdw%a9cTG^ z&hrgiU)Y){4{6z z87}a%9Px8p<>$GwPjjB1;UYiFgZvy<`FXDMFgN)H9^n@`@ouQ^ zCGO>yInA$dKflTaevM1q;m_Oz=f5M~O=Hz>!-cPxYKjSQa&UyZVi~J=I@>g8tuer`6+~jX~gums) z`=P$i^?NUW!5RLN^ZXT;_-n542-o==Zt=G~%HMJC2ce$tIm172o`2*L|HKvUaGihV z7XQMd{44i<81jGP4FAq~{)0>WCs%ls>--nD_-`KNf4KLfkpC}d_&?6`xEsUue2K?% zg%e!o3Ebj|c$6pR-j756B%I+%InOUTAC~w#{nY!3&mX7x2kz$|xxhbhi91~8pLvLX z;RgT8E&h!={5$uwLw$d6ivQ#ck8+Ox;sO4fBmRdg{4dw|KOW|B6Z`X59?zqk;N+*F z-U-~t6LFR&<~&crMV^!gc`~l@U3R#>U3R#>U3R#zv2Ujg5_s_58liy3U{1%v$SpJKpnl{OrAT$Ww9T(=gxE9Or2` z#nW<@r{e-o&t;Brjc4E{&&VB~iTgY=k9Zc2eir7Pl@mN0r+ISwp5rOF#8IyCl-%N} zxW`lTh^OJ$=V6{{ImOd)j;H4m$GFBbaEoW;9?!%ho|$7`g#Ij?;#oPzvvG;zT;tif z#dC0v=j0L3#j!6#e{N3kJe=csxx@*s@qFCk`MJjn@Q4@W*jJ&y5T|%y&ha8#;w0Dj zCEvpq$L&*Y7~Y?qi#!KccuubKT-@Thxy$qLfam2gCph+X=+DPVo}V+k0Oxr@F7ZNK z<%PMyi*TEh+~Y-g$cu60n=s$v9OorC#Y=LQm*N61&1Ft;jhEpjFUuWXj{Cekk9Y-+ zejDapkrTWUr#a0zUYU!$3RieluJdZ#;?=p!Yw&>A%K$t!V| z(_G}0xyq|>lUL;~uf{`Ooufa7{u-R*H95-}F7jGj<+ZuV>u{IXp;@CafUbN0&l?;-jW-<6?b@R9`H6C z`6KkVJQcxR4`Lw^@eaDg+tD;Ib-uJG>M;61p*d-8zy z;>e$&zc(ki$Qj;;3%oB^ct39N{@mdMc)$m8Pt4C-9gn9Q!BCdm<0eAR9?(;=F;)^-@ z|NeBv|NZ%jOE|%oa+>R$KZg6bUaQ|9P@^zfy>p9OiaEWi^D&NEnzM0$HpbGiI5uUN=Wd?QHQ+yle_;xPw9bDr(xy5&Jk6S$A zyE!&Z=-^yT zI67UJ=WR~#JDlb|=lESN@_St2_qom=aEm|WE`P)W{+P!+;MnwG-cLBmpK^vj<2--P zCH{h|{3SQ|D{k|Ud;B#I`5TVJ!hGLyoWJ7~f6rO|feZX2mwCiB{)wCXGk5qG?(?ra z;@>zrLzwq>PVgU`<}v5^e*0eJ2e`@)a+BNK<%f944|8^Wwx4FviaFct!hh6^DJ{4yTy}!7^e{-Gx;THeP zU7lc4zy8V-@|YtWn=SMv;v`SZ8J>jmJSmrWGOqIE+~6s=%~9_0lsx3AI1&%@P0ewh zhEqH(XL&j<@bp~f7}t0PZt{%W;hDJ4GxLaN;ppsP-dQ=pvvHc^oa5QK$a8Ro=j1xi z#VwwjyF3pMcwQcJf@5=pdFSIK&(9fNfb+Z{mv|wra^Jo;_+9SsdpzLxIWlLM=L1gg zhn(S$xWFHCg$LZ=Pq@RM@_;|%$XucSIVboF&hVF9;IFvCLvHZb+~IF{z~6FY?$G~^ z6Z}1A_y;cVk6hsqH~1&+@XtKpUpO*P=>N(I{*5#II~Vv5uJD)}{3mz#FCOsgzK4-{ zLw{lW)Zj(9%}MU@qCDiqIFbnOEzWUXf>XRCXL%_u@X}o76xVneZt}9+;pMo`%kzj= z;OKl|-W55)D{-3Boa2?b$g6OLSLHgd#w}i*ySxSucugL2hGX-GdDr43ugw`=hx5EH zmv}v{@_)F&>vNm4+~W;+$QyEGfiT}j9OsQW#hY-JH{}9v#%0cNjW_2eZ^0e@+rIbt zA0G3+9A7ZZJHbui_rIliLe6u9%RCX+d17w!B;4modCZe>e4)^voYOo7=Q+w{o|5Z4 z6}Ne6?(;M}=4m;;aOh9RX`Y_*9OE+2z;&LH+dLEZd1fB-EF51X^k?NX&&GLsx=NxaxMc$q(yaU&H zM{e;>+~u8lz`O963mjW4%)2Wmc{k4R?wsd6xWs#MmG|NX@6By4a*y}nA@9qP#lw92 zah&((6d%A@K9CE15SO{cH9nY|dkoaQp;_$V&&(OltU zxX#CNi;v?jAI}3mfyX?LeUB{}=AD;QoZuYK$0eShYrFurctP&*LOkMyIkr^jFTyEK za*h|}5--LzUYuLJ1owDJ9`RBfTRQZY<`kzm$IEbum*pBS$1Pr-d%OaVctwt-LVqPr zahh|yGM9K2uJNke;?=mvtMiE0;Mg*uzb2S<-&Ytah%WQ6raOcK9>u89+$bsH9nu4d;xd(LhkcL zJmQNvx_p@T5>D`?oaQ>`_%bf?Xad@uL;J|6M?99=E+AK(N($Z2kKjvwM8Kg<<=gzNk$ zxA-yc^5Z<6leHp&hs-|;%B+a&vApF=Qek_$1m`ZU*yOdVZN6* z&M$L{U*Rmj$_0Ln%iQA{zs^m5gFF0R?(>^G;pgAIu3pgfo077x*x) z@ZsFxBe=sy@_@@6Sv&NP;shVf89s&!d@NV^IBxLq+~E^=z!i?H6Z$7|f=}WMpUee5 zg)4k2H~2K}@LRrz1AfmwRn`st_qom=aEm|WE`P)W{+P!+;MjWM{ZBZ_pK^vj<2--P zCH{h|{3SQ|D{k|Ud;B#I`5TV>C(QRP$N4)>@%NnNAGp9ja+yb5xX%N=LG-3X&!Tq|KuY7#TEXW>--P5_+Rew1e5voGoFyg9N}0t%sUY$d1B7+ zB%J3-xx|xkl_%#0pKjmVT;)EW!DBv?;~Rwe&f+wm&3QhD%X}`^`8;lOjr)8)kNE7g0nf{0PH-$2=ADm|JU?f60nYP+T;hee$_sOY7vVN1xyOt0kQd{~=3&0Y zInGOPikIXpFU193n#-Kx8ZX05UY0w&9QXNF`#$2^IJQNY_jXS49h~Dkxx{yIja%H} zySc~r@QCl_*p{JxAE)?!&hZ0W;s?3LZEo>H+~bFN#E)=ntI&UxQ~Vg`_;D`r6I|mC zxA;l!@l!nFr#ZHD=s&|LewK6m9GCccu5p)J`~vs*MIP}>9NQ-JU*;6Q<9nFnp;^U-U$O5=ewDNQ z8W*|8ReqhD{04XVzdYnOIl5!$zr{&@o3s257rD<>ewUm49(VbD9`Xkq-6`}xd%JOlcjr9s!6n|4tGpLCcyDfVk$b!k4|!jX>>B3TkK?>Q zr}zNQ@_}67gSgBkuJOU#bDOK&<1={3XL4kZFyC1m z=d(G*=Wv!s_PxMAafN^82LHkx{*?#(8%OpG^Zd>U{)00-<^uo875>c`(bAqSf4FBK%r)h!-CYqqY zQ*wo;;s#I69iD~D`?oaQ>`_%bf?ifTagiV93eRNU>pU~Jc^2;TtUTt~IDTN5 zFV1P6o%1{gmw8UE^IY8Kxw+5t@R;Z2_(7qc;55(2d7hukya3mEL2mOx+~z(anKBZr0gUg9{v%qf0_v-~O-_%$wbk8AuoH~9_j@PE0_Z}N!W;^^UF-nTiy z?{J#?oa1-7$nSB5-{(4iz%BleyZjLk_+uXPfMZ95c|YMKf65vDjPv|Cm-q{=@|WD; zuei-C+V>u>#3N2~?8q?R%ADd=ILE7UiC5zqug)!AgL}Ltk2u4za_FzcDPEg%ybhOm zU9RzZ+~WUmkJslBXE}CM=x@L&-jH*=5tn#luJI<^;!U~7oAHQq96LJnH|G>@!8zWN zOS~1=cx!I)Hr(TFdBk~+9TWQR`yQrvyZ_zi?f-Y5clh7^W5fL&ImJ71j(6q~@4_`M zaEo{49`D8@-koE|h5jC#;ypRXdvS^P<{B5d#rtrN_vI1q$Fbu>e}7K#0i5Flxx@!? zjZ56(gSp3t@Q4rP*a@M37^nDf&hZgk;v>1nWp43N+~cEp#2?s~SS9p_zCTSq#`z8( z%L6`+BPWLY$8&;D;0#x|z$bErPvQoj%pE?32Yf0=P73|gIKiiLhO1oQGq}QMa)Zy} z4xh~fK8GVGhyJ;o;PW`cH7@Y^T;U72!54CeFX91T%#l+<{}N8{rJUh97x*%+@a5d# zE4af~@_?`6$f=?Kp?ym5*Y>HyS3BS5Yk15Jj-M9ZyOz^@9q0LaF7pjs=Nq}rH*ueD z<}o)petPKN!fC#h^L!hZ`F5`J9o*(SxzBg;m|GmLhW_20=6g8L_i~x<<2v8ZZGM3J z{2-6H&G9or{~=EE!<^?wxXh1oogd>iKhAxAg2&w9_?e;qk$p<@H}&>W{~IUych2%3T;wrV`A=^0U)<%tdC328^uo~p zmy>|JU>@>0dDYu+~I|IzzcKavd~|I z6P)A>FUke}#6DH{d;65QJiND<^J!k3^SlI?c}cGGQrzaHxz8yc^D-R2BJ`K#G%v?_ zUY^Um0@ry(Zu3gq=QNLbWsYAN`m1o7SLHmf#${fe>%0cHc}?zfhR3`X$FBh} zaGuxYGOx#V{tvf#eeQFX$Gic@uMYhUIn5h!o;T()e`=rV{DXZ;UlZQj#Q7X=$|c^6 zYn&ha)};%&Lcd2aD`+~e(e#5-{8+R)#TQ@j)BcxNv0 zE?naRw|H0X@oqfg-8pt$=x;T*j&ynh5I`AE)knTvcBSNUje z@-f`yV|mEOarCCpKc16(0%y6xMLv<@YOuvYdCUS=r=gQ*K&rh;{spL6~2KRd?R=G zCLZw39JxL8o1EZVIK#Jcfp6mq-_8xbgFAdD5BM&Q+!6XMPVn8F;d{8i_i}~r;|AZ) z9sa^T4frSfRJk+sA8@|T4|1E^+~ESLE?uJiNU<}Ua71s?N@9KSpCU*a^s%z1u=%lsB_42%Kj9XC%02#!NBlX*?hpMhIK^Lbj=$m(54px)bBn*>9)HUt{*Gf0 zg#P!O;vYE2KXQpjT;rd(#Xob8f8i1T%CQGS|2IzY@0{a5xWr?w@t@q{zqrSL^N7E) zPqB9B|6-q7{Ezcp{+EY5!7btEAJK=x{RuhA5zg{NT;z$l%9C)DC*>|r#zUT*qYsDv z6rAKJXL(94@>E>qskzD1aF?g$Ay3EAM?!ykPI8R1JOdYbMy~Qq+~k?L%d_y1XXWUl zp+6fZInG(0or^pNS9wlu@?6~Ixp~O*aP+azAD;1l`!K--N&eM7b$MRr2b|!@!C#*d_9?@^*{1=o?fjV6;rP?xy>&Uw>v5j{!)0Ed>zw5_Z@_)tkjK0c$DaxP zjXBMmaGp2iGH=Fp&T*SJ=RR-2W8RYE&xZb1oaU`L&)aaBx8*wLxy{>gpSR~R@4)fr zLVrh2^G=-Sow>}raGeX>=3TkZyYZNJ=lJuXzXzxJn=`^b<@tB}H0C{>k9EWSy*R~t zbB>E#;(fTr`*Mr-;~wwNBR+s*FNFSqoZ^Ex$0aWD!Cd1*xW$KZj}PM!AI`BCL;na) z@sXV4GMD%$uJO^_;$yhS$MT4e|u71kQ1VOMD{N_#|%e$=u^pc*Li2?B&ou zjZ=I&=lI(*!akMw5Bn5*CETw%pX4(*%V%JW`8T4GS2elT;wab%2#reui`FW%|pJ1qrK2?aFVa( zEMLb(zMiXm12_3b?($7MVU*ZhE z%msdhEByT#VV@fOr+v!26W)K-`8>bIW$tmEU*|Tz!F~QOkNHiG_e1Y3PV?KG=Xbcw zeXjGn+~)VV&+qe?Kj8Sgq5mPL`6JHr$6V$C*ZC7}^QYYB&v?wAbNs!~|AN!}CFl7o zF7uG<{57}v8}9SBJm&8>{(k6x&uRXF^ZX;1dBpYqoj)V&Q=9*?Px%kR`#(8f;-9(3 zzi^9x()ZF4}xX07-h^OP&AoQo_ z6vsHnGjNG#(3B8$}uktM1{B=EyMg*Wm=O%Nbse3;Z9h z@cP`~EO&SV9`J@7`8xDB;skHZ8Qz2oyeU_BGj4E>JG?m$cngkv6Z%_ng16!fZ_NeX zhAX@+H#pB7-i`S$$7gbh&*B=N z%`HBMdwedB_&kpN68bex@%fzN3%JA=a*Z$I7GKOgzJy17DaU>d{W_=kGS2bkT;eOZ z##eHSui_qG%_F{sW50#|FZLKd_8CR1}^fAT;-d%$v1PC zn>^%OIQmEE-^xk8jkA0^7x@mZ@}1n|ySU3O9`fBB9f$rsoaB2s%lC1S@8>E%z)gOT zyWHj>Kg7{LL;qn;@*|w(N4dz4ag`tECO^Sl?(mSGqo1V76eevS+LJXg5O4Ss<;{2~wdC64?P`Y&^WU*QbD$_0LnE8OD-zs?4?2mC%q{@=foM*iPFIzHe8f5;jBhztBNS9rh; z{)9XHDG&HFj!YQ(pL2r0;0*s}p9(yYeTqcF{V$!5^H-eaA?NvPF7r2B=Wn^q-*KP6 z=Q01l@rlAbKXRH!oadjo%s+FTf8jR&%635`m1u1SK}tGp&RIm2CEi-){6 zN2d+_bvViEa+cTQBL9c0ygoNM%U#}phrA(2rwjd!ILRAxmN(%dZ^~63+ovW^YM-*x zhxa#gzQ8%I@aEj$Ex5y5@_@JENG!a+H79r*&hWNe;5=7&J8tmy+~FN~z&mnehS1-M z6TCBLco!~kfh)W#H+VPh@a{a|JvcIB=`^0GW%4RIrI*3zRZVmoe$$SAI^O~g2#L$$7c!empRQx zah{LnG9SZrK9<{j9QXNn9`gwtpEdL=oaPfb&nI!2Pv$zG!fig4`+ORY`E-uY7W!3A z^BJ7yGr7!Xah=cRHlM?NK9|RQ9>?RMU*j~N&w0Lp%X}f%`66!fU-qfbliR2A?4ftD z^EJMNTYM?^xXvTKjAL_z_b%rYU%@%Pl1qFQ*Z68~@ipAz29Nk!j?EeR*Kvxk=N#X_ zCBBhsd=t0$X6|v5M|=y%<_i5=ImNeej&J7@-@!G$lUsZj_qfF)zMErnhyFdB;(IyA z_i>5u=Ndo2Eq;)D{I`7?@f7x{Hc#lcop16(+~tRP$d7Pz-f;g>PV!@%<;S_mPjHnx z+~g;@%TMu;pXO*H^q=7*Kg(Huj*I*}SGmhgeu2CEA`kf`j?NeQFLRP#;Vi$(MShK| z+~X#{&Ru?khx}iT&L8@3a+2TTEWgb~eut~v=O(|)U4D;;{EvN#E)e=r`_$z3o$v4m zJm3#GvS7IX5hwU#&hUT>{0Ue1Q*Q8Q+~Lo8z+Z4=q0s-56Z{otc*q6*nk)PbH~3rb z@OM1m?>Vw?=>Nb8{*g00;sXD~75+ju5BOh>Bt!pS`;_1*?Nf&*xIO&*qt6ram?IotG`u$vr+H$|^CVp6Nx9CGahoUS zK2O18j&gjl(4UgiJQe48YA*9MT<2-I&C_w8r{^)pIKFu3&%kM(k@Gwgmw9Hc^DNxv zS-H=%@tETrUn2Bp=QPj3d7hKYJQvq_Zf^5D+~;|D%n6P!8Tu2P8GgS?ny0c)eV)(x z5zo)DrNaFMIK>Ncju+w*FU&Pwgj<~C9xuuxUW{W)hyLQ6;w3o8OLB>q;uS|9 zd%PBpcx{d?8~W>TiYK&BIiA`+jd)$>qsxW+>v59*!&zRRi=5>uZ@^97kh{DQ4|!vb zE+6`vaFRFWEN{j|&T*AD=O%B#UEY$1ycI`R2>q=&$=h(2x8)+|xysvdlegzC@4!Re zk)tby{!X0aojJ?9aFGjKqsd=wY>Xs+-v+~8xm!^iP}kLSp$p??A=xWXAekqdkhSNLRZ@G0EkQ+dFrab&g7 zKb;d?mR<9m3-_i}8V(7TUQd_U*-0WR@_T;n#k_#y7`!#v_gIJR!+Kgub7jC1@r zm-q>;afe&{B=`6!9`Vy0TQBsV;S@j1Iev~y{5;pV%PoF^d;B7g_$7}0C-h(D6u-hb zew9o78rOId`_$s;?Ne_3@P5zvBEQa6euJC*U+(goJmj}Hnho#2%}IWTv)tz*zspsA zkDL5HcliSz@`oJVAoM@tB!A3V9&nLA;VOU1P5z9#{5cQ#3yy9W`d@OAzv3(pxyWC0 zmA~O8f6HC|j)(j`M>h)nA2`WBa+XJ2pUB`InI5aoyR-}$F~UY&BV z1owG99`pPh-!k+U;50ADd0vRiyfD{!5pHvm`@ATRc`=S}75a;FnwQ`_FUe(IitD^I zw>iaqUWUiKEXTJF{pC2#%X6Mr;4-hsbzX_voaR1HZlA_HqkXDx6Z$JV-{Muc$E)&) zSL4{W;r{BJ;x#zOYjTM*T;sL4#cOkq*WnSb%dvduug59=59fG&E^(G?yaBg(L+Td6mP>h-j++8=NfOvE#97c zyaSJT3i}k>A@pamPc7cj`7ZCoL*ALAJBItaaFPq0gOL@R`j_eWomvMqG=L}!L1-_Cid=)qNYVPngJm3aL_6+?g z?N5Sdu|I8|m3urJ4>`_}y~2C5bDZbk6wk?7o{I}SHoZ=fe$2W3`Z{ix?%q?zmk8j}--^#K5LjN{S@$H=BJGjJma*gle7Pq*^ zck_tv;n@D6e=n!_KF;y|T;d0~#t(9f+uY-ac*GBL?10dJgj4(|=lC%$@#9?MC%DBO z?(vg6;-@%vVCYZf`BQhycL&uYp(G&+~jS!!+GxWc0A(kIeKuIcLz@J zj-2M5ILAA4k$2$=7r4&5a*KE4F7M6*-h;=yC&vy6^X|n--kURA@9I zU*ih*xWTV;hu`1<|Cb|&hyI(K;I}x#Z*zg);R^S;!S8a1-{S$l&ygcS{{v3&hn(S$ zxWFHCg$LZ=Pq@RM@_;|%$dRG{IVX5(-@gnWWPkcx;t?Or(Q+;Oo-=#`=efcqK9Q?@5;yo{Zu2SJ<5PLa zr*Y)yFyHAM=PIZ849@bIT;Q{~%x80r&*3JY%N;(C`&{D@pU=@_!n_x7f-mGWU&J}S zn2US~SNKw{bDdj!8F%?|9`F@B<}d7f?AS2xmz?6SILAXS@z-4AZ@9(Za*w~`5r5CI z<3j%jPVtYN;}MtmC$90&+~Qxj$G`H3f8*Hkq5nIl_z%wUm`nU8*Z41P@!#Cze|W_I za_ofApWx2$>mwLc6o|s!a3HNwX9`R%xtAzgKoZ@MG|8jh#{TcFA962%E zznbHG4X3!lS-zGFd>xnhdam&e+~ga%!#8oCZ{`s;TgEVGjfGz;s(#m9iD{;JS#^|5B=FV!Ew&;>|EeE zxWaRCgXiK7&&>m#ha=U{pO+Jy;0({l1)iTPyZ|?NLGJKEJm7^naz^Mc!U;}thNt!Y zEAR{UXUs2h?9A}qOPu7FIm54To?qn>zs6PWaf4syHow6={x1*tO^%!u=6j3d{5Gff z9nNx}3;ZsZ`8}@j``qLYxWgZEpFiRef6URd!@L7d@F$$+PdUe*agjgg3V*?M{*qh# z6?b{a1OA%F{0+y>3G;r-N&b#A{5|LS2QKlCT;&lr_$O}j&)nl*c*wtUGSyd<}HDem#oJmM6`&I|J_!zo^tbG#gvczLez3f$rqxyLK{i7K zd3r8zjLSR&*LX&5@=V;}nYqui@Q7#S=p|v^**L**PV?-X<2ks~};yTaGEuM$F zJTDJ8!DF6}W0!_`=jSAEWZyHqF&B6fuJESZ;LW(hIUexl9I1!?7M$QMIm26Vfw$%g zZ^I4VmOGs10dL2V%R+y9PVf$#;T^faJ8^|~<_7P=9WL;Icjd_Cp}!j^cz4e59$er( zxx#yKgZJhR7kR+@aO8^6-CuB&*2=O%O#Ha{?#~Vf08$b_crGY zZ^3!ql1sc5S9xo0@HX7$ZMnyJ9`be^xhc%EJ;!+mPVtVM<(;^|J9C+L;TjjX$-8og zcjG?q&LiG~qc?|n_v8fc#cAG~b6n&i@52?|m+QPAw|IZ<@&P>H19{8`ajY5UEpd_$ z<_sUgc|Md&d>B{xaBlDs+~y;>$7LS!Q5?A?%y%@$`4~>|v7F`e?0bQ0T;cP%!546c zFXRDV#F1OWJQs6I~bv}t(d@^_W6dv%YJm%9lc2}6^bWU=WGkgZ;`AjbH zSzP6_xxwdfo6qGQpT|S4aikUIJD=lx0jKyv&hkZE;ETD;mvD_Q^clib$@Qpm?n>cn)nD=H*a+5QB3+MT6 z`(EOExW@N#i|^we-_Ij{fMfTDc^>2xw>ifTafu)18b872mPewAYng#K%s z;vVPtbuRH6T;myi|5|*j{mDKU-oK3td^?x<4zBT?+~m8s!!7Rf-8|xZINA>VdpW`P zahmVv96!KCevm8N<~l#bEq<80{0I;DQ6BSS9D69t`#2~03C?hb^ZX>2_$jXP)7;=^ zxXsUUkDucqKhKee!+c$i^9!8f7dgu>ae-gvGQYw#ewCa28h5zIeSV!s{02uK3G@D! z6Z|Hp`7O@z+g$wLefwVd-+gZU?>=|_cb^CR4o4mh^Yl5v?{bFU;{w0W75;!5{2_Pv zBOdU_9Cr5BMvNJRbT(PVm>9;cvLW-*Sb&;|71v z9sYp_{3A!62>lT!_$SWr&s^YNxWd13gJ<&n>+n1FC*Se+n@jvISNT0|@cZ2654gu4 z@{m8`$djS>F~@npDgK1B{3#dsGcNPzT;nge$zO7Zzv4a*dBk6H^rCy0h$?}|JV=9`e?9N`pC#95x03p@#z`8WGsQd8ZPm)T;u7u#nW?-V?5#+IMxmQ89Bu>agJx^63@alo|RkwJMa6~<4NsL z@rBTvj4M1j*LezVag@6}B@cKi9`n>3dolE;;UrJX8J>>wJUy2<##Nqy8$2Voc_!}h z%sk{-IPy}MZ&r@;Y@FgaXL)um@Ely`Il0Djag*of4$s4Vo|i|Q;ONU?-uXDe^K+UP z;2bZ=MP7(2yfD{!5pHpkySyk5crhOH;v9P=%)109c}dRjQvV-~b{QN^)o=?G1`j@X z@WF!*9=!43jR$W$c;mqv58in2#)CH=eDL6d2Om86;DHzJtvc)bxr)(X!x_)Z1=qO2^Kpyk=gR9Le*v!X zf*kQeobbY&@giJs7dLoOZt-GVX@>m8xyDOy#7lC*OL4|abHR0P@G{)uWx4W3$X||Y zygWy|0w=s8XS@;@+|3Q1#rxOdW$dT_&5*w==e!&b@$%f@6?l|ad2{aJm=oTD`*};wc`F{`t+~P5@F;J~ZQhPM-VJ?w zxyIXbH}AkP@5p_;6KA|L5Aw?PUh*p3g7$Gjb<+{-y{&n54`O`g^J*XCX9XW+w-zbhA<@G$SjP2Qcycn_|8 z6zDn~{!TWQA58xIb$d%7S{y|*hgE``q6F!79 zK9mbSj2nD7xA+LId=c`GQi3wx2;hhf6+} zNBBH$@%cQ?Iaj|5_g}zWd?81C5%==Nobn|+z?X8tm+>$Ua+5FTF}{K;Ux$8IawlKK zb-tQ=_!>_5TJGn9bH0v;_a+`1Bj&DNWo4Llfa5oQe%(rqM-^Ll=&Vzgh zmwYFW@Lk;EyLp^Tu8xJi_iz{A%Mstly?j5X`~VN|gIw@KJj}=2dy`M#HlN7VZ$rO~ z>wFT&d@`qe3g>((mwXyG`E+jc8C?A?>?t7eT`~-LNlN@t{`}ir&_-P*GXSn2Nd4!+i7C+D9 z`~p{h4t+-;wN@H?FF zyWG$3an7SW#P4&1Kj2aRklXwbcl;9ie#|xgguD4uj=9Bs{26EbIS=v|T=JJZ!q?h+ ziwmy&8v0$wHNKuBzJU|Iku$!D3%;2fd<(aDh%3K^{9C!kw{gU`bHaCU#&>eTcX5O7 z<`$P+`90*{!!^E_BfgIlzMnIGfD3+*8~hNrc$h1Hg#3rO#*c8sk8;9~amJ5x!B235 zpX3%dxbkPnpWXXcVoi6^N1 z|7m~7b^eHB{+Lt#gmeCsOKx$KKjSuk&eaJ+{v6)FI?rf7BRmtgcxE2wS-4sW_sz;( zJR3*c$-O)~r#uG_@SI%mTs+KkbCc)cF`kzz6NP>??&SHn&hv8*FTe>e$o;$!=e#fv z@gm&dE*|AYxy_4l$HbxU;#}h;xSN;cn3v){UYawm^B^z7B`?b(yd1Z9c^>B#xH?Jb zyCQe-N*r-F_wve|@+v&Qt8&4s@i4E>OKtzYj`yLe99t1y95co|s!a30FEo{-j*vIlX@ouW3J{ z9C4f1;*Kf9eQR@#*Wqqnmt$U!`*?lMcmp2f9xi!99^s9+#T)ZDZ^G57Lf=ifi#Owl zH|JiCIpr;QfVbp=x8h;mnwz{0kMXu#nL6~_jyt)R>%2Yp@D7~tj@-{Xan3vQ5bweb z-jzo=;WqEa9n*xqyK{~A;BMZNW8RDVcyG>lA0FgBE_q)b;r+P9`|~(YX7AN$L*L1{ z&QoyA9h~x%obyy%^3>eqX}HbPa&@|pKONV3dXBluDbK(;&&Vau#7&-=+dK?&hvB03viPca3sAImWx$9;S}XM6$=@`+q>#v^kbLe|2ckyW)@#);lXK=~` zJiupi!DsO>pUq7^hsXF_uFMkpoyVPgKG!+t9=?DRzL5L*BF_0@9^y;5!I$zVU&d`7 zoUzckml&Ji!e2`|eTFUJKh&kbII zTf8DyIz#?ST;pzzcx6s_70!57E_gL=@ao*+HMlZ+$X}Cd9C5^Jal&hJ#_Mpw>vDtF z;});al{rHG23+GFj(BeGU&5E$&p2Pf)j7j`S8^9$#Svf4y?hO)d@T=f!3AH(!+bqA z`34^28@V!9=ywx$^37c5TeydZIN@8lpKs%wZ|5PtgByG&kMdpI=DWFL?$Ed78sEd+ zd@sj*ANTS7obdxZ$PaSK5Ag^ObBiD5aejoW^Mt;Sau+|w5kJno`~;``BoAX+|4eh3Nu|+~gT}jA!IZJ@lK2 zJ9%cV^DNxMvvR_-aX)u*&a?9n&%q6zlSg?jZu8vSu}tVY57&5J?&fptJ?8T`&w{HwUmS98qQaLU(m z&IOlz9XI)UZu1RXT|VUB$aTJnW4@VFzJ+rh;*xLWCf~+wzMZQpg#0_W&UbRmcX7%! z?_d6Zwx6yQ!+rB{#Pf46FTg1;$OF6(7rZbJ^CH~jE*|4Wxw2B|vlw^s;#}t?xQCbI zgqPxeUYc{R^AIn?4PKTx}coiPxRk`HVc!XEy z7O%nMye3yy4t*o;;>uJb0` z!*|y`HS~FaYy2Qb{17KR%o#t-1wX4kqdr_8~if2_!X|K5%OQ< z8o$O7zs?CaIpg`fe+6%9KizAF`#0m5H|IW%IpZyOkhkQLx8f1rnp?aLkMp)%jY6O8 zxQlx^;_bPYci@zFUoo$I^@_wb&a@Lt@{dvnhF z@DTTLgZJf8-jCb7KX*#AIpq&H=MTB$kGRPn zbDKZm>UtsnQ?7H1WB!a&{+x6Ef=m9AoBS2G`D?DOAM(H9I*)P8-*U>|an9d!$v<$D zf8;j*#MKQ#{?A4wR9(VEi9C6OQ zd;zC?ArJ6HT=2y_%$IPJFXb`5j4K<5euLb}mvf!3;2yq`6TXW3`D)Jj8Xn?nxxodG z@^#$i>$zi-(Dw$e@r~TgH*w52b07a^?-~Ej1^>Yf{*zn$7gsh7ea5-Qe{;nDaKiuN zjQ{0=|KkQva8LOAw-!&xmCZtag=;(!M?5hnJPBt!DHl8$H+XVx@f2LyJmhz9ji=;@ zr{aXC=8UJ|f~VyMPsc5uo-1+4uX2rN;D~4BglFQ6XXb(z@cuRU7W?VlBIFHm%D3_W z-^K;s&cl2MH~CH;{1lJy)7;``c$}Z*>eiv}bKJ$xbHp!jFOP7_ zFY*At#09_1!~6<2`Bfg{*SNAx==VBza+B-)2KVrrobX%R&$HNj&a-mKvvHFM|z+q?`{w-5Qta-Emsn3w02SKypiepbspm${+1K|j{Et0&iMx(;vc!eKk+F4%x!LS$IhYeFI?ka zxto9En1AO!{)03AlLz@PE_s|s_-}6UKRnL=g5SJoGH#c}?Zt*Hy*){Z8m212jN4z>Gyas2yCKnuWgV*8~ug#St zGv0s;?%@V+$SvN8E4zjKjk(5~aKxK(!kcl%n{&Z2H+Tzf@s?cKJ>+l2HQt&d-i8z2 zmNVXt3-09xFXa7e@kI91zemWQm~)zM@MJv7lXIJ=;Ep}R{T*E6DY=`c;+UuA zKAwg%o|XrBIxcy79^optcm^Kl8M(Sw=sOd4@ys0YEZobpa>}#u0C#f1v-2>|!A+i% z$9OKT>>c{e&7C|C*Lhy<;Tk7AANTY8obv)a#0zqR7vfP~nA^MvckC1Tc5#gt6bHQ~U=4H6a%kmg6$CU%aeamwv zufTO)k$ZS0PPm)e=(j(2@&R1u1G$F} z;)D<8eoi^(LwJY}Hf6N7c!VUhETioKx z86kgB?_Z4{u%BUmkemDvkMS^92Eu(0b04kq7xDF8O61;a9lDuktv*#?`Yz-`BZ|n;h{Q z+{wH0xr@Kyh{w2>zvYy_ z;{pDj3;uzJ`A2T@PdvsybLGO&ug#tO3)lHq?&04!;orHR|KObeC~ zA%7aK@w6QAbe!bF2Y7xi zcmW>f1-Z!!@fa`6m8(L(MYxl@xXz1m4==_EFV6kE1n0aY5Ajmm;H7z#>)hsLxZ~>3 zcUi9Sa@@_!bIdDnAFs$6uf&7g%_XnQBfJW?cvT+fh3vh0P3XHY*Le|+xrWS@|WT|FU>L6Ipt+I=ViI%<+#bqbDLM-Y7z2Ra%5qI;(9P=jJ z$D4A-oADrT&Lzh@!dq~Qx8!l&imNw;zFTt_Z^IF9%e}lEr`*c}yge7Z0}u0#+~l2j zjCbbB&7t2e+{wFgofGci-8kXhxu5soocH7*-isT&H;?i@+~z*+xFz)6z}{=z!x3-D z32($1Z_EX6!VTV(Tf7-phC=@4T;rG{-hva}k~7|l3*MR=ybZT_Tdv$1^0(s}_j1JB zbHY1t#yfJsJ8^?|<`(b5mD@u8u3Y1UBi@Y@-kmevgA3l18@v~{cyF%U9`g6$8uxL; zOM3qj-q(J{c|We+5$@ZcyZ8W(_(1OEgE-}bd4N+c_z)iEL%GR^@faV@l{-VfBe;`~ z1U;AI<%I4Cj0-5Aku_;Ny9ePvAD6$Q^fuz8Tl}B<|*uIp$Nik5A={Pvb#8 zol8E0M|gl+d?t_cSzNt4^gWxq_#BS-T<+!bIOX$sfO9VR0v_fIxycvt7+=hlGW5HI zJ9%Gwuk(H!^ZuOj0i5%JT=GHONT#-me;e2Mc8>TCPIzhWU&hbaPv;ZizGu14&v6ew&k4W4{XD`szsN)U z5;yo|9_3fK&98FDlcC>hT;tcdo0}Z-8{Efla>j4*AivEezr!Q^F1PqS9_LZ6HbUR` zxr;yGh(F|B{)kilm# z`8kgHc~1ES&Uu7OevzB}61Vwfu09{~U*S5x$}zvjDc8M!Ik)Yn>xFRNFC6i&+{?dl z%D?jf|G@?S$;12?H+h`L_;0R^gg*apC;yM@{4e+Lf1L0H(}v$i`*}jnxxzy{5jS{Z z9_2~6&69G+i=ppiT;s{Po2THIJGhUh3hag8&cj|X{vE_neS;RU(H3-LHF%+)tSpGCNfyEx)SxtAB?lo#g# zUV;l=l81RIZt~JR#&xc|8Tu{5oxCj9c{%RkjcdF*ck>z?^P1ep5of#>5Axbv@;W@i>vD_N<8fY}t8a(C8*mr*aKsyOFaKii zDgVkj|HdW%&Q1P<+x#b2-wA#G;yRCW%ztyr|8UO#5vM#c=R66QJSjJMGH&zaTzxO(Pr-HW;Fzc6l&9jHr{J9G8J(03Q^;$1o7gnM~6PI-48;61qD zJ$ab-;wJCSW4sSnJ_`N%xRdwgI`79lygw&=0Qd8Ooby3E#0PVOQy%3*xXp)h$H$@X zVO-p2^-bo|y}tg&RC8w|F+Ld=mO}a*b!_i09yh=j4p%;)3Vq2G7GS zo|h}1hWr}Wcs`DJeolA+&UisCcp+}^!rbCTxY7#wU0mZuIpW1Q;l(-QCAi=vxxq_u zi2hrE7H`Dh;CW4PdBd6Ig@*t;tIS=p^T=11V%vW)f zujVnnhAUr(e%Ep*7hLD-xQDOjgm2(}UcugTUXe>)iJRQbZC;tH--LdvaGh7>m{;SJ zSLdA9;F8zmCP&=nwYWMK^4I1%ufs8~%PFtNIj_$pZ@^9N;Wlr`)o(-oMqKBOIp$3` zZ_O!h!#QuuB`@#&Yx0fu)AxPIyNNTtnFsk6 zE_sMY_*QQ5Z9LAmbM=RicL#UzogDF9+{<@!$|Vo*JzVg;Jk0lTlkev-et;`KhJFun zCqKk>9_Ai?m=k`4`}tAM`7s{i$GO2z@F+jYZEkSKPoeKqT;r#?o1fvBpXEM&jx&Cq z2l)jqd4xy!MQ-s+JkBq3_2@hV*?Ymg+~DoG#XE4N9s2CZ zHQtFM-kB5Lg)`oj3r@JfyK#$m=gKc3e-Ezlo*eOBobcY9@jhH|A2)bkZt;Fx`8DM4 z&ow@PBR-H5K8Q0um&%aXL3KE#e;k{5A!)Z%IESppU0hlh5Ylmn{)2v3%H*z^C0)~<=oF#@E~8w!@Q#XjPe`apZ>o?-c`=$d^MMR4LA8(Zgauaf5Ls&ah=i4~u+d1VsIOjXL_;oJ0$qjykTl^+hCJOm)agE>Rh~MFa-{p+o>7OlYi$n|H0MCL;jy!=f61S zaZdSf&iNlM`G4Hxf4R;7adnE2Kf(Rs_mDbI$T3$q<%u}wmF=hGx9z8=Biui+^9fJF z8BfXuPsR^I)9o!8}<*W;8|wV#~dwV$pT!+q;JAMpm9a1Up^As4(6H+W-i z@g`iEDdcU+HQtOP-kcMTIpZz3;4QhqTXBoG=E}?=e;cmxwjA+xoNzB^yge7Z12=d_ zZt+fBnI+`!%r)MHBi@x0PB`P;xZvHn!FzCv_vFf~A%8Ef@!lNqKAiAs_LK2@_R~3A zxUbLoI`7Ld@5d?c&p98!B_GI5K8V|VFjqT6e#&(|gkwIGQ$CDyKAcNFf}4CKxA`cp z&K~mnxz0y(%*Sxb$8yfcammMXlTY9_pUBlYLVm_|K8a&KnNvQ6b3T4vI=A@@ zuFe_q2e{5>a?GpSPs*eA(=k{0{w(Kfd^SgX4kvsrXM7$Pd_Ffg=N4bUmAOOyg)=*PsqQ5YkVa~d=)2rHD`Pc7kn)@xZoCF$CY_Q{`Fkr z8#v+{IpLc)6gx|NHalXU(>U`n8JGstxam;sf z$|dJ~50`u|H~Btp^Zi_%Kjc5ab$*azeuz^Z=A0kqk{{tFKgw->jH?TT{KvV@PjJjn za>@X>Rf}+~#Mwx?sqEj_dq9$NU1PJico!7LV zm_M+eF@DYY%EICM*SW?`j`$5u_)X6EEiU+NZty$Y;&-{SNXUPWYdp#kzt0JOz!`tY z1%Jd1{+L_*30Jy8{-<2y7DxOUC;T~Q`~?^MB{%phZt>S#Sv2H-!!;h`h`;58zvGO* z=YoIW2LH${{)sD#h5Vnn#*zI*{Gt7fa@+Yf|H9S9!+pPUoqyw)f9I6{;GF;DlKXktct+=2 zJQG*y;rp4n#=a+{cyGLjJy7 z74Qzobv#ed?q*fEN=7JTwN>VpTl)Nmt#JUQ$C+_&bj0ZxXBlCn=j((+9Cg9uJa`v z^QD~fWt{UMmwY)lc|H4SbIX1P)(QDnIA8FU+~BLY#aDA>-SGW2T;ppw;(`;tjx)ZV z3%-FHd?UB`Ca$a(@^9uE-@*|Oal*H9#mGwjZU0mb4IpUHNzK1iu zmkYj+8+<>v_yMkL5b_`78b8Dl4|Bo~bHP8{|MXvKp9P`VZ@++M4t6cJH z+~n7}%}uUu9P;1bI={&=zr`uP%{jlrCBMr}evjKc%GFIm{`*|#4>;xzIpvQy=a0GM z4eY1MpW9F0rXlYW=QIA43vO|PKjRjE&Xvu=eP3{mzvPI&;)K8EjKAT6$GE}Ya*My? z%H|>ed#>>h9Py8w@K2oa&s=bu8~h8m_*bsPA^$h7@$Ve*ADr-?obg{=@HjX4Z*K8F zT-hSz|Bq|@FGu_zCp^J};omnho{$Ufv7ZKiVL!cFhP;aNDNn>XPs}Ax!cCr(+dLUp zw+i=9&UK!GWA5OTr{tWc;*zK4CQrj{o|dayhy3Zd&eLIc_wc1%-rT# zxVlZqpOx!88^_$qDbLP1&%q_n$xWV%+dMZ{w+;F8aGmGnm}{K!e4O)!_EYkg_S3Un zxPN}<6JCHbUXTl3h#R~xw|Eh*^oIMpxWfa?DNMg4?_$S9b~dTXCJY=9stPl(*%ax8ss~xyjpen|I*qt|5O%uJcYD z^Uj>|E}ZkOTynxq-i_P5J6DsCzX#WOPmXynPI+Vd$@y#h>Dn#ax3}{V@52fAamM>{ z!TWK8_vaQLz?I!Y-ho`>gE-=YIpLHuK7=E*h;2Iyv5g)|~_jATa zbHT@OgOBAFAIFtFL;mqx;}baI6FK3GGd_t6KA9VQ3b*)FuIv@^PvaV&&Jmx%32$OQ z8GmCxoqLD-2Ar?+nH=+3obuV6^Eq7dx!mOQxXtHtb)S%*bDb~Xm@nj%FXEgp=8`Yr zCSS^JzKpAVA%BqTd^yK_1*d!^=X@2Hd^I=u8gBEoT-`V17hLD-IOgj)wGK6ys7=9JZ3)~`-ksubH2v6bHsOW!gq4UcX7dYbAwB6@jYBQ zAmrc6HNKA{zMm6*fHQuO3x0?jJj^YAm@5Z{{71OPk8;G1al(&t#!qm;PjZ7B+~TLW za!|;Bnrr+FNBk@&{2XWeJQw@|H+Y0w{32Hl4*4%}jbG-7H?yCFzqOxne#QA}8t!|Q z>--wW{5q%HJO_0W+2 zG1vJMj`>qgxy3nu#wCBwP5y%0{3TZp3;ADhoxkRozu}a}IOlJ<;}%cwQ26(c%26SILauRzBc6y8o|rS9gbSXO8$21ecyg}vhx{qH z#vL5-l$`KXobl9L@HE`uX}QJIapmZcKRwqtwx5WI*Y~18dZu9J1JvQXe!F8UKW1fpso||)?hfAK9n_S~I&&So{LjL?*=LIwJrs6Td#@$@-%G}^pxW%h-B@6khagA5!h}YnR*W`>N zE_f|&@Y>wsb+~d;$X}OhydFoqJ}0~ZXWYXDZ^#Yah+DidS56N3n{bUc<%l=qgg57m zV=j0LZt#}e;;p!HO32^Rero)q{S5Qg&Nq1*Zu7QWJvH379oM;+W8R)q-hp%8kxSl* zo4hl(c^9sp7V>xHIwu_SZk+P&obw)B@}At}y|~SLbM^F)zYo{Bk7M4KQ{Inr-k(c8 zfSY_ExA`Eho)Pj7<~pYw^C6t_p`7z!T=L=EzujkK>Gw=Ymh*2A{|+&bV?`$Uli|d@@IT3MYIjXM7qLd^$Jy3~uoN zSI!RkXL60t;)u`YgwNrO&*g&8;|8D4EzY@ePRPH2YkVO`d=V#nF=u=U7knu<_%d$s z*7j35H{}0pKZ88ze94z{lds@5U&+<;!hKh9ov-GYui=!h<(vyH`8sa$_1xwgxO#rb zzme;F6UTfrr+f?NJj5m6%1yqF+k87$^N@cB*ZEG4`7TcRZqB*nlJDUr-^*>jkE<7i z{QJ4i4{*#6a>@^J&cj^t!`$R;?5E9b`x&?}HY4JlFUIj(CI~4#F1W%Co`_pKF;}h*_f5hzo|Ge=j1!)mGoFGA z?%)Pb$t|9WE7yelskz3}aKzJc!qaia({sU9Ztx7;;u*PeZOEUAYdkYYJPRj0D`z|# z7u?AWo}F7f2Um)aKPT6CE{=F^PIw;9cwR2J*M1uOoBi}&7xHS(r#v6$JU^Gb05^F- zZu3H1y*}K(FxPnzj=76dUX*iQj7wgeo4f?Kc}cF`5b~GeIxo#J*E!{7IOk=#Zt(_Oxh34+!!_QJBi@J;-k3AqgbUu38@w5}cyq1{ zh5VRnyah+RB`3TUXS_8RybU*aTW;}oT)8#m_i~N5=ZJUUgm>hOcjAI~<_7P=E#8$Y zw}t$KYrGprygMhn2WPy4{S^F%{dC_R?%&h-nD^q8_vW1U;gb8f$@_Af_v7jvA#Z=K z^8p<5ft>O|ob$n4a>`9Ugxh>5SMLn@hjE<`=a`S+l#k?`kK&U1xyeU!n~&k@T_OKi zuJdsm^YNVW37qqZTyn-uK8f3WGFR^o`KNH5Pvw|TkH!Dn%U&;EZj-DU71)Z;#E#m2_Q#>U3R#>U3{Vq;@tV`F1uV`F1uV`F1uV`F1u zV?Fs;Z>xWSimhp*rPU&)bsL;h8q;Hx>q*KmOwT;XfE!Pjwzujc{Z zz>)hx{*9dAn>fQabAflXp9=qJKk@s+eNCTF@hzO=Te-xyagA^17T>`=zLQ6M7snn5 z`7KWI-JIilxWxBzjql?Y-_JdMfJgiw#~uv%ZBFq+oa2YN#E)=|ALSN5#yx(VNBjiG z+9AKgDSnc3{1lh?X|C}z+~Q}s$ItPIpXb;^A-~Hhet~nmll_! zhF|6azrq!Ml^gsTceuv`ew`zag#0%+!EbVg-{Jzl%@ux!8~iSJxX%NAk0XzU{P#J* zA8>|0zyto2Baemr&p5%KbB4d*0)NRB{)!v?HFtQ(1OA31kB9tk zIl+{WB%UfV^4(pe&7`U$T|LrOFZHl|I97^g?s!fkN7u^bwd8{oZ>$? z$A5B($6VvTxW#{SkN@Ej|I4u_L;io9;t3uK|Gtsq3Aw}(uJJ_N;)%J(lkkWq<=9gp ze=<(-P5VoHIN-7kCb?@SNP>xwyk~^ML2!$a5ioUQTd= zGdv#`cz&+%0^HyQxx)+bfEVV-^C5o`PH>VlyeJoVF|P39+~6g+!%Omjm*Pk__Il((|hIi%y@4^)>aD#W{4)4YT-kl@8kiQ2fcu&soUR>b4 zxxz(m@IKt(eR;t9apd)ozdtAV0M77%T;PMa!X<9-!QA0Pc)*8p3y_zW)bnOx(uxW#94kI&%|pUbg#LjHN2;u`1pd@k_? zT;mJ5#TRjpFXj@3JOkHxMsD#;+~t{h zz_aj}XXV)Yq3>**59GkN8r1kA4{X);YfGivxW{YqkTV?lJoH-io`tH4k_j9`m*w`!e+XA1C=?d(ZGAT;NB!!jEx- zALkA~!2|AayZBfC-_Cq@Jn3am$|~P zaD!jv4!_0&?r~%o@?Yl!zrh)PlMDP7SNLsi@H^b$cX_~lj(ijH-{S$W;Xd!nBi@gr--o{YbAk`xG#|)0K8TB4;tC(kbv}e!d?7$K2Y3-orkhYER`~L*8jzUJmNVy_D{&4i&H!|=Xf42@w{B)1h;rT?(zIQ;=R3xv42DUJ@(Y%d%4T^@qq8= zF+aeu|H6F_a+2Ge;fFZS4|9nh;VM7M4StN<{5bdc2_ABXBNI&e|Nno%PjZ}};uJs4 zS$>8K{4AIGIj-^Z+~h8I_yz9si#+0&I67hI`!Xl^6;AW3oa5KH$UUy`>s;qIxW#XB zm*3(6zs+NQhhve@_gzkMpELX(=lOju@dsSx54ph~ahpHp9xq_;Ltc=h6NP>YagrD2 zEHA=EPI8qO_xag~?hCNIlfUXF*nJVz%9`73ae zSL7_O#6?bXl~?8_ufknkm500^$Wf5UzLmPh;@N2dsV zzvl%1z-j)GbNmw*dBhd|nd|%uxA<4?@^3ug-+9b`a4Z`7{>e!mbB6!oJpaul{)eml zFE{u>x>)U&RH{c9sxxgE8g*V~`Z_FLuga^DSN2U(>n{k3S=M3k#z*}&Ix8w$I#U0+7 z2fPhOrV07ma)STI8P0Qox8n+L&kf#zJG>(gcqfib8}fJN1nPmW9%^7rBd@68!5a)I~p9#(i7drC|n?wgj=JRRqFdMkK;T)r+5L* z@`7C8g}BTMbB!0_CMUVWi*lbA;}I{;(HTSEB{;!La+;Uo952m9PH}~o;W{tNEnbeh zygUzh1s?N?9GfZhU5S&N<_zy+?|I&r%e)`gd4F#60o>;UdCUiKeCE)n#A!a5^Lz-G z`B1L&Vch1!xz9)Nn2+T6EFr(lX+Dbcd^DH&7_RfN+~(uB&&TtaPvH2hA-}?DK9Tc$ z5|{a8uJb9}=2N-Pr}3Ci=lEv5Ua=NfOoP0n(MH{?EV#3SCAqjQA5 zn{a|R+=lCEla)~Q^FxUAIZtTu zhx3?^;MfA8?~$D3GH3WG&hyb+;$yhV$8v*@<2E19JwAblT;a%qq2Gxd=aV?aCv%oh z;R2t^Wj>8-d^$I|${jv~`+O#k_$-bt6#Aac2|kC@d@kqsJT7vLD||lJ`2ue7UH0DP z77zJujxHSf-NQ+~m$Q5y7x{j!@&nxD2f52_9`ZvRT_of`%t?NPv-~I*`7y5YKHthCzKx?xhQ7CR zg74ro-^n??i;LXi3g69jzK2_UFL(Jq9`OA<<_9>oROtI4C%MfTeu(q@FqilduJWVY z;K#Vlk8_Wo;32H_q?@-opZS>?yK*IR7Na`6*8E)12jJxWLbH znV;htKhI6>a))2wKEKE#eu<+iguX9xf?we@zsfm&jf>pl3ct>EeuG>5CU^NQ9`M^d z=65)@V(9xWC%MlVevk9~K9~3duJVW6;E%Y?A9IgC;UNz=vQp^xDaZLUPVwiQZ!YmaT;+ec z!T)iaCy4p}l_%sOM>w)(=r<9^d16lSB%I|*xxkZgnJ4EOPr*%&a)+nnK2OCXo|>bX z(03Y6@U)!f={U#JbCF|Q;TgEjGjfY(;x5n31D=J)JS)f63VmneB*!_!vvdCce&60p z|M&Y`<2ks+b8?U8;t|iyv9&{=c{s)Ma*h*R;`zA7^K*+A;2tl?BVLGO>xBG;ImL@` zj+0#CMY+a{af=t{9xuToUXo+$hWw>C#Y=OJQ(WR@xW>zJih(6EAW_Cu{FWOAB%IJ$A@waUc*yH> zbd!+30Vg@jS>BL~yb)J{{yfgQB7anqfBU^@kyKA&SyeF4=FRt<4+~gv6cpvWbzC7anIJ#Bn zyFVxR08aCPoa2MI$R)1u!CdDiAIJkfh$GvE{1PYlV9xL%T;M~w!iRB# z59baa!2>>$BmWEeWlr!>oZ+Lnz{hZfkL3m*#~nVN2YdoY@*%&%2|n0+nBl|hX~2i` zn2+GtcHzDwImuT6>D`<~*nPdd~6dor}$~k@-tlEXSvMJagCqnCU?2RFL0k<M|>;C_6~h+;}qY{IlhBSd?(lVE^cv)dwe&K_#TcG zL;k&-;`=zq_j8FK;2J;3EpBs)rjafu)28b84;?r@Kv19@vHWf+b`Vz8W*|86@H!T{06u9P44nrJm9x^%y!| zICfCz`zI%P%o+ZR^ZYlL_<4J;a+jO@0(bdE9`Z{ZErmWWbCO@-EWgS{evPZ#<0ik( zU4Day{3b^a4*73!lHcYmzr#g-m#f_8CcnpBexHZ@0Y?uB`5$tUKjJKZ%tii$t32Q) zf686{jEDR=M-L78UvQGYaaguc^of~Vy) zPscf)o{Jpg3eUiGo{?KT6L)!L9`GzY=2%BxxrI$ho|NNPs5Sp zLjK|2!vrVosl$tMpBLj1FV4~9!+lF|f|ukpFU2`tnv0y`3NOQTUY1+D9Cvwn9`Fi0 z<`p@1Lg>2^Cppa-UYYZ}3YU0QuJUT!;MKX!YjBU(vz-?ZT`@9g3d0~#98uAz6G$%RFi*lJ4<2ouA zcjg}N!b2`_q#F9|%5mO}Q@lH8c@Hk|o?Pa=xW;>PlZ)KpeYns2@`(52=oz8!{+!?g zIL!xgjt}A@m$fGZsc*JXR?3|FF;S{gMIbNGfybjlRU2gGu+~f6m#2awz+>oE;6mQ5m z-iS-QG1qt#Ztm$LDd8Yh2;;xy~1Gi!bCZU&I5xn8$nx z$1VtcFXbfHIm4H6o-gMTU%^$rk{f |)B@ijc;21hOo{jTLWU&krFp0j)d7x+dl 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∈hp3&(3|GgGW3kM?VPj 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­kWQGB3w9UY?u0 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

      7^n-hEvXZTz$@MP}4 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 z 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%0DL&o%m*YF^&yerrNIraj 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

      kkIo_H}ybafQ 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⪻F1$d7V@r{oMz z#RZ<4D?AN1cv|l8bUfhcIr4hQk8y%$;0({m1)hm3JTo_V7Vhw@JmA?l@bAd;^D@WfBeRtyo@6Ku7gLAwm7kMwP@ZMbK zBDZ)S?()7o;Qe^a`*ZA_(DwjN@`0S;gE-G6F7d%!P9&Yix+~Wj~cs`ExL!bFM#S3tb7vvHz#5G=+Tf7MOILRYk zlwIK``SjxY88mAGs_(GSD-M{$CW<}@F}IX;$)d>mK!c&_sa+~Nv%`9vP@ zNj&D0IrdTLdkQD{RL<~eoafWI#8s~H8QkDAxy@&BkI&{IpTm)lL%(x5&gXH8Ynd z9`JQM=Ic2&2z_thB>&IeGrSrXcy+Gu8r3I9`N=Y`6A@+zzN=wGrSWQxbFR{@QwBp|1#Wn6Q}rQ&T^9rd<&QPR<7}F z+~nK2!*_6>@8l8R#nG=qzZNI>Zcg((oa1}B$oFxD@8>!{z%71|yWHjhKg45xm}6gu zzK?K{ALR@`#(936OZ)^^xx)>9lH2?g_xNcZ@-rM6hJMd-oS)+qKhIh2a)DpqGQY?* zeuGI#hD?(?fW;@3F(P3YU>1i#K{-r3%BybG7Oz%|~LTf7_hcy}K09vu5N^x2bB zycg$qZ!U3>YrGG)cwg@Eemvs+Ird%1KY&wwAm{iXE^&!#d@#585bp7zJmSMR_I=1d zoKt)R=lDo2ahYp;6u0JmfTg!#Vzzi~Jo|_q(==%#N`B%>H zZ=C1fxx{~PmH*@hkGai%agYDzA^*dXUqZisInMuaiYNGFg8%!K<%+!*_(ZPoN!;L* zxx=UMfKTPfuc6OroZ!Brxxr^~htK8#pTm*gLjJj&;PW`cH7@Y^T;U72 z!54CeFX91T%#q(i{w18?OF6@JF7Rbs;mf(fS8#`~jw z%e{XMp3r{Me}?-boa2eO$P;sgC*e9z$}OIZyF57$cnThKlw;%2XG%`;RGi_dInUE@ ziKpc%Psa_Op4%Mb9?!r-o{=Meg?=+}oM+|~&%#-rl?yx@mpRTgo}HUK2X}Z*?(%GH`JZxvKjRF4&ISI0EBqxl_)70zhqtqz{FEVYdoJ+~T;(0P!8>uA zcjg}N!b2`_WU7$2E5~^^PVw%X8qf>{z`*VU1 z;4~k|IX;MsT;d8J%ymA5TYM;Y`7j>v;XLLeI5th_dn6~h%o#q4^L#Xy_!zG8vE1O} zxXs6Nk5AwsS2!|l=yxK=`6N#9$(-d=xWK1!nZL648h_0#9&(Sr;Sqn!vFSp;?>NQZ zbB=%D6933G{)t;W;vWCZBmRYB(}(lUqFI9{ ze470fXAF6#bA_v1=QFs)XL6U%;sKw{V?KvtGljf!Imzd7hHISX^SQ(qaFs9Q24BQ& zzLZ|5=J!LeCG-#a)hcMKgnHwiU<5OkNFvn%^mta%SnEYGyFW~xyvPffvfx?H~1xP^UK`hS9r*; za%7&+?=_Bdk5l|QXZZ~-@S9xbx46b{bCciU4!_HN?(>M>-*qa*jXZ zB7e*k{)Fqin7y}naqjUFJmMuemI(cp;uJ55S@85_A_ETLjrrf9DGS!FB$V zTRi42|HT9To5%bQ#})~F|K%kA#~Ger5Pm+I=LxyQ5w7w?+~A41&69ACC*>he#*t*` zH#x_73Qlp9vpgjicq%UQ)Li3fxXByadxtmS0dLBYMMJ;MIKes2@aA0LEx5v4a)YW z_uvli$phYtBTIz*y*a@}&hS25;C;Em`*DN!=MEph18#W#B1?w+Y3--Z({YQZ=Pt*1 zz%%feXXMyY;r^L8$uo0?XW=~0$|atSs~qPB&(3Y0gL^zD4|y(*EFJpI&2gTGQ#>zc zIl%>a7skLMnrz$313Z26FXBB%Hy z&hg1y;#0WBr*ex=;~t;RBd&66g^+&+r}#|H@mXBrv$@9SaEs679-qe}zSjE}TQTIX zVn0n@l{@@D?(=Fq;?+62Qn+soPH=|Pye8*(EiUrfT;X-N&g*iE*W)g)&jZf#m^a{9 zI`rL;le`gUcw^40@Q}CU$jYJLRvhQ8ImO#>mbc{s=ef+= zagDd1ieKRzzse+8zJ$koDaSSl_tiPcmvM$K=R9A*CBBlY zd=)qNYHss2+~Woh`C5)_82VkualW2Yd;@3sMlSG8T;`j(#!YVWE!^Q-xzD%ph;QfU zMxpN=oZve-&3AE*TU_M3xx)8wo$uuq-^X3Pp9lN^kNH84Z5;ZxImr)kh9BlUKf)z` zl&kz0H~4XG^Ap_T4iEV)dyi}q`n}Bweup#sE*H4Z6@HH!{62U110L{)9N9GFf5Zv? zm^1td7kI!G{*)X18F%<|9`F|&*(~IL$qD|7GyF9dc*qt0h8z4XclbLV@b?_ah5R2l z!9Q|_f8qjRjsM{m|I0o8 zk4HSgUy=X&^KY?jL;i%E;t1z>A};a7T;oZ&#glT6C*u)M&ar&RpMp~yLs-9M8Zdo{?)j6SsI~?(r-<;#oPieaN4UQ+%WMFULRH z&yauO$PVHA5y$ywPVq0Cc5f-@ZDJWt6bo{FnHH8*$~ zZu7L<N#Y z6FfU-cn&V`oLu3#xWRLChv(q|&&!cQ$WL&B=i>~|&jnt9E4&~#cp>ia!aU$bII?TV zPjZ46-7Y-{k!(@SOHD=D9ewN4RfpPVzjQ;dwdF2`=$`T;=(>!3%Jk7vvr<#6w<~ zBYTE^i*THioZ>|}%ZqV=7w0lB!8Klzo4gcvcxmo)ibuQ*NB0VSm*oU6$7x=kbG!l< zc}1@9N?hkOw|Hgl@+v&wRe8++jcdF*w|EWiafU~{Cdc*(eb(X>ugy7LhfBOJ*LXc{ z@%r53ERT2tj_n)rH{=v=#5vxWOS}o!cvEiiX58Z(k9c#A?HBU5;1qAkIo^s(yfxQ& z8*cHo+~Yitcsq{mAM&^76z{+}zS;X%;;j8d4+!6HzzN=v)4UPqcw;W|CS2i7xz3w$ zi*wxN&3V9E@R+yc*ny$%R-ELmIm6pEvMUIw2-+eg2`*NE1;~ekLMLvKld?45P zAZ~GqyL>PY_z)iRp&UCn^gWD|yraEmcqcCK&RpSLxWNVP@UA@I-8gbc$lsk4ya#7^ zPcHCYT;aXB!A0)yK0M%kIdW*o-;Wc#KWF#=F7Sa|;e)urCGPOSJm5n(a#+YeloNay zXZUa~@DW_$Be}t4?(k7O;G;Qmc*sA76MQUZ_&6?b)B9K9!|f-2M7Zw=PVtePU&1NAl(Sst z0$;{uzMN}(1vmLh?(kLI=c{?d*KqXc(6_+}zLwK`yuIi61TJxfYkVTN_$2P}$vomy zICf0vb1J9!G|utqT;eL%_zZ6GncU;Ec*JLO?AVZh4yX8B&hdF%;u_cZd~Wdt+~W&* z#20bwIQ!ugU&1-QluKOa8ehgOzMOk}1&{bjjvXKJui_M6%{jh?OMHv>ug2HePx6Ft z-}Ri~8#vE5a*1!^D&NcvZgQJ%;U3@0L%xk8mC)yQj`JOy;yXFZcX5GRT;{vE#`kcO z@8u5P$9=w^NBjUsPYit@--qE_;K#?6FlG!kNHWCofP^$ z#YujeGyDwa`B^UUb6n-;xxrm-^9$VL7kS7papdIC?`4kjE1cq2Im-=uFYvWo;p@1; z*K>z&-~r#rkyApSn>fKYbB3E-;9I!Dw{nAT;||}>1HOYJr-uAHIl*^vhFe_VySc*m zaD(sV4&TQEzMmtfh5QFN!4GnV+g#v>xWW%}gCF4zKgt7sj3cLq{Kq-LPjH4iT;M0U z!nb<=8vL65q^sfn9_RRVF7g{(;WxR?Z*hy?<}Sa(1Adps+~?RCq0f7qIm7>O zo}aS!5uj>$e)N4JTYf@5-#whT;a*M!MA(=I=ra;wc=U9 zRhV~u?&2P<^9J0@8*f@{1b_wZKS(X!zoue=Xts0`M7dj=+DnJUVt0C zAjiBAC%iDHe24ch=WXmy-}RxlEw{Lr2YEYAd3zq=9k}2fd7O9R$_=5nGk5VWT<0eD z@~#~7Zal!dbDQ_zVcwH--iyb0Z;oyZ^Yw8j@543TmwR|WZu0)z&j)bA2l5af#2Lpt z$_I1Fhj7PDVctWz%7<|`AI=Rvg8TSLZgD>k@==`f(LBP(aKXp&I3LHAo5Q@va~Ge$ zb#8GlpU5$v!~@)A-`l(hXS^sEyckDAVV=dg%1dyam*gfd#VxLJo0sN{m*Ik!<>;2s zUyiH1JlA;zZt{xU;%;v9N}Tb^T<|I!-5UCw+2-ix`5FX1|0%Dp_uF<-_5 zd^xxI3LfSwIp?c*jIZYCt}x#<+{taO@wME;*Kw1t=YGC{6TXp$_$JQyW*+4sF8LPj zNW;9ha+Po6ZoZuxd4H#p|aIpHlh zl8SZ_g?3z&Y>8CGW(QdqaO`uJJD1;3mhsD<`}g zr@TAoya$)OCs*zZ{k^!xdvk;PIOcsg;e9#f{W#~lyniL9_GjS!(7&78d=C%vy`1xX zJjVBP^gy`p0q*1nxyHlX!w+$jALf33gcE+0hxjqh_;DWPC%EK{J01-4KFL*nio5w~ zZtyeQ$Io($pW{J(o>Ly-5q^OSev!xdC9VvId0*x(eueA&D);hh9COYC{5rS!4Ibt< zIp?={jNj(yp)lV&+{y29jYqkM-{U5~&;9%XC;TA~@&5Kb;{&+h137v)%y$r1Ip#Va z%uPOoTYM>$wzaGkKr~S%NZZX1s~7RqoIESSGmP? zK9QSz61VtdZu2Re@u^(!X&gNk`loZ12e{5>aFfsE7N5m!KAST>hYL=%>z8fZT^Ob`CHEUJ09cjIm*I( zKX51i$Tj|nd${B#|IGdT3n%<55AkoD@$Wp!e{jiva>tWl-f^z-U);@qbA$ikKK_?m z{2veU1fPeWccnZbk8s2VPsHOqF;|`n^G?EDJSo@tf85KHam@fr`CQ`*xWN~4%olOO7jw#&aL$)<$%9;ZCiE}k8eh&0zJg=Ek`um)Q@)yW zzJ^O~bLH94zm{u!9XI%Tj`;>o_(o3oCeHb0E_sM6&xQUiT;p50!MAbDw{yaGaLRXb z&UbOicYFUT&xih$_GgHv;*6)}QJ#iNo|ZdC!hO?ml`GuM({qDo;69#_TRamF^30s_ zEIh)qa>1QE&a-jlg)r~z+{JTno#*6Uo{M9in+JFvZgZ7~d0x(WJ|5%wIeIb7w*YtY zf?VT;xQ7?!CURZ`+{epui zR(H{lW9lndUB z$GO3kH^aP}a~E&Hb>5PDc`J^2YaZZjxXs)0F!yrK+wmB0&(T|9z8$!ecjOxH#67$- zH+dKC=O!n-D-ZE*obm2F%5T{BlHcUY+hN|fxW;dDgWutp-{piyIpy~_=l8kf54iG9 z=zqvH{)ij=F~|G~CtPsKpK{Khamk-^<=xQ#f@}OGH~1@#`D;#ij8p!GbN-e~{*Ei7 zq5nPC_y=zAj~w$)oN&o0|I9i6!X^L8mG?sbUhiLxfAjB0_;()TKe*%l@cp0M#pB$= ze{moG%>(=o5AnY|!vFCYPw-FpeW8vILVrT;;)r{ABJSgfd4MP3A)b^+_MC6x_#C@&Hf8Lp(K)@H9Ne({jg0p+6mWafN$$dhX*Hcz|c*A)bjxcxE2s zS-9il(7(_AbnzbEpAnwb`GPw+`Xqcm8&`RDuJat+bU{`-sfv_HeVlJhyQ%q6eFl`q15t8$H3 z;|8zJF|WZ1*E!`iIp?*w@nKx>;T(M*`bTh;kK{V{bCZwa z79Y)RK87NW$6S(9SSAGoloyavli5q+}$9xJWd@84W z8s~gEmps6gpF;l(uJM`N;Ila9vpL~&IOTIW=kvJagezs}pU*YEfE#=v$9xedd@-kd z3Fmw%mpsUopF{sLuJPsE;43)hD>>n-IOVH3=VAL(a-aPf_$BnOalXxM&iGm`_&Sb$ z4c}kSRlb4id?PpcCT{V~+~y(9_!chsR*rrP{oA<8w{xBE;3nV6ExwD}oN~r@bHVp; z^n2*v%T>OQ>wG^q`2lY6gWTp}&iElN_+gIz2>nO6%8zoLALAxJ&Mkg|+njO6580oB z_pv|ye}?{(&L{j7r~EYM{0x`;ELX=to@TiMY-abCW0G7Ej7;e#HJ{yr2E) zohbDF=X}hQal(^x${n2Z6kPI@T$woBKNZ(_YHsi}9P_lC@N}GVg>#;sOP+x%lZ5_^ zT;rLz!83Ervv9(*a>|{Y^K4x5>|B{N^ylCj&&ds*i({Uf6P|}tu5!-va>?^?<$s|+ zKi7BxZt#K}^Fo~PqxL7|{q0ZBWa0jWoo{j%w|Eh5^P-&bVqEaz98DhXUxKT=B-eQ< zZgP!Vyfn9Y8P0fFE_gYPIzoSWuJQ_8=M}lh-Q41pxXmkb#;b6_t8z3&=�AUY+Z_ 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 ^)3j&mI1Na}S69haB<$IOdNy;g31xPdMZG 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 z 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

      P`~g>f5BGh@o%|8k`D5=TCWvKjQ{} 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 z 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 z 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

      -J}Qj*Qn! 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�MGNcwdeV1Jff5_c`jNi#e($4xP5LglzV=?T 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

      no80D?bpFJff(N$g{W#)H*1@ZD&Hf|aWM^Nr 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

      Dy-9=B2P2mX?YG-zjsD!SUMx4illfeTFS?um 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%0AGJUSH?H4_i8TXgHzC;gs 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 f}5hdc{M4-frWImxqemg8LH*}2Md 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