From a0ad653d7d6fc747487c724c77df278665a3f615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Sun, 31 Jul 2022 19:28:41 +0200 Subject: [PATCH] GUI ResizeLayout (#495) * gui resizelayout #51 * checkbox icons * updates * weather reset * embedded logo asset --- .github/workflows/build-nightly.yml | 3 - .github/workflows/build-pr.yml | 3 - .github/workflows/build.yml | 3 - Editor/CMakeLists.txt | 2 + Editor/CameraWindow.cpp | 2 +- Editor/ComponentsWindow.cpp | 501 ++ Editor/ComponentsWindow.h | 50 + Editor/DecalWindow.cpp | 2 +- Editor/Editor.cpp | 1861 +----- Editor/Editor.h | 119 +- Editor/Editor_SOURCE.vcxitems | 8 +- Editor/Editor_SOURCE.vcxitems.filters | 10 +- Editor/EmitterWindow.cpp | 2 +- Editor/EnvProbeWindow.cpp | 2 +- Editor/ForceFieldWindow.cpp | 2 +- Editor/HairParticleWindow.cpp | 2 +- Editor/IKWindow.cpp | 2 +- Editor/IconDefinitions.h | 4 + Editor/LayerWindow.cpp | 2 +- Editor/LightWindow.cpp | 2 +- Editor/MaterialPickerWindow.cpp | 8 +- Editor/MaterialPickerWindow.h | 2 +- Editor/MaterialWindow.cpp | 4 +- Editor/NameWindow.cpp | 4 +- Editor/OptionsWindow.cpp | 1057 ++++ Editor/OptionsWindow.h | 69 + Editor/PaintToolWindow.cpp | 6 +- Editor/SoundWindow.cpp | 2 +- Editor/SpringWindow.cpp | 2 +- Editor/TerrainGenerator.cpp | 7 +- Editor/TransformWindow.cpp | 2 +- Editor/Translator.cpp | 7 +- Editor/Translator.h | 20 +- Editor/WeatherWindow.cpp | 6 +- Editor/main_Windows.cpp | 2 +- WickedEngine/CMakeLists.txt | 1 + WickedEngine/logo.h | 8194 +++++++++++++++++++++++++ WickedEngine/wiGUI.cpp | 335 +- WickedEngine/wiGUI.h | 5 + WickedEngine/wiScene.cpp | 2 +- WickedEngine/wiTextureHelper.cpp | 21 +- WickedEngine/wiTextureHelper.h | 1 + WickedEngine/wiVersion.cpp | 2 +- appveyor.yml | 2 +- 44 files changed, 10326 insertions(+), 2017 deletions(-) create mode 100644 Editor/ComponentsWindow.cpp create mode 100644 Editor/ComponentsWindow.h create mode 100644 Editor/OptionsWindow.cpp create mode 100644 Editor/OptionsWindow.h create mode 100644 WickedEngine/logo.h diff --git a/.github/workflows/build-nightly.yml b/.github/workflows/build-nightly.yml index 368177b4b5..9a2effd0cd 100644 --- a/.github/workflows/build-nightly.yml +++ b/.github/workflows/build-nightly.yml @@ -40,7 +40,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini @@ -109,7 +108,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini @@ -180,7 +178,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 50b50c5e19..3ca16025f3 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -39,7 +39,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini @@ -109,7 +108,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini @@ -180,7 +178,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 785bab1a45..bd1cdaa2b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,7 +40,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini @@ -110,7 +109,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini @@ -181,7 +179,6 @@ jobs: third_party_software.txt features.txt credits.txt - Editor/images/ Editor/terrain/ Editor/sound/ Editor/*.ini diff --git a/Editor/CMakeLists.txt b/Editor/CMakeLists.txt index 70de52e93d..c5de17ff5f 100644 --- a/Editor/CMakeLists.txt +++ b/Editor/CMakeLists.txt @@ -29,6 +29,8 @@ set (SOURCE_FILES TransformWindow.cpp Translator.cpp WeatherWindow.cpp + OptionsWindow.cpp + ComponentsWindow.cpp TerrainGenerator.cpp xatlas.cpp ) diff --git a/Editor/CameraWindow.cpp b/Editor/CameraWindow.cpp index 92dd6c4f4d..f9cc09d3bd 100644 --- a/Editor/CameraWindow.cpp +++ b/Editor/CameraWindow.cpp @@ -198,7 +198,7 @@ void CameraWindow::Create(EditorComponent* _editor) editor->RecordSelection(archive); editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); SetEntity(entity); }); AddWidget(&proxyButton); diff --git a/Editor/ComponentsWindow.cpp b/Editor/ComponentsWindow.cpp new file mode 100644 index 0000000000..9575057972 --- /dev/null +++ b/Editor/ComponentsWindow.cpp @@ -0,0 +1,501 @@ +#include "stdafx.h" +#include "ComponentsWindow.h" +#include "Editor.h" + +using namespace wi::graphics; +using namespace wi::ecs; +using namespace wi::scene; + +void ComponentsWindow::Create(EditorComponent* _editor) +{ + editor = _editor; + + wi::gui::Window::Create("Components ", wi::gui::Window::WindowControls::RESIZE_TOPLEFT); + font.params.h_align = wi::font::WIFALIGN_RIGHT; + SetShadowRadius(2); + + + materialWnd.Create(editor); + weatherWnd.Create(editor); + objectWnd.Create(editor); + meshWnd.Create(editor); + envProbeWnd.Create(editor); + soundWnd.Create(editor); + decalWnd.Create(editor); + lightWnd.Create(editor); + animWnd.Create(editor); + emitterWnd.Create(editor); + hairWnd.Create(editor); + forceFieldWnd.Create(editor); + springWnd.Create(editor); + ikWnd.Create(editor); + transformWnd.Create(editor); + layerWnd.Create(editor); + nameWnd.Create(editor); + + + newComponentCombo.Create("Add: "); + newComponentCombo.selected_font.anim.typewriter.looped = true; + newComponentCombo.selected_font.anim.typewriter.time = 2; + newComponentCombo.selected_font.anim.typewriter.character_start = 1; + newComponentCombo.SetTooltip("Add a component to the first selected entity."); + newComponentCombo.AddItem("...", ~0ull); + newComponentCombo.AddItem("Name", 0); + newComponentCombo.AddItem("Layer " ICON_LAYER, 1); + newComponentCombo.AddItem("Transform " ICON_TRANSFORM, 2); + newComponentCombo.AddItem("Light " ICON_POINTLIGHT, 3); + newComponentCombo.AddItem("Matetial " ICON_MATERIAL, 4); + newComponentCombo.AddItem("Spring", 5); + newComponentCombo.AddItem("Inverse Kinematics", 6); + newComponentCombo.AddItem("Sound " ICON_SOUND, 7); + newComponentCombo.AddItem("Environment Probe " ICON_ENVIRONMENTPROBE, 8); + newComponentCombo.AddItem("Emitted Particle System " ICON_EMITTER, 9); + newComponentCombo.AddItem("Hair Particle System " ICON_HAIR, 10); + newComponentCombo.AddItem("Decal " ICON_DECAL, 11); + newComponentCombo.AddItem("Weather " ICON_WEATHER, 12); + newComponentCombo.AddItem("Force Field " ICON_FORCE, 13); + newComponentCombo.OnSelect([=](wi::gui::EventArgs args) { + newComponentCombo.SetSelectedWithoutCallback(0); + if (editor->translator.selected.empty()) + return; + Scene& scene = editor->GetCurrentScene(); + Entity entity = editor->translator.selected.front().entity; + if (entity == INVALID_ENTITY) + { + assert(0); + return; + } + + // Can early exit before creating history entry! + switch (args.userdata) + { + case 0: + if (scene.names.Contains(entity)) + return; + break; + case 1: + if (scene.layers.Contains(entity)) + return; + break; + case 2: + if (scene.transforms.Contains(entity)) + return; + break; + case 3: + if (scene.lights.Contains(entity)) + return; + break; + case 4: + if (scene.materials.Contains(entity)) + return; + break; + case 5: + if (scene.springs.Contains(entity)) + return; + break; + case 6: + if (scene.inverse_kinematics.Contains(entity)) + return; + break; + case 7: + if (scene.inverse_kinematics.Contains(entity)) + return; + break; + case 8: + if (scene.probes.Contains(entity)) + return; + break; + case 9: + if (scene.emitters.Contains(entity)) + return; + break; + case 10: + if (scene.hairs.Contains(entity)) + return; + break; + case 11: + if (scene.decals.Contains(entity)) + return; + break; + case 12: + if (scene.weathers.Contains(entity)) + return; + break; + case 13: + if (scene.forces.Contains(entity)) + return; + break; + default: + return; + } + + wi::Archive& archive = editor->AdvanceHistory(); + archive << EditorComponent::HISTORYOP_COMPONENT_DATA; + editor->RecordEntity(archive, entity); + + switch (args.userdata) + { + case 0: + scene.names.Create(entity); + break; + case 1: + scene.layers.Create(entity); + break; + case 2: + scene.transforms.Create(entity); + break; + case 3: + scene.lights.Create(entity); + scene.aabb_lights.Create(entity); + break; + case 4: + scene.materials.Create(entity); + break; + case 5: + scene.springs.Create(entity); + break; + case 6: + scene.inverse_kinematics.Create(entity); + break; + case 7: + scene.sounds.Create(entity); + break; + case 8: + scene.probes.Create(entity); + scene.aabb_probes.Create(entity); + break; + case 9: + if (!scene.materials.Contains(entity)) + scene.materials.Create(entity); + scene.emitters.Create(entity); + break; + case 10: + if (!scene.materials.Contains(entity)) + scene.materials.Create(entity); + scene.hairs.Create(entity); + break; + case 11: + if (!scene.materials.Contains(entity)) + scene.materials.Create(entity); + scene.decals.Create(entity); + scene.aabb_decals.Create(entity); + break; + case 12: + scene.weathers.Create(entity); + break; + case 13: + scene.forces.Create(entity); + break; + default: + break; + } + + editor->RecordEntity(archive, entity); + + editor->optionsWnd.RefreshEntityTree(); + + }); + AddWidget(&newComponentCombo); + + + AddWidget(&materialWnd); + AddWidget(&weatherWnd); + AddWidget(&objectWnd); + AddWidget(&meshWnd); + AddWidget(&envProbeWnd); + AddWidget(&soundWnd); + AddWidget(&decalWnd); + AddWidget(&lightWnd); + AddWidget(&animWnd); + AddWidget(&emitterWnd); + AddWidget(&hairWnd); + AddWidget(&forceFieldWnd); + AddWidget(&springWnd); + AddWidget(&ikWnd); + AddWidget(&transformWnd); + AddWidget(&layerWnd); + AddWidget(&nameWnd); + + materialWnd.SetVisible(false); + weatherWnd.SetVisible(false); + objectWnd.SetVisible(false); + meshWnd.SetVisible(false); + envProbeWnd.SetVisible(false); + soundWnd.SetVisible(false); + decalWnd.SetVisible(false); + lightWnd.SetVisible(false); + animWnd.SetVisible(false); + emitterWnd.SetVisible(false); + hairWnd.SetVisible(false); + forceFieldWnd.SetVisible(false); + springWnd.SetVisible(false); + ikWnd.SetVisible(false); + transformWnd.SetVisible(false); + layerWnd.SetVisible(false); + nameWnd.SetVisible(false); + + + SetSize(editor->optionsWnd.GetSize()); +} +void ComponentsWindow::Update(float dt) +{ + animWnd.Update(); + weatherWnd.Update(); +} + +void ComponentsWindow::ResizeLayout() +{ + wi::gui::Window::ResizeLayout(); + const wi::scene::Scene& scene = editor->GetCurrentScene(); + const float padding = 4; + XMFLOAT2 pos = XMFLOAT2(padding, padding); + const float width = GetWidgetAreaSize().x - padding * 2; + + if (!editor->translator.selected.empty()) + { + newComponentCombo.SetVisible(true); + newComponentCombo.SetPos(XMFLOAT2(pos.x + 35, pos.y)); + newComponentCombo.SetSize(XMFLOAT2(width - 35 - 21, 20)); + pos.y += newComponentCombo.GetSize().y; + pos.y += padding; + } + else + { + newComponentCombo.SetVisible(false); + } + + if (scene.names.Contains(nameWnd.entity)) + { + nameWnd.SetVisible(true); + nameWnd.SetPos(pos); + nameWnd.SetSize(XMFLOAT2(width, nameWnd.GetScale().y)); + nameWnd.Update(); + pos.y += nameWnd.GetSize().y; + pos.y += padding; + } + else + { + nameWnd.SetVisible(false); + } + + if (scene.layers.Contains(layerWnd.entity)) + { + layerWnd.SetVisible(true); + layerWnd.SetPos(pos); + layerWnd.SetSize(XMFLOAT2(width, layerWnd.GetScale().y)); + pos.y += layerWnd.GetSize().y; + pos.y += padding; + } + else + { + layerWnd.SetVisible(false); + } + + if (scene.transforms.Contains(transformWnd.entity)) + { + transformWnd.SetVisible(true); + transformWnd.SetPos(pos); + transformWnd.SetSize(XMFLOAT2(width, transformWnd.GetScale().y)); + pos.y += transformWnd.GetSize().y; + pos.y += padding; + } + else + { + transformWnd.SetVisible(false); + } + + if (scene.inverse_kinematics.Contains(ikWnd.entity)) + { + ikWnd.SetVisible(true); + ikWnd.SetPos(pos); + ikWnd.SetSize(XMFLOAT2(width, ikWnd.GetScale().y)); + pos.y += ikWnd.GetSize().y; + pos.y += padding; + } + else + { + ikWnd.SetVisible(false); + } + + if (scene.springs.Contains(springWnd.entity)) + { + springWnd.SetVisible(true); + springWnd.SetPos(pos); + springWnd.SetSize(XMFLOAT2(width, springWnd.GetScale().y)); + pos.y += springWnd.GetSize().y; + pos.y += padding; + } + else + { + springWnd.SetVisible(false); + } + + if (scene.forces.Contains(forceFieldWnd.entity)) + { + forceFieldWnd.SetVisible(true); + forceFieldWnd.SetPos(pos); + forceFieldWnd.SetSize(XMFLOAT2(width, forceFieldWnd.GetScale().y)); + pos.y += forceFieldWnd.GetSize().y; + pos.y += padding; + } + else + { + forceFieldWnd.SetVisible(false); + } + + if (scene.hairs.Contains(hairWnd.entity)) + { + hairWnd.SetVisible(true); + hairWnd.SetPos(pos); + hairWnd.SetSize(XMFLOAT2(width, hairWnd.GetScale().y)); + pos.y += hairWnd.GetSize().y; + pos.y += padding; + } + else + { + hairWnd.SetVisible(false); + } + + if (scene.emitters.Contains(emitterWnd.entity)) + { + emitterWnd.SetVisible(true); + emitterWnd.SetPos(pos); + emitterWnd.SetSize(XMFLOAT2(width, emitterWnd.GetScale().y)); + pos.y += emitterWnd.GetSize().y; + pos.y += padding; + } + else + { + emitterWnd.SetVisible(false); + } + + if (scene.animations.Contains(animWnd.entity)) + { + animWnd.SetVisible(true); + animWnd.SetPos(pos); + animWnd.SetSize(XMFLOAT2(width, animWnd.GetScale().y)); + pos.y += animWnd.GetSize().y; + pos.y += padding; + } + else + { + animWnd.SetVisible(false); + } + + if (scene.lights.Contains(lightWnd.entity)) + { + lightWnd.SetVisible(true); + lightWnd.SetPos(pos); + lightWnd.SetSize(XMFLOAT2(width, lightWnd.GetScale().y)); + pos.y += lightWnd.GetSize().y; + pos.y += padding; + } + else + { + lightWnd.SetVisible(false); + } + + if (scene.sounds.Contains(soundWnd.entity)) + { + soundWnd.SetVisible(true); + soundWnd.SetPos(pos); + soundWnd.SetSize(XMFLOAT2(width, soundWnd.GetScale().y)); + pos.y += soundWnd.GetSize().y; + pos.y += padding; + } + else + { + soundWnd.SetVisible(false); + } + + if (scene.decals.Contains(decalWnd.entity)) + { + decalWnd.SetVisible(true); + decalWnd.SetPos(pos); + decalWnd.SetSize(XMFLOAT2(width, decalWnd.GetScale().y)); + pos.y += decalWnd.GetSize().y; + pos.y += padding; + } + else + { + decalWnd.SetVisible(false); + } + + if (scene.probes.Contains(envProbeWnd.entity)) + { + envProbeWnd.SetVisible(true); + envProbeWnd.SetPos(pos); + envProbeWnd.SetSize(XMFLOAT2(width, envProbeWnd.GetScale().y)); + pos.y += envProbeWnd.GetSize().y; + pos.y += padding; + } + else + { + envProbeWnd.SetVisible(false); + } + + //if (scene.cameras.Contains(cameraWnd.entity)) + //{ + // cameraWnd.SetVisible(true); + // cameraWnd.SetPos(pos); + // cameraWnd.SetSize(XMFLOAT2(width, cameraWnd.GetScale().y)); + // pos.y += cameraWnd.GetSize().y; + // pos.y += padding; + //} + //else + //{ + // cameraWnd.SetVisible(false); + //} + + if (scene.materials.Contains(materialWnd.entity)) + { + materialWnd.SetVisible(true); + materialWnd.SetPos(pos); + materialWnd.SetSize(XMFLOAT2(width, materialWnd.GetScale().y)); + pos.y += materialWnd.GetSize().y; + pos.y += padding; + } + else + { + materialWnd.SetVisible(false); + } + + if (scene.meshes.Contains(meshWnd.entity)) + { + meshWnd.SetVisible(true); + meshWnd.SetPos(pos); + meshWnd.SetSize(XMFLOAT2(width, meshWnd.GetScale().y)); + pos.y += meshWnd.GetSize().y; + pos.y += padding; + } + else + { + meshWnd.SetVisible(false); + } + + if (scene.objects.Contains(objectWnd.entity)) + { + objectWnd.SetVisible(true); + objectWnd.SetPos(pos); + objectWnd.SetSize(XMFLOAT2(width, objectWnd.GetScale().y)); + pos.y += objectWnd.GetSize().y; + pos.y += padding; + } + else + { + objectWnd.SetVisible(false); + } + + if (scene.weathers.Contains(weatherWnd.entity)) + { + weatherWnd.SetVisible(true); + weatherWnd.SetPos(pos); + weatherWnd.SetSize(XMFLOAT2(width, weatherWnd.GetScale().y)); + pos.y += weatherWnd.GetSize().y; + pos.y += padding; + } + else + { + weatherWnd.SetVisible(false); + } +} diff --git a/Editor/ComponentsWindow.h b/Editor/ComponentsWindow.h new file mode 100644 index 0000000000..f212e1e071 --- /dev/null +++ b/Editor/ComponentsWindow.h @@ -0,0 +1,50 @@ +#pragma once +#include "WickedEngine.h" +#include "MaterialWindow.h" +#include "WeatherWindow.h" +#include "ObjectWindow.h" +#include "MeshWindow.h" +#include "EnvProbeWindow.h" +#include "DecalWindow.h" +#include "LightWindow.h" +#include "AnimationWindow.h" +#include "EmitterWindow.h" +#include "HairParticleWindow.h" +#include "ForceFieldWindow.h" +#include "SoundWindow.h" +#include "SpringWindow.h" +#include "IKWindow.h" +#include "TransformWindow.h" +#include "LayerWindow.h" +#include "NameWindow.h" + +class EditorComponent; + +class ComponentsWindow : public wi::gui::Window +{ +public: + void Create(EditorComponent* editor); + void Update(float dt); + + void ResizeLayout() override; + + EditorComponent* editor = nullptr; + wi::gui::ComboBox newComponentCombo; + MaterialWindow materialWnd; + WeatherWindow weatherWnd; + ObjectWindow objectWnd; + MeshWindow meshWnd; + EnvProbeWindow envProbeWnd; + DecalWindow decalWnd; + LightWindow lightWnd; + AnimationWindow animWnd; + EmitterWindow emitterWnd; + HairParticleWindow hairWnd; + ForceFieldWindow forceFieldWnd; + SoundWindow soundWnd; + SpringWindow springWnd; + IKWindow ikWnd; + TransformWindow transformWnd; + LayerWindow layerWnd; + NameWindow nameWnd; +}; diff --git a/Editor/DecalWindow.cpp b/Editor/DecalWindow.cpp index ad836b8128..0103920469 100644 --- a/Editor/DecalWindow.cpp +++ b/Editor/DecalWindow.cpp @@ -23,7 +23,7 @@ void DecalWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 200; diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp index 46ad27ad97..3fd7b99507 100644 --- a/Editor/Editor.cpp +++ b/Editor/Editor.cpp @@ -18,8 +18,6 @@ using namespace wi::primitive; using namespace wi::scene; using namespace wi::ecs; -const float shadow_expand = 1; - void Editor::Initialize() { Application::Initialize(); @@ -56,7 +54,7 @@ void EditorLoadingScreen::Load() font.anim.typewriter.character_start = 7; AddFont(&font); - sprite = wi::Sprite("images/logo_small.png"); + sprite.textureResource.SetTexture(*wi::texturehelper::getLogo()); // use embedded asset sprite.anim.opa = 1; sprite.anim.repeatable = true; sprite.params.siz = XMFLOAT2(128, 128); @@ -65,6 +63,8 @@ void EditorLoadingScreen::Load() sprite.params.blendFlag = wi::enums::BLENDMODE_ALPHA; AddSprite(&sprite); + wi::gui::CheckBox::SetCheckText(ICON_CHECK); + LoadingScreen::Load(); } void EditorLoadingScreen::Update(float dt) @@ -82,13 +82,13 @@ void EditorComponent::ChangeRenderPath(RENDERPATH path) { case EditorComponent::RENDERPATH_DEFAULT: renderPath = std::make_unique(); - pathTraceTargetSlider.SetVisible(false); - pathTraceStatisticsLabel.SetVisible(false); + optionsWnd.pathTraceTargetSlider.SetVisible(false); + optionsWnd.pathTraceStatisticsLabel.SetVisible(false); break; case EditorComponent::RENDERPATH_PATHTRACING: renderPath = std::make_unique(); - pathTraceTargetSlider.SetVisible(true); - pathTraceStatisticsLabel.SetVisible(true); + optionsWnd.pathTraceTargetSlider.SetVisible(true); + optionsWnd.pathTraceStatisticsLabel.SetVisible(true); break; default: assert(0); @@ -111,24 +111,22 @@ void EditorComponent::ChangeRenderPath(RENDERPATH path) // Destroy and recreate renderer and postprocess windows: - optionsWnd.RemoveWidget(&rendererWnd); - rendererWnd = {}; - rendererWnd.Create(this); - rendererWnd.SetShadowRadius(shadow_expand); - optionsWnd.AddWidget(&rendererWnd); + optionsWnd.RemoveWidget(&optionsWnd.rendererWnd); + optionsWnd.rendererWnd = {}; + optionsWnd.rendererWnd.Create(this); + optionsWnd.AddWidget(&optionsWnd.rendererWnd); - optionsWnd.RemoveWidget(&postprocessWnd); - postprocessWnd = {}; - postprocessWnd.Create(this); - postprocessWnd.SetShadowRadius(shadow_expand); - optionsWnd.AddWidget(&postprocessWnd); + optionsWnd.RemoveWidget(&optionsWnd.postprocessWnd); + optionsWnd.postprocessWnd = {}; + optionsWnd.postprocessWnd.Create(this); + optionsWnd.AddWidget(&optionsWnd.postprocessWnd); - themeCombo.SetSelected(themeCombo.GetSelected()); // destroyed windows need theme set again + optionsWnd.themeCombo.SetSelected(optionsWnd.themeCombo.GetSelected()); // destroyed windows need theme set again } void EditorComponent::ResizeBuffers() { - rendererWnd.UpdateSwapChainFormats(&main->swapChain); + optionsWnd.rendererWnd.UpdateSwapChainFormats(&main->swapChain); init(main->canvas); RenderPath2D::ResizeBuffers(); @@ -238,7 +236,7 @@ void EditorComponent::ResizeLayout() optionsWnd.SetPos(XMFLOAT2(0, screenH - optionsWnd.GetScale().y)); - componentWindow.SetPos(XMFLOAT2(screenW - componentWindow.GetScale().x, screenH - componentWindow.GetScale().y)); + componentsWnd.SetPos(XMFLOAT2(screenW - componentsWnd.GetScale().x, screenH - componentsWnd.GetScale().y)); //////////////////////////////////////////////////////////////////////////////////// @@ -365,8 +363,8 @@ void EditorComponent::Load() } main->ActivatePath(this, 0.2f, wi::Color::Black()); - weatherWnd.Update(); - RefreshEntityTree(); + componentsWnd.weatherWnd.Update(); + optionsWnd.RefreshEntityTree(); RefreshSceneList(); }); main->ActivatePath(&main->loader, 0.2f, wi::Color::Black()); @@ -385,32 +383,32 @@ void EditorComponent::Load() closeButton.SetColor(wi::Color(255, 200, 150, 255), wi::gui::WIDGETSTATE::FOCUS); closeButton.OnClick([&](wi::gui::EventArgs args) { - terragen.Generation_Cancel(); - terragen.terrainEntity = INVALID_ENTITY; - terragen.SetCollapsed(true); + optionsWnd.terragen.Generation_Cancel(); + optionsWnd.terragen.terrainEntity = INVALID_ENTITY; + optionsWnd.terragen.SetCollapsed(true); translator.selected.clear(); wi::scene::Scene& scene = GetCurrentScene(); wi::renderer::ClearWorld(scene); - objectWnd.SetEntity(INVALID_ENTITY); - meshWnd.SetEntity(INVALID_ENTITY, -1); - lightWnd.SetEntity(INVALID_ENTITY); - soundWnd.SetEntity(INVALID_ENTITY); - decalWnd.SetEntity(INVALID_ENTITY); - envProbeWnd.SetEntity(INVALID_ENTITY); - materialWnd.SetEntity(INVALID_ENTITY); - emitterWnd.SetEntity(INVALID_ENTITY); - hairWnd.SetEntity(INVALID_ENTITY); - forceFieldWnd.SetEntity(INVALID_ENTITY); - cameraWnd.SetEntity(INVALID_ENTITY); - paintToolWnd.SetEntity(INVALID_ENTITY); - springWnd.SetEntity(INVALID_ENTITY); - ikWnd.SetEntity(INVALID_ENTITY); - transformWnd.SetEntity(INVALID_ENTITY); - layerWnd.SetEntity(INVALID_ENTITY); - nameWnd.SetEntity(INVALID_ENTITY); - - RefreshEntityTree(); + optionsWnd.cameraWnd.SetEntity(INVALID_ENTITY); + optionsWnd.paintToolWnd.SetEntity(INVALID_ENTITY); + componentsWnd.objectWnd.SetEntity(INVALID_ENTITY); + componentsWnd.meshWnd.SetEntity(INVALID_ENTITY, -1); + componentsWnd.lightWnd.SetEntity(INVALID_ENTITY); + componentsWnd.soundWnd.SetEntity(INVALID_ENTITY); + componentsWnd.decalWnd.SetEntity(INVALID_ENTITY); + componentsWnd.envProbeWnd.SetEntity(INVALID_ENTITY); + componentsWnd.materialWnd.SetEntity(INVALID_ENTITY); + componentsWnd.emitterWnd.SetEntity(INVALID_ENTITY); + componentsWnd.hairWnd.SetEntity(INVALID_ENTITY); + componentsWnd.forceFieldWnd.SetEntity(INVALID_ENTITY); + componentsWnd.springWnd.SetEntity(INVALID_ENTITY); + componentsWnd.ikWnd.SetEntity(INVALID_ENTITY); + componentsWnd.transformWnd.SetEntity(INVALID_ENTITY); + componentsWnd.layerWnd.SetEntity(INVALID_ENTITY); + componentsWnd.nameWnd.SetEntity(INVALID_ENTITY); + + optionsWnd.RefreshEntityTree(); ResetHistory(); GetCurrentEditorScene().path.clear(); @@ -428,7 +426,7 @@ void EditorComponent::Load() logButton.Create(ICON_BACKLOG); logButton.SetShadowRadius(2); logButton.font.params.shadowColor = wi::Color::Transparent(); - logButton.SetTooltip("Open the backlog"); + logButton.SetTooltip("Open the backlog (toggle with HOME button)"); logButton.SetColor(wi::Color(50, 160, 200, 180), wi::gui::WIDGETSTATE::IDLE); logButton.SetColor(wi::Color(120, 200, 200, 255), wi::gui::WIDGETSTATE::FOCUS); logButton.OnClick([&](wi::gui::EventArgs args) { @@ -511,870 +509,18 @@ void EditorComponent::Load() exitButton.SetColor(wi::Color(160, 50, 50, 180), wi::gui::WIDGETSTATE::IDLE); exitButton.SetColor(wi::Color(200, 50, 50, 255), wi::gui::WIDGETSTATE::FOCUS); exitButton.OnClick([this](wi::gui::EventArgs args) { - terragen.Generation_Cancel(); + optionsWnd.terragen.Generation_Cancel(); wi::platform::Exit(); }); GetGUI().AddWidget(&exitButton); - - - //////////////////////////////////////////////////////////////////////////////////// - - - optionsWnd.Create("Options", wi::gui::Window::WindowControls::RESIZE_TOPRIGHT); - optionsWnd.SetPos(XMFLOAT2(100, 120)); - optionsWnd.SetSize(XMFLOAT2(340, 500)); - optionsWnd.SetShadowRadius(2); + optionsWnd.Create(this); GetGUI().AddWidget(&optionsWnd); - translatorCheckBox.Create("Transform: "); - translatorCheckBox.SetTooltip("Enable the transform tool (Ctrl + T).\nTip: hold Left Ctrl to enable snap transform.\nYou can configure snap mode units in the Transform settings."); - translatorCheckBox.OnClick([&](wi::gui::EventArgs args) { - translator.enabled = args.bValue; - }); - optionsWnd.AddWidget(&translatorCheckBox); - - isScalatorCheckBox.Create("S: "); - isRotatorCheckBox.Create("R: "); - isTranslatorCheckBox.Create("T: "); - { - isScalatorCheckBox.SetTooltip("Scale"); - isScalatorCheckBox.OnClick([&](wi::gui::EventArgs args) { - translator.isScalator = args.bValue; - translator.isTranslator = false; - translator.isRotator = false; - isTranslatorCheckBox.SetCheck(false); - isRotatorCheckBox.SetCheck(false); - }); - isScalatorCheckBox.SetCheck(translator.isScalator); - optionsWnd.AddWidget(&isScalatorCheckBox); - - isRotatorCheckBox.SetTooltip("Rotate"); - isRotatorCheckBox.OnClick([&](wi::gui::EventArgs args) { - translator.isRotator = args.bValue; - translator.isScalator = false; - translator.isTranslator = false; - isScalatorCheckBox.SetCheck(false); - isTranslatorCheckBox.SetCheck(false); - }); - isRotatorCheckBox.SetCheck(translator.isRotator); - optionsWnd.AddWidget(&isRotatorCheckBox); - - isTranslatorCheckBox.SetTooltip("Translate (Move)"); - isTranslatorCheckBox.OnClick([&](wi::gui::EventArgs args) { - translator.isTranslator = args.bValue; - translator.isScalator = false; - translator.isRotator = false; - isScalatorCheckBox.SetCheck(false); - isRotatorCheckBox.SetCheck(false); - }); - isTranslatorCheckBox.SetCheck(translator.isTranslator); - optionsWnd.AddWidget(&isTranslatorCheckBox); - } - - - profilerEnabledCheckBox.Create("Profiler: "); - profilerEnabledCheckBox.SetTooltip("Toggle Profiler On/Off"); - profilerEnabledCheckBox.OnClick([&](wi::gui::EventArgs args) { - wi::profiler::SetEnabled(args.bValue); - }); - profilerEnabledCheckBox.SetCheck(wi::profiler::IsEnabled()); - optionsWnd.AddWidget(&profilerEnabledCheckBox); - - physicsEnabledCheckBox.Create("Physics: "); - physicsEnabledCheckBox.SetTooltip("Toggle Physics Simulation On/Off"); - physicsEnabledCheckBox.OnClick([&](wi::gui::EventArgs args) { - wi::physics::SetSimulationEnabled(args.bValue); - }); - physicsEnabledCheckBox.SetCheck(wi::physics::IsSimulationEnabled()); - optionsWnd.AddWidget(&physicsEnabledCheckBox); - - cinemaModeCheckBox.Create("Cinema Mode: "); - cinemaModeCheckBox.SetTooltip("Toggle Cinema Mode (All HUD disabled). Press ESC to exit."); - cinemaModeCheckBox.OnClick([&](wi::gui::EventArgs args) { - if (renderPath != nullptr) - { - renderPath->GetGUI().SetVisible(false); - } - GetGUI().SetVisible(false); - wi::profiler::SetEnabled(false); - }); - optionsWnd.AddWidget(&cinemaModeCheckBox); - - versionCheckBox.Create("Version: "); - versionCheckBox.SetTooltip("Toggle the engine version display text in top left corner."); - versionCheckBox.OnClick([&](wi::gui::EventArgs args) { - main->infoDisplay.watermark = args.bValue; - }); - optionsWnd.AddWidget(&versionCheckBox); - versionCheckBox.SetCheck(main->infoDisplay.watermark); - - fpsCheckBox.Create("FPS: "); - fpsCheckBox.SetTooltip("Toggle the FPS display text in top left corner."); - fpsCheckBox.OnClick([&](wi::gui::EventArgs args) { - main->infoDisplay.fpsinfo = args.bValue; - }); - optionsWnd.AddWidget(&fpsCheckBox); - fpsCheckBox.SetCheck(main->infoDisplay.fpsinfo); - - otherinfoCheckBox.Create("Advanced: "); - otherinfoCheckBox.SetTooltip("Toggle advanced data in the info display text in top left corner."); - otherinfoCheckBox.OnClick([&](wi::gui::EventArgs args) { - main->infoDisplay.heap_allocation_counter = args.bValue; - main->infoDisplay.vram_usage = args.bValue; - main->infoDisplay.colorspace = args.bValue; - main->infoDisplay.resolution = args.bValue; - main->infoDisplay.logical_size = args.bValue; - main->infoDisplay.pipeline_count = args.bValue; - }); - optionsWnd.AddWidget(&otherinfoCheckBox); - otherinfoCheckBox.SetCheck(main->infoDisplay.heap_allocation_counter); - - - - - newCombo.Create("New: "); - newCombo.selected_font.anim.typewriter.looped = true; - newCombo.selected_font.anim.typewriter.time = 2; - newCombo.selected_font.anim.typewriter.character_start = 1; - newCombo.AddItem("...", ~0ull); - newCombo.AddItem("Transform", 0); - newCombo.AddItem("Material", 1); - newCombo.AddItem("Point Light", 2); - newCombo.AddItem("Spot Light", 3); - newCombo.AddItem("Directional Light", 4); - newCombo.AddItem("Environment Probe", 5); - newCombo.AddItem("Force", 6); - newCombo.AddItem("Decal", 7); - newCombo.AddItem("Sound", 8); - newCombo.AddItem("Weather", 9); - newCombo.AddItem("Emitter", 10); - newCombo.AddItem("HairParticle", 11); - newCombo.AddItem("Camera", 12); - newCombo.AddItem("Cube Object", 13); - newCombo.AddItem("Plane Object", 14); - newCombo.OnSelect([&](wi::gui::EventArgs args) { - newCombo.SetSelectedWithoutCallback(0); - const EditorScene& editorscene = GetCurrentEditorScene(); - const CameraComponent& camera = editorscene.camera; - Scene& scene = GetCurrentScene(); - PickResult pick; - - XMFLOAT3 in_front_of_camera; - XMStoreFloat3(&in_front_of_camera, XMVectorAdd(camera.GetEye(), camera.GetAt() * 4)); - - switch (args.userdata) - { - case 0: - pick.entity = scene.Entity_CreateTransform("transform"); - break; - case 1: - pick.entity = scene.Entity_CreateMaterial("material"); - break; - case 2: - pick.entity = scene.Entity_CreateLight("pointlight", in_front_of_camera, XMFLOAT3(1, 1, 1), 2, 60); - scene.lights.GetComponent(pick.entity)->type = LightComponent::POINT; - scene.lights.GetComponent(pick.entity)->intensity = 20; - break; - case 3: - pick.entity = scene.Entity_CreateLight("spotlight", in_front_of_camera, XMFLOAT3(1, 1, 1), 2, 60); - scene.lights.GetComponent(pick.entity)->type = LightComponent::SPOT; - scene.lights.GetComponent(pick.entity)->intensity = 100; - break; - case 4: - pick.entity = scene.Entity_CreateLight("dirlight", XMFLOAT3(0, 3, 0), XMFLOAT3(1, 1, 1), 2, 60); - scene.lights.GetComponent(pick.entity)->type = LightComponent::DIRECTIONAL; - scene.lights.GetComponent(pick.entity)->intensity = 10; - break; - case 5: - pick.entity = scene.Entity_CreateEnvironmentProbe("envprobe", in_front_of_camera); - break; - case 6: - pick.entity = scene.Entity_CreateForce("force"); - break; - case 7: - pick.entity = scene.Entity_CreateDecal("decal", "images/logo_small.png"); - scene.transforms.GetComponent(pick.entity)->RotateRollPitchYaw(XMFLOAT3(XM_PIDIV2, 0, 0)); - break; - case 8: - { - wi::helper::FileDialogParams params; - params.type = wi::helper::FileDialogParams::OPEN; - params.description = "Sound"; - params.extensions = wi::resourcemanager::GetSupportedSoundExtensions(); - wi::helper::FileDialog(params, [=](std::string fileName) { - wi::eventhandler::Subscribe_Once(wi::eventhandler::EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) { - Entity entity = GetCurrentScene().Entity_CreateSound(wi::helper::GetFileNameFromPath(fileName), fileName); - - wi::Archive& archive = AdvanceHistory(); - archive << EditorComponent::HISTORYOP_ADD; - RecordSelection(archive); - - ClearSelected(); - AddSelected(entity); - - RecordSelection(archive); - RecordEntity(archive, entity); - - RefreshEntityTree(); - soundWnd.SetEntity(entity); - }); - }); - return; - } - break; - case 9: - pick.entity = CreateEntity(); - scene.weathers.Create(pick.entity); - scene.names.Create(pick.entity) = "weather"; - break; - case 10: - pick.entity = scene.Entity_CreateEmitter("emitter"); - break; - case 11: - pick.entity = scene.Entity_CreateHair("hair"); - break; - case 12: - pick.entity = scene.Entity_CreateCamera("camera", camera.width, camera.height); - *scene.cameras.GetComponent(pick.entity) = camera; - *scene.transforms.GetComponent(pick.entity) = editorscene.camera_transform; - break; - case 13: - pick.entity = scene.Entity_CreateCube("cube"); - pick.subsetIndex = 0; - break; - case 14: - pick.entity = scene.Entity_CreatePlane("plane"); - pick.subsetIndex = 0; - break; - default: - break; - } - if (pick.entity != INVALID_ENTITY) - { - wi::Archive& archive = AdvanceHistory(); - archive << HISTORYOP_ADD; - RecordSelection(archive); - - ClearSelected(); - AddSelected(pick); - - RecordSelection(archive); - RecordEntity(archive, pick.entity); - } - RefreshEntityTree(); - }); - newCombo.SetEnabled(true); - newCombo.SetTooltip("Create new entity"); - optionsWnd.AddWidget(&newCombo); - - - filterCombo.Create("Filter: "); - filterCombo.AddItem("All ", (uint64_t)Filter::All); - filterCombo.AddItem("Transform " ICON_TRANSFORM, (uint64_t)Filter::Transform); - filterCombo.AddItem("Material " ICON_MATERIAL, (uint64_t)Filter::Material); - filterCombo.AddItem("Mesh " ICON_MESH, (uint64_t)Filter::Mesh); - filterCombo.AddItem("Object " ICON_OBJECT, (uint64_t)Filter::Object); - filterCombo.AddItem("Environment Probe " ICON_ENVIRONMENTPROBE, (uint64_t)Filter::EnvironmentProbe); - filterCombo.AddItem("Decal " ICON_DECAL, (uint64_t)Filter::Decal); - filterCombo.AddItem("Sound " ICON_SOUND, (uint64_t)Filter::Sound); - filterCombo.AddItem("Weather " ICON_WEATHER, (uint64_t)Filter::Weather); - filterCombo.AddItem("Light " ICON_POINTLIGHT, (uint64_t)Filter::Light); - filterCombo.SetTooltip("Apply filtering to the Entities"); - filterCombo.OnSelect([&](wi::gui::EventArgs args) { - filter = (Filter)args.userdata; - RefreshEntityTree(); - }); - optionsWnd.AddWidget(&filterCombo); - - - entityTree.Create("Entities"); - entityTree.SetSize(XMFLOAT2(300, 300)); - entityTree.OnSelect([this](wi::gui::EventArgs args) { - - if (args.iValue < 0) - return; - - wi::Archive& archive = AdvanceHistory(); - archive << HISTORYOP_SELECTION; - // record PREVIOUS selection state... - RecordSelection(archive); - - translator.selected.clear(); - - for (int i = 0; i < entityTree.GetItemCount(); ++i) - { - const wi::gui::TreeList::Item& item = entityTree.GetItem(i); - if (item.selected) - { - wi::scene::PickResult pick; - pick.entity = (Entity)item.userdata; - AddSelected(pick); - } - } - - // record NEW selection state... - RecordSelection(archive); - - }); - optionsWnd.AddWidget(&entityTree); - - - renderPathComboBox.Create("Render Path: "); - renderPathComboBox.AddItem("Default"); - renderPathComboBox.AddItem("Path Tracing"); - renderPathComboBox.OnSelect([&](wi::gui::EventArgs args) { - ChangeRenderPath((RENDERPATH)args.iValue); - }); - renderPathComboBox.SetSelected(RENDERPATH_DEFAULT); - renderPathComboBox.SetEnabled(true); - renderPathComboBox.SetTooltip("Choose a render path..."); - optionsWnd.AddWidget(&renderPathComboBox); - - - pathTraceTargetSlider.Create(1, 2048, 1024, 2047, "Sample count: "); - pathTraceTargetSlider.SetSize(XMFLOAT2(200, 18)); - pathTraceTargetSlider.SetTooltip("The path tracing will perform this many samples per pixel."); - optionsWnd.AddWidget(&pathTraceTargetSlider); - pathTraceTargetSlider.SetVisible(false); - - pathTraceStatisticsLabel.Create("Path tracing statistics"); - pathTraceStatisticsLabel.SetSize(XMFLOAT2(240, 60)); - optionsWnd.AddWidget(&pathTraceStatisticsLabel); - pathTraceStatisticsLabel.SetVisible(false); - - // Renderer and Postprocess windows are created in ChangeRenderPath(), because they deal with - // RenderPath related information as well, so it's easier to reset them when changing - - materialWnd.Create(this); - weatherWnd.Create(this); - objectWnd.Create(this); - meshWnd.Create(this); - envProbeWnd.Create(this); - soundWnd.Create(this); - decalWnd.Create(this); - lightWnd.Create(this); - animWnd.Create(this); - emitterWnd.Create(this); - hairWnd.Create(this); - forceFieldWnd.Create(this); - springWnd.Create(this); - ikWnd.Create(this); - transformWnd.Create(this); - layerWnd.Create(this); - nameWnd.Create(this); - - componentWindow.Create("Components ", wi::gui::Window::WindowControls::RESIZE_TOPLEFT); - componentWindow.SetSize(optionsWnd.GetSize()); - componentWindow.font.params.h_align = wi::font::WIFALIGN_RIGHT; - componentWindow.SetShadowRadius(2); - GetGUI().AddWidget(&componentWindow); - - newComponentCombo.Create("Add: "); - newComponentCombo.selected_font.anim.typewriter.looped = true; - newComponentCombo.selected_font.anim.typewriter.time = 2; - newComponentCombo.selected_font.anim.typewriter.character_start = 1; - newComponentCombo.SetTooltip("Add a component to the first selected entity."); - newComponentCombo.AddItem("...", ~0ull); - newComponentCombo.AddItem("Name", 0); - newComponentCombo.AddItem("Layer " ICON_LAYER, 1); - newComponentCombo.AddItem("Transform " ICON_TRANSFORM, 2); - newComponentCombo.AddItem("Light " ICON_POINTLIGHT, 3); - newComponentCombo.AddItem("Matetial " ICON_MATERIAL, 4); - newComponentCombo.AddItem("Spring", 5); - newComponentCombo.AddItem("Inverse Kinematics", 6); - newComponentCombo.AddItem("Sound " ICON_SOUND, 7); - newComponentCombo.AddItem("Environment Probe " ICON_ENVIRONMENTPROBE, 8); - newComponentCombo.AddItem("Emitted Particle System " ICON_EMITTER, 9); - newComponentCombo.AddItem("Hair Particle System " ICON_HAIR, 10); - newComponentCombo.AddItem("Decal " ICON_DECAL, 11); - newComponentCombo.AddItem("Weather " ICON_WEATHER, 12); - newComponentCombo.AddItem("Force Field " ICON_FORCE, 13); - newComponentCombo.OnSelect([=](wi::gui::EventArgs args) { - newComponentCombo.SetSelectedWithoutCallback(0); - if (translator.selected.empty()) - return; - Scene& scene = GetCurrentScene(); - Entity entity = translator.selected.front().entity; - if (entity == INVALID_ENTITY) - { - assert(0); - return; - } - - // Can early exit before creating history entry! - switch (args.userdata) - { - case 0: - if(scene.names.Contains(entity)) - return; - break; - case 1: - if (scene.layers.Contains(entity)) - return; - break; - case 2: - if (scene.transforms.Contains(entity)) - return; - break; - case 3: - if (scene.lights.Contains(entity)) - return; - break; - case 4: - if (scene.materials.Contains(entity)) - return; - break; - case 5: - if (scene.springs.Contains(entity)) - return; - break; - case 6: - if (scene.inverse_kinematics.Contains(entity)) - return; - break; - case 7: - if (scene.inverse_kinematics.Contains(entity)) - return; - break; - case 8: - if (scene.probes.Contains(entity)) - return; - break; - case 9: - if (scene.emitters.Contains(entity)) - return; - break; - case 10: - if (scene.hairs.Contains(entity)) - return; - break; - case 11: - if (scene.decals.Contains(entity)) - return; - break; - case 12: - if (scene.weathers.Contains(entity)) - return; - break; - case 13: - if (scene.forces.Contains(entity)) - return; - break; - default: - return; - } - - wi::Archive& archive = AdvanceHistory(); - archive << HISTORYOP_COMPONENT_DATA; - RecordEntity(archive, entity); - - switch (args.userdata) - { - case 0: - scene.names.Create(entity); - break; - case 1: - scene.layers.Create(entity); - break; - case 2: - scene.transforms.Create(entity); - break; - case 3: - scene.lights.Create(entity); - scene.aabb_lights.Create(entity); - break; - case 4: - scene.materials.Create(entity); - break; - case 5: - scene.springs.Create(entity); - break; - case 6: - scene.inverse_kinematics.Create(entity); - break; - case 7: - scene.sounds.Create(entity); - break; - case 8: - scene.probes.Create(entity); - scene.aabb_probes.Create(entity); - break; - case 9: - if (!scene.materials.Contains(entity)) - scene.materials.Create(entity); - scene.emitters.Create(entity); - break; - case 10: - if (!scene.materials.Contains(entity)) - scene.materials.Create(entity); - scene.hairs.Create(entity); - break; - case 11: - if (!scene.materials.Contains(entity)) - scene.materials.Create(entity); - scene.decals.Create(entity); - scene.aabb_decals.Create(entity); - break; - case 12: - scene.weathers.Create(entity); - break; - case 13: - scene.forces.Create(entity); - break; - default: - break; - } - - RecordEntity(archive, entity); - - RefreshEntityTree(); - - }); - componentWindow.AddWidget(&newComponentCombo); - - - componentWindow.AddWidget(&materialWnd); - componentWindow.AddWidget(&weatherWnd); - componentWindow.AddWidget(&objectWnd); - componentWindow.AddWidget(&meshWnd); - componentWindow.AddWidget(&envProbeWnd); - componentWindow.AddWidget(&soundWnd); - componentWindow.AddWidget(&decalWnd); - componentWindow.AddWidget(&lightWnd); - componentWindow.AddWidget(&animWnd); - componentWindow.AddWidget(&emitterWnd); - componentWindow.AddWidget(&hairWnd); - componentWindow.AddWidget(&forceFieldWnd); - componentWindow.AddWidget(&springWnd); - componentWindow.AddWidget(&ikWnd); - componentWindow.AddWidget(&transformWnd); - componentWindow.AddWidget(&layerWnd); - componentWindow.AddWidget(&nameWnd); - - materialWnd.SetVisible(false); - weatherWnd.SetVisible(false); - objectWnd.SetVisible(false); - meshWnd.SetVisible(false); - envProbeWnd.SetVisible(false); - soundWnd.SetVisible(false); - decalWnd.SetVisible(false); - lightWnd.SetVisible(false); - animWnd.SetVisible(false); - emitterWnd.SetVisible(false); - hairWnd.SetVisible(false); - forceFieldWnd.SetVisible(false); - springWnd.SetVisible(false); - ikWnd.SetVisible(false); - transformWnd.SetVisible(false); - layerWnd.SetVisible(false); - nameWnd.SetVisible(false); - - materialWnd.SetShadowRadius(shadow_expand); - weatherWnd.SetShadowRadius(shadow_expand); - objectWnd.SetShadowRadius(shadow_expand); - meshWnd.SetShadowRadius(shadow_expand); - envProbeWnd.SetShadowRadius(shadow_expand); - soundWnd.SetShadowRadius(shadow_expand); - decalWnd.SetShadowRadius(shadow_expand); - lightWnd.SetShadowRadius(shadow_expand); - animWnd.SetShadowRadius(shadow_expand); - emitterWnd.SetShadowRadius(shadow_expand); - hairWnd.SetShadowRadius(shadow_expand); - forceFieldWnd.SetShadowRadius(shadow_expand); - springWnd.SetShadowRadius(shadow_expand); - ikWnd.SetShadowRadius(shadow_expand); - transformWnd.SetShadowRadius(shadow_expand); - layerWnd.SetShadowRadius(shadow_expand); - nameWnd.SetShadowRadius(shadow_expand); - - - - cameraWnd.Create(this); - cameraWnd.ResetCam(); - cameraWnd.SetShadowRadius(shadow_expand); - cameraWnd.SetCollapsed(true); - optionsWnd.AddWidget(&cameraWnd); - - paintToolWnd.Create(this); - paintToolWnd.SetShadowRadius(shadow_expand); - paintToolWnd.SetCollapsed(true); - optionsWnd.AddWidget(&paintToolWnd); - - materialPickerWnd.Create(this); - optionsWnd.AddWidget(&materialPickerWnd); - - - sceneComboBox.Create("Scene: "); - sceneComboBox.OnSelect([&](wi::gui::EventArgs args) { - if (args.iValue >= int(scenes.size())) - { - NewScene(); - } - SetCurrentScene(args.iValue); - }); - sceneComboBox.SetEnabled(true); - sceneComboBox.SetColor(wi::Color(50, 100, 255, 180), wi::gui::IDLE); - sceneComboBox.SetColor(wi::Color(120, 160, 255, 255), wi::gui::FOCUS); - optionsWnd.AddWidget(&sceneComboBox); - - - saveModeComboBox.Create("Save Mode: "); - saveModeComboBox.AddItem("Embed resources", (uint64_t)wi::resourcemanager::Mode::ALLOW_RETAIN_FILEDATA); - saveModeComboBox.AddItem("No embedding", (uint64_t)wi::resourcemanager::Mode::ALLOW_RETAIN_FILEDATA_BUT_DISABLE_EMBEDDING); - saveModeComboBox.AddItem("Dump to header", (uint64_t)wi::resourcemanager::Mode::ALLOW_RETAIN_FILEDATA); - saveModeComboBox.SetTooltip("Choose whether to embed resources (textures, sounds...) in the scene file when saving, or keep them as separate files.\nThe Dump to header option will use embedding and create a C++ header file with byte data of the scene to be used with wi::Archive serialization."); - saveModeComboBox.SetColor(wi::Color(50, 180, 100, 180), wi::gui::IDLE); - saveModeComboBox.SetColor(wi::Color(50, 220, 140, 255), wi::gui::FOCUS); - optionsWnd.AddWidget(&saveModeComboBox); - - - - terragen.Create(); - terragen.SetShadowRadius(shadow_expand); - terragen.OnCollapse([&](wi::gui::EventArgs args) { - - if (terragen.terrainEntity == INVALID_ENTITY) - { - // Customize terrain generator before it's initialized: - terragen.material_Base.SetRoughness(1); - terragen.material_Base.SetReflectance(0.005f); - terragen.material_Slope.SetRoughness(0.1f); - terragen.material_LowAltitude.SetRoughness(1); - terragen.material_HighAltitude.SetRoughness(1); - terragen.material_Base.textures[MaterialComponent::BASECOLORMAP].name = "terrain/base.jpg"; - terragen.material_Base.textures[MaterialComponent::NORMALMAP].name = "terrain/base_nor.jpg"; - terragen.material_Slope.textures[MaterialComponent::BASECOLORMAP].name = "terrain/slope.jpg"; - terragen.material_Slope.textures[MaterialComponent::NORMALMAP].name = "terrain/slope_nor.jpg"; - terragen.material_LowAltitude.textures[MaterialComponent::BASECOLORMAP].name = "terrain/low_altitude.jpg"; - terragen.material_LowAltitude.textures[MaterialComponent::NORMALMAP].name = "terrain/low_altitude_nor.jpg"; - terragen.material_HighAltitude.textures[MaterialComponent::BASECOLORMAP].name = "terrain/high_altitude.jpg"; - terragen.material_HighAltitude.textures[MaterialComponent::NORMALMAP].name = "terrain/high_altitude_nor.jpg"; - terragen.material_GrassParticle.textures[MaterialComponent::BASECOLORMAP].name = "terrain/grassparticle.png"; - terragen.material_GrassParticle.alphaRef = 0.75f; - terragen.grass_properties.length = 5; - terragen.grass_properties.frameCount = 2; - terragen.grass_properties.framesX = 1; - terragen.grass_properties.framesY = 2; - terragen.grass_properties.frameStart = 0; - terragen.material_Base.CreateRenderData(); - terragen.material_Slope.CreateRenderData(); - terragen.material_LowAltitude.CreateRenderData(); - terragen.material_HighAltitude.CreateRenderData(); - terragen.material_GrassParticle.CreateRenderData(); - // Tree prop: - { - Scene props_scene; - wi::scene::LoadModel(props_scene, "terrain/tree.wiscene"); - TerrainGenerator::Prop& prop = terragen.props.emplace_back(); - prop.name = "tree"; - prop.min_count_per_chunk = 0; - prop.max_count_per_chunk = 10; - prop.region = 0; - prop.region_power = 2; - prop.noise_frequency = 0.1f; - prop.noise_power = 1; - prop.threshold = 0.4f; - prop.min_size = 2.0f; - prop.max_size = 8.0f; - prop.min_y_offset = -0.5f; - prop.max_y_offset = -0.5f; - prop.mesh_entity = props_scene.Entity_FindByName("tree_mesh"); - props_scene.impostors.Create(prop.mesh_entity).swapInDistance = 200; - Entity object_entity = props_scene.Entity_FindByName("tree_object"); - ObjectComponent* object = props_scene.objects.GetComponent(object_entity); - if (object != nullptr) - { - prop.object = *object; - prop.object.lod_distance_multiplier = 0.05f; - //prop.object.cascadeMask = 1; // they won't be rendered into the largest shadow cascade - } - props_scene.Entity_Remove(object_entity); // The objects will be placed by terrain generator, we don't need the default object that the scene has anymore - GetCurrentScene().Merge(props_scene); - } - // Rock prop: - { - Scene props_scene; - wi::scene::LoadModel(props_scene, "terrain/rock.wiscene"); - TerrainGenerator::Prop& prop = terragen.props.emplace_back(); - prop.name = "rock"; - prop.min_count_per_chunk = 0; - prop.max_count_per_chunk = 8; - prop.region = 0; - prop.region_power = 1; - prop.noise_frequency = 0.005f; - prop.noise_power = 2; - prop.threshold = 0.5f; - prop.min_size = 0.02f; - prop.max_size = 4.0f; - prop.min_y_offset = -2; - prop.max_y_offset = 0.5f; - prop.mesh_entity = props_scene.Entity_FindByName("rock_mesh"); - Entity object_entity = props_scene.Entity_FindByName("rock_object"); - ObjectComponent* object = props_scene.objects.GetComponent(object_entity); - if (object != nullptr) - { - prop.object = *object; - prop.object.lod_distance_multiplier = 0.02f; - prop.object.cascadeMask = 1; // they won't be rendered into the largest shadow cascade - prop.object.draw_distance = 400; - } - props_scene.Entity_Remove(object_entity); // The objects will be placed by terrain generator, we don't need the default object that the scene has anymore - GetCurrentScene().Merge(props_scene); - } - // Bush prop: - { - Scene props_scene; - wi::scene::LoadModel(props_scene, "terrain/bush.wiscene"); - TerrainGenerator::Prop& prop = terragen.props.emplace_back(); - prop.name = "bush"; - prop.min_count_per_chunk = 0; - prop.max_count_per_chunk = 10; - prop.region = 0; - prop.region_power = 4; - prop.noise_frequency = 0.01f; - prop.noise_power = 4; - prop.threshold = 0.1f; - prop.min_size = 0.1f; - prop.max_size = 1.5f; - prop.min_y_offset = -1; - prop.max_y_offset = 0; - prop.mesh_entity = props_scene.Entity_FindByName("bush_mesh"); - Entity object_entity = props_scene.Entity_FindByName("bush_object"); - ObjectComponent* object = props_scene.objects.GetComponent(object_entity); - if (object != nullptr) - { - prop.object = *object; - prop.object.lod_distance_multiplier = 0.05f; - prop.object.cascadeMask = 1; // they won't be rendered into the largest shadow cascade - prop.object.draw_distance = 200; - } - props_scene.Entity_Remove(object_entity); // The objects will be placed by terrain generator, we don't need the default object that the scene has anymore - GetCurrentScene().Merge(props_scene); - } - - terragen.init(); - RefreshEntityTree(); - } - - if (!terragen.IsCollapsed() && !GetCurrentScene().transforms.Contains(terragen.terrainEntity)) - { - terragen.Generation_Restart(); - RefreshEntityTree(); - } - - }); - optionsWnd.AddWidget(&terragen); + componentsWnd.Create(this); + GetGUI().AddWidget(&componentsWnd); - - - enum class Theme - { - Dark, - Bright, - Soft, - Hacking, - }; - - themeCombo.Create("Theme: "); - themeCombo.SetTooltip("Choose a color theme..."); - themeCombo.AddItem("Dark", (uint64_t)Theme::Dark); - themeCombo.AddItem("Bright", (uint64_t)Theme::Bright); - themeCombo.AddItem("Soft", (uint64_t)Theme::Soft); - themeCombo.AddItem("Hacking", (uint64_t)Theme::Hacking); - themeCombo.OnSelect([=](wi::gui::EventArgs args) { - - // Dark theme defaults: - wi::Color theme_color_idle = wi::Color(30, 40, 60, 200); - wi::Color theme_color_focus = wi::Color(70, 150, 170, 220); - wi::Color dark_point = wi::Color(10, 10, 20, 220); // darker elements will lerp towards this - wi::gui::Theme theme; - theme.image.background = true; - theme.image.blendFlag = wi::enums::BLENDMODE_OPAQUE; - theme.font.color = wi::Color(130, 210, 220, 255); - theme.shadow_color = wi::Color(80, 140, 180, 100); - - switch ((Theme)args.userdata) - { - default: - break; - case Theme::Bright: - theme_color_idle = wi::Color(200, 210, 220, 230); - theme_color_focus = wi::Color(210, 230, 255, 250); - dark_point = wi::Color(180, 180, 190, 230); - theme.shadow_color = wi::Color::Shadow(); - theme.font.color = wi::Color(50, 50, 80, 255); - break; - case Theme::Soft: - theme_color_idle = wi::Color(200, 180, 190, 190); - theme_color_focus = wi::Color(240, 190, 200, 230); - dark_point = wi::Color(100, 80, 90, 220); - theme.shadow_color = wi::Color(240, 190, 200, 100); - theme.font.color = wi::Color(255, 230, 240, 255); - break; - case Theme::Hacking: - theme_color_idle = wi::Color(0, 0, 0, 255); - theme_color_focus = wi::Color(10, 230, 30, 255); - dark_point = wi::Color(0, 0, 0, 255); - theme.shadow_color = wi::Color(0, 250, 0, 200); - theme.font.color = wi::Color(100, 250, 100, 255); - theme.font.shadow_color = wi::Color::Shadow(); - break; - } - - theme.tooltipImage = theme.image; - theme.tooltipImage.color = theme_color_idle; - theme.tooltipFont = theme.font; - theme.tooltip_shadow_color = theme.shadow_color; - - wi::Color theme_color_active = wi::Color::White(); - wi::Color theme_color_deactivating = wi::Color::lerp(theme_color_focus, wi::Color::White(), 0.5f); - - // Customize whole gui: - wi::gui::GUI& gui = GetGUI(); - gui.SetTheme(theme); // set basic params to all states - - // customize colors for specific states: - gui.SetColor(theme_color_idle, wi::gui::IDLE); - gui.SetColor(theme_color_focus, wi::gui::FOCUS); - gui.SetColor(theme_color_active, wi::gui::ACTIVE); - gui.SetColor(theme_color_deactivating, wi::gui::DEACTIVATING); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.7f), wi::gui::WIDGET_ID_WINDOW_BASE); - - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.75f), wi::gui::WIDGET_ID_SLIDER_BASE_IDLE); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SLIDER_BASE_FOCUS); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.85f), wi::gui::WIDGET_ID_SLIDER_BASE_ACTIVE); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SLIDER_BASE_DEACTIVATING); - gui.SetColor(theme_color_idle, wi::gui::WIDGET_ID_SLIDER_KNOB_IDLE); - gui.SetColor(theme_color_focus, wi::gui::WIDGET_ID_SLIDER_KNOB_FOCUS); - gui.SetColor(theme_color_active, wi::gui::WIDGET_ID_SLIDER_KNOB_ACTIVE); - gui.SetColor(theme_color_deactivating, wi::gui::WIDGET_ID_SLIDER_KNOB_DEACTIVATING); - - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.75f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_IDLE); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_FOCUS); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.85f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_ACTIVE); - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_DEACTIVATING); - gui.SetColor(theme_color_idle, wi::gui::WIDGET_ID_SCROLLBAR_KNOB_INACTIVE); - gui.SetColor(theme_color_focus, wi::gui::WIDGET_ID_SCROLLBAR_KNOB_HOVER); - gui.SetColor(theme_color_active, wi::gui::WIDGET_ID_SCROLLBAR_KNOB_GRABBED); - - gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_COMBO_DROPDOWN); - - if ((Theme)args.userdata == Theme::Hacking) - { - gui.SetColor(wi::Color(0, 200, 0, 255), wi::gui::WIDGET_ID_SLIDER_KNOB_IDLE); - gui.SetColor(wi::Color(0, 200, 0, 255), wi::gui::WIDGET_ID_SCROLLBAR_KNOB_INACTIVE); - } - - // customize individual elements: - materialWnd.textureSlotButton.SetColor(wi::Color::White(), wi::gui::IDLE); - paintToolWnd.brushTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE); - paintToolWnd.revealTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE); - aboutLabel.sprites[wi::gui::FOCUS] = aboutLabel.sprites[wi::gui::IDLE]; - - }); - optionsWnd.AddWidget(&themeCombo); - themeCombo.SetSelected(0); + optionsWnd.themeCombo.SetSelected(0); RenderPath2D::Load(); } @@ -1402,7 +548,7 @@ void EditorComponent::Update(float dt) EditorScene& editorscene = GetCurrentEditorScene(); CameraComponent& camera = editorscene.camera; - terragen.scene = &scene; + optionsWnd.terragen.scene = &scene; translator.scene = &scene; if (scene.forces.Contains(grass_interaction_entity)) @@ -1410,17 +556,15 @@ void EditorComponent::Update(float dt) scene.Entity_Remove(grass_interaction_entity); } - cameraWnd.Update(); - animWnd.Update(); - weatherWnd.Update(); - paintToolWnd.Update(dt); + optionsWnd.Update(dt); + componentsWnd.Update(dt); selectionOutlineTimer += dt; bool clear_selected = false; if (wi::input::Press(wi::input::KEYBOARD_BUTTON_ESCAPE)) { - if (cinemaModeCheckBox.GetCheck()) + if (optionsWnd.cinemaModeCheckBox.GetCheck()) { // Exit cinema mode: if (renderPath != nullptr) @@ -1428,9 +572,9 @@ void EditorComponent::Update(float dt) renderPath->GetGUI().SetVisible(true); } GetGUI().SetVisible(true); - wi::profiler::SetEnabled(profilerEnabledCheckBox.GetCheck()); + wi::profiler::SetEnabled(optionsWnd.profilerEnabledCheckBox.GetCheck()); - cinemaModeCheckBox.SetCheck(false); + optionsWnd.cinemaModeCheckBox.SetCheck(false); } else { @@ -1440,9 +584,12 @@ void EditorComponent::Update(float dt) bool deleting = wi::input::Press(wi::input::KEYBOARD_BUTTON_DELETE); + translator.interactable = false; + // Camera control: if (!wi::backlog::isActive() && !GetGUI().HasFocus()) { + translator.interactable = true; XMFLOAT4 currentMouse = wi::input::GetPointer(); static XMFLOAT4 originalMouse = XMFLOAT4(0, 0, 0, 0); static bool camControlStart = true; @@ -1502,16 +649,16 @@ void EditorComponent::Update(float dt) xDif += rightStick.x * jostickrotspeed; yDif += rightStick.y * jostickrotspeed; - xDif *= cameraWnd.rotationspeedSlider.GetValue(); - yDif *= cameraWnd.rotationspeedSlider.GetValue(); + xDif *= optionsWnd.cameraWnd.rotationspeedSlider.GetValue(); + yDif *= optionsWnd.cameraWnd.rotationspeedSlider.GetValue(); - if (cameraWnd.fpsCheckBox.GetCheck()) + if (optionsWnd.cameraWnd.fpsCheckBox.GetCheck()) { // FPS Camera const float clampedDT = std::min(dt, 0.1f); // if dt > 100 millisec, don't allow the camera to jump too far... - const float speed = ((wi::input::Down(wi::input::KEYBOARD_BUTTON_LSHIFT) ? 10.0f : 1.0f) + rightTrigger.x * 10.0f) * cameraWnd.movespeedSlider.GetValue() * clampedDT; + const float speed = ((wi::input::Down(wi::input::KEYBOARD_BUTTON_LSHIFT) ? 10.0f : 1.0f) + rightTrigger.x * 10.0f) * optionsWnd.cameraWnd.movespeedSlider.GetValue() * clampedDT; XMVECTOR move = XMLoadFloat3(&editorscene.cam_move); XMVECTOR moveNew = XMVectorSet(leftStick.x, 0, leftStick.y, 0); @@ -1528,7 +675,7 @@ void EditorComponent::Update(float dt) } moveNew *= speed; - move = XMVectorLerp(move, moveNew, cameraWnd.accelerationSlider.GetValue() * clampedDT / 0.0166f); // smooth the movement a bit + move = XMVectorLerp(move, moveNew, optionsWnd.cameraWnd.accelerationSlider.GetValue() * clampedDT / 0.0166f); // smooth the movement a bit float moveLength = XMVectorGetX(XMVector3Length(move)); if (moveLength < 0.0001f) @@ -1580,7 +727,7 @@ void EditorComponent::Update(float dt) inspector_mode = wi::input::Down((wi::input::BUTTON)'I'); // Begin picking: - unsigned int pickMask = rendererWnd.GetPickType(); + unsigned int pickMask = optionsWnd.rendererWnd.GetPickType(); Ray pickRay = wi::renderer::GetPickRay((long)currentMouse.x, (long)currentMouse.y, *this, camera); { hovered = wi::scene::PickResult(); @@ -1765,7 +912,7 @@ void EditorComponent::Update(float dt) if ( wi::input::Down(wi::input::MOUSE_BUTTON_LEFT) || wi::input::Down(wi::input::MOUSE_BUTTON_RIGHT) || - paintToolWnd.GetMode() != PaintToolWindow::MODE_DISABLED || + optionsWnd.paintToolWnd.GetMode() != PaintToolWindow::MODE_DISABLED || inspector_mode ) { @@ -1775,7 +922,7 @@ void EditorComponent::Update(float dt) } // Interactions only when paint tool is disabled: - if (paintToolWnd.GetMode() == PaintToolWindow::MODE_DISABLED) + if (optionsWnd.paintToolWnd.GetMode() == PaintToolWindow::MODE_DISABLED) { // Interact: if (hovered.entity != INVALID_ENTITY && wi::input::Down(wi::input::MOUSE_BUTTON_LEFT)) @@ -1788,18 +935,18 @@ void EditorComponent::Update(float dt) // if water, then put a water ripple onto it: scene.PutWaterRipple("images/ripple.png", hovered.position); } - else if (decalWnd.IsEnabled() && decalWnd.placementCheckBox.GetCheck() && wi::input::Press(wi::input::MOUSE_BUTTON_LEFT)) + else if (componentsWnd.decalWnd.IsEnabled() && componentsWnd.decalWnd.placementCheckBox.GetCheck() && wi::input::Press(wi::input::MOUSE_BUTTON_LEFT)) { // if not water, put a decal on it: Entity entity = scene.Entity_CreateDecal("editorDecal", ""); // material and decal parameters will be copied from selected: - if (scene.decals.Contains(decalWnd.entity)) + if (scene.decals.Contains(componentsWnd.decalWnd.entity)) { - *scene.decals.GetComponent(entity) = *scene.decals.GetComponent(decalWnd.entity); + *scene.decals.GetComponent(entity) = *scene.decals.GetComponent(componentsWnd.decalWnd.entity); } - if (scene.materials.Contains(decalWnd.entity)) + if (scene.materials.Contains(componentsWnd.decalWnd.entity)) { - *scene.materials.GetComponent(entity) = *scene.materials.GetComponent(decalWnd.entity); + *scene.materials.GetComponent(entity) = *scene.materials.GetComponent(componentsWnd.decalWnd.entity); } // place it on picked surface: TransformComponent& transform = *scene.transforms.GetComponent(entity); @@ -1813,7 +960,7 @@ void EditorComponent::Update(float dt) RecordSelection(archive); RecordEntity(archive, entity); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } else { @@ -1903,7 +1050,7 @@ void EditorComponent::Update(float dt) // record NEW selection state... RecordSelection(archive); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } } @@ -1922,13 +1069,15 @@ void EditorComponent::Update(float dt) if (wi::input::Press((wi::input::BUTTON)'W')) { wi::renderer::SetWireRender(!wi::renderer::IsWireRender()); - rendererWnd.wireFrameCheckBox.SetCheck(wi::renderer::IsWireRender()); + optionsWnd.rendererWnd.wireFrameCheckBox.SetCheck(wi::renderer::IsWireRender()); } // Enable transform tool if (wi::input::Press((wi::input::BUTTON)'T')) { - translator.enabled = !translator.enabled; - translatorCheckBox.SetCheck(translator.enabled); + translator.SetEnabled(!translator.IsEnabled()); + optionsWnd.isTranslatorCheckBox.SetCheck(translator.isTranslator); + optionsWnd.isRotatorCheckBox.SetCheck(translator.isRotator); + optionsWnd.isScalatorCheckBox.SetCheck(translator.isScalator); } // Save if (wi::input::Press((wi::input::BUTTON)'S')) @@ -1990,7 +1139,7 @@ void EditorComponent::Update(float dt) RecordSelection(archive); RecordEntity(archive, addedEntities); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } // Duplicate Instances if (wi::input::Press((wi::input::BUTTON)'D')) @@ -2018,7 +1167,7 @@ void EditorComponent::Update(float dt) RecordSelection(archive); RecordEntity(archive, addedEntities); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } // Put Instances if (clipboard.IsOpen() && hovered.subsetIndex >= 0 && wi::input::Down(wi::input::KEYBOARD_BUTTON_LSHIFT) && wi::input::Press(wi::input::MOUSE_BUTTON_LEFT)) @@ -2049,13 +1198,13 @@ void EditorComponent::Update(float dt) transform->Translate(hovered.position); #endif transform->UpdateTransform(); - } + } if (hier != nullptr) { scene.Component_Attach(entity, hier->parentID); } addedEntities.push_back(entity); - } + } wi::Archive& archive = AdvanceHistory(); archive << HISTORYOP_ADD; @@ -2064,21 +1213,21 @@ void EditorComponent::Update(float dt) RecordSelection(archive); RecordEntity(archive, addedEntities); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } // Undo if (wi::input::Press((wi::input::BUTTON)'Z')) { ConsumeHistoryOperation(true); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } // Redo if (wi::input::Press((wi::input::BUTTON)'Y')) { ConsumeHistoryOperation(false); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } } @@ -2102,85 +1251,85 @@ void EditorComponent::Update(float dt) ClearSelected(); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } // Update window data bindings... if (translator.selected.empty()) { - objectWnd.SetEntity(INVALID_ENTITY); - emitterWnd.SetEntity(INVALID_ENTITY); - hairWnd.SetEntity(INVALID_ENTITY); - meshWnd.SetEntity(INVALID_ENTITY, -1); - materialWnd.SetEntity(INVALID_ENTITY); - soundWnd.SetEntity(INVALID_ENTITY); - decalWnd.SetEntity(INVALID_ENTITY); - envProbeWnd.SetEntity(INVALID_ENTITY); - forceFieldWnd.SetEntity(INVALID_ENTITY); - cameraWnd.SetEntity(INVALID_ENTITY); - paintToolWnd.SetEntity(INVALID_ENTITY); - springWnd.SetEntity(INVALID_ENTITY); - ikWnd.SetEntity(INVALID_ENTITY); - transformWnd.SetEntity(INVALID_ENTITY); - layerWnd.SetEntity(INVALID_ENTITY); - nameWnd.SetEntity(INVALID_ENTITY); - weatherWnd.SetEntity(INVALID_ENTITY); + optionsWnd.cameraWnd.SetEntity(INVALID_ENTITY); + optionsWnd.paintToolWnd.SetEntity(INVALID_ENTITY); + componentsWnd.objectWnd.SetEntity(INVALID_ENTITY); + componentsWnd.emitterWnd.SetEntity(INVALID_ENTITY); + componentsWnd.hairWnd.SetEntity(INVALID_ENTITY); + componentsWnd.meshWnd.SetEntity(INVALID_ENTITY, -1); + componentsWnd.materialWnd.SetEntity(INVALID_ENTITY); + componentsWnd.soundWnd.SetEntity(INVALID_ENTITY); + componentsWnd.decalWnd.SetEntity(INVALID_ENTITY); + componentsWnd.envProbeWnd.SetEntity(INVALID_ENTITY); + componentsWnd.forceFieldWnd.SetEntity(INVALID_ENTITY); + componentsWnd.springWnd.SetEntity(INVALID_ENTITY); + componentsWnd.ikWnd.SetEntity(INVALID_ENTITY); + componentsWnd.transformWnd.SetEntity(INVALID_ENTITY); + componentsWnd.layerWnd.SetEntity(INVALID_ENTITY); + componentsWnd.nameWnd.SetEntity(INVALID_ENTITY); + componentsWnd.weatherWnd.SetEntity(INVALID_ENTITY); } else { const wi::scene::PickResult& picked = translator.selected.back(); assert(picked.entity != INVALID_ENTITY); - objectWnd.SetEntity(picked.entity); + componentsWnd.objectWnd.SetEntity(picked.entity); for (auto& x : translator.selected) { if (scene.objects.GetComponent(x.entity) != nullptr) { - objectWnd.SetEntity(x.entity); + componentsWnd.objectWnd.SetEntity(x.entity); break; } } - emitterWnd.SetEntity(picked.entity); - hairWnd.SetEntity(picked.entity); - lightWnd.SetEntity(picked.entity); - soundWnd.SetEntity(picked.entity); - decalWnd.SetEntity(picked.entity); - envProbeWnd.SetEntity(picked.entity); - forceFieldWnd.SetEntity(picked.entity); - cameraWnd.SetEntity(picked.entity); - paintToolWnd.SetEntity(picked.entity, picked.subsetIndex); - springWnd.SetEntity(picked.entity); - ikWnd.SetEntity(picked.entity); - transformWnd.SetEntity(picked.entity); - layerWnd.SetEntity(picked.entity); - nameWnd.SetEntity(picked.entity); - weatherWnd.SetEntity(picked.entity); + optionsWnd.cameraWnd.SetEntity(picked.entity); + optionsWnd.paintToolWnd.SetEntity(picked.entity, picked.subsetIndex); + componentsWnd.emitterWnd.SetEntity(picked.entity); + componentsWnd.hairWnd.SetEntity(picked.entity); + componentsWnd.lightWnd.SetEntity(picked.entity); + componentsWnd.soundWnd.SetEntity(picked.entity); + componentsWnd.decalWnd.SetEntity(picked.entity); + componentsWnd.envProbeWnd.SetEntity(picked.entity); + componentsWnd.forceFieldWnd.SetEntity(picked.entity); + componentsWnd.springWnd.SetEntity(picked.entity); + componentsWnd.ikWnd.SetEntity(picked.entity); + componentsWnd.transformWnd.SetEntity(picked.entity); + componentsWnd.layerWnd.SetEntity(picked.entity); + componentsWnd.nameWnd.SetEntity(picked.entity); + componentsWnd.weatherWnd.SetEntity(picked.entity); if (picked.subsetIndex >= 0) { const ObjectComponent* object = scene.objects.GetComponent(picked.entity); if (object != nullptr) // maybe it was deleted... { - meshWnd.SetEntity(object->meshID, picked.subsetIndex); + componentsWnd.meshWnd.SetEntity(object->meshID, picked.subsetIndex); const MeshComponent* mesh = scene.meshes.GetComponent(object->meshID); if (mesh != nullptr && (int)mesh->subsets.size() > picked.subsetIndex) { - materialWnd.SetEntity(mesh->subsets[picked.subsetIndex].materialID); + componentsWnd.materialWnd.SetEntity(mesh->subsets[picked.subsetIndex].materialID); } } } else { - meshWnd.SetEntity(picked.entity, picked.subsetIndex); - materialWnd.SetEntity(picked.entity); + componentsWnd.meshWnd.SetEntity(picked.entity, picked.subsetIndex); + componentsWnd.materialWnd.SetEntity(picked.entity); } } - // Clear highlite state: + // Clear highlight state: for (size_t i = 0; i < scene.materials.GetCount(); ++i) { scene.materials[i].SetUserStencilRef(EDITORSTENCILREF_CLEAR); @@ -2215,22 +1364,25 @@ void EditorComponent::Update(float dt) EntitySerializer seri; wi::Archive& archive = AdvanceHistory(); archive << HISTORYOP_TRANSLATOR; + archive << translator.isTranslator; + archive << translator.isRotator; + archive << translator.isScalator; translator.transform_start.Serialize(archive, seri); translator.transform.Serialize(archive, seri); archive << translator.matrices_start; archive << translator.matrices_current; } - emitterWnd.UpdateData(); - hairWnd.UpdateData(); + componentsWnd.emitterWnd.UpdateData(); + componentsWnd.hairWnd.UpdateData(); // Follow camera proxy: - if (cameraWnd.followCheckBox.IsEnabled() && cameraWnd.followCheckBox.GetCheck()) + if (optionsWnd.cameraWnd.followCheckBox.IsEnabled() && optionsWnd.cameraWnd.followCheckBox.GetCheck()) { - TransformComponent* proxy = scene.transforms.GetComponent(cameraWnd.entity); + TransformComponent* proxy = scene.transforms.GetComponent(optionsWnd.cameraWnd.entity); if (proxy != nullptr) { - editorscene.camera_transform.Lerp(editorscene.camera_transform, *proxy, 1.0f - cameraWnd.followSlider.GetValue()); + editorscene.camera_transform.Lerp(editorscene.camera_transform, *proxy, 1.0f - optionsWnd.cameraWnd.followSlider.GetValue()); editorscene.camera_transform.UpdateTransform(); } } @@ -2241,7 +1393,7 @@ void EditorComponent::Update(float dt) wi::RenderPath3D_PathTracing* pathtracer = dynamic_cast(renderPath.get()); if (pathtracer != nullptr) { - pathtracer->setTargetSampleCount((int)pathTraceTargetSlider.GetValue()); + pathtracer->setTargetSampleCount((int)optionsWnd.pathTraceTargetSlider.GetValue()); std::string ss; ss += "Sample count: " + std::to_string(pathtracer->getCurrentSampleCount()) + "\n"; @@ -2257,17 +1409,14 @@ void EditorComponent::Update(float dt) { ss += "Denoiser not available!\nTo find out how to enable the denoiser, visit the documentation."; } - pathTraceStatisticsLabel.SetText(ss); + optionsWnd.pathTraceStatisticsLabel.SetText(ss); } - terragen.Generation_Update(camera); + optionsWnd.terragen.Generation_Update(camera); wi::profiler::EndRange(profrange); RenderPath2D::Update(dt); - RefreshComponentWindow(); - RefreshOptionsWindow(); - materialPickerWnd.Update(); translator.Update(camera, *this); @@ -2285,7 +1434,7 @@ void EditorComponent::Render() const const Scene& scene = GetCurrentScene(); // Hovered item boxes: - if (!cinemaModeCheckBox.GetCheck()) + if (!optionsWnd.cinemaModeCheckBox.GetCheck()) { if (hovered.entity != INVALID_ENTITY) { @@ -2335,7 +1484,7 @@ void EditorComponent::Render() const } // Spring visualizer: - if (springWnd.debugCheckBox.GetCheck()) + if (componentsWnd.springWnd.debugCheckBox.GetCheck()) { for (size_t i = 0; i < scene.springs.GetCount(); ++i) { @@ -2350,7 +1499,7 @@ void EditorComponent::Render() const } // Selected items box: - if (!cinemaModeCheckBox.GetCheck() && !translator.selected.empty()) + if (!optionsWnd.cinemaModeCheckBox.GetCheck() && !translator.selected.empty()) { AABB selectedAABB = AABB( XMFLOAT3(std::numeric_limits::max(), std::numeric_limits::max(), std::numeric_limits::max()), @@ -2406,12 +1555,12 @@ void EditorComponent::Render() const wi::renderer::DrawBox(selectionBox, XMFLOAT4(1, 1, 1, 1)); } - paintToolWnd.DrawBrush(); + optionsWnd.paintToolWnd.DrawBrush(); renderPath->Render(); // Editor custom render: - if (!cinemaModeCheckBox.GetCheck()) + if (!optionsWnd.cinemaModeCheckBox.GetCheck()) { GraphicsDevice* device = wi::graphics::GetDevice(); CommandList cmd = device->BeginCommandList(); @@ -2513,7 +1662,7 @@ void EditorComponent::Render() const fp.shadowColor = wi::Color::Shadow(); fp.shadow_softness = 1; - if (rendererWnd.GetPickType() & PICK_LIGHT) + if (optionsWnd.rendererWnd.GetPickType() & PICK_LIGHT) { for (size_t i = 0; i < scene.lights.GetCount(); ++i) { @@ -2557,7 +1706,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_DECAL) + if (optionsWnd.rendererWnd.GetPickType() & PICK_DECAL) { for (size_t i = 0; i < scene.decals.GetCount(); ++i) { @@ -2589,7 +1738,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_FORCEFIELD) + if (optionsWnd.rendererWnd.GetPickType() & PICK_FORCEFIELD) { for (size_t i = 0; i < scene.forces.GetCount(); ++i) { @@ -2620,7 +1769,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_CAMERA) + if (optionsWnd.rendererWnd.GetPickType() & PICK_CAMERA) { for (size_t i = 0; i < scene.cameras.GetCount(); ++i) { @@ -2651,7 +1800,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_ARMATURE) + if (optionsWnd.rendererWnd.GetPickType() & PICK_ARMATURE) { for (size_t i = 0; i < scene.armatures.GetCount(); ++i) { @@ -2682,7 +1831,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_EMITTER) + if (optionsWnd.rendererWnd.GetPickType() & PICK_EMITTER) { for (size_t i = 0; i < scene.emitters.GetCount(); ++i) { @@ -2713,7 +1862,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_HAIR) + if (optionsWnd.rendererWnd.GetPickType() & PICK_HAIR) { for (size_t i = 0; i < scene.hairs.GetCount(); ++i) { @@ -2744,7 +1893,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.GetPickType() & PICK_SOUND) + if (optionsWnd.rendererWnd.GetPickType() & PICK_SOUND) { for (size_t i = 0; i < scene.sounds.GetCount(); ++i) { @@ -2775,7 +1924,7 @@ void EditorComponent::Render() const } } - if (rendererWnd.nameDebugCheckBox.GetCheck()) + if (optionsWnd.rendererWnd.nameDebugCheckBox.GetCheck()) { device->EventBegin("Debug Names", cmd); struct DebugNameEntitySorter @@ -2872,697 +2021,6 @@ void EditorComponent::Compose(CommandList cmd) const RenderPath2D::Compose(cmd); } -void EditorComponent::RefreshOptionsWindow() -{ - const float padding = 4; - XMFLOAT2 pos = XMFLOAT2(padding, padding); - const float width = optionsWnd.GetWidgetAreaSize().x - padding * 2; - float x_off = 100; - - translatorCheckBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - isScalatorCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 80, pos.y)); - isRotatorCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 80 + 50, pos.y)); - isTranslatorCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 60 * 3, pos.y)); - pos.y += translatorCheckBox.GetSize().y; - pos.y += padding; - - versionCheckBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - fpsCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 80, pos.y)); - otherinfoCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 60 * 3, pos.y)); - pos.y += versionCheckBox.GetSize().y; - pos.y += padding; - - cinemaModeCheckBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - profilerEnabledCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 80, pos.y)); - physicsEnabledCheckBox.SetPos(XMFLOAT2(pos.x + x_off + 60 * 3, pos.y)); - pos.y += cinemaModeCheckBox.GetSize().y; - pos.y += padding; - - sceneComboBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - sceneComboBox.SetSize(XMFLOAT2(width - x_off - sceneComboBox.GetScale().y - 1, sceneComboBox.GetScale().y)); - pos.y += sceneComboBox.GetSize().y; - pos.y += padding; - - saveModeComboBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - saveModeComboBox.SetSize(XMFLOAT2(width - x_off - saveModeComboBox.GetScale().y - 1, saveModeComboBox.GetScale().y)); - pos.y += saveModeComboBox.GetSize().y; - pos.y += padding; - - themeCombo.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - themeCombo.SetSize(XMFLOAT2(width - x_off - themeCombo.GetScale().y - 1, themeCombo.GetScale().y)); - pos.y += themeCombo.GetSize().y; - pos.y += padding; - - renderPathComboBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - renderPathComboBox.SetSize(XMFLOAT2(width - x_off - renderPathComboBox.GetScale().y - 1, renderPathComboBox.GetScale().y)); - pos.y += renderPathComboBox.GetSize().y; - pos.y += padding; - - if (pathTraceTargetSlider.IsVisible()) - { - pathTraceTargetSlider.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - pathTraceTargetSlider.SetSize(XMFLOAT2(width - x_off - pathTraceTargetSlider.GetScale().y * 2 - 1, pathTraceTargetSlider.GetScale().y)); - pos.y += pathTraceTargetSlider.GetSize().y; - pos.y += padding; - } - - if (pathTraceStatisticsLabel.IsVisible()) - { - pathTraceStatisticsLabel.SetPos(pos); - pathTraceStatisticsLabel.SetSize(XMFLOAT2(width, pathTraceStatisticsLabel.GetScale().y)); - pos.y += pathTraceStatisticsLabel.GetSize().y; - pos.y += padding; - } - - rendererWnd.SetPos(pos); - rendererWnd.SetSize(XMFLOAT2(width, rendererWnd.GetScale().y)); - pos.y += rendererWnd.GetSize().y; - pos.y += padding; - - postprocessWnd.SetPos(pos); - postprocessWnd.SetSize(XMFLOAT2(width, postprocessWnd.GetScale().y)); - pos.y += postprocessWnd.GetSize().y; - pos.y += padding; - - cameraWnd.SetPos(pos); - cameraWnd.SetSize(XMFLOAT2(width, cameraWnd.GetScale().y)); - pos.y += cameraWnd.GetSize().y; - pos.y += padding; - - materialPickerWnd.SetPos(pos); - materialPickerWnd.SetSize(XMFLOAT2(width, materialPickerWnd.GetScale().y)); - pos.y += materialPickerWnd.GetSize().y; - pos.y += padding; - - paintToolWnd.SetPos(pos); - paintToolWnd.SetSize(XMFLOAT2(width, paintToolWnd.GetScale().y)); - pos.y += paintToolWnd.GetSize().y; - pos.y += padding; - - terragen.SetPos(pos); - terragen.SetSize(XMFLOAT2(width, terragen.GetScale().y)); - pos.y += terragen.GetSize().y; - pos.y += padding; - - x_off = 45; - - newCombo.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - newCombo.SetSize(XMFLOAT2(width - x_off - newCombo.GetScale().y - 1, newCombo.GetScale().y)); - pos.y += newCombo.GetSize().y; - pos.y += padding; - - filterCombo.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); - filterCombo.SetSize(XMFLOAT2(width - x_off - filterCombo.GetScale().y - 1, filterCombo.GetScale().y)); - pos.y += filterCombo.GetSize().y; - pos.y += padding; - - entityTree.SetPos(pos); - entityTree.SetSize(XMFLOAT2(width, std::max(GetLogicalHeight() * 0.75f, GetLogicalHeight() - pos.y))); - pos.y += entityTree.GetSize().y; - pos.y += padding; - - - optionsWnd.Update(*this, 0); -} -void EditorComponent::PushToEntityTree(wi::ecs::Entity entity, int level) -{ - if (entitytree_added_items.count(entity) != 0) - { - return; - } - const Scene& scene = GetCurrentScene(); - - wi::gui::TreeList::Item item; - item.level = level; - item.userdata = entity; - item.selected = IsSelected(entity); - item.open = entitytree_opened_items.count(entity) != 0; - - // Icons: - if (scene.layers.Contains(entity)) - { - item.name += ICON_LAYER " "; - } - if (scene.transforms.Contains(entity)) - { - item.name += ICON_TRANSFORM " "; - } - if (scene.meshes.Contains(entity)) - { - item.name += ICON_MESH " "; - } - if (scene.objects.Contains(entity)) - { - item.name += ICON_OBJECT " "; - } - if (scene.rigidbodies.Contains(entity)) - { - item.name += ICON_RIGIDBODY " "; - } - if (scene.softbodies.Contains(entity)) - { - item.name += ICON_SOFTBODY " "; - } - if (scene.emitters.Contains(entity)) - { - item.name += ICON_EMITTER " "; - } - if (scene.hairs.Contains(entity)) - { - item.name += ICON_HAIR " "; - } - if (scene.forces.Contains(entity)) - { - item.name += ICON_FORCE " "; - } - if (scene.sounds.Contains(entity)) - { - item.name += ICON_SOUND " "; - } - if (scene.decals.Contains(entity)) - { - item.name += ICON_DECAL " "; - } - if (scene.cameras.Contains(entity)) - { - item.name += ICON_CAMERA " "; - } - if (scene.probes.Contains(entity)) - { - item.name += ICON_ENVIRONMENTPROBE " "; - } - if (scene.animations.Contains(entity)) - { - item.name += ICON_ANIMATION " "; - } - if (scene.armatures.Contains(entity)) - { - item.name += ICON_ARMATURE " "; - } - if (scene.lights.Contains(entity)) - { - const LightComponent* light = scene.lights.GetComponent(entity); - switch (light->type) - { - default: - case LightComponent::POINT: - item.name += ICON_POINTLIGHT " "; - break; - case LightComponent::SPOT: - item.name += ICON_SPOTLIGHT " "; - break; - case LightComponent::DIRECTIONAL: - item.name += ICON_DIRECTIONALLIGHT " "; - break; - } - } - if (scene.materials.Contains(entity)) - { - item.name += ICON_MATERIAL " "; - } - if (scene.weathers.Contains(entity)) - { - item.name += ICON_WEATHER " "; - } - if (entity == terragen.terrainEntity) - { - item.name += ICON_TERRAIN " "; - } - - const NameComponent* name = scene.names.GetComponent(entity); - if (name == nullptr) - { - item.name += "[no_name] " + std::to_string(entity); - } - else if(name->name.empty()) - { - item.name += "[name_empty] " + std::to_string(entity); - } - else - { - item.name += name->name; - } - entityTree.AddItem(item); - - entitytree_added_items.insert(entity); - - for (size_t i = 0; i < scene.hierarchy.GetCount(); ++i) - { - if (scene.hierarchy[i].parentID == entity) - { - PushToEntityTree(scene.hierarchy.GetEntity(i), level + 1); - } - } -} -void EditorComponent::RefreshEntityTree() -{ - const Scene& scene = GetCurrentScene(); - materialPickerWnd.RecreateButtons(); - - for (int i = 0; i < entityTree.GetItemCount(); ++i) - { - const wi::gui::TreeList::Item& item = entityTree.GetItem(i); - if (item.open) - { - entitytree_opened_items.insert((Entity)item.userdata); - } - } - - entityTree.ClearItems(); - - if (has_flag(filter, Filter::All)) - { - // Add hierarchy: - for (size_t i = 0; i < scene.hierarchy.GetCount(); ++i) - { - PushToEntityTree(scene.hierarchy[i].parentID, 0); - } - } - - if (has_flag(filter, Filter::Transform)) - { - // Any transform left that is not part of a hierarchy: - for (size_t i = 0; i < scene.transforms.GetCount(); ++i) - { - PushToEntityTree(scene.transforms.GetEntity(i), 0); - } - } - - // Add any left over entities that might not have had a hierarchy or transform: - - if (has_flag(filter, Filter::Light)) - { - for (size_t i = 0; i < scene.lights.GetCount(); ++i) - { - PushToEntityTree(scene.lights.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::Decal)) - { - for (size_t i = 0; i < scene.decals.GetCount(); ++i) - { - PushToEntityTree(scene.decals.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.cameras.GetCount(); ++i) - { - PushToEntityTree(scene.cameras.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::Material)) - { - for (size_t i = 0; i < scene.materials.GetCount(); ++i) - { - PushToEntityTree(scene.materials.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::Mesh)) - { - for (size_t i = 0; i < scene.meshes.GetCount(); ++i) - { - PushToEntityTree(scene.meshes.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.armatures.GetCount(); ++i) - { - PushToEntityTree(scene.armatures.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::Object)) - { - for (size_t i = 0; i < scene.objects.GetCount(); ++i) - { - PushToEntityTree(scene.objects.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::Weather)) - { - for (size_t i = 0; i < scene.weathers.GetCount(); ++i) - { - PushToEntityTree(scene.weathers.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::Sound)) - { - for (size_t i = 0; i < scene.sounds.GetCount(); ++i) - { - PushToEntityTree(scene.sounds.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.hairs.GetCount(); ++i) - { - PushToEntityTree(scene.hairs.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.emitters.GetCount(); ++i) - { - PushToEntityTree(scene.emitters.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.animations.GetCount(); ++i) - { - PushToEntityTree(scene.animations.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.probes.GetCount(); ++i) - { - PushToEntityTree(scene.probes.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.forces.GetCount(); ++i) - { - PushToEntityTree(scene.forces.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.rigidbodies.GetCount(); ++i) - { - PushToEntityTree(scene.rigidbodies.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.softbodies.GetCount(); ++i) - { - PushToEntityTree(scene.softbodies.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.springs.GetCount(); ++i) - { - PushToEntityTree(scene.springs.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.inverse_kinematics.GetCount(); ++i) - { - PushToEntityTree(scene.inverse_kinematics.GetEntity(i), 0); - } - } - - if (has_flag(filter, Filter::All)) - { - for (size_t i = 0; i < scene.names.GetCount(); ++i) - { - PushToEntityTree(scene.names.GetEntity(i), 0); - } - } - - entitytree_added_items.clear(); - entitytree_opened_items.clear(); -} -void EditorComponent::RefreshComponentWindow() -{ - const wi::scene::Scene& scene = GetCurrentScene(); - const float padding = 4; - XMFLOAT2 pos = XMFLOAT2(padding, padding); - const float width = componentWindow.GetWidgetAreaSize().x - padding * 2; - - if (!translator.selected.empty()) - { - newComponentCombo.SetVisible(true); - newComponentCombo.SetPos(XMFLOAT2(pos.x + 35, pos.y)); - newComponentCombo.SetSize(XMFLOAT2(width - 35 - 21, 20)); - pos.y += newComponentCombo.GetSize().y; - pos.y += padding; - } - else - { - newComponentCombo.SetVisible(false); - } - - if (scene.names.Contains(nameWnd.entity)) - { - nameWnd.SetVisible(true); - nameWnd.SetPos(pos); - nameWnd.SetSize(XMFLOAT2(width, nameWnd.GetScale().y)); - nameWnd.Update(); - pos.y += nameWnd.GetSize().y; - pos.y += padding; - } - else - { - nameWnd.SetVisible(false); - } - - if (scene.layers.Contains(layerWnd.entity)) - { - layerWnd.SetVisible(true); - layerWnd.SetPos(pos); - layerWnd.SetSize(XMFLOAT2(width, layerWnd.GetScale().y)); - pos.y += layerWnd.GetSize().y; - pos.y += padding; - } - else - { - layerWnd.SetVisible(false); - } - - if (scene.transforms.Contains(transformWnd.entity)) - { - transformWnd.SetVisible(true); - transformWnd.SetPos(pos); - transformWnd.SetSize(XMFLOAT2(width, transformWnd.GetScale().y)); - pos.y += transformWnd.GetSize().y; - pos.y += padding; - } - else - { - transformWnd.SetVisible(false); - } - - if (scene.inverse_kinematics.Contains(ikWnd.entity)) - { - ikWnd.SetVisible(true); - ikWnd.SetPos(pos); - ikWnd.SetSize(XMFLOAT2(width, ikWnd.GetScale().y)); - pos.y += ikWnd.GetSize().y; - pos.y += padding; - } - else - { - ikWnd.SetVisible(false); - } - - if (scene.springs.Contains(springWnd.entity)) - { - springWnd.SetVisible(true); - springWnd.SetPos(pos); - springWnd.SetSize(XMFLOAT2(width, springWnd.GetScale().y)); - pos.y += springWnd.GetSize().y; - pos.y += padding; - } - else - { - springWnd.SetVisible(false); - } - - if (scene.forces.Contains(forceFieldWnd.entity)) - { - forceFieldWnd.SetVisible(true); - forceFieldWnd.SetPos(pos); - forceFieldWnd.SetSize(XMFLOAT2(width, forceFieldWnd.GetScale().y)); - pos.y += forceFieldWnd.GetSize().y; - pos.y += padding; - } - else - { - forceFieldWnd.SetVisible(false); - } - - if (scene.hairs.Contains(hairWnd.entity)) - { - hairWnd.SetVisible(true); - hairWnd.SetPos(pos); - hairWnd.SetSize(XMFLOAT2(width, hairWnd.GetScale().y)); - pos.y += hairWnd.GetSize().y; - pos.y += padding; - } - else - { - hairWnd.SetVisible(false); - } - - if (scene.emitters.Contains(emitterWnd.entity)) - { - emitterWnd.SetVisible(true); - emitterWnd.SetPos(pos); - emitterWnd.SetSize(XMFLOAT2(width, emitterWnd.GetScale().y)); - pos.y += emitterWnd.GetSize().y; - pos.y += padding; - } - else - { - emitterWnd.SetVisible(false); - } - - if (scene.animations.Contains(animWnd.entity)) - { - animWnd.SetVisible(true); - animWnd.SetPos(pos); - animWnd.SetSize(XMFLOAT2(width, animWnd.GetScale().y)); - pos.y += animWnd.GetSize().y; - pos.y += padding; - } - else - { - animWnd.SetVisible(false); - } - - if (scene.lights.Contains(lightWnd.entity)) - { - lightWnd.SetVisible(true); - lightWnd.SetPos(pos); - lightWnd.SetSize(XMFLOAT2(width, lightWnd.GetScale().y)); - pos.y += lightWnd.GetSize().y; - pos.y += padding; - } - else - { - lightWnd.SetVisible(false); - } - - if (scene.sounds.Contains(soundWnd.entity)) - { - soundWnd.SetVisible(true); - soundWnd.SetPos(pos); - soundWnd.SetSize(XMFLOAT2(width, soundWnd.GetScale().y)); - pos.y += soundWnd.GetSize().y; - pos.y += padding; - } - else - { - soundWnd.SetVisible(false); - } - - if (scene.decals.Contains(decalWnd.entity)) - { - decalWnd.SetVisible(true); - decalWnd.SetPos(pos); - decalWnd.SetSize(XMFLOAT2(width, decalWnd.GetScale().y)); - pos.y += decalWnd.GetSize().y; - pos.y += padding; - } - else - { - decalWnd.SetVisible(false); - } - - if (scene.probes.Contains(envProbeWnd.entity)) - { - envProbeWnd.SetVisible(true); - envProbeWnd.SetPos(pos); - envProbeWnd.SetSize(XMFLOAT2(width, envProbeWnd.GetScale().y)); - pos.y += envProbeWnd.GetSize().y; - pos.y += padding; - } - else - { - envProbeWnd.SetVisible(false); - } - - //if (scene.cameras.Contains(cameraWnd.entity)) - //{ - // cameraWnd.SetVisible(true); - // cameraWnd.SetPos(pos); - // cameraWnd.SetSize(XMFLOAT2(width, cameraWnd.GetScale().y)); - // pos.y += cameraWnd.GetSize().y; - // pos.y += padding; - //} - //else - //{ - // cameraWnd.SetVisible(false); - //} - - if (scene.materials.Contains(materialWnd.entity)) - { - materialWnd.SetVisible(true); - materialWnd.SetPos(pos); - materialWnd.SetSize(XMFLOAT2(width, materialWnd.GetScale().y)); - pos.y += materialWnd.GetSize().y; - pos.y += padding; - } - else - { - materialWnd.SetVisible(false); - } - - if (scene.meshes.Contains(meshWnd.entity)) - { - meshWnd.SetVisible(true); - meshWnd.SetPos(pos); - meshWnd.SetSize(XMFLOAT2(width, meshWnd.GetScale().y)); - pos.y += meshWnd.GetSize().y; - pos.y += padding; - } - else - { - meshWnd.SetVisible(false); - } - - if (scene.objects.Contains(objectWnd.entity)) - { - objectWnd.SetVisible(true); - objectWnd.SetPos(pos); - objectWnd.SetSize(XMFLOAT2(width, objectWnd.GetScale().y)); - pos.y += objectWnd.GetSize().y; - pos.y += padding; - } - else - { - objectWnd.SetVisible(false); - } - - if (scene.weathers.Contains(weatherWnd.entity)) - { - weatherWnd.SetVisible(true); - weatherWnd.SetPos(pos); - weatherWnd.SetSize(XMFLOAT2(width, weatherWnd.GetScale().y)); - pos.y += weatherWnd.GetSize().y; - pos.y += padding; - } - else - { - weatherWnd.SetVisible(false); - } - - componentWindow.Update(*this, 0); -} - void EditorComponent::ClearSelected() { translator.selected.clear(); @@ -3679,6 +2137,13 @@ void EditorComponent::ConsumeHistoryOperation(bool undo) { case HISTORYOP_TRANSLATOR: { + archive >> translator.isTranslator; + archive >> translator.isRotator; + archive >> translator.isScalator; + optionsWnd.isTranslatorCheckBox.SetCheck(translator.isTranslator); + optionsWnd.isRotatorCheckBox.SetCheck(translator.isRotator); + optionsWnd.isScalatorCheckBox.SetCheck(translator.isScalator); + EntitySerializer seri; wi::scene::TransformComponent start; wi::scene::TransformComponent end; @@ -3688,7 +2153,6 @@ void EditorComponent::ConsumeHistoryOperation(bool undo) wi::vector matrices_end; archive >> matrices_start; archive >> matrices_end; - translator.enabled = true; translator.PreTranslate(); if (undo) @@ -3892,7 +2356,7 @@ void EditorComponent::ConsumeHistoryOperation(bool undo) } break; case HISTORYOP_PAINTTOOL: - paintToolWnd.ConsumeHistoryOperation(archive, undo); + optionsWnd.paintToolWnd.ConsumeHistoryOperation(archive, undo); break; case HISTORYOP_NONE: default: @@ -3908,22 +2372,22 @@ void EditorComponent::ConsumeHistoryOperation(bool undo) scene.Update(0); } - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); } void EditorComponent::Save(const std::string& filename) { - const bool dump_to_header = saveModeComboBox.GetSelected() == 2; + const bool dump_to_header = optionsWnd.saveModeComboBox.GetSelected() == 2; wi::Archive archive = dump_to_header ? wi::Archive() : wi::Archive(filename, false); if (archive.IsOpen()) { Scene& scene = GetCurrentScene(); - wi::resourcemanager::Mode embed_mode = (wi::resourcemanager::Mode)saveModeComboBox.GetItemUserData(saveModeComboBox.GetSelected()); + wi::resourcemanager::Mode embed_mode = (wi::resourcemanager::Mode)optionsWnd.saveModeComboBox.GetItemUserData(optionsWnd.saveModeComboBox.GetSelected()); wi::resourcemanager::SetMode(embed_mode); - terragen.BakeVirtualTexturesToFiles(); + optionsWnd.terragen.BakeVirtualTexturesToFiles(); scene.Serialize(archive); if (dump_to_header) @@ -3945,7 +2409,7 @@ void EditorComponent::Save(const std::string& filename) } void EditorComponent::SaveAs() { - const bool dump_to_header = saveModeComboBox.GetSelected() == 2; + const bool dump_to_header = optionsWnd.saveModeComboBox.GetSelected() == 2; wi::helper::FileDialogParams params; params.type = wi::helper::FileDialogParams::SAVE; @@ -3966,3 +2430,4 @@ void EditorComponent::SaveAs() }); }); } + diff --git a/Editor/Editor.h b/Editor/Editor.h index 7e387f7fba..814ee4c4a1 100644 --- a/Editor/Editor.h +++ b/Editor/Editor.h @@ -1,31 +1,9 @@ #pragma once #include "WickedEngine.h" #include "Translator.h" -#include "TerrainGenerator.h" #include "wiScene_BindLua.h" - -#include "MaterialWindow.h" -#include "MaterialPickerWindow.h" -#include "PostprocessWindow.h" -#include "WeatherWindow.h" -#include "ObjectWindow.h" -#include "MeshWindow.h" -#include "CameraWindow.h" -#include "RendererWindow.h" -#include "EnvProbeWindow.h" -#include "DecalWindow.h" -#include "LightWindow.h" -#include "AnimationWindow.h" -#include "EmitterWindow.h" -#include "HairParticleWindow.h" -#include "ForceFieldWindow.h" -#include "SoundWindow.h" -#include "PaintToolWindow.h" -#include "SpringWindow.h" -#include "IKWindow.h" -#include "TransformWindow.h" -#include "LayerWindow.h" -#include "NameWindow.h" +#include "OptionsWindow.h" +#include "ComponentsWindow.h" #include "IconDefinitions.h" @@ -43,30 +21,6 @@ class Editor; class EditorComponent : public wi::RenderPath2D { public: - MaterialWindow materialWnd; - MaterialPickerWindow materialPickerWnd; - PostprocessWindow postprocessWnd; - WeatherWindow weatherWnd; - ObjectWindow objectWnd; - MeshWindow meshWnd; - CameraWindow cameraWnd; - RendererWindow rendererWnd; - EnvProbeWindow envProbeWnd; - DecalWindow decalWnd; - SoundWindow soundWnd; - LightWindow lightWnd; - AnimationWindow animWnd; - EmitterWindow emitterWnd; - HairParticleWindow hairWnd; - ForceFieldWindow forceFieldWnd; - PaintToolWindow paintToolWnd; - SpringWindow springWnd; - IKWindow ikWnd; - TransformWindow transformWnd; - LayerWindow layerWnd; - NameWindow nameWnd; - TerrainGenerator terragen; - Editor* main = nullptr; wi::gui::Button saveButton; @@ -77,51 +31,8 @@ class EditorComponent : public wi::RenderPath2D wi::gui::Button exitButton; wi::gui::Label aboutLabel; - wi::gui::Window optionsWnd; - wi::gui::CheckBox translatorCheckBox; - wi::gui::CheckBox isScalatorCheckBox; - wi::gui::CheckBox isRotatorCheckBox; - wi::gui::CheckBox isTranslatorCheckBox; - wi::gui::CheckBox profilerEnabledCheckBox; - wi::gui::CheckBox physicsEnabledCheckBox; - wi::gui::CheckBox cinemaModeCheckBox; - wi::gui::CheckBox versionCheckBox; - wi::gui::CheckBox fpsCheckBox; - wi::gui::CheckBox otherinfoCheckBox; - wi::gui::ComboBox themeCombo; - wi::gui::ComboBox renderPathComboBox; - wi::gui::ComboBox saveModeComboBox; - wi::gui::ComboBox sceneComboBox; - void RefreshOptionsWindow(); - - enum class Filter : uint64_t - { - Transform = 1 << 0, - Material = 1 << 1, - Mesh = 1 << 2, - Object = 1 << 3, - EnvironmentProbe = 1 << 4, - Decal = 1 << 5, - Sound = 1 << 6, - Weather = 1 << 7, - Light = 1 << 8, - - All = ~0ull, - } filter = Filter::All; - wi::gui::ComboBox newCombo; - wi::gui::ComboBox filterCombo; - wi::gui::TreeList entityTree; - wi::unordered_set entitytree_added_items; - wi::unordered_set entitytree_opened_items; - void PushToEntityTree(wi::ecs::Entity entity, int level); - void RefreshEntityTree(); - - wi::gui::ComboBox newComponentCombo; - wi::gui::Window componentWindow; - void RefreshComponentWindow(); - - wi::gui::Slider pathTraceTargetSlider; - wi::gui::Label pathTraceStatisticsLabel; + OptionsWindow optionsWnd; + ComponentsWindow componentsWnd; std::unique_ptr renderPath; enum RENDERPATH @@ -222,38 +133,38 @@ class EditorComponent : public wi::RenderPath2D this->renderPath->camera = &scenes[current_scene].get()->camera; wi::lua::scene::SetGlobalScene(this->renderPath->scene); wi::lua::scene::SetGlobalCamera(this->renderPath->camera); - RefreshEntityTree(); + optionsWnd.RefreshEntityTree(); RefreshSceneList(); } void RefreshSceneList() { - sceneComboBox.ClearItems(); + optionsWnd.sceneComboBox.ClearItems(); for (int i = 0; i < int(scenes.size()); ++i) { if (scenes[i]->path.empty()) { - sceneComboBox.AddItem("Untitled"); + optionsWnd.sceneComboBox.AddItem("Untitled"); } else { - sceneComboBox.AddItem(wi::helper::RemoveExtension(wi::helper::GetFileNameFromPath(scenes[i]->path))); + optionsWnd.sceneComboBox.AddItem(wi::helper::RemoveExtension(wi::helper::GetFileNameFromPath(scenes[i]->path))); } } - sceneComboBox.AddItem("[New]"); - sceneComboBox.SetSelectedWithoutCallback(current_scene); + optionsWnd.sceneComboBox.AddItem("[New]"); + optionsWnd.sceneComboBox.SetSelectedWithoutCallback(current_scene); std::string tooltip = "Choose a scene"; if (!GetCurrentEditorScene().path.empty()) { tooltip += "\nCurrent path: " + GetCurrentEditorScene().path; } - sceneComboBox.SetTooltip(tooltip); + optionsWnd.sceneComboBox.SetTooltip(tooltip); } void NewScene() { scenes.push_back(std::make_unique()); SetCurrentScene(int(scenes.size()) - 1); RefreshSceneList(); - cameraWnd.ResetCam(); + optionsWnd.cameraWnd.ResetCam(); } }; @@ -265,9 +176,3 @@ class Editor : public wi::Application void Initialize() override; }; - - -template<> -struct enable_bitmask_operators { - static const bool enable = true; -}; diff --git a/Editor/Editor_SOURCE.vcxitems b/Editor/Editor_SOURCE.vcxitems index e7d74d72b3..47f3be92fb 100644 --- a/Editor/Editor_SOURCE.vcxitems +++ b/Editor/Editor_SOURCE.vcxitems @@ -16,6 +16,7 @@ + @@ -92,6 +93,7 @@ + @@ -125,6 +127,7 @@ + @@ -145,6 +148,7 @@ + @@ -184,10 +188,6 @@ - - true - true - true true diff --git a/Editor/Editor_SOURCE.vcxitems.filters b/Editor/Editor_SOURCE.vcxitems.filters index fe8b93d73c..7c35abe422 100644 --- a/Editor/Editor_SOURCE.vcxitems.filters +++ b/Editor/Editor_SOURCE.vcxitems.filters @@ -75,6 +75,8 @@ + + @@ -114,6 +116,8 @@ + + @@ -128,9 +132,6 @@ - - {caf55722-5ff7-41fe-b606-f376e784aa2f} - {49c521c0-5dca-4fce-b8c5-a334d1746d98} @@ -139,9 +140,6 @@ - - images - terrain diff --git a/Editor/EmitterWindow.cpp b/Editor/EmitterWindow.cpp index 579ee14536..644b0e15b3 100644 --- a/Editor/EmitterWindow.cpp +++ b/Editor/EmitterWindow.cpp @@ -24,7 +24,7 @@ void EmitterWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 130; diff --git a/Editor/EnvProbeWindow.cpp b/Editor/EnvProbeWindow.cpp index a40054ed1f..47c692656e 100644 --- a/Editor/EnvProbeWindow.cpp +++ b/Editor/EnvProbeWindow.cpp @@ -23,7 +23,7 @@ void EnvProbeWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 5, y = 0, step = 35; diff --git a/Editor/ForceFieldWindow.cpp b/Editor/ForceFieldWindow.cpp index ac78e679fa..8c2856ebd1 100644 --- a/Editor/ForceFieldWindow.cpp +++ b/Editor/ForceFieldWindow.cpp @@ -23,7 +23,7 @@ void ForceFieldWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 60; diff --git a/Editor/HairParticleWindow.cpp b/Editor/HairParticleWindow.cpp index 875648ebfa..09dae9eb2a 100644 --- a/Editor/HairParticleWindow.cpp +++ b/Editor/HairParticleWindow.cpp @@ -22,7 +22,7 @@ void HairParticleWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 120; diff --git a/Editor/IKWindow.cpp b/Editor/IKWindow.cpp index 0e3ba0d66d..c30fe77bc9 100644 --- a/Editor/IKWindow.cpp +++ b/Editor/IKWindow.cpp @@ -23,7 +23,7 @@ void IKWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 120; diff --git a/Editor/IconDefinitions.h b/Editor/IconDefinitions.h index 11bd2d79bb..1cd34da420 100644 --- a/Editor/IconDefinitions.h +++ b/Editor/IconDefinitions.h @@ -32,3 +32,7 @@ #define ICON_BACKLOG ICON_FA_BOOK #define ICON_HELP ICON_FA_CIRCLE_QUESTION #define ICON_EXIT ICON_FA_CIRCLE_XMARK +#define ICON_SCALE ICON_FA_UP_RIGHT_AND_DOWN_LEFT_FROM_CENTER +#define ICON_ROTATE ICON_FA_ROTATE_RIGHT +#define ICON_TRANSLATE ICON_FA_UP_DOWN_LEFT_RIGHT +#define ICON_CHECK ICON_FA_CHECK diff --git a/Editor/LayerWindow.cpp b/Editor/LayerWindow.cpp index 777cfae9b5..fc8b75111e 100644 --- a/Editor/LayerWindow.cpp +++ b/Editor/LayerWindow.cpp @@ -23,7 +23,7 @@ void LayerWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 30; diff --git a/Editor/LightWindow.cpp b/Editor/LightWindow.cpp index 00804d335d..aba85bf2f1 100644 --- a/Editor/LightWindow.cpp +++ b/Editor/LightWindow.cpp @@ -27,7 +27,7 @@ void LightWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 130; diff --git a/Editor/MaterialPickerWindow.cpp b/Editor/MaterialPickerWindow.cpp index e7d5cfa6b7..3f299162c7 100644 --- a/Editor/MaterialPickerWindow.cpp +++ b/Editor/MaterialPickerWindow.cpp @@ -69,11 +69,13 @@ void MaterialPickerWindow::RecreateButtons() }); } - Update(); + ResizeLayout(); } -void MaterialPickerWindow::Update() +void MaterialPickerWindow::ResizeLayout() { + wi::gui::Window::ResizeLayout(); + if (editor == nullptr || IsCollapsed() || !IsVisible()) { return; @@ -160,6 +162,4 @@ void MaterialPickerWindow::Update() offset_y += preview_size + border; } } - - wi::gui::Window::Update(*editor, 0); } diff --git a/Editor/MaterialPickerWindow.h b/Editor/MaterialPickerWindow.h index d05f5e9f67..71d7edca47 100644 --- a/Editor/MaterialPickerWindow.h +++ b/Editor/MaterialPickerWindow.h @@ -14,7 +14,7 @@ class MaterialPickerWindow : public wi::gui::Window wi::gui::Slider zoomSlider; - void Update(); + void ResizeLayout() override; // Recreating buttons shouldn't be done every frame because interaction states need multi-frame execution void RecreateButtons(); diff --git a/Editor/MaterialWindow.cpp b/Editor/MaterialWindow.cpp index ba6964f5ec..aebe36b869 100644 --- a/Editor/MaterialWindow.cpp +++ b/Editor/MaterialWindow.cpp @@ -23,7 +23,7 @@ void MaterialWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float hei = 18; @@ -449,7 +449,7 @@ void MaterialWindow::Create(EditorComponent* _editor) { *name = args.sValue; - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); } }); AddWidget(&materialNameField); diff --git a/Editor/NameWindow.cpp b/Editor/NameWindow.cpp index e54ccaab36..a1e4f136e3 100644 --- a/Editor/NameWindow.cpp +++ b/Editor/NameWindow.cpp @@ -23,7 +23,7 @@ void NameWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 60; @@ -44,7 +44,7 @@ void NameWindow::Create(EditorComponent* _editor) } name->name = args.sValue; - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); AddWidget(&nameInput); diff --git a/Editor/OptionsWindow.cpp b/Editor/OptionsWindow.cpp new file mode 100644 index 0000000000..188b71c59f --- /dev/null +++ b/Editor/OptionsWindow.cpp @@ -0,0 +1,1057 @@ +#include "stdafx.h" +#include "OptionsWindow.h" +#include "Editor.h" + +using namespace wi::graphics; +using namespace wi::ecs; +using namespace wi::scene; + +void OptionsWindow::Create(EditorComponent* _editor) +{ + editor = _editor; + + wi::gui::Window::Create("Options", wi::gui::Window::WindowControls::RESIZE_TOPRIGHT); + SetShadowRadius(2); + + isTranslatorCheckBox.Create(ICON_TRANSLATE " "); + isRotatorCheckBox.Create(ICON_ROTATE " "); + isScalatorCheckBox.Create(ICON_SCALE " "); + { + isScalatorCheckBox.SetTooltip("Scale"); + isScalatorCheckBox.OnClick([&](wi::gui::EventArgs args) { + editor->translator.isScalator = args.bValue; + editor->translator.isTranslator = false; + editor->translator.isRotator = false; + isTranslatorCheckBox.SetCheck(false); + isRotatorCheckBox.SetCheck(false); + }); + isScalatorCheckBox.SetCheck(editor->translator.isScalator); + AddWidget(&isScalatorCheckBox); + + isRotatorCheckBox.SetTooltip("Rotate"); + isRotatorCheckBox.OnClick([&](wi::gui::EventArgs args) { + editor->translator.isRotator = args.bValue; + editor->translator.isScalator = false; + editor->translator.isTranslator = false; + isScalatorCheckBox.SetCheck(false); + isTranslatorCheckBox.SetCheck(false); + }); + isRotatorCheckBox.SetCheck(editor->translator.isRotator); + AddWidget(&isRotatorCheckBox); + + isTranslatorCheckBox.SetTooltip("Translate/Move (Ctrl + T)"); + isTranslatorCheckBox.OnClick([&](wi::gui::EventArgs args) { + editor->translator.isTranslator = args.bValue; + editor->translator.isScalator = false; + editor->translator.isRotator = false; + isScalatorCheckBox.SetCheck(false); + isRotatorCheckBox.SetCheck(false); + }); + isTranslatorCheckBox.SetCheck(editor->translator.isTranslator); + AddWidget(&isTranslatorCheckBox); + } + + + profilerEnabledCheckBox.Create("Profiler: "); + profilerEnabledCheckBox.SetTooltip("Toggle Profiler On/Off"); + profilerEnabledCheckBox.OnClick([&](wi::gui::EventArgs args) { + wi::profiler::SetEnabled(args.bValue); + }); + profilerEnabledCheckBox.SetCheck(wi::profiler::IsEnabled()); + AddWidget(&profilerEnabledCheckBox); + + physicsEnabledCheckBox.Create("Physics: "); + physicsEnabledCheckBox.SetTooltip("Toggle Physics Simulation On/Off"); + physicsEnabledCheckBox.OnClick([&](wi::gui::EventArgs args) { + wi::physics::SetSimulationEnabled(args.bValue); + }); + physicsEnabledCheckBox.SetCheck(wi::physics::IsSimulationEnabled()); + AddWidget(&physicsEnabledCheckBox); + + cinemaModeCheckBox.Create("Cinema Mode: "); + cinemaModeCheckBox.SetTooltip("Toggle Cinema Mode (All HUD disabled). Press ESC to exit."); + cinemaModeCheckBox.OnClick([&](wi::gui::EventArgs args) { + if (editor->renderPath != nullptr) + { + editor->renderPath->GetGUI().SetVisible(false); + } + editor->GetGUI().SetVisible(false); + wi::profiler::SetEnabled(false); + }); + AddWidget(&cinemaModeCheckBox); + + versionCheckBox.Create("Version: "); + versionCheckBox.SetTooltip("Toggle the engine version display text in top left corner."); + versionCheckBox.OnClick([&](wi::gui::EventArgs args) { + editor->main->infoDisplay.watermark = args.bValue; + }); + AddWidget(&versionCheckBox); + versionCheckBox.SetCheck(editor->main->infoDisplay.watermark); + + fpsCheckBox.Create("FPS: "); + fpsCheckBox.SetTooltip("Toggle the FPS display text in top left corner."); + fpsCheckBox.OnClick([&](wi::gui::EventArgs args) { + editor->main->infoDisplay.fpsinfo = args.bValue; + }); + AddWidget(&fpsCheckBox); + fpsCheckBox.SetCheck(editor->main->infoDisplay.fpsinfo); + + otherinfoCheckBox.Create("Advanced: "); + otherinfoCheckBox.SetTooltip("Toggle advanced data in the info display text in top left corner."); + otherinfoCheckBox.OnClick([&](wi::gui::EventArgs args) { + editor->main->infoDisplay.heap_allocation_counter = args.bValue; + editor->main->infoDisplay.vram_usage = args.bValue; + editor->main->infoDisplay.colorspace = args.bValue; + editor->main->infoDisplay.resolution = args.bValue; + editor->main->infoDisplay.logical_size = args.bValue; + editor->main->infoDisplay.pipeline_count = args.bValue; + }); + AddWidget(&otherinfoCheckBox); + otherinfoCheckBox.SetCheck(editor->main->infoDisplay.heap_allocation_counter); + + + + + newCombo.Create("New: "); + newCombo.selected_font.anim.typewriter.looped = true; + newCombo.selected_font.anim.typewriter.time = 2; + newCombo.selected_font.anim.typewriter.character_start = 1; + newCombo.AddItem("...", ~0ull); + newCombo.AddItem("Transform", 0); + newCombo.AddItem("Material", 1); + newCombo.AddItem("Point Light", 2); + newCombo.AddItem("Spot Light", 3); + newCombo.AddItem("Directional Light", 4); + newCombo.AddItem("Environment Probe", 5); + newCombo.AddItem("Force", 6); + newCombo.AddItem("Decal", 7); + newCombo.AddItem("Sound", 8); + newCombo.AddItem("Weather", 9); + newCombo.AddItem("Emitter", 10); + newCombo.AddItem("HairParticle", 11); + newCombo.AddItem("Camera", 12); + newCombo.AddItem("Cube Object", 13); + newCombo.AddItem("Plane Object", 14); + newCombo.OnSelect([&](wi::gui::EventArgs args) { + newCombo.SetSelectedWithoutCallback(0); + const EditorComponent::EditorScene& editorscene = editor->GetCurrentEditorScene(); + const CameraComponent& camera = editorscene.camera; + Scene& scene = editor->GetCurrentScene(); + PickResult pick; + + XMFLOAT3 in_front_of_camera; + XMStoreFloat3(&in_front_of_camera, XMVectorAdd(camera.GetEye(), camera.GetAt() * 4)); + + switch (args.userdata) + { + case 0: + pick.entity = scene.Entity_CreateTransform("transform"); + break; + case 1: + pick.entity = scene.Entity_CreateMaterial("material"); + break; + case 2: + pick.entity = scene.Entity_CreateLight("pointlight", in_front_of_camera, XMFLOAT3(1, 1, 1), 2, 60); + scene.lights.GetComponent(pick.entity)->type = LightComponent::POINT; + scene.lights.GetComponent(pick.entity)->intensity = 20; + break; + case 3: + pick.entity = scene.Entity_CreateLight("spotlight", in_front_of_camera, XMFLOAT3(1, 1, 1), 2, 60); + scene.lights.GetComponent(pick.entity)->type = LightComponent::SPOT; + scene.lights.GetComponent(pick.entity)->intensity = 100; + break; + case 4: + pick.entity = scene.Entity_CreateLight("dirlight", XMFLOAT3(0, 3, 0), XMFLOAT3(1, 1, 1), 2, 60); + scene.lights.GetComponent(pick.entity)->type = LightComponent::DIRECTIONAL; + scene.lights.GetComponent(pick.entity)->intensity = 10; + break; + case 5: + pick.entity = scene.Entity_CreateEnvironmentProbe("envprobe", in_front_of_camera); + break; + case 6: + pick.entity = scene.Entity_CreateForce("force"); + break; + case 7: + pick.entity = scene.Entity_CreateDecal("decal", "images/logo_small.png"); + scene.transforms.GetComponent(pick.entity)->RotateRollPitchYaw(XMFLOAT3(XM_PIDIV2, 0, 0)); + break; + case 8: + { + wi::helper::FileDialogParams params; + params.type = wi::helper::FileDialogParams::OPEN; + params.description = "Sound"; + params.extensions = wi::resourcemanager::GetSupportedSoundExtensions(); + wi::helper::FileDialog(params, [=](std::string fileName) { + wi::eventhandler::Subscribe_Once(wi::eventhandler::EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) { + Entity entity = editor->GetCurrentScene().Entity_CreateSound(wi::helper::GetFileNameFromPath(fileName), fileName); + + wi::Archive& archive = editor->AdvanceHistory(); + archive << EditorComponent::HISTORYOP_ADD; + editor->RecordSelection(archive); + + editor->ClearSelected(); + editor->AddSelected(entity); + + editor->RecordSelection(archive); + editor->RecordEntity(archive, entity); + + RefreshEntityTree(); + editor->componentsWnd.soundWnd.SetEntity(entity); + }); + }); + return; + } + break; + case 9: + pick.entity = CreateEntity(); + scene.weathers.Create(pick.entity); + scene.names.Create(pick.entity) = "weather"; + break; + case 10: + pick.entity = scene.Entity_CreateEmitter("emitter"); + break; + case 11: + pick.entity = scene.Entity_CreateHair("hair"); + break; + case 12: + pick.entity = scene.Entity_CreateCamera("camera", camera.width, camera.height); + *scene.cameras.GetComponent(pick.entity) = camera; + *scene.transforms.GetComponent(pick.entity) = editorscene.camera_transform; + break; + case 13: + pick.entity = scene.Entity_CreateCube("cube"); + pick.subsetIndex = 0; + break; + case 14: + pick.entity = scene.Entity_CreatePlane("plane"); + pick.subsetIndex = 0; + break; + default: + break; + } + if (pick.entity != INVALID_ENTITY) + { + wi::Archive& archive = editor->AdvanceHistory(); + archive << EditorComponent::HISTORYOP_ADD; + editor->RecordSelection(archive); + + editor->ClearSelected(); + editor->AddSelected(pick); + + editor->RecordSelection(archive); + editor->RecordEntity(archive, pick.entity); + } + RefreshEntityTree(); + }); + newCombo.SetEnabled(true); + newCombo.SetTooltip("Create new entity"); + AddWidget(&newCombo); + + + + + + filterCombo.Create("Filter: "); + filterCombo.AddItem("All ", (uint64_t)Filter::All); + filterCombo.AddItem("Transform " ICON_TRANSFORM, (uint64_t)Filter::Transform); + filterCombo.AddItem("Material " ICON_MATERIAL, (uint64_t)Filter::Material); + filterCombo.AddItem("Mesh " ICON_MESH, (uint64_t)Filter::Mesh); + filterCombo.AddItem("Object " ICON_OBJECT, (uint64_t)Filter::Object); + filterCombo.AddItem("Environment Probe " ICON_ENVIRONMENTPROBE, (uint64_t)Filter::EnvironmentProbe); + filterCombo.AddItem("Decal " ICON_DECAL, (uint64_t)Filter::Decal); + filterCombo.AddItem("Sound " ICON_SOUND, (uint64_t)Filter::Sound); + filterCombo.AddItem("Weather " ICON_WEATHER, (uint64_t)Filter::Weather); + filterCombo.AddItem("Light " ICON_POINTLIGHT, (uint64_t)Filter::Light); + filterCombo.SetTooltip("Apply filtering to the Entities"); + filterCombo.OnSelect([&](wi::gui::EventArgs args) { + filter = (Filter)args.userdata; + RefreshEntityTree(); + }); + AddWidget(&filterCombo); + + + entityTree.Create("Entities"); + entityTree.SetSize(XMFLOAT2(300, 300)); + entityTree.OnSelect([this](wi::gui::EventArgs args) { + + if (args.iValue < 0) + return; + + wi::Archive& archive = editor->AdvanceHistory(); + archive << EditorComponent::HISTORYOP_SELECTION; + // record PREVIOUS selection state... + editor->RecordSelection(archive); + + editor->translator.selected.clear(); + + for (int i = 0; i < entityTree.GetItemCount(); ++i) + { + const wi::gui::TreeList::Item& item = entityTree.GetItem(i); + if (item.selected) + { + wi::scene::PickResult pick; + pick.entity = (Entity)item.userdata; + editor->AddSelected(pick); + } + } + + // record NEW selection state... + editor->RecordSelection(archive); + + }); + AddWidget(&entityTree); + + + renderPathComboBox.Create("Render Path: "); + renderPathComboBox.AddItem("Default"); + renderPathComboBox.AddItem("Path Tracing"); + renderPathComboBox.OnSelect([&](wi::gui::EventArgs args) { + editor->ChangeRenderPath((EditorComponent::RENDERPATH)args.iValue); + }); + renderPathComboBox.SetSelected(EditorComponent::RENDERPATH_DEFAULT); + renderPathComboBox.SetEnabled(true); + renderPathComboBox.SetTooltip("Choose a render path..."); + AddWidget(&renderPathComboBox); + + + pathTraceTargetSlider.Create(1, 2048, 1024, 2047, "Sample count: "); + pathTraceTargetSlider.SetSize(XMFLOAT2(200, 18)); + pathTraceTargetSlider.SetTooltip("The path tracing will perform this many samples per pixel."); + AddWidget(&pathTraceTargetSlider); + pathTraceTargetSlider.SetVisible(false); + + pathTraceStatisticsLabel.Create("Path tracing statistics"); + pathTraceStatisticsLabel.SetSize(XMFLOAT2(240, 60)); + AddWidget(&pathTraceStatisticsLabel); + pathTraceStatisticsLabel.SetVisible(false); + + // Renderer and Postprocess windows are created in ChangeRenderPath(), because they deal with + // RenderPath related information as well, so it's easier to reset them when changing + + + + + + cameraWnd.Create(editor); + cameraWnd.ResetCam(); + cameraWnd.SetCollapsed(true); + AddWidget(&cameraWnd); + + paintToolWnd.Create(editor); + paintToolWnd.SetCollapsed(true); + AddWidget(&paintToolWnd); + + materialPickerWnd.Create(editor); + AddWidget(&materialPickerWnd); + + + sceneComboBox.Create("Scene: "); + sceneComboBox.OnSelect([&](wi::gui::EventArgs args) { + if (args.iValue >= int(editor->scenes.size())) + { + editor->NewScene(); + } + editor->SetCurrentScene(args.iValue); + }); + sceneComboBox.SetEnabled(true); + sceneComboBox.SetColor(wi::Color(50, 100, 255, 180), wi::gui::IDLE); + sceneComboBox.SetColor(wi::Color(120, 160, 255, 255), wi::gui::FOCUS); + AddWidget(&sceneComboBox); + + + saveModeComboBox.Create("Save Mode: "); + saveModeComboBox.AddItem("Embed resources", (uint64_t)wi::resourcemanager::Mode::ALLOW_RETAIN_FILEDATA); + saveModeComboBox.AddItem("No embedding", (uint64_t)wi::resourcemanager::Mode::ALLOW_RETAIN_FILEDATA_BUT_DISABLE_EMBEDDING); + saveModeComboBox.AddItem("Dump to header", (uint64_t)wi::resourcemanager::Mode::ALLOW_RETAIN_FILEDATA); + saveModeComboBox.SetTooltip("Choose whether to embed resources (textures, sounds...) in the scene file when saving, or keep them as separate files.\nThe Dump to header option will use embedding and create a C++ header file with byte data of the scene to be used with wi::Archive serialization."); + saveModeComboBox.SetColor(wi::Color(50, 180, 100, 180), wi::gui::IDLE); + saveModeComboBox.SetColor(wi::Color(50, 220, 140, 255), wi::gui::FOCUS); + AddWidget(&saveModeComboBox); + + + + terragen.Create(); + terragen.OnCollapse([&](wi::gui::EventArgs args) { + + if (terragen.terrainEntity == INVALID_ENTITY) + { + // Customize terrain generator before it's initialized: + terragen.material_Base.SetRoughness(1); + terragen.material_Base.SetReflectance(0.005f); + terragen.material_Slope.SetRoughness(0.1f); + terragen.material_LowAltitude.SetRoughness(1); + terragen.material_HighAltitude.SetRoughness(1); + terragen.material_Base.textures[MaterialComponent::BASECOLORMAP].name = "terrain/base.jpg"; + terragen.material_Base.textures[MaterialComponent::NORMALMAP].name = "terrain/base_nor.jpg"; + terragen.material_Slope.textures[MaterialComponent::BASECOLORMAP].name = "terrain/slope.jpg"; + terragen.material_Slope.textures[MaterialComponent::NORMALMAP].name = "terrain/slope_nor.jpg"; + terragen.material_LowAltitude.textures[MaterialComponent::BASECOLORMAP].name = "terrain/low_altitude.jpg"; + terragen.material_LowAltitude.textures[MaterialComponent::NORMALMAP].name = "terrain/low_altitude_nor.jpg"; + terragen.material_HighAltitude.textures[MaterialComponent::BASECOLORMAP].name = "terrain/high_altitude.jpg"; + terragen.material_HighAltitude.textures[MaterialComponent::NORMALMAP].name = "terrain/high_altitude_nor.jpg"; + terragen.material_GrassParticle.textures[MaterialComponent::BASECOLORMAP].name = "terrain/grassparticle.png"; + terragen.material_GrassParticle.alphaRef = 0.75f; + terragen.grass_properties.length = 5; + terragen.grass_properties.frameCount = 2; + terragen.grass_properties.framesX = 1; + terragen.grass_properties.framesY = 2; + terragen.grass_properties.frameStart = 0; + terragen.material_Base.CreateRenderData(); + terragen.material_Slope.CreateRenderData(); + terragen.material_LowAltitude.CreateRenderData(); + terragen.material_HighAltitude.CreateRenderData(); + terragen.material_GrassParticle.CreateRenderData(); + // Tree prop: + { + Scene props_scene; + wi::scene::LoadModel(props_scene, "terrain/tree.wiscene"); + TerrainGenerator::Prop& prop = terragen.props.emplace_back(); + prop.name = "tree"; + prop.min_count_per_chunk = 0; + prop.max_count_per_chunk = 10; + prop.region = 0; + prop.region_power = 2; + prop.noise_frequency = 0.1f; + prop.noise_power = 1; + prop.threshold = 0.4f; + prop.min_size = 2.0f; + prop.max_size = 8.0f; + prop.min_y_offset = -0.5f; + prop.max_y_offset = -0.5f; + prop.mesh_entity = props_scene.Entity_FindByName("tree_mesh"); + props_scene.impostors.Create(prop.mesh_entity).swapInDistance = 200; + Entity object_entity = props_scene.Entity_FindByName("tree_object"); + ObjectComponent* object = props_scene.objects.GetComponent(object_entity); + if (object != nullptr) + { + prop.object = *object; + prop.object.lod_distance_multiplier = 0.05f; + //prop.object.cascadeMask = 1; // they won't be rendered into the largest shadow cascade + } + props_scene.Entity_Remove(object_entity); // The objects will be placed by terrain generator, we don't need the default object that the scene has anymore + editor->GetCurrentScene().Merge(props_scene); + } + // Rock prop: + { + Scene props_scene; + wi::scene::LoadModel(props_scene, "terrain/rock.wiscene"); + TerrainGenerator::Prop& prop = terragen.props.emplace_back(); + prop.name = "rock"; + prop.min_count_per_chunk = 0; + prop.max_count_per_chunk = 8; + prop.region = 0; + prop.region_power = 1; + prop.noise_frequency = 0.005f; + prop.noise_power = 2; + prop.threshold = 0.5f; + prop.min_size = 0.02f; + prop.max_size = 4.0f; + prop.min_y_offset = -2; + prop.max_y_offset = 0.5f; + prop.mesh_entity = props_scene.Entity_FindByName("rock_mesh"); + Entity object_entity = props_scene.Entity_FindByName("rock_object"); + ObjectComponent* object = props_scene.objects.GetComponent(object_entity); + if (object != nullptr) + { + prop.object = *object; + prop.object.lod_distance_multiplier = 0.02f; + prop.object.cascadeMask = 1; // they won't be rendered into the largest shadow cascade + prop.object.draw_distance = 400; + } + props_scene.Entity_Remove(object_entity); // The objects will be placed by terrain generator, we don't need the default object that the scene has anymore + editor->GetCurrentScene().Merge(props_scene); + } + // Bush prop: + { + Scene props_scene; + wi::scene::LoadModel(props_scene, "terrain/bush.wiscene"); + TerrainGenerator::Prop& prop = terragen.props.emplace_back(); + prop.name = "bush"; + prop.min_count_per_chunk = 0; + prop.max_count_per_chunk = 10; + prop.region = 0; + prop.region_power = 4; + prop.noise_frequency = 0.01f; + prop.noise_power = 4; + prop.threshold = 0.1f; + prop.min_size = 0.1f; + prop.max_size = 1.5f; + prop.min_y_offset = -1; + prop.max_y_offset = 0; + prop.mesh_entity = props_scene.Entity_FindByName("bush_mesh"); + Entity object_entity = props_scene.Entity_FindByName("bush_object"); + ObjectComponent* object = props_scene.objects.GetComponent(object_entity); + if (object != nullptr) + { + prop.object = *object; + prop.object.lod_distance_multiplier = 0.05f; + prop.object.cascadeMask = 1; // they won't be rendered into the largest shadow cascade + prop.object.draw_distance = 200; + } + props_scene.Entity_Remove(object_entity); // The objects will be placed by terrain generator, we don't need the default object that the scene has anymore + editor->GetCurrentScene().Merge(props_scene); + } + + terragen.init(); + RefreshEntityTree(); + } + + if (!terragen.IsCollapsed() && !editor->GetCurrentScene().transforms.Contains(terragen.terrainEntity)) + { + terragen.Generation_Restart(); + RefreshEntityTree(); + } + + }); + AddWidget(&terragen); + + + + enum class Theme + { + Dark, + Bright, + Soft, + Hacking, + }; + + themeCombo.Create("Theme: "); + themeCombo.SetTooltip("Choose a color theme..."); + themeCombo.AddItem("Dark", (uint64_t)Theme::Dark); + themeCombo.AddItem("Bright", (uint64_t)Theme::Bright); + themeCombo.AddItem("Soft", (uint64_t)Theme::Soft); + themeCombo.AddItem("Hacking", (uint64_t)Theme::Hacking); + themeCombo.OnSelect([=](wi::gui::EventArgs args) { + + // Dark theme defaults: + wi::Color theme_color_idle = wi::Color(30, 40, 60, 200); + wi::Color theme_color_focus = wi::Color(70, 150, 170, 220); + wi::Color dark_point = wi::Color(10, 10, 20, 220); // darker elements will lerp towards this + wi::gui::Theme theme; + theme.image.background = true; + theme.image.blendFlag = wi::enums::BLENDMODE_OPAQUE; + theme.font.color = wi::Color(130, 210, 220, 255); + theme.shadow_color = wi::Color(80, 140, 180, 100); + + switch ((Theme)args.userdata) + { + default: + break; + case Theme::Bright: + theme_color_idle = wi::Color(200, 210, 220, 230); + theme_color_focus = wi::Color(210, 230, 255, 250); + dark_point = wi::Color(180, 180, 190, 230); + theme.shadow_color = wi::Color::Shadow(); + theme.font.color = wi::Color(50, 50, 80, 255); + break; + case Theme::Soft: + theme_color_idle = wi::Color(200, 180, 190, 190); + theme_color_focus = wi::Color(240, 190, 200, 230); + dark_point = wi::Color(100, 80, 90, 220); + theme.shadow_color = wi::Color(240, 190, 200, 100); + theme.font.color = wi::Color(255, 230, 240, 255); + break; + case Theme::Hacking: + theme_color_idle = wi::Color(0, 0, 0, 255); + theme_color_focus = wi::Color(10, 230, 30, 255); + dark_point = wi::Color(0, 0, 0, 255); + theme.shadow_color = wi::Color(0, 250, 0, 200); + theme.font.color = wi::Color(100, 250, 100, 255); + theme.font.shadow_color = wi::Color::Shadow(); + break; + } + + theme.tooltipImage = theme.image; + theme.tooltipImage.color = theme_color_idle; + theme.tooltipFont = theme.font; + theme.tooltip_shadow_color = theme.shadow_color; + + wi::Color theme_color_active = wi::Color::White(); + wi::Color theme_color_deactivating = wi::Color::lerp(theme_color_focus, wi::Color::White(), 0.5f); + + // Customize whole gui: + wi::gui::GUI& gui = editor->GetGUI(); + gui.SetTheme(theme); // set basic params to all states + + // customize colors for specific states: + gui.SetColor(theme_color_idle, wi::gui::IDLE); + gui.SetColor(theme_color_focus, wi::gui::FOCUS); + gui.SetColor(theme_color_active, wi::gui::ACTIVE); + gui.SetColor(theme_color_deactivating, wi::gui::DEACTIVATING); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.7f), wi::gui::WIDGET_ID_WINDOW_BASE); + + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.75f), wi::gui::WIDGET_ID_SLIDER_BASE_IDLE); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SLIDER_BASE_FOCUS); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.85f), wi::gui::WIDGET_ID_SLIDER_BASE_ACTIVE); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SLIDER_BASE_DEACTIVATING); + gui.SetColor(theme_color_idle, wi::gui::WIDGET_ID_SLIDER_KNOB_IDLE); + gui.SetColor(theme_color_focus, wi::gui::WIDGET_ID_SLIDER_KNOB_FOCUS); + gui.SetColor(theme_color_active, wi::gui::WIDGET_ID_SLIDER_KNOB_ACTIVE); + gui.SetColor(theme_color_deactivating, wi::gui::WIDGET_ID_SLIDER_KNOB_DEACTIVATING); + + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.75f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_IDLE); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_FOCUS); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.85f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_ACTIVE); + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_SCROLLBAR_BASE_DEACTIVATING); + gui.SetColor(theme_color_idle, wi::gui::WIDGET_ID_SCROLLBAR_KNOB_INACTIVE); + gui.SetColor(theme_color_focus, wi::gui::WIDGET_ID_SCROLLBAR_KNOB_HOVER); + gui.SetColor(theme_color_active, wi::gui::WIDGET_ID_SCROLLBAR_KNOB_GRABBED); + + gui.SetColor(wi::Color::lerp(theme_color_idle, dark_point, 0.8f), wi::gui::WIDGET_ID_COMBO_DROPDOWN); + + if ((Theme)args.userdata == Theme::Hacking) + { + gui.SetColor(wi::Color(0, 200, 0, 255), wi::gui::WIDGET_ID_SLIDER_KNOB_IDLE); + gui.SetColor(wi::Color(0, 200, 0, 255), wi::gui::WIDGET_ID_SCROLLBAR_KNOB_INACTIVE); + } + + // customize individual elements: + editor->componentsWnd.materialWnd.textureSlotButton.SetColor(wi::Color::White(), wi::gui::IDLE); + paintToolWnd.brushTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE); + paintToolWnd.revealTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE); + editor->aboutLabel.sprites[wi::gui::FOCUS] = editor->aboutLabel.sprites[wi::gui::IDLE]; + + }); + AddWidget(&themeCombo); + + + SetSize(XMFLOAT2(340, 500)); +} +void OptionsWindow::Update(float dt) +{ + cameraWnd.Update(); + paintToolWnd.Update(dt); +} + +void OptionsWindow::ResizeLayout() +{ + wi::gui::Window::ResizeLayout(); + const float padding = 4; + XMFLOAT2 pos = XMFLOAT2(padding, padding); + const float width = GetWidgetAreaSize().x - padding * 2; + float x_off = 100; + + isScalatorCheckBox.SetPos(XMFLOAT2(pos.x + width - isScalatorCheckBox.GetSize().x, pos.y)); + isRotatorCheckBox.SetPos(XMFLOAT2(isScalatorCheckBox.GetPos().x - isRotatorCheckBox.GetSize().x - 80, pos.y)); + isTranslatorCheckBox.SetPos(XMFLOAT2(isRotatorCheckBox.GetPos().x - isTranslatorCheckBox.GetSize().x - 70, pos.y)); + pos.y += isTranslatorCheckBox.GetSize().y; + pos.y += padding; + + otherinfoCheckBox.SetPos(XMFLOAT2(pos.x + width - otherinfoCheckBox.GetSize().x, pos.y)); + fpsCheckBox.SetPos(XMFLOAT2(otherinfoCheckBox.GetPos().x - fpsCheckBox.GetSize().x - 80, pos.y)); + versionCheckBox.SetPos(XMFLOAT2(fpsCheckBox.GetPos().x - versionCheckBox.GetSize().x - 70, pos.y)); + pos.y += versionCheckBox.GetSize().y; + pos.y += padding; + + physicsEnabledCheckBox.SetPos(XMFLOAT2(pos.x + width - physicsEnabledCheckBox.GetSize().x, pos.y)); + profilerEnabledCheckBox.SetPos(XMFLOAT2(physicsEnabledCheckBox.GetPos().x - profilerEnabledCheckBox.GetSize().x - 80, pos.y)); + cinemaModeCheckBox.SetPos(XMFLOAT2(profilerEnabledCheckBox.GetPos().x - cinemaModeCheckBox.GetSize().x - 70, pos.y)); + pos.y += cinemaModeCheckBox.GetSize().y; + pos.y += padding; + + sceneComboBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + sceneComboBox.SetSize(XMFLOAT2(width - x_off - sceneComboBox.GetScale().y - 1, sceneComboBox.GetScale().y)); + pos.y += sceneComboBox.GetSize().y; + pos.y += padding; + + saveModeComboBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + saveModeComboBox.SetSize(XMFLOAT2(width - x_off - saveModeComboBox.GetScale().y - 1, saveModeComboBox.GetScale().y)); + pos.y += saveModeComboBox.GetSize().y; + pos.y += padding; + + themeCombo.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + themeCombo.SetSize(XMFLOAT2(width - x_off - themeCombo.GetScale().y - 1, themeCombo.GetScale().y)); + pos.y += themeCombo.GetSize().y; + pos.y += padding; + + renderPathComboBox.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + renderPathComboBox.SetSize(XMFLOAT2(width - x_off - renderPathComboBox.GetScale().y - 1, renderPathComboBox.GetScale().y)); + pos.y += renderPathComboBox.GetSize().y; + pos.y += padding; + + if (pathTraceTargetSlider.IsVisible()) + { + pathTraceTargetSlider.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + pathTraceTargetSlider.SetSize(XMFLOAT2(width - x_off - pathTraceTargetSlider.GetScale().y * 2 - 1, pathTraceTargetSlider.GetScale().y)); + pos.y += pathTraceTargetSlider.GetSize().y; + pos.y += padding; + } + + if (pathTraceStatisticsLabel.IsVisible()) + { + pathTraceStatisticsLabel.SetPos(pos); + pathTraceStatisticsLabel.SetSize(XMFLOAT2(width, pathTraceStatisticsLabel.GetScale().y)); + pos.y += pathTraceStatisticsLabel.GetSize().y; + pos.y += padding; + } + + rendererWnd.SetPos(pos); + rendererWnd.SetSize(XMFLOAT2(width, rendererWnd.GetScale().y)); + pos.y += rendererWnd.GetSize().y; + pos.y += padding; + + postprocessWnd.SetPos(pos); + postprocessWnd.SetSize(XMFLOAT2(width, postprocessWnd.GetScale().y)); + pos.y += postprocessWnd.GetSize().y; + pos.y += padding; + + cameraWnd.SetPos(pos); + cameraWnd.SetSize(XMFLOAT2(width, cameraWnd.GetScale().y)); + pos.y += cameraWnd.GetSize().y; + pos.y += padding; + + materialPickerWnd.SetPos(pos); + materialPickerWnd.SetSize(XMFLOAT2(width, materialPickerWnd.GetScale().y)); + pos.y += materialPickerWnd.GetSize().y; + pos.y += padding; + + paintToolWnd.SetPos(pos); + paintToolWnd.SetSize(XMFLOAT2(width, paintToolWnd.GetScale().y)); + pos.y += paintToolWnd.GetSize().y; + pos.y += padding; + + terragen.SetPos(pos); + terragen.SetSize(XMFLOAT2(width, terragen.GetScale().y)); + pos.y += terragen.GetSize().y; + pos.y += padding; + + x_off = 45; + + newCombo.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + newCombo.SetSize(XMFLOAT2(width - x_off - newCombo.GetScale().y - 1, newCombo.GetScale().y)); + pos.y += newCombo.GetSize().y; + pos.y += padding; + + filterCombo.SetPos(XMFLOAT2(pos.x + x_off, pos.y)); + filterCombo.SetSize(XMFLOAT2(width - x_off - filterCombo.GetScale().y - 1, filterCombo.GetScale().y)); + pos.y += filterCombo.GetSize().y; + pos.y += padding; + + entityTree.SetPos(pos); + entityTree.SetSize(XMFLOAT2(width, std::max(editor->GetLogicalHeight() * 0.75f, editor->GetLogicalHeight() - pos.y))); + pos.y += entityTree.GetSize().y; + pos.y += padding; +} + + +void OptionsWindow::PushToEntityTree(wi::ecs::Entity entity, int level) +{ + if (entitytree_added_items.count(entity) != 0) + { + return; + } + const Scene& scene = editor->GetCurrentScene(); + + wi::gui::TreeList::Item item; + item.level = level; + item.userdata = entity; + item.selected = editor->IsSelected(entity); + item.open = entitytree_opened_items.count(entity) != 0; + + // Icons: + if (scene.layers.Contains(entity)) + { + item.name += ICON_LAYER " "; + } + if (scene.transforms.Contains(entity)) + { + item.name += ICON_TRANSFORM " "; + } + if (scene.meshes.Contains(entity)) + { + item.name += ICON_MESH " "; + } + if (scene.objects.Contains(entity)) + { + item.name += ICON_OBJECT " "; + } + if (scene.rigidbodies.Contains(entity)) + { + item.name += ICON_RIGIDBODY " "; + } + if (scene.softbodies.Contains(entity)) + { + item.name += ICON_SOFTBODY " "; + } + if (scene.emitters.Contains(entity)) + { + item.name += ICON_EMITTER " "; + } + if (scene.hairs.Contains(entity)) + { + item.name += ICON_HAIR " "; + } + if (scene.forces.Contains(entity)) + { + item.name += ICON_FORCE " "; + } + if (scene.sounds.Contains(entity)) + { + item.name += ICON_SOUND " "; + } + if (scene.decals.Contains(entity)) + { + item.name += ICON_DECAL " "; + } + if (scene.cameras.Contains(entity)) + { + item.name += ICON_CAMERA " "; + } + if (scene.probes.Contains(entity)) + { + item.name += ICON_ENVIRONMENTPROBE " "; + } + if (scene.animations.Contains(entity)) + { + item.name += ICON_ANIMATION " "; + } + if (scene.armatures.Contains(entity)) + { + item.name += ICON_ARMATURE " "; + } + if (scene.lights.Contains(entity)) + { + const LightComponent* light = scene.lights.GetComponent(entity); + switch (light->type) + { + default: + case LightComponent::POINT: + item.name += ICON_POINTLIGHT " "; + break; + case LightComponent::SPOT: + item.name += ICON_SPOTLIGHT " "; + break; + case LightComponent::DIRECTIONAL: + item.name += ICON_DIRECTIONALLIGHT " "; + break; + } + } + if (scene.materials.Contains(entity)) + { + item.name += ICON_MATERIAL " "; + } + if (scene.weathers.Contains(entity)) + { + item.name += ICON_WEATHER " "; + } + if (entity == terragen.terrainEntity) + { + item.name += ICON_TERRAIN " "; + } + + const NameComponent* name = scene.names.GetComponent(entity); + if (name == nullptr) + { + item.name += "[no_name] " + std::to_string(entity); + } + else if (name->name.empty()) + { + item.name += "[name_empty] " + std::to_string(entity); + } + else + { + item.name += name->name; + } + entityTree.AddItem(item); + + entitytree_added_items.insert(entity); + + for (size_t i = 0; i < scene.hierarchy.GetCount(); ++i) + { + if (scene.hierarchy[i].parentID == entity) + { + PushToEntityTree(scene.hierarchy.GetEntity(i), level + 1); + } + } +} +void OptionsWindow::RefreshEntityTree() +{ + const Scene& scene = editor->GetCurrentScene(); + materialPickerWnd.RecreateButtons(); + + for (int i = 0; i < entityTree.GetItemCount(); ++i) + { + const wi::gui::TreeList::Item& item = entityTree.GetItem(i); + if (item.open) + { + entitytree_opened_items.insert((Entity)item.userdata); + } + } + + entityTree.ClearItems(); + + if (has_flag(filter, Filter::All)) + { + // Add hierarchy: + for (size_t i = 0; i < scene.hierarchy.GetCount(); ++i) + { + PushToEntityTree(scene.hierarchy[i].parentID, 0); + } + } + + if (has_flag(filter, Filter::Transform)) + { + // Any transform left that is not part of a hierarchy: + for (size_t i = 0; i < scene.transforms.GetCount(); ++i) + { + PushToEntityTree(scene.transforms.GetEntity(i), 0); + } + } + + // Add any left over entities that might not have had a hierarchy or transform: + + if (has_flag(filter, Filter::Light)) + { + for (size_t i = 0; i < scene.lights.GetCount(); ++i) + { + PushToEntityTree(scene.lights.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::Decal)) + { + for (size_t i = 0; i < scene.decals.GetCount(); ++i) + { + PushToEntityTree(scene.decals.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.cameras.GetCount(); ++i) + { + PushToEntityTree(scene.cameras.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::Material)) + { + for (size_t i = 0; i < scene.materials.GetCount(); ++i) + { + PushToEntityTree(scene.materials.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::Mesh)) + { + for (size_t i = 0; i < scene.meshes.GetCount(); ++i) + { + PushToEntityTree(scene.meshes.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.armatures.GetCount(); ++i) + { + PushToEntityTree(scene.armatures.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::Object)) + { + for (size_t i = 0; i < scene.objects.GetCount(); ++i) + { + PushToEntityTree(scene.objects.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::Weather)) + { + for (size_t i = 0; i < scene.weathers.GetCount(); ++i) + { + PushToEntityTree(scene.weathers.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::Sound)) + { + for (size_t i = 0; i < scene.sounds.GetCount(); ++i) + { + PushToEntityTree(scene.sounds.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.hairs.GetCount(); ++i) + { + PushToEntityTree(scene.hairs.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.emitters.GetCount(); ++i) + { + PushToEntityTree(scene.emitters.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.animations.GetCount(); ++i) + { + PushToEntityTree(scene.animations.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.probes.GetCount(); ++i) + { + PushToEntityTree(scene.probes.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.forces.GetCount(); ++i) + { + PushToEntityTree(scene.forces.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.rigidbodies.GetCount(); ++i) + { + PushToEntityTree(scene.rigidbodies.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.softbodies.GetCount(); ++i) + { + PushToEntityTree(scene.softbodies.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.springs.GetCount(); ++i) + { + PushToEntityTree(scene.springs.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.inverse_kinematics.GetCount(); ++i) + { + PushToEntityTree(scene.inverse_kinematics.GetEntity(i), 0); + } + } + + if (has_flag(filter, Filter::All)) + { + for (size_t i = 0; i < scene.names.GetCount(); ++i) + { + PushToEntityTree(scene.names.GetEntity(i), 0); + } + } + + entitytree_added_items.clear(); + entitytree_opened_items.clear(); +} diff --git a/Editor/OptionsWindow.h b/Editor/OptionsWindow.h new file mode 100644 index 0000000000..3feeaee0f2 --- /dev/null +++ b/Editor/OptionsWindow.h @@ -0,0 +1,69 @@ +#pragma once +#include "WickedEngine.h" +#include "RendererWindow.h" +#include "PostprocessWindow.h" +#include "CameraWindow.h" +#include "MaterialPickerWindow.h" +#include "PaintToolWindow.h" +#include "TerrainGenerator.h" + +class EditorComponent; + +class OptionsWindow : public wi::gui::Window +{ +public: + void Create(EditorComponent* editor); + void Update(float dt); + + void ResizeLayout() override; + + EditorComponent* editor = nullptr; + wi::gui::CheckBox isScalatorCheckBox; + wi::gui::CheckBox isRotatorCheckBox; + wi::gui::CheckBox isTranslatorCheckBox; + wi::gui::CheckBox profilerEnabledCheckBox; + wi::gui::CheckBox physicsEnabledCheckBox; + wi::gui::CheckBox cinemaModeCheckBox; + wi::gui::CheckBox versionCheckBox; + wi::gui::CheckBox fpsCheckBox; + wi::gui::CheckBox otherinfoCheckBox; + wi::gui::ComboBox themeCombo; + wi::gui::ComboBox renderPathComboBox; + wi::gui::ComboBox saveModeComboBox; + wi::gui::ComboBox sceneComboBox; + wi::gui::Slider pathTraceTargetSlider; + wi::gui::Label pathTraceStatisticsLabel; + RendererWindow rendererWnd; + PostprocessWindow postprocessWnd; + CameraWindow cameraWnd; + MaterialPickerWindow materialPickerWnd; + PaintToolWindow paintToolWnd; + TerrainGenerator terragen; + + enum class Filter : uint64_t + { + Transform = 1 << 0, + Material = 1 << 1, + Mesh = 1 << 2, + Object = 1 << 3, + EnvironmentProbe = 1 << 4, + Decal = 1 << 5, + Sound = 1 << 6, + Weather = 1 << 7, + Light = 1 << 8, + + All = ~0ull, + } filter = Filter::All; + wi::gui::ComboBox newCombo; + wi::gui::ComboBox filterCombo; + wi::gui::TreeList entityTree; + wi::unordered_set entitytree_added_items; + wi::unordered_set entitytree_opened_items; + void PushToEntityTree(wi::ecs::Entity entity, int level); + void RefreshEntityTree(); +}; + +template<> +struct enable_bitmask_operators { + static const bool enable = true; +}; diff --git a/Editor/PaintToolWindow.cpp b/Editor/PaintToolWindow.cpp index 2baa1c66ef..52282fd21b 100644 --- a/Editor/PaintToolWindow.cpp +++ b/Editor/PaintToolWindow.cpp @@ -421,8 +421,10 @@ void PaintToolWindow::Update(float dt) }; device->Barrier(barriers, arraysize(barriers), cmd); - - wi::renderer::GenerateMipChain(editTexture, wi::renderer::MIPGENFILTER::MIPGENFILTER_LINEAR, cmd); + if (editTexture.desc.mip_levels > 1) + { + wi::renderer::GenerateMipChain(editTexture, wi::renderer::MIPGENFILTER::MIPGENFILTER_LINEAR, cmd); + } } wi::renderer::PaintRadius paintrad; diff --git a/Editor/SoundWindow.cpp b/Editor/SoundWindow.cpp index 03a7bbb938..f5dd2335fe 100644 --- a/Editor/SoundWindow.cpp +++ b/Editor/SoundWindow.cpp @@ -24,7 +24,7 @@ void SoundWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 60; diff --git a/Editor/SpringWindow.cpp b/Editor/SpringWindow.cpp index 130a1d76f4..894ca02168 100644 --- a/Editor/SpringWindow.cpp +++ b/Editor/SpringWindow.cpp @@ -23,7 +23,7 @@ void SpringWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 120; diff --git a/Editor/TerrainGenerator.cpp b/Editor/TerrainGenerator.cpp index aa9e894014..f888804897 100644 --- a/Editor/TerrainGenerator.cpp +++ b/Editor/TerrainGenerator.cpp @@ -752,6 +752,7 @@ void TerrainGenerator::Generation_Update(const wi::scene::CameraComponent& camer if (material != nullptr) { + bool need_update = false; for (int i = 0; i < MaterialComponent::TEXTURESLOT_COUNT; ++i) { if (virtual_texture_available[i]) @@ -764,6 +765,7 @@ void TerrainGenerator::Generation_Update(const wi::scene::CameraComponent& camer if (current_resolution != chunk_data.required_texture_resolution) { + need_update = true; TextureDesc desc; desc.width = chunk_data.required_texture_resolution; desc.height = chunk_data.required_texture_resolution; @@ -780,7 +782,10 @@ void TerrainGenerator::Generation_Update(const wi::scene::CameraComponent& camer } } - virtual_texture_updates.push_back(chunk); + if (need_update) + { + virtual_texture_updates.push_back(chunk); + } } } diff --git a/Editor/TransformWindow.cpp b/Editor/TransformWindow.cpp index 99be417076..0b67f9d052 100644 --- a/Editor/TransformWindow.cpp +++ b/Editor/TransformWindow.cpp @@ -23,7 +23,7 @@ void TransformWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 80; diff --git a/Editor/Translator.cpp b/Editor/Translator.cpp index cdd0910142..cd28987b4b 100644 --- a/Editor/Translator.cpp +++ b/Editor/Translator.cpp @@ -138,7 +138,7 @@ void Translator::Update(const CameraComponent& camera, const wi::Canvas& canvas) } } - if (enabled) + if (IsEnabled()) { PreTranslate(); @@ -284,7 +284,7 @@ void Translator::Update(const CameraComponent& camera, const wi::Canvas& canvas) } } - if (dragging || (state != TRANSLATOR_IDLE && wi::input::Press(wi::input::MOUSE_BUTTON_LEFT))) + if (dragging || (state != TRANSLATOR_IDLE && wi::input::Press(wi::input::MOUSE_BUTTON_LEFT) && interactable)) { // Dragging operation: if (isRotator) @@ -491,7 +491,7 @@ void Translator::Update(const CameraComponent& camera, const wi::Canvas& canvas) } void Translator::Draw(const CameraComponent& camera, CommandList cmd) const { - if (!enabled || selected.empty()) + if (!IsEnabled() || selected.empty()) { return; } @@ -1070,6 +1070,7 @@ void Translator::PreTranslate() TransformComponent* transform = scene.transforms.GetComponent(x.entity); if (transform != nullptr) { + transform->UpdateTransform(); centerV = XMVectorAdd(centerV, transform->GetPositionV()); count += 1.0f; } diff --git a/Editor/Translator.h b/Editor/Translator.h index f3b6f3ea4f..b2218ccab2 100644 --- a/Editor/Translator.h +++ b/Editor/Translator.h @@ -30,7 +30,6 @@ class Translator wi::unordered_set selectedEntitiesLookup; // fast lookup for selected entities wi::vector selectedEntitiesNonRecursive; // selected entities that don't contain entities that would be included in recursive iterations - bool enabled = false; float scale_snap = 1; float rotate_snap = XM_PIDIV4; float translate_snap = 1; @@ -52,7 +51,24 @@ class Translator float dist = 1; - bool isTranslator = true, isScalator = false, isRotator = false; + bool interactable = true; + bool isTranslator = true; + bool isScalator = false; + bool isRotator = false; + bool IsEnabled() const { return isTranslator || isRotator || isScalator; } + void SetEnabled(bool value) + { + if (value && !IsEnabled()) + { + isTranslator = true; + } + else if (!value && IsEnabled()) + { + isTranslator = false; + isScalator = false; + isRotator = false; + } + } // Check if the drag started in this exact frame diff --git a/Editor/WeatherWindow.cpp b/Editor/WeatherWindow.cpp index 298fd0a6af..df55200318 100644 --- a/Editor/WeatherWindow.cpp +++ b/Editor/WeatherWindow.cpp @@ -23,7 +23,7 @@ void WeatherWindow::Create(EditorComponent* _editor) editor->RecordEntity(archive, entity); - editor->RefreshEntityTree(); + editor->optionsWnd.RefreshEntityTree(); }); float x = 150; @@ -768,6 +768,10 @@ void WeatherWindow::Update() coverageAmountSlider.SetValue(weather.volumetricCloudParameters.CoverageAmount); coverageMinimumSlider.SetValue(weather.volumetricCloudParameters.CoverageMinimum); } + else + { + scene.weather = {}; + } } WeatherComponent& WeatherWindow::GetWeather() const diff --git a/Editor/main_Windows.cpp b/Editor/main_Windows.cpp index 8076a70df7..8333a6d0e5 100644 --- a/Editor/main_Windows.cpp +++ b/Editor/main_Windows.cpp @@ -69,7 +69,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, } } - editor.renderComponent.terragen.Generation_Cancel(); + editor.renderComponent.optionsWnd.terragen.Generation_Cancel(); return (int) msg.wParam; } diff --git a/WickedEngine/CMakeLists.txt b/WickedEngine/CMakeLists.txt index 8b50b1d71b..3d0279c231 100644 --- a/WickedEngine/CMakeLists.txt +++ b/WickedEngine/CMakeLists.txt @@ -45,6 +45,7 @@ add_subdirectory(Utility) set(HEADER_FILES WickedEngine.h CommonInclude.h + logo.h sdl2.h wiApplication.h wiApplication_BindLua.h diff --git a/WickedEngine/logo.h b/WickedEngine/logo.h new file mode 100644 index 0000000000..3e8b1cff72 --- /dev/null +++ b/WickedEngine/logo.h @@ -0,0 +1,8194 @@ +const uint8_t wicked_engine_logo[] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,239,239,239,1, +242,242,242,1,244,244,244,1,246,246,246,1,249,249,249,1,251,251,251,1,252,252,252,1,253,253,253,1,254,254,254,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,234,234,1,236,236,236,1,239,239,239,1,242,242,242,1, +245,245,245,1,248,248,248,1,250,250,250,1,251,251,251,1,252,252,252,1,253,253,253,1,254,254,254,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,235,235,235,1,236,236,236,1,240,240,240,1,242,242,242,1,245,245,245,1,248,248,248,1, +249,249,249,1,251,251,251,1,252,252,252,1,253,253,253,1,253,253,253,1,254,254,254,1,254,254,254,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,238,238,238,1,241,241,241,1,243,243,243,1,246,246,246,1,248,248,248,1,249,249,249,1,250,250,250,1, +252,252,252,2,253,253,253,2,253,253,253,2,254,254,254,2,254,254,254,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,241,241,1, +242,242,242,1,244,244,244,1,247,247,247,1,248,248,248,1,250,250,250,1,251,251,251,2,252,252,252,2,253,253,253,2, +253,253,253,2,254,254,254,2,254,254,254,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,246,246,1,245,245,245,1,246,246,246,1, +248,248,248,1,249,249,249,1,250,250,250,1,251,251,251,2,252,252,252,2,253,253,253,2,253,253,253,2,254,254,254,3, +254,254,254,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249,249,249,1,249,249,249,1,250,250,250,1,251,251,251,1, +251,251,251,1,252,252,252,2,253,253,253,2,253,253,253,2,254,254,254,2,254,254,254,3,254,254,254,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,251,251,251,1,251,251,251,1,251,251,251,1,252,252,252,1,252,252,252,1,253,253,253,1,253,253,253,2, +253,253,253,2,254,254,254,2,254,254,254,2,254,254,254,3,254,254,254,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,254,254,1,254,254,254,1, +253,253,253,1,253,253,253,1,253,253,253,1,254,254,254,1,254,254,254,1,254,254,254,2,254,254,254,2,254,254,254,2, +254,254,254,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,254,254,254,1, +254,254,254,1,254,254,254,1,254,254,254,1,254,254,254,2,254,254,254,2,254,254,254,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11, +255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12, +255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,13, +255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14, +255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,17, +255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15, +255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,16, +255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19, +255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,17, +255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,22, +255,255,255,22,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,20, +255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15, +255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,10, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15, +255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22, +255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25, +255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,23,255,255,255,22, +255,255,255,22,255,255,255,21,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,17, +255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,17, +255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,24, +255,255,255,25,255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27, +255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,25, +255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,20, +255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,20, +255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,28, +255,255,255,29,255,255,255,29,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,31,255,255,255,31,255,255,255,31, +255,255,255,31,255,255,255,31,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,29,255,255,255,29,255,255,255,28, +255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22, +255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,15, +255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15, +255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23, +255,255,255,24,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,32, +255,255,255,32,255,255,255,33,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,35,255,255,255,35,255,255,255,35, +255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,32, +255,255,255,31,255,255,255,30,255,255,255,30,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,25, +255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17, +255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17, +255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,27, +255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,32,255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,36, +255,255,255,36,255,255,255,37,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,39,255,255,255,39, +255,255,255,39,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,37,255,255,255,37,255,255,255,36,255,255,255,36, +255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,28, +255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,19, +255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11, +255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,20, +255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,28,255,255,255,29,255,255,255,30, +255,255,255,32,255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,40, +255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,42,255,255,255,43,255,255,255,43,255,255,255,43,255,255,255,43, +255,255,255,43,255,255,255,43,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,41,255,255,255,40,255,255,255,40, +255,255,255,39,255,255,255,38,255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32, +255,255,255,31,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,21, +255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22, +255,255,255,24,255,255,255,25,255,255,255,27,255,255,255,28,255,255,255,30,255,255,255,31,255,255,255,33,255,255,255,34, +255,255,255,35,255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,41,255,255,255,42,255,255,255,43,255,255,255,44, +255,255,255,45,255,255,255,45,255,255,255,46,255,255,255,46,255,255,255,47,255,255,255,47,255,255,255,47,255,255,255,47, +255,255,255,47,255,255,255,47,255,255,255,47,255,255,255,46,255,255,255,46,255,255,255,45,255,255,255,45,255,255,255,44, +255,255,255,43,255,255,255,42,255,255,255,41,255,255,255,40,255,255,255,39,255,255,255,38,255,255,255,37,255,255,255,35, +255,255,255,34,255,255,255,33,255,255,255,31,255,255,255,30,255,255,255,28,255,255,255,27,255,255,255,25,255,255,255,24, +255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15, +255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,25, +255,255,255,27,255,255,255,29,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,35,255,255,255,37,255,255,255,38, +255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,48, +255,255,255,49,255,255,255,50,255,255,255,51,255,255,255,51,255,255,255,52,255,255,255,52,255,255,255,52,255,255,255,52, +255,255,255,52,255,255,255,52,255,255,255,51,255,255,255,51,255,255,255,50,255,255,255,50,255,255,255,49,255,255,255,48, +255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,44,255,255,255,43,255,255,255,42,255,255,255,41,255,255,255,39, +255,255,255,38,255,255,255,36,255,255,255,35,255,255,255,33,255,255,255,32,255,255,255,30,255,255,255,29,255,255,255,27, +255,255,255,25,255,255,255,24,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16, +255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,25,255,255,255,27,255,255,255,29, +255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,37,255,255,255,39,255,255,255,41,255,255,255,42, +255,255,255,44,255,255,255,45,255,255,255,47,255,255,255,48,255,255,255,50,255,255,255,51,255,255,255,52,255,255,255,53, +255,255,255,54,255,255,255,55,255,255,255,56,255,255,255,56,255,255,255,57,255,255,255,57,255,255,255,57,255,255,255,57, +255,255,255,57,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54,255,255,255,53, +255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,43, +255,255,255,42,255,255,255,40,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,34,255,255,255,32,255,255,255,30, +255,255,255,28,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17, +255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,18, +255,255,255,20,255,255,255,21,255,255,255,23,255,255,255,25,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32, +255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,40,255,255,255,41,255,255,255,43,255,255,255,45,255,255,255,47, +255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,53,255,255,255,55,255,255,255,56,255,255,255,57,255,255,255,58, +255,255,255,59,255,255,255,60,255,255,255,61,255,255,255,62,255,255,255,62,255,255,255,63,255,255,255,63,255,255,255,63, +255,255,255,63,255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,58, +255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,53,255,255,255,52,255,255,255,50,255,255,255,49,255,255,255,47, +255,255,255,46,255,255,255,44,255,255,255,43,255,255,255,41,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,33, +255,255,255,31,255,255,255,30,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,21,255,255,255,19, +255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,20, +255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,35, +255,255,255,38,255,255,255,40,255,255,255,42,255,255,255,44,255,255,255,46,255,255,255,48,255,255,255,49,255,255,255,51, +255,255,255,53,255,255,255,55,255,255,255,57,255,255,255,58,255,255,255,60,255,255,255,62,255,255,255,63,255,255,255,65, +255,255,255,66,255,255,255,67,255,255,255,69,255,255,255,70,255,255,255,71,255,255,255,72,255,255,255,73,255,255,255,74, +255,255,255,73,255,255,255,72,255,255,255,69,255,255,255,68,255,255,255,66,255,255,255,65,255,255,255,64,255,255,255,63, +255,255,255,62,255,255,255,61,255,255,255,60,255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,52, +255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,45,255,255,255,43,255,255,255,41,255,255,255,39,255,255,255,37, +255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21, +255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,33,255,255,255,35,255,255,255,37,255,255,255,39, +255,255,255,41,255,255,255,44,255,255,255,46,255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,56, +255,255,255,58,255,255,255,60,255,255,255,62,255,255,255,65,255,255,255,68,255,255,255,70,255,255,255,73,255,255,255,75, +255,255,255,78,255,255,255,80,255,255,255,82,255,255,255,85,255,255,255,87,255,255,255,89,255,255,255,91,255,255,255,92, +255,255,255,90,255,255,255,86,255,255,255,81,255,255,255,76,255,255,255,73,255,255,255,71,255,255,255,70,255,255,255,69, +255,255,255,68,255,255,255,66,255,255,255,65,255,255,255,63,255,255,255,62,255,255,255,60,255,255,255,58,255,255,255,57, +255,255,255,55,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,47,255,255,255,45,255,255,255,43,255,255,255,40, +255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,27,255,255,255,26,255,255,255,24, +255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11, +255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,23,255,255,255,25, +255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,41,255,255,255,43, +255,255,255,45,255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,57,255,255,255,59,255,255,255,61, +255,255,255,63,255,255,255,66,255,255,255,69,255,255,255,74,255,255,255,80,255,255,255,86,255,255,255,90,255,255,255,94, +255,255,255,98,255,255,255,102,255,255,255,106,255,255,255,110,255,255,255,114,255,255,255,118,255,255,255,121,255,255,255,121, +255,255,255,117,255,255,255,108,255,255,255,97,255,255,255,87,255,255,255,81,255,255,255,77,255,255,255,75,255,255,255,74, +255,255,255,73,255,255,255,72,255,255,255,70,255,255,255,68,255,255,255,67,255,255,255,65,255,255,255,63,255,255,255,61, +255,255,255,59,255,255,255,57,255,255,255,55,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,46,255,255,255,44, +255,255,255,42,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,32,255,255,255,30,255,255,255,28,255,255,255,26, +255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28, +255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,37,255,255,255,39,255,255,255,42,255,255,255,44,255,255,255,47, +255,255,255,49,255,255,255,52,255,255,255,54,255,255,255,57,255,255,255,59,255,255,255,61,255,255,255,63,255,255,255,66, +255,255,255,69,255,255,255,73,255,255,255,80,255,255,255,90,255,255,255,101,255,255,255,111,255,255,255,119,255,255,255,126, +255,255,255,131,255,255,255,137,255,255,255,142,254,254,254,147,234,234,234,156,193,193,193,170,151,151,151,184,115,115,115,195, +81,81,81,204,107,107,107,182,255,255,255,118,255,255,255,101,255,255,255,90,255,255,255,84,255,255,255,82,255,255,255,80, +255,255,255,79,255,255,255,77,255,255,255,76,255,255,255,74,255,255,255,72,255,255,255,70,255,255,255,68,255,255,255,66, +255,255,255,64,255,255,255,62,255,255,255,60,255,255,255,58,255,255,255,55,255,255,255,53,255,255,255,50,255,255,255,48, +255,255,255,45,255,255,255,43,255,255,255,40,255,255,255,38,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29, +255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15, +255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,31, +255,255,255,33,255,255,255,35,255,255,255,38,255,255,255,40,255,255,255,43,255,255,255,45,255,255,255,48,255,255,255,51, +255,255,255,53,255,255,255,56,255,255,255,59,255,255,255,61,255,255,255,64,255,255,255,66,255,255,255,69,255,255,255,71, +255,255,255,75,255,255,255,82,255,255,255,94,254,254,254,111,238,238,238,133,198,198,198,158,158,158,158,179,124,124,124,196, +94,94,94,210,66,66,66,223,39,39,39,236,17,17,17,247,3,3,3,254,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,19,19,19,243,250,250,250,142,255,255,255,117,255,255,255,100,255,255,255,92,255,255,255,88,255,255,255,86, +255,255,255,85,255,255,255,83,255,255,255,82,255,255,255,80,255,255,255,78,255,255,255,76,255,255,255,74,255,255,255,73, +255,255,255,71,255,255,255,69,255,255,255,66,255,255,255,63,255,255,255,60,255,255,255,57,255,255,255,55,255,255,255,52, +255,255,255,49,255,255,255,46,255,255,255,44,255,255,255,41,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17, +255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,33, +255,255,255,36,255,255,255,39,255,255,255,41,255,255,255,44,255,255,255,47,255,255,255,49,255,255,255,52,255,255,255,55, +255,255,255,58,255,255,255,61,255,255,255,63,255,255,255,66,255,255,255,69,255,255,255,71,255,255,255,74,255,255,255,77, +255,255,255,81,255,255,255,91,255,255,255,108,174,174,174,154,4,4,4,252,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,183,183,183,177,255,255,255,132,255,255,255,111,255,255,255,100,255,255,255,95,255,255,255,93, +255,255,255,91,255,255,255,89,255,255,255,88,255,255,255,86,255,255,255,84,255,255,255,83,255,255,255,82,255,255,255,83, +255,255,255,82,255,255,255,80,255,255,255,76,255,255,255,71,255,255,255,66,255,255,255,62,255,255,255,59,255,255,255,56, +255,255,255,53,255,255,255,50,255,255,255,47,255,255,255,45,255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,34, +255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16, +255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18, +255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36, +255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,47,255,255,255,50,255,255,255,53,255,255,255,56,255,255,255,59, +255,255,255,62,255,255,255,65,255,255,255,68,255,255,255,71,255,255,255,74,255,255,255,77,255,255,255,79,255,255,255,83, +255,255,255,88,255,255,255,100,255,255,255,121,164,164,164,173,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,102,102,102,212,255,255,255,147,255,255,255,122,255,255,255,108,255,255,255,102,255,255,255,99, +255,255,255,97,255,255,255,96,255,255,255,94,255,255,255,92,255,255,255,91,255,255,255,92,255,255,255,94,255,255,255,99, +255,255,255,101,255,255,255,100,255,255,255,94,255,255,255,85,255,255,255,77,255,255,255,69,255,255,255,64,255,255,255,60, +255,255,255,57,255,255,255,54,255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,42,255,255,255,40,255,255,255,37, +255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20, +255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36,255,255,255,39, +255,255,255,42,255,255,255,45,255,255,255,48,255,255,255,51,255,255,255,54,255,255,255,57,255,255,255,61,255,255,255,64, +255,255,255,67,255,255,255,70,255,255,255,73,255,255,255,76,255,255,255,79,255,255,255,82,255,255,255,85,255,255,255,89, +255,255,255,95,255,255,255,108,255,255,255,131,156,156,156,186,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,37,37,37,240,254,254,254,161,255,255,255,135,255,255,255,118,255,255,255,110,255,255,255,106, +255,255,255,104,255,255,255,102,255,255,255,100,255,255,255,100,255,255,255,101,255,255,255,105,255,255,255,113,255,255,255,123, +216,216,216,139,166,166,166,154,255,255,255,121,255,255,255,107,255,255,255,93,255,255,255,81,255,255,255,72,255,255,255,66, +255,255,255,62,255,255,255,58,255,255,255,55,255,255,255,52,255,255,255,49,255,255,255,45,255,255,255,43,255,255,255,40, +255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20, +255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22, +255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,42, +255,255,255,46,255,255,255,48,255,255,255,52,255,255,255,55,255,255,255,58,255,255,255,62,255,255,255,65,255,255,255,68, +255,255,255,71,255,255,255,75,255,255,255,78,255,255,255,81,255,255,255,84,255,255,255,88,255,255,255,91,255,255,255,94, +255,255,255,101,255,255,255,115,255,255,255,139,149,149,149,195,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,2,2,2,254,212,212,212,183,255,255,255,149,255,255,255,130,255,255,255,120,255,255,255,115, +255,255,255,112,255,255,255,110,255,255,255,109,255,255,255,110,255,255,255,115,255,255,255,124,255,255,255,139,202,202,202,165, +23,23,23,240,4,4,4,252,115,115,115,193,253,253,253,138,255,255,255,118,255,255,255,99,255,255,255,85,255,255,255,75, +255,255,255,68,255,255,255,63,255,255,255,59,255,255,255,56,255,255,255,52,255,255,255,49,255,255,255,46,255,255,255,43, +255,255,255,40,255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,21, +255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,26,255,255,255,28,255,255,255,31,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,43,255,255,255,46, +255,255,255,49,255,255,255,52,255,255,255,56,255,255,255,59,255,255,255,63,255,255,255,67,255,255,255,70,255,255,255,73, +255,255,255,77,255,255,255,80,255,255,255,83,255,255,255,87,255,255,255,90,255,255,255,93,255,255,255,96,255,255,255,100, +255,255,255,107,255,255,255,121,255,255,255,145,139,139,139,202,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,129,129,129,214,255,255,255,166,255,255,255,146,255,255,255,135,255,255,255,128, +255,255,255,123,255,255,255,121,255,255,255,121,255,255,255,125,255,255,255,134,255,255,255,149,184,184,184,183,16,16,16,247, +0,0,0,255,0,0,0,255,0,0,0,255,70,70,70,220,239,239,239,152,255,255,255,125,255,255,255,104,255,255,255,89, +255,255,255,78,255,255,255,70,255,255,255,64,255,255,255,60,255,255,255,56,255,255,255,53,255,255,255,49,255,255,255,46, +255,255,255,43,255,255,255,40,255,255,255,36,255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,23, +255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,25, +255,255,255,28,255,255,255,31,255,255,255,33,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,46,255,255,255,49, +255,255,255,52,255,255,255,56,255,255,255,60,255,255,255,64,255,255,255,69,255,255,255,74,255,255,255,78,255,255,255,81, +255,255,255,83,255,255,255,86,255,255,255,89,255,255,255,92,255,255,255,96,255,255,255,99,255,255,255,102,255,255,255,107, +255,255,255,114,255,255,255,128,255,255,255,152,132,132,132,208,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,60,60,60,239,255,255,255,187,255,255,255,169,255,255,255,156,255,255,255,148, +255,255,255,142,255,255,255,138,255,255,255,139,255,255,255,146,255,255,255,159,164,164,164,195,10,10,10,251,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,35,35,35,237,204,204,204,167,255,255,255,132,255,255,255,110, +255,255,255,93,255,255,255,80,255,255,255,71,255,255,255,65,255,255,255,60,255,255,255,56,255,255,255,53,255,255,255,49, +255,255,255,46,255,255,255,43,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,25, +255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11, +255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28, +255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,46,255,255,255,49,255,255,255,52, +255,255,255,56,255,255,255,60,255,255,255,65,255,255,255,72,255,255,255,79,255,255,255,86,255,255,255,91,255,255,255,94, +255,255,255,95,255,255,255,95,255,255,255,96,255,255,255,99,255,255,255,101,255,255,255,105,255,255,255,109,255,255,255,114, +255,255,255,122,255,255,255,137,255,255,255,161,123,123,123,215,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,254,110,110,110,230,156,156,156,212,222,222,222,189,254,254,254,175, +255,255,255,168,255,255,255,163,255,255,255,164,255,255,255,172,142,142,142,208,5,5,5,253,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,13,13,13,249,156,156,156,185,255,255,255,138, +255,255,255,115,255,255,255,97,255,255,255,82,255,255,255,72,255,255,255,65,255,255,255,60,255,255,255,56,255,255,255,52, +255,255,255,49,255,255,255,45,255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,27, +255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,24,255,255,255,27,255,255,255,29, +255,255,255,32,255,255,255,35,255,255,255,38,255,255,255,42,255,255,255,45,255,255,255,48,255,255,255,52,255,255,255,56, +255,255,255,60,255,255,255,65,255,255,255,72,255,255,255,83,255,255,255,96,255,255,255,107,255,255,255,114,255,255,255,115, +255,255,255,113,255,255,255,109,255,255,255,108,255,255,255,108,255,255,255,109,255,255,255,113,255,255,255,118,255,255,255,125, +255,255,255,135,255,255,255,151,255,255,255,174,119,119,119,223,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,34,34,34,244, +100,100,100,225,188,188,188,204,254,254,254,194,121,121,121,222,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,102,102,102,207, +251,251,251,145,255,255,255,121,255,255,255,100,255,255,255,84,255,255,255,73,255,255,255,65,255,255,255,60,255,255,255,56, +255,255,255,52,255,255,255,48,255,255,255,45,255,255,255,42,255,255,255,38,255,255,255,35,255,255,255,32,255,255,255,29, +255,255,255,26,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,31, +255,255,255,35,255,255,255,38,255,255,255,41,255,255,255,45,255,255,255,48,255,255,255,52,255,255,255,55,255,255,255,59, +255,255,255,64,255,255,255,72,255,255,255,83,255,255,255,100,255,255,255,120,141,141,141,168,86,86,86,199,226,226,226,153, +255,255,255,141,255,255,255,132,255,255,255,125,255,255,255,122,255,255,255,121,255,255,255,125,255,255,255,131,255,255,255,140, +255,255,255,153,255,255,255,171,248,248,248,193,86,86,86,236,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,24,24,24,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +57,57,57,227,229,229,229,156,255,255,255,125,255,255,255,102,255,255,255,85,255,255,255,72,255,255,255,65,255,255,255,59, +255,255,255,55,255,255,255,52,255,255,255,48,255,255,255,44,255,255,255,41,255,255,255,37,255,255,255,34,255,255,255,31, +255,255,255,28,255,255,255,25,255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14, +255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,34, +255,255,255,37,255,255,255,40,255,255,255,44,255,255,255,47,255,255,255,51,255,255,255,55,255,255,255,59,255,255,255,64, +255,255,255,71,255,255,255,82,255,255,255,99,255,255,255,122,198,198,198,161,10,10,10,248,0,0,0,255,13,13,13,248, +109,109,109,207,238,238,238,166,255,255,255,152,255,255,255,144,255,255,255,140,255,255,255,143,255,255,255,150,255,255,255,163, +247,247,247,179,135,135,135,215,27,27,27,248,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,26,26,26,241,187,187,187,167,255,255,255,123,255,255,255,98,255,255,255,81,255,255,255,70,255,255,255,63, +255,255,255,59,255,255,255,55,255,255,255,51,255,255,255,47,255,255,255,43,255,255,255,40,255,255,255,36,255,255,255,33, +255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,17,255,255,255,15,255,255,255,14, +255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15, +255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,36, +255,255,255,39,255,255,255,43,255,255,255,46,255,255,255,50,255,255,255,54,255,255,255,58,255,255,255,63,255,255,255,69, +255,255,255,79,255,255,255,96,255,255,255,119,236,236,236,152,32,32,32,238,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,20,20,20,247,129,129,129,208,246,246,246,174,255,255,255,167,255,255,255,169,255,255,255,177,174,174,174,203, +34,34,34,244,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,8,8,8,250,129,129,129,178,254,254,254,112,255,255,255,89,255,255,255,75,255,255,255,67, +255,255,255,62,255,255,255,58,255,255,255,54,255,255,255,50,255,255,255,46,255,255,255,42,255,255,255,39,255,255,255,35, +255,255,255,32,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,16,255,255,255,15, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16, +255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35,255,255,255,38, +255,255,255,42,255,255,255,45,255,255,255,49,255,255,255,53,255,255,255,57,255,255,255,62,255,255,255,68,255,255,255,77, +255,255,255,92,255,255,255,114,253,253,253,143,67,67,67,222,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,29,29,29,246,149,149,149,215,236,236,236,201,88,88,88,231,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,30,30,30,233,251,251,251,121,255,255,255,95,255,255,255,79,255,255,255,71, +255,255,255,65,255,255,255,61,255,255,255,57,255,255,255,53,255,255,255,49,255,255,255,45,255,255,255,41,255,255,255,37, +255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16, +255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17, +255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,37,255,255,255,40, +255,255,255,44,255,255,255,48,255,255,255,52,255,255,255,56,255,255,255,60,255,255,255,66,255,255,255,74,255,255,255,88, +255,255,255,109,255,255,255,137,115,115,115,201,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,253,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,154,154,154,179,255,255,255,121,255,255,255,97,255,255,255,83,255,255,255,74, +255,255,255,69,255,255,255,64,255,255,255,60,255,255,255,55,255,255,255,51,255,255,255,47,255,255,255,43,255,255,255,40, +255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,17, +255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18, +255,255,255,20,255,255,255,23,255,255,255,25,255,255,255,29,255,255,255,32,255,255,255,35,255,255,255,39,255,255,255,42, +255,255,255,46,255,255,255,50,255,255,255,54,255,255,255,59,255,255,255,64,255,255,255,72,255,255,255,84,255,255,255,103, +255,255,255,130,168,168,168,181,4,4,4,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,51,51,51,232,254,254,254,148,255,255,255,118,255,255,255,97,255,255,255,85,255,255,255,77, +255,255,255,72,255,255,255,67,255,255,255,62,255,255,255,58,255,255,255,54,255,255,255,50,255,255,255,46,255,255,255,42, +255,255,255,38,255,255,255,35,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19, +255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,45, +255,255,255,49,255,255,255,53,255,255,255,57,255,255,255,62,255,255,255,69,255,255,255,81,255,255,255,98,255,255,255,124, +213,213,213,163,17,17,17,246,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,2,2,2,255,2,2,2,255,3,3,3,255,3,3,3,255,3,3,3,255,4,4,4,255,4,4,4,255, +4,4,4,255,3,3,3,255,3,3,3,255,3,3,3,255,2,2,2,255,2,2,2,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,2,2,2,254,188,188,188,184,255,255,255,138,255,255,255,114,255,255,255,97,255,255,255,87,255,255,255,80, +255,255,255,75,255,255,255,70,255,255,255,65,255,255,255,61,255,255,255,56,255,255,255,52,255,255,255,48,255,255,255,44, +255,255,255,40,255,255,255,37,255,255,255,33,255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,19, +255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20, +255,255,255,23,255,255,255,25,255,255,255,28,255,255,255,32,255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,47, +255,255,255,51,255,255,255,55,255,255,255,60,255,255,255,66,255,255,255,76,255,255,255,92,255,255,255,117,245,245,245,149, +42,42,42,234,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,2,2,2,255, +3,3,3,255,4,4,4,255,5,5,5,255,6,6,6,255,6,6,6,255,7,7,7,255,7,7,7,255,7,7,7,255, +7,7,7,255,7,7,7,255,7,7,7,255,6,6,6,255,5,5,5,255,4,4,4,255,3,3,3,255,3,3,3,255, +2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,74,74,74,227,255,255,255,158,255,255,255,130,255,255,255,110,255,255,255,98,255,255,255,89,255,255,255,84, +255,255,255,78,255,255,255,73,255,255,255,68,255,255,255,63,255,255,255,59,255,255,255,55,255,255,255,51,255,255,255,46, +255,255,255,42,255,255,255,38,255,255,255,35,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20, +255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,17,255,255,255,19,255,255,255,21, +255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,45,255,255,255,49, +255,255,255,53,255,255,255,57,255,255,255,63,255,255,255,71,255,255,255,85,255,255,255,107,254,254,254,138,81,81,81,215, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,3,3,3,255,4,4,4,255,6,6,6,255, +7,7,7,255,8,8,8,255,9,9,9,255,11,11,11,255,12,12,12,255,13,13,13,255,13,13,13,255,13,13,13,255, +13,13,13,255,13,13,13,255,12,12,12,255,11,11,11,255,9,9,9,255,8,8,8,255,7,7,7,255,6,6,6,255, +4,4,4,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +7,7,7,253,212,212,212,186,255,255,255,148,255,255,255,125,255,255,255,110,255,255,255,100,255,255,255,93,255,255,255,87, +255,255,255,82,255,255,255,76,255,255,255,71,255,255,255,66,255,255,255,62,255,255,255,57,255,255,255,53,255,255,255,49, +255,255,255,44,255,255,255,40,255,255,255,37,255,255,255,33,255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,21, +255,255,255,19,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22, +255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35,255,255,255,39,255,255,255,42,255,255,255,47,255,255,255,51, +255,255,255,55,255,255,255,60,255,255,255,66,255,255,255,77,255,255,255,95,255,255,255,123,129,129,129,189,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,3,3,3,255,4,4,4,255,6,6,6,255,8,8,8,255,10,10,10,255, +12,12,12,255,14,14,14,255,16,16,16,255,18,18,18,255,19,19,19,255,20,20,20,255,20,20,20,255,21,21,21,255, +20,20,20,255,20,20,20,255,19,19,19,255,18,18,18,255,16,16,16,255,14,14,14,255,12,12,12,255,10,10,10,255, +8,8,8,255,6,6,6,255,4,4,4,255,3,3,3,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +101,101,101,227,255,255,255,172,255,255,255,144,255,255,255,123,255,255,255,110,255,255,255,102,255,255,255,96,255,255,255,90, +255,255,255,85,255,255,255,79,255,255,255,74,255,255,255,69,255,255,255,64,255,255,255,60,255,255,255,55,255,255,255,51, +255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,35,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22, +255,255,255,20,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,23, +255,255,255,26,255,255,255,29,255,255,255,33,255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,48,255,255,255,53, +255,255,255,57,255,255,255,62,255,255,255,69,255,255,255,81,255,255,255,102,174,174,174,154,6,6,6,251,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,2,2,2,255,3,3,3,255,5,5,5,255,8,8,8,255,10,10,10,255,13,13,13,255,16,16,16,255, +19,19,19,255,22,22,22,255,24,24,24,255,26,26,26,255,27,27,27,255,28,28,28,255,29,29,29,255,29,29,29,255, +29,29,29,255,28,28,28,255,27,27,27,255,25,25,25,255,23,23,23,255,21,21,21,255,18,18,18,255,16,16,16,255, +13,13,13,255,10,10,10,255,8,8,8,255,5,5,5,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,255, +219,219,219,206,255,255,255,171,255,255,255,145,255,255,255,126,255,255,255,113,255,255,255,105,255,255,255,99,255,255,255,94, +255,255,255,88,255,255,255,83,255,255,255,77,255,255,255,72,255,255,255,67,255,255,255,62,255,255,255,57,255,255,255,53, +255,255,255,48,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,23, +255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24, +255,255,255,27,255,255,255,30,255,255,255,34,255,255,255,38,255,255,255,42,255,255,255,46,255,255,255,50,255,255,255,55, +255,255,255,59,255,255,255,64,255,255,255,72,255,255,255,84,255,255,255,104,145,145,145,166,4,4,4,253,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +2,2,2,255,4,4,4,255,6,6,6,255,10,10,10,255,13,13,13,255,17,17,17,255,20,20,20,255,24,24,24,255, +27,27,27,255,30,30,30,255,33,33,33,255,35,35,35,255,36,36,36,255,37,37,37,255,38,38,38,255,38,38,38,255, +38,38,38,255,37,37,37,255,36,36,36,255,34,34,34,255,32,32,32,255,29,29,29,255,26,26,26,255,23,23,23,255, +20,20,20,255,16,16,16,255,13,13,13,255,9,9,9,255,6,6,6,255,4,4,4,255,2,2,2,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +87,87,87,233,255,255,255,179,255,255,255,152,255,255,255,131,255,255,255,118,255,255,255,109,255,255,255,103,255,255,255,97, +255,255,255,91,255,255,255,85,255,255,255,80,255,255,255,74,255,255,255,69,255,255,255,64,255,255,255,59,255,255,255,55, +255,255,255,50,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34,255,255,255,31,255,255,255,27,255,255,255,24, +255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22,255,255,255,25, +255,255,255,28,255,255,255,32,255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,52,255,255,255,56, +255,255,255,61,255,255,255,67,255,255,255,73,255,255,255,84,255,255,255,102,255,255,255,128,137,137,137,189,2,2,2,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255, +4,4,4,255,7,7,7,255,11,11,11,255,15,15,15,255,20,20,20,255,24,24,24,255,28,28,28,255,32,32,32,255, +36,36,36,255,39,39,39,255,41,41,41,255,44,44,44,255,45,45,45,255,46,46,46,255,47,47,47,255,47,47,47,255, +47,47,47,255,46,46,46,255,45,45,45,255,43,43,43,255,41,41,41,255,38,38,38,255,35,35,35,255,31,31,31,255, +27,27,27,255,23,23,23,255,19,19,19,255,15,15,15,255,11,11,11,255,7,7,7,255,4,4,4,255,2,2,2,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,169,169,169,205,255,255,255,163,255,255,255,140,255,255,255,125,255,255,255,114,255,255,255,107,255,255,255,101, +255,255,255,95,255,255,255,89,255,255,255,83,255,255,255,77,255,255,255,71,255,255,255,66,255,255,255,62,255,255,255,57, +255,255,255,52,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,36,255,255,255,32,255,255,255,28,255,255,255,25, +255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,23,255,255,255,26, +255,255,255,29,255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,45,255,255,255,49,255,255,255,54,255,255,255,58, +255,255,255,63,255,255,255,68,255,255,255,75,255,255,255,84,255,255,255,97,255,255,255,117,255,255,255,144,128,128,128,202, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255, +8,8,8,255,12,12,12,255,17,17,17,255,22,22,22,255,26,26,26,255,31,31,31,255,36,36,36,255,40,40,40,255, +44,44,44,255,47,47,47,255,50,50,50,255,52,52,52,255,54,54,54,255,55,55,55,255,56,56,56,255,56,56,56,255, +56,56,56,255,55,55,55,255,54,54,54,255,52,52,52,255,50,50,50,255,46,46,46,255,43,43,43,255,39,39,39,255, +35,35,35,255,30,30,30,255,25,25,25,255,21,21,21,255,16,16,16,255,11,11,11,255,7,7,7,255,4,4,4,255, +2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,31,31,31,245,247,247,247,179,255,255,255,153,255,255,255,135,255,255,255,122,255,255,255,113,255,255,255,107, +255,255,255,101,255,255,255,95,255,255,255,88,255,255,255,81,255,255,255,75,255,255,255,69,255,255,255,63,255,255,255,59, +255,255,255,54,255,255,255,49,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33,255,255,255,30,255,255,255,26, +255,255,255,24,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9, +255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27, +255,255,255,30,255,255,255,34,255,255,255,38,255,255,255,42,255,255,255,46,255,255,255,51,255,255,255,55,255,255,255,60, +255,255,255,65,255,255,255,71,255,255,255,76,255,255,255,83,255,255,255,93,255,255,255,108,255,255,255,128,255,255,255,154, +118,118,118,211,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,8,8,8,255, +12,12,12,255,17,17,17,255,23,23,23,255,28,28,28,255,33,33,33,255,39,39,39,255,43,43,43,255,48,48,48,255, +51,51,51,255,55,55,55,255,58,58,58,255,61,61,61,255,64,64,64,255,65,65,65,255,66,66,66,255,67,67,67,255, +67,67,67,255,65,65,65,255,64,64,64,255,61,61,61,255,58,58,58,255,55,55,55,255,51,51,51,255,47,47,47,255, +42,42,42,255,38,38,38,255,32,32,32,255,27,27,27,255,22,22,22,255,17,17,17,255,12,12,12,255,7,7,7,255, +4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,131,131,131,216,255,255,255,170,255,255,255,149,255,255,255,135,255,255,255,126,255,255,255,119, +255,255,255,113,255,255,255,106,255,255,255,99,255,255,255,90,255,255,255,82,255,255,255,73,255,255,255,66,255,255,255,61, +255,255,255,56,255,255,255,51,255,255,255,47,255,255,255,42,255,255,255,38,255,255,255,35,255,255,255,31,255,255,255,27, +255,255,255,24,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28, +255,255,255,31,255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,52,255,255,255,57,255,255,255,62, +255,255,255,67,255,255,255,72,255,255,255,78,255,255,255,84,255,255,255,92,255,255,255,102,255,255,255,117,255,255,255,137, +255,255,255,163,106,106,106,219,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,7,7,7,255,12,12,12,255, +17,17,17,255,23,23,23,255,29,29,29,255,34,34,34,255,40,40,40,255,45,45,45,255,50,50,50,255,55,55,55,255, +59,59,59,255,63,63,63,255,67,67,67,255,69,69,69,255,71,71,71,255,73,73,73,255,74,74,74,255,74,74,74,255, +74,74,74,255,73,73,73,255,71,71,71,255,69,69,69,255,67,67,67,255,63,63,63,255,58,58,58,255,54,54,54,255, +50,50,50,255,44,44,44,255,39,39,39,255,33,33,33,255,28,28,28,255,22,22,22,255,17,17,17,255,11,11,11,255, +7,7,7,255,4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,24,24,24,249,247,247,247,191,255,255,255,171,255,255,255,158,255,255,255,148,255,255,255,141, +255,255,255,135,255,255,255,128,255,255,255,118,255,255,255,107,255,255,255,93,255,255,255,80,255,255,255,70,255,255,255,63, +255,255,255,57,255,255,255,52,255,255,255,48,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32,255,255,255,28, +255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,29, +255,255,255,32,255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,49,255,255,255,54,255,255,255,58,255,255,255,63, +255,255,255,69,255,255,255,74,255,255,255,80,255,255,255,86,255,255,255,93,255,255,255,100,255,255,255,111,255,255,255,126, +255,255,255,148,254,254,254,175,98,98,98,229,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,7,7,7,255,11,11,11,255,16,16,16,255, +22,22,22,255,29,29,29,255,35,35,35,255,41,41,41,255,46,46,46,255,52,52,52,255,57,57,57,255,62,62,62,255, +67,67,67,255,70,70,70,255,73,73,73,255,76,76,76,255,79,79,79,255,80,80,80,255,81,81,81,255,81,81,81,255, +81,81,81,255,80,80,80,255,79,79,79,255,76,76,76,255,73,73,73,255,70,70,70,255,66,66,66,255,61,61,61,255, +56,56,56,255,50,50,50,255,45,45,45,255,39,39,39,255,34,34,34,255,28,28,28,255,22,22,22,255,16,16,16,255, +11,11,11,255,6,6,6,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,109,109,109,232,159,159,159,212,167,167,167,202,175,175,175,194,185,185,185,187, +195,195,195,179,206,206,206,170,216,216,216,156,225,225,225,137,254,254,254,110,255,255,255,90,255,255,255,75,255,255,255,65, +255,255,255,59,255,255,255,54,255,255,255,49,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33,255,255,255,29, +255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10, +255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,23,255,255,255,27,255,255,255,30, +255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60,255,255,255,65, +255,255,255,70,255,255,255,76,255,255,255,82,255,255,255,88,255,255,255,94,255,255,255,101,255,255,255,110,255,255,255,122, +255,255,255,140,255,255,255,166,251,251,251,196,23,23,23,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,1,1,1,255,3,3,3,255,6,6,6,255,10,10,10,255,15,15,15,255,21,21,21,255, +28,28,28,255,34,34,34,255,40,40,40,255,46,46,46,255,52,52,52,255,58,58,58,255,64,64,64,255,69,69,69,255, +73,73,73,255,77,77,77,255,80,80,80,255,83,83,83,255,86,86,86,255,88,88,88,255,89,89,89,255,90,90,90,255, +89,89,89,255,89,89,89,255,86,86,86,255,83,83,83,255,80,80,80,255,76,76,76,255,72,72,72,255,67,67,67,255, +62,62,62,255,56,56,56,255,51,51,51,255,45,45,45,255,39,39,39,255,33,33,33,255,27,27,27,255,21,21,21,255, +15,15,15,255,9,9,9,255,5,5,5,255,3,3,3,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253,216,216,216,138,255,255,255,102,255,255,255,81,255,255,255,68, +255,255,255,61,255,255,255,55,255,255,255,51,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34,255,255,255,30, +255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11, +255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,31, +255,255,255,34,255,255,255,38,255,255,255,42,255,255,255,47,255,255,255,51,255,255,255,56,255,255,255,61,255,255,255,66, +255,255,255,72,255,255,255,78,255,255,255,84,255,255,255,89,255,255,255,96,255,255,255,102,255,255,255,110,255,255,255,121, +255,255,255,138,255,255,255,164,196,196,196,203,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,8,8,8,255,13,13,13,255,19,19,19,255,26,26,26,255, +33,33,33,255,39,39,39,255,46,46,46,255,52,52,52,255,57,57,57,255,64,64,64,255,69,69,69,255,74,74,74,255, +79,79,79,255,84,84,84,255,87,87,87,255,91,91,91,255,94,94,94,255,96,96,96,255,98,98,98,255,98,98,98,255, +98,98,98,255,97,97,97,255,94,94,94,255,91,91,91,255,87,87,87,255,83,83,83,255,78,78,78,255,73,73,73,255, +68,68,68,255,63,63,63,255,56,56,56,255,50,50,50,255,44,44,44,255,38,38,38,255,32,32,32,255,25,25,25,255, +18,18,18,255,13,13,13,255,8,8,8,255,4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,176,176,176,165,255,255,255,113,255,255,255,87,255,255,255,71, +255,255,255,62,255,255,255,56,255,255,255,52,255,255,255,47,255,255,255,43,255,255,255,39,255,255,255,35,255,255,255,31, +255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,32, +255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,52,255,255,255,57,255,255,255,62,255,255,255,68, +255,255,255,73,255,255,255,79,255,255,255,85,255,255,255,91,255,255,255,97,255,255,255,104,255,255,255,112,255,255,255,123, +255,255,255,142,255,255,255,167,105,105,105,223,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,1,1,1,255,3,3,3,255,6,6,6,255,10,10,10,255,16,16,16,255,23,23,23,255,30,30,30,255, +37,37,37,255,44,44,44,255,51,51,51,255,57,57,57,255,63,63,63,255,69,69,69,255,75,75,75,255,80,80,80,255, +85,85,85,255,90,90,90,255,95,95,95,255,98,98,98,255,102,102,102,255,104,104,104,255,106,106,106,255,106,106,106,255, +106,106,106,255,104,104,104,255,101,101,101,255,98,98,98,255,94,94,94,255,89,89,89,255,84,84,84,255,78,78,78,255, +73,73,73,255,67,67,67,255,61,61,61,255,55,55,55,255,49,49,49,255,42,42,42,255,36,36,36,255,29,29,29,255, +22,22,22,255,16,16,16,255,10,10,10,255,6,6,6,255,3,3,3,255,1,1,1,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,140,140,140,186,255,255,255,121,255,255,255,92,255,255,255,74, +255,255,255,64,255,255,255,58,255,255,255,53,255,255,255,48,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32, +255,255,255,29,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11, +255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,29,255,255,255,32, +255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,49,255,255,255,53,255,255,255,58,255,255,255,63,255,255,255,69, +255,255,255,75,255,255,255,81,255,255,255,87,255,255,255,93,255,255,255,99,255,255,255,106,255,255,255,115,255,255,255,128, +255,255,255,147,255,255,255,174,39,39,39,243,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,2,2,2,255,4,4,4,255,8,8,8,255,13,13,13,255,19,19,19,255,27,27,27,255,34,34,34,255, +41,41,41,255,48,48,48,255,55,55,55,255,62,62,62,255,68,68,68,255,74,74,74,255,80,80,80,255,86,86,86,255, +91,91,91,255,96,96,96,255,101,101,101,255,106,106,106,255,109,109,109,255,112,112,112,255,114,114,114,255,114,114,114,255, +114,114,114,255,112,112,112,255,109,109,109,255,105,105,105,255,100,100,100,255,95,95,95,255,90,90,90,255,84,84,84,255, +78,78,78,255,72,72,72,255,66,66,66,255,59,59,59,255,53,53,53,255,46,46,46,255,40,40,40,255,32,32,32,255, +26,26,26,255,19,19,19,255,13,13,13,255,8,8,8,255,4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,108,108,108,203,255,255,255,128,255,255,255,96,255,255,255,77, +255,255,255,65,255,255,255,59,255,255,255,54,255,255,255,49,255,255,255,45,255,255,255,40,255,255,255,36,255,255,255,33, +255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,12, +255,255,255,13,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,33, +255,255,255,36,255,255,255,41,255,255,255,45,255,255,255,49,255,255,255,54,255,255,255,59,255,255,255,65,255,255,255,70, +255,255,255,76,255,255,255,82,255,255,255,88,255,255,255,95,255,255,255,102,255,255,255,109,255,255,255,120,255,255,255,134, +255,255,255,155,227,227,227,188,3,3,3,254,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,3,3,3,255,6,6,6,255,10,10,10,255,15,15,15,255,22,22,22,255,30,30,30,255,38,38,38,255, +45,45,45,255,52,52,52,255,59,59,59,255,67,67,67,255,73,73,73,255,79,79,79,255,85,85,85,255,91,91,91,255, +97,97,97,255,103,103,103,255,108,108,108,255,113,113,113,255,117,117,117,255,120,120,120,255,121,121,121,255,121,121,121,255, +121,121,121,255,119,119,119,255,116,116,116,255,112,112,112,255,107,107,107,255,101,101,101,255,95,95,95,255,89,89,89,255, +83,83,83,255,77,77,77,255,70,70,70,255,64,64,64,255,56,56,56,255,49,49,49,255,43,43,43,255,36,36,36,255, +29,29,29,255,22,22,22,255,15,15,15,255,10,10,10,255,6,6,6,255,3,3,3,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,78,78,78,217,255,255,255,134,255,255,255,100,255,255,255,79, +255,255,255,67,255,255,255,60,255,255,255,55,255,255,255,50,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33, +255,255,255,30,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,30,255,255,255,33, +255,255,255,37,255,255,255,41,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60,255,255,255,66,255,255,255,71, +255,255,255,78,255,255,255,84,255,255,255,92,255,255,255,100,255,255,255,108,255,255,255,117,255,255,255,129,255,255,255,145, +255,255,255,167,167,167,167,208,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,3,3,3,255,7,7,7,255,11,11,11,255,18,18,18,255,25,25,25,255,33,33,33,255,41,41,41,255, +48,48,48,255,55,55,55,255,63,63,63,255,70,70,70,255,77,77,77,255,84,84,84,255,90,90,90,255,97,97,97,255, +103,103,103,255,109,109,109,255,114,114,114,255,120,120,120,255,124,124,124,255,127,127,127,255,129,129,129,255,129,129,129,255, +129,129,129,255,127,127,127,255,123,123,123,255,118,118,118,255,113,113,113,255,107,107,107,255,100,100,100,255,94,94,94,255, +87,87,87,255,80,80,80,255,73,73,73,255,67,67,67,255,60,60,60,255,52,52,52,255,45,45,45,255,39,39,39,255, +31,31,31,255,24,24,24,255,17,17,17,255,11,11,11,255,7,7,7,255,3,3,3,255,2,2,2,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,53,53,53,230,255,255,255,139,255,255,255,104,255,255,255,81, +255,255,255,68,255,255,255,61,255,255,255,55,255,255,255,51,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34, +255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,34, +255,255,255,38,255,255,255,42,255,255,255,46,255,255,255,51,255,255,255,56,255,255,255,61,255,255,255,66,255,255,255,73, +255,255,255,81,255,255,255,90,255,255,255,100,255,255,255,110,255,255,255,121,255,255,255,132,255,255,255,145,255,255,255,162, +255,255,255,184,120,120,120,227,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +2,2,2,255,4,4,4,255,8,8,8,255,13,13,13,255,20,20,20,255,28,28,28,255,36,36,36,255,44,44,44,255, +51,51,51,255,58,58,58,255,66,66,66,255,73,73,73,255,80,80,80,255,87,87,87,255,95,95,95,255,101,101,101,255, +108,108,108,255,114,114,114,255,120,120,120,255,126,126,126,255,131,131,131,255,134,134,134,255,137,137,137,255,137,137,137,255, +137,137,137,255,134,134,134,255,130,130,130,255,124,124,124,255,118,118,118,255,112,112,112,255,105,105,105,255,98,98,98,255, +91,91,91,255,84,84,84,255,77,77,77,255,70,70,70,255,63,63,63,255,55,55,55,255,48,48,48,255,41,41,41,255, +34,34,34,255,27,27,27,255,19,19,19,255,13,13,13,255,8,8,8,255,4,4,4,255,2,2,2,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,28,28,28,241,255,255,255,144,255,255,255,108,255,255,255,83, +255,255,255,69,255,255,255,62,255,255,255,56,255,255,255,51,255,255,255,47,255,255,255,42,255,255,255,38,255,255,255,34, +255,255,255,31,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,31,255,255,255,34, +255,255,255,38,255,255,255,42,255,255,255,47,255,255,255,52,255,255,255,57,255,255,255,62,255,255,255,68,255,255,255,77, +255,255,255,88,255,255,255,101,255,255,255,116,255,255,255,130,255,255,255,144,255,255,255,157,247,247,247,173,179,179,179,201, +108,108,108,227,27,27,27,250,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +2,2,2,255,5,5,5,255,9,9,9,255,14,14,14,255,22,22,22,255,30,30,30,255,38,38,38,255,46,46,46,255, +53,53,53,255,61,61,61,255,69,69,69,255,76,76,76,255,84,84,84,255,91,91,91,255,98,98,98,255,105,105,105,255, +113,113,113,255,119,119,119,255,126,126,126,255,131,131,131,255,137,137,137,255,142,142,142,255,145,145,145,255,145,145,145,255, +144,144,144,255,141,141,141,255,136,136,136,255,130,130,130,255,123,123,123,255,117,117,117,255,109,109,109,255,102,102,102,255, +95,95,95,255,87,87,87,255,80,80,80,255,72,72,72,255,65,65,65,255,58,58,58,255,50,50,50,255,43,43,43,255, +36,36,36,255,28,28,28,255,21,21,21,255,14,14,14,255,9,9,9,255,5,5,5,255,3,3,3,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,252,251,251,251,150,255,255,255,112,255,255,255,86, +255,255,255,71,255,255,255,62,255,255,255,57,255,255,255,52,255,255,255,47,255,255,255,43,255,255,255,38,255,255,255,34, +255,255,255,31,255,255,255,28,255,255,255,24,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12, +255,255,255,14,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,28,255,255,255,31,255,255,255,35, +255,255,255,38,255,255,255,43,255,255,255,47,255,255,255,52,255,255,255,57,255,255,255,63,255,255,255,70,255,255,255,82, +255,255,255,99,255,255,255,119,255,255,255,141,212,212,212,168,130,130,130,202,65,65,65,229,13,13,13,250,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,6,6,6,255,10,10,10,255,16,16,16,255,23,23,23,255,32,32,32,255,40,40,40,255,48,48,48,255, +55,55,55,255,63,63,63,255,71,71,71,255,79,79,79,255,86,86,86,255,94,94,94,255,101,101,101,255,109,109,109,255, +116,116,116,255,123,123,123,255,130,130,130,255,137,137,137,255,143,143,143,255,148,148,148,255,152,152,152,255,153,153,153,255, +152,152,152,255,147,147,147,255,142,142,142,255,135,135,135,255,128,128,128,255,120,120,120,255,113,113,113,255,105,105,105,255, +97,97,97,255,90,90,90,255,82,82,82,255,75,75,75,255,67,67,67,255,60,60,60,255,52,52,52,255,44,44,44,255, +37,37,37,255,30,30,30,255,22,22,22,255,15,15,15,255,10,10,10,255,6,6,6,255,3,3,3,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,215,215,215,163,255,255,255,116,255,255,255,88, +255,255,255,72,255,255,255,63,255,255,255,57,255,255,255,53,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35, +255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,53,255,255,255,58,255,255,255,63,255,255,255,73,255,255,255,88, +255,255,255,111,96,96,96,190,29,29,29,237,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,6,6,6,255,11,11,11,255,16,16,16,255,24,24,24,255,33,33,33,255,41,41,41,255,49,49,49,255, +56,56,56,255,65,65,65,255,72,72,72,255,80,80,80,255,88,88,88,255,96,96,96,255,104,104,104,255,111,111,111,255, +119,119,119,255,126,126,126,255,133,133,133,255,140,140,140,255,148,148,148,255,153,153,153,255,158,158,158,255,160,160,160,255, +158,158,158,255,153,153,153,255,146,146,146,255,139,139,139,255,131,131,131,255,123,123,123,255,116,116,116,255,108,108,108,255, +99,99,99,255,91,91,91,255,83,83,83,255,76,76,76,255,69,69,69,255,61,61,61,255,53,53,53,255,45,45,45,255, +38,38,38,255,31,31,31,255,23,23,23,255,16,16,16,255,10,10,10,255,6,6,6,255,3,3,3,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,172,172,172,178,255,255,255,120,255,255,255,91, +255,255,255,73,255,255,255,63,255,255,255,57,255,255,255,53,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35, +255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,75,255,255,255,93, +255,255,255,121,47,47,47,224,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,6,6,6,255,11,11,11,255,17,17,17,255,25,25,25,255,33,33,33,255,42,42,42,255,50,50,50,255, +57,57,57,255,66,66,66,255,73,73,73,255,81,81,81,255,89,89,89,255,97,97,97,255,105,105,105,255,112,112,112,255, +120,120,120,255,128,128,128,255,135,135,135,255,143,143,143,255,150,150,150,255,157,157,157,255,162,162,162,255,164,164,164,255, +162,162,162,255,157,157,157,255,150,150,150,255,141,141,141,255,132,132,132,255,125,125,125,255,117,117,117,255,109,109,109,255, +100,100,100,255,92,92,92,255,84,84,84,255,77,77,77,255,69,69,69,255,62,62,62,255,53,53,53,255,46,46,46,255, +39,39,39,255,31,31,31,255,24,24,24,255,17,17,17,255,11,11,11,255,7,7,7,255,4,4,4,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,135,135,135,191,255,255,255,123,255,255,255,93, +255,255,255,74,255,255,255,64,255,255,255,58,255,255,255,53,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35, +255,255,255,32,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,32,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,76,255,255,255,95, +255,255,255,126,75,75,75,213,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,6,6,6,255,12,12,12,255,17,17,17,255,25,25,25,255,34,34,34,255,42,42,42,255,50,50,50,255, +57,57,57,255,66,66,66,255,73,73,73,255,81,81,81,255,89,89,89,255,97,97,97,255,105,105,105,255,113,113,113,255, +120,120,120,255,128,128,128,255,136,136,136,255,143,143,143,255,151,151,151,255,158,158,158,255,163,163,163,255,165,165,165,255, +163,163,163,255,157,157,157,255,150,150,150,255,141,141,141,255,133,133,133,255,125,125,125,255,117,117,117,255,109,109,109,255, +101,101,101,255,93,93,93,255,85,85,85,255,77,77,77,255,70,70,70,255,62,62,62,255,54,54,54,255,46,46,46,255, +39,39,39,255,32,32,32,255,24,24,24,255,17,17,17,255,11,11,11,255,7,7,7,255,4,4,4,255,2,2,2,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,100,100,100,203,255,255,255,124,255,255,255,94, +255,255,255,75,255,255,255,64,255,255,255,58,255,255,255,53,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35, +255,255,255,32,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,32,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,76,255,255,255,95, +255,255,255,126,106,106,106,202,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,6,6,6,255,11,11,11,255,17,17,17,255,25,25,25,255,33,33,33,255,42,42,42,255,50,50,50,255, +57,57,57,255,66,66,66,255,73,73,73,255,81,81,81,255,89,89,89,255,96,96,96,255,104,104,104,255,112,112,112,255, +120,120,120,255,127,127,127,255,134,134,134,255,142,142,142,255,149,149,149,255,155,155,155,255,160,160,160,255,162,162,162,255, +160,160,160,255,155,155,155,255,148,148,148,255,140,140,140,255,132,132,132,255,124,124,124,255,117,117,117,255,109,109,109,255, +101,101,101,255,92,92,92,255,84,84,84,255,77,77,77,255,69,69,69,255,62,62,62,255,53,53,53,255,46,46,46,255, +39,39,39,255,32,32,32,255,24,24,24,255,17,17,17,255,11,11,11,255,7,7,7,255,4,4,4,255,2,2,2,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,67,67,67,213,255,255,255,121,255,255,255,92, +255,255,255,74,255,255,255,64,255,255,255,58,255,255,255,53,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35, +255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,32,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,74,255,255,255,93, +255,255,255,124,141,141,141,189,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,6,6,6,255,11,11,11,255,16,16,16,255,24,24,24,255,33,33,33,255,41,41,41,255,49,49,49,255, +57,57,57,255,65,65,65,255,73,73,73,255,80,80,80,255,88,88,88,255,95,95,95,255,103,103,103,255,111,111,111,255, +118,118,118,255,125,125,125,255,131,131,131,255,138,138,138,255,144,144,144,255,150,150,150,255,154,154,154,255,155,155,155,255, +154,154,154,255,149,149,149,255,143,143,143,255,137,137,137,255,129,129,129,255,122,122,122,255,115,115,115,255,107,107,107,255, +99,99,99,255,91,91,91,255,83,83,83,255,76,76,76,255,69,69,69,255,61,61,61,255,53,53,53,255,45,45,45,255, +39,39,39,255,31,31,31,255,23,23,23,255,17,17,17,255,11,11,11,255,6,6,6,255,3,3,3,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,253,70,70,70,204,255,255,255,112,255,255,255,88, +255,255,255,73,255,255,255,63,255,255,255,57,255,255,255,53,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35, +255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,73,255,255,255,90, +255,255,255,120,179,179,179,175,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +3,3,3,255,5,5,5,255,10,10,10,255,16,16,16,255,24,24,24,255,32,32,32,255,40,40,40,255,49,49,49,255, +56,56,56,255,64,64,64,255,71,71,71,255,79,79,79,255,86,86,86,255,93,93,93,255,101,101,101,255,108,108,108,255, +115,115,115,255,122,122,122,255,128,128,128,255,134,134,134,255,139,139,139,255,144,144,144,255,147,147,147,255,148,148,148,255, +147,147,147,255,143,143,143,255,138,138,138,255,132,132,132,255,126,126,126,255,119,119,119,255,112,112,112,255,104,104,104,255, +97,97,97,255,90,90,90,255,82,82,82,255,75,75,75,255,67,67,67,255,60,60,60,255,52,52,52,255,45,45,45,255, +38,38,38,255,30,30,30,255,23,23,23,255,16,16,16,255,10,10,10,255,6,6,6,255,3,3,3,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,19,19,19,247,74,74,74,224,141,141,141,192,225,225,225,152,255,255,255,123,255,255,255,100,255,255,255,83, +255,255,255,70,255,255,255,63,255,255,255,57,255,255,255,52,255,255,255,47,255,255,255,43,255,255,255,39,255,255,255,34, +255,255,255,31,255,255,255,28,255,255,255,24,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35, +255,255,255,39,255,255,255,43,255,255,255,47,255,255,255,52,255,255,255,57,255,255,255,63,255,255,255,72,255,255,255,88, +255,255,255,115,224,224,224,160,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +2,2,2,255,5,5,5,255,9,9,9,255,14,14,14,255,22,22,22,255,31,31,31,255,39,39,39,255,47,47,47,255, +54,54,54,255,62,62,62,255,70,70,70,255,77,77,77,255,84,84,84,255,91,91,91,255,98,98,98,255,105,105,105,255, +112,112,112,255,118,118,118,255,123,123,123,255,128,128,128,255,133,133,133,255,136,136,136,255,139,139,139,255,140,140,140,255, +139,139,139,255,136,136,136,255,132,132,132,255,127,127,127,255,121,121,121,255,115,115,115,255,108,108,108,255,101,101,101,255, +94,94,94,255,87,87,87,255,80,80,80,255,73,73,73,255,65,65,65,255,58,58,58,255,51,51,51,255,43,43,43,255, +36,36,36,255,29,29,29,255,21,21,21,255,15,15,15,255,9,9,9,255,5,5,5,255,3,3,3,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,254,51,51,51,242,114,114,114,219, +190,190,190,191,251,251,251,165,255,255,255,150,255,255,255,136,255,255,255,121,255,255,255,104,255,255,255,89,255,255,255,78, +255,255,255,69,255,255,255,62,255,255,255,56,255,255,255,52,255,255,255,47,255,255,255,42,255,255,255,38,255,255,255,34, +255,255,255,31,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12, +255,255,255,14,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,31,255,255,255,35, +255,255,255,38,255,255,255,42,255,255,255,47,255,255,255,52,255,255,255,57,255,255,255,62,255,255,255,71,255,255,255,85, +255,255,255,111,251,251,251,149,10,10,10,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +2,2,2,255,4,4,4,255,8,8,8,255,13,13,13,255,21,21,21,255,29,29,29,255,37,37,37,255,45,45,45,255, +52,52,52,255,60,60,60,255,67,67,67,255,74,74,74,255,81,81,81,255,88,88,88,255,95,95,95,255,101,101,101,255, +107,107,107,255,112,112,112,255,118,118,118,255,123,123,123,255,127,127,127,255,130,130,130,255,131,131,131,255,132,132,132,255, +131,131,131,255,129,129,129,255,126,126,126,255,121,121,121,255,115,115,115,255,110,110,110,255,104,104,104,255,97,97,97,255, +91,91,91,255,84,84,84,255,77,77,77,255,70,70,70,255,63,63,63,255,56,56,56,255,48,48,48,255,41,41,41,255, +34,34,34,255,27,27,27,255,20,20,20,255,13,13,13,255,8,8,8,255,5,5,5,255,2,2,2,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,92,92,92,235,255,255,255,189,255,255,255,168, +255,255,255,151,255,255,255,137,255,255,255,125,255,255,255,114,255,255,255,103,255,255,255,92,255,255,255,82,255,255,255,74, +255,255,255,67,255,255,255,61,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34, +255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,34, +255,255,255,38,255,255,255,42,255,255,255,46,255,255,255,51,255,255,255,56,255,255,255,61,255,255,255,69,255,255,255,83, +255,255,255,107,255,255,255,143,32,32,32,239,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,3,3,3,255,7,7,7,255,11,11,11,255,18,18,18,255,26,26,26,255,35,35,35,255,43,43,43,255, +50,50,50,255,57,57,57,255,65,65,65,255,71,71,71,255,78,78,78,255,84,84,84,255,91,91,91,255,96,96,96,255, +102,102,102,255,107,107,107,255,112,112,112,255,117,117,117,255,120,120,120,255,123,123,123,255,124,124,124,255,125,125,125,255, +124,124,124,255,122,122,122,255,119,119,119,255,115,115,115,255,110,110,110,255,104,104,104,255,99,99,99,255,93,93,93,255, +87,87,87,255,80,80,80,255,73,73,73,255,67,67,67,255,60,60,60,255,53,53,53,255,46,46,46,255,39,39,39,255, +32,32,32,255,25,25,25,255,18,18,18,255,12,12,12,255,7,7,7,255,4,4,4,255,2,2,2,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,134,134,134,218,255,255,255,171,255,255,255,149, +255,255,255,132,255,255,255,120,255,255,255,110,255,255,255,101,255,255,255,93,255,255,255,86,255,255,255,78,255,255,255,72, +255,255,255,66,255,255,255,60,255,255,255,55,255,255,255,51,255,255,255,46,255,255,255,41,255,255,255,37,255,255,255,33, +255,255,255,30,255,255,255,27,255,255,255,23,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,34, +255,255,255,37,255,255,255,41,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60,255,255,255,68,255,255,255,81, +255,255,255,103,255,255,255,138,57,57,57,227,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,2,2,2,255,5,5,5,255,9,9,9,255,15,15,15,255,23,23,23,255,31,31,31,255,39,39,39,255, +47,47,47,255,54,54,54,255,61,61,61,255,68,68,68,255,74,74,74,255,80,80,80,255,86,86,86,255,92,92,92,255, +97,97,97,255,102,102,102,255,107,107,107,255,111,111,111,255,113,113,113,255,116,116,116,255,117,117,117,255,117,117,117,255, +117,117,117,255,115,115,115,255,112,112,112,255,109,109,109,255,104,104,104,255,99,99,99,255,94,94,94,255,88,88,88,255, +82,82,82,255,76,76,76,255,70,70,70,255,64,64,64,255,57,57,57,255,50,50,50,255,43,43,43,255,36,36,36,255, +29,29,29,255,23,23,23,255,16,16,16,255,10,10,10,255,6,6,6,255,3,3,3,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,194,194,194,197,255,255,255,159,255,255,255,136, +255,255,255,121,255,255,255,111,255,255,255,103,255,255,255,96,255,255,255,89,255,255,255,83,255,255,255,77,255,255,255,71, +255,255,255,65,255,255,255,60,255,255,255,54,255,255,255,50,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33, +255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,33, +255,255,255,37,255,255,255,41,255,255,255,45,255,255,255,50,255,255,255,54,255,255,255,59,255,255,255,66,255,255,255,78, +255,255,255,99,255,255,255,132,84,84,84,214,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,2,2,2,255,4,4,4,255,8,8,8,255,13,13,13,255,20,20,20,255,28,28,28,255,36,36,36,255, +43,43,43,255,51,51,51,255,57,57,57,255,64,64,64,255,70,70,70,255,76,76,76,255,81,81,81,255,86,86,86,255, +92,92,92,255,96,96,96,255,101,101,101,255,104,104,104,255,107,107,107,255,109,109,109,255,110,110,110,255,111,111,111,255, +109,109,109,255,108,108,108,255,105,105,105,255,102,102,102,255,98,98,98,255,93,93,93,255,88,88,88,255,83,83,83,255, +77,77,77,255,72,72,72,255,66,66,66,255,60,60,60,255,53,53,53,255,47,47,47,255,40,40,40,255,33,33,33,255, +27,27,27,255,20,20,20,255,14,14,14,255,9,9,9,255,5,5,5,255,2,2,2,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,19,19,19,249,249,249,249,179,255,255,255,150,255,255,255,129, +255,255,255,116,255,255,255,107,255,255,255,100,255,255,255,93,255,255,255,87,255,255,255,81,255,255,255,75,255,255,255,69, +255,255,255,64,255,255,255,59,255,255,255,54,255,255,255,49,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32, +255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11, +255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,33, +255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,49,255,255,255,53,255,255,255,58,255,255,255,65,255,255,255,75, +255,255,255,95,255,255,255,126,112,112,112,199,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,1,1,1,255,3,3,3,255,6,6,6,255,10,10,10,255,16,16,16,255,24,24,24,255,32,32,32,255, +40,40,40,255,47,47,47,255,53,53,53,255,59,59,59,255,66,66,66,255,71,71,71,255,76,76,76,255,81,81,81,255, +86,86,86,255,90,90,90,255,94,94,94,255,97,97,97,255,100,100,100,255,102,102,102,255,103,103,103,255,103,103,103,255, +103,103,103,255,101,101,101,255,98,98,98,255,95,95,95,255,92,92,92,255,88,88,88,255,83,83,83,255,77,77,77,255, +72,72,72,255,67,67,67,255,62,62,62,255,55,55,55,255,50,50,50,255,43,43,43,255,37,37,37,255,30,30,30,255, +23,23,23,255,17,17,17,255,11,11,11,255,7,7,7,255,4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,81,81,81,230,255,255,255,170,255,255,255,144,255,255,255,125, +255,255,255,113,255,255,255,105,255,255,255,98,255,255,255,92,255,255,255,85,255,255,255,80,255,255,255,74,255,255,255,68, +255,255,255,63,255,255,255,57,255,255,255,53,255,255,255,48,255,255,255,44,255,255,255,39,255,255,255,35,255,255,255,31, +255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,32, +255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,48,255,255,255,52,255,255,255,57,255,255,255,63,255,255,255,73, +255,255,255,90,255,255,255,117,144,144,144,180,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,8,8,8,255,13,13,13,255,20,20,20,255,27,27,27,255, +35,35,35,255,42,42,42,255,49,49,49,255,54,54,54,255,60,60,60,255,66,66,66,255,71,71,71,255,76,76,76,255, +80,80,80,255,84,84,84,255,88,88,88,255,90,90,90,255,93,93,93,255,95,95,95,255,95,95,95,255,96,96,96,255, +95,95,95,255,94,94,94,255,92,92,92,255,89,89,89,255,85,85,85,255,82,82,82,255,77,77,77,255,72,72,72,255, +67,67,67,255,62,62,62,255,56,56,56,255,51,51,51,255,46,46,46,255,40,40,40,255,33,33,33,255,27,27,27,255, +20,20,20,255,14,14,14,255,9,9,9,255,5,5,5,255,3,3,3,255,1,1,1,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,169,169,169,210,255,255,255,166,255,255,255,140,255,255,255,122, +255,255,255,111,255,255,255,103,255,255,255,96,255,255,255,90,255,255,255,84,255,255,255,78,255,255,255,73,255,255,255,67, +255,255,255,61,255,255,255,56,255,255,255,52,255,255,255,47,255,255,255,43,255,255,255,39,255,255,255,35,255,255,255,31, +255,255,255,28,255,255,255,24,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,14,255,255,255,13,255,255,255,11, +255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,24,255,255,255,27,255,255,255,31, +255,255,255,34,255,255,255,38,255,255,255,42,255,255,255,47,255,255,255,51,255,255,255,56,255,255,255,62,255,255,255,70, +255,255,255,84,255,255,255,107,180,180,180,155,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,5,5,5,255,10,10,10,255,16,16,16,255,22,22,22,255, +30,30,30,255,37,37,37,255,43,43,43,255,49,49,49,255,55,55,55,255,60,60,60,255,66,66,66,255,70,70,70,255, +74,74,74,255,78,78,78,255,81,81,81,255,84,84,84,255,86,86,86,255,87,87,87,255,88,88,88,255,88,88,88,255, +87,87,87,255,86,86,86,255,84,84,84,255,82,82,82,255,79,79,79,255,75,75,75,255,71,71,71,255,67,67,67,255, +62,62,62,255,57,57,57,255,52,52,52,255,47,47,47,255,41,41,41,255,35,35,35,255,29,29,29,255,23,23,23,255, +17,17,17,255,11,11,11,255,7,7,7,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,13,13,13,253,246,246,246,198,255,255,255,167,255,255,255,141,255,255,255,122, +255,255,255,110,255,255,255,102,255,255,255,95,255,255,255,88,255,255,255,82,255,255,255,77,255,255,255,71,255,255,255,66, +255,255,255,60,255,255,255,55,255,255,255,51,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34,255,255,255,30, +255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10, +255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30, +255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60,255,255,255,67, +255,255,255,78,255,255,255,94,240,240,240,120,142,142,142,170,139,139,139,186,133,133,133,197,125,125,125,204,117,117,117,210, +109,109,109,216,102,102,102,223,96,96,96,230,54,54,54,244,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,3,3,3,255,6,6,6,255,11,11,11,255,17,17,17,255, +24,24,24,255,31,31,31,255,38,38,38,255,44,44,44,255,50,50,50,255,55,55,55,255,59,59,59,255,64,64,64,255, +68,68,68,255,71,71,71,255,74,74,74,255,77,77,77,255,79,79,79,255,80,80,80,255,80,80,80,255,80,80,80,255, +80,80,80,255,79,79,79,255,77,77,77,255,75,75,75,255,72,72,72,255,69,69,69,255,65,65,65,255,61,61,61,255, +56,56,56,255,52,52,52,255,47,47,47,255,42,42,42,255,36,36,36,255,30,30,30,255,24,24,24,255,18,18,18,255, +13,13,13,255,8,8,8,255,5,5,5,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,103,103,103,228,254,254,254,176,255,255,255,148,255,255,255,127, +255,255,255,112,255,255,255,101,255,255,255,93,255,255,255,86,255,255,255,81,255,255,255,75,255,255,255,69,255,255,255,64, +255,255,255,59,255,255,255,54,255,255,255,49,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33,255,255,255,29, +255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,29, +255,255,255,32,255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,49,255,255,255,53,255,255,255,58,255,255,255,64, +255,255,255,72,255,255,255,83,255,255,255,98,255,255,255,113,255,255,255,126,255,255,255,136,255,255,255,143,255,255,255,149, +255,255,255,156,255,255,255,166,255,255,255,179,218,218,218,203,5,5,5,254,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,7,7,7,255,12,12,12,255, +18,18,18,255,25,25,25,255,31,31,31,255,38,38,38,255,44,44,44,255,49,49,49,255,54,54,54,255,58,58,58,255, +61,61,61,255,65,65,65,255,67,67,67,255,70,70,70,255,71,71,71,255,72,72,72,255,73,73,73,255,73,73,73,255, +72,72,72,255,72,72,72,255,70,70,70,255,68,68,68,255,65,65,65,255,63,63,63,255,59,59,59,255,55,55,55,255, +51,51,51,255,47,47,47,255,42,42,42,255,36,36,36,255,31,31,31,255,25,25,25,255,19,19,19,255,14,14,14,255, +9,9,9,255,5,5,5,255,3,3,3,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,116,116,116,216,255,255,255,162,255,255,255,137, +255,255,255,117,255,255,255,103,255,255,255,93,255,255,255,85,255,255,255,79,255,255,255,73,255,255,255,68,255,255,255,62, +255,255,255,57,255,255,255,53,255,255,255,48,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32,255,255,255,28, +255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28, +255,255,255,31,255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,47,255,255,255,52,255,255,255,56,255,255,255,62, +255,255,255,68,255,255,255,76,255,255,255,85,255,255,255,94,255,255,255,104,255,255,255,111,255,255,255,118,255,255,255,125, +255,255,255,132,255,255,255,142,255,255,255,157,255,255,255,177,85,85,85,230,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,8,8,8,255, +13,13,13,255,19,19,19,255,25,25,25,255,31,31,31,255,37,37,37,255,42,42,42,255,47,47,47,255,51,51,51,255, +55,55,55,255,58,58,58,255,61,61,61,255,63,63,63,255,65,65,65,255,66,66,66,255,67,67,67,255,67,67,67,255, +66,66,66,255,65,65,65,255,64,64,64,255,61,61,61,255,59,59,59,255,56,56,56,255,53,53,53,255,49,49,49,255, +46,46,46,255,41,41,41,255,36,36,36,255,31,31,31,255,25,25,25,255,20,20,20,255,15,15,15,255,10,10,10,255, +6,6,6,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,131,131,131,206,255,255,255,153, +255,255,255,128,255,255,255,108,255,255,255,94,255,255,255,84,255,255,255,77,255,255,255,71,255,255,255,66,255,255,255,61, +255,255,255,56,255,255,255,51,255,255,255,47,255,255,255,43,255,255,255,38,255,255,255,34,255,255,255,31,255,255,255,27, +255,255,255,24,255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9, +255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27, +255,255,255,30,255,255,255,34,255,255,255,38,255,255,255,42,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60, +255,255,255,65,255,255,255,71,255,255,255,77,255,255,255,84,255,255,255,91,255,255,255,98,255,255,255,104,255,255,255,110, +255,255,255,118,255,255,255,126,255,255,255,140,255,255,255,160,219,219,219,191,9,9,9,252,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255, +8,8,8,255,13,13,13,255,18,18,18,255,24,24,24,255,30,30,30,255,35,35,35,255,40,40,40,255,44,44,44,255, +47,47,47,255,51,51,51,255,53,53,53,255,56,56,56,255,57,57,57,255,58,58,58,255,59,59,59,255,59,59,59,255, +58,58,58,255,57,57,57,255,56,56,56,255,54,54,54,255,52,52,52,255,49,49,49,255,46,46,46,255,43,43,43,255, +39,39,39,255,35,35,35,255,30,30,30,255,25,25,25,255,20,20,20,255,15,15,15,255,10,10,10,255,6,6,6,255, +4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,254,148,148,148,196, +255,255,255,144,255,255,255,117,255,255,255,98,255,255,255,84,255,255,255,75,255,255,255,69,255,255,255,64,255,255,255,59, +255,255,255,54,255,255,255,50,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33,255,255,255,30,255,255,255,26, +255,255,255,24,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,23,255,255,255,26, +255,255,255,29,255,255,255,33,255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,49,255,255,255,53,255,255,255,58, +255,255,255,63,255,255,255,68,255,255,255,74,255,255,255,80,255,255,255,85,255,255,255,91,255,255,255,97,255,255,255,103, +255,255,255,110,255,255,255,118,255,255,255,129,255,255,255,146,255,255,255,170,119,119,119,220,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255, +4,4,4,255,8,8,8,255,12,12,12,255,17,17,17,255,22,22,22,255,27,27,27,255,32,32,32,255,36,36,36,255, +40,40,40,255,44,44,44,255,46,46,46,255,48,48,48,255,50,50,50,255,51,51,51,255,51,51,51,255,51,51,51,255, +51,51,51,255,50,50,50,255,49,49,49,255,47,47,47,255,45,45,45,255,42,42,42,255,40,40,40,255,37,37,37,255, +33,33,33,255,29,29,29,255,24,24,24,255,19,19,19,255,14,14,14,255,10,10,10,255,6,6,6,255,4,4,4,255, +2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,253, +162,162,162,182,255,255,255,128,255,255,255,103,255,255,255,85,255,255,255,75,255,255,255,67,255,255,255,62,255,255,255,57, +255,255,255,53,255,255,255,48,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32,255,255,255,29,255,255,255,26, +255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,22,255,255,255,25, +255,255,255,28,255,255,255,31,255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,47,255,255,255,51,255,255,255,56, +255,255,255,61,255,255,255,66,255,255,255,71,255,255,255,76,255,255,255,82,255,255,255,88,255,255,255,94,255,255,255,99, +255,255,255,106,255,255,255,113,255,255,255,122,255,255,255,136,255,255,255,157,248,248,248,185,43,43,43,244,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +2,2,2,255,4,4,4,255,7,7,7,255,11,11,11,255,16,16,16,255,20,20,20,255,24,24,24,255,28,28,28,255, +32,32,32,255,35,35,35,255,38,38,38,255,40,40,40,255,42,42,42,255,43,43,43,255,43,43,43,255,43,43,43,255, +43,43,43,255,43,43,43,255,42,42,42,255,40,40,40,255,38,38,38,255,36,36,36,255,33,33,33,255,29,29,29,255, +26,26,26,255,22,22,22,255,18,18,18,255,14,14,14,255,9,9,9,255,6,6,6,255,4,4,4,255,2,2,2,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +9,9,9,250,170,170,170,159,255,255,255,107,255,255,255,85,255,255,255,73,255,255,255,65,255,255,255,60,255,255,255,56, +255,255,255,51,255,255,255,47,255,255,255,42,255,255,255,39,255,255,255,35,255,255,255,31,255,255,255,28,255,255,255,25, +255,255,255,22,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24, +255,255,255,27,255,255,255,30,255,255,255,34,255,255,255,37,255,255,255,41,255,255,255,45,255,255,255,50,255,255,255,54, +255,255,255,59,255,255,255,64,255,255,255,69,255,255,255,74,255,255,255,79,255,255,255,85,255,255,255,91,255,255,255,96, +255,255,255,102,255,255,255,109,255,255,255,117,255,255,255,130,255,255,255,149,255,255,255,176,194,194,194,213,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,2,2,2,255,4,4,4,255,6,6,6,255,9,9,9,255,13,13,13,255,17,17,17,255,20,20,20,255, +24,24,24,255,27,27,27,255,29,29,29,255,32,32,32,255,33,33,33,255,34,34,34,255,35,35,35,255,35,35,35,255, +35,35,35,255,34,34,34,255,34,34,34,255,32,32,32,255,30,30,30,255,28,28,28,255,25,25,25,255,22,22,22,255, +19,19,19,255,15,15,15,255,12,12,12,255,8,8,8,255,5,5,5,255,3,3,3,255,2,2,2,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,112,112,112,181,255,255,255,106,255,255,255,84,255,255,255,71,255,255,255,63,255,255,255,58,255,255,255,54, +255,255,255,49,255,255,255,45,255,255,255,41,255,255,255,37,255,255,255,33,255,255,255,30,255,255,255,27,255,255,255,24, +255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,23, +255,255,255,26,255,255,255,29,255,255,255,32,255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,48,255,255,255,52, +255,255,255,57,255,255,255,61,255,255,255,66,255,255,255,71,255,255,255,77,255,255,255,82,255,255,255,88,255,255,255,94, +255,255,255,99,255,255,255,106,255,255,255,114,255,255,255,127,255,255,255,147,255,255,255,175,120,120,120,225,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,2,2,2,255,3,3,3,255,5,5,5,255,8,8,8,255,10,10,10,255,13,13,13,255, +16,16,16,255,19,19,19,255,21,21,21,255,23,23,23,255,25,25,25,255,26,26,26,255,27,27,27,255,27,27,27,255, +27,27,27,255,26,26,26,255,26,26,26,255,24,24,24,255,22,22,22,255,20,20,20,255,18,18,18,255,15,15,15,255, +12,12,12,255,9,9,9,255,7,7,7,255,4,4,4,255,3,3,3,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +65,65,65,218,254,254,254,129,255,255,255,99,255,255,255,80,255,255,255,68,255,255,255,61,255,255,255,56,255,255,255,52, +255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,36,255,255,255,32,255,255,255,28,255,255,255,25,255,255,255,23, +255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,22, +255,255,255,24,255,255,255,28,255,255,255,31,255,255,255,34,255,255,255,38,255,255,255,42,255,255,255,46,255,255,255,50, +255,255,255,55,255,255,255,59,255,255,255,64,255,255,255,69,255,255,255,74,255,255,255,79,255,255,255,85,255,255,255,90, +255,255,255,96,255,255,255,103,255,255,255,113,255,255,255,128,255,255,255,151,231,231,231,184,14,14,14,251,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255,6,6,6,255,8,8,8,255, +9,9,9,255,11,11,11,255,14,14,14,255,15,15,15,255,17,17,17,255,18,18,18,255,18,18,18,255,19,19,19,255, +19,19,19,255,18,18,18,255,18,18,18,255,16,16,16,255,15,15,15,255,13,13,13,255,11,11,11,255,9,9,9,255, +7,7,7,255,5,5,5,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,31,31,31,239, +237,237,237,150,255,255,255,114,255,255,255,89,255,255,255,74,255,255,255,65,255,255,255,59,255,255,255,54,255,255,255,50, +255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34,255,255,255,31,255,255,255,27,255,255,255,24,255,255,255,22, +255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21, +255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,33,255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,48, +255,255,255,52,255,255,255,57,255,255,255,61,255,255,255,66,255,255,255,71,255,255,255,76,255,255,255,82,255,255,255,87, +255,255,255,93,255,255,255,101,255,255,255,113,255,255,255,132,255,255,255,159,98,98,98,221,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,4,4,4,255, +5,5,5,255,6,6,6,255,7,7,7,255,8,8,8,255,10,10,10,255,11,11,11,255,11,11,11,255,12,12,12,255, +12,12,12,255,11,11,11,255,11,11,11,255,9,9,9,255,8,8,8,255,7,7,7,255,6,6,6,255,5,5,5,255, +3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,10,10,10,250,197,197,197,169, +255,255,255,125,255,255,255,98,255,255,255,80,255,255,255,68,255,255,255,61,255,255,255,56,255,255,255,52,255,255,255,48, +255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21, +255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,18,255,255,255,20, +255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35,255,255,255,38,255,255,255,42,255,255,255,46, +255,255,255,50,255,255,255,55,255,255,255,59,255,255,255,64,255,255,255,69,255,255,255,74,255,255,255,79,255,255,255,84, +255,255,255,91,255,255,255,101,255,255,255,116,255,255,255,140,216,216,216,178,7,7,7,252,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +2,2,2,255,3,3,3,255,3,3,3,255,4,4,4,255,5,5,5,255,5,5,5,255,6,6,6,255,6,6,6,255, +6,6,6,255,6,6,6,255,5,5,5,255,5,5,5,255,4,4,4,255,3,3,3,255,3,3,3,255,2,2,2,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,144,144,144,190,255,255,255,133, +255,255,255,105,255,255,255,85,255,255,255,72,255,255,255,64,255,255,255,58,255,255,255,54,255,255,255,50,255,255,255,46, +255,255,255,42,255,255,255,38,255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20, +255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19, +255,255,255,21,255,255,255,24,255,255,255,26,255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,40,255,255,255,44, +255,255,255,48,255,255,255,52,255,255,255,57,255,255,255,61,255,255,255,66,255,255,255,70,255,255,255,76,255,255,255,81, +255,255,255,89,255,255,255,101,255,255,255,121,255,255,255,149,79,79,79,222,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,2,2,2,255,2,2,2,255,2,2,2,255,3,3,3,255,3,3,3,255, +3,3,3,255,3,3,3,255,2,2,2,255,2,2,2,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,88,88,88,213,255,255,255,140,255,255,255,111, +255,255,255,89,255,255,255,75,255,255,255,66,255,255,255,60,255,255,255,56,255,255,255,52,255,255,255,48,255,255,255,44, +255,255,255,40,255,255,255,36,255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19, +255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18, +255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,35,255,255,255,38,255,255,255,42, +255,255,255,46,255,255,255,50,255,255,255,54,255,255,255,58,255,255,255,63,255,255,255,68,255,255,255,73,255,255,255,79, +255,255,255,87,255,255,255,102,255,255,255,125,196,196,196,171,3,3,3,254,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,2,2,2,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,44,44,44,233,246,246,246,149,255,255,255,118,255,255,255,94, +255,255,255,78,255,255,255,69,255,255,255,62,255,255,255,58,255,255,255,53,255,255,255,49,255,255,255,45,255,255,255,42, +255,255,255,38,255,255,255,35,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15,255,255,255,17, +255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,40, +255,255,255,44,255,255,255,48,255,255,255,52,255,255,255,56,255,255,255,60,255,255,255,65,255,255,255,70,255,255,255,76, +255,255,255,85,255,255,255,101,255,255,255,126,57,57,57,220,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +66,66,66,238,220,220,220,207,140,140,140,219,23,23,23,248,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,17,17,17,246,215,215,215,163,255,255,255,124,255,255,255,99,255,255,255,82, +255,255,255,71,255,255,255,64,255,255,255,59,255,255,255,55,255,255,255,51,255,255,255,47,255,255,255,43,255,255,255,40, +255,255,255,36,255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,17, +255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16, +255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,34,255,255,255,38, +255,255,255,42,255,255,255,46,255,255,255,49,255,255,255,54,255,255,255,58,255,255,255,62,255,255,255,67,255,255,255,73, +255,255,255,81,255,255,255,97,244,244,244,124,40,40,40,226,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,24,24,24,248,151,151,151,212, +254,254,254,182,255,255,255,174,255,255,255,172,241,241,241,179,116,116,116,214,14,14,14,250,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,3,3,3,254,167,167,167,181,255,255,255,130,255,255,255,104,255,255,255,85,255,255,255,73, +255,255,255,66,255,255,255,61,255,255,255,56,255,255,255,52,255,255,255,48,255,255,255,45,255,255,255,41,255,255,255,37, +255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16, +255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,15, +255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,26,255,255,255,30,255,255,255,33,255,255,255,36, +255,255,255,40,255,255,255,43,255,255,255,47,255,255,255,51,255,255,255,55,255,255,255,59,255,255,255,64,255,255,255,69, +255,255,255,77,255,255,255,89,255,255,255,109,245,245,245,139,86,86,86,211,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,17,17,17,251,117,117,117,223,239,239,239,186,255,255,255,168, +255,255,255,156,255,255,255,148,255,255,255,146,255,255,255,149,255,255,255,156,229,229,229,172,96,96,96,215,8,8,8,251, +0,0,0,255,0,0,0,255,107,107,107,200,255,255,255,134,255,255,255,108,255,255,255,88,255,255,255,75,255,255,255,67, +255,255,255,62,255,255,255,58,255,255,255,54,255,255,255,50,255,255,255,46,255,255,255,42,255,255,255,39,255,255,255,36, +255,255,255,32,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14, +255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31,255,255,255,34, +255,255,255,38,255,255,255,41,255,255,255,45,255,255,255,49,255,255,255,53,255,255,255,57,255,255,255,61,255,255,255,66, +255,255,255,72,255,255,255,81,255,255,255,96,255,255,255,116,255,255,255,141,144,144,144,192,10,10,10,250,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,10,10,10,254,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,68,68,68,241,238,238,238,199,255,255,255,177,255,255,255,160,255,255,255,146, +255,255,255,136,255,255,255,130,255,255,255,127,255,255,255,127,255,255,255,130,255,255,255,137,255,255,255,146,213,213,213,162, +72,72,72,211,56,56,56,215,252,252,252,132,255,255,255,110,255,255,255,91,255,255,255,77,255,255,255,68,255,255,255,63, +255,255,255,58,255,255,255,55,255,255,255,51,255,255,255,47,255,255,255,44,255,255,255,40,255,255,255,37,255,255,255,34, +255,255,255,30,255,255,255,28,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14, +255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,32, +255,255,255,36,255,255,255,39,255,255,255,43,255,255,255,46,255,255,255,50,255,255,255,54,255,255,255,58,255,255,255,62, +255,255,255,68,255,255,255,74,255,255,255,84,255,255,255,97,255,255,255,116,255,255,255,138,197,197,197,174,32,32,32,240, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,119,119,119,231,243,243,243,213,161,161,161,228,50,50,50,248,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,103,103,103,229,255,255,255,180,255,255,255,158,255,255,255,142,255,255,255,131, +255,255,255,124,255,255,255,119,255,255,255,115,255,255,255,113,255,255,255,113,255,255,255,115,255,255,255,119,255,255,255,122, +255,255,255,122,254,254,254,117,255,255,255,105,255,255,255,91,255,255,255,78,255,255,255,69,255,255,255,64,255,255,255,59, +255,255,255,55,255,255,255,52,255,255,255,48,255,255,255,45,255,255,255,41,255,255,255,38,255,255,255,35,255,255,255,32, +255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,13, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,28,255,255,255,31, +255,255,255,34,255,255,255,37,255,255,255,41,255,255,255,44,255,255,255,48,255,255,255,52,255,255,255,56,255,255,255,60, +255,255,255,64,255,255,255,69,255,255,255,75,255,255,255,84,255,255,255,96,255,255,255,112,255,255,255,133,237,237,237,160, +69,69,69,224,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,3,3,3,254,134,134,134,219,255,255,255,190,255,255,255,191,255,255,255,202,81,81,81,241,0,0,0,255, +0,0,0,255,7,7,7,255,102,102,102,246,9,9,9,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,110,110,110,222,255,255,255,168,255,255,255,145,255,255,255,130,255,255,255,121, +255,255,255,116,255,255,255,111,255,255,255,108,255,255,255,104,255,255,255,102,255,255,255,100,255,255,255,100,255,255,255,100, +255,255,255,98,255,255,255,93,255,255,255,86,255,255,255,77,255,255,255,70,255,255,255,64,255,255,255,60,255,255,255,56, +255,255,255,52,255,255,255,49,255,255,255,45,255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,30, +255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,26,255,255,255,29, +255,255,255,32,255,255,255,35,255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,49,255,255,255,53,255,255,255,57, +255,255,255,61,255,255,255,65,255,255,255,70,255,255,255,75,255,255,255,84,255,255,255,94,255,255,255,109,255,255,255,128, +253,253,253,151,123,123,123,204,5,5,5,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +5,5,5,253,149,149,149,208,255,255,255,175,255,255,255,169,255,255,255,175,255,255,255,192,29,29,29,248,0,0,0,255, +0,0,0,255,37,37,37,250,255,255,255,225,75,75,75,245,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,116,116,116,217,255,255,255,160,255,255,255,136,255,255,255,122,255,255,255,114, +255,255,255,109,255,255,255,106,255,255,255,102,255,255,255,98,255,255,255,95,255,255,255,92,255,255,255,89,255,255,255,87, +255,255,255,84,255,255,255,80,255,255,255,75,255,255,255,69,255,255,255,64,255,255,255,60,255,255,255,56,255,255,255,53, +255,255,255,49,255,255,255,46,255,255,255,43,255,255,255,40,255,255,255,36,255,255,255,33,255,255,255,31,255,255,255,28, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,11, +255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,27, +255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,40,255,255,255,43,255,255,255,47,255,255,255,50,255,255,255,54, +255,255,255,58,255,255,255,62,255,255,255,66,255,255,255,70,255,255,255,76,255,255,255,83,255,255,255,93,255,255,255,106, +255,255,255,123,255,255,255,145,178,178,178,183,22,22,22,245,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,251, +165,165,165,199,255,255,255,165,255,255,255,155,255,255,255,154,255,255,255,165,224,224,224,192,1,1,1,255,0,0,0,255, +0,0,0,255,67,67,67,243,255,255,255,211,148,148,148,228,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,125,125,125,211,255,255,255,154,255,255,255,130,255,255,255,116,255,255,255,108, +255,255,255,104,255,255,255,101,255,255,255,97,255,255,255,93,255,255,255,90,255,255,255,86,255,255,255,83,255,255,255,80, +255,255,255,76,255,255,255,72,255,255,255,68,255,255,255,64,255,255,255,60,255,255,255,57,255,255,255,53,255,255,255,50, +255,255,255,47,255,255,255,43,255,255,255,40,255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,26, +255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,26, +255,255,255,29,255,255,255,32,255,255,255,35,255,255,255,38,255,255,255,41,255,255,255,44,255,255,255,48,255,255,255,52, +255,255,255,55,255,255,255,59,255,255,255,63,255,255,255,67,255,255,255,71,255,255,255,76,255,255,255,82,255,255,255,91, +255,255,255,103,255,255,255,119,255,255,255,138,223,223,223,165,51,51,51,230,0,0,0,255,13,13,13,248,178,178,178,187, +255,255,255,156,255,255,255,144,255,255,255,139,255,255,255,144,255,255,255,161,159,159,159,204,0,0,0,255,0,0,0,255, +0,0,0,255,97,97,97,232,255,255,255,197,228,228,228,205,4,4,4,254,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,132,132,132,205,255,255,255,148,255,255,255,124,255,255,255,110,255,255,255,103, +255,255,255,99,255,255,255,96,255,255,255,92,255,255,255,89,255,255,255,85,255,255,255,82,255,255,255,78,255,255,255,75, +255,255,255,71,255,255,255,67,255,255,255,64,255,255,255,60,255,255,255,57,255,255,255,54,255,255,255,50,255,255,255,47, +255,255,255,44,255,255,255,41,255,255,255,38,255,255,255,35,255,255,255,32,255,255,255,30,255,255,255,27,255,255,255,24, +255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,25, +255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,46,255,255,255,49, +255,255,255,53,255,255,255,57,255,255,255,60,255,255,255,64,255,255,255,68,255,255,255,72,255,255,255,76,255,255,255,82, +255,255,255,90,255,255,255,100,255,255,255,114,255,255,255,129,249,249,249,145,99,99,99,196,188,188,188,167,255,255,255,143, +255,255,255,134,255,255,255,128,255,255,255,128,255,255,255,139,255,255,255,161,102,102,102,220,0,0,0,255,0,0,0,255, +0,0,0,255,127,127,127,220,255,255,255,185,255,255,255,188,48,48,48,241,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,141,141,141,197,255,255,255,141,255,255,255,118,255,255,255,105,255,255,255,98, +255,255,255,94,255,255,255,91,255,255,255,87,255,255,255,84,255,255,255,81,255,255,255,77,255,255,255,74,255,255,255,71, +255,255,255,67,255,255,255,64,255,255,255,60,255,255,255,57,255,255,255,54,255,255,255,50,255,255,255,48,255,255,255,44, +255,255,255,41,255,255,255,38,255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,25,255,255,255,23, +255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,22,255,255,255,24, +255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,37,255,255,255,40,255,255,255,43,255,255,255,47, +255,255,255,50,255,255,255,54,255,255,255,58,255,255,255,61,255,255,255,65,255,255,255,68,255,255,255,72,255,255,255,76, +255,255,255,82,255,255,255,88,255,255,255,97,255,255,255,107,255,255,255,117,255,255,255,123,255,255,255,124,255,255,255,121, +255,255,255,117,255,255,255,117,255,255,255,123,255,255,255,137,255,255,255,163,53,53,53,235,0,0,0,255,0,0,0,255, +0,0,0,255,160,160,160,206,255,255,255,173,255,255,255,175,118,118,118,218,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,147,147,147,186,255,255,255,132,255,255,255,111,255,255,255,100,255,255,255,93, +255,255,255,89,255,255,255,86,255,255,255,83,255,255,255,80,255,255,255,77,255,255,255,73,255,255,255,70,255,255,255,67, +255,255,255,64,255,255,255,60,255,255,255,57,255,255,255,54,255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,42, +255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22, +255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,38,255,255,255,41,255,255,255,45, +255,255,255,48,255,255,255,51,255,255,255,55,255,255,255,58,255,255,255,62,255,255,255,65,255,255,255,69,255,255,255,73, +255,255,255,76,255,255,255,81,255,255,255,86,255,255,255,93,255,255,255,98,255,255,255,103,255,255,255,105,255,255,255,106, +255,255,255,107,255,255,255,110,255,255,255,118,255,255,255,137,252,252,252,166,13,13,13,250,0,0,0,255,0,0,0,255, +0,0,0,255,196,196,196,191,255,255,255,162,255,255,255,161,199,199,199,188,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,7,7,7,251,161,161,161,168,255,255,255,120,255,255,255,103,255,255,255,93,255,255,255,88, +255,255,255,85,255,255,255,82,255,255,255,79,255,255,255,76,255,255,255,73,255,255,255,69,255,255,255,66,255,255,255,63, +255,255,255,60,255,255,255,57,255,255,255,54,255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,42,255,255,255,39, +255,255,255,37,255,255,255,34,255,255,255,32,255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20, +255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22, +255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,31,255,255,255,34,255,255,255,37,255,255,255,40,255,255,255,43, +255,255,255,46,255,255,255,49,255,255,255,52,255,255,255,56,255,255,255,59,255,255,255,62,255,255,255,66,255,255,255,69, +255,255,255,73,255,255,255,76,255,255,255,80,255,255,255,85,255,255,255,89,255,255,255,92,255,255,255,95,255,255,255,97, +255,255,255,100,255,255,255,105,255,255,255,117,255,255,255,138,202,202,202,179,0,0,0,255,0,0,0,255,0,0,0,255, +2,2,2,254,232,232,232,177,255,255,255,151,255,255,255,147,253,253,253,159,27,27,27,242,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,6,6,6,253,23,23,23,246,48,48,48,235,75,75,75,224,105,105,105,212,136,136,136,199, +172,172,172,184,212,212,212,164,245,245,245,142,255,255,255,122,255,255,255,106,255,255,255,94,255,255,255,87,255,255,255,83, +255,255,255,80,255,255,255,78,255,255,255,75,255,255,255,72,255,255,255,69,255,255,255,66,255,255,255,63,255,255,255,60, +255,255,255,57,255,255,255,54,255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,43,255,255,255,40,255,255,255,37, +255,255,255,35,255,255,255,32,255,255,255,30,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19, +255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21, +255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,38,255,255,255,41, +255,255,255,44,255,255,255,47,255,255,255,50,255,255,255,53,255,255,255,56,255,255,255,60,255,255,255,63,255,255,255,66, +255,255,255,70,255,255,255,73,255,255,255,76,255,255,255,79,255,255,255,83,255,255,255,86,255,255,255,89,255,255,255,92, +255,255,255,95,255,255,255,102,255,255,255,116,255,255,255,140,140,140,140,198,0,0,0,255,0,0,0,255,0,0,0,255, +14,14,14,249,254,254,254,164,255,255,255,141,255,255,255,133,255,255,255,140,127,127,127,188,94,94,94,208,129,129,129,200, +166,166,166,190,207,207,207,177,242,242,242,166,255,255,255,159,255,255,255,153,255,255,255,148,255,255,255,143,255,255,255,138, +255,255,255,131,255,255,255,124,255,255,255,114,255,255,255,103,255,255,255,94,255,255,255,87,255,255,255,82,255,255,255,79, +255,255,255,76,255,255,255,74,255,255,255,71,255,255,255,68,255,255,255,65,255,255,255,62,255,255,255,59,255,255,255,56, +255,255,255,54,255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,43,255,255,255,40,255,255,255,38,255,255,255,35, +255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,20, +255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,33,255,255,255,36,255,255,255,39, +255,255,255,42,255,255,255,45,255,255,255,48,255,255,255,51,255,255,255,54,255,255,255,57,255,255,255,60,255,255,255,63, +255,255,255,66,255,255,255,70,255,255,255,73,255,255,255,76,255,255,255,79,255,255,255,82,255,255,255,85,255,255,255,88, +255,255,255,92,255,255,255,99,255,255,255,115,255,255,255,143,89,89,89,216,0,0,0,255,0,0,0,255,0,0,0,255, +36,36,36,240,255,255,255,157,255,255,255,132,255,255,255,121,255,255,255,122,255,255,255,129,255,255,255,136,255,255,255,138, +255,255,255,138,255,255,255,135,255,255,255,131,255,255,255,127,255,255,255,123,255,255,255,118,255,255,255,114,255,255,255,111, +255,255,255,106,255,255,255,101,255,255,255,96,255,255,255,90,255,255,255,85,255,255,255,81,255,255,255,78,255,255,255,75, +255,255,255,72,255,255,255,70,255,255,255,67,255,255,255,64,255,255,255,62,255,255,255,59,255,255,255,56,255,255,255,53, +255,255,255,51,255,255,255,48,255,255,255,46,255,255,255,43,255,255,255,40,255,255,255,38,255,255,255,36,255,255,255,33, +255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17, +255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20, +255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,37, +255,255,255,40,255,255,255,43,255,255,255,46,255,255,255,49,255,255,255,52,255,255,255,55,255,255,255,58,255,255,255,61, +255,255,255,64,255,255,255,67,255,255,255,70,255,255,255,73,255,255,255,76,255,255,255,78,255,255,255,81,255,255,255,84, +255,255,255,88,255,255,255,98,255,255,255,116,255,255,255,146,46,46,46,233,0,0,0,255,0,0,0,255,0,0,0,255, +59,59,59,229,255,255,255,150,255,255,255,124,255,255,255,111,255,255,255,108,255,255,255,110,255,255,255,113,255,255,255,114, +255,255,255,112,255,255,255,110,255,255,255,107,255,255,255,105,255,255,255,102,255,255,255,100,255,255,255,97,255,255,255,94, +255,255,255,91,255,255,255,88,255,255,255,85,255,255,255,82,255,255,255,79,255,255,255,76,255,255,255,74,255,255,255,71, +255,255,255,69,255,255,255,66,255,255,255,64,255,255,255,61,255,255,255,58,255,255,255,56,255,255,255,53,255,255,255,51, +255,255,255,48,255,255,255,46,255,255,255,43,255,255,255,41,255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16, +255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20, +255,255,255,21,255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36, +255,255,255,39,255,255,255,41,255,255,255,44,255,255,255,47,255,255,255,50,255,255,255,53,255,255,255,56,255,255,255,58, +255,255,255,61,255,255,255,64,255,255,255,67,255,255,255,70,255,255,255,72,255,255,255,75,255,255,255,78,255,255,255,80, +255,255,255,85,255,255,255,96,255,255,255,118,250,250,250,151,12,12,12,249,0,0,0,255,0,0,0,255,0,0,0,255, +83,83,83,218,255,255,255,143,255,255,255,117,255,255,255,104,255,255,255,99,255,255,255,98,255,255,255,99,255,255,255,99, +255,255,255,98,255,255,255,96,255,255,255,94,255,255,255,93,255,255,255,91,255,255,255,89,255,255,255,87,255,255,255,85, +255,255,255,83,255,255,255,81,255,255,255,79,255,255,255,77,255,255,255,74,255,255,255,72,255,255,255,70,255,255,255,68, +255,255,255,65,255,255,255,63,255,255,255,60,255,255,255,58,255,255,255,56,255,255,255,53,255,255,255,50,255,255,255,48, +255,255,255,46,255,255,255,43,255,255,255,41,255,255,255,39,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30, +255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,23,255,255,255,25,255,255,255,26,255,255,255,28,255,255,255,31,255,255,255,33,255,255,255,35, +255,255,255,38,255,255,255,40,255,255,255,43,255,255,255,45,255,255,255,48,255,255,255,51,255,255,255,53,255,255,255,56, +255,255,255,59,255,255,255,62,255,255,255,64,255,255,255,67,255,255,255,69,255,255,255,72,255,255,255,74,255,255,255,77, +255,255,255,83,255,255,255,96,255,255,255,120,204,204,204,166,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +107,107,107,206,255,255,255,136,255,255,255,111,255,255,255,98,255,255,255,93,255,255,255,92,255,255,255,91,255,255,255,91, +255,255,255,90,255,255,255,89,255,255,255,87,255,255,255,86,255,255,255,85,255,255,255,83,255,255,255,82,255,255,255,80, +255,255,255,79,255,255,255,77,255,255,255,75,255,255,255,73,255,255,255,71,255,255,255,69,255,255,255,66,255,255,255,64, +255,255,255,62,255,255,255,60,255,255,255,57,255,255,255,55,255,255,255,53,255,255,255,50,255,255,255,48,255,255,255,46, +255,255,255,44,255,255,255,41,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29, +255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,23,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,34, +255,255,255,36,255,255,255,39,255,255,255,41,255,255,255,44,255,255,255,46,255,255,255,49,255,255,255,51,255,255,255,54, +255,255,255,57,255,255,255,59,255,255,255,62,255,255,255,64,255,255,255,67,255,255,255,69,255,255,255,72,255,255,255,75, +255,255,255,82,255,255,255,96,255,255,255,123,145,145,145,186,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +133,133,133,193,255,255,255,130,255,255,255,105,255,255,255,93,255,255,255,88,255,255,255,87,255,255,255,86,255,255,255,86, +255,255,255,85,255,255,255,84,255,255,255,83,255,255,255,82,255,255,255,81,255,255,255,79,255,255,255,78,255,255,255,76, +255,255,255,75,255,255,255,73,255,255,255,71,255,255,255,69,255,255,255,67,255,255,255,65,255,255,255,63,255,255,255,61, +255,255,255,59,255,255,255,57,255,255,255,55,255,255,255,52,255,255,255,50,255,255,255,48,255,255,255,46,255,255,255,44, +255,255,255,42,255,255,255,40,255,255,255,38,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,28, +255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,34, +255,255,255,36,255,255,255,38,255,255,255,40,255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,50,255,255,255,52, +255,255,255,55,255,255,255,57,255,255,255,60,255,255,255,62,255,255,255,64,255,255,255,66,255,255,255,69,255,255,255,73, +255,255,255,80,255,255,255,97,255,255,255,126,98,98,98,205,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +160,160,160,181,255,255,255,124,255,255,255,100,255,255,255,88,255,255,255,84,255,255,255,83,255,255,255,82,255,255,255,82, +255,255,255,81,255,255,255,80,255,255,255,79,255,255,255,78,255,255,255,77,255,255,255,76,255,255,255,74,255,255,255,73, +255,255,255,71,255,255,255,70,255,255,255,68,255,255,255,66,255,255,255,64,255,255,255,62,255,255,255,60,255,255,255,58, +255,255,255,56,255,255,255,54,255,255,255,52,255,255,255,50,255,255,255,48,255,255,255,46,255,255,255,44,255,255,255,42, +255,255,255,40,255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,28,255,255,255,27, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,33, +255,255,255,35,255,255,255,37,255,255,255,39,255,255,255,42,255,255,255,44,255,255,255,46,255,255,255,48,255,255,255,51, +255,255,255,53,255,255,255,55,255,255,255,58,255,255,255,60,255,255,255,62,255,255,255,64,255,255,255,66,255,255,255,70, +255,255,255,79,255,255,255,98,255,255,255,130,60,60,60,222,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +189,189,189,168,255,255,255,118,255,255,255,95,255,255,255,84,255,255,255,80,255,255,255,79,255,255,255,79,255,255,255,78, +255,255,255,77,255,255,255,77,255,255,255,76,255,255,255,75,255,255,255,73,255,255,255,72,255,255,255,71,255,255,255,69, +255,255,255,68,255,255,255,66,255,255,255,65,255,255,255,63,255,255,255,61,255,255,255,59,255,255,255,58,255,255,255,56, +255,255,255,54,255,255,255,52,255,255,255,50,255,255,255,48,255,255,255,46,255,255,255,44,255,255,255,43,255,255,255,41, +255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,26, +255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,13, +255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12, +255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,20, +255,255,255,22,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,33, +255,255,255,35,255,255,255,37,255,255,255,39,255,255,255,41,255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,50, +255,255,255,52,255,255,255,54,255,255,255,56,255,255,255,58,255,255,255,60,255,255,255,62,255,255,255,64,255,255,255,69, +255,255,255,79,255,255,255,100,255,255,255,134,29,29,29,239,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +219,219,219,156,255,255,255,113,255,255,255,91,255,255,255,80,255,255,255,77,255,255,255,76,255,255,255,76,255,255,255,75, +255,255,255,74,255,255,255,73,255,255,255,72,255,255,255,71,255,255,255,70,255,255,255,69,255,255,255,68,255,255,255,66, +255,255,255,65,255,255,255,63,255,255,255,62,255,255,255,60,255,255,255,59,255,255,255,57,255,255,255,55,255,255,255,54, +255,255,255,52,255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,45,255,255,255,43,255,255,255,41,255,255,255,39, +255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,29,255,255,255,27,255,255,255,25, +255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13, +255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,23, +255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,33, +255,255,255,35,255,255,255,36,255,255,255,38,255,255,255,40,255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,49, +255,255,255,51,255,255,255,53,255,255,255,55,255,255,255,57,255,255,255,59,255,255,255,60,255,255,255,63,255,255,255,67, +255,255,255,79,255,255,255,101,245,245,245,140,8,8,8,250,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,252, +241,241,241,146,255,255,255,108,255,255,255,87,255,255,255,77,255,255,255,74,255,255,255,73,255,255,255,73,255,255,255,72, +255,255,255,71,255,255,255,70,255,255,255,70,255,255,255,68,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,64, +255,255,255,62,255,255,255,61,255,255,255,59,255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,53,255,255,255,52, +255,255,255,50,255,255,255,49,255,255,255,47,255,255,255,45,255,255,255,43,255,255,255,42,255,255,255,40,255,255,255,38, +255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,30,255,255,255,28,255,255,255,26,255,255,255,25, +255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14, +255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,22,255,255,255,26, +137,137,137,51,255,255,255,32,255,255,255,31,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,31,255,255,255,33, +255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,40,255,255,255,42,255,255,255,44,255,255,255,46,255,255,255,48, +255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,55,255,255,255,57,255,255,255,59,255,255,255,61,255,255,255,67, +255,255,255,79,255,255,255,104,216,216,216,151,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,17,17,17,245, +254,254,254,138,255,255,255,103,255,255,255,83,255,255,255,74,255,255,255,71,255,255,255,70,255,255,255,70,255,255,255,69, +255,255,255,69,255,255,255,68,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,64,255,255,255,63,255,255,255,61, +255,255,255,60,255,255,255,59,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,53,255,255,255,52,255,255,255,50, +255,255,255,49,255,255,255,47,255,255,255,46,255,255,255,44,255,255,255,42,255,255,255,41,255,255,255,39,255,255,255,38, +255,255,255,36,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,30,255,255,255,28, +255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15, +255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,21,255,255,255,25,255,255,255,31, +106,106,106,75,149,149,149,61,255,255,255,38,255,255,255,33,255,255,255,31,255,255,255,30,255,255,255,31,255,255,255,33, +255,255,255,35,255,255,255,36,255,255,255,38,255,255,255,40,255,255,255,42,255,255,255,44,255,255,255,46,255,255,255,47, +255,255,255,49,255,255,255,51,255,255,255,53,255,255,255,54,255,255,255,56,255,255,255,58,255,255,255,60,255,255,255,66, +255,255,255,79,255,255,255,106,178,178,178,164,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,36,36,36,235, +255,255,255,132,255,255,255,99,255,255,255,79,255,255,255,71,255,255,255,68,255,255,255,68,255,255,255,68,255,255,255,67, +255,255,255,66,255,255,255,65,255,255,255,65,255,255,255,64,255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,59, +255,255,255,58,255,255,255,57,255,255,255,56,255,255,255,54,255,255,255,53,255,255,255,52,255,255,255,50,255,255,255,49, +255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,43,255,255,255,42,255,255,255,40,255,255,255,39,255,255,255,37, +255,255,255,36,255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,35, +255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,13, +255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,16, +255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,37, +176,176,176,61,58,58,58,131,255,255,255,46,255,255,255,39,255,255,255,33,255,255,255,31,255,255,255,32,255,255,255,34, +255,255,255,36,255,255,255,38,255,255,255,39,255,255,255,40,255,255,255,42,255,255,255,43,255,255,255,45,255,255,255,47, +255,255,255,49,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,55,255,255,255,57,255,255,255,59,255,255,255,66, +255,255,255,80,255,255,255,109,146,146,146,176,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,54,54,54,224, +255,255,255,127,255,255,255,94,255,255,255,76,255,255,255,69,255,255,255,66,255,255,255,66,255,255,255,65,255,255,255,65, +255,255,255,64,255,255,255,63,255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,58, +255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,52,255,255,255,50,255,255,255,49,255,255,255,48, +255,255,255,47,255,255,255,45,255,255,255,44,255,255,255,42,255,255,255,41,255,255,255,40,255,255,255,39,255,255,255,39, +255,255,255,40,255,255,255,42,255,255,255,46,255,255,255,50,255,255,255,54,255,255,255,56,255,255,255,54,255,255,255,49, +255,255,255,41,255,255,255,32,255,255,255,25,255,255,255,19,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11, +255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17, +255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,24,255,255,255,30,255,255,255,41, +235,235,235,58,26,26,26,191,255,255,255,57,255,255,255,47,255,255,255,38,255,255,255,34,255,255,255,33,255,255,255,36, +247,247,247,39,255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,42,255,255,255,43,255,255,255,45,255,255,255,47, +255,255,255,49,255,255,255,50,255,255,255,52,255,255,255,53,255,255,255,55,255,255,255,56,255,255,255,59,255,255,255,66, +255,255,255,81,255,255,255,111,118,118,118,188,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,73,73,73,213, +255,255,255,122,255,255,255,91,255,255,255,73,255,255,255,67,255,255,255,64,255,255,255,64,255,255,255,64,255,255,255,63, +255,255,255,62,255,255,255,62,255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,57,255,255,255,56, +255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,48,255,255,255,47, +255,255,255,46,255,255,255,45,255,255,255,43,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,43,255,255,255,47, +255,255,255,53,255,255,255,60,255,255,255,68,255,255,255,76,255,255,255,81,255,255,255,81,188,188,188,92,80,80,80,130, +45,45,45,147,123,123,123,66,255,255,255,27,255,255,255,20,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12, +255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15, +255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19, +255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,25,255,255,255,32,255,255,255,45, +255,255,255,61,13,13,13,224,204,204,204,80,255,255,255,56,255,255,255,44,255,255,255,37,255,255,255,36,255,255,255,37, +189,189,189,53,189,189,189,57,255,255,255,45,255,255,255,45,255,255,255,44,255,255,255,44,255,255,255,45,255,255,255,47, +255,255,255,49,255,255,255,50,255,255,255,51,255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,58,255,255,255,66, +255,255,255,83,255,255,255,114,95,95,95,199,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,92,92,92,202, +255,255,255,118,255,255,255,87,255,255,255,71,255,255,255,65,255,255,255,63,255,255,255,63,255,255,255,62,255,255,255,62, +255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,58,255,255,255,57,255,255,255,56,255,255,255,55, +255,255,255,54,255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,48,255,255,255,47, +255,255,255,46,255,255,255,44,255,255,255,44,255,255,255,44,255,255,255,45,255,255,255,49,255,255,255,55,255,255,255,65, +255,255,255,78,255,255,255,91,252,252,252,105,159,159,159,139,72,72,72,183,22,22,22,225,1,1,1,254,34,34,34,190, +183,183,183,70,255,255,255,38,255,255,255,27,255,255,255,20,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13, +255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17, +255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20, +255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,27,255,255,255,34,255,255,255,48, +255,255,255,68,24,24,24,210,92,92,92,141,255,255,255,67,255,255,255,51,255,255,255,41,255,255,255,37,255,255,255,41, +255,255,255,46,100,100,100,98,255,255,255,51,255,255,255,49,255,255,255,46,255,255,255,45,255,255,255,46,255,255,255,47, +255,255,255,49,255,255,255,50,255,255,255,51,255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,58,255,255,255,66, +255,255,255,84,255,255,255,117,75,75,75,210,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,113,113,113,191, +255,255,255,114,255,255,255,84,255,255,255,69,255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60, +255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,54, +255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,46, +255,255,255,45,255,255,255,45,255,255,255,46,255,255,255,49,255,255,255,55,255,255,255,65,255,255,255,79,255,255,255,97, +234,234,234,120,106,106,106,177,24,24,24,233,0,0,0,255,0,0,0,255,4,4,4,250,103,103,103,149,254,254,254,71, +255,255,255,50,255,255,255,34,255,255,255,24,255,255,255,19,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14, +255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,18, +255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,22, +255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,28,255,255,255,35,255,255,255,50, +255,255,255,72,42,42,42,193,37,37,37,200,255,255,255,79,255,255,255,59,255,255,255,45,255,255,255,41,255,255,255,43, +255,255,255,50,75,75,75,125,215,215,215,67,255,255,255,56,255,255,255,51,255,255,255,47,255,255,255,47,255,255,255,47, +255,255,255,49,255,255,255,50,255,255,255,51,255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,58,255,255,255,67, +255,255,255,86,255,255,255,121,57,57,57,220,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,135,135,135,181, +255,255,255,110,255,255,255,82,255,255,255,68,255,255,255,62,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,59, +255,255,255,59,255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,54, +255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,48,255,255,255,47,255,255,255,46, +255,255,255,47,255,255,255,48,255,255,255,53,255,255,255,62,255,255,255,75,255,255,255,94,242,242,242,118,103,103,103,182, +15,15,15,243,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,252,123,123,123,154,255,255,255,84,255,255,255,58, +255,255,255,40,255,255,255,28,255,255,255,22,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,8,255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,16, +255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20, +255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,22,255,255,255,23,255,255,255,23, +255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,29,255,255,255,36,255,255,255,51, +255,255,255,75,65,65,65,177,5,5,5,247,231,231,231,97,255,255,255,69,255,255,255,52,255,255,255,44,255,255,255,46, +255,255,255,54,151,151,151,90,69,69,69,144,255,255,255,64,255,255,255,57,255,255,255,51,255,255,255,49,255,255,255,48, +255,255,255,49,255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,56,255,255,255,59,255,255,255,68, +255,255,255,88,255,255,255,124,41,41,41,229,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,158,158,158,170, +255,255,255,107,255,255,255,79,255,255,255,66,255,255,255,62,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54,255,255,255,53, +255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,48,255,255,255,48,255,255,255,48, +255,255,255,51,255,255,255,57,255,255,255,69,255,255,255,85,255,255,255,107,171,171,171,152,29,29,29,233,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,110,110,110,172,255,255,255,93,255,255,255,64,255,255,255,44, +255,255,255,31,255,255,255,24,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,8, +255,255,255,10,111,111,111,32,255,255,255,20,255,255,255,24,255,255,255,26,255,255,255,26,255,255,255,24,255,255,255,21, +255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,17, +255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,21, +255,255,255,22,255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25, +255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,28,255,255,255,31,255,255,255,37,255,255,255,52, +255,255,255,77,94,94,94,161,0,0,0,255,120,120,120,149,255,255,255,81,255,255,255,59,255,255,255,48,255,255,255,48, +255,255,255,57,253,253,253,68,27,27,27,203,239,239,239,77,255,255,255,66,255,255,255,57,255,255,255,51,255,255,255,50, +255,255,255,50,255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,56,255,255,255,59,255,255,255,69, +255,255,255,91,255,255,255,127,27,27,27,239,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,183,183,183,160, +255,255,255,103,255,255,255,78,255,255,255,65,255,255,255,61,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54,255,255,255,53, +255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,49,255,255,255,50,255,255,255,54, +255,255,255,61,255,255,255,75,255,255,255,94,244,244,244,121,87,87,87,195,3,3,3,253,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,80,80,80,196,255,255,255,103,255,255,255,71,255,255,255,48,255,255,255,33, +255,255,255,26,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,8, +255,255,255,12,177,177,177,25,57,57,57,84,75,75,75,88,251,251,251,42,255,255,255,43,255,255,255,41,255,255,255,36, +255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,18, +255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,22,255,255,255,23, +255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,26,255,255,255,26,255,255,255,27, +255,255,255,28,255,255,255,28,255,255,255,29,255,255,255,29,255,255,255,30,255,255,255,32,255,255,255,38,255,255,255,52, +255,255,255,78,130,130,130,146,0,0,0,255,52,52,52,203,255,255,255,94,255,255,255,68,255,255,255,52,255,255,255,49, +255,255,255,57,255,255,255,71,51,51,51,178,100,100,100,141,255,255,255,76,255,255,255,64,255,255,255,55,255,255,255,52, +255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,56,255,255,255,60,255,255,255,71, +255,255,255,93,254,254,254,131,14,14,14,247,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,211,211,211,150, +255,255,255,101,255,255,255,76,255,255,255,65,255,255,255,61,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54,255,255,255,53, +255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,51,255,255,255,51,255,255,255,55,255,255,255,65, +255,255,255,80,255,255,255,102,198,198,198,141,34,34,34,229,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,39,39,39,225,248,248,248,115,255,255,255,78,255,255,255,52,255,255,255,36,255,255,255,28, +255,255,255,24,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,8, +255,255,255,12,255,255,255,19,254,254,254,28,65,65,65,108,17,17,17,200,83,83,83,123,242,242,242,66,255,255,255,60, +255,255,255,52,255,255,255,43,255,255,255,34,255,255,255,27,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,20, +255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,24, +255,255,255,25,255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,28,255,255,255,28,255,255,255,29, +255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,31,255,255,255,32,255,255,255,34,255,255,255,39,255,255,255,52, +255,255,255,77,176,176,176,130,0,0,0,255,8,8,8,246,238,238,238,112,255,255,255,79,255,255,255,59,255,255,255,52, +255,255,255,58,255,255,255,72,121,121,121,132,23,23,23,220,253,253,253,87,255,255,255,73,255,255,255,61,255,255,255,55, +255,255,255,53,255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,56,255,255,255,57,255,255,255,61,255,255,255,73, +255,255,255,96,243,243,243,137,6,6,6,252,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,236,236,236,141, +255,255,255,99,255,255,255,75,255,255,255,64,255,255,255,61,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54,255,255,255,54, +255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,52,255,255,255,52,255,255,255,57,255,255,255,67,255,255,255,84, +255,255,255,107,154,154,154,161,12,12,12,246,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +0,0,0,255,8,8,8,249,196,196,196,141,255,255,255,88,255,255,255,59,255,255,255,40,255,255,255,30,255,255,255,26, +255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,8, +255,255,255,11,255,255,255,17,255,255,255,26,255,255,255,40,128,128,128,91,10,10,10,231,14,14,14,226,91,91,91,146, +239,239,239,85,255,255,255,72,255,255,255,59,255,255,255,46,255,255,255,37,255,255,255,30,255,255,255,25,255,255,255,23, +255,255,255,22,255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,26, +255,255,255,27,255,255,255,27,255,255,255,28,255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,30,255,255,255,31, +255,255,255,31,255,255,255,32,255,255,255,33,255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,40,255,255,255,52, +255,255,255,76,232,232,232,115,1,1,1,254,0,0,0,255,133,133,133,159,255,255,255,92,255,255,255,67,255,255,255,56, +255,255,255,59,255,255,255,73,229,229,229,97,5,5,5,247,143,143,143,133,255,255,255,84,255,255,255,69,255,255,255,59, +255,255,255,55,255,255,255,54,255,255,255,55,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,63,255,255,255,74, +255,255,255,99,222,222,222,145,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,250,248,248,248,136, +255,255,255,97,255,255,255,74,255,255,255,64,255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54, +255,255,255,53,255,255,255,53,255,255,255,53,255,255,255,54,255,255,255,58,255,255,255,68,255,255,255,86,255,255,255,111, +130,130,130,174,4,4,4,252,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,254,84,84,84,240,3,3,3,255, +0,0,0,255,105,105,105,184,255,255,255,101,255,255,255,68,255,255,255,46,255,255,255,34,255,255,255,28,255,255,255,25, +255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,13, +255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,10,255,255,255,14,255,255,255,21,255,255,255,33,255,255,255,50,188,188,188,85,23,23,23,215,0,0,0,255, +15,15,15,233,99,99,99,158,243,243,243,96,255,255,255,78,255,255,255,62,255,255,255,48,255,255,255,37,255,255,255,31, +255,255,255,27,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,28, +255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,32,255,255,255,33, +255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,35,255,255,255,36,255,255,255,37,255,255,255,41,255,255,255,52, +255,255,255,74,253,253,253,109,15,15,15,241,0,0,0,255,57,57,57,209,255,255,255,106,255,255,255,76,255,255,255,60, +255,255,255,59,255,255,255,72,255,255,255,92,35,35,35,212,45,45,45,204,255,255,255,96,255,255,255,78,255,255,255,65, +255,255,255,58,255,255,255,56,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,60,255,255,255,64,255,255,255,76, +255,255,255,102,197,197,197,155,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,18,18,18,244,254,254,254,132, +255,255,255,96,255,255,255,74,255,255,255,64,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,59,255,255,255,59, +255,255,255,59,255,255,255,58,255,255,255,58,255,255,255,57,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,55, +255,255,255,54,255,255,255,54,255,255,255,55,255,255,255,59,255,255,255,69,255,255,255,86,255,255,255,112,129,129,129,176, +2,2,2,253,0,0,0,255,0,0,0,255,0,0,0,255,22,22,22,249,186,186,186,213,44,44,44,245,0,0,0,255, +26,26,26,235,246,246,246,119,255,255,255,80,255,255,255,54,255,255,255,38,255,255,255,31,255,255,255,28,255,255,255,26, +255,255,255,24,255,255,255,22,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,11,255,255,255,16,255,255,255,24,255,255,255,37,255,255,255,56,231,231,231,84,44,44,44,197, +0,0,0,255,0,0,0,255,19,19,19,234,115,115,115,158,251,251,251,98,255,255,255,79,255,255,255,61,255,255,255,47, +255,255,255,38,255,255,255,32,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,28,255,255,255,29,255,255,255,29, +255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,32,255,255,255,33,255,255,255,34,255,255,255,34,255,255,255,35, +255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,42,255,255,255,52, +255,255,255,73,255,255,255,106,39,39,39,222,0,0,0,255,8,8,8,248,234,234,234,125,255,255,255,88,255,255,255,67, +255,255,255,61,255,255,255,71,255,255,255,90,87,87,87,173,2,2,2,252,200,200,200,123,255,255,255,89,255,255,255,72, +255,255,255,62,255,255,255,58,255,255,255,58,255,255,255,59,255,255,255,59,255,255,255,61,255,255,255,66,255,255,255,79, +255,255,255,106,173,173,173,164,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,29,29,29,238,255,255,255,130, +255,255,255,94,255,255,255,74,255,255,255,65,255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,60, +255,255,255,59,255,255,255,59,255,255,255,58,255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,56, +255,255,255,55,255,255,255,56,255,255,255,60,255,255,255,69,255,255,255,86,255,255,255,111,141,141,141,172,3,3,3,253, +0,0,0,255,0,0,0,255,0,0,0,255,34,34,34,242,219,219,219,193,139,139,139,214,0,0,0,255,0,0,0,255, +128,128,128,169,255,255,255,96,255,255,255,64,255,255,255,45,255,255,255,35,255,255,255,30,255,255,255,28,255,255,255,26, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,13,255,255,255,17,255,255,255,25,255,255,255,39,255,255,255,59,251,251,251,85, +74,74,74,178,1,1,1,254,0,0,0,255,0,0,0,255,30,30,30,225,158,158,158,144,255,255,255,97,255,255,255,77, +255,255,255,59,255,255,255,46,255,255,255,38,255,255,255,33,255,255,255,31,255,255,255,30,255,255,255,30,255,255,255,31, +255,255,255,32,255,255,255,33,255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,36,255,255,255,36,255,255,255,37, +255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,40,255,255,255,40,255,255,255,41,255,255,255,44,255,255,255,52, +255,255,255,71,255,255,255,103,69,69,69,203,0,0,0,255,0,0,0,255,128,128,128,172,255,255,255,102,255,255,255,75, +255,255,255,65,255,255,255,70,255,255,255,89,165,165,165,137,0,0,0,255,80,80,80,185,255,255,255,101,255,255,255,80, +255,255,255,67,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,61,255,255,255,63,255,255,255,68,255,255,255,81, +255,255,255,109,152,152,152,174,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,40,40,40,231,255,255,255,128, +255,255,255,93,255,255,255,74,255,255,255,65,255,255,255,63,255,255,255,62,255,255,255,62,255,255,255,61,255,255,255,61, +255,255,255,60,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,58,255,255,255,58,255,255,255,57,255,255,255,57, +255,255,255,58,255,255,255,61,255,255,255,70,255,255,255,85,255,255,255,110,160,160,160,164,6,6,6,251,0,0,0,255, +0,0,0,255,0,0,0,255,35,35,35,239,228,228,228,177,242,242,242,175,21,21,21,247,0,0,0,255,22,22,22,237, +247,247,247,116,255,255,255,79,255,255,255,54,255,255,255,40,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,27, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,14,255,255,255,18,255,255,255,27,255,255,255,40,255,255,255,60, +255,255,255,87,108,108,108,162,3,3,3,252,0,0,0,255,0,0,0,255,1,1,1,254,57,57,57,206,205,205,205,128, +255,255,255,93,255,255,255,73,255,255,255,57,255,255,255,46,255,255,255,39,255,255,255,35,255,255,255,33,255,255,255,33, +255,255,255,34,255,255,255,35,255,255,255,35,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,39, +255,255,255,40,255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,43,255,255,255,43,255,255,255,46,255,255,255,52, +255,255,255,69,255,255,255,100,108,108,108,182,0,0,0,255,0,0,0,255,49,49,49,220,255,255,255,116,255,255,255,85, +255,255,255,69,255,255,255,70,255,255,255,86,246,246,246,112,9,9,9,245,16,16,16,238,250,250,250,114,255,255,255,90, +255,255,255,73,255,255,255,64,255,255,255,62,255,255,255,62,255,255,255,63,255,255,255,64,255,255,255,70,255,255,255,84, +255,255,255,112,134,134,134,182,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,52,52,52,225,255,255,255,126, +255,255,255,93,255,255,255,74,255,255,255,66,255,255,255,64,255,255,255,63,255,255,255,63,255,255,255,62,255,255,255,62, +255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,59, +255,255,255,62,255,255,255,69,255,255,255,84,255,255,255,108,185,185,185,155,11,11,11,247,0,0,0,255,0,0,0,255, +0,0,0,255,26,26,26,241,220,220,220,169,255,255,255,158,114,114,114,205,0,0,0,255,0,0,0,255,100,100,100,183, +255,255,255,98,255,255,255,67,255,255,255,47,255,255,255,37,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27, +255,255,255,25,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,19,255,255,255,27,255,255,255,40, +255,255,255,61,255,255,255,87,141,141,141,150,8,8,8,247,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,248, +98,98,98,182,244,244,244,113,255,255,255,88,255,255,255,68,255,255,255,54,255,255,255,44,255,255,255,39,255,255,255,37, +255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,40,255,255,255,40,255,255,255,41, +255,255,255,42,255,255,255,43,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,53, +255,255,255,67,255,255,255,96,159,159,159,160,0,0,0,255,0,0,0,255,4,4,4,252,212,212,212,142,255,255,255,98, +255,255,255,76,255,255,255,72,255,255,255,84,255,255,255,108,47,47,47,214,0,0,0,255,157,157,157,152,255,255,255,100, +255,255,255,80,255,255,255,68,255,255,255,64,255,255,255,64,255,255,255,64,255,255,255,66,255,255,255,72,255,255,255,87, +255,255,255,115,118,118,118,191,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,63,63,63,219,255,255,255,125, +255,255,255,92,255,255,255,74,255,255,255,67,255,255,255,65,255,255,255,65,255,255,255,64,255,255,255,64,255,255,255,63, +255,255,255,63,255,255,255,62,255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,61,255,255,255,63, +255,255,255,70,255,255,255,83,255,255,255,106,211,211,211,146,20,20,20,242,0,0,0,255,0,0,0,255,0,0,0,255, +15,15,15,246,202,202,202,167,255,255,255,146,236,236,236,158,16,16,16,246,0,0,0,255,6,6,6,250,219,219,219,129, +255,255,255,85,255,255,255,58,255,255,255,43,255,255,255,36,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27, +255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,20,255,255,255,27, +255,255,255,40,255,255,255,60,255,255,255,87,169,169,169,140,14,14,14,242,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,28,28,28,232,163,163,163,151,255,255,255,103,255,255,255,81,255,255,255,63,255,255,255,51,255,255,255,44, +255,255,255,41,255,255,255,39,255,255,255,39,255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,43,255,255,255,43, +255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,47,255,255,255,48,255,255,255,50,255,255,255,54, +255,255,255,66,255,255,255,92,226,226,226,137,1,1,1,254,0,0,0,255,0,0,0,255,104,104,104,191,255,255,255,111, +255,255,255,84,255,255,255,74,255,255,255,83,255,255,255,105,102,102,102,181,0,0,0,255,72,72,72,200,255,255,255,111, +255,255,255,88,255,255,255,73,255,255,255,67,255,255,255,66,255,255,255,66,255,255,255,68,255,255,255,74,255,255,255,89, +255,255,255,119,103,103,103,198,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,76,76,76,213,255,255,255,124, +255,255,255,92,255,255,255,75,255,255,255,68,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,65,255,255,255,65, +255,255,255,64,255,255,255,64,255,255,255,63,255,255,255,63,255,255,255,62,255,255,255,62,255,255,255,64,255,255,255,70, +255,255,255,82,255,255,255,103,236,236,236,136,34,34,34,232,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,251, +173,173,173,172,255,255,255,138,255,255,255,140,105,105,105,199,0,0,0,255,0,0,0,255,60,60,60,209,255,255,255,106, +255,255,255,73,255,255,255,52,255,255,255,41,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,28, +255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,22, +255,255,255,28,255,255,255,40,255,255,255,59,255,255,255,86,193,193,193,133,22,22,22,236,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,2,2,2,253,75,75,75,200,235,235,235,122,255,255,255,93,255,255,255,73,255,255,255,58, +255,255,255,49,255,255,255,44,255,255,255,43,255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,46, +255,255,255,46,255,255,255,47,255,255,255,48,255,255,255,49,255,255,255,50,255,255,255,50,255,255,255,51,255,255,255,55, +255,255,255,66,255,255,255,88,255,255,255,125,20,20,20,241,0,0,0,255,0,0,0,255,30,30,30,235,254,254,254,126, +255,255,255,94,255,255,255,79,255,255,255,82,255,255,255,101,176,176,176,149,0,0,0,255,18,18,18,240,250,250,250,123, +255,255,255,97,255,255,255,79,255,255,255,71,255,255,255,68,255,255,255,68,255,255,255,70,255,255,255,76,255,255,255,92, +255,255,255,123,89,89,89,206,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,88,88,88,207,255,255,255,122, +255,255,255,93,255,255,255,76,255,255,255,69,255,255,255,68,255,255,255,68,255,255,255,67,255,255,255,67,255,255,255,66, +255,255,255,66,255,255,255,65,255,255,255,65,255,255,255,64,255,255,255,64,255,255,255,65,255,255,255,70,255,255,255,81, +255,255,255,101,252,252,252,129,58,58,58,219,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,135,135,135,185, +255,255,255,133,255,255,255,128,232,232,232,148,13,13,13,246,0,0,0,255,0,0,0,255,158,158,158,156,255,255,255,94, +255,255,255,64,255,255,255,47,255,255,255,40,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,28, +255,255,255,26,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19, +255,255,255,23,255,255,255,29,255,255,255,40,255,255,255,59,255,255,255,85,211,211,211,127,29,29,29,231,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,23,23,23,237,167,167,167,154,255,255,255,106,255,255,255,82, +255,255,255,65,255,255,255,54,255,255,255,48,255,255,255,46,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,48, +255,255,255,49,255,255,255,49,255,255,255,50,255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,57, +255,255,255,65,255,255,255,85,255,255,255,118,53,53,53,220,0,0,0,255,0,0,0,255,0,0,0,255,191,191,191,155, +255,255,255,106,255,255,255,84,255,255,255,83,255,255,255,98,250,250,250,125,10,10,10,247,0,0,0,255,172,172,172,155, +255,255,255,107,255,255,255,86,255,255,255,75,255,255,255,70,255,255,255,70,255,255,255,72,255,255,255,79,255,255,255,95, +255,255,255,126,77,77,77,213,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,100,100,100,201,255,255,255,122, +255,255,255,93,255,255,255,77,255,255,255,71,255,255,255,70,255,255,255,69,255,255,255,69,255,255,255,68,255,255,255,68, +255,255,255,67,255,255,255,67,255,255,255,66,255,255,255,66,255,255,255,67,255,255,255,71,255,255,255,80,255,255,255,98, +255,255,255,125,92,92,92,201,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,92,92,92,202,255,255,255,132, +255,255,255,120,255,255,255,128,103,103,103,195,0,0,0,255,0,0,0,255,26,26,26,235,253,253,253,117,255,255,255,82, +255,255,255,58,255,255,255,45,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29, +255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,24,255,255,255,30,255,255,255,41,255,255,255,59,255,255,255,85,223,223,223,124,36,36,36,226, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253,95,95,95,190,249,249,249,118, +255,255,255,92,255,255,255,72,255,255,255,60,255,255,255,52,255,255,255,49,255,255,255,48,255,255,255,49,255,255,255,50, +255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,54,255,255,255,55,255,255,255,56,255,255,255,59, +255,255,255,65,255,255,255,82,255,255,255,112,101,101,101,194,0,0,0,255,0,0,0,255,0,0,0,255,104,104,104,195, +255,255,255,118,255,255,255,92,255,255,255,85,255,255,255,96,255,255,255,120,46,46,46,221,0,0,0,255,87,87,87,197, +255,255,255,117,255,255,255,94,255,255,255,79,255,255,255,73,255,255,255,72,255,255,255,75,255,255,255,81,255,255,255,98, +255,255,255,129,66,66,66,220,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,114,114,114,196,255,255,255,121, +255,255,255,93,255,255,255,79,255,255,255,73,255,255,255,72,255,255,255,71,255,255,255,71,255,255,255,70,255,255,255,70, +255,255,255,69,255,255,255,69,255,255,255,68,255,255,255,69,255,255,255,71,255,255,255,80,255,255,255,96,255,255,255,121, +138,138,138,181,1,1,1,254,0,0,0,255,0,0,0,255,0,0,0,255,55,55,55,222,251,251,251,135,255,255,255,115, +255,255,255,115,241,241,241,138,17,17,17,244,0,0,0,255,0,0,0,255,108,108,108,183,255,255,255,103,255,255,255,72, +255,255,255,53,255,255,255,43,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29, +255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,14, +255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,20, +255,255,255,21,255,255,255,23,255,255,255,26,255,255,255,32,255,255,255,42,255,255,255,59,255,255,255,85,231,231,231,123, +40,40,40,224,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,46,46,46,222, +218,218,218,135,255,255,255,100,255,255,255,79,255,255,255,64,255,255,255,56,255,255,255,52,255,255,255,52,255,255,255,52, +255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,59,255,255,255,61, +255,255,255,66,255,255,255,79,255,255,255,106,173,173,173,164,0,0,0,255,0,0,0,255,0,0,0,255,41,41,41,230, +255,255,255,131,255,255,255,101,255,255,255,88,255,255,255,95,255,255,255,117,93,93,93,195,0,0,0,255,30,30,30,234, +254,254,254,128,255,255,255,102,255,255,255,85,255,255,255,77,255,255,255,75,255,255,255,77,255,255,255,84,255,255,255,101, +255,255,255,133,55,55,55,226,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,126,126,126,191,255,255,255,121, +255,255,255,94,255,255,255,80,255,255,255,75,255,255,255,73,255,255,255,73,255,255,255,73,255,255,255,72,255,255,255,72, +255,255,255,71,255,255,255,71,255,255,255,70,255,255,255,73,255,255,255,79,255,255,255,94,255,255,255,116,185,185,185,163, +8,8,8,250,0,0,0,255,0,0,0,255,0,0,0,255,27,27,27,238,229,229,229,144,255,255,255,114,255,255,255,107, +255,255,255,120,124,124,124,183,0,0,0,255,0,0,0,255,6,6,6,250,227,227,227,134,255,255,255,91,255,255,255,64, +255,255,255,49,255,255,255,43,255,255,255,40,255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,29, +255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,20, +255,255,255,22,255,255,255,23,255,255,255,25,255,255,255,28,255,255,255,33,255,255,255,44,255,255,255,61,255,255,255,86, +234,234,234,123,42,42,42,223,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +22,22,22,239,187,187,187,151,255,255,255,106,255,255,255,84,255,255,255,69,255,255,255,60,255,255,255,56,255,255,255,55, +255,255,255,55,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,59,255,255,255,60,255,255,255,61,255,255,255,62, +255,255,255,67,255,255,255,78,255,255,255,100,246,246,246,138,11,11,11,249,0,0,0,255,0,0,0,255,2,2,2,254, +220,220,220,151,255,255,255,111,255,255,255,93,255,255,255,94,255,255,255,114,153,153,153,169,0,0,0,255,1,1,1,254, +204,204,204,151,255,255,255,112,255,255,255,91,255,255,255,81,255,255,255,78,255,255,255,79,255,255,255,87,255,255,255,105, +255,255,255,136,45,45,45,231,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,140,140,140,186,255,255,255,121, +255,255,255,95,255,255,255,82,255,255,255,76,255,255,255,75,255,255,255,75,255,255,255,75,255,255,255,74,255,255,255,74, +255,255,255,73,255,255,255,73,255,255,255,74,255,255,255,80,255,255,255,91,255,255,255,113,226,226,226,148,25,25,25,240, +0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,250,190,190,190,161,255,255,255,118,255,255,255,102,255,255,255,107, +254,254,254,130,33,33,33,233,0,0,0,255,0,0,0,255,62,62,62,213,255,255,255,114,255,255,255,80,255,255,255,59, +255,255,255,48,255,255,255,43,255,255,255,40,255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30, +255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21, +255,255,255,22,255,255,255,24,255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,35,255,255,255,45,255,255,255,62, +255,255,255,88,233,233,233,126,40,40,40,226,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,11,11,11,247,161,161,161,164,255,255,255,112,255,255,255,89,255,255,255,73,255,255,255,63,255,255,255,59, +255,255,255,58,255,255,255,59,255,255,255,60,255,255,255,61,255,255,255,62,255,255,255,63,255,255,255,64,255,255,255,65, +255,255,255,68,255,255,255,76,255,255,255,96,255,255,255,128,53,53,53,224,0,0,0,255,0,0,0,255,0,0,0,255, +125,125,125,191,255,255,255,122,255,255,255,100,255,255,255,96,255,255,255,111,228,228,228,144,2,2,2,254,0,0,0,255, +115,115,115,189,255,255,255,122,255,255,255,99,255,255,255,86,255,255,255,81,255,255,255,82,255,255,255,90,255,255,255,108, +255,255,255,140,36,36,36,236,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,154,154,154,182,255,255,255,121, +255,255,255,96,255,255,255,84,255,255,255,78,255,255,255,78,255,255,255,77,255,255,255,77,255,255,255,76,255,255,255,76, +255,255,255,76,255,255,255,77,255,255,255,81,255,255,255,90,255,255,255,109,252,252,252,136,55,55,55,224,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,136,136,136,184,255,255,255,124,255,255,255,103,255,255,255,99,255,255,255,114, +170,170,170,165,0,0,0,255,0,0,0,255,0,0,0,255,150,150,150,167,255,255,255,102,255,255,255,72,255,255,255,55, +255,255,255,47,255,255,255,43,255,255,255,41,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,32,255,255,255,30, +255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21, +255,255,255,23,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,29,255,255,255,33,255,255,255,38,255,255,255,48, +255,255,255,65,255,255,255,91,229,229,229,130,34,34,34,231,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,6,6,6,251,143,143,143,174,255,255,255,116,255,255,255,93,255,255,255,76,255,255,255,67, +255,255,255,62,255,255,255,62,255,255,255,62,255,255,255,63,255,255,255,64,255,255,255,65,255,255,255,66,255,255,255,67, +255,255,255,69,255,255,255,77,255,255,255,92,255,255,255,121,111,111,111,195,0,0,0,255,0,0,0,255,0,0,0,255, +53,53,53,226,255,255,255,135,255,255,255,108,255,255,255,99,255,255,255,109,255,255,255,135,28,28,28,237,0,0,0,255, +51,51,51,224,255,255,255,133,255,255,255,107,255,255,255,91,255,255,255,84,255,255,255,85,255,255,255,92,255,255,255,111, +255,255,255,143,27,27,27,241,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,168,168,168,177,255,255,255,122, +255,255,255,97,255,255,255,85,255,255,255,80,255,255,255,80,255,255,255,79,255,255,255,79,255,255,255,79,255,255,255,79, +255,255,255,80,241,241,241,86,255,255,255,91,255,255,255,106,255,255,255,131,107,107,107,199,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,80,80,80,212,255,255,255,132,255,255,255,107,255,255,255,96,230,230,230,109,255,255,255,126, +67,67,67,215,0,0,0,255,0,0,0,255,15,15,15,244,246,246,246,129,255,255,255,91,255,255,255,66,255,255,255,53, +255,255,255,47,255,255,255,44,255,255,255,42,255,255,255,40,255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,30, +255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,21, +255,255,255,23,255,255,255,25,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,40, +255,255,255,51,255,255,255,68,255,255,255,94,218,218,218,137,24,24,24,237,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253,133,133,133,180,255,255,255,120,255,255,255,96,255,255,255,79, +255,255,255,70,255,255,255,66,255,255,255,65,255,255,255,66,255,255,255,67,255,255,255,68,255,255,255,69,255,255,255,70, +255,255,255,71,255,255,255,76,255,255,255,89,255,255,255,114,189,189,189,165,0,0,0,255,0,0,0,255,0,0,0,255, +5,5,5,252,229,229,229,154,255,255,255,118,255,255,255,103,255,255,255,109,255,255,255,131,69,69,69,215,0,0,0,255, +7,7,7,251,236,236,236,148,255,255,255,116,255,255,255,97,255,255,255,88,255,255,255,88,255,255,255,95,255,255,255,114, +255,255,255,147,18,18,18,246,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,181,181,181,173,255,255,255,122, +255,255,255,98,255,255,255,87,255,255,255,83,255,255,255,82,255,255,255,81,255,255,255,81,255,255,255,82,255,255,255,83, +255,255,255,86,197,197,197,108,255,255,255,105,255,255,255,126,171,171,171,174,4,4,4,253,0,0,0,255,0,0,0,255, +0,0,0,255,36,36,36,235,243,243,243,144,255,255,255,114,255,255,255,98,239,239,239,101,209,209,209,126,227,227,227,148, +6,6,6,251,0,0,0,255,0,0,0,255,75,75,75,207,255,255,255,115,255,255,255,82,255,255,255,62,255,255,255,52, +255,255,255,47,255,255,255,45,255,255,255,44,255,255,255,42,255,255,255,40,255,255,255,37,255,255,255,33,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,21, +255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,38, +255,255,255,43,255,255,255,54,255,255,255,72,255,255,255,100,195,195,195,148,13,13,13,246,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253,131,131,131,183,255,255,255,122,255,255,255,98, +255,255,255,82,255,255,255,73,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,70,255,255,255,71,255,255,255,72, +255,255,255,74,255,255,255,77,255,255,255,88,255,255,255,108,251,251,251,142,20,20,20,244,0,0,0,255,0,0,0,255, +0,0,0,255,132,132,132,191,255,255,255,129,255,255,255,109,255,255,255,109,255,255,255,128,120,120,120,192,0,0,0,255, +0,0,0,255,150,150,150,181,255,255,255,126,255,255,255,104,255,255,255,93,255,255,255,91,255,255,255,98,255,255,255,118, +255,255,255,150,11,11,11,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,196,196,196,170,255,255,255,123, +255,255,255,100,255,255,255,89,255,255,255,85,255,255,255,84,255,255,255,84,255,255,255,85,255,255,255,87,255,255,255,90, +193,193,193,112,236,236,236,111,255,255,255,124,225,225,225,156,21,21,21,243,0,0,0,255,0,0,0,255,0,0,0,255, +10,10,10,249,199,199,199,163,255,255,255,122,255,255,255,103,255,255,255,96,168,168,168,130,255,255,255,126,112,112,112,195, +0,0,0,255,0,0,0,255,0,0,0,255,162,162,162,165,255,255,255,104,255,255,255,75,255,255,255,59,255,255,255,51, +255,255,255,48,255,255,255,47,255,255,255,46,255,255,255,46,219,219,219,49,255,255,255,40,255,255,255,36,255,255,255,32, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15, +255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22, +255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,33,255,255,255,35,255,255,255,37, +255,255,255,41,255,255,255,46,255,255,255,58,255,255,255,77,255,255,255,105,166,166,166,162,6,6,6,251,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253,134,134,134,183,255,255,255,124, +255,255,255,101,255,255,255,85,255,255,255,76,255,255,255,73,255,255,255,72,255,255,255,73,255,255,255,74,255,255,255,75, +255,255,255,76,255,255,255,79,255,255,255,87,255,255,255,104,255,255,255,133,72,72,72,217,0,0,0,255,0,0,0,255, +0,0,0,255,58,58,58,226,255,255,255,141,255,255,255,117,255,255,255,111,255,255,255,125,184,184,184,169,0,0,0,255, +0,0,0,255,77,77,77,214,255,255,255,137,255,255,255,112,255,255,255,98,255,255,255,95,255,255,255,102,255,255,255,121, +250,250,250,154,5,5,5,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,211,211,211,166,255,255,255,123, +255,255,255,102,255,255,255,91,255,255,255,87,255,255,255,87,255,255,255,87,255,255,255,89,255,255,255,93,255,255,255,98, +151,151,151,141,255,255,255,122,252,252,252,147,58,58,58,226,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +140,140,140,187,255,255,255,130,255,255,255,109,255,255,255,98,200,200,200,115,174,174,174,141,252,252,252,142,28,28,28,239, +0,0,0,255,0,0,0,255,19,19,19,243,249,249,249,131,255,255,255,94,255,255,255,70,255,255,255,57,255,255,255,52, +255,255,255,49,255,255,255,49,255,255,255,51,250,250,250,52,122,122,122,85,255,255,255,44,255,255,255,38,255,255,255,33, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15, +255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22, +255,255,255,24,255,255,255,26,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36,255,255,255,38, +255,255,255,40,255,255,255,44,255,255,255,50,255,255,255,62,255,255,255,83,255,255,255,112,133,133,133,179,1,1,1,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253,140,140,140,183, +255,255,255,126,255,255,255,103,255,255,255,88,255,255,255,80,255,255,255,76,255,255,255,76,255,255,255,76,255,255,255,77, +255,255,255,79,255,255,255,81,255,255,255,87,255,255,255,100,255,255,255,126,144,144,144,187,0,0,0,255,0,0,0,255, +0,0,0,255,8,8,8,251,236,236,236,157,255,255,255,125,255,255,255,115,255,255,255,124,245,245,245,151,9,9,9,250, +0,0,0,255,21,21,21,244,253,253,253,148,255,255,255,121,255,255,255,104,255,255,255,99,255,255,255,105,255,255,255,124, +238,238,238,159,3,3,3,254,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,225,225,225,163,255,255,255,124, +255,255,255,103,255,255,255,93,255,255,255,90,255,255,255,90,255,255,255,91,255,255,255,95,255,255,255,101,156,156,156,139, +207,207,207,138,255,255,255,143,118,118,118,201,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,82,82,82,214, +255,255,255,139,255,255,255,115,255,255,255,103,255,255,255,101,109,109,109,162,254,254,254,129,161,161,161,180,0,0,0,255, +0,0,0,255,0,0,0,255,80,80,80,206,255,255,255,118,255,255,255,86,255,255,255,66,255,255,255,56,255,255,255,52, +255,255,255,51,255,255,255,52,255,255,255,56,199,199,199,71,87,87,87,116,255,255,255,50,255,255,255,42,255,255,255,34, +255,255,255,30,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16, +255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22, +255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,38, +255,255,255,40,255,255,255,43,255,255,255,47,255,255,255,54,255,255,255,68,255,255,255,89,255,255,255,120,90,90,90,201, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,253, +146,146,146,182,255,255,255,128,255,255,255,106,255,255,255,91,255,255,255,83,255,255,255,80,255,255,255,79,255,255,255,80, +255,255,255,81,255,255,255,83,255,255,255,87,255,255,255,98,255,255,255,120,232,232,232,157,6,6,6,252,0,0,0,255, +0,0,0,255,0,0,0,255,146,146,146,190,255,255,255,135,255,255,255,119,255,255,255,124,255,255,255,145,44,44,44,233, +0,0,0,255,0,0,0,255,188,188,188,173,255,255,255,130,255,255,255,111,255,255,255,103,255,255,255,108,255,255,255,128, +227,227,227,165,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,240,240,240,160,255,255,255,125, +255,255,255,105,255,255,255,96,255,255,255,93,255,255,255,93,255,255,255,97,255,255,255,103,254,254,254,112,106,106,106,178, +255,255,255,142,189,189,189,179,6,6,6,252,0,0,0,255,0,0,0,255,0,0,0,255,37,37,37,236,243,243,243,150, +255,255,255,122,255,255,255,107,255,255,255,103,152,152,152,138,151,151,151,155,255,255,255,143,59,59,59,225,0,0,0,255, +0,0,0,255,0,0,0,255,174,174,174,164,255,255,255,107,255,255,255,79,255,255,255,63,255,255,255,56,255,255,255,53, +255,255,255,53,255,255,255,56,255,255,255,62,142,142,142,101,73,73,73,139,255,255,255,57,255,255,255,45,255,255,255,36, +255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16, +255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,20,255,255,255,22, +255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,37,255,255,255,39, +255,255,255,41,255,255,255,43,255,255,255,46,255,255,255,51,255,255,255,59,255,255,255,73,255,255,255,97,250,250,250,130, +49,49,49,225,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +4,4,4,253,146,146,146,183,255,255,255,131,255,255,255,109,255,255,255,95,255,255,255,87,255,255,255,83,255,255,255,83, +255,255,255,84,255,255,255,85,255,255,255,88,255,255,255,97,255,255,255,114,255,255,255,144,53,53,53,229,0,0,0,255, +0,0,0,255,0,0,0,255,69,69,69,223,255,255,255,147,255,255,255,126,255,255,255,125,255,255,255,143,90,90,90,212, +0,0,0,255,0,0,0,255,105,105,105,206,255,255,255,140,255,255,255,118,255,255,255,108,255,255,255,112,255,255,255,130, +216,216,216,170,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,254,249,249,249,159,255,255,255,126, +255,255,255,107,255,255,255,98,255,255,255,96,255,255,255,98,255,255,255,104,255,255,255,112,145,145,145,158,164,164,164,171, +242,242,242,166,33,33,33,241,0,0,0,255,0,0,0,255,0,0,0,255,11,11,11,249,204,204,204,167,255,255,255,130, +255,255,255,112,255,255,255,106,249,249,249,109,68,68,68,194,253,253,253,133,216,216,216,166,4,4,4,253,0,0,0,255, +0,0,0,255,27,27,27,239,252,252,252,132,255,255,255,97,255,255,255,74,255,255,255,62,255,255,255,56,255,255,255,54, +255,255,255,55,255,255,255,61,255,255,255,70,100,100,100,134,66,66,66,156,255,255,255,64,255,255,255,49,255,255,255,37, +255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,19,255,255,255,18,255,255,255,16, +255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,22, +255,255,255,24,255,255,255,27,255,255,255,28,255,255,255,31,255,255,255,33,255,255,255,35,255,255,255,37,255,255,255,40, +255,255,255,42,255,255,255,44,255,255,255,46,255,255,255,49,255,255,255,54,255,255,255,63,255,255,255,80,255,255,255,105, +219,219,219,147,18,18,18,244,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,5,5,5,252,148,148,148,184,255,255,255,133,255,255,255,112,255,255,255,98,255,255,255,90,255,255,255,87, +255,255,255,87,255,255,255,87,255,255,255,90,255,255,255,97,255,255,255,110,255,255,255,136,123,123,123,199,0,0,0,255, +0,0,0,255,0,0,0,255,12,12,12,249,241,241,241,161,255,255,255,134,255,255,255,127,255,255,255,140,146,146,146,191, +0,0,0,255,0,0,0,255,41,41,41,236,255,255,255,151,255,255,255,126,255,255,255,114,255,255,255,116,255,255,255,134, +206,206,206,175,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,252,251,251,251,159,255,255,255,128, +255,255,255,109,255,255,255,101,255,255,255,100,255,255,255,104,255,255,255,112,252,252,252,126,68,68,68,210,254,254,254,162, +94,94,94,219,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,141,141,141,192,255,255,255,138,255,255,255,118, +255,255,255,109,255,255,255,109,103,103,103,169,140,140,140,166,255,255,255,145,109,109,109,206,0,0,0,255,0,0,0,255, +0,0,0,255,103,103,103,197,255,255,255,119,255,255,255,89,255,255,255,70,255,255,255,61,255,255,255,56,255,255,255,55, +255,255,255,58,255,255,255,66,255,255,255,78,71,71,71,165,62,62,62,169,255,255,255,70,255,255,255,52,255,255,255,39, +255,255,255,32,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16, +255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,33,255,255,255,35,255,255,255,38,255,255,255,40, +255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,50,255,255,255,53,255,255,255,59,255,255,255,69,255,255,255,87, +255,255,255,115,160,160,160,173,2,2,2,254,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,255,0,0,0,255, +0,0,0,255,0,0,0,255,5,5,5,252,151,151,151,185,255,255,255,135,255,255,255,115,255,255,255,101,255,255,255,94, +255,255,255,91,255,255,255,91,255,255,255,92,255,255,255,97,255,255,255,108,255,255,255,129,215,215,215,168,2,2,2,254, +0,0,0,255,0,0,0,255,0,0,0,255,155,155,155,192,255,255,255,143,255,255,255,131,255,255,255,139,214,214,214,171, +1,1,1,255,0,0,0,255,2,2,2,254,220,220,220,168,255,255,255,135,255,255,255,120,255,255,255,120,255,255,255,137, +195,195,195,180,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,14,14,14,249,253,253,253,159,255,255,255,129, +255,255,255,112,255,255,255,105,255,255,255,105,255,255,255,112,255,255,255,124,144,144,144,172,119,119,119,204,181,181,181,196, +2,2,2,254,0,0,0,255,0,0,0,255,0,0,0,255,74,74,74,221,255,255,255,148,255,255,255,124,255,255,255,113, +255,255,255,111,220,220,220,125,40,40,40,219,253,253,253,136,252,252,252,157,29,29,29,241,0,0,0,255,0,0,0,255, +4,4,4,253,214,214,214,153,255,255,255,108,255,255,255,82,255,255,255,68,255,255,255,61,255,255,255,57,255,255,255,57, +255,255,255,60,255,255,255,71,255,255,255,87,45,45,45,197,60,60,60,178,255,255,255,76,255,255,255,55,255,255,255,40, +255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16, +255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,41, +255,255,255,43,255,255,255,46,255,255,255,48,255,255,255,51,255,255,255,53,255,255,255,57,255,255,255,64,255,255,255,76, +255,255,255,97,255,255,255,127,88,88,88,207,0,0,0,255,0,0,0,255,0,0,0,255,16,16,16,254,39,39,39,253, +0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,252,154,154,154,185,255,255,255,137,255,255,255,118,255,255,255,104, +255,255,255,98,255,255,255,94,255,255,255,95,255,255,255,98,255,255,255,106,255,255,255,124,255,255,255,152,41,41,41,236, +0,0,0,255,0,0,0,255,0,0,0,255,72,72,72,225,255,255,255,154,255,255,255,136,255,255,255,139,253,253,253,159, +23,23,23,245,0,0,0,255,0,0,0,255,136,136,136,198,255,255,255,144,255,255,255,126,255,255,255,125,255,255,255,141, +187,187,187,184,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,19,19,19,247,254,254,254,160,255,255,255,131, +255,255,255,114,255,255,255,109,255,255,255,111,255,255,255,122,253,253,253,139,44,44,44,228,221,221,221,188,34,34,34,244, +0,0,0,255,0,0,0,255,0,0,0,255,25,25,25,243,234,234,234,161,255,255,255,132,255,255,255,117,255,255,255,113, +255,255,255,117,67,67,67,197,132,132,132,174,255,255,255,146,174,174,174,186,0,0,0,255,0,0,0,255,0,0,0,255, +55,55,55,224,255,255,255,131,255,255,255,99,255,255,255,78,255,255,255,67,255,255,255,61,255,255,255,58,255,255,255,59, +255,255,255,64,255,255,255,77,255,255,255,96,21,21,21,228,61,61,61,184,255,255,255,81,255,255,255,58,255,255,255,41, +255,255,255,33,255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17, +255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,41, +255,255,255,44,255,255,255,46,255,255,255,49,255,255,255,52,255,255,255,54,255,255,255,57,255,255,255,61,255,255,255,69, +255,255,255,83,255,255,255,107,243,243,243,142,31,31,31,237,0,0,0,255,0,0,0,255,0,0,0,255,68,68,68,250, +51,51,51,250,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,252,161,161,161,184,255,255,255,139,255,255,255,120, +255,255,255,107,255,255,255,101,255,255,255,98,255,255,255,100,255,255,255,106,255,255,255,119,255,255,255,144,113,113,113,208, +0,0,0,255,0,0,0,255,0,0,0,255,11,11,11,250,240,240,240,168,255,255,255,144,255,255,255,140,255,255,255,155, +74,74,74,223,0,0,0,255,0,0,0,255,75,75,75,223,255,255,255,153,255,255,255,134,255,255,255,130,255,255,255,144, +178,178,178,188,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,24,24,24,245,255,255,255,160,255,255,255,133, +255,255,255,117,255,255,255,114,255,255,255,120,255,255,255,134,156,156,156,179,76,76,76,230,115,115,115,223,0,0,0,255, +0,0,0,255,0,0,0,255,2,2,2,254,170,170,170,186,255,255,255,141,255,255,255,122,255,255,255,115,255,255,255,118, +177,177,177,147,27,27,27,233,251,251,251,141,255,255,255,155,76,76,76,222,0,0,0,255,0,0,0,255,0,0,0,255, +145,145,145,184,255,255,255,121,255,255,255,93,255,255,255,76,255,255,255,67,255,255,255,62,255,255,255,60,255,255,255,61, +255,255,255,68,255,255,255,85,229,229,229,112,2,2,2,252,65,65,65,186,255,255,255,85,255,255,255,59,255,255,255,42, +255,255,255,34,255,255,255,30,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17, +255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,23, +255,255,255,25,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,37,255,255,255,40,255,255,255,42, +255,255,255,45,255,255,255,47,255,255,255,50,255,255,255,53,255,255,255,55,255,255,255,58,255,255,255,61,255,255,255,67, +255,255,255,75,255,255,255,92,255,255,255,119,181,181,181,169,4,4,4,253,0,0,0,255,0,0,0,255,0,0,0,255, +142,142,142,240,47,47,47,249,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,251,171,171,171,183,255,255,255,141, +255,255,255,122,255,255,255,110,255,255,255,104,255,255,255,103,255,255,255,106,255,255,255,117,255,255,255,137,207,207,207,176, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,148,148,148,200,255,255,255,153,255,255,255,143,255,255,255,153, +142,142,142,200,0,0,0,255,0,0,0,255,25,25,25,245,253,253,253,162,255,255,255,142,255,255,255,136,255,255,255,148, +172,172,172,192,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,30,30,30,243,255,255,255,161,255,255,255,135, +255,255,255,121,255,255,255,120,255,255,255,130,255,255,255,149,45,45,45,232,143,143,143,219,9,9,9,253,0,0,0,255, +0,0,0,255,0,0,0,255,84,84,84,219,255,255,255,152,255,255,255,129,255,255,255,119,255,255,255,119,253,253,253,127, +39,39,39,222,126,126,126,181,255,255,255,147,236,236,236,169,10,10,10,251,0,0,0,255,0,0,0,255,15,15,15,247, +246,246,246,147,255,255,255,113,231,231,231,95,255,255,255,75,255,255,255,67,255,255,255,64,255,255,255,62,255,255,255,64, +255,255,255,74,255,255,255,94,144,144,144,151,0,0,0,255,73,73,73,184,255,255,255,87,255,255,255,60,255,255,255,43, +255,255,255,34,255,255,255,30,255,255,255,28,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17, +255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,24, +255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,37,255,255,255,40,255,255,255,43, +255,255,255,46,255,255,255,49,255,255,255,53,255,255,255,55,255,255,255,57,255,255,255,59,255,255,255,62,255,255,255,66, +255,255,255,72,255,255,255,83,255,255,255,103,255,255,255,132,93,93,93,208,0,0,0,255,0,0,0,255,0,0,0,255, +17,17,17,253,205,205,205,227,41,41,41,248,0,0,0,255,0,0,0,255,0,0,0,255,11,11,11,250,185,185,185,180, +255,255,255,142,255,255,255,124,255,255,255,113,255,255,255,108,255,255,255,109,255,255,255,116,255,255,255,132,255,255,255,158, +40,40,40,239,0,0,0,255,0,0,0,255,0,0,0,255,62,62,62,231,255,255,255,163,255,255,255,148,255,255,255,151, +224,224,224,177,3,3,3,254,0,0,0,255,0,0,0,255,209,209,209,180,255,255,255,149,255,255,255,141,255,255,255,152, +166,166,166,196,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,34,34,34,242,255,255,255,163,255,255,255,138, +255,255,255,126,255,255,255,128,255,255,255,143,177,177,177,182,28,28,28,248,71,71,71,239,0,0,0,255,0,0,0,255, +0,0,0,255,21,21,21,246,233,233,233,167,255,255,255,139,255,255,255,124,255,255,255,121,255,255,255,126,131,131,131,174, +22,22,22,239,247,247,247,146,255,255,255,155,132,132,132,203,0,0,0,255,0,0,0,255,0,0,0,255,86,86,86,213, +255,255,255,137,231,231,231,115,198,198,198,103,255,255,255,76,255,255,255,69,255,255,255,65,255,255,255,64,255,255,255,68, +255,255,255,81,255,255,255,105,78,78,78,192,0,0,0,255,87,87,87,178,255,255,255,88,255,255,255,61,255,255,255,43, +255,255,255,35,255,255,255,30,255,255,255,28,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17, +255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24, +255,255,255,26,255,255,255,28,255,255,255,31,255,255,255,33,255,255,255,35,255,255,255,38,255,255,255,41,255,255,255,44, +255,255,255,48,253,253,253,53,251,251,251,57,255,255,255,59,255,255,255,61,255,255,255,62,255,255,255,64,255,255,255,67, +255,255,255,71,255,255,255,78,255,255,255,92,255,255,255,115,240,240,240,149,27,27,27,241,0,0,0,255,0,0,0,255, +0,0,0,255,71,71,71,243,226,226,226,217,34,34,34,248,0,0,0,255,0,0,0,255,0,0,0,255,17,17,17,247, +203,203,203,175,255,255,255,142,255,255,255,126,255,255,255,116,255,255,255,112,255,255,255,116,255,255,255,128,255,255,255,151, +116,116,116,210,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,253,227,227,227,179,255,255,255,155,255,255,255,152, +255,255,255,167,39,39,39,240,0,0,0,255,0,0,0,255,134,134,134,205,255,255,255,157,255,255,255,147,255,255,255,156, +161,161,161,199,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,39,39,39,241,255,255,255,164,255,255,255,141, +255,255,255,131,255,255,255,138,255,255,255,157,65,65,65,227,55,55,55,244,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,146,146,146,199,255,255,255,149,255,255,255,130,255,255,255,123,255,255,255,127,235,235,235,140,18,18,18,241, +120,120,120,189,255,255,255,151,255,255,255,164,41,41,41,238,0,0,0,255,0,0,0,255,1,1,1,255,191,191,191,175, +255,255,255,130,138,138,138,146,251,251,251,90,255,255,255,78,255,255,255,70,255,255,255,66,255,255,255,66,255,255,255,73, +255,255,255,91,253,253,253,118,25,25,25,234,0,0,0,255,110,110,110,167,255,255,255,88,255,255,255,59,255,255,255,42, +255,255,255,35,255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24, +255,255,255,26,255,255,255,29,255,255,255,31,255,255,255,33,255,255,255,36,255,255,255,39,255,255,255,41,255,255,255,45, +255,255,255,50,253,253,253,57,149,149,149,91,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,68, +255,255,255,72,255,255,255,77,255,255,255,86,255,255,255,103,255,255,255,128,162,162,162,181,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,155,155,155,225,218,218,218,212,25,25,25,249,0,0,0,255,0,0,0,255,0,0,0,255, +27,27,27,243,222,222,222,171,255,255,255,143,255,255,255,127,255,255,255,119,255,255,255,118,255,255,255,126,255,255,255,144, +214,214,214,179,2,2,2,254,0,0,0,255,0,0,0,255,0,0,0,255,126,126,126,211,255,255,255,163,255,255,255,155, +255,255,255,164,100,100,100,219,0,0,0,255,0,0,0,255,73,73,73,228,255,255,255,166,255,255,255,154,255,255,255,161, +157,157,157,202,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,43,43,43,239,255,255,255,166,255,255,255,144, +255,255,255,138,255,255,255,149,216,216,216,179,3,3,3,254,15,15,15,252,0,0,0,255,0,0,0,255,0,0,0,255, +50,50,50,235,253,253,253,162,255,255,255,139,255,255,255,127,255,255,255,128,255,255,255,136,90,90,90,199,19,19,19,242, +243,243,243,153,255,255,255,157,187,187,187,188,0,0,0,255,0,0,0,255,0,0,0,255,42,42,42,236,255,255,255,154, +249,249,249,128,94,94,94,166,255,255,255,91,255,255,255,79,255,255,255,72,255,255,255,68,255,255,255,71,255,255,255,82, +255,255,255,104,171,171,171,154,0,0,0,255,0,0,0,255,150,150,150,150,255,255,255,85,255,255,255,58,255,255,255,42, +255,255,255,35,255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,20,255,255,255,22,255,255,255,24, +255,255,255,27,255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,37,255,255,255,39,255,255,255,42,255,255,255,46, +255,255,255,52,255,255,255,60,102,102,102,122,197,197,197,88,255,255,255,75,255,255,255,73,255,255,255,71,255,255,255,72, +249,249,249,76,255,255,255,79,255,255,255,84,255,255,255,95,255,255,255,115,255,255,255,142,69,69,69,222,0,0,0,255, +0,0,0,255,0,0,0,255,19,19,19,251,229,229,229,208,204,204,204,210,15,15,15,251,0,0,0,255,0,0,0,255, +0,0,0,255,42,42,42,237,240,240,240,167,255,255,255,144,255,255,255,130,255,255,255,123,255,255,255,126,255,255,255,139, +255,255,255,163,52,52,52,236,0,0,0,255,0,0,0,255,0,0,0,255,40,40,40,241,254,254,254,173,255,255,255,159, +255,255,255,163,174,174,174,197,0,0,0,255,0,0,0,255,22,22,22,247,252,252,252,175,255,255,255,161,255,255,255,165, +154,154,154,206,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,47,47,47,239,255,255,255,169,255,255,255,149, +255,255,255,146,255,255,255,160,107,107,107,216,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254, +190,190,190,188,255,255,255,150,255,255,255,133,255,255,255,129,255,255,255,135,203,203,203,159,6,6,6,251,115,115,115,197, +255,255,255,155,255,255,255,165,75,75,75,226,0,0,0,255,0,0,0,255,0,0,0,255,135,135,135,201,255,255,255,148, +130,130,130,170,136,136,136,145,255,255,255,92,255,255,255,81,255,255,255,74,255,255,255,72,255,255,255,77,255,255,255,93, +255,255,255,119,63,63,63,211,0,0,0,255,2,2,2,253,222,222,222,125,255,255,255,81,255,255,255,55,255,255,255,42, +255,255,255,35,255,255,255,32,255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18, +255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11, +255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,25, +255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,34,255,255,255,37,255,255,255,40,255,255,255,43,255,255,255,47, +255,255,255,53,255,255,255,64,221,221,221,83,48,48,48,183,254,254,254,86,255,255,255,82,255,255,255,78,255,255,255,77, +226,226,226,85,201,201,201,96,255,255,255,87,255,255,255,93,255,255,255,106,255,255,255,127,218,218,218,164,11,11,11,250, +0,0,0,255,0,0,0,255,0,0,0,255,79,79,79,236,255,255,255,197,182,182,182,211,7,7,7,253,0,0,0,255, +0,0,0,255,0,0,0,255,65,65,65,229,252,252,252,164,255,255,255,145,255,255,255,132,255,255,255,129,255,255,255,137, +255,255,255,156,142,142,142,205,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,195,195,195,194,255,255,255,166, +255,255,255,164,246,246,246,179,11,11,11,251,0,0,0,255,0,0,0,255,204,204,204,191,255,255,255,168,255,255,255,171, +152,152,152,208,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,49,49,49,239,255,255,255,171,255,255,255,154, +255,255,255,155,252,252,252,173,25,25,25,246,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,75,75,75,228, +255,255,255,163,255,255,255,142,255,255,255,133,255,255,255,135,255,255,255,145,56,56,56,222,16,16,16,246,240,240,240,161, +255,255,255,160,219,219,219,181,6,6,6,253,0,0,0,255,0,0,0,255,16,16,16,249,240,240,240,171,254,254,254,145, +39,39,39,222,239,239,239,113,255,255,255,93,255,255,255,82,255,255,255,76,255,255,255,77,255,255,255,86,255,255,255,108, +200,200,200,150,4,4,4,252,0,0,0,255,29,29,29,231,255,255,255,111,255,255,255,76,255,255,255,53,255,255,255,41, +255,255,255,35,255,255,255,32,255,255,255,30,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19, +255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,25, +255,255,255,28,255,255,255,30,255,255,255,33,255,255,255,35,255,255,255,38,255,255,255,41,255,255,255,43,255,255,255,48, +255,255,255,54,255,255,255,65,255,255,255,79,55,55,55,182,108,108,108,151,255,255,255,95,255,255,255,89,255,255,255,84, +255,255,255,85,134,134,134,127,245,245,245,94,255,255,255,96,255,255,255,102,255,255,255,117,255,255,255,141,119,119,119,203, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,166,166,166,214,255,255,255,193,155,155,155,214,2,2,2,254, +0,0,0,255,0,0,0,255,0,0,0,255,97,97,97,219,255,255,255,163,255,255,255,146,255,255,255,136,255,255,255,138, +255,255,255,151,240,240,240,177,14,14,14,250,0,0,0,255,0,0,0,255,0,0,0,255,93,93,93,225,255,255,255,174, +255,255,255,166,255,255,255,175,63,63,63,234,0,0,0,255,0,0,0,255,132,132,132,214,255,255,255,176,255,255,255,176, +150,150,150,211,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,52,52,52,239,255,255,255,175,255,255,255,160, +255,255,255,165,173,173,173,200,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,253,210,210,210,185, +255,255,255,153,255,255,255,138,255,255,255,136,255,255,255,145,159,159,159,181,0,0,0,255,110,110,110,204,255,255,255,160, +255,255,255,168,98,98,98,219,0,0,0,255,0,0,0,255,0,0,0,255,101,101,101,219,255,255,255,163,149,149,149,177, +52,52,52,208,255,255,255,109,255,255,255,94,255,255,255,83,255,255,255,79,255,255,255,84,255,255,255,100,255,255,255,126, +64,64,64,214,0,0,0,255,0,0,0,255,84,84,84,195,255,255,255,103,255,255,255,70,255,255,255,50,255,255,255,41, +255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19, +255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,24,255,255,255,26, +255,255,255,28,255,255,255,31,255,255,255,33,255,255,255,36,255,255,255,39,255,255,255,41,255,255,255,44,255,255,255,48, +255,255,255,54,255,255,255,65,255,255,255,80,178,178,178,118,9,9,9,242,193,193,193,125,255,255,255,102,255,255,255,94, +255,255,255,92,228,228,228,101,98,98,98,158,255,255,255,101,255,255,255,104,255,255,255,112,255,255,255,129,249,249,249,156, +35,35,35,239,0,0,0,255,0,0,0,255,0,0,0,255,24,24,24,248,236,236,236,197,255,255,255,190,122,122,122,221, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,135,135,135,208,255,255,255,163,255,255,255,148,255,255,255,142, +255,255,255,149,255,255,255,167,89,89,89,225,0,0,0,255,0,0,0,255,0,0,0,255,16,16,16,250,244,244,244,185, +255,255,255,171,255,255,255,175,129,129,129,215,0,0,0,255,0,0,0,255,71,71,71,234,255,255,255,183,255,255,255,182, +149,149,149,214,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,54,54,54,239,255,255,255,178,255,255,255,168, +255,255,255,175,80,80,80,229,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,90,90,90,224,255,255,255,166, +255,255,255,146,255,255,255,139,255,255,255,143,246,246,246,157,29,29,29,239,13,13,13,248,236,236,236,169,255,255,255,165, +230,230,230,181,12,12,12,251,0,0,0,255,0,0,0,255,7,7,7,253,220,220,220,186,253,253,253,161,36,36,36,232, +129,129,129,166,255,255,255,109,255,255,255,93,255,255,255,84,255,255,255,85,255,255,255,95,255,255,255,117,170,170,170,167, +2,2,2,254,0,0,0,255,0,0,0,255,175,175,175,152,255,255,255,94,255,255,255,65,255,255,255,48,255,255,255,40, +255,255,255,36,255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,21,255,255,255,19, +255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,27, +255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,49, +255,255,255,54,255,255,255,63,255,255,255,78,255,255,255,97,46,46,46,206,30,30,30,224,241,241,241,120,255,255,255,108, +255,255,255,102,255,255,255,102,97,97,97,166,157,157,157,139,255,255,255,110,255,255,255,112,255,255,255,121,255,255,255,141, +173,173,173,187,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,85,85,85,232,255,255,255,189,254,254,254,188, +88,88,88,230,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,253,174,174,174,198,255,255,255,163,255,255,255,151, +255,255,255,150,255,255,255,163,194,194,194,195,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,151,151,151,212, +255,255,255,177,255,255,255,176,207,207,207,196,0,0,0,255,0,0,0,255,19,19,19,249,251,251,251,191,255,255,255,187, +150,150,150,217,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,56,56,56,239,255,255,255,183,255,255,255,176, +243,243,243,188,13,13,13,251,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,253,220,220,220,186,255,255,255,157, +255,255,255,144,255,255,255,144,255,255,255,154,115,115,115,203,0,0,0,255,104,104,104,211,255,255,255,167,255,255,255,172, +107,107,107,219,0,0,0,255,0,0,0,255,0,0,0,255,86,86,86,227,255,255,255,175,153,153,153,189,7,7,7,249, +237,237,237,130,255,255,255,107,255,255,255,94,255,255,255,88,255,255,255,94,255,255,255,111,245,245,245,139,32,32,32,235, +0,0,0,255,0,0,0,255,27,27,27,235,254,254,254,120,255,255,255,84,255,255,255,60,255,255,255,47,255,255,255,40, +255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20, +255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,26,255,255,255,29, +255,255,255,33,255,255,255,35,255,255,255,37,255,255,255,39,255,255,255,40,255,255,255,43,255,255,255,46,255,255,255,49, +255,255,255,54,255,255,255,61,255,255,255,74,255,255,255,93,170,170,170,138,1,1,1,254,63,63,63,204,253,253,253,124, +255,255,255,115,255,255,255,112,238,238,238,118,36,36,36,218,228,228,228,125,255,255,255,118,255,255,255,120,255,255,255,132, +255,255,255,155,74,74,74,224,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,164,164,164,211,255,255,255,186, +248,248,248,189,57,57,57,238,0,0,0,255,0,0,0,255,0,0,0,255,16,16,16,249,209,209,209,189,255,255,255,165, +255,255,255,157,255,255,255,161,254,254,254,178,45,45,45,241,0,0,0,255,0,0,0,255,0,0,0,255,57,57,57,239, +255,255,255,185,255,255,255,178,254,254,254,186,27,27,27,247,0,0,0,255,0,0,0,255,200,200,200,206,255,255,255,194, +151,151,151,220,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,57,57,57,240,255,255,255,189,255,255,255,184, +160,160,160,212,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,89,89,89,227,255,255,255,170,255,255,255,152, +255,255,255,147,255,255,255,152,222,222,222,172,12,12,12,249,11,11,11,250,231,231,231,177,255,255,255,171,229,229,229,186, +13,13,13,251,0,0,0,255,0,0,0,255,5,5,5,254,212,212,212,195,250,250,250,174,32,32,32,238,62,62,62,211, +255,255,255,124,255,255,255,106,255,255,255,95,255,255,255,95,255,255,255,107,255,255,255,131,98,98,98,202,0,0,0,255, +0,0,0,255,0,0,0,255,106,106,106,188,255,255,255,107,255,255,255,76,255,255,255,56,255,255,255,46,255,255,255,40, +255,255,255,38,255,255,255,35,255,255,255,32,255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,22,255,255,255,20, +255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12, +255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,24,255,255,255,28,255,255,255,33, +255,255,255,39,255,255,255,42,255,255,255,44,255,255,255,44,255,255,255,44,255,255,255,45,255,255,255,47,255,255,255,50, +255,255,255,54,255,255,255,60,255,255,255,71,255,255,255,87,255,255,255,109,60,60,60,204,0,0,0,255,100,100,100,190, +255,255,255,131,255,255,255,124,255,255,255,123,114,114,114,175,58,58,58,207,254,254,254,126,255,255,255,124,255,255,255,128, +255,255,255,143,223,223,223,174,14,14,14,249,0,0,0,255,0,0,0,255,0,0,0,255,22,22,22,248,235,235,235,193, +255,255,255,183,233,233,233,192,32,32,32,245,0,0,0,255,0,0,0,255,0,0,0,255,35,35,35,243,236,236,236,184, +255,255,255,167,255,255,255,164,255,255,255,174,140,140,140,215,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,254, +211,211,211,201,255,255,255,183,255,255,255,186,88,88,88,230,0,0,0,255,0,0,0,255,131,131,131,225,255,255,255,200, +153,153,153,223,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,58,58,58,241,255,255,255,195,255,255,255,193, +77,77,77,235,0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,254,210,210,210,193,255,255,255,163,255,255,255,151, +255,255,255,152,255,255,255,163,77,77,77,222,0,0,0,255,99,99,99,218,255,255,255,174,255,255,255,178,99,99,99,224, +0,0,0,255,0,0,0,255,0,0,0,255,87,87,87,230,255,255,255,184,132,132,132,206,0,0,0,255,158,158,158,168, +255,255,255,121,255,255,255,105,255,255,255,99,255,255,255,106,255,255,255,126,176,176,176,172,4,4,4,253,0,0,0,255, +0,0,0,255,8,8,8,249,227,227,227,138,255,255,255,95,255,255,255,68,255,255,255,52,255,255,255,46,255,255,255,41, +255,255,255,38,255,255,255,35,255,255,255,33,255,255,255,30,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21, +255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,31,176,176,176,52, +136,136,136,75,255,255,255,53,255,255,255,56,255,255,255,54,255,255,255,52,255,255,255,50,255,255,255,50,255,255,255,52, +255,255,255,55,255,255,255,60,255,255,255,67,255,255,255,81,255,255,255,100,221,221,221,132,15,15,15,242,1,1,1,254, +127,127,127,185,255,255,255,139,255,255,255,134,248,248,248,137,27,27,27,234,122,122,122,179,255,255,255,133,255,255,255,131, +255,255,255,137,255,255,255,155,138,138,138,204,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,90,90,90,229, +255,255,255,185,255,255,255,182,208,208,208,198,15,15,15,251,0,0,0,255,0,0,0,255,0,0,0,255,63,63,63,235, +252,252,252,182,255,255,255,172,255,255,255,175,240,240,240,192,13,13,13,251,0,0,0,255,0,0,0,255,0,0,0,255, +108,108,108,227,255,255,255,189,255,255,255,187,159,159,159,214,0,0,0,255,0,0,0,255,70,70,70,240,255,255,255,206, +156,156,156,226,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,57,57,57,243,255,255,255,201,244,244,244,204, +13,13,13,252,0,0,0,255,0,0,0,255,0,0,0,255,71,71,71,234,255,255,255,176,255,255,255,159,255,255,255,154, +255,255,255,161,185,185,185,189,2,2,2,254,9,9,9,252,225,225,225,186,255,255,255,178,215,215,215,194,7,7,7,253, +0,0,0,255,0,0,0,255,8,8,8,253,220,220,220,201,232,232,232,188,16,16,16,248,27,27,27,237,253,253,253,138, +255,255,255,118,255,255,255,107,255,255,255,107,255,255,255,122,231,231,231,152,24,24,24,242,0,0,0,255,0,0,0,255, +0,0,0,255,81,81,81,206,255,255,255,117,255,255,255,84,255,255,255,63,255,255,255,51,255,255,255,45,255,255,255,42, +255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,26,255,255,255,23,255,255,255,21, +255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13, +255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,26,255,255,255,33,255,255,255,43, +74,74,74,122,69,69,69,141,251,251,251,72,255,255,255,70,255,255,255,66,255,255,255,61,255,255,255,58,255,255,255,56, +255,255,255,58,255,255,255,61,255,255,255,66,255,255,255,75,255,255,255,91,255,255,255,113,147,147,147,167,1,1,1,254, +3,3,3,253,143,143,143,185,255,255,255,149,255,255,255,146,151,151,151,178,7,7,7,249,186,186,186,162,255,255,255,139, +255,255,255,138,255,255,255,147,253,253,253,167,59,59,59,233,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,254, +188,188,188,204,255,255,255,181,255,255,255,181,173,173,173,207,4,4,4,254,0,0,0,255,0,0,0,255,0,0,0,255, +104,104,104,225,255,255,255,184,255,255,255,179,255,255,255,187,93,93,93,231,0,0,0,255,0,0,0,255,0,0,0,255, +23,23,23,249,248,248,248,197,255,255,255,189,234,234,234,199,5,5,5,254,0,0,0,255,16,16,16,252,251,251,251,212, +161,161,161,228,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,56,56,56,245,255,255,255,208,169,169,169,223, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,182,182,182,203,255,255,255,170,255,255,255,159,255,255,255,161, +252,252,252,172,44,44,44,237,0,0,0,255,93,93,93,224,255,255,255,182,255,255,255,185,77,77,77,232,0,0,0,255, +0,0,0,255,0,0,0,255,106,106,106,229,255,255,255,192,87,87,87,226,0,0,0,255,120,120,120,192,255,255,255,133, +255,255,255,117,255,255,255,111,255,255,255,120,254,254,254,142,65,65,65,221,0,0,0,255,0,0,0,255,0,0,0,255, +6,6,6,252,208,208,208,150,255,255,255,103,255,255,255,75,255,255,255,59,255,255,255,51,255,255,255,46,255,255,255,42, +255,255,255,40,255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,24,255,255,255,22, +255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14, +255,255,255,15,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,27,255,255,255,33,255,255,255,44, +253,253,253,59,44,44,44,177,32,32,32,204,194,194,194,106,255,255,255,87,255,255,255,80,255,255,255,72,255,255,255,66, +255,255,255,63,255,255,255,64,255,255,255,66,255,255,255,72,255,255,255,84,255,255,255,102,255,255,255,125,81,81,81,203, +0,0,0,255,5,5,5,252,154,154,154,190,255,255,255,160,254,254,254,158,52,52,52,227,25,25,25,239,227,227,227,158, +255,255,255,145,255,255,255,146,255,255,255,158,211,211,211,187,9,9,9,252,0,0,0,255,0,0,0,255,0,0,0,255, +45,45,45,242,251,251,251,187,255,255,255,179,255,255,255,183,131,131,131,219,1,1,1,255,0,0,0,255,0,0,0,255, +1,1,1,255,152,152,152,215,255,255,255,188,255,255,255,189,201,201,201,209,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,164,164,164,217,255,255,255,194,255,255,255,196,49,49,49,243,0,0,0,255,0,0,0,255,199,199,199,225, +166,166,166,231,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,55,55,55,247,255,255,255,217,90,90,90,240, +0,0,0,255,0,0,0,255,0,0,0,255,41,41,41,243,253,253,253,184,255,255,255,167,255,255,255,162,255,255,255,169, +141,141,141,207,0,0,0,255,7,7,7,253,219,219,219,194,255,255,255,185,193,193,193,204,2,2,2,255,0,0,0,255, +0,0,0,255,18,18,18,251,236,236,236,204,186,186,186,207,2,2,2,254,15,15,15,246,238,238,238,153,255,255,255,129, +255,255,255,118,255,255,255,121,255,255,255,138,144,144,144,190,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +76,76,76,210,255,255,255,122,255,255,255,90,255,255,255,69,255,255,255,56,255,255,255,50,255,255,255,46,255,255,255,43, +255,255,255,40,255,255,255,37,255,255,255,34,255,255,255,32,255,255,255,29,255,255,255,27,255,255,255,24,255,255,255,22, +255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14, +255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,26,255,255,255,32,255,255,255,42, +255,255,255,57,240,240,240,79,31,31,31,208,8,8,8,244,102,102,102,163,250,250,250,105,255,255,255,95,255,255,255,85, +255,255,255,77,255,255,255,72,255,255,255,71,255,255,255,73,255,255,255,80,255,255,255,93,255,255,255,112,244,244,244,139, +38,38,38,231,0,0,0,255,5,5,5,252,158,158,158,196,255,255,255,170,203,203,203,183,7,7,7,252,46,46,46,230, +244,244,244,160,255,255,255,152,255,255,255,155,255,255,255,169,114,114,114,218,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,137,137,137,217,255,255,255,182,255,255,255,178,254,254,254,185,88,88,88,231,0,0,0,255,0,0,0,255, +0,0,0,255,9,9,9,253,196,196,196,209,255,255,255,195,255,255,255,200,51,51,51,244,0,0,0,255,0,0,0,255, +0,0,0,255,66,66,66,241,255,255,255,199,255,255,255,197,115,115,115,229,0,0,0,255,0,0,0,255,132,132,132,237, +171,171,171,234,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,53,53,53,249,251,251,251,224,22,22,22,252, +0,0,0,255,0,0,0,255,0,0,0,255,137,137,137,218,255,255,255,178,255,255,255,167,255,255,255,169,237,237,237,183, +20,20,20,248,0,0,0,255,87,87,87,229,255,255,255,188,254,254,254,191,56,56,56,239,0,0,0,255,0,0,0,255, +0,0,0,255,136,136,136,227,248,248,248,201,37,37,37,244,0,0,0,255,102,102,102,206,255,255,255,144,255,255,255,128, +255,255,255,125,255,255,255,137,217,217,217,167,16,16,16,247,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,251, +209,209,209,153,255,255,255,107,255,255,255,80,255,255,255,64,255,255,255,56,255,255,255,51,255,255,255,47,255,255,255,44, +255,255,255,41,255,255,255,38,255,255,255,35,255,255,255,32,255,255,255,30,255,255,255,27,255,255,255,25,255,255,255,23, +255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15, +255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,31,255,255,255,38, +255,255,255,51,255,255,255,69,221,221,221,99,24,24,24,224,0,0,0,255,35,35,35,221,181,181,181,141,255,255,255,111, +255,255,255,99,255,255,255,89,255,255,255,83,255,255,255,80,255,255,255,81,255,255,255,88,255,255,255,101,255,255,255,123, +207,207,207,158,14,14,14,247,0,0,0,255,6,6,6,253,159,159,159,204,255,255,255,182,117,117,117,216,0,0,0,255, +62,62,62,226,248,248,248,165,255,255,255,160,255,255,255,166,245,245,245,183,30,30,30,246,0,0,0,255,0,0,0,255, +0,0,0,255,15,15,15,251,226,226,226,196,255,255,255,179,255,255,255,179,246,246,246,191,51,51,51,241,0,0,0,255, +0,0,0,255,0,0,0,255,28,28,28,248,230,230,230,208,255,255,255,203,151,151,151,226,0,0,0,255,0,0,0,255, +0,0,0,255,3,3,3,254,220,220,220,210,255,255,255,200,189,189,189,215,0,0,0,255,0,0,0,255,70,70,70,247, +176,176,176,237,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,51,51,51,250,194,194,194,236,0,0,0,255, +0,0,0,255,0,0,0,255,10,10,10,252,238,238,238,194,255,255,255,175,255,255,255,171,255,255,255,178,100,100,100,222, +0,0,0,255,4,4,4,254,212,212,212,201,255,255,255,192,168,168,168,213,0,0,0,255,0,0,0,255,0,0,0,255, +36,36,36,248,249,249,249,208,117,117,117,227,0,0,0,255,10,10,10,250,227,227,227,166,255,255,255,141,255,255,255,132, +255,255,255,138,246,246,246,158,46,46,46,234,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,92,92,92,204, +255,255,255,124,255,255,255,94,255,255,255,73,255,255,255,62,255,255,255,55,255,255,255,51,255,255,255,48,255,255,255,45, +255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,25,255,255,255,23, +255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15, +255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,35, +255,255,255,45,255,255,255,59,255,255,255,79,211,211,211,113,28,28,28,225,0,0,0,255,3,3,3,252,77,77,77,199, +226,226,226,135,255,255,255,116,255,255,255,104,255,255,255,95,255,255,255,91,255,255,255,91,255,255,255,97,255,255,255,111, +255,255,255,133,160,160,160,180,2,2,2,254,0,0,0,255,5,5,5,254,154,154,154,213,251,251,251,193,53,53,53,239, +0,0,0,255,69,69,69,227,249,249,249,173,255,255,255,169,255,255,255,177,167,167,167,209,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,72,72,72,235,255,255,255,188,255,255,255,179,255,255,255,182,226,226,226,198,24,24,24,249, +0,0,0,255,0,0,0,255,0,0,0,255,59,59,59,243,250,250,250,211,245,245,245,215,18,18,18,252,0,0,0,255, +0,0,0,255,0,0,0,255,116,116,116,232,255,255,255,204,249,249,249,206,16,16,16,252,0,0,0,255,14,14,14,254, +181,181,181,240,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,47,47,47,252,119,119,119,247,0,0,0,255, +0,0,0,255,0,0,0,255,85,85,85,233,255,255,255,187,255,255,255,176,255,255,255,177,208,208,208,196,6,6,6,253, +0,0,0,255,80,80,80,234,255,255,255,195,250,250,250,198,37,37,37,246,0,0,0,255,0,0,0,255,1,1,1,255, +171,171,171,225,205,205,205,215,6,6,6,254,0,0,0,255,93,93,93,215,255,255,255,155,255,255,255,142,255,255,255,142, +254,254,254,156,77,77,77,221,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,27,27,27,240,239,239,239,143, +255,255,255,107,255,255,255,83,255,255,255,69,255,255,255,61,255,255,255,56,255,255,255,52,255,255,255,49,255,255,255,45, +255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,31,255,255,255,28,255,255,255,26,255,255,255,24, +255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16, +255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,34, +255,255,255,40,255,255,255,50,255,255,255,65,255,255,255,86,230,230,230,116,46,46,46,214,0,0,0,255,0,0,0,255, +13,13,13,245,110,110,110,188,243,243,243,137,255,255,255,121,255,255,255,110,255,255,255,103,255,255,255,101,255,255,255,107, +255,255,255,121,255,255,255,143,110,110,110,204,0,0,0,255,0,0,0,255,3,3,3,254,148,148,148,221,222,222,222,207, +18,18,18,251,0,0,0,255,68,68,68,230,246,246,246,182,255,255,255,179,255,255,255,189,70,70,70,236,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,149,149,149,217,255,255,255,185,255,255,255,179,255,255,255,185,192,192,192,207, +8,8,8,253,0,0,0,255,0,0,0,255,0,0,0,255,109,109,109,237,255,255,255,217,106,106,106,240,0,0,0,255, +0,0,0,255,0,0,0,255,26,26,26,250,251,251,251,209,255,255,255,207,74,74,74,241,0,0,0,255,0,0,0,255, +140,140,140,246,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,43,43,43,253,49,49,49,253,0,0,0,255, +0,0,0,255,0,0,0,255,183,183,183,211,255,255,255,184,255,255,255,178,254,254,254,185,64,64,64,236,0,0,0,255, +2,2,2,255,205,205,205,208,255,255,255,198,139,139,139,223,0,0,0,255,0,0,0,255,0,0,0,255,65,65,65,244, +249,249,249,214,49,49,49,245,0,0,0,255,8,8,8,252,221,221,221,177,255,255,255,154,255,255,255,149,255,255,255,158, +110,110,110,210,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,253,177,177,177,171,255,255,255,120, +255,255,255,94,255,255,255,76,255,255,255,66,255,255,255,60,255,255,255,56,255,255,255,53,255,255,255,49,255,255,255,46, +255,255,255,43,255,255,255,40,255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24, +255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,10, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17, +255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,34, +255,255,255,38,255,255,255,44,255,255,255,54,255,255,255,70,255,255,255,90,248,248,248,115,79,79,79,196,1,1,1,254, +0,0,0,255,0,0,0,255,23,23,23,240,133,133,133,184,249,249,249,140,255,255,255,126,255,255,255,116,255,255,255,113, +255,255,255,118,255,255,255,131,253,253,253,152,68,68,68,224,0,0,0,255,0,0,0,255,3,3,3,254,153,153,153,225, +178,178,178,222,4,4,4,254,0,0,0,255,61,61,61,235,241,241,241,191,255,255,255,190,221,221,221,205,14,14,14,252, +0,0,0,255,0,0,0,255,0,0,0,255,12,12,12,252,207,207,207,204,255,255,255,185,255,255,255,181,255,255,255,188, +146,146,146,220,1,1,1,255,0,0,0,255,0,0,0,255,1,1,1,255,168,168,168,233,212,212,212,230,2,2,2,255, +0,0,0,255,0,0,0,255,0,0,0,255,170,170,170,225,255,255,255,209,142,142,142,230,0,0,0,255,0,0,0,255, +88,88,88,251,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,25,25,25,255,4,4,4,255,0,0,0,255, +0,0,0,255,30,30,30,248,253,253,253,195,255,255,255,183,255,255,255,184,171,171,171,209,0,0,0,255,0,0,0,255, +73,73,73,238,255,255,255,201,237,237,237,206,20,20,20,250,0,0,0,255,0,0,0,255,5,5,5,254,207,207,207,224, +128,128,128,233,0,0,0,255,0,0,0,255,92,92,92,221,255,255,255,167,255,255,255,158,255,255,255,163,143,143,143,202, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,117,117,117,198,255,255,255,132,255,255,255,104, +255,255,255,84,255,255,255,72,255,255,255,65,255,255,255,61,255,255,255,57,255,255,255,54,255,255,255,50,255,255,255,47, +255,255,255,44,255,255,255,41,255,255,255,38,255,255,255,35,255,255,255,32,255,255,255,29,255,255,255,27,255,255,255,25, +255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12,255,255,255,11, +255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17, +255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,35, +255,255,255,38,255,255,255,42,255,255,255,48,255,255,255,58,255,255,255,72,255,255,255,91,255,255,255,115,129,129,129,175, +7,7,7,250,0,0,0,255,0,0,0,255,0,0,0,255,31,31,31,237,152,152,152,181,254,254,254,142,255,255,255,131, +255,255,255,125,255,255,255,129,255,255,255,142,239,239,239,165,40,40,40,237,0,0,0,255,0,0,0,255,3,3,3,255, +151,151,151,231,131,131,131,235,0,0,0,255,0,0,0,255,49,49,49,241,233,233,233,201,255,255,255,200,147,147,147,225, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,37,37,37,245,238,238,238,197,255,255,255,185,255,255,255,184, +255,255,255,192,97,97,97,232,0,0,0,255,0,0,0,255,0,0,0,255,15,15,15,253,217,217,217,234,64,64,64,249, +0,0,0,255,0,0,0,255,0,0,0,255,70,70,70,243,255,255,255,213,217,217,217,220,1,1,1,255,0,0,0,255, +38,38,38,254,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,114,114,114,229,255,255,255,192,255,255,255,185,252,252,252,191,44,44,44,243,0,0,0,255,1,1,1,255, +196,196,196,215,255,255,255,204,107,107,107,233,0,0,0,255,0,0,0,255,0,0,0,255,104,104,104,240,207,207,207,225, +8,8,8,254,0,0,0,255,8,8,8,253,221,221,221,188,255,255,255,170,255,255,255,169,165,165,165,199,5,5,5,253, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,74,74,74,218,254,254,254,141,255,255,255,113,255,255,255,92, +255,255,255,79,255,255,255,71,255,255,255,66,255,255,255,62,255,255,255,59,255,255,255,55,255,255,255,52,255,255,255,49, +255,255,255,46,255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,30,255,255,255,28,255,255,255,25, +255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,11, +255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18, +255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,31,255,255,255,33,255,255,255,36, +255,255,255,39,255,255,255,41,255,255,255,46,255,255,255,52,255,255,255,60,255,255,255,74,255,255,255,92,255,255,255,114, +184,184,184,156,26,26,26,238,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,59,59,59,225,210,210,210,167, +255,255,255,145,255,255,255,139,255,255,255,141,255,255,255,152,225,225,225,175,33,33,33,242,0,0,0,255,0,0,0,255, +2,2,2,255,137,137,137,237,89,89,89,244,0,0,0,255,0,0,0,255,42,42,42,245,234,234,234,208,254,254,254,209, +78,78,78,241,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,73,73,73,237,253,253,253,194,255,255,255,185, +255,255,255,187,248,248,248,197,55,55,55,242,0,0,0,255,0,0,0,255,0,0,0,255,49,49,49,251,161,161,161,244, +0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,254,222,222,222,221,254,254,254,217,34,34,34,250,0,0,0,255, +2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,210,210,210,210,255,255,255,191,255,255,255,189,162,162,162,215,0,0,0,255,0,0,0,255,71,71,71,240, +255,255,255,206,213,213,213,215,7,7,7,254,0,0,0,255,0,0,0,255,21,21,21,252,232,232,232,225,49,49,49,248, +0,0,0,255,0,0,0,255,96,96,96,227,255,255,255,183,255,255,255,178,179,179,179,200,9,9,9,252,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,48,48,48,232,244,244,244,152,255,255,255,122,255,255,255,100,255,255,255,86, +255,255,255,78,255,255,255,74,255,255,255,70,255,255,255,68,255,255,255,64,255,255,255,62,255,255,255,58,255,255,255,55, +255,255,255,51,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,34,255,255,255,31,255,255,255,28,255,255,255,26, +255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,12, +255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,19, +255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,27,255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,37, +255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,50,255,255,255,55,255,255,255,63,255,255,255,75,255,255,255,91, +255,255,255,113,232,232,232,142,62,62,62,218,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,251, +110,110,110,207,245,245,245,162,255,255,255,153,255,255,255,154,255,255,255,162,221,221,221,184,32,32,32,244,0,0,0,255, +0,0,0,255,1,1,1,255,110,110,110,244,56,56,56,250,0,0,0,255,0,0,0,255,43,43,43,247,228,228,228,217, +237,237,237,218,34,34,34,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,117,117,117,228,255,255,255,193, +255,255,255,187,255,255,255,190,227,227,227,204,25,25,25,249,0,0,0,255,0,0,0,255,0,0,0,255,99,99,99,250, +27,27,27,254,0,0,0,255,0,0,0,255,0,0,0,255,119,119,119,238,255,255,255,218,98,98,98,241,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +47,47,47,245,255,255,255,200,255,255,255,192,252,252,252,196,40,40,40,245,0,0,0,255,3,3,3,255,204,204,204,217, +255,255,255,209,71,71,71,241,0,0,0,255,0,0,0,255,0,0,0,255,151,151,151,237,139,139,139,237,0,0,0,255, +0,0,0,255,9,9,9,253,225,225,225,201,255,255,255,190,184,184,184,205,11,11,11,251,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,34,34,34,239,230,230,230,162,255,255,255,131,255,255,255,110,255,255,255,97,255,255,255,89, +255,255,255,85,255,255,255,83,255,255,255,81,255,255,255,79,255,255,255,77,255,255,255,74,255,255,255,70,255,255,255,65, +255,255,255,60,255,255,255,54,255,255,255,49,255,255,255,43,255,255,255,38,255,255,255,34,255,255,255,30,255,255,255,26, +255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,23,255,255,255,25,255,255,255,28,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,38, +255,255,255,41,255,255,255,44,255,255,255,47,255,255,255,51,255,255,255,55,255,255,255,60,255,255,255,67,255,255,255,77, +255,255,255,92,255,255,255,111,254,254,254,134,125,125,125,190,11,11,11,249,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,29,29,29,242,161,161,161,194,255,255,255,167,255,255,255,166,255,255,255,172,223,223,223,191,37,37,37,244, +0,0,0,255,0,0,0,255,0,0,0,255,80,80,80,248,41,41,41,252,0,0,0,255,0,0,0,255,30,30,30,250, +204,204,204,226,207,207,207,229,13,13,13,254,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,255,159,159,159,219, +255,255,255,193,255,255,255,188,255,255,255,193,191,191,191,214,7,7,7,254,0,0,0,255,0,0,0,255,1,1,1,255, +42,42,42,254,0,0,0,255,0,0,0,255,0,0,0,255,27,27,27,251,250,250,250,222,168,168,168,233,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +133,133,133,227,255,255,255,198,255,255,255,195,157,157,157,218,0,0,0,255,0,0,0,255,83,83,83,239,255,255,255,210, +175,175,175,224,1,1,1,255,0,0,0,255,0,0,0,255,53,53,53,249,220,220,220,230,13,13,13,253,0,0,0,255, +0,0,0,255,112,112,112,231,255,255,255,202,181,181,181,213,11,11,11,252,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,26,26,26,244,218,218,218,173,255,255,255,141,255,255,255,122,255,255,255,110,255,255,255,104,255,255,255,102, +255,255,255,102,255,255,255,102,255,255,255,101,255,255,255,100,255,255,255,97,255,255,255,92,255,255,255,87,255,255,255,80, +255,255,255,73,255,255,255,65,255,255,255,57,255,255,255,49,255,255,255,42,255,255,255,36,255,255,255,32,255,255,255,27, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20, +255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,29,255,255,255,32,255,255,255,35,255,255,255,38,255,255,255,42, +255,255,255,45,255,255,255,48,255,255,255,52,255,255,255,55,255,255,255,59,255,255,255,63,255,255,255,68,255,255,255,74, +255,255,255,83,255,255,255,96,255,255,255,112,255,255,255,132,216,216,216,161,64,64,64,223,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,60,60,60,232,202,202,202,191,255,255,255,179,255,255,255,184,231,231,231,198, +46,46,46,244,0,0,0,255,0,0,0,255,0,0,0,255,58,58,58,251,39,39,39,253,0,0,0,255,0,0,0,255, +12,12,12,253,168,168,168,236,170,170,170,239,2,2,2,255,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,253, +191,191,191,213,255,255,255,193,255,255,255,191,255,255,255,197,141,141,141,225,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,170,170,170,233,237,237,237,226,5,5,5,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,254, +228,228,228,210,255,255,255,197,252,252,252,200,37,37,37,246,0,0,0,255,5,5,5,254,213,213,213,219,247,247,247,214, +35,35,35,249,0,0,0,255,0,0,0,255,4,4,4,255,198,198,198,235,62,62,62,248,0,0,0,255,0,0,0,255, +34,34,34,250,244,244,244,215,170,170,170,223,9,9,9,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +23,23,23,247,210,210,210,183,255,255,255,153,255,255,255,137,255,255,255,128,255,255,255,124,255,255,255,124,255,255,255,125, +254,254,254,127,216,216,216,137,158,158,158,153,115,115,115,168,84,84,84,180,62,62,62,190,48,48,48,196,40,40,40,198, +37,37,37,193,46,46,46,173,62,62,62,145,84,84,84,113,116,116,116,81,167,167,167,54,246,246,246,34,255,255,255,28, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21, +255,255,255,24,255,255,255,27,255,255,255,30,255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,45,255,255,255,50, +255,255,255,54,255,255,255,58,255,255,255,62,255,255,255,66,255,255,255,70,255,255,255,74,255,255,255,78,255,255,255,82, +255,255,255,88,255,255,255,95,255,255,255,104,255,255,255,118,255,255,255,133,255,255,255,151,160,160,160,191,27,27,27,244, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,254,90,90,90,227,226,226,226,197,255,255,255,195, +238,238,238,205,59,59,59,243,0,0,0,255,0,0,0,255,0,0,0,255,39,39,39,253,48,48,48,253,0,0,0,255, +0,0,0,255,2,2,2,255,121,121,121,245,126,126,126,247,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +20,20,20,251,211,211,211,210,255,255,255,195,255,255,255,193,254,254,254,200,86,86,86,237,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,68,68,68,247,255,255,255,226,53,53,53,249, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,68,68,68,242, +255,255,255,204,255,255,255,199,155,155,155,221,0,0,0,255,0,0,0,255,91,91,91,240,255,255,255,215,123,123,123,235, +0,0,0,255,0,0,0,255,0,0,0,255,106,106,106,245,129,129,129,243,0,0,0,255,0,0,0,255,4,4,4,255, +190,190,190,231,150,150,150,233,5,5,5,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,24,24,24,248, +208,208,208,194,255,255,255,169,255,255,255,155,255,255,255,149,254,254,254,147,204,204,204,160,118,118,118,189,59,59,59,216, +20,20,20,240,1,1,1,254,0,0,0,255,0,0,0,255,5,5,5,249,36,36,36,215,77,77,77,174,127,127,127,133, +194,194,194,96,240,240,240,74,254,254,254,62,255,255,255,53,252,252,252,46,223,223,223,44,248,248,248,35,255,255,255,30, +255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,24, +255,255,255,27,255,255,255,30,255,255,255,35,255,255,255,39,255,255,255,44,255,255,255,50,255,255,255,56,255,255,255,62, +255,255,255,68,255,255,255,73,255,255,255,78,255,255,255,83,255,255,255,88,255,255,255,93,255,255,255,97,255,255,255,101, +255,255,255,105,255,255,255,110,255,255,255,115,255,255,255,121,255,255,255,131,255,255,255,142,255,255,255,156,242,242,242,174, +109,109,109,219,8,8,8,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,12,12,12,252,113,113,113,229, +237,237,237,210,246,246,246,214,79,79,79,243,0,0,0,255,0,0,0,255,0,0,0,255,23,23,23,254,61,61,61,252, +2,2,2,255,0,0,0,255,0,0,0,255,74,74,74,251,76,76,76,252,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,29,29,29,249,223,223,223,208,255,255,255,196,255,255,255,196,243,243,243,206,42,42,42,247,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,255,217,217,217,231,132,132,132,240, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,156,156,156,226, +255,255,255,203,251,251,251,204,36,36,36,247,0,0,0,255,7,7,7,254,219,219,219,222,214,214,214,223,9,9,9,254, +0,0,0,255,0,0,0,255,27,27,27,253,179,179,179,240,5,5,5,255,0,0,0,255,0,0,0,255,128,128,128,243, +124,124,124,242,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,29,29,29,249,213,213,213,206, +255,255,255,185,253,253,253,175,181,181,181,186,93,93,93,212,30,30,30,239,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,11,11,11,247,59,59,59,210,132,132,132,164,230,230,230,120,255,255,255,103,255,255,255,92,255,255,255,82, +255,255,255,74,255,255,255,66,255,255,255,59,255,255,255,52,255,255,255,45,255,255,255,40,255,255,255,35,255,255,255,31, +255,255,255,27,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,14, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,23,255,255,255,27, +255,255,255,30,255,255,255,35,255,255,255,40,255,255,255,46,255,255,255,52,247,247,247,60,190,190,190,81,159,159,159,99, +143,143,143,114,135,135,135,126,130,130,130,135,128,128,128,143,128,128,128,148,130,130,130,153,133,133,133,156,140,140,140,159, +148,148,148,160,162,162,162,158,186,186,186,155,225,225,225,148,254,254,254,145,255,255,255,150,255,255,255,158,255,255,255,168, +255,255,255,180,214,214,214,201,72,72,72,238,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +17,17,17,252,125,125,125,235,238,238,238,225,111,111,111,243,1,1,1,255,0,0,0,255,0,0,0,255,6,6,6,255, +60,60,60,253,11,11,11,255,0,0,0,255,0,0,0,255,31,31,31,254,23,23,23,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,36,36,36,247,228,228,228,208,255,255,255,198,255,255,255,200,212,212,212,214,14,14,14,253, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,112,112,112,243,223,223,223,232, +2,2,2,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,9,9,9,254,239,239,239,213, +255,255,255,204,155,155,155,223,0,0,0,255,0,0,0,255,98,98,98,240,253,253,253,220,61,61,61,246,0,0,0,255, +0,0,0,255,1,1,1,255,154,154,154,244,30,30,30,253,0,0,0,255,0,0,0,255,72,72,72,251,89,89,89,249, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,40,40,40,249,223,223,223,217,231,231,231,205, +124,124,124,219,33,33,33,243,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,252,61,61,61,218, +148,148,148,174,244,244,244,135,255,255,255,121,255,255,255,110,255,255,255,100,255,255,255,91,255,255,255,84,255,255,255,77, +255,255,255,71,255,255,255,65,255,255,255,60,255,255,255,54,255,255,255,49,255,255,255,43,255,255,255,38,255,255,255,33, +255,255,255,30,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,26,252,252,252,29, +130,130,130,58,86,86,86,88,76,76,76,103,67,67,67,121,61,61,61,136,51,51,51,156,48,48,48,169,44,44,44,181, +38,38,38,195,30,30,30,209,21,21,21,225,11,11,11,240,2,2,2,252,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,11,11,11,248,43,43,43,232,83,83,83,218,128,128,128,208, +183,183,183,199,239,239,239,197,255,255,255,205,185,185,185,225,48,48,48,249,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,19,19,19,253,129,129,129,243,144,144,144,245,9,9,9,255,0,0,0,255,0,0,0,255, +0,0,0,255,42,42,42,254,23,23,23,255,0,0,0,255,0,0,0,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,37,37,37,247,225,225,225,210,255,255,255,201,255,255,255,204,162,162,162,225, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,20,20,20,253,246,246,246,231, +56,56,56,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,69,69,69,244,255,255,255,211, +250,250,250,209,36,36,36,248,0,0,0,255,9,9,9,254,225,225,225,225,143,143,143,236,0,0,0,255,0,0,0,255, +0,0,0,255,83,83,83,250,77,77,77,250,0,0,0,255,0,0,0,255,14,14,14,255,41,41,41,253,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,59,59,59,250,169,169,169,235,81,81,81,241,7,7,7,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,21,21,21,244,105,105,105,203,222,222,222,157,255,255,255,138, +255,255,255,126,255,255,255,117,255,255,255,109,255,255,255,102,255,255,255,96,255,255,255,91,255,255,255,87,255,255,255,82, +255,255,255,78,255,255,255,73,255,255,255,67,255,255,255,61,255,255,255,54,255,255,255,48,255,255,255,42,255,255,255,36, +255,255,255,31,255,255,255,28,255,255,255,24,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15, +255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11, +255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,17,249,249,249,20,148,148,148,36,124,124,124,48,118,118,118,56, +173,173,173,46,249,249,249,39,255,255,255,42,255,255,255,46,255,255,255,51,255,255,255,57,255,255,255,63,255,255,255,69, +255,255,255,76,255,255,255,83,255,255,255,90,253,253,253,97,241,241,241,107,200,200,200,126,158,158,158,147,123,123,123,168, +91,91,91,189,61,61,61,211,27,27,27,236,2,2,2,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,4,4,4,254,34,34,34,248,82,82,82,242,132,132,132,239,101,101,101,247,22,22,22,254,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,18,18,18,254,77,77,77,252,17,17,17,255,0,0,0,255, +0,0,0,255,0,0,0,255,20,20,20,255,26,26,26,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,32,32,32,249,214,214,214,214,255,255,255,205,255,255,255,209, +103,103,103,237,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,159,159,159,240, +141,141,141,242,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,132,132,132,236,255,255,255,214, +152,152,152,228,0,0,0,255,0,0,0,255,106,106,106,242,216,216,216,229,12,12,12,254,0,0,0,255,0,0,0,255, +27,27,27,254,120,120,120,248,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,255,33,33,33,253,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,4,4,4,253,58,58,58,230,150,150,150,193,248,248,248,158,255,255,255,145,255,255,255,135,255,255,255,126, +255,255,255,120,255,255,255,115,255,255,255,112,255,255,255,109,255,255,255,106,255,255,255,103,236,236,236,104,179,179,179,115, +124,124,124,131,86,86,86,147,59,59,59,162,48,48,48,165,61,61,61,140,79,79,79,113,95,95,95,90,123,123,123,67, +137,137,137,54,196,196,196,35,255,255,255,25,255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,16, +255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12, +255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,28, +255,255,255,31,255,255,255,34,255,255,255,38,255,255,255,41,255,255,255,45,255,255,255,48,255,255,255,53,255,255,255,58, +255,255,255,62,255,255,255,68,255,255,255,74,255,255,255,79,255,255,255,85,255,255,255,92,255,255,255,98,255,255,255,105, +255,255,255,113,255,255,255,121,254,254,254,131,212,212,212,151,120,120,120,190,48,48,48,228,4,4,4,253,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,255,15,15,15,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,21,21,21,251,190,190,190,221,255,255,255,210, +248,248,248,215,51,51,51,247,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,54,54,54,250, +228,228,228,235,4,4,4,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,148,148,148,236,248,248,248,220, +33,33,33,249,0,0,0,255,11,11,11,254,226,226,226,230,56,56,56,249,0,0,0,255,0,0,0,255,3,3,3,255, +126,126,126,249,6,6,6,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,28,28,28,245, +112,112,112,215,218,218,218,181,255,255,255,164,255,255,255,155,255,255,255,147,255,255,255,140,255,255,255,135,255,255,255,132, +255,255,255,129,224,224,224,135,147,147,147,158,88,88,88,183,47,47,47,209,18,18,18,233,4,4,4,250,7,7,7,244, +35,35,35,204,73,73,73,158,135,135,135,109,231,231,231,69,255,255,255,56,255,255,255,48,255,255,255,42,255,255,255,36, +255,255,255,31,255,255,255,28,255,255,255,24,255,255,255,22,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,16, +255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,27, +255,255,255,29,255,255,255,31,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,49, +255,255,255,52,255,255,255,56,255,255,255,61,255,255,255,65,255,255,255,69,255,255,255,74,255,255,255,79,255,255,255,85, +255,255,255,91,255,255,255,98,255,255,255,106,255,255,255,116,255,255,255,126,255,255,255,138,223,223,223,157,138,138,138,190, +75,75,75,219,24,24,24,243,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,254,147,147,147,231, +254,254,254,217,220,220,220,225,17,17,17,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +198,198,198,239,62,62,62,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,140,140,140,240,145,145,145,238, +0,0,0,255,0,0,0,255,117,117,117,243,126,126,126,243,0,0,0,255,0,0,0,255,0,0,0,255,96,96,96,251, +26,26,26,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,253,73,73,73,235,173,173,173,206,251,251,251,182, +255,255,255,173,255,255,255,166,255,255,255,160,255,255,255,156,249,249,249,154,190,190,190,166,120,120,120,187,67,67,67,210, +26,26,26,235,2,2,2,253,0,0,0,255,2,2,2,252,31,31,31,222,77,77,77,181,148,148,148,134,241,241,241,95, +255,255,255,82,255,255,255,73,255,255,255,64,255,255,255,56,255,255,255,49,255,255,255,43,255,255,255,38,255,255,255,34, +255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16, +255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13, +255,255,255,14,255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,23,255,255,255,25, +255,255,255,27,255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,45, +255,255,255,48,255,255,255,51,255,255,255,54,255,255,255,58,255,255,255,61,255,255,255,66,255,255,255,70,255,255,255,73, +255,255,255,78,255,255,255,83,255,255,255,89,255,255,255,97,255,255,255,104,255,255,255,113,255,255,255,123,255,255,255,133, +255,255,255,143,254,254,254,154,203,203,203,175,125,125,125,204,61,61,61,231,10,10,10,251,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +85,85,85,243,237,237,237,227,173,173,173,237,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +81,81,81,249,146,146,146,245,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,120,120,120,245,30,30,30,252, +0,0,0,255,18,18,18,254,178,178,178,240,5,5,5,255,0,0,0,255,0,0,0,255,52,52,52,254,51,51,51,253, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,34,34,34,248,127,127,127,227,228,228,228,203,255,255,255,191,255,255,255,185,255,255,255,179, +227,227,227,180,159,159,159,194,100,100,100,211,50,50,50,229,12,12,12,248,0,0,0,255,0,0,0,255,0,0,0,255, +9,9,9,247,54,54,54,211,119,119,119,168,216,216,216,124,255,255,255,105,255,255,255,95,255,255,255,85,255,255,255,76, +255,255,255,68,255,255,255,60,255,255,255,53,255,255,255,48,255,255,255,42,255,255,255,38,255,255,255,35,255,255,255,32, +255,255,255,29,255,255,255,26,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,18,255,255,255,17, +255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26, +255,255,255,27,255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,45, +255,255,255,48,255,255,255,51,255,255,255,54,255,255,255,57,255,255,255,60,255,255,255,64,255,255,255,68,255,255,255,71, +255,255,255,75,255,255,255,79,255,255,255,83,255,255,255,88,255,255,255,94,255,255,255,100,255,255,255,107,255,255,255,114, +255,255,255,122,255,255,255,130,255,255,255,139,255,255,255,148,255,255,255,158,245,245,245,171,166,166,166,197,91,91,91,223, +33,33,33,244,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,25,25,25,252,170,170,170,241,115,115,115,248,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +3,3,3,255,153,153,153,247,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,29,29,29,254,0,0,0,255, +1,1,1,255,139,139,139,245,31,31,31,253,0,0,0,255,0,0,0,255,19,19,19,255,52,52,52,254,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,254, +82,82,82,242,184,184,184,223,254,254,254,207,254,254,254,201,208,208,208,204,138,138,138,215,76,76,76,230,27,27,27,245, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,20,20,20,241,74,74,74,205,151,151,151,164, +244,244,244,127,255,255,255,114,255,255,255,103,255,255,255,93,255,255,255,84,255,255,255,76,255,255,255,68,255,255,255,61, +255,255,255,55,255,255,255,50,255,255,255,46,255,255,255,42,255,255,255,38,255,255,255,35,255,255,255,33,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17, +255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26, +255,255,255,28,255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,39,255,255,255,42,255,255,255,46,255,255,255,49, +255,255,255,53,255,255,255,57,255,255,255,60,255,255,255,64,255,255,255,68,255,255,255,72,255,255,255,75,255,255,255,79, +255,255,255,83,255,255,255,86,255,255,255,90,255,255,255,93,255,255,255,97,255,255,255,101,255,255,255,106,255,255,255,110, +255,255,255,116,255,255,255,121,255,255,255,127,255,255,255,133,255,255,255,140,255,255,255,148,255,255,255,156,255,255,255,165, +254,254,254,174,215,215,215,191,135,135,135,215,67,67,67,235,12,12,12,252,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,69,69,69,252,30,30,30,254,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,73,73,73,253,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +86,86,86,250,75,75,75,251,0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,40,40,40,251,136,136,136,239,229,229,229,224, +203,203,203,223,136,136,136,229,74,74,74,238,21,21,21,250,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,2,2,2,254,35,35,35,234,96,96,96,200,181,181,181,162,253,253,253,133,255,255,255,122,255,255,255,111, +255,255,255,101,255,255,255,91,255,255,255,83,255,255,255,75,255,255,255,69,255,255,255,62,255,255,255,57,255,255,255,53, +255,255,255,49,255,255,255,45,255,255,255,42,255,255,255,39,255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,18, +255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14, +255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,23,255,255,255,26,255,255,255,29, +255,255,255,32,255,255,255,35,255,255,255,39,255,255,255,43,255,255,255,47,255,255,255,52,255,255,255,57,255,255,255,61, +255,255,255,67,255,255,255,71,255,255,255,77,255,255,255,81,255,255,255,86,255,255,255,91,255,255,255,95,255,255,255,99, +255,255,255,103,255,255,255,106,255,255,255,109,255,255,255,113,255,255,255,116,255,255,255,119,255,255,255,122,255,255,255,125, +255,255,255,128,255,255,255,132,255,255,255,134,255,255,255,138,255,255,255,141,255,255,255,146,255,255,255,151,255,255,255,156, +255,255,255,162,255,255,255,169,255,255,255,177,255,255,255,185,245,245,245,194,177,177,177,213,102,102,102,232,36,36,36,248, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,10,10,10,255,3,3,3,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,40,40,40,254, +92,92,92,251,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,9,9,9,255,83,83,83,251,135,135,135,246,131,131,131,243,71,71,71,246,17,17,17,253, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,15,15,15,248,60,60,60,226, +126,126,126,195,213,213,213,161,255,255,255,141,255,255,255,130,255,255,255,119,255,255,255,109,255,255,255,100,255,255,255,91, +255,255,255,83,255,255,255,76,255,255,255,70,255,255,255,65,255,255,255,60,255,255,255,56,255,255,255,53,255,255,255,49, +255,255,255,46,255,255,255,44,255,255,255,41,255,255,255,39,255,255,255,37,255,255,255,34,255,255,255,33,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,18, +255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10, +255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14, +255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,30,255,255,255,34, +255,255,255,40,255,255,255,45,255,255,255,51,255,255,255,57,255,255,255,64,255,255,255,70,255,255,255,77,255,255,255,84, +255,255,255,91,255,255,255,97,255,255,255,103,255,255,255,110,255,255,255,115,255,255,255,120,254,254,254,126,251,251,251,130, +245,245,245,136,242,242,242,140,238,238,238,145,233,233,233,149,229,229,229,153,224,224,224,157,218,218,218,160,213,213,213,164, +217,217,217,165,230,230,230,164,240,240,240,163,245,245,245,163,251,251,251,163,254,254,254,164,255,255,255,166,255,255,255,168, +255,255,255,171,255,255,255,174,255,255,255,178,255,255,255,183,255,255,255,188,255,255,255,194,255,255,255,201,254,254,254,208, +215,215,215,220,139,139,139,236,68,68,68,247,10,10,10,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,69,69,69,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,3,3,3,255,41,41,41,254,13,13,13,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,18,18,18,250,66,66,66,233,123,123,123,211,192,192,192,186,249,249,249,164,255,255,255,153, +255,255,255,143,255,255,255,133,255,255,255,122,255,255,255,113,255,255,255,105,255,255,255,96,255,255,255,89,255,255,255,83, +255,255,255,77,255,255,255,73,255,255,255,68,255,255,255,64,255,255,255,60,255,255,255,57,255,255,255,53,255,255,255,50, +255,255,255,47,255,255,255,44,255,255,255,42,255,255,255,39,255,255,255,37,255,255,255,34,255,255,255,32,255,255,255,31, +255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,24,255,255,255,22,255,255,255,21,255,255,255,19,255,255,255,18, +255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10, +255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14, +255,255,255,15,255,255,255,17,255,255,255,20,255,255,255,23,255,255,255,27,255,255,255,32,255,255,255,38,255,255,255,45, +255,255,255,52,255,255,255,60,255,255,255,67,255,255,255,76,254,254,254,84,240,240,240,96,184,184,184,120,139,139,139,144, +107,107,107,166,83,83,83,185,64,64,64,202,47,47,47,217,34,34,34,228,25,25,25,236,16,16,16,243,11,11,11,247, +7,7,7,251,4,4,4,253,1,1,1,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,2,2,2,254,7,7,7,252,12,12,12,250,17,17,17,248,25,25,25,245,34,34,34,242, +43,43,43,239,53,53,53,237,63,63,63,235,74,74,74,233,86,86,86,231,99,99,99,231,111,111,111,230,125,125,125,231, +139,139,139,232,153,153,153,234,168,168,168,237,172,172,172,240,128,128,128,248,75,75,75,252,23,23,23,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,23,23,23,252,79,79,79,243, +137,137,137,229,203,203,203,211,251,251,251,194,255,255,255,184,255,255,255,175,255,255,255,165,255,255,255,156,255,255,255,148, +255,255,255,138,255,255,255,130,255,255,255,123,255,255,255,115,255,255,255,108,255,255,255,102,255,255,255,97,255,255,255,91, +255,255,255,86,255,255,255,81,255,255,255,77,255,255,255,72,255,255,255,69,255,255,255,65,255,255,255,61,255,255,255,57, +255,255,255,54,255,255,255,50,255,255,255,47,255,255,255,44,255,255,255,41,255,255,255,38,255,255,255,36,255,255,255,34, +255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,20,255,255,255,18, +255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14, +255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,27,255,255,255,32,255,255,255,39,255,255,255,46,241,241,241,57, +141,141,141,94,86,86,86,136,55,55,55,172,33,33,33,204,15,15,15,231,3,3,3,251,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,21,21,21,254,84,84,84,249,127,127,127,242,135,135,135,236, +143,143,143,230,152,152,152,223,161,161,161,215,174,174,174,206,187,187,187,197,202,202,202,187,220,220,220,176,239,239,239,166, +254,254,254,157,255,255,255,150,255,255,255,145,255,255,255,139,255,255,255,133,255,255,255,127,255,255,255,122,255,255,255,117, +255,255,255,111,255,255,255,106,255,255,255,101,255,255,255,96,255,255,255,91,255,255,255,86,255,255,255,81,255,255,255,76, +255,255,255,71,255,255,255,67,255,255,255,62,255,255,255,58,255,255,255,54,255,255,255,51,255,255,255,47,255,255,255,43, +255,255,255,40,255,255,255,37,255,255,255,34,255,255,255,31,255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22, +255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,10, +255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15, +255,255,255,17,255,255,255,20,255,255,255,24,196,196,196,36,84,84,84,83,57,57,57,120,44,44,44,149,33,33,33,176, +42,42,42,173,56,56,56,165,67,67,67,162,77,77,77,161,85,85,85,163,91,91,91,166,95,95,95,170,95,95,95,176, +93,93,93,182,91,91,91,189,86,86,86,197,80,80,80,204,74,74,74,211,69,69,69,217,61,61,61,224,51,51,51,231, +39,39,39,239,26,26,26,246,13,13,13,251,2,2,2,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +6,6,6,252,16,16,16,247,28,28,28,240,43,43,43,232,58,58,58,223,75,75,75,214,93,93,93,203,113,113,113,192, +136,136,136,180,162,162,162,167,192,192,192,153,224,224,224,140,251,251,251,128,255,255,255,122,255,255,255,116,255,255,255,110, +255,255,255,105,255,255,255,99,255,255,255,93,255,255,255,87,255,255,255,82,255,255,255,77,255,255,255,71,255,255,255,66, +255,255,255,62,255,255,255,57,255,255,255,53,255,255,255,48,255,255,255,44,255,255,255,40,255,255,255,37,255,255,255,33, +255,255,255,30,255,255,255,27,255,255,255,24,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,15, +255,255,255,17,236,236,236,22,128,128,128,45,121,121,121,56,202,202,202,44,252,252,252,43,255,255,255,49,255,255,255,56, +255,255,255,62,255,255,255,68,255,255,255,74,255,255,255,81,255,255,255,87,255,255,255,94,255,255,255,100,255,255,255,107, +255,255,255,114,255,255,255,121,255,255,255,128,255,255,255,135,255,255,255,142,255,255,255,150,255,255,255,158,255,255,255,166, +255,255,255,174,255,255,255,182,251,251,251,191,242,242,242,201,219,219,219,213,193,193,193,224,158,158,158,235,117,117,117,243, +81,81,81,249,48,48,48,253,15,15,15,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,7,7,7,250,20,20,20,240,36,36,36,229,53,53,53,217, +71,71,71,204,92,92,92,189,115,115,115,175,143,143,143,159,177,177,177,142,218,218,218,125,248,248,248,112,255,255,255,104, +255,255,255,98,255,255,255,92,255,255,255,86,255,255,255,80,255,255,255,74,255,255,255,68,255,255,255,62,255,255,255,57, +255,255,255,51,255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,32,255,255,255,28,255,255,255,25,255,255,255,21, +255,255,255,19,255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,6, +255,255,255,6,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18, +255,255,255,21,255,255,255,24,255,255,255,28,255,255,255,33,255,255,255,39,255,255,255,45,255,255,255,51,255,255,255,57, +255,255,255,63,255,255,255,69,255,255,255,75,255,255,255,81,255,255,255,88,255,255,255,95,255,255,255,102,255,255,255,109, +255,255,255,117,255,255,255,125,255,255,255,132,255,255,255,140,254,254,254,148,240,240,240,159,205,205,205,175,168,168,168,191, +136,136,136,206,108,108,108,220,83,83,83,231,58,58,58,240,35,35,35,248,15,15,15,253,3,3,3,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,254,8,8,8,248,21,21,21,236, +38,38,38,220,56,56,56,204,77,77,77,187,104,104,104,168,136,136,136,148,179,179,179,126,229,229,229,105,253,253,253,93, +255,255,255,86,255,255,255,79,255,255,255,72,255,255,255,65,255,255,255,58,255,255,255,51,255,255,255,45,255,255,255,40, +255,255,255,34,255,255,255,30,255,255,255,25,255,255,255,22,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,10, +255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,27, +255,255,255,30,255,255,255,35,255,255,255,40,255,255,255,46,255,255,255,53,255,255,255,59,255,255,255,65,255,255,255,72, +255,255,255,79,255,255,255,86,255,255,255,93,255,255,255,101,255,255,255,109,251,251,251,117,217,217,217,133,165,165,165,156, +124,124,124,177,92,92,92,197,65,65,65,214,41,41,41,230,19,19,19,244,4,4,4,253,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,252,13,13,13,240, +31,31,31,219,53,53,53,195,82,82,82,169,121,121,121,140,180,180,180,109,244,244,244,84,255,255,255,74,255,255,255,67, +255,255,255,60,255,255,255,53,255,255,255,46,255,255,255,40,255,255,255,34,255,255,255,29,255,255,255,25,255,255,255,20, +255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,14, +255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,29,255,255,255,34,255,255,255,39,255,255,255,45, +255,255,255,50,255,255,255,57,255,255,255,64,255,255,255,71,255,255,255,78,255,255,255,86,255,255,255,93,234,234,234,106, +166,166,166,132,118,118,118,159,83,83,83,184,54,54,54,207,30,30,30,228,10,10,10,246,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +4,4,4,254,10,10,10,251,17,17,17,248,23,23,23,246,29,29,29,243,35,35,35,241,41,41,41,239,47,47,47,236, +52,52,52,234,59,59,59,232,64,64,64,229,71,71,71,227,76,76,76,225,81,81,81,223,87,87,87,220,91,91,91,218, +97,97,97,217,102,102,102,214,107,107,107,213,112,112,112,211,117,117,117,208,120,120,120,207,124,124,124,206,128,128,128,204, +133,133,133,202,135,135,135,201,137,137,137,200,140,140,140,198,142,142,142,197,144,144,144,196,145,145,145,195,146,146,146,194, +150,150,150,192,154,154,154,190,158,158,158,188,162,162,162,186,165,165,165,184,168,168,168,183,168,168,168,181,168,168,168,180, +168,168,168,180,166,166,166,179,163,163,163,180,158,158,158,180,152,152,152,182,147,147,147,183,141,141,141,185,133,133,133,186, +127,127,127,189,120,120,120,191,113,113,113,192,110,110,110,193,106,106,106,194,101,101,101,196,96,96,96,197,91,91,91,199, +85,85,85,201,79,79,79,204,75,75,75,206,68,68,68,208,63,63,63,211,57,57,57,214,51,51,51,217,46,46,46,220, +39,39,39,224,34,34,34,228,28,28,28,232,22,22,22,236,17,17,17,241,11,11,11,245,5,5,5,250,1,1,1,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,246,22,22,22,220,44,44,44,190, +73,73,73,157,115,115,115,122,191,191,191,84,255,255,255,62,255,255,255,55,255,255,255,48,255,255,255,41,255,255,255,35, +255,255,255,30,255,255,255,25,255,255,255,20,255,255,255,15,255,255,255,11,255,255,255,9,255,255,255,5,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,14,255,255,255,17,255,255,255,20,255,255,255,24, +255,255,255,28,255,255,255,33,255,255,255,38,255,255,255,44,255,255,255,50,255,255,255,56,255,255,255,63,255,255,255,70, +254,254,254,78,205,205,205,97,138,138,138,127,94,94,94,157,61,61,61,185,37,37,37,211,16,16,16,236,1,1,1,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,253, +9,9,9,249,15,15,15,245,22,22,22,240,29,29,29,236,37,37,37,232,47,47,47,227,57,57,57,222,67,67,67,217, +77,77,77,212,88,88,88,208,98,98,98,204,108,108,108,200,118,118,118,196,127,127,127,193,138,138,138,189,146,146,146,187, +156,156,156,184,163,163,163,182,172,172,172,179,180,180,180,177,185,185,185,176,193,193,193,174,200,200,200,172,205,205,205,171, +211,211,211,170,217,217,217,169,223,223,223,168,228,228,228,167,232,232,232,166,237,237,237,165,243,243,243,164,249,249,249,162, +254,254,254,161,255,255,255,160,255,255,255,159,255,255,255,158,255,255,255,157,255,255,255,156,255,255,255,156,255,255,255,155, +255,255,255,154,255,255,255,153,255,255,255,152,255,255,255,151,255,255,255,150,255,255,255,149,255,255,255,149,255,255,255,148, +255,255,255,147,255,255,255,146,255,255,255,146,255,255,255,145,255,255,255,144,255,255,255,143,255,255,255,142,255,255,255,141, +255,255,255,140,255,255,255,139,255,255,255,139,255,255,255,138,255,255,255,137,255,255,255,136,255,255,255,135,255,255,255,134, +255,255,255,132,255,255,255,131,255,255,255,130,255,255,255,129,255,255,255,127,255,255,255,126,255,255,255,124,255,255,255,123, +255,255,255,122,255,255,255,121,255,255,255,120,255,255,255,119,255,255,255,118,255,255,255,117,255,255,255,117,255,255,255,116, +255,255,255,115,255,255,255,115,255,255,255,113,255,255,255,113,255,255,255,112,255,255,255,111,255,255,255,110,255,255,255,110, +255,255,255,109,255,255,255,108,255,255,255,108,255,255,255,107,255,255,255,107,255,255,255,107,255,255,255,107,255,255,255,107, +255,255,255,107,255,255,255,107,255,255,255,107,255,255,255,107,255,255,255,107,255,255,255,108,255,255,255,108,249,249,249,110, +229,229,229,115,206,206,206,121,184,184,184,128,163,163,163,135,144,144,144,143,125,125,125,150,108,108,108,159,92,92,92,168, +77,77,77,176,64,64,64,185,52,52,52,194,40,40,40,204,29,29,29,215,19,19,19,227,10,10,10,238,3,3,3,249, +0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,237,24,24,24,201,44,44,44,164,74,74,74,124,129,129,129,81, +233,233,233,46,255,255,255,36,255,255,255,30,255,255,255,24,255,255,255,19,255,255,255,13,255,255,255,8,255,255,255,5, +255,255,255,3,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,8, +255,255,255,10,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,25,255,255,255,29,255,255,255,34,255,255,255,40, +255,255,255,46,255,255,255,52,255,255,255,59,210,210,210,75,130,130,130,109,81,81,81,144,51,51,51,178,28,28,28,209, +10,10,10,238,1,1,1,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,254, +6,6,6,249,13,13,13,240,24,24,24,230,36,36,36,219,49,49,49,209,63,63,63,200,78,78,78,191,94,94,94,182, +111,111,111,174,128,128,128,166,147,147,147,158,167,167,167,151,188,188,188,145,209,209,209,138,232,232,232,132,245,245,245,129, +250,250,250,127,254,254,254,126,255,255,255,126,255,255,255,125,255,255,255,125,255,255,255,125,255,255,255,124,255,255,255,124, +255,255,255,123,255,255,255,123,255,255,255,123,255,255,255,123,255,255,255,123,255,255,255,122,255,255,255,122,255,255,255,123, +255,255,255,123,255,255,255,123,255,255,255,123,255,255,255,124,255,255,255,124,255,255,255,124,255,255,255,125,255,255,255,125, +255,255,255,125,255,255,255,126,255,255,255,126,255,255,255,127,255,255,255,127,255,255,255,127,255,255,255,127,255,255,255,127, +255,255,255,126,255,255,255,126,255,255,255,125,255,255,255,125,255,255,255,125,255,255,255,124,255,255,255,124,255,255,255,123, +255,255,255,123,255,255,255,122,255,255,255,122,255,255,255,121,255,255,255,120,255,255,255,120,255,255,255,119,255,255,255,118, +255,255,255,118,255,255,255,117,255,255,255,117,255,255,255,116,255,255,255,115,255,255,255,114,255,255,255,114,255,255,255,113, +255,255,255,112,255,255,255,112,255,255,255,111,255,255,255,110,255,255,255,109,255,255,255,108,255,255,255,107,255,255,255,106, +255,255,255,105,255,255,255,103,255,255,255,102,255,255,255,101,255,255,255,100,255,255,255,98,255,255,255,97,255,255,255,96, +255,255,255,94,255,255,255,93,255,255,255,91,255,255,255,90,255,255,255,89,255,255,255,87,255,255,255,86,255,255,255,85, +255,255,255,84,255,255,255,83,255,255,255,82,255,255,255,80,255,255,255,79,255,255,255,78,255,255,255,76,255,255,255,75, +255,255,255,74,255,255,255,73,255,255,255,72,255,255,255,71,255,255,255,71,255,255,255,70,255,255,255,69,255,255,255,69, +255,255,255,68,255,255,255,68,255,255,255,68,255,255,255,68,255,255,255,68,255,255,255,68,255,255,255,68,255,255,255,68, +255,255,255,68,255,255,255,69,255,255,255,70,255,255,255,70,255,255,255,71,255,255,255,72,255,255,255,73,255,255,255,74, +255,255,255,75,255,255,255,76,255,255,255,76,255,255,255,77,255,255,255,77,255,255,255,77,253,253,253,77,242,242,242,79, +206,206,206,86,158,158,158,99,119,119,119,114,89,89,89,128,66,66,66,143,47,47,47,159,32,32,32,176,20,20,20,193, +15,15,15,202,19,19,19,183,27,27,27,153,41,41,41,114,73,73,73,66,181,181,181,25,255,255,255,12,255,255,255,7, +255,255,255,4,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13, +255,255,255,17,255,255,255,21,255,255,255,27,255,255,255,31,255,255,255,36,237,237,237,45,145,145,145,73,82,82,82,115, +48,48,48,154,27,27,27,192,11,11,11,227,1,1,1,251,0,0,0,254,4,4,4,246,13,13,13,231,24,24,24,214, +37,37,37,199,53,53,53,184,70,70,70,170,91,91,91,157,115,115,115,144,144,144,144,131,178,178,178,119,218,218,218,107, +242,242,242,101,254,254,254,97,255,255,255,96,255,255,255,95,255,255,255,94,255,255,255,93,255,255,255,92,255,255,255,91, +255,255,255,90,255,255,255,90,255,255,255,89,255,255,255,88,255,255,255,88,255,255,255,88,255,255,255,88,255,255,255,88, +255,255,255,88,255,255,255,88,255,255,255,88,255,255,255,88,255,255,255,89,255,255,255,89,255,255,255,89,255,255,255,89, +255,255,255,89,255,255,255,90,255,255,255,91,255,255,255,91,255,255,255,92,255,255,255,92,255,255,255,93,255,255,255,94, +255,255,255,94,255,255,255,95,255,255,255,96,255,255,255,96,255,255,255,97,255,255,255,98,255,255,255,98,255,255,255,99, +255,255,255,100,255,255,255,100,255,255,255,101,255,255,255,102,255,255,255,102,255,255,255,102,255,255,255,103,255,255,255,103, +255,255,255,103,255,255,255,103,255,255,255,103,255,255,255,103,255,255,255,103,255,255,255,102,255,255,255,102,255,255,255,102, +255,255,255,102,255,255,255,102,255,255,255,101,255,255,255,101,255,255,255,101,255,255,255,100,255,255,255,100,255,255,255,100, +255,255,255,99,255,255,255,99,255,255,255,98,255,255,255,98,255,255,255,97,255,255,255,97,255,255,255,96,255,255,255,96, +255,255,255,95,255,255,255,94,255,255,255,94,255,255,255,93,255,255,255,92,255,255,255,91,255,255,255,90,255,255,255,89, +255,255,255,88,255,255,255,87,255,255,255,86,255,255,255,85,255,255,255,83,255,255,255,82,255,255,255,81,255,255,255,80, +255,255,255,78,255,255,255,77,255,255,255,75,255,255,255,74,255,255,255,72,255,255,255,71,255,255,255,70,255,255,255,68, +255,255,255,67,255,255,255,65,255,255,255,63,255,255,255,62,255,255,255,60,255,255,255,59,255,255,255,57,255,255,255,56, +255,255,255,54,255,255,255,53,255,255,255,52,255,255,255,50,255,255,255,49,255,255,255,48,255,255,255,47,255,255,255,46, +255,255,255,45,255,255,255,44,255,255,255,43,255,255,255,43,255,255,255,42,255,255,255,41,255,255,255,41,255,255,255,41, +255,255,255,40,255,255,255,40,255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,42, +255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,46,255,255,255,47,255,255,255,48, +255,255,255,48,255,255,255,48,255,255,255,49,255,255,255,48,255,255,255,48,255,255,255,46,255,255,255,45,255,255,255,42, +255,255,255,40,253,253,253,36,213,213,213,38,137,137,137,47,70,70,70,66,43,43,43,77,44,44,44,53,255,255,255,8, +255,255,255,4,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,4,255,255,255,7,255,255,255,10,255,255,255,13,255,255,255,18, +194,194,194,29,84,84,84,67,46,46,46,114,27,27,27,155,19,19,19,184,16,16,16,199,20,20,20,193,33,33,33,172, +50,50,50,152,72,72,72,133,102,102,102,114,145,145,145,96,199,199,199,80,244,244,244,71,255,255,255,70,255,255,255,70, +255,255,255,70,255,255,255,69,255,255,255,69,255,255,255,68,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,64, +255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,59, +255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,60,255,255,255,60,255,255,255,61, +255,255,255,62,255,255,255,63,255,255,255,64,255,255,255,64,255,255,255,66,255,255,255,66,255,255,255,67,255,255,255,68, +255,255,255,69,255,255,255,71,255,255,255,71,255,255,255,72,255,255,255,73,255,255,255,75,255,255,255,76,255,255,255,77, +255,255,255,78,255,255,255,79,255,255,255,80,255,255,255,81,255,255,255,82,255,255,255,82,255,255,255,83,255,255,255,84, +255,255,255,85,255,255,255,85,255,255,255,86,255,255,255,87,255,255,255,87,255,255,255,88,255,255,255,88,255,255,255,89, +255,255,255,89,255,255,255,90,255,255,255,90,255,255,255,90,255,255,255,90,255,255,255,90,255,255,255,90,255,255,255,90, +255,255,255,90,255,255,255,90,255,255,255,89,255,255,255,89,255,255,255,89,255,255,255,89,255,255,255,89,255,255,255,89, +255,255,255,88,255,255,255,88,255,255,255,88,255,255,255,87,255,255,255,87,255,255,255,86,255,255,255,86,255,255,255,85, +255,255,255,85,255,255,255,84,255,255,255,83,255,255,255,83,255,255,255,82,255,255,255,81,255,255,255,80,255,255,255,79, +255,255,255,78,255,255,255,77,255,255,255,76,255,255,255,75,255,255,255,74,255,255,255,73,255,255,255,72,255,255,255,70, +255,255,255,69,255,255,255,68,255,255,255,66,255,255,255,65,255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,59, +255,255,255,57,255,255,255,56,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,50,255,255,255,48,255,255,255,46, +255,255,255,45,255,255,255,43,255,255,255,42,255,255,255,41,255,255,255,39,255,255,255,38,255,255,255,36,255,255,255,35, +255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,28,255,255,255,27, +255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,24, +255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,25, +255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27, +255,255,255,26,255,255,255,24,255,255,255,23,255,255,255,19,255,255,255,17,255,255,255,14,255,255,255,9,255,255,255,6, +255,255,255,4,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,2,243,243,243,3,61,61,61,18,53,53,53,34,53,53,53,47,44,44,44,66,39,39,39,85, +39,39,39,99,60,60,60,84,111,111,111,62,187,187,187,44,254,254,254,38,255,255,255,40,255,255,255,42,255,255,255,44, +255,255,255,45,255,255,255,45,255,255,255,46,255,255,255,45,255,255,255,45,255,255,255,44,255,255,255,44,255,255,255,43, +255,255,255,42,255,255,255,42,255,255,255,41,255,255,255,41,255,255,255,40,255,255,255,39,255,255,255,39,255,255,255,39, +255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,39,255,255,255,40, +255,255,255,41,255,255,255,41,255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,47,255,255,255,48, +255,255,255,49,255,255,255,50,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,55,255,255,255,57,255,255,255,58, +255,255,255,59,255,255,255,60,255,255,255,62,255,255,255,63,255,255,255,64,255,255,255,65,255,255,255,66,255,255,255,68, +255,255,255,69,255,255,255,70,255,255,255,71,255,255,255,72,255,255,255,73,255,255,255,74,255,255,255,75,255,255,255,76, +255,255,255,76,255,255,255,77,255,255,255,78,255,255,255,78,255,255,255,79,255,255,255,79,255,255,255,80,255,255,255,80, +255,255,255,81,255,255,255,81,255,255,255,81,255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82, +255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82,255,255,255,82, +255,255,255,81,255,255,255,81,255,255,255,81,255,255,255,81,255,255,255,80,255,255,255,80,255,255,255,79,255,255,255,79, +255,255,255,78,255,255,255,78,255,255,255,77,255,255,255,77,255,255,255,76,255,255,255,75,255,255,255,74,255,255,255,74, +255,255,255,73,255,255,255,72,255,255,255,71,255,255,255,70,255,255,255,69,255,255,255,68,255,255,255,67,255,255,255,66, +255,255,255,64,255,255,255,63,255,255,255,62,255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,56,255,255,255,55, +255,255,255,53,255,255,255,51,255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,45,255,255,255,44,255,255,255,42, +255,255,255,41,255,255,255,39,255,255,255,38,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,32,255,255,255,31, +255,255,255,30,255,255,255,29,255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22, +255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,16, +255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,2,140,140,140,5,121,121,121,10,255,255,255,7,255,255,255,10,255,255,255,12,255,255,255,15, +255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,25,255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,26, +255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,24, +255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,25, +255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,32, +255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,40,255,255,255,42, +255,255,255,43,255,255,255,44,255,255,255,46,255,255,255,47,255,255,255,49,255,255,255,50,255,255,255,51,255,255,255,53, +255,255,255,54,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,59,255,255,255,61,255,255,255,62,255,255,255,63, +255,255,255,64,255,255,255,65,255,255,255,66,255,255,255,67,255,255,255,68,255,255,255,69,255,255,255,70,255,255,255,70, +255,255,255,71,255,255,255,72,255,255,255,72,255,255,255,73,255,255,255,74,255,255,255,74,255,255,255,75,255,255,255,75, +255,255,255,75,255,255,255,76,255,255,255,76,255,255,255,76,255,255,255,76,255,255,255,77,255,255,255,77,255,255,255,77, +255,255,255,77,255,255,255,77,255,255,255,77,255,255,255,77,255,255,255,77,255,255,255,77,255,255,255,77,255,255,255,76, +255,255,255,76,255,255,255,76,255,255,255,76,255,255,255,75,255,255,255,75,255,255,255,75,255,255,255,74,255,255,255,74, +255,255,255,73,255,255,255,73,255,255,255,72,255,255,255,72,255,255,255,71,255,255,255,70,255,255,255,70,255,255,255,69, +255,255,255,68,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,64,255,255,255,63,255,255,255,62,255,255,255,61, +255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,52,255,255,255,51, +255,255,255,49,255,255,255,48,255,255,255,47,255,255,255,45,255,255,255,44,255,255,255,42,255,255,255,41,255,255,255,39, +255,255,255,38,255,255,255,37,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,30,255,255,255,29, +255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20, +255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14, +255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15, +255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,20, +255,255,255,20,255,255,255,21,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,28, +255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,33,255,255,255,35,255,255,255,36,255,255,255,37,255,255,255,39, +255,255,255,40,255,255,255,41,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,47,255,255,255,48,255,255,255,49, +255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,55,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,59, +255,255,255,60,255,255,255,61,255,255,255,62,255,255,255,62,255,255,255,63,255,255,255,64,255,255,255,65,255,255,255,66, +255,255,255,66,255,255,255,67,255,255,255,68,255,255,255,68,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,70, +255,255,255,70,255,255,255,71,255,255,255,71,255,255,255,71,255,255,255,71,255,255,255,71,255,255,255,71,255,255,255,72, +255,255,255,72,255,255,255,72,255,255,255,72,255,255,255,72,255,255,255,71,255,255,255,71,255,255,255,71,255,255,255,71, +255,255,255,71,255,255,255,71,255,255,255,70,255,255,255,70,255,255,255,70,255,255,255,69,255,255,255,69,255,255,255,69, +255,255,255,68,255,255,255,68,255,255,255,67,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,65,255,255,255,64, +255,255,255,63,255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,57, +255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,47, +255,255,255,46,255,255,255,45,255,255,255,43,255,255,255,42,255,255,255,41,255,255,255,39,255,255,255,38,255,255,255,37, +255,255,255,36,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,27, +255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19, +255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12, +255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18, +255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,27, +255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,36, +255,255,255,37,255,255,255,39,255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,44,255,255,255,45,255,255,255,46, +255,255,255,47,255,255,255,48,255,255,255,50,255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,55, +255,255,255,56,255,255,255,56,255,255,255,57,255,255,255,58,255,255,255,59,255,255,255,59,255,255,255,60,255,255,255,61, +255,255,255,61,255,255,255,62,255,255,255,62,255,255,255,63,255,255,255,63,255,255,255,64,255,255,255,64,255,255,255,65, +255,255,255,65,255,255,255,65,255,255,255,65,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66, +255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66,255,255,255,66, +255,255,255,65,255,255,255,65,255,255,255,65,255,255,255,65,255,255,255,64,255,255,255,64,255,255,255,64,255,255,255,63, +255,255,255,63,255,255,255,62,255,255,255,62,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,59, +255,255,255,58,255,255,255,58,255,255,255,57,255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,53, +255,255,255,52,255,255,255,51,255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,44, +255,255,255,43,255,255,255,41,255,255,255,40,255,255,255,39,255,255,255,38,255,255,255,36,255,255,255,35,255,255,255,34, +255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,26, +255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,18, +255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17, +255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25, +255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,29,255,255,255,31,255,255,255,32,255,255,255,33,255,255,255,34, +255,255,255,35,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,41,255,255,255,42,255,255,255,43, +255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,48,255,255,255,49,255,255,255,50,255,255,255,51, +255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,54,255,255,255,54,255,255,255,55,255,255,255,55,255,255,255,56, +255,255,255,57,255,255,255,57,255,255,255,58,255,255,255,58,255,255,255,58,255,255,255,59,255,255,255,59,255,255,255,59, +255,255,255,60,255,255,255,60,255,255,255,60,255,255,255,60,255,255,255,60,255,255,255,61,255,255,255,61,255,255,255,61, +255,255,255,61,255,255,255,61,255,255,255,61,255,255,255,61,255,255,255,61,255,255,255,60,255,255,255,60,255,255,255,60, +255,255,255,60,255,255,255,60,255,255,255,60,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,58,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,57,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,54, +255,255,255,54,255,255,255,53,255,255,255,52,255,255,255,51,255,255,255,51,255,255,255,50,255,255,255,49,255,255,255,48, +255,255,255,47,255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,44,255,255,255,43,255,255,255,41,255,255,255,40, +255,255,255,39,255,255,255,38,255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32, +255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,24, +255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,17, +255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,12, +255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8, +255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10, +255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16, +255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23, +255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,30,255,255,255,32, +255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,36,255,255,255,36,255,255,255,38,255,255,255,39,255,255,255,39, +255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47, +255,255,255,47,255,255,255,48,255,255,255,49,255,255,255,49,255,255,255,50,255,255,255,50,255,255,255,51,255,255,255,51, +255,255,255,52,255,255,255,52,255,255,255,53,255,255,255,53,255,255,255,54,255,255,255,54,255,255,255,54,255,255,255,54, +255,255,255,55,255,255,255,55,255,255,255,55,255,255,255,55,255,255,255,55,255,255,255,55,255,255,255,56,255,255,255,56, +255,255,255,56,255,255,255,56,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,55,255,255,255,55,255,255,255,55, +255,255,255,55,255,255,255,55,255,255,255,55,255,255,255,54,255,255,255,54,255,255,255,54,255,255,255,53,255,255,255,53, +255,255,255,53,255,255,255,52,255,255,255,52,255,255,255,52,255,255,255,51,255,255,255,51,255,255,255,50,255,255,255,50, +255,255,255,49,255,255,255,48,255,255,255,48,255,255,255,47,255,255,255,46,255,255,255,46,255,255,255,45,255,255,255,44, +255,255,255,43,255,255,255,43,255,255,255,42,255,255,255,41,255,255,255,40,255,255,255,39,255,255,255,38,255,255,255,37, +255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,29, +255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22, +255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16, +255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9, +255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15, +255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22, +255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,29, +255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,35,255,255,255,36, +255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,40,255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,43, +255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,45,255,255,255,46,255,255,255,46,255,255,255,47,255,255,255,47, +255,255,255,48,255,255,255,48,255,255,255,48,255,255,255,49,255,255,255,49,255,255,255,49,255,255,255,49,255,255,255,50, +255,255,255,50,255,255,255,50,255,255,255,50,255,255,255,50,255,255,255,50,255,255,255,51,255,255,255,51,255,255,255,51, +255,255,255,51,255,255,255,51,255,255,255,51,255,255,255,51,255,255,255,50,255,255,255,50,255,255,255,50,255,255,255,50, +255,255,255,50,255,255,255,50,255,255,255,50,255,255,255,49,255,255,255,49,255,255,255,49,255,255,255,49,255,255,255,48, +255,255,255,48,255,255,255,48,255,255,255,47,255,255,255,47,255,255,255,47,255,255,255,46,255,255,255,46,255,255,255,45, +255,255,255,45,255,255,255,44,255,255,255,44,255,255,255,43,255,255,255,42,255,255,255,42,255,255,255,41,255,255,255,40, +255,255,255,40,255,255,255,39,255,255,255,38,255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,35,255,255,255,34, +255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,29,255,255,255,28,255,255,255,27, +255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20, +255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,15, +255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10, +255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,9, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14, +255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20, +255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27, +255,255,255,28,255,255,255,29,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,33,255,255,255,33, +255,255,255,34,255,255,255,35,255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,39,255,255,255,39, +255,255,255,40,255,255,255,40,255,255,255,41,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,43,255,255,255,43, +255,255,255,44,255,255,255,44,255,255,255,44,255,255,255,45,255,255,255,45,255,255,255,45,255,255,255,45,255,255,255,46, +255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,47, +255,255,255,47,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46,255,255,255,46, +255,255,255,46,255,255,255,46,255,255,255,45,255,255,255,45,255,255,255,45,255,255,255,45,255,255,255,45,255,255,255,44, +255,255,255,44,255,255,255,44,255,255,255,43,255,255,255,43,255,255,255,43,255,255,255,42,255,255,255,42,255,255,255,41, +255,255,255,41,255,255,255,40,255,255,255,40,255,255,255,39,255,255,255,39,255,255,255,38,255,255,255,37,255,255,255,37, +255,255,255,36,255,255,255,35,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,32,255,255,255,31, +255,255,255,30,255,255,255,29,255,255,255,28,255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,25, +255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,19, +255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14, +255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6, +255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13, +255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,25, +255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,31, +255,255,255,31,255,255,255,32,255,255,255,32,255,255,255,33,255,255,255,34,255,255,255,34,255,255,255,35,255,255,255,36, +255,255,255,36,255,255,255,37,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,39, +255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,41, +255,255,255,41,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42, +255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,42,255,255,255,41, +255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,41,255,255,255,40,255,255,255,40,255,255,255,40, +255,255,255,40,255,255,255,39,255,255,255,39,255,255,255,39,255,255,255,39,255,255,255,38,255,255,255,38,255,255,255,37, +255,255,255,37,255,255,255,36,255,255,255,36,255,255,255,35,255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,33, +255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,31,255,255,255,30,255,255,255,29,255,255,255,29,255,255,255,28, +255,255,255,27,255,255,255,27,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,22, +255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,17, +255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13, +255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12, +255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17, +255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,23, +255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,28, +255,255,255,28,255,255,255,29,255,255,255,30,255,255,255,30,255,255,255,31,255,255,255,31,255,255,255,32,255,255,255,32, +255,255,255,33,255,255,255,33,255,255,255,33,255,255,255,34,255,255,255,34,255,255,255,35,255,255,255,35,255,255,255,35, +255,255,255,36,255,255,255,36,255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,37,255,255,255,37,255,255,255,37, +255,255,255,37,255,255,255,37,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,38, +255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,38,255,255,255,37,255,255,255,37,255,255,255,37, +255,255,255,37,255,255,255,37,255,255,255,37,255,255,255,37,255,255,255,37,255,255,255,36,255,255,255,36,255,255,255,36, +255,255,255,36,255,255,255,35,255,255,255,35,255,255,255,35,255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,33, +255,255,255,33,255,255,255,33,255,255,255,32,255,255,255,32,255,255,255,31,255,255,255,31,255,255,255,30,255,255,255,30, +255,255,255,29,255,255,255,29,255,255,255,28,255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,25, +255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,21,255,255,255,20, +255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,15, +255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11, +255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15, +255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,21, +255,255,255,21,255,255,255,22,255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,25, +255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,28,255,255,255,28,255,255,255,29,255,255,255,29, +255,255,255,29,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,32, +255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,33,255,255,255,33,255,255,255,33,255,255,255,33,255,255,255,33, +255,255,255,33,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34, +255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,34,255,255,255,33,255,255,255,33, +255,255,255,33,255,255,255,33,255,255,255,33,255,255,255,33,255,255,255,33,255,255,255,32,255,255,255,32,255,255,255,32, +255,255,255,32,255,255,255,32,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,30,255,255,255,30, +255,255,255,30,255,255,255,29,255,255,255,29,255,255,255,28,255,255,255,28,255,255,255,28,255,255,255,27,255,255,255,27, +255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,23, +255,255,255,22,255,255,255,21,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,18, +255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14, +255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10, +255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14, +255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,22,255,255,255,23, +255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,26,255,255,255,26, +255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,28,255,255,255,28,255,255,255,28,255,255,255,28, +255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,30,255,255,255,30, +255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30, +255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30,255,255,255,30, +255,255,255,30,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29,255,255,255,29, +255,255,255,28,255,255,255,28,255,255,255,28,255,255,255,28,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27, +255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,24, +255,255,255,23,255,255,255,23,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,21,255,255,255,21,255,255,255,20, +255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16, +255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,13, +255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,13, +255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17, +255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,20, +255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,23,255,255,255,23,255,255,255,23, +255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,26, +255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,27,255,255,255,27,255,255,255,27, +255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27, +255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27,255,255,255,27, +255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26, +255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,24, +255,255,255,24,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,21, +255,255,255,21,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,18, +255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,15, +255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11, +255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,15, +255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,18, +255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,21, +255,255,255,21,255,255,255,21,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,23, +255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,24, +255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24, +255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24,255,255,255,24, +255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23,255,255,255,23, +255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,22,255,255,255,21,255,255,255,21, +255,255,255,21,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,19, +255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18, +255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,20, +255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21, +255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21, +255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21,255,255,255,21, +255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20, +255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,18, +255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17, +255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17, +255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18, +255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18, +255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18, +255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,17,255,255,255,17, +255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15, +255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16,255,255,255,16, +255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15, +255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13, +255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14, +255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13, +255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9, +255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; diff --git a/WickedEngine/wiGUI.cpp b/WickedEngine/wiGUI.cpp index cc8f5c2138..62255f3593 100644 --- a/WickedEngine/wiGUI.cpp +++ b/WickedEngine/wiGUI.cpp @@ -9,6 +9,7 @@ #include "wiImage.h" #include "wiTextureHelper.h" #include "wiBacklog.h" +#include "wiHelper.h" #include @@ -74,7 +75,7 @@ namespace wi::gui focus = false; for (size_t i = 0; i < widgets.size(); ++i) { - Widget* widget = widgets[i]; // re index in loop, because widgets can be resized while updating! + Widget* widget = widgets[i]; // re index in loop, because widgets can be realloced while updating! widget->force_disable = focus; widget->Update(canvas, dt); widget->force_disable = false; @@ -346,13 +347,13 @@ namespace wi::gui tooltipSprite.params.siz.x = textWidth; tooltipSprite.params.siz.y = textHeight; - if (shadow > 0) + if (tooltip_shadow > 0) { wi::image::Params fx( - tooltipSprite.params.pos.x - shadow, - tooltipSprite.params.pos.y - shadow, - tooltipSprite.params.siz.x + shadow * 2, - tooltipSprite.params.siz.y + shadow * 2, + tooltipSprite.params.pos.x - tooltip_shadow, + tooltipSprite.params.pos.y - tooltip_shadow, + tooltipSprite.params.siz.x + tooltip_shadow * 2, + tooltipSprite.params.siz.y + tooltip_shadow * 2, tooltip_shadow_color ); wi::image::Draw(wi::texturehelper::getWhite(), fx, cmd); @@ -1639,7 +1640,7 @@ namespace wi::gui - + std::wstring check_text; void CheckBox::Create(const std::string& name) { SetName(name); @@ -1750,14 +1751,31 @@ namespace wi::gui // check if (GetCheck()) { - wi::image::Params params( - translation.x + scale.x * 0.25f, - translation.y + scale.y * 0.25f, - scale.x * 0.5f, - scale.y * 0.5f - ); - params.color = font.params.color; - wi::image::Draw(wi::texturehelper::getWhite(), params, cmd); + if (check_text.empty()) + { + // simple square: + wi::image::Params params( + translation.x + scale.x * 0.25f, + translation.y + scale.y * 0.25f, + scale.x * 0.5f, + scale.y * 0.5f + ); + params.color = font.params.color; + wi::image::Draw(wi::texturehelper::getWhite(), params, cmd); + } + else + { + // render text symbol: + wi::font::Params params; + params.posX = translation.x + scale.x * 0.5f; + params.posY = translation.y + scale.y * 0.5f; + params.h_align = wi::font::WIFALIGN_CENTER; + params.v_align = wi::font::WIFALIGN_CENTER; + params.size = int(scale.y); + params.scaling = 0.75f; + params.color = font.params.color; + wi::font::Draw(check_text, params, cmd); + } } } @@ -1774,6 +1792,12 @@ namespace wi::gui return checked; } + void CheckBox::SetCheckText(const std::string& text) + { + wi::helper::StringConvert(text, check_text); + } + + @@ -2534,138 +2558,7 @@ namespace wi::gui Widget::Update(canvas, dt); - if (moveDragger.parent != nullptr) - { - moveDragger.Detach(); - float rem = 0; - if (closeButton.parent != nullptr) - { - rem++; - } - if (collapseButton.parent != nullptr) - { - rem++; - } - if (resizeDragger_UpperLeft.parent != nullptr) - { - rem++; - } - if (resizeDragger_UpperRight.parent != nullptr) - { - rem++; - } - moveDragger.SetSize(XMFLOAT2(scale.x - control_size * rem, control_size)); - float offset = 0; - if (resizeDragger_UpperLeft.parent != nullptr) - { - offset++; - } - moveDragger.SetPos(XMFLOAT2(translation.x + control_size * offset, translation.y)); - moveDragger.AttachTo(this); - } - if (closeButton.parent != nullptr) - { - closeButton.Detach(); - closeButton.SetSize(XMFLOAT2(control_size, control_size)); - float offset = 1; - if (resizeDragger_UpperRight.parent != nullptr) - { - offset++; - } - closeButton.SetPos(XMFLOAT2(translation.x + scale.x - control_size * offset, translation.y)); - closeButton.AttachTo(this); - } - if (collapseButton.parent != nullptr) - { - collapseButton.Detach(); - collapseButton.SetSize(XMFLOAT2(control_size, control_size)); - float offset = 1; - if (closeButton.parent != nullptr) - { - offset++; - } - if (resizeDragger_UpperRight.parent != nullptr) - { - offset++; - } - collapseButton.SetPos(XMFLOAT2(translation.x + scale.x - control_size * offset, translation.y)); - collapseButton.AttachTo(this); - } - if (resizeDragger_UpperLeft.parent != nullptr) - { - resizeDragger_UpperLeft.Detach(); - resizeDragger_UpperLeft.SetSize(XMFLOAT2(control_size, control_size)); - resizeDragger_UpperLeft.SetPos(XMFLOAT2(translation.x, translation.y)); - resizeDragger_UpperLeft.AttachTo(this); - } - if (resizeDragger_UpperRight.parent != nullptr) - { - resizeDragger_UpperRight.Detach(); - resizeDragger_UpperRight.SetSize(XMFLOAT2(control_size, control_size)); - resizeDragger_UpperRight.SetPos(XMFLOAT2(translation.x + scale.x - control_size, translation.y)); - resizeDragger_UpperRight.AttachTo(this); - } - if (resizeDragger_BottomLeft.parent != nullptr) - { - resizeDragger_BottomLeft.Detach(); - resizeDragger_BottomLeft.SetSize(XMFLOAT2(control_size, control_size)); - resizeDragger_BottomLeft.SetPos(XMFLOAT2(translation.x, translation.y + scale.y - control_size)); - resizeDragger_BottomLeft.AttachTo(this); - } - if (resizeDragger_BottomRight.parent != nullptr) - { - resizeDragger_BottomRight.Detach(); - resizeDragger_BottomRight.SetSize(XMFLOAT2(control_size, control_size)); - resizeDragger_BottomRight.SetPos(XMFLOAT2(translation.x + scale.x - control_size, translation.y + scale.y - control_size)); - resizeDragger_BottomRight.AttachTo(this); - } - if (label.parent != nullptr) - { - label.font.params = font.params; - label.Detach(); - XMFLOAT2 label_size = XMFLOAT2(scale.x, control_size); - XMFLOAT2 label_pos = XMFLOAT2(translation.x, translation.y); - if (resizeDragger_UpperLeft.parent != nullptr) - { - label_size.x -= control_size; - label_pos.x += control_size; - } - if (closeButton.parent != nullptr) - { - label_size.x -= control_size; - } - if (collapseButton.parent != nullptr) - { - label_size.x -= control_size; - } - label.SetSize(label_size); - label.SetPos(label_pos); - label.AttachTo(this); - } - if (scrollbar_horizontal.parent != nullptr) - { - scrollbar_horizontal.Detach(); - float offset = 0; - if (resizeDragger_BottomLeft.parent != nullptr) - { - offset++; - } - scrollbar_horizontal.SetSize(XMFLOAT2(scale.x - control_size * (offset + 1), control_size)); - scrollbar_horizontal.SetPos(XMFLOAT2(translation.x + control_size * offset, translation.y + scale.y - control_size)); - scrollbar_horizontal.AttachTo(this); - } - if (scrollbar_vertical.parent != nullptr) - { - scrollbar_vertical.Detach(); - float offset = 1; - if (resizeDragger_BottomRight.parent != nullptr) - { - offset++; - } - scrollbar_vertical.SetSize(XMFLOAT2(control_size, scale.y - (control_size + 1) * offset)); - scrollbar_vertical.SetPos(XMFLOAT2(translation.x + scale.x - control_size, translation.y + 1 + control_size)); - scrollbar_vertical.AttachTo(this); - } + ResizeLayout(); Hitbox2D pointerHitbox = GetPointerHitbox(); @@ -2687,11 +2580,12 @@ namespace wi::gui } scrollbar_horizontal.SetListLength(scroll_length_horizontal); scrollbar_vertical.SetListLength(scroll_length_vertical); + scrollbar_horizontal.Update(canvas, 0); + scrollbar_vertical.Update(canvas, 0); scrollable_area.Detach(); scrollable_area.ClearTransform(); scrollable_area.Translate(translation); scrollable_area.Translate(XMFLOAT3(scrollbar_horizontal.GetOffset(), control_size + 1 + scrollbar_vertical.GetOffset(), 0)); - scrollable_area.Update(canvas, dt); scrollable_area.AttachTo(this); scrollable_area.scissorRect = scissorRect; scrollable_area.scissorRect.left += 1; @@ -2713,7 +2607,7 @@ namespace wi::gui bool focus = false; for (size_t i = 0; i < widgets.size(); ++i) { - Widget* widget = widgets[i]; // re index in loop, because widgets can be resized while updating! + Widget* widget = widgets[i]; // re index in loop, because widgets can be realloced while updating! widget->force_disable = force_disable || focus; widget->Update(canvas, dt); widget->force_disable = false; @@ -2831,7 +2725,7 @@ namespace wi::gui // base: if (!IsCollapsed()) { - sprites[state].Draw(cmd); + sprites[IDLE].Draw(cmd); } for (size_t i = 0; i < widgets.size(); ++i) @@ -3027,6 +2921,147 @@ namespace wi::gui widget->SetTheme(theme, id); } } + void Window::ResizeLayout() + { + Widget::ResizeLayout(); + for (auto& widget : widgets) + { + widget->ResizeLayout(); + } + + if (moveDragger.parent != nullptr) + { + moveDragger.Detach(); + float rem = 0; + if (closeButton.parent != nullptr) + { + rem++; + } + if (collapseButton.parent != nullptr) + { + rem++; + } + if (resizeDragger_UpperLeft.parent != nullptr) + { + rem++; + } + if (resizeDragger_UpperRight.parent != nullptr) + { + rem++; + } + moveDragger.SetSize(XMFLOAT2(scale.x - control_size * rem, control_size)); + float offset = 0; + if (resizeDragger_UpperLeft.parent != nullptr) + { + offset++; + } + moveDragger.SetPos(XMFLOAT2(translation.x + control_size * offset, translation.y)); + moveDragger.AttachTo(this); + } + if (closeButton.parent != nullptr) + { + closeButton.Detach(); + closeButton.SetSize(XMFLOAT2(control_size, control_size)); + float offset = 1; + if (resizeDragger_UpperRight.parent != nullptr) + { + offset++; + } + closeButton.SetPos(XMFLOAT2(translation.x + scale.x - control_size * offset, translation.y)); + closeButton.AttachTo(this); + } + if (collapseButton.parent != nullptr) + { + collapseButton.Detach(); + collapseButton.SetSize(XMFLOAT2(control_size, control_size)); + float offset = 1; + if (closeButton.parent != nullptr) + { + offset++; + } + if (resizeDragger_UpperRight.parent != nullptr) + { + offset++; + } + collapseButton.SetPos(XMFLOAT2(translation.x + scale.x - control_size * offset, translation.y)); + collapseButton.AttachTo(this); + } + if (resizeDragger_UpperLeft.parent != nullptr) + { + resizeDragger_UpperLeft.Detach(); + resizeDragger_UpperLeft.SetSize(XMFLOAT2(control_size, control_size)); + resizeDragger_UpperLeft.SetPos(XMFLOAT2(translation.x, translation.y)); + resizeDragger_UpperLeft.AttachTo(this); + } + if (resizeDragger_UpperRight.parent != nullptr) + { + resizeDragger_UpperRight.Detach(); + resizeDragger_UpperRight.SetSize(XMFLOAT2(control_size, control_size)); + resizeDragger_UpperRight.SetPos(XMFLOAT2(translation.x + scale.x - control_size, translation.y)); + resizeDragger_UpperRight.AttachTo(this); + } + if (resizeDragger_BottomLeft.parent != nullptr) + { + resizeDragger_BottomLeft.Detach(); + resizeDragger_BottomLeft.SetSize(XMFLOAT2(control_size, control_size)); + resizeDragger_BottomLeft.SetPos(XMFLOAT2(translation.x, translation.y + scale.y - control_size)); + resizeDragger_BottomLeft.AttachTo(this); + } + if (resizeDragger_BottomRight.parent != nullptr) + { + resizeDragger_BottomRight.Detach(); + resizeDragger_BottomRight.SetSize(XMFLOAT2(control_size, control_size)); + resizeDragger_BottomRight.SetPos(XMFLOAT2(translation.x + scale.x - control_size, translation.y + scale.y - control_size)); + resizeDragger_BottomRight.AttachTo(this); + } + if (label.parent != nullptr) + { + label.font.params = font.params; + label.Detach(); + XMFLOAT2 label_size = XMFLOAT2(scale.x, control_size); + XMFLOAT2 label_pos = XMFLOAT2(translation.x, translation.y); + if (resizeDragger_UpperLeft.parent != nullptr) + { + label_size.x -= control_size; + label_pos.x += control_size; + } + if (closeButton.parent != nullptr) + { + label_size.x -= control_size; + } + if (collapseButton.parent != nullptr) + { + label_size.x -= control_size; + } + label.SetSize(label_size); + label.SetPos(label_pos); + label.AttachTo(this); + } + if (scrollbar_horizontal.parent != nullptr) + { + scrollbar_horizontal.Detach(); + float offset = 0; + if (resizeDragger_BottomLeft.parent != nullptr) + { + offset++; + } + scrollbar_horizontal.SetSize(XMFLOAT2(GetWidgetAreaSize().x - control_size * (offset + 1), control_size)); + scrollbar_horizontal.SetPos(XMFLOAT2(translation.x + control_size * offset, translation.y + scale.y - control_size)); + scrollbar_horizontal.AttachTo(this); + } + if (scrollbar_vertical.parent != nullptr) + { + scrollbar_vertical.Detach(); + float offset = 1; + if (resizeDragger_BottomRight.parent != nullptr) + { + offset++; + } + scrollbar_vertical.SetSize(XMFLOAT2(control_size, GetWidgetAreaSize().y - (control_size + 1) * offset)); + scrollbar_vertical.SetPos(XMFLOAT2(translation.x + scale.x - control_size, translation.y + 1 + control_size)); + scrollbar_vertical.AttachTo(this); + } + } diff --git a/WickedEngine/wiGUI.h b/WickedEngine/wiGUI.h index 4b1c48f57f..900d9d8b0b 100644 --- a/WickedEngine/wiGUI.h +++ b/WickedEngine/wiGUI.h @@ -211,6 +211,7 @@ namespace wi::gui float shadow = 1; // shadow radius wi::Color shadow_color = wi::Color::Shadow(); WIDGETSTATE state = IDLE; + float tooltip_shadow = 1; // shadow radius wi::Color tooltip_shadow_color = wi::Color::Shadow(); mutable wi::Sprite tooltipSprite; mutable wi::SpriteFont tooltipFont; @@ -242,6 +243,7 @@ namespace wi::gui float GetShadowRadius() const { return shadow; } void SetShadowRadius(float value) { shadow = value; } + virtual void ResizeLayout() {}; virtual void Update(const wi::Canvas& canvas, float dt); virtual void Render(const wi::Canvas& canvas, wi::graphics::CommandList cmd) const {} virtual void RenderTooltip(const wi::Canvas& canvas, wi::graphics::CommandList cmd) const; @@ -449,6 +451,8 @@ namespace wi::gui void Render(const wi::Canvas& canvas, wi::graphics::CommandList cmd) const override; void OnClick(std::function func); + + static void SetCheckText(const std::string& text); }; // Drop-down list @@ -553,6 +557,7 @@ namespace wi::gui void RemoveWidget(Widget* widget); void RemoveWidgets(); + void ResizeLayout() override; void Update(const wi::Canvas& canvas, float dt) override; void Render(const wi::Canvas& canvas, wi::graphics::CommandList cmd) const override; void RenderTooltip(const wi::Canvas& canvas, wi::graphics::CommandList cmd) const override; diff --git a/WickedEngine/wiScene.cpp b/WickedEngine/wiScene.cpp index 18fdb5958d..3d8340f977 100644 --- a/WickedEngine/wiScene.cpp +++ b/WickedEngine/wiScene.cpp @@ -3731,7 +3731,7 @@ namespace wi::scene object.SetRequestPlanarReflection(false); object.fadeDistance = object.draw_distance; - if (object.meshID != INVALID_ENTITY) + if (object.meshID != INVALID_ENTITY && meshes.Contains(object.meshID) && transforms.Contains(entity)) { // These will only be valid for a single frame: object.mesh_index = (uint32_t)meshes.GetIndex(object.meshID); diff --git a/WickedEngine/wiTextureHelper.cpp b/WickedEngine/wiTextureHelper.cpp index 6455097630..c24dcd8387 100644 --- a/WickedEngine/wiTextureHelper.cpp +++ b/WickedEngine/wiTextureHelper.cpp @@ -5,6 +5,7 @@ #include "wiSpinLock.h" #include "wiTimer.h" #include "wiUnorderedMap.h" +#include "logo.h" using namespace wi::graphics; @@ -16,6 +17,7 @@ namespace wi::texturehelper enum HELPERTEXTURES { + HELPERTEXTURE_LOGO, HELPERTEXTURE_RANDOM64X64, HELPERTEXTURE_COLORGRADEDEFAULT, HELPERTEXTURE_NORMALMAPDEFAULT, @@ -34,6 +36,12 @@ namespace wi::texturehelper GraphicsDevice* device = wi::graphics::GetDevice(); + // Logo + { + CreateTexture(helperTextures[HELPERTEXTURE_LOGO], wicked_engine_logo, 256, 256); + device->SetName(&helperTextures[HELPERTEXTURE_LOGO], "HELPERTEXTURE_LOGO"); + } + // Random64x64 { uint8_t data[64 * 64 * 4]; @@ -155,51 +163,46 @@ namespace wi::texturehelper wi::backlog::post("wi::texturehelper Initialized (" + std::to_string((int)std::round(timer.elapsed())) + " ms)"); } + const Texture* getLogo() + { + return &helperTextures[HELPERTEXTURE_LOGO]; + } const Texture* getRandom64x64() { return &helperTextures[HELPERTEXTURE_RANDOM64X64]; } - const Texture* getColorGradeDefault() { return &helperTextures[HELPERTEXTURE_COLORGRADEDEFAULT]; } - const Texture* getNormalMapDefault() { return getColor(wi::Color(127, 127, 255, 255)); } - const Texture* getBlackCubeMap() { return &helperTextures[HELPERTEXTURE_BLACKCUBEMAP]; } - const Texture* getUINT4() { return &helperTextures[HELPERTEXTURE_UINT4]; } - const Texture* getBlueNoise() { return &helperTextures[HELPERTEXTURE_BLUENOISE]; } - const Texture* getWhite() { return getColor(wi::Color(255, 255, 255, 255)); } - const Texture* getBlack() { return getColor(wi::Color(0, 0, 0, 255)); } - const Texture* getTransparent() { return getColor(wi::Color(0, 0, 0, 0)); } - const Texture* getColor(wi::Color color) { colorlock.lock(); diff --git a/WickedEngine/wiTextureHelper.h b/WickedEngine/wiTextureHelper.h index f361829a0c..3b99d120c4 100644 --- a/WickedEngine/wiTextureHelper.h +++ b/WickedEngine/wiTextureHelper.h @@ -7,6 +7,7 @@ namespace wi::texturehelper { void Initialize(); + const wi::graphics::Texture* getLogo(); const wi::graphics::Texture* getRandom64x64(); const wi::graphics::Texture* getColorGradeDefault(); const wi::graphics::Texture* getNormalMapDefault(); diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index d44fcadc4d..3bd9961774 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 70; // minor bug fixes, alterations, refactors, updates - const int revision = 17; + const int revision = 18; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision); diff --git a/appveyor.yml b/appveyor.yml index 985c80ff67..444202ba6f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,7 +23,7 @@ after_build: #Editor: - cmd: move %APPVEYOR_BUILD_FOLDER%\BUILD\%PLATFORM%\Release\Editor_Windows\Editor_Windows.exe %APPVEYOR_BUILD_FOLDER%\Editor - cmd: xcopy C:\projects\wickedengine\WickedEngine\*.dll %APPVEYOR_BUILD_FOLDER%\Editor - - cmd: 7z a WickedEngineEditor.zip Content\ features.txt credits.txt third_party_software.txt *.md Editor\*.exe Editor\images\ Editor\terrain\ Editor\sound\ Editor\*.ini Editor\*.ico Editor\*.lua + - cmd: 7z a WickedEngineEditor.zip Content\ features.txt credits.txt third_party_software.txt *.md Editor\*.exe Editor\terrain\ Editor\sound\ Editor\*.ini Editor\*.ico Editor\*.lua #Tests: - cmd: move %APPVEYOR_BUILD_FOLDER%\BUILD\%PLATFORM%\Release\Tests\Tests.exe %APPVEYOR_BUILD_FOLDER%\Tests - cmd: xcopy C:\projects\wickedengine\WickedEngine\*.dll %APPVEYOR_BUILD_FOLDER%\Tests