mirror of
https://github.com/deepseek-ai/DeepSeek-Coder
synced 2025-04-07 14:04:20 +00:00
427 lines
71 KiB
Plaintext
427 lines
71 KiB
Plaintext
{
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0,
|
|
"metadata": {
|
|
"colab": {
|
|
"provenance": [],
|
|
"include_colab_link": true
|
|
},
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"name": "python3"
|
|
}
|
|
},
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "view-in-github",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"<a href=\"https://colab.research.google.com/github/Orrm23/DeepSeek-Coder/blob/main/25_WebAdOptimization_UpperConfidenceBound_ReinforcementLearning.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "r3cas2_1T98w"
|
|
},
|
|
"source": [
|
|
"#25_WebAdOptimization_UpperConfidenceBound_ReinforcementLearning"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "IODliia6U1xO"
|
|
},
|
|
"source": [
|
|
"### Importing the basic libraries"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "y98nA5UdU6Hf"
|
|
},
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import matplotlib.pyplot as plt"
|
|
],
|
|
"execution_count": 1,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "jpjZ43YlU8eI"
|
|
},
|
|
"source": [
|
|
"### Load Dataset from Local Directory"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "pLVaXoYVU_Uy",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 73
|
|
},
|
|
"outputId": "1e35d194-6168-4329-e254-b70e50cca5c6"
|
|
},
|
|
"source": [
|
|
"from google.colab import files\n",
|
|
"uploaded = files.upload()"
|
|
],
|
|
"execution_count": 2,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
],
|
|
"text/html": [
|
|
"\n",
|
|
" <input type=\"file\" id=\"files-f8514289-b311-4fd0-b519-414fe8f20e2a\" name=\"files[]\" multiple disabled\n",
|
|
" style=\"border:none\" />\n",
|
|
" <output id=\"result-f8514289-b311-4fd0-b519-414fe8f20e2a\">\n",
|
|
" Upload widget is only available when the cell has been executed in the\n",
|
|
" current browser session. Please rerun this cell to enable.\n",
|
|
" </output>\n",
|
|
" <script>// Copyright 2017 Google LLC\n",
|
|
"//\n",
|
|
"// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
|
|
"// you may not use this file except in compliance with the License.\n",
|
|
"// You may obtain a copy of the License at\n",
|
|
"//\n",
|
|
"// http://www.apache.org/licenses/LICENSE-2.0\n",
|
|
"//\n",
|
|
"// Unless required by applicable law or agreed to in writing, software\n",
|
|
"// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
|
|
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
|
|
"// See the License for the specific language governing permissions and\n",
|
|
"// limitations under the License.\n",
|
|
"\n",
|
|
"/**\n",
|
|
" * @fileoverview Helpers for google.colab Python module.\n",
|
|
" */\n",
|
|
"(function(scope) {\n",
|
|
"function span(text, styleAttributes = {}) {\n",
|
|
" const element = document.createElement('span');\n",
|
|
" element.textContent = text;\n",
|
|
" for (const key of Object.keys(styleAttributes)) {\n",
|
|
" element.style[key] = styleAttributes[key];\n",
|
|
" }\n",
|
|
" return element;\n",
|
|
"}\n",
|
|
"\n",
|
|
"// Max number of bytes which will be uploaded at a time.\n",
|
|
"const MAX_PAYLOAD_SIZE = 100 * 1024;\n",
|
|
"\n",
|
|
"function _uploadFiles(inputId, outputId) {\n",
|
|
" const steps = uploadFilesStep(inputId, outputId);\n",
|
|
" const outputElement = document.getElementById(outputId);\n",
|
|
" // Cache steps on the outputElement to make it available for the next call\n",
|
|
" // to uploadFilesContinue from Python.\n",
|
|
" outputElement.steps = steps;\n",
|
|
"\n",
|
|
" return _uploadFilesContinue(outputId);\n",
|
|
"}\n",
|
|
"\n",
|
|
"// This is roughly an async generator (not supported in the browser yet),\n",
|
|
"// where there are multiple asynchronous steps and the Python side is going\n",
|
|
"// to poll for completion of each step.\n",
|
|
"// This uses a Promise to block the python side on completion of each step,\n",
|
|
"// then passes the result of the previous step as the input to the next step.\n",
|
|
"function _uploadFilesContinue(outputId) {\n",
|
|
" const outputElement = document.getElementById(outputId);\n",
|
|
" const steps = outputElement.steps;\n",
|
|
"\n",
|
|
" const next = steps.next(outputElement.lastPromiseValue);\n",
|
|
" return Promise.resolve(next.value.promise).then((value) => {\n",
|
|
" // Cache the last promise value to make it available to the next\n",
|
|
" // step of the generator.\n",
|
|
" outputElement.lastPromiseValue = value;\n",
|
|
" return next.value.response;\n",
|
|
" });\n",
|
|
"}\n",
|
|
"\n",
|
|
"/**\n",
|
|
" * Generator function which is called between each async step of the upload\n",
|
|
" * process.\n",
|
|
" * @param {string} inputId Element ID of the input file picker element.\n",
|
|
" * @param {string} outputId Element ID of the output display.\n",
|
|
" * @return {!Iterable<!Object>} Iterable of next steps.\n",
|
|
" */\n",
|
|
"function* uploadFilesStep(inputId, outputId) {\n",
|
|
" const inputElement = document.getElementById(inputId);\n",
|
|
" inputElement.disabled = false;\n",
|
|
"\n",
|
|
" const outputElement = document.getElementById(outputId);\n",
|
|
" outputElement.innerHTML = '';\n",
|
|
"\n",
|
|
" const pickedPromise = new Promise((resolve) => {\n",
|
|
" inputElement.addEventListener('change', (e) => {\n",
|
|
" resolve(e.target.files);\n",
|
|
" });\n",
|
|
" });\n",
|
|
"\n",
|
|
" const cancel = document.createElement('button');\n",
|
|
" inputElement.parentElement.appendChild(cancel);\n",
|
|
" cancel.textContent = 'Cancel upload';\n",
|
|
" const cancelPromise = new Promise((resolve) => {\n",
|
|
" cancel.onclick = () => {\n",
|
|
" resolve(null);\n",
|
|
" };\n",
|
|
" });\n",
|
|
"\n",
|
|
" // Wait for the user to pick the files.\n",
|
|
" const files = yield {\n",
|
|
" promise: Promise.race([pickedPromise, cancelPromise]),\n",
|
|
" response: {\n",
|
|
" action: 'starting',\n",
|
|
" }\n",
|
|
" };\n",
|
|
"\n",
|
|
" cancel.remove();\n",
|
|
"\n",
|
|
" // Disable the input element since further picks are not allowed.\n",
|
|
" inputElement.disabled = true;\n",
|
|
"\n",
|
|
" if (!files) {\n",
|
|
" return {\n",
|
|
" response: {\n",
|
|
" action: 'complete',\n",
|
|
" }\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" for (const file of files) {\n",
|
|
" const li = document.createElement('li');\n",
|
|
" li.append(span(file.name, {fontWeight: 'bold'}));\n",
|
|
" li.append(span(\n",
|
|
" `(${file.type || 'n/a'}) - ${file.size} bytes, ` +\n",
|
|
" `last modified: ${\n",
|
|
" file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() :\n",
|
|
" 'n/a'} - `));\n",
|
|
" const percent = span('0% done');\n",
|
|
" li.appendChild(percent);\n",
|
|
"\n",
|
|
" outputElement.appendChild(li);\n",
|
|
"\n",
|
|
" const fileDataPromise = new Promise((resolve) => {\n",
|
|
" const reader = new FileReader();\n",
|
|
" reader.onload = (e) => {\n",
|
|
" resolve(e.target.result);\n",
|
|
" };\n",
|
|
" reader.readAsArrayBuffer(file);\n",
|
|
" });\n",
|
|
" // Wait for the data to be ready.\n",
|
|
" let fileData = yield {\n",
|
|
" promise: fileDataPromise,\n",
|
|
" response: {\n",
|
|
" action: 'continue',\n",
|
|
" }\n",
|
|
" };\n",
|
|
"\n",
|
|
" // Use a chunked sending to avoid message size limits. See b/62115660.\n",
|
|
" let position = 0;\n",
|
|
" do {\n",
|
|
" const length = Math.min(fileData.byteLength - position, MAX_PAYLOAD_SIZE);\n",
|
|
" const chunk = new Uint8Array(fileData, position, length);\n",
|
|
" position += length;\n",
|
|
"\n",
|
|
" const base64 = btoa(String.fromCharCode.apply(null, chunk));\n",
|
|
" yield {\n",
|
|
" response: {\n",
|
|
" action: 'append',\n",
|
|
" file: file.name,\n",
|
|
" data: base64,\n",
|
|
" },\n",
|
|
" };\n",
|
|
"\n",
|
|
" let percentDone = fileData.byteLength === 0 ?\n",
|
|
" 100 :\n",
|
|
" Math.round((position / fileData.byteLength) * 100);\n",
|
|
" percent.textContent = `${percentDone}% done`;\n",
|
|
"\n",
|
|
" } while (position < fileData.byteLength);\n",
|
|
" }\n",
|
|
"\n",
|
|
" // All done.\n",
|
|
" yield {\n",
|
|
" response: {\n",
|
|
" action: 'complete',\n",
|
|
" }\n",
|
|
" };\n",
|
|
"}\n",
|
|
"\n",
|
|
"scope.google = scope.google || {};\n",
|
|
"scope.google.colab = scope.google.colab || {};\n",
|
|
"scope.google.colab._files = {\n",
|
|
" _uploadFiles,\n",
|
|
" _uploadFilesContinue,\n",
|
|
"};\n",
|
|
"})(self);\n",
|
|
"</script> "
|
|
]
|
|
},
|
|
"metadata": {}
|
|
},
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"Saving dataset.csv to dataset.csv\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "fLBaNX8cVymm"
|
|
},
|
|
"source": [
|
|
"### Importing the dataset"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "lBgHJ6c7gDn2",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"outputId": "7de7c448-9083-4ffd-c6dc-85cde4949680"
|
|
},
|
|
"source": [
|
|
"dataset = pd.read_csv('dataset.csv')\n",
|
|
"print(dataset.shape)\n",
|
|
"print(dataset.head(5))"
|
|
],
|
|
"execution_count": 3,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"(10000, 10)\n",
|
|
" Ad 1 Ad 2 Ad 3 Ad 4 Ad 5 Ad 6 Ad 7 Ad 8 Ad 9 Ad 10\n",
|
|
"0 1 0 0 0 1 0 0 0 1 0\n",
|
|
"1 0 0 0 0 0 0 0 0 1 0\n",
|
|
"2 0 0 0 0 0 0 0 0 0 0\n",
|
|
"3 0 1 0 0 0 0 0 1 0 0\n",
|
|
"4 0 0 0 0 0 0 0 0 0 0\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "n90Tb_w9V-vn"
|
|
},
|
|
"source": [
|
|
"### Upper Confidence Bound"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "pm6q3gWXgG_1",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/"
|
|
},
|
|
"outputId": "315c1f75-e02a-408b-9422-d4b15f1c12f5"
|
|
},
|
|
"source": [
|
|
"import math\n",
|
|
"observations = 10000\n",
|
|
"no_of_Ads = 10\n",
|
|
"ads_selected = []\n",
|
|
"numbers_of_selections_of_each_ads = [0] * no_of_Ads\n",
|
|
"sums_of_rewards_of_each_ads = [0] * no_of_Ads\n",
|
|
"total_reward = 0\n",
|
|
"for n in range(0, observations):\n",
|
|
" ad = 0\n",
|
|
" max_upper_bound = 0\n",
|
|
" for i in range(0, no_of_Ads):\n",
|
|
" if (numbers_of_selections_of_each_ads[i] > 0):\n",
|
|
" average_reward = sums_of_rewards_of_each_ads[i] / numbers_of_selections_of_each_ads[i]\n",
|
|
" delta_i = math.sqrt(3/2 * math.log(n + 1) / numbers_of_selections_of_each_ads[i])\n",
|
|
" upper_bound = average_reward + delta_i\n",
|
|
" else:\n",
|
|
" upper_bound = 1e400\n",
|
|
" if upper_bound > max_upper_bound:\n",
|
|
" max_upper_bound = upper_bound\n",
|
|
" ad = i\n",
|
|
" ads_selected.append(ad)\n",
|
|
" numbers_of_selections_of_each_ads[ad] = numbers_of_selections_of_each_ads[ad] + 1\n",
|
|
" reward = dataset.values[n, ad]\n",
|
|
" sums_of_rewards_of_each_ads[ad] = sums_of_rewards_of_each_ads[ad] + reward\n",
|
|
" total_reward = total_reward + reward\n",
|
|
"\n",
|
|
"print(\"Rewards by Ads = \",sums_of_rewards_of_each_ads)\n",
|
|
"print(\"Total Rewards by UCB = \",total_reward)\n",
|
|
"print(\"Ads selected at each round:\",ads_selected)"
|
|
],
|
|
"execution_count": 4,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"name": "stdout",
|
|
"text": [
|
|
"Rewards by Ads = [120, 47, 7, 38, 1675, 1, 27, 236, 20, 7]\n",
|
|
"Total Rewards by UCB = 2178\n",
|
|
"Ads selected at each round: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 0, 8, 1, 2, 3, 4, 5, 6, 6, 7, 7, 7, 9, 7, 0, 6, 8, 1, 2, 3, 4, 4, 4, 4, 4, 5, 9, 7, 0, 0, 6, 8, 4, 0, 7, 1, 1, 2, 3, 5, 9, 4, 1, 6, 8, 0, 7, 2, 3, 5, 9, 4, 1, 6, 8, 0, 7, 7, 7, 7, 7, 7, 4, 2, 3, 5, 9, 1, 6, 8, 0, 0, 7, 0, 4, 1, 6, 8, 2, 3, 5, 9, 7, 0, 4, 4, 4, 7, 7, 7, 7, 1, 6, 8, 2, 3, 5, 9, 0, 7, 7, 4, 7, 7, 7, 1, 6, 8, 0, 4, 4, 2, 3, 5, 9, 4, 7, 0, 7, 1, 1, 1, 6, 6, 6, 6, 6, 8, 4, 2, 3, 5, 9, 7, 7, 7, 0, 6, 4, 1, 1, 1, 8, 7, 2, 3, 5, 9, 4, 0, 1, 1, 1, 6, 7, 8, 4, 1, 2, 3, 5, 9, 0, 6, 7, 8, 4, 7, 1, 0, 6, 2, 3, 5, 9, 7, 7, 7, 7, 4, 4, 4, 4, 4, 7, 8, 1, 0, 6, 6, 6, 7, 4, 2, 3, 5, 9, 1, 6, 8, 7, 0, 4, 4, 4, 4, 4, 2, 3, 5, 9, 1, 6, 7, 4, 8, 0, 7, 4, 4, 4, 1, 6, 2, 3, 5, 9, 0, 0, 0, 7, 8, 4, 0, 0, 0, 1, 6, 7, 4, 2, 3, 5, 9, 0, 8, 7, 1, 6, 4, 0, 7, 7, 7, 7, 7, 2, 3, 5, 9, 8, 4, 1, 6, 6, 6, 7, 7, 7, 0, 6, 7, 4, 1, 1, 1, 2, 2, 2, 3, 5, 9, 2, 8, 7, 0, 1, 6, 4, 7, 2, 8, 3, 5, 9, 9, 9, 9, 4, 0, 1, 6, 7, 4, 7, 0, 1, 6, 2, 8, 9, 3, 5, 4, 7, 0, 0, 0, 1, 6, 2, 8, 9, 4, 0, 3, 5, 7, 1, 6, 7, 4, 0, 2, 8, 9, 3, 5, 7, 4, 4, 4, 4, 4, 1, 6, 4, 0, 7, 2, 8, 9, 4, 3, 5, 1, 6, 6, 6, 0, 6, 7, 4, 4, 4, 2, 8, 8, 8, 8, 9, 4, 1, 7, 0, 6, 3, 5, 7, 7, 7, 4, 8, 1, 2, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 5, 4, 4, 4, 7, 4, 4, 4, 0, 1, 1, 1, 8, 8, 8, 8, 1, 6, 4, 2, 9, 7, 3, 3, 3, 3, 5, 0, 4, 4, 4, 8, 1, 6, 4, 7, 2, 3, 9, 0, 5, 4, 7, 1, 6, 8, 0, 2, 3, 9, 4, 7, 7, 7, 7, 1, 6, 8, 5, 0, 4, 7, 2, 3, 9, 1, 6, 4, 0, 8, 7, 5, 4, 1, 6, 6, 6, 6, 2, 3, 3, 3, 3, 9, 7, 0, 8, 4, 4, 4, 4, 4, 4, 3, 5, 7, 6, 1, 1, 1, 1, 0, 4, 2, 9, 8, 8, 8, 8, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 1, 6, 4, 4, 4, 0, 5, 4, 4, 4, 8, 7, 7, 7, 2, 9, 4, 7, 0, 1, 6, 3, 4, 5, 5, 5, 5, 7, 8, 2, 5, 9, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 1, 6, 4, 7, 7, 7, 3, 7, 8, 4, 0, 1, 6, 2, 5, 9, 9, 9, 9, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 9, 4, 8, 0, 0, 0, 0, 0, 0, 0, 7, 1, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 2, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 9, 4, 0, 8, 6, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 2, 5, 7, 7, 7, 0, 0, 0, 0, 4, 7, 6, 3, 9, 8, 1, 1, 1, 1, 4, 7, 0, 4, 4, 4, 2, 5, 1, 6, 4, 4, 4, 4, 4, 4, 4, 4, 8, 7, 4, 3, 9, 0, 4, 7, 1, 6, 6, 6, 6, 2, 5, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 0, 3, 3, 3, 3, 9, 7, 4, 6, 3, 1, 7, 4, 0, 2, 5, 8, 9, 4, 4, 4, 4, 4, 4, 6, 7, 1, 3, 4, 4, 4, 0, 4, 8, 7, 2, 5, 6, 6, 6, 6, 4, 9, 1, 0, 4, 3, 7, 6, 4, 8, 0, 2, 5, 7, 1, 9, 9, 9, 9, 4, 6, 3, 3, 3, 3, 9, 4, 4, 4, 7, 4, 0, 0, 0, 0, 3, 8, 1, 2, 5, 4, 7, 7, 7, 6, 7, 0, 9, 4, 3, 8, 1, 7, 7, 7, 7, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 4, 9, 7, 0, 1, 4, 3, 8, 6, 7, 4, 0, 2, 5, 9, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 3, 8, 4, 0, 4, 7, 2, 5, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 6, 4, 4, 4, 4, 4, 4, 0, 3, 3, 3, 3, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 3, 4, 1, 6, 2, 5, 0, 9, 4, 4, 4, 7, 4, 8, 4, 3, 7, 0, 1, 6, 4, 2, 5, 9, 4, 7, 8, 8, 8, 8, 0, 3, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 6, 4, 7, 9, 0, 4, 2, 5, 7, 4, 3, 3, 3, 3, 8, 6, 1, 3, 4, 0, 7, 7, 7, 7, 4, 4, 4, 9, 9, 9, 9, 4, 9, 2, 5, 6, 1, 1, 1, 1, 8, 0, 4, 4, 4, 4, 4, 4, 7, 3, 4, 1, 4, 6, 7, 9, 0, 2, 5, 8, 4, 3, 1, 4, 4, 4, 7, 4, 6, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 4, 8, 7, 2, 5, 1, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 0, 3, 7, 4, 9, 8, 1, 4, 2, 5, 7, 6, 0, 4, 3, 4, 9, 9, 9, 9, 1, 7, 8, 9, 4, 0, 6, 2, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 7, 4, 1, 0, 4, 8, 9, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 5, 4, 3, 0, 1, 4, 7, 8, 9, 6, 4, 4, 4, 4, 0, 4, 3, 7, 2, 5, 1, 4, 6, 6, 6, 6, 4, 8, 9, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 6, 4, 4, 4, 3, 4, 7, 7, 7, 7, 7, 7, 7, 0, 1, 4, 2, 5, 7, 4, 8, 9, 6, 0, 4, 3, 7, 1, 4, 4, 2, 5, 6, 6, 6, 6, 6, 6, 6, 6, 0, 7, 8, 9, 4, 3, 1, 4, 6, 7, 7, 7, 7, 0, 4, 4, 4, 4, 4, 4, 4, 7, 8, 9, 2, 5, 4, 3, 1, 6, 4, 0, 7, 4, 4, 8, 8, 8, 8, 8, 9, 3, 0, 6, 6, 6, 6, 7, 2, 5, 1, 4, 6, 4, 7, 4, 0, 8, 8, 8, 8, 8, 3, 9, 4, 4, 4, 4, 4, 4, 1, 4, 6, 2, 5, 7, 4, 0, 4, 8, 3, 7, 7, 7, 7, 1, 4, 6, 6, 6, 6, 9, 0, 6, 4, 7, 2, 5, 4, 3, 8, 8, 8, 8, 8, 4, 1, 7, 0, 9, 6, 4, 4, 4, 4, 4, 4, 4, 4, 7, 2, 5, 0, 4, 3, 8, 1, 6, 9, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 2, 5, 6, 3, 8, 8, 8, 8, 1, 8, 7, 4, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 0, 6, 4, 1, 8, 3, 2, 5, 4, 4, 4, 4, 4, 4, 4, 7, 9, 0, 4, 6, 4, 1, 8, 7, 7, 7, 7, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 7, 4, 9, 6, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 3, 7, 4, 6, 4, 2, 5, 9, 0, 7, 4, 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 7, 7, 7, 7, 6, 4, 0, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 2, 5, 7, 4, 1, 1, 1, 1, 1, 8, 3, 0, 4, 6, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 5, 7, 4, 0, 3, 6, 4, 4, 4, 4, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 9, 8, 6, 3, 4, 4, 4, 4, 7, 2, 5, 0, 4, 4, 7, 1, 6, 4, 8, 9, 0, 3, 4, 7, 4, 2, 5, 4, 0, 6, 1, 4, 7, 8, 9, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 0, 4, 7, 7, 7, 7, 6, 2, 2, 2, 2, 2, 5, 4, 1, 3, 7, 2, 8, 4, 0, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 6, 1, 3, 4, 0, 5, 8, 7, 7, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 7, 9, 4, 4, 4, 4, 4, 4, 4, 6, 0, 4, 1, 3, 7, 4, 4, 4, 4, 8, 5, 4, 0, 2, 6, 7, 4, 9, 4, 1, 1, 1, 1, 1, 3, 7, 4, 0, 8, 4, 6, 5, 4, 7, 2, 9, 1, 0, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 8, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 1, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 9, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 6, 4, 0, 7, 4, 1, 3, 4, 7, 9, 5, 0, 2, 4, 6, 8, 4, 7, 4, 1, 3, 3, 3, 3, 3, 0, 7, 7, 7, 7, 4, 6, 9, 7, 4, 8, 5, 2, 4, 3, 0, 7, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 9, 8, 4, 4, 4, 4, 5, 7, 7, 7, 7, 2, 0, 0, 0, 0, 3, 4, 0, 1, 7, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 7, 9, 0, 8, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 2, 4, 1, 7, 7, 7, 7, 3, 6, 4, 7, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 9, 4, 7, 7, 7, 7, 4, 1, 3, 7, 0, 2, 2, 2, 2, 2, 6, 5, 4, 2, 4, 7, 7, 7, 7, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 0, 7, 3, 4, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 7, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 6, 3, 4, 7, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 4, 7, 1, 1, 1, 1, 1, 4, 2, 5, 6, 4, 0, 3, 8, 7, 4, 4, 4, 4, 9, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 3, 4, 4, 4, 4, 2, 8, 5, 4, 7, 1, 4, 0, 9, 4, 7, 6, 4, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 2, 1, 4, 4, 4, 4, 5, 0, 4, 9, 6, 7, 7, 7, 7, 4, 3, 3, 3, 3, 3, 7, 4, 0, 4, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 4, 2, 3, 6, 4, 5, 1, 0, 4, 4, 4, 4, 9, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 7, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 4, 4, 4, 7, 4, 5, 9, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 1, 8, 4, 6, 6, 6, 6, 6, 7, 4, 4, 0, 2, 7, 4, 3, 9, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 5, 4, 8, 1, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 0, 0, 0, 0, 4, 3, 6, 0, 4, 2, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 9, 4, 5, 8, 4, 0, 7, 4, 3, 6, 4, 1, 4, 7, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 9, 8, 4, 7, 3, 6, 5, 4, 1, 0, 4, 7, 4, 4, 3, 6, 0, 2, 4, 9, 7, 8, 8, 8, 8, 8, 1, 4, 4, 8, 5, 7, 4, 0, 4, 4, 4, 4, 3, 6, 1, 4, 7, 7, 7, 7, 4, 9, 7, 2, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 5, 1, 7, 3, 3, 3, 3, 3, 6, 4, 0, 4, 4, 7, 9, 2, 4, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 0, 4, 6, 7, 4, 8, 5, 4, 4, 4, 4, 4, 4, 4, 4, 7, 1, 1, 1, 1, 1, 0, 3, 4, 9, 4, 6, 2, 4, 7, 8, 4, 0, 1, 4, 4, 4, 4, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 4, 6, 7, 4, 0, 4, 9, 1, 2, 4, 8, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 7, 5, 4, 4, 4, 4, 1, 3, 6, 4, 4, 4, 4, 9, 4, 8, 7, 0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 7, 4, 3, 6, 0, 4, 5, 8, 8, 8, 8, 8, 7, 4, 4, 4, 4, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 2, 4, 8, 0, 7, 3, 3, 3, 3, 3, 6, 4, 4, 4, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 8, 0, 6, 2, 4, 4, 7, 1, 4, 4, 0, 3, 7, 4, 6, 9, 5, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 1, 0, 2, 4, 3, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 6, 0, 8, 8, 8, 8, 8, 4, 1, 9, 7, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 8, 8, 8, 8, 8, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 0, 7, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 7, 4, 0, 3, 9, 4, 4, 4, 4, 7, 4, 5, 6, 4, 1, 1, 1, 1, 1, 2, 8, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 3, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 6, 4, 7, 0, 4, 5, 8, 8, 8, 8, 8, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 7, 4, 1, 8, 4, 0, 6, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 4, 4, 7, 3, 3, 3, 3, 3, 0, 1, 5, 4, 2, 8, 4, 6, 7, 4, 3, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 7, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 6, 6, 6, 6, 6, 7, 0, 4, 5, 3, 2, 4, 4, 4, 4, 4, 1, 7, 6, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 8, 7, 7, 7, 7, 4, 3, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 4, 0, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 9, 3, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 7, 2, 5, 4, 0, 4, 3, 8, 7, 1, 4, 9, 4, 6, 4, 7, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 8, 2, 7, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 5, 4, 0, 4, 6, 7, 9, 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 3, 0, 8, 8, 8, 8, 8, 7, 4, 4, 4, 4, 4, 6, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 8, 1, 4, 7, 0, 4, 9, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 2, 4, 4, 4, 4, 4, 5, 8, 1, 7, 4, 0, 4, 9, 3, 4, 7, 4, 4, 4, 4, 4, 4, 6, 0, 4, 1, 1, 1, 1, 1, 7, 8, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 4, 7, 5, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9, 4, 6, 4, 7, 4, 8, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 4, 4, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 7, 4, 0, 4, 6, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 7, 4, 5, 9, 4, 8, 1, 4, 0, 4, 7, 4, 4, 4, 6, 3, 7, 4, 4, 0, 0, 0, 0, 0, 1, 4, 2, 2, 2, 2, 2, 2, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 7, 9, 4, 5, 4, 0, 3, 4, 6, 7, 7, 7, 7, 4, 7, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 4, 6, 5, 4, 1, 7, 4, 0, 4, 2, 4, 8, 4, 7, 4, 3, 4, 0, 4, 1, 6, 6, 6, 6, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 9, 4, 4, 6, 7, 5, 4, 8, 0, 3, 4, 2, 4, 1, 4, 7, 4, 4, 0, 4, 7, 4, 6, 3, 4, 9, 8, 4, 1, 4, 4, 4, 4, 7, 4, 0, 0, 0, 0, 0, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 7, 4, 6, 3, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 4, 8, 7, 4, 9, 4, 4, 4, 4, 4, 4, 1, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 3, 5, 4, 6, 2, 4, 4, 7, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 1, 1, 1, 1, 1, 4, 7, 7, 7, 7, 9, 4, 4, 4, 4, 4, 4, 4, 3, 7, 7, 7, 7, 4, 7, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 1, 0, 4, 4, 7, 5, 2, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 6, 4, 7, 0, 4, 1, 4, 4, 4, 4, 9, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 8, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 2, 9, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 4, 4, 4, 4, 8, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 7, 7, 7, 7, 4, 5, 7, 4, 4, 4, 3, 4, 7, 0, 4, 8, 2, 9, 1, 1, 1, 1, 1, 6, 4, 4, 7, 4, 4, 4, 4, 4, 4, 1, 0, 0, 0, 0, 0, 4, 7, 3, 4, 4, 5, 4, 4, 4, 4, 4, 8, 6, 7, 4, 0, 4, 2, 9, 9, 9, 9, 9, 9, 1, 4, 4, 7, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 7, 6, 9, 4, 8, 4, 1, 1, 1, 1, 1, 4, 5, 0, 4, 7, 3, 3, 3, 3, 3, 4, 2, 4, 1, 4, 7, 4, 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 9, 4, 7, 4, 1, 4, 4, 0, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 7, 2, 6, 4, 4, 8, 4, 7, 4, 4, 4, 4, 1, 0, 4, 4, 9, 4, 7, 7, 7, 7, 7, 7, 7, 7, 3, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 4, 0, 4, 5, 7, 1, 4, 2, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 3, 4, 0, 4, 6, 4, 9, 4, 7, 1, 4, 4, 0, 4, 8, 7, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 2, 5, 4, 4, 4, 4, 4, 6, 7, 4, 1, 4, 0, 4, 4, 9, 7, 4, 3, 8, 4, 4, 0, 4, 7, 1, 4, 6, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 7, 4, 3, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 1, 1, 1, 1, 1, 4, 7, 7, 7, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 4, 0, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 3, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 9, 4, 7, 1, 4, 3, 4, 4, 7, 7, 7, 7, 4, 7, 0, 4, 4, 2, 4, 8, 8, 8, 8, 8, 8, 7, 1, 4, 4, 4, 4, 6, 4, 3, 5, 4, 0, 4, 9, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, 0, 8, 4, 4, 4, 4, 4, 4, 4, 3, 4, 2, 4, 4, 4, 4, 4, 6, 7, 4, 4, 4, 4, 4, 4, 5, 0, 9, 4, 7, 1, 4, 4, 4, 4, 4, 3, 4, 4, 7, 8, 0, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 8, 4, 6, 4, 0, 0, 0, 0, 0, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 7, 0, 4, 4, 4, 9, 4, 7, 5, 6, 8, 8, 8, 8, 8, 8, 4, 1, 0, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 0, 0, 0, 0, 0, 4, 4, 6, 4, 7, 7, 7, 7, 1, 7, 8, 4, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 4, 3, 4, 7, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 4, 0, 7, 1, 4, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 8, 7, 7, 7, 7, 3, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 4, 4, 4, 7, 7, 7, 7, 5, 4, 7, 1, 4, 4, 4, 4, 4, 6, 0, 2, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 8, 4, 4, 4, 7, 0, 0, 0, 0, 0, 4, 1, 4, 9, 4, 7, 4, 4, 4, 4, 6, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 5, 7, 4, 4, 4, 4, 2, 8, 4, 4, 4, 7, 1, 1, 1, 1, 1, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 7, 6, 4, 3, 9, 4, 0, 4, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 8, 4, 4, 2, 5, 4, 4, 4, 4, 4, 7, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 6, 4, 7, 4, 4, 4, 4, 4, 4, 9, 0, 4, 7, 7, 7, 7, 8, 4, 7, 4, 1, 4, 4, 7, 3, 2, 4, 4, 4, 4, 0, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 8, 1, 1, 1, 1, 1, 9, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 3, 4, 1, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 7, 4, 0, 4, 5, 4, 4, 7, 4, 8, 4, 4, 0, 0, 0, 0, 0, 3, 7, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 6, 4, 4, 7, 4, 0, 4, 4, 2, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 7, 7, 7, 7, 7, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 4, 4, 7, 7, 7, 7, 4, 4, 4, 4, 9, 7, 4, 4, 4, 4, 4, 4, 0, 1, 4, 3, 7, 4, 4, 4, 4, 4, 2, 8, 4, 4, 7, 4, 6, 0, 4, 4, 4, 7, 5, 4, 1, 4, 3, 4, 0, 7, 7, 7, 7, 4, 4, 4, 4, 9, 7, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 7, 2, 4, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 7, 7, 7, 7, 7, 7, 7, 7, 4, 3, 7, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 9, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 1, 6, 4, 4, 7, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 0, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 5, 4, 7, 0, 8, 4, 6, 4, 9, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 4, 3, 7, 4, 1, 4, 4, 4, 4, 4, 4, 4, 7, 4, 6, 0, 8, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 9, 9, 9, 9, 9, 9, 3, 4, 1, 0, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 3, 4, 1, 1, 1, 1, 1, 4, 4, 4, 7, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 9, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 0, 4, 4, 7, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 0, 4, 4, 4, 1, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 5, 4, 4, 3, 4, 2, 9, 8, 4, 4, 1, 4, 4, 0, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 4, 6, 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 4, 1, 1, 1, 1, 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 2, 9, 3, 3, 3, 3, 3, 4, 1, 0, 7, 7, 7, 7, 4, 7, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 4, 6, 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]\n"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "zoIEOorVTzD9"
|
|
},
|
|
"source": [
|
|
"### Visualizing Result"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "wOuthXLlT0GI",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 472
|
|
},
|
|
"outputId": "2e3d05d6-f6a1-4b22-888b-3dff0e483130"
|
|
},
|
|
"source": [
|
|
"plt.hist(ads_selected)\n",
|
|
"plt.title('Histogram of ads selections')\n",
|
|
"plt.xlabel('Ads')\n",
|
|
"plt.ylabel('Number of times each ad was selected')\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 5,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
],
|
|
"image/png": "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yZfd9+jRA/fu3YNSqUSdOnXE9nHjxqFmzZoaLY6IiIhIF17qPkTGxsZqYQgA3NzcNFEPERERkc5JPmVGREREVN0wEBEREZHBYyAiIiIig6eRQJSXl6eJzRARERHpxUtddr99+3bx/eDBg2Fra4s33ngDp0+f1mhxRERERLogORCtW7cOzs7OAACFQgGFQoG4uDj06dMH06ZN03iBRERERNom+bL7rKwsMRDFxMRg8ODB6N27N9zc3ODt7a3xAomIiIi0TfIIUZ06dXDr1i0AQHx8PHx9fQEAgiCgrKxMs9URERER6YDkEaKBAwfio48+QqNGjXD//n306dMHAHDq1Cl4eHhovEAiIiIibZMciJYvXw43NzfcunULS5YsQe3atQEAd+7cwaeffqrxAomIiIi0TXIgMjExwdSpUyu0h4aGaqQgIiIiIl17qWeZAcD58+dx8+ZNPHnyRK39vffee+WiiIiIiHRJciC6du0aBgwYgPT0dMhkMgiCAACQyWQAwInVREREVOVIvsps8uTJcHd3R05ODmrWrIlz587h8OHDaNeuHQ4ePKiFEomIiIi0S/IIUVJSEg4cOIC6devCyMgIRkZG6NKlC6KiojBp0iScOnVKG3USERERaY3kEaKysjJYWloCAOrWrYvMzEwAgKurKzIyMjRbHREREZEOSB4hat68OU6fPg13d3d4e3tjyZIlMDU1xfr169GgQQNt1EhERESkVZID0axZs1BYWAgAmD9/Pvr164euXbvC1tZW7aGvRERERFWF5EDk5+cnfu3h4YGLFy8iNzcXderUEa80IyIiIqpKJM8hOnDgAIqKitTabGxsGIaIiIioypI8QvTee++htLQU7du3R48ePdC9e3d07twZFhYW2qiPiIiISOskjxA9ePAAiYmJ6NOnD1JSUjBgwABYW1ujc+fOmDVrljZqJCIiItIqmVB+q+mXdO7cOXz55ZfYtm0bVCpVtbxTtVKphJWVFfLz8yGXy/VdDtFrzS08Vt8lSHZjkb++SyAiLZDy91vyKbNLly7h4MGDOHjwIA4dOoTi4mJ07doVX331FXr06PGyNRMRERHpjeRA1KRJE9jZ2WHy5MkIDw+Hl5cXJ1QTERFRlSZ5DtGkSZPwxhtvYP78+Rg/fjxmzpyJffv24dGjR9qoj4iIiEjrJAeiFStW4OTJk8jKykJERASe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LMTAgQNx6tQpNGzYUBs1EhEREWmV5BEiALCyssLMmTM1XQsRERGRXrxUIHrw4AE2btyICxcuAAA8PT0xatQo2NjYaLQ4IiIiIl2QfMrs8OHDcHNzw6pVq/DgwQM8ePAAq1atgru7Ow4fPqyNGomIiIi0SvIIUXBwMD788EOsXbsWxsbGAICysjJ8+umnCA4ORnp6usaLJCIiItImySNEV65cwZQpU8QwBADGxsYICwvDlStXNFocERERkS5IDkRt2rQR5w791YULF9CyZUuNFEVERESkS5U6ZXbmzBnx60mTJmHy5Mm4cuUKOnbsCAA4duwY1qxZg0WLFmmnSiIiIiItkgmCILyok5GREWQyGV7UVSaToaysTGPFvS6USiWsrKyQn58PuVyu73KIXmtu4bH6LkGyG4v89V0CEWmBlL/flRohun79ukYKIyIiInodVSoQubq6arsOIiIiIr15qRszZmZm4vfff0dOTg5UKpXaskmTJmmkMCIiIiJdkRyIoqOj8cknn8DU1BS2traQyWTiMplMxkBEREREVY7kQDR79mzMmTMHERERMDKSfNU+ERER0WtHcqJ59OgRhgwZwjBERERE1YbkVBMUFISdO3dqoxYiIiIivZB8yiwqKgr9+vVDfHw8vLy8YGJiorZ82bJlGiuOiIiISBdeKhAlJCSgcePGAFBhUjURERFRVSM5EC1duhSbNm3CyJEjtVAOERERke5JnkNkZmaGzp07a6MWIiIiIr2QHIgmT56Mr7/+Whu1EBEREemF5FNmKSkpOHDgAGJiYtCsWbMKk6r37NmjseKIiIiIdEFyILK2tsbAgQO1UQsRERGRXkgORJs3b9ZGHURERER6w9tNExERkcGTPELk7u7+j/cbunbt2isVRERERKRrkgNRSEiI2vuSkhKcOnUK8fHxmDZtmqbqIiIiItIZyYFo8uTJz2xfs2YNTpw48coFERFR9eUWHqvvEiS7schf3yWQDmhsDlGfPn2we/duTW2OiIiISGc0Foh27doFGxsbTW2OiIiISGcknzJr3bq12qRqQRCQlZWFu3fv4ptvvtFocURERES6IDkQ9e/fX+29kZER7Ozs0KNHDzRp0kRTdRERERHpjORTZnPnzlV7zZ49G+PHj3+pMHT48GG8++67cHJygkwmw08//aS2XBAEzJkzB/Xq1YOFhQV8fX1x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\n"
|
|
},
|
|
"metadata": {}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |