{ "cells": [ { "cell_type": "markdown", "id": "747b245f", "metadata": {}, "source": [ "Build the Lego Knowledge Graph using the sources in `/data`." ] }, { "cell_type": "code", "execution_count": 19, "id": "90209948", "metadata": {}, "outputs": [], "source": [ "from rdflib import Graph, Namespace, XSD, OWL, RDF, RDFS, SKOS, URIRef, Literal\n", "import pandas as pd" ] }, { "cell_type": "markdown", "id": "fe91fa67", "metadata": {}, "source": [ "Setup the requirements for building a knowledge graph" ] }, { "cell_type": "code", "execution_count": 20, "id": "8e573135", "metadata": {}, "outputs": [], "source": [ "g = Graph()\n", "thm = Namespace(\"https://thm.de/\")\n", "THM = Namespace(\"https://thm.de/ont/\")" ] }, { "cell_type": "markdown", "id": "d56199d5", "metadata": {}, "source": [ "# Rebrickable" ] }, { "cell_type": "markdown", "id": "d1e1abb0", "metadata": {}, "source": [ "![Rebrickable](\\data\\rebrickable\\downloads_schema_v3.png)" ] }, { "cell_type": "code", "execution_count": 21, "id": "d8a1fe84", "metadata": {}, "outputs": [], "source": [ "re_colors = pd.read_csv(\"data/rebrickable/colors.csv\")\n", "re_elements = pd.read_csv(\"data/rebrickable/elements.csv\")\n", "re_inventories = pd.read_csv(\"data/rebrickable/inventories.csv\")\n", "re_inventory_minifigs = pd.read_csv(\"data/rebrickable/inventory_minifigs.csv\")\n", "re_inventory_parts = pd.read_csv(\"data/rebrickable/inventory_parts.csv\")\n", "re_inventory_sets = pd.read_csv(\"data/rebrickable/inventory_sets.csv\")\n", "re_minifigs = pd.read_csv(\"data/rebrickable/minifigs.csv\")\n", "re_part_categories = pd.read_csv(\"data/rebrickable/part_categories.csv\")\n", "re_part_relationships = pd.read_csv(\"data/rebrickable/part_relationships.csv\")\n", "re_parts = pd.read_csv(\"data/rebrickable/parts.csv\")\n", "re_sets = pd.read_csv(\"data/rebrickable/sets.csv\")\n", "re_themes = pd.read_csv(\"data/rebrickable/themes.csv\")" ] }, { "cell_type": "markdown", "id": "f3677416", "metadata": {}, "source": [ "Colors" ] }, { "cell_type": "code", "execution_count": 22, "id": "ae505704", "metadata": {}, "outputs": [], "source": [ "for color in re_colors.itertuples(index=False):\n", " color_ref = thm[f\"color/{color.id}\"]\n", "\n", " g.add((color_ref, RDF.type, THM.Color ))\n", " g.add((color_ref, RDFS.label, Literal(color.name, lang=\"en\")))\n", " g.add((color_ref, THM.rgbcolor, Literal(color.rgb)))\n", " g.add((color_ref, THM.is_transparent, Literal(color.is_trans, datatype=XSD.boolean)))\n", " \n", " if not pd.isna(color.y1):\n", " # First appearance\n", " g.add((color_ref, THM.first_year, Literal(int(color.y1), datatype=XSD.integer)))\n", " if not pd.isna(color.y2):\n", " # Last appearance\n", " g.add((color_ref, THM.last_year, Literal(int(color.y2), datatype=XSD.integer)))\n" ] }, { "cell_type": "markdown", "id": "e27b2bc4", "metadata": {}, "source": [ "Part Categories" ] }, { "cell_type": "code", "execution_count": 23, "id": "fb9e17d6", "metadata": {}, "outputs": [], "source": [ "for part_category in re_part_categories.itertuples(index=False):\n", " part_category_ref = thm[f\"part_category/{part_category.id}\"]\n", "\n", " g.add((part_category_ref, RDF.type, THM.PartCategory ))\n", " g.add((part_category_ref, RDFS.label, Literal(part_category_ref, lang=\"en\")))" ] }, { "cell_type": "markdown", "id": "ea32849b", "metadata": {}, "source": [ "Parts" ] }, { "cell_type": "code", "execution_count": 24, "id": "8fdb080e", "metadata": {}, "outputs": [], "source": [ "for part in re_parts.itertuples(index=False):\n", " part_ref = thm[f\"part/{part.part_num}\"]\n", "\n", " g.add((part_ref, RDF.type, THM.Part))\n", " g.add((part_ref, RDFS.label, Literal(part.name, lang=\"en\")))\n", " g.add((part_ref, THM.part_category, thm[f\"part_category/{part.part_cat_id}\"]))\n", " g.add((part_ref, THM.part_material, Literal(part.part_material)))" ] }, { "cell_type": "markdown", "id": "fcaadd84", "metadata": {}, "source": [ "Elements" ] }, { "cell_type": "code", "execution_count": 25, "id": "579b1d67", "metadata": {}, "outputs": [], "source": [ "for element in re_elements.itertuples(index=False):\n", " element_ref = thm[f\"element/{element.element_id}\"]\n", " part_ref = thm[f\"part/{element.part_num}\"]\n", " color_ref = thm[f\"color/{element.color_id}\"]\n", "\n", " g.add((element_ref, RDF.type, RDF.Property))\n", " g.add((element_ref, RDF.type, THM.Element))\n", "\n", " g.add((element_ref, RDFS.domain, THM.Part))\n", " g.add((element_ref, RDFS.range, THM.Color))\n", "\n", " g.add((element_ref, THM.color, color_ref))\n", " g.add((part_ref, THM.part, part_ref))" ] }, { "cell_type": "markdown", "id": "44dae336", "metadata": {}, "source": [ "Part Relationships" ] }, { "cell_type": "code", "execution_count": 26, "id": "00db079a", "metadata": {}, "outputs": [], "source": [ "for part_relationship in re_part_relationships.itertuples(index=False):\n", " part_ref_parent = thm[f\"part/{part_relationship.parent_part_num}\"]\n", " part_ref_child = thm[f\"part/{part_relationship.child_part_num}\"]\n", "\n", " g.add((part_ref_parent, THM.has_child, part_ref_child))\n", " g.add((part_ref_child, THM.has_parent, part_ref_parent))" ] }, { "cell_type": "markdown", "id": "19dc64b8", "metadata": {}, "source": [ "Themes" ] }, { "cell_type": "code", "execution_count": 27, "id": "1a529aae", "metadata": {}, "outputs": [], "source": [ "for theme in re_themes.itertuples(index=False):\n", " theme_ref = thm[f\"theme/{int(theme.id)}\"]\n", "\n", " g.add((theme_ref, RDF.type, THM.Theme))\n", " g.add((theme_ref, RDFS.label, Literal(theme.name, lang=\"en\")))\n", "\n", " if not pd.isna(theme.parent_id):\n", " g.add((theme_ref, THM.parent_theme, thm[f\"theme/{int(theme.parent_id)}\"]))" ] }, { "cell_type": "markdown", "id": "3f72c2e9", "metadata": {}, "source": [ "Sets" ] }, { "cell_type": "code", "execution_count": 28, "id": "29b357ef", "metadata": {}, "outputs": [], "source": [ "for lego_set in re_sets.itertuples(index=False):\n", " set_ref = thm[f\"set/lego/{lego_set.set_num}\"]\n", "\n", " g.add((set_ref, RDF.type, THM.Set))\n", " g.add((set_ref, RDFS.label, Literal(lego_set.name, lang=\"en\")))\n", " g.add((set_ref, THM.year, Literal(int(lego_set.year), datatype=XSD.integer)))\n", " g.add((set_ref, THM.theme, thm[f\"theme/{int(lego_set.theme_id)}\"]))\n", " g.add((set_ref, THM.num_parts, Literal(int(lego_set.num_parts), datatype=XSD.integer)))\n", " g.add((set_ref, THM.brand, Literal(\"Lego\")))" ] }, { "cell_type": "markdown", "id": "d2616476", "metadata": {}, "source": [ "Minifigures" ] }, { "cell_type": "code", "execution_count": 29, "id": "a67b3e70", "metadata": {}, "outputs": [], "source": [ "for minifig in re_minifigs.itertuples(index=False):\n", " minifig_ref = thm[f\"minifig/{minifig.fig_num}\"]\n", "\n", " g.add((minifig_ref, RDF.type, THM.Minifig))\n", " g.add((minifig_ref, RDFS.label, Literal(minifig.name, lang=\"en\")))\n", " g.add((minifig_ref, THM.num_parts, Literal(int(minifig.num_parts), datatype=XSD.integer)))" ] }, { "cell_type": "markdown", "id": "2e9baff1", "metadata": {}, "source": [ "Now the ugly part: Inventories" ] }, { "cell_type": "code", "execution_count": 30, "id": "0c97dc4d", "metadata": {}, "outputs": [], "source": [ "for inventory in re_inventories.itertuples(index=False):\n", " inventory_ref = thm[f\"inventory/{inventory.id}\"]\n", "\n", " g.add((inventory_ref, RDF.type, THM.Inventory))\n", " g.add((inventory_ref, THM.set, thm[f\"set/lego/{inventory.set_num}\"]))" ] }, { "cell_type": "markdown", "id": "7c962cf0", "metadata": {}, "source": [ "Inventories relate sets, minifigures and parts to each other, creating a kind of \"top level set\" \n", "(this takes a lot of time)" ] }, { "cell_type": "code", "execution_count": 31, "id": "dc2ba03e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\nfor inventory_part in re_inventory_parts.itertuples(index=False):\\n inventory_part_ref = thm[f\"inventory_part/{inventory_part.inventory_id}/{inventory_part.part_num}\"]\\n\\n inventory_ref = thm[f\"inventory/{inventory_part.inventory_id}\"]\\n part_ref = thm[f\"part/{inventory_part.part_num}\"]\\n\\n g.add((inventory_part_ref, RDF.type, THM.PartInv))\\n g.add((inventory_part_ref, RDF.type, RDF.Property))\\n\\n g.add((inventory_part_ref, RDFS.domain, THM.Inventory))\\n g.add((inventory_part_ref, RDFS.range, THM.Part))\\n\\n g.add((inventory_ref, THM.contains, inventory_part_ref))\\n g.add((part_ref, THM.belongs, inventory_part_ref))\\n\\n g.add((inventory_part_ref, THM.quantity, Literal(int(inventory_part.quantity), datatype=XSD.integer)))\\n g.add((inventory_part_ref, THM.is_spare, Literal(inventory_part.is_spare, datatype=XSD.boolean)))\\n g.add((inventory_part_ref, THM.color, thm[f\"color/{inventory_part.color_id}\"]))\\n'" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"\n", "for inventory_part in re_inventory_parts.itertuples(index=False):\n", " inventory_part_ref = thm[f\"inventory_part/{inventory_part.inventory_id}/{inventory_part.part_num}\"]\n", " \n", " inventory_ref = thm[f\"inventory/{inventory_part.inventory_id}\"]\n", " part_ref = thm[f\"part/{inventory_part.part_num}\"]\n", "\n", " g.add((inventory_part_ref, RDF.type, THM.PartInv))\n", " g.add((inventory_part_ref, RDF.type, RDF.Property))\n", "\n", " g.add((inventory_part_ref, RDFS.domain, THM.Inventory))\n", " g.add((inventory_part_ref, RDFS.range, THM.Part))\n", " \n", " g.add((inventory_ref, THM.contains, inventory_part_ref))\n", " g.add((part_ref, THM.belongs, inventory_part_ref))\n", "\n", " g.add((inventory_part_ref, THM.quantity, Literal(int(inventory_part.quantity), datatype=XSD.integer)))\n", " g.add((inventory_part_ref, THM.is_spare, Literal(inventory_part.is_spare, datatype=XSD.boolean)))\n", " g.add((inventory_part_ref, THM.color, thm[f\"color/{inventory_part.color_id}\"]))\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 32, "id": "8715a1cf", "metadata": {}, "outputs": [], "source": [ "for inventory_set in re_inventory_sets.itertuples(index=False):\n", " inventory_set_ref = thm[f\"inventory_set/{inventory_set.inventory_id}/{inventory_set.set_num}\"]\n", "\n", " inventory_ref = thm[f\"inventory/{inventory_set.inventory_id}\"]\n", " set_ref = thm[f\"set/lego/{inventory_set.set_num}\"]\n", "\n", " g.add((inventory_set_ref, RDF.type, THM.SetInv))\n", " g.add((inventory_set_ref, RDF.type, RDF.Property))\n", "\n", " g.add((inventory_set_ref, RDFS.domain, THM.Inventory))\n", " g.add((inventory_set_ref, RDFS.range, THM.Set))\n", "\n", " g.add((inventory_ref, THM.contains, inventory_set_ref))\n", " g.add((set_ref, THM.belongs, inventory_set_ref))\n", " \n", " g.add((inventory_set_ref, THM.quantity, Literal(int(inventory_set.quantity), datatype=XSD.integer)))" ] }, { "cell_type": "code", "execution_count": 33, "id": "08c2c580", "metadata": {}, "outputs": [], "source": [ "for inventory_minifig in re_inventory_minifigs.itertuples(index=False):\n", " inventory_minifig_ref = thm[f\"inventory_minifig/{inventory_minifig.inventory_id}/{inventory_minifig.fig_num}\"]\n", "\n", " inventory_ref = thm[f\"inventory/{inventory_minifig.inventory_id}\"]\n", " minifig_ref = thm[f\"minifig/{inventory_minifig.fig_num}\"]\n", "\n", " g.add((inventory_minifig_ref, RDF.type, THM.MinifigInv))\n", " g.add((inventory_minifig_ref, RDF.type, RDF.Property))\n", "\n", " g.add((inventory_minifig_ref, RDFS.domain, THM.Inventory))\n", " g.add((inventory_minifig_ref, RDFS.range, THM.Minifig))\n", "\n", " g.add((inventory_ref, THM.contains, inventory_minifig_ref))\n", " g.add((minifig_ref, THM.belongs, inventory_minifig_ref))\n", " \n", " g.add((inventory_minifig_ref, THM.quantity, Literal(int(inventory_minifig.quantity), datatype=XSD.integer)))" ] }, { "cell_type": "markdown", "id": "dcbab237", "metadata": {}, "source": [ "# Brickset" ] }, { "cell_type": "markdown", "id": "d8fb5374", "metadata": {}, "source": [ "add for prices" ] }, { "cell_type": "code", "execution_count": 34, "id": "1e0ac437", "metadata": {}, "outputs": [], "source": [ "bs_sets = pd.read_csv(\"./data/brickset/sets.csv\")\n", "bs_parts = pd.read_csv(\"./data/brickset/parts.csv\")" ] }, { "cell_type": "markdown", "id": "d120c079", "metadata": {}, "source": [ "Add Set prices" ] }, { "cell_type": "code", "execution_count": 35, "id": "fd944ccb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "9\n", "9\n", "14\n", "24\n", "39\n", "3\n", "6\n", "13\n", "14\n", "12\n", "24\n", "3\n", "6\n", "9\n", "14\n", "24\n", "40\n", "2\n", "2\n", "2\n", "10\n", "15\n", "20\n", "30\n", "50\n", "50\n", "12\n", "14\n", "35\n", "199\n", "39\n", "149\n", "99\n", "34\n", "49\n", "75\n", "102\n", "49\n", "49\n", "146\n", "88\n", "88\n", "99\n", "78\n", "199\n", "59\n", "69\n", "179\n", "99\n", "44\n", "142\n", "132\n", "81\n", "219\n", "50\n", "119\n", "91\n", "84\n", "49\n", "149\n", "79\n", "89\n", "81\n", "2\n", "2\n", "2\n", "20\n", "8\n", "20\n", "4\n", "4\n", "4\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "20\n", "6\n", "6\n", "6\n", "14\n", "20\n", "12\n", "8\n", "20\n", "30\n", "20\n", "30\n", "50\n", "50\n", "50\n", "80\n", "80\n", "80\n", "2\n", "5\n", "7\n", "7\n", "7\n", "14\n", "14\n", "14\n", "24\n", "39\n", "69\n", "5\n", "1\n", "1\n", "1\n", "21\n", "8\n", "15\n", "31\n", "41\n", "73\n", "34\n", "48\n", "8\n", "15\n", "21\n", "31\n", "41\n", "3\n", "9\n", "17\n", "24\n", "39\n", "49\n", "29\n", "19\n", "7\n", "14\n", "2\n", "4\n", "7\n", "14\n", "24\n", "39\n", "7\n", "7\n", "1\n", "1\n", "1\n", "2\n", "4\n", "7\n", "14\n", "24\n", "49\n", "35\n", "12\n", "17\n", "24\n", "34\n", "64\n", "31\n", "69\n", "8\n", "24\n", "34\n", "74\n", "79\n", "17\n", "3\n", "6\n", "14\n", "19\n", "34\n", "49\n", "19\n", "3\n", "10\n", "2\n", "20\n", "15\n", "25\n", "40\n", "7\n", "3\n", "10\n", "4\n", "3\n", "3\n", "8\n", "10\n", "12\n", "20\n", "22\n", "35\n", "33\n", "50\n", "50\n", "89\n", "70\n", "90\n", "17\n", "17\n", "19\n", "19\n", "19\n", "34\n", "74\n", "39\n", "34\n", "22\n", "54\n", "169\n", "34\n", "34\n", "24\n", "59\n", "29\n", "29\n", "99\n", "49\n", "29\n", "39\n", "24\n", "34\n", "49\n", "24\n", "24\n", "44\n", "44\n", "84\n", "39\n", "29\n", "39\n", "34\n", "64\n", "29\n", "44\n", "39\n", "54\n", "44\n", "89\n", "44\n", "44\n", "79\n", "89\n", "34\n", "159\n", "54\n", "54\n", "89\n", "39\n", "104\n", "54\n", "119\n", "139\n", "199\n", "139\n", "239\n", "69\n", "104\n", "114\n", "114\n", "114\n", "114\n", "104\n", "104\n", "214\n", "104\n", "104\n", "129\n", "59\n", "89\n", "169\n", "44\n", "44\n", "169\n", "89\n", "69\n", "169\n", "104\n", "54\n", "99\n", "179\n", "10\n", "8\n", "7\n", "12\n", "10\n", "3\n", "8\n", "18\n", "25\n", "49\n", "4\n", "7\n", "13\n", "12\n", "20\n", "24\n", "2\n", "2\n", "39\n", "19\n", "40\n", "81\n", "24\n", "39\n", "3\n", "2\n", "39\n", "49\n", "89\n", "129\n", "19\n", "29\n", "49\n", "69\n", "89\n", "3\n", "6\n", "10\n", "13\n", "6\n", "10\n", "10\n", "8\n", "6\n", "6\n", "13\n", "20\n", "10\n", "15\n", "6\n", "8\n", "3\n", "10\n", "2\n", "12\n", "14\n", "2\n", "3\n", "2\n", "4\n", "6\n", "12\n", "4\n", "7\n", "14\n", "12\n", "2\n", "7\n", "7\n", "7\n", "3\n", "6\n", "2\n", "29\n", "1\n", "6\n", "10\n", "15\n", "18\n", "0\n", "9\n", "26\n", "38\n", "26\n", "4\n", "5\n", "10\n", "5\n", "2\n", "45\n", "19\n", "20\n", "39\n", "59\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "26\n", "4\n", "3\n", "7\n", "9\n", "12\n", "5\n", "4\n", "2\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "18\n", "9\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "8\n", "0\n", "1\n", "1\n", "1\n", "1\n", "3\n", "15\n", "20\n", "49\n", "20\n", "15\n", "1\n", "20\n", "2\n", "10\n", "20\n", "20\n", "0\n", "0\n", "0\n", "0\n", "30\n", "10\n", "30\n", "7\n", "14\n", "24\n", "39\n", "79\n", "49\n", "59\n", "29\n", "39\n", "9\n", "19\n", "29\n", "39\n", "9\n", "3\n", "7\n", "10\n", "24\n", "30\n", "60\n", "5\n", "7\n", "7\n", "6\n", "8\n", "13\n", "17\n", "27\n", "11\n", "4\n", "7\n", "14\n", "39\n", "3\n", "6\n", "9\n", "19\n", "14\n", "24\n", "5\n", "11\n", "44\n", "49\n", "5\n", "17\n", "44\n", "5\n", "25\n", "19\n", "32\n", "42\n", "30\n", "29\n", "54\n", "99\n", "39\n", "29\n", "14\n", "7\n", "4\n", "49\n", "9\n", "9\n", "9\n", "4\n", "59\n", "29\n", "5\n", "7\n", "29\n", "39\n", "10\n", "35\n", "61\n", "15\n", "12\n", "12\n", "12\n", "12\n", "12\n", "12\n", "12\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "14\n", "20\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "2\n", "1\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "10\n", "44\n", "69\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "9\n", "22\n", "29\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "12\n", "24\n", "49\n", "1\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "2\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "14\n", "14\n", "14\n", "19\n", "2\n", "2\n", "1\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "1\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "14\n", "14\n", "14\n", "29\n", "14\n", "19\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "14\n", "14\n", "19\n", "20\n", "20\n", "1\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "14\n", "14\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "1\n", "14\n", "14\n", "19\n", "29\n", "49\n", "14\n", "5\n", "5\n", "24\n", "40\n", "9\n", "19\n", "29\n", "49\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "14\n", "14\n", "24\n", "19\n", "29\n", "39\n", "3\n", "3\n", "3\n", "3\n", "1\n", "14\n", "14\n", "24\n", "29\n", "39\n", "39\n", "48\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "9\n", "14\n", "29\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "14\n", "14\n", "14\n", "19\n", "29\n", "44\n", "59\n", "29\n", "12\n", "34\n", "34\n", "29\n", "29\n", "4\n", "9\n", "8\n", "8\n", "8\n", "8\n", "30\n", "18\n", "17\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "12\n", "12\n", "12\n", "14\n", "14\n", "14\n", "12\n", "12\n", "12\n", "12\n", "12\n", "24\n", "6\n", "6\n", "6\n", "6\n", "6\n", "9\n", "9\n", "9\n", "14\n", "14\n", "14\n", "19\n", "9\n", "9\n", "9\n", "9\n", "17\n", "3\n", "0\n", "17\n", "24\n", "59\n", "3\n", "13\n", "10\n", "15\n", "19\n", "20\n", "28\n", "34\n", "30\n", "44\n", "52\n", "1\n", "2\n", "3\n", "4\n", "20\n", "20\n", "20\n", "8\n", "8\n", "2\n", "5\n", "4\n", "9\n", "9\n", "69\n", "9\n", "54\n", "24\n", "13\n", "13\n", "24\n", "129\n", "14\n", "59\n", "9\n", "8\n", "8\n", "29\n", "8\n", "8\n", "149\n", "54\n", "24\n", "24\n", "94\n", "24\n", "54\n", "17\n", "59\n", "54\n", "54\n", "54\n", "54\n", "79\n", "49\n", "17\n", "12\n", "24\n", "44\n", "3\n", "12\n", "12\n", "12\n", "59\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "9\n", "9\n", "9\n", "9\n", "17\n", "9\n", "9\n", "9\n", "9\n", "9\n", "17\n", "9\n", "9\n", "9\n", "13\n", "9\n", "9\n", "9\n", "11\n", "11\n", "17\n", "17\n", "9\n", "9\n", "9\n", "13\n", "13\n", "13\n", "13\n", "17\n", "9\n", "21\n", "13\n", "13\n", "13\n", "13\n", "25\n", "9\n", "21\n", "21\n", "9\n", "9\n", "17\n", "17\n", "13\n", "13\n", "13\n", "13\n", "17\n", "44\n", "17\n", "17\n", "9\n", "17\n", "17\n", "17\n", "39\n", "9\n", "17\n", "17\n", "17\n", "17\n", "17\n", "17\n", "39\n", "39\n", "9\n", "9\n", "9\n", "9\n", "9\n", "13\n", "17\n", "17\n", "17\n", "9\n", "9\n", "9\n", "17\n", "9\n", "10\n", "9\n", "49\n", "44\n", "24\n", "19\n", "17\n", "17\n", "19\n", "9\n", "44\n", "9\n", "13\n", "17\n", "10\n", "44\n", "10\n", "9\n", "9\n", "9\n", "34\n", "19\n", "19\n", "19\n", "34\n", "19\n", "34\n", "34\n", "19\n", "19\n", "10\n", "9\n", "9\n", "9\n", "9\n", "19\n", "39\n", "39\n", "39\n", "39\n", "39\n", "39\n", "39\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "25\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "17\n", "17\n", "17\n", "17\n", "17\n", "14\n", "9\n", "9\n", "14\n", "9\n", "9\n", "17\n", "17\n", "17\n", "9\n", "9\n", "14\n", "14\n", "9\n", "9\n", "17\n", "17\n", "17\n", "14\n", "14\n", "9\n", "9\n", "17\n", "17\n", "132\n", "299\n", "132\n", "149\n", "245\n", "132\n", "99\n", "99\n", "169\n", "49\n", "39\n", "61\n", "219\n", "179\n", "44\n", "299\n", "39\n", "119\n", "259\n", "189\n", "229\n", "169\n", "159\n", "69\n", "189\n", "189\n", "159\n", "44\n", "239\n", "249\n", "249\n", "199\n", "149\n", "199\n", "169\n", "299\n", "129\n", "189\n", "49\n", "299\n", "199\n", "269\n", "69\n", "199\n", "239\n", "319\n", "249\n", "99\n", "179\n", "34\n", "4\n", "2\n", "12\n", "12\n", "19\n", "24\n", "7\n", "7\n", "21\n", "29\n", "35\n", "49\n", "19\n", "13\n", "19\n", "20\n", "25\n", "29\n", "6\n", "8\n", "12\n", "24\n", "17\n", "13\n", "13\n", "48\n", "15\n", "25\n", "8\n", "8\n", "8\n", "8\n", "9\n", "19\n", "40\n", "10\n", "10\n", "10\n", "40\n", "20\n", "9\n", "17\n", "7\n", "7\n", "6\n", "20\n", "14\n", "6\n", "9\n", "19\n", "19\n", "6\n", "19\n", "39\n", "49\n", "24\n", "34\n", "1\n", "1\n", "1\n", "2\n", "1\n", "1\n", "2\n", "2\n", "5\n", "5\n", "8\n", "8\n", "9\n", "10\n", "7\n", "7\n", "7\n", "7\n", "7\n", "6\n", "7\n", "7\n", "6\n", "6\n", "9\n", "9\n", "9\n", "9\n", "9\n", "6\n", "6\n", "5\n", "6\n", "6\n", "7\n", "7\n", "7\n", "7\n", "7\n", "6\n", "6\n", "6\n", "6\n", "6\n", "9\n", "9\n", "8\n", "5\n", "5\n", "5\n", "4\n", "5\n", "5\n", "7\n", "7\n", "7\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "9\n", "6\n", "6\n", "6\n", "7\n", "7\n", "9\n", "4\n", "6\n", "5\n", "7\n", "7\n", "15\n", "7\n", "4\n", "6\n", "7\n", "7\n", "7\n", "8\n", "5\n", "6\n", "7\n", "7\n", "7\n", "5\n", "8\n", "5\n", "4\n", "4\n", "5\n", "3\n", "6\n", "7\n", "13\n", "7\n", "5\n", "8\n", "6\n", "6\n", "7\n", "6\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "4\n", "5\n", "5\n", "5\n", "5\n", "5\n", "8\n", "6\n", "6\n", "8\n", "8\n", "6\n", "7\n", "5\n", "7\n", "4\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "4\n", "4\n", "6\n", "6\n", "9\n", "4\n", "4\n", "4\n", "13\n", "13\n", "13\n", "18\n", "25\n", "30\n", "49\n", "45\n", "69\n", "25\n", "25\n", "81\n", "4\n", "4\n", "4\n", "4\n", "14\n", "19\n", "24\n", "49\n", "3\n", "2\n", "2\n", "2\n", "3\n", "2\n", "4\n", "4\n", "8\n", "2\n", "2\n", "2\n", "8\n", "20\n", "2\n", "2\n", "2\n", "2\n", "2\n", "12\n", "15\n", "30\n", "40\n", "5\n", "29\n", "2\n", "6\n", "3\n", "1\n", "2\n", "5\n", "5\n", "5\n", "5\n", "1\n", "1\n", "2\n", "1\n", "4\n", "3\n", "3\n", "3\n", "2\n", "3\n", "4\n", "2\n", "4\n", "4\n", "5\n", "5\n", "3\n", "6\n", "5\n", "6\n", "2\n", "6\n", "6\n", "6\n", "6\n", "7\n", "5\n", "8\n", "8\n", "8\n", "8\n", "9\n", "12\n", "12\n", "16\n", "13\n", "24\n", "26\n", "11\n", "17\n", "20\n", "16\n", "22\n", "22\n", "17\n", "19\n", "23\n", "19\n", "28\n", "27\n", "25\n", "29\n", "48\n", "43\n", "5\n", "37\n", "30\n", "50\n", "19\n", "58\n", "64\n", "16\n", "20\n", "68\n", "85\n", "44\n", "30\n", "50\n", "95\n", "90\n", "90\n", "15\n", "20\n", "50\n", "80\n", "90\n", "20\n", "5\n", "3\n", "6\n", "9\n", "5\n", "49\n", "41\n", "26\n", "13\n", "6\n", "29\n", "48\n", "13\n", "26\n", "3\n", "6\n", "14\n", "39\n", "73\n", "74\n", "18\n", "35\n", "66\n", "81\n", "45\n", "19\n", "9\n", "4\n", "24\n", "2\n", "2\n", "12\n", "12\n", "12\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "4\n", "14\n", "24\n", "39\n", "69\n", "8\n", "8\n", "8\n", "8\n", "8\n", "7\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "20\n", "20\n", "10\n", "27\n", "12\n", "19\n", "29\n", "4\n", "14\n", "14\n", "29\n", "69\n", "25\n", "40\n", "99\n", "71\n", "99\n", "3\n", "30\n", "30\n", "14\n", "14\n", "7\n", "17\n", "24\n", "34\n", "79\n", "9\n", "10\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "24\n", "3\n", "8\n", "9\n", "14\n", "35\n", "81\n", "29\n", "19\n", "3\n", "13\n", "26\n", "49\n", "18\n", "26\n", "41\n", "139\n", "7\n", "12\n", "19\n", "24\n", "69\n", "34\n", "24\n", "79\n", "17\n", "39\n", "43\n", "3\n", "19\n", "34\n", "39\n", "14\n", "17\n", "17\n", "14\n", "14\n", "7\n", "12\n", "34\n", "34\n", "59\n", "19\n", "15\n", "17\n", "3\n", "13\n", "19\n", "41\n", "71\n", "2\n", "2\n", "1\n", "2\n", "2\n", "2\n", "2\n", "19\n", "39\n", "61\n", "31\n", "3\n", "4\n", "4\n", "39\n", "7\n", "14\n", "19\n", "3\n", "4\n", "24\n", "14\n", "9\n", "2\n", "9\n", "34\n", "8\n", "9\n", "9\n", "8\n", "13\n", "19\n", "41\n", "12\n", "12\n", "71\n", "15\n", "17\n", "2\n", "2\n", "9\n", "14\n", "44\n", "69\n", "8\n", "14\n", "34\n", "61\n", "9\n", "14\n", "49\n", "69\n", "26\n", "19\n", "19\n", "19\n", "34\n", "14\n", "17\n", "4\n", "7\n", "19\n", "34\n", "3\n", "8\n", "36\n", "48\n", "9\n", "39\n", "69\n", "24\n", "41\n", "44\n", "5\n", "9\n", "29\n", "34\n", "69\n", "15\n", "9\n", "73\n", "102\n", "14\n", "14\n", "2\n", "3\n", "14\n", "12\n", "39\n", "34\n", "12\n", "15\n", "35\n", "102\n", "129\n", "9\n", "24\n", "44\n", "13\n", "13\n", "14\n", "29\n", "58\n", "14\n", "31\n", "34\n", "2\n", "7\n", "7\n", "29\n", "81\n", "24\n", "0\n", "2\n", "2\n", "3\n", "3\n", "4\n", "3\n", "3\n", "4\n", "3\n", "4\n", "3\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "3\n", "3\n", "4\n", "4\n", "3\n", "4\n", "3\n", "10\n", "7\n", "10\n", "11\n", "11\n", "4\n", "7\n", "14\n", "24\n", "69\n", "24\n", "4\n", "19\n", "49\n", "39\n", "4\n", "9\n", "24\n", "59\n", "34\n", "17\n", "17\n", "17\n", "9\n", "24\n", "34\n", "69\n", "19\n", "19\n", "24\n", "79\n", "24\n", "4\n", "9\n", "24\n", "34\n", "69\n", "4\n", "12\n", "17\n", "29\n", "39\n", "49\n", "79\n", "24\n", "34\n", "49\n", "109\n", "149\n", "7\n", "7\n", "7\n", "17\n", "17\n", "17\n", "17\n", "24\n", "24\n", "79\n", "19\n", "49\n", "4\n", "8\n", "24\n", "39\n", "59\n", "24\n", "34\n", "8\n", "17\n", "24\n", "34\n", "59\n", "8\n", "17\n", "39\n", "69\n", "17\n", "17\n", "17\n", "17\n", "24\n", "19\n", "8\n", "4\n", "8\n", "24\n", "39\n", "79\n", "69\n", "149\n", "149\n", "19\n", "8\n", "17\n", "44\n", "74\n", "84\n", "4\n", "8\n", "17\n", "24\n", "64\n", "84\n", "29\n", "34\n", "7\n", "7\n", "17\n", "17\n", "17\n", "17\n", "24\n", "8\n", "14\n", "24\n", "44\n", "84\n", "109\n", "4\n", "8\n", "17\n", "39\n", "74\n", "24\n", "64\n", "19\n", "34\n", "4\n", "8\n", "17\n", "24\n", "39\n", "59\n", "84\n", "12\n", "39\n", "7\n", "7\n", "7\n", "17\n", "17\n", "17\n", "14\n", "24\n", "24\n", "34\n", "39\n", "19\n", "4\n", "8\n", "15\n", "24\n", "39\n", "84\n", "109\n", "8\n", "15\n", "19\n", "39\n", "84\n", "19\n", "64\n", "4\n", "9\n", "24\n", "39\n", "69\n", "39\n", "12\n", "7\n", "7\n", "17\n", "14\n", "17\n", "24\n", "24\n", "9\n", "12\n", "39\n", "79\n", "4\n", "9\n", "15\n", "24\n", "39\n", "84\n", "59\n", "114\n", "169\n", "119\n", "19\n", "34\n", "74\n", "69\n", "17\n", "7\n", "17\n", "24\n", "44\n", "69\n", "7\n", "14\n", "24\n", "59\n", "89\n", "34\n", "9\n", "9\n", "14\n", "17\n", "17\n", "24\n", "9\n", "17\n", "24\n", "44\n", "89\n", "119\n", "34\n", "17\n", "34\n", "79\n", "34\n", "19\n", "9\n", "9\n", "15\n", "9\n", "9\n", "8\n", "17\n", "24\n", "39\n", "44\n", "89\n", "8\n", "17\n", "8\n", "8\n", "8\n", "17\n", "17\n", "24\n", "8\n", "17\n", "44\n", "89\n", "24\n", "44\n", "89\n", "8\n", "24\n", "54\n", "124\n", "17\n", "19\n", "34\n", "169\n", "17\n", "17\n", "17\n", "8\n", "17\n", "44\n", "8\n", "17\n", "24\n", "54\n", "17\n", "8\n", "8\n", "8\n", "17\n", "17\n", "24\n", "24\n", "44\n", "89\n", "24\n", "54\n", "89\n", "6\n", "6\n", "6\n", "17\n", "8\n", "39\n", "79\n", "19\n", "17\n", "24\n", "59\n", "89\n", "34\n", "6\n", "6\n", "6\n", "8\n", "39\n", "24\n", "39\n", "59\n", "89\n", "8\n", "24\n", "54\n", "89\n", "8\n", "8\n", "39\n", "17\n", "12\n", "24\n", "24\n", "54\n", "89\n", "6\n", "6\n", "6\n", "69\n", "159\n", "139\n", "49\n", "129\n", "17\n", "17\n", "17\n", "24\n", "8\n", "24\n", "44\n", "54\n", "29\n", "54\n", "89\n", "129\n", "21\n", "24\n", "24\n", "24\n", "6\n", "44\n", "6\n", "17\n", "29\n", "79\n", "17\n", "29\n", "49\n", "74\n", "94\n", "89\n", "129\n", "17\n", "29\n", "59\n", "79\n", "17\n", "49\n", "29\n", "8\n", "24\n", "62\n", "94\n", "179\n", "19\n", "8\n", "8\n", "17\n", "17\n", "29\n", "24\n", "39\n", "44\n", "8\n", "44\n", "8\n", "8\n", "8\n", "24\n", "24\n", "24\n", "46\n", "8\n", "8\n", "8\n", "12\n", "17\n", "17\n", "17\n", "24\n", "24\n", "89\n", "94\n", "8\n", "8\n", "24\n", "54\n", "69\n", "17\n", "24\n", "49\n", "89\n", "49\n", "89\n", "94\n", "79\n", "8\n", "19\n", "24\n", "8\n", "17\n", "17\n", "24\n", "59\n", "89\n", "124\n", "17\n", "19\n", "89\n", "17\n", "34\n", "89\n", "24\n", "10\n", "24\n", "69\n", "89\n", "69\n", "17\n", "8\n", "34\n", "12\n", "17\n", "17\n", "19\n", "24\n", "8\n", "24\n", "44\n", "8\n", "8\n", "44\n", "17\n", "54\n", "17\n", "17\n", "44\n", "54\n", "74\n", "79\n", "179\n", "99\n", "69\n", "179\n", "24\n", "19\n", "34\n", "17\n", "7\n", "7\n", "7\n", "7\n", "8\n", "8\n", "12\n", "17\n", "24\n", "19\n", "17\n", "39\n", "34\n", "17\n", "59\n", "24\n", "89\n", "54\n", "99\n", "59\n", "179\n", "25\n", "29\n", "74\n", "49\n", "109\n", "24\n", "24\n", "89\n", "9\n", "9\n", "10\n", "9\n", "10\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "0\n", "14\n", "37\n", "20\n", "20\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "2\n", "2\n", "4\n", "6\n", "10\n", "40\n", "30\n", "4\n", "8\n", "14\n", "24\n", "44\n", "49\n", "12\n", "17\n", "17\n", "19\n", "24\n", "49\n", "44\n", "6\n", "7\n", "12\n", "19\n", "19\n", "29\n", "39\n", "4\n", "4\n", "4\n", "4\n", "17\n", "17\n", "7\n", "19\n", "49\n", "8\n", "17\n", "24\n", "24\n", "29\n", "4\n", "4\n", "17\n", "24\n", "7\n", "54\n", "4\n", "29\n", "39\n", "44\n", "44\n", "8\n", "17\n", "29\n", "89\n", "44\n", "69\n", "7\n", "12\n", "7\n", "7\n", "17\n", "17\n", "44\n", "54\n", "8\n", "62\n", "79\n", "29\n", "49\n", "49\n", "24\n", "44\n", "8\n", "17\n", "29\n", "34\n", "24\n", "44\n", "59\n", "3\n", "1\n", "1\n", "1\n", "1\n", "2\n", "2\n", "2\n", "1\n", "1\n", "1\n", "6\n", "6\n", "6\n", "12\n", "12\n", "12\n", "29\n", "6\n", "6\n", "6\n", "9\n", "9\n", "9\n", "19\n", "12\n", "19\n", "2\n", "4\n", "4\n", "4\n", "12\n", "9\n", "9\n", "9\n", "19\n", "24\n", "6\n", "6\n", "6\n", "7\n", "9\n", "24\n", "6\n", "6\n", "12\n", "6\n", "6\n", "7\n", "12\n", "2\n", "2\n", "1\n", "1\n", "1\n", "12\n", "11\n", "4\n", "4\n", "4\n", "5\n", "5\n", "5\n", "24\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "119\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "31\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "10\n", "11\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "29\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "20\n", "20\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "9\n", "12\n", "9\n", "9\n", "14\n", "129\n", "79\n", "249\n", "79\n", "109\n", "79\n", "142\n", "119\n", "59\n", "142\n", "159\n", "74\n", "64\n", "129\n", "74\n", "179\n", "74\n", "259\n", "299\n", "159\n", "109\n", "69\n", "129\n", "299\n", "129\n", "84\n", "159\n", "149\n", "89\n", "84\n", "159\n", "84\n", "169\n", "69\n", "244\n", "74\n", "0\n", "39\n", "27\n", "2\n", "2\n", "2\n", "2\n", "3\n", "14\n", "3\n", "3\n", "9\n", "10\n", "30\n", "30\n", "12\n", "19\n", "24\n", "39\n", "9\n", "9\n", "9\n", "14\n", "14\n", "24\n", "5\n", "5\n", "9\n", "9\n", "20\n", "6\n", "8\n", "10\n", "15\n", "30\n", "11\n", "20\n", "20\n", "15\n", "2\n", "3\n", "5\n", "11\n", "17\n", "25\n", "30\n", "29\n", "29\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "20\n", "5\n", "29\n", "34\n", "44\n", "24\n", "14\n", "9\n", "9\n", "3\n", "9\n", "2\n", "2\n", "2\n", "2\n", "12\n", "12\n", "19\n", "19\n", "20\n", "5\n", "14\n", "24\n", "34\n", "15\n", "6\n", "20\n", "8\n", "8\n", "5\n", "3\n", "3\n", "3\n", "7\n", "7\n", "14\n", "24\n", "24\n", "34\n", "9\n", "14\n", "19\n", "24\n", "39\n", "34\n", "3\n", "3\n", "3\n", "3\n", "19\n", "12\n", "7\n", "19\n", "44\n", "19\n", "36\n", "48\n", "68\n", "39\n", "8\n", "15\n", "24\n", "51\n", "36\n", "20\n", "4\n", "4\n", "9\n", "13\n", "18\n", "25\n", "35\n", "39\n", "49\n", "4\n", "4\n", "9\n", "18\n", "29\n", "40\n", "45\n", "71\n", "7\n", "14\n", "4\n", "4\n", "9\n", "18\n", "15\n", "34\n", "44\n", "69\n", "59\n", "4\n", "4\n", "9\n", "9\n", "12\n", "10\n", "17\n", "17\n", "24\n", "34\n", "59\n", "9\n", "7\n", "5\n", "7\n", "15\n", "9\n", "3\n", "4\n", "4\n", "3\n", "3\n", "3\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "3\n", "3\n", "3\n", "2\n", "4\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "4\n", "3\n", "4\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "9\n", "9\n", "9\n", "12\n", "14\n", "14\n", "14\n", "19\n", "24\n", "49\n", "59\n", "4\n", "4\n", "4\n", "9\n", "9\n", "17\n", "12\n", "17\n", "17\n", "19\n", "19\n", "34\n", "64\n", "4\n", "4\n", "9\n", "9\n", "12\n", "12\n", "17\n", "17\n", "19\n", "34\n", "17\n", "39\n", "49\n", "4\n", "4\n", "9\n", "9\n", "12\n", "12\n", "17\n", "17\n", "19\n", "19\n", "27\n", "44\n", "54\n", "24\n", "4\n", "4\n", "9\n", "9\n", "12\n", "17\n", "17\n", "17\n", "19\n", "19\n", "44\n", "24\n", "19\n", "27\n", "44\n", "49\n", "9\n", "9\n", "12\n", "17\n", "17\n", "17\n", "34\n", "29\n", "24\n", "24\n", "34\n", "44\n", "69\n", "44\n", "14\n", "12\n", "12\n", "17\n", "17\n", "24\n", "9\n", "24\n", "24\n", "44\n", "44\n", "74\n", "24\n", "8\n", "8\n", "12\n", "17\n", "19\n", "44\n", "39\n", "39\n", "69\n", "114\n", "8\n", "12\n", "19\n", "17\n", "21\n", "24\n", "39\n", "44\n", "79\n", "89\n", "24\n", "24\n", "12\n", "8\n", "12\n", "17\n", "17\n", "8\n", "44\n", "24\n", "39\n", "104\n", "17\n", "8\n", "12\n", "19\n", "24\n", "44\n", "54\n", "8\n", "124\n", "94\n", "24\n", "19\n", "8\n", "17\n", "17\n", "24\n", "24\n", "59\n", "54\n", "44\n", "89\n", "44\n", "24\n", "24\n", "17\n", "24\n", "10\n", "12\n", "54\n", "17\n", "19\n", "19\n", "34\n", "44\n", "79\n", "109\n", "24\n", "19\n", "54\n", "24\n", "12\n", "24\n", "34\n", "8\n", "8\n", "29\n", "19\n", "17\n", "29\n", "24\n", "24\n", "44\n", "4\n", "4\n", "4\n", "4\n", "8\n", "11\n", "19\n", "8\n", "8\n", "8\n", "8\n", "17\n", "13\n", "13\n", "13\n", "12\n", "13\n", "13\n", "13\n", "19\n", "13\n", "12\n", "14\n", "13\n", "17\n", "12\n", "20\n", "19\n", "39\n", "44\n", "64\n", "44\n", "12\n", "12\n", "42\n", "32\n", "26\n", "48\n", "7\n", "75\n", "15\n", "80\n", "36\n", "38\n", "54\n", "22\n", "14\n", "7\n", "140\n", "191\n", "235\n", "22\n", "18\n", "30\n", "76\n", "28\n", "38\n", "105\n", "23\n", "22\n", "25\n", "34\n", "21\n", "59\n", "31\n", "57\n", "69\n", "63\n", "89\n", "73\n", "36\n", "12\n", "15\n", "15\n", "32\n", "15\n", "80\n", "92\n", "52\n", "69\n", "150\n", "221\n", "100\n", "13\n", "8\n", "25\n", "12\n", "7\n", "6\n", "10\n", "10\n", "10\n", "39\n", "11\n", "69\n", "19\n", "34\n", "49\n", "129\n", "4\n", "4\n", "4\n", "3\n", "4\n", "3\n", "3\n", "4\n", "3\n", "13\n", "49\n", "19\n", "39\n", "11\n", "39\n", "19\n", "11\n", "19\n", "29\n", "49\n", "159\n", "19\n", "49\n", "39\n", "59\n", "29\n", "89\n", "24\n", "11\n", "29\n", "54\n", "239\n", "19\n", "59\n", "74\n", "29\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "29\n", "19\n", "49\n", "99\n", "8\n", "8\n", "8\n", "29\n", "19\n", "34\n", "29\n", "19\n", "29\n", "89\n", "19\n", "34\n", "19\n", "24\n", "48\n", "94\n", "8\n", "34\n", "219\n", "34\n", "8\n", "44\n", "79\n", "174\n", "12\n", "24\n", "24\n", "54\n", "59\n", "29\n", "9\n", "42\n", "54\n", "34\n", "229\n", "344\n", "31\n", "20\n", "31\n", "12\n", "259\n", "29\n", "64\n", "54\n", "269\n", "17\n", "12\n", "54\n", "89\n", "129\n", "69\n", "24\n", "24\n", "24\n", "39\n", "10\n", "0\n", "149\n", "4\n", "19\n", "24\n", "74\n", "11\n", "11\n", "19\n", "19\n", "39\n", "54\n", "99\n", "3\n", "4\n", "13\n", "17\n", "29\n", "17\n", "34\n", "44\n", "19\n", "34\n", "49\n", "89\n", "89\n", "99\n", "99\n", "89\n", "89\n", "29\n", "29\n", "29\n", "29\n", "24\n", "24\n", "24\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "14\n", "29\n", "24\n", "14\n", "14\n", "14\n", "14\n", "14\n", "24\n", "14\n", "14\n", "14\n", "11\n", "11\n", "11\n", "39\n", "29\n", "29\n", "24\n", "24\n", "29\n", "11\n", "39\n", "24\n", "24\n", "11\n", "11\n", "39\n", "14\n", "29\n", "11\n", "14\n", "14\n", "14\n", "14\n", "24\n", "14\n", "14\n", "2\n", "7\n", "14\n", "29\n", "49\n", "4\n", "10\n", "20\n", "40\n", "70\n", "8\n", "17\n", "24\n", "39\n", "49\n", "79\n", "29\n", "7\n", "7\n", "7\n", "7\n", "2\n", "2\n", "2\n", "2\n", "9\n", "14\n", "24\n", "49\n", "69\n", "40\n", "8\n", "15\n", "19\n", "29\n", "44\n", "15\n", "8\n", "17\n", "17\n", "24\n", "39\n", "17\n", "24\n", "44\n", "3\n", "3\n", "4\n", "4\n", "4\n", "3\n", "8\n", "8\n", "34\n", "34\n", "39\n", "34\n", "34\n", "11\n", "17\n", "24\n", "24\n", "34\n", "59\n", "11\n", "19\n", "34\n", "49\n", "19\n", "24\n", "49\n", "54\n", "5\n", "8\n", "8\n", "19\n", "4\n", "8\n", "24\n", "39\n", "19\n", "64\n", "24\n", "39\n", "12\n", "29\n", "44\n", "69\n", "17\n", "17\n", "34\n", "8\n", "17\n", "21\n", "24\n", "39\n", "8\n", "44\n", "17\n", "24\n", "74\n", "34\n", "12\n", "8\n", "64\n", "8\n", "17\n", "17\n", "17\n", "17\n", "24\n", "159\n", "44\n", "74\n", "24\n", "24\n", "27\n", "44\n", "11\n", "59\n", "34\n", "17\n", "24\n", "34\n", "21\n", "39\n", "44\n", "89\n", "189\n", "8\n", "8\n", "17\n", "17\n", "44\n", "59\n", "29\n", "89\n", "74\n", "89\n", "39\n", "12\n", "29\n", "39\n", "34\n", "17\n", "8\n", "149\n", "59\n", "49\n", "18\n", "29\n", "17\n", "49\n", "344\n", "18\n", "84\n", "139\n", "42\n", "124\n", "42\n", "89\n", "46\n", "57\n", "12\n", "12\n", "12\n", "39\n", "39\n", "24\n", "59\n", "74\n", "189\n", "17\n", "89\n", "139\n", "89\n", "114\n", "29\n", "59\n", "34\n", "39\n", "29\n", "24\n", "34\n", "59\n", "89\n", "8\n", "17\n", "17\n", "59\n", "239\n", "34\n", "24\n", "34\n", "109\n", "79\n", "129\n", "54\n", "19\n", "34\n", "29\n", "34\n", "69\n", "39\n", "44\n", "44\n", "59\n", "44\n", "8\n", "17\n", "34\n", "44\n", "44\n", "54\n", "34\n", "139\n", "139\n", "8\n", "34\n", "34\n", "54\n", "309\n", "299\n", "17\n", "29\n", "44\n", "3\n", "4\n", "5\n", "5\n", "3\n", "19\n", "44\n", "24\n", "12\n", "17\n", "39\n", "4\n", "4\n", "4\n", "4\n", "12\n", "12\n", "17\n", "17\n", "3\n", "5\n", "5\n", "4\n", "4\n", "19\n", "17\n", "17\n", "3\n", "4\n", "5\n", "4\n", "3\n", "4\n", "5\n", "17\n", "12\n", "21\n", "5\n", "5\n", "5\n", "5\n", "3\n", "3\n", "4\n", "5\n", "17\n", "17\n", "24\n", "34\n", "5\n", "5\n", "5\n", "5\n", "12\n", "12\n", "3\n", "24\n", "17\n", "24\n", "17\n", "17\n", "34\n", "5\n", "5\n", "5\n", "24\n", "24\n", "3\n", "17\n", "19\n", "59\n", "39\n", "5\n", "39\n", "3\n", "25\n", "18\n", "18\n", "31\n", "42\n", "46\n", "57\n", "74\n", "84\n", "94\n", "119\n", "8\n", "12\n", "24\n", "44\n", "79\n", "89\n", "17\n", "24\n", "34\n", "39\n", "69\n", "114\n", "169\n", "8\n", "8\n", "17\n", "17\n", "44\n", "44\n", "24\n", "24\n", "89\n", "89\n", "129\n", "69\n", "59\n", "44\n", "89\n", "129\n", "1\n", "2\n", "1\n", "1\n", "1\n", "1\n", "2\n", "3\n", "1\n", "20\n", "5\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "0\n", "20\n", "5\n", "10\n", "12\n", "18\n", "6\n", "18\n", "24\n", "4\n", "20\n", "15\n", "30\n", "6\n", "7\n", "5\n", "5\n", "12\n", "10\n", "12\n", "14\n", "10\n", "15\n", "5\n", "13\n", "30\n", "35\n", "6\n", "7\n", "13\n", "25\n", "7\n", "18\n", "20\n", "70\n", "40\n", "8\n", "6\n", "4\n", "3\n", "9\n", "1\n", "13\n", "15\n", "29\n", "12\n", "14\n", "20\n", "35\n", "8\n", "42\n", "60\n", "8\n", "5\n", "15\n", "35\n", "74\n", "13\n", "7\n", "10\n", "13\n", "52\n", "46\n", "8\n", "18\n", "49\n", "5\n", "13\n", "16\n", "66\n", "44\n", "4\n", "4\n", "7\n", "9\n", "85\n", "15\n", "43\n", "20\n", "4\n", "4\n", "12\n", "9\n", "17\n", "6\n", "10\n", "100\n", "4\n", "15\n", "20\n", "27\n", "69\n", "6\n", "8\n", "9\n", "15\n", "22\n", "50\n", "84\n", "22\n", "10\n", "3\n", "10\n", "18\n", "50\n", "30\n", "5\n", "25\n", "25\n", "30\n", "10\n", "25\n", "10\n", "10\n", "10\n", "20\n", "40\n", "6\n", "12\n", "25\n", "10\n", "17\n", "15\n", "20\n", "25\n", "25\n", "30\n", "15\n", "50\n", "100\n", "30\n", "9\n", "15\n", "45\n", "70\n", "50\n", "6\n", "7\n", "7\n", "9\n", "29\n", "12\n", "15\n", "20\n", "3\n", "6\n", "8\n", "10\n", "15\n", "18\n", "30\n", "20\n", "20\n", "8\n", "10\n", "20\n", "10\n", "20\n", "15\n", "9\n", "20\n", "3\n", "9\n", "15\n", "15\n", "4\n", "9\n", "17\n", "40\n", "20\n", "14\n", "6\n", "6\n", "12\n", "15\n", "10\n", "5\n", "9\n", "14\n", "17\n", "19\n", "29\n", "4\n", "4\n", "4\n", "20\n", "24\n", "14\n", "24\n", "4\n", "7\n", "12\n", "12\n", "17\n", "29\n", "9\n", "19\n", "9\n", "19\n", "12\n", "24\n", "19\n", "12\n", "15\n", "22\n", "29\n", "7\n", "34\n", "59\n", "6\n", "19\n", "6\n", "19\n", "14\n", "10\n", "9\n", "12\n", "12\n", "19\n", "39\n", "19\n", "7\n", "1\n", "7\n", "3\n", "10\n", "19\n", "29\n", "51\n", "2\n", "13\n", "3\n", "4\n", "7\n", "19\n", "7\n", "17\n", "19\n", "10\n", "29\n", "2\n", "7\n", "29\n", "6\n", "24\n", "49\n", "19\n", "3\n", "8\n", "89\n", "53\n", "12\n", "6\n", "7\n", "19\n", "34\n", "19\n", "9\n", "19\n", "54\n", "49\n", "12\n", "9\n", "7\n", "14\n", "29\n", "29\n", "9\n", "29\n", "2\n", "18\n", "7\n", "17\n", "24\n", "29\n", "12\n", "17\n", "9\n", "12\n", "19\n", "29\n", "48\n", "7\n", "18\n", "14\n", "20\n", "20\n", "19\n", "9\n", "9\n", "19\n", "13\n", "34\n", "24\n", "14\n", "24\n", "21\n", "29\n", "24\n", "7\n", "7\n", "25\n", "35\n", "10\n", "49\n", "29\n", "14\n", "19\n", "17\n", "39\n", "17\n", "22\n", "24\n", "20\n", "19\n", "29\n", "14\n", "9\n", "29\n", "8\n", "12\n", "18\n", "12\n", "48\n", "14\n", "39\n", "34\n", "69\n", "7\n", "14\n", "34\n", "49\n", "24\n", "6\n", "24\n", "17\n", "9\n", "14\n", "40\n", "81\n", "15\n", "4\n", "20\n", "40\n", "69\n", "20\n", "14\n", "7\n", "49\n", "18\n", "35\n", "4\n", "7\n", "7\n", "9\n", "18\n", "35\n", "49\n", "9\n", "18\n", "35\n", "49\n", "14\n", "29\n", "20\n", "13\n", "19\n", "34\n", "3\n", "8\n", "19\n", "49\n", "24\n", "20\n", "25\n", "3\n", "39\n", "49\n", "20\n", "25\n", "7\n", "18\n", "82\n", "13\n", "19\n", "25\n", "45\n", "13\n", "19\n", "25\n", "39\n", "49\n", "39\n", "9\n", "8\n", "18\n", "29\n", "24\n", "40\n", "40\n", "12\n", "19\n", "29\n", "19\n", "14\n", "19\n", "19\n", "24\n", "9\n", "12\n", "19\n", "39\n", "49\n", "79\n", "29\n", "39\n", "7\n", "29\n", "19\n", "7\n", "19\n", "19\n", "9\n", "9\n", "9\n", "17\n", "19\n", "24\n", "14\n", "29\n", "49\n", "19\n", "6\n", "29\n", "14\n", "29\n", "59\n", "29\n", "9\n", "4\n", "69\n", "69\n", "17\n", "8\n", "24\n", "24\n", "49\n", "17\n", "27\n", "17\n", "17\n", "34\n", "59\n", "49\n", "17\n", "17\n", "34\n", "69\n", "124\n", "17\n", "24\n", "39\n", "59\n", "79\n", "17\n", "44\n", "17\n", "24\n", "8\n", "24\n", "17\n", "39\n", "69\n", "17\n", "29\n", "34\n", "34\n", "59\n", "17\n", "44\n", "17\n", "54\n", "24\n", "17\n", "24\n", "59\n", "10\n", "74\n", "17\n", "44\n", "39\n", "59\n", "17\n", "69\n", "8\n", "24\n", "17\n", "19\n", "79\n", "8\n", "59\n", "24\n", "3\n", "24\n", "14\n", "34\n", "49\n", "15\n", "40\n", "99\n", "14\n", "19\n", "29\n", "9\n", "19\n", "39\n", "19\n", "14\n", "9\n", "14\n", "15\n", "15\n", "5\n", "8\n", "16\n", "54\n", "19\n", "12\n", "17\n", "12\n", "34\n", "19\n", "25\n", "19\n", "29\n", "14\n", "24\n", "39\n", "19\n", "14\n", "14\n", "9\n", "14\n", "19\n", "39\n", "49\n", "12\n", "9\n", "9\n", "17\n", "34\n", "19\n", "17\n", "8\n", "24\n", "14\n", "24\n", "24\n", "12\n", "12\n", "24\n", "5\n", "49\n", "12\n", "39\n", "9\n", "16\n", "19\n", "54\n", "8\n", "12\n", "17\n", "12\n", "16\n", "12\n", "19\n", "44\n", "19\n", "39\n", "34\n", "19\n", "29\n", "20\n", "14\n", "24\n", "12\n", "16\n", "16\n", "19\n", "12\n", "24\n", "9\n", "14\n", "14\n", "19\n", "49\n", "14\n", "9\n", "16\n", "24\n", "44\n", "84\n", "12\n", "16\n", "9\n", "12\n", "24\n", "12\n", "16\n", "49\n", "16\n", "8\n", "14\n", "19\n", "16\n", "16\n", "29\n", "24\n", "24\n", "17\n", "19\n", "29\n", "29\n", "19\n", "16\n", "16\n", "9\n", "11\n", "15\n", "24\n", "39\n", "54\n", "24\n", "8\n", "15\n", "69\n", "39\n", "44\n", "12\n", "39\n", "19\n", "39\n", "12\n", "17\n", "3\n", "3\n", "3\n", "3\n", "19\n", "29\n", "29\n", "16\n", "29\n", "9\n", "3\n", "3\n", "17\n", "14\n", "24\n", "39\n", "19\n", "17\n", "24\n", "54\n", "9\n", "17\n", "19\n", "17\n", "59\n", "114\n", "24\n", "17\n", "24\n", "17\n", "24\n", "24\n", "17\n", "7\n", "12\n", "12\n", "14\n", "29\n", "44\n", "17\n", "17\n", "24\n", "8\n", "8\n", "44\n", "9\n", "17\n", "24\n", "39\n", "9\n", "54\n", "89\n", "8\n", "17\n", "17\n", "24\n", "44\n", "24\n", "4\n", "4\n", "29\n", "17\n", "24\n", "24\n", "24\n", "12\n", "12\n", "9\n", "34\n", "54\n", "8\n", "17\n", "54\n", "114\n", "54\n", "44\n", "17\n", "24\n", "24\n", "29\n", "44\n", "89\n", "17\n", "17\n", "24\n", "44\n", "89\n", "8\n", "17\n", "24\n", "59\n", "8\n", "17\n", "17\n", "109\n", "8\n", "49\n", "44\n", "17\n", "24\n", "29\n", "54\n", "8\n", "17\n", "39\n", "8\n", "17\n", "24\n", "89\n", "8\n", "17\n", "44\n", "89\n", "114\n", "29\n", "39\n", "39\n", "54\n", "12\n", "8\n", "17\n", "24\n", "39\n", "8\n", "17\n", "17\n", "17\n", "37\n", "59\n", "46\n", "42\n", "79\n", "124\n", "19\n", "29\n", "46\n", "89\n", "2\n", "4\n", "3\n", "4\n", "3\n", "5\n", "4\n", "70\n", "50\n", "39\n", "24\n", "24\n", "24\n", "79\n", "69\n", "69\n", "159\n", "99\n", "159\n", "79\n", "24\n", "19\n", "19\n", "43\n", "41\n", "201\n", "66\n", "79\n", "30\n", "90\n", "116\n", "90\n", "40\n", "71\n", "24\n", "78\n", "91\n", "44\n", "95\n", "72\n", "55\n", "105\n", "39\n", "36\n", "62\n", "69\n", "64\n", "89\n", "26\n", "26\n", "39\n", "36\n", "36\n", "21\n", "25\n", "118\n", "88\n", "29\n", "149\n", "71\n", "121\n", "39\n", "39\n", "39\n", "199\n", "28\n", "64\n", "62\n", "57\n", "57\n", "56\n", "56\n", "42\n", "69\n", "48\n", "130\n", "49\n", "174\n", "35\n", "55\n", "59\n", "55\n", "55\n", "169\n", "16\n", "16\n", "250\n", "145\n", "170\n", "189\n", "99\n", "59\n", "21\n", "99\n", "110\n", "26\n", "127\n", "127\n", "200\n", "200\n", "98\n", "250\n", "159\n", "35\n", "15\n", "59\n", "89\n", "249\n", "149\n", "99\n", "34\n", "59\n", "94\n", "234\n", "259\n", "174\n", "309\n", "119\n", "24\n", "115\n", "44\n", "44\n", "89\n", "89\n", "59\n", "179\n", "12\n", "359\n", "154\n", "154\n", "81\n", "15\n", "339\n", "99\n", "32\n", "244\n", "79\n", "329\n", "399\n", "499\n", "399\n", "104\n", "144\n", "249\n", "6\n", "12\n", "12\n", "12\n", "12\n", "9\n", "17\n", "24\n", "24\n", "39\n", "12\n", "34\n", "74\n", "8\n", "17\n", "17\n", "24\n", "39\n", "49\n", "24\n", "34\n", "64\n", "79\n", "8\n", "17\n", "24\n", "39\n", "54\n", "17\n", "39\n", "64\n", "12\n", "19\n", "24\n", "34\n", "54\n", "44\n", "69\n", "3\n", "1\n", "9\n", "9\n", "9\n", "9\n", "14\n", "19\n", "19\n", "34\n", "3\n", "69\n", "3\n", "14\n", "34\n", "19\n", "34\n", "4\n", "4\n", "9\n", "9\n", "9\n", "9\n", "19\n", "34\n", "59\n", "4\n", "4\n", "9\n", "9\n", "9\n", "14\n", "19\n", "19\n", "4\n", "4\n", "4\n", "89\n", "24\n", "24\n", "12\n", "49\n", "22\n", "24\n", "24\n", "29\n", "8\n", "8\n", "19\n", "8\n", "7\n", "8\n", "12\n", "19\n", "2\n", "2\n", "2\n", "5\n", "9\n", "14\n", "20\n", "20\n", "4\n", "4\n", "4\n", "17\n", "4\n", "4\n", "9\n", "20\n", "17\n", "25\n", "30\n", "20\n", "20\n", "50\n", "50\n", "49\n", "25\n", "4\n", "9\n", "14\n", "9\n", "24\n", "37\n", "5\n", "5\n", "5\n", "8\n", "14\n", "9\n", "9\n", "5\n", "5\n", "10\n", "9\n", "9\n", "9\n", "19\n", "29\n", "12\n", "20\n", "14\n", "14\n", "2\n", "2\n", "3\n", "10\n", "2\n", "10\n", "10\n", "14\n", "3\n", "3\n", "4\n", "6\n", "6\n", "17\n", "2\n", "3\n", "4\n", "7\n", "7\n", "12\n", "9\n", "9\n", "19\n", "29\n", "4\n", "9\n", "14\n", "19\n", "29\n", "7\n", "7\n", "7\n", "7\n", "7\n", "19\n", "19\n", "4\n", "4\n", "55\n", "3\n", "5\n", "5\n", "5\n", "6\n", "6\n", "6\n", "10\n", "11\n", "17\n", "20\n", "22\n", "20\n", "14\n", "26\n", "33\n", "39\n", "1\n", "1\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "24\n", "43\n", "130\n", "100\n", "48\n", "48\n", "48\n", "42\n", "11\n", "11\n", "11\n", "12\n", "34\n", "89\n", "89\n", "17\n", "54\n", "89\n", "209\n", "20\n", "10\n", "20\n", "10\n", "10\n", "2\n", "4\n", "16\n", "20\n", "10\n", "15\n", "23\n", "8\n", "22\n", "33\n", "15\n", "20\n", "3\n", "13\n", "20\n", "38\n", "1\n", "6\n", "20\n", "25\n", "45\n", "2\n", "2\n", "15\n", "25\n", "35\n", "6\n", "3\n", "29\n", "19\n", "19\n", "14\n", "29\n", "89\n", "19\n", "24\n", "39\n", "49\n", "69\n", "19\n", "4\n", "4\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "19\n", "4\n", "3\n", "3\n", "3\n", "4\n", "4\n", "4\n", "3\n", "3\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "4\n", "3\n", "3\n", "10\n", "10\n", "10\n", "12\n", "10\n", "7\n", "5\n", "8\n", "4\n", "9\n", "9\n", "9\n", "17\n", "49\n", "24\n", "29\n", "39\n", "9\n", "9\n", "9\n", "12\n", "59\n", "19\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "17\n", "9\n", "9\n", "9\n", "9\n", "9\n", "12\n", "17\n", "19\n", "24\n", "24\n", "39\n", "44\n", "59\n", "19\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "19\n", "34\n", "79\n", "24\n", "17\n", "9\n", "3\n", "3\n", "3\n", "9\n", "12\n", "9\n", "24\n", "39\n", "59\n", "24\n", "9\n", "17\n", "19\n", "109\n", "19\n", "12\n", "24\n", "34\n", "49\n", "19\n", "34\n", "74\n", "17\n", "8\n", "3\n", "3\n", "3\n", "8\n", "12\n", "17\n", "29\n", "39\n", "8\n", "24\n", "59\n", "8\n", "24\n", "39\n", "54\n", "12\n", "17\n", "24\n", "99\n", "19\n", "24\n", "39\n", "74\n", "49\n", "17\n", "12\n", "3\n", "3\n", "3\n", "8\n", "8\n", "8\n", "8\n", "8\n", "17\n", "24\n", "39\n", "49\n", "64\n", "17\n", "24\n", "64\n", "84\n", "19\n", "39\n", "12\n", "24\n", "39\n", "54\n", "39\n", "19\n", "8\n", "8\n", "12\n", "12\n", "17\n", "14\n", "19\n", "24\n", "29\n", "24\n", "39\n", "49\n", "59\n", "8\n", "12\n", "29\n", "24\n", "54\n", "44\n", "89\n", "14\n", "24\n", "24\n", "39\n", "49\n", "22\n", "7\n", "7\n", "7\n", "7\n", "7\n", "14\n", "7\n", "14\n", "24\n", "12\n", "17\n", "19\n", "24\n", "34\n", "44\n", "59\n", "24\n", "24\n", "34\n", "44\n", "119\n", "17\n", "34\n", "54\n", "54\n", "84\n", "22\n", "8\n", "7\n", "7\n", "7\n", "7\n", "7\n", "8\n", "17\n", "17\n", "24\n", "34\n", "49\n", "59\n", "8\n", "17\n", "34\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "19\n", "17\n", "24\n", "34\n", "74\n", "8\n", "17\n", "24\n", "44\n", "59\n", "89\n", "34\n", "54\n", "74\n", "7\n", "9\n", "7\n", "7\n", "8\n", "14\n", "24\n", "8\n", "12\n", "24\n", "27\n", "34\n", "34\n", "44\n", "59\n", "89\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "24\n", "44\n", "59\n", "59\n", "89\n", "89\n", "17\n", "24\n", "39\n", "54\n", "19\n", "17\n", "17\n", "59\n", "8\n", "17\n", "8\n", "8\n", "17\n", "24\n", "34\n", "44\n", "64\n", "69\n", "139\n", "12\n", "21\n", "24\n", "54\n", "59\n", "24\n", "59\n", "17\n", "59\n", "89\n", "17\n", "39\n", "44\n", "59\n", "8\n", "49\n", "89\n", "89\n", "8\n", "39\n", "8\n", "19\n", "54\n", "24\n", "79\n", "59\n", "89\n", "139\n", "8\n", "74\n", "59\n", "44\n", "89\n", "8\n", "17\n", "17\n", "24\n", "24\n", "39\n", "84\n", "57\n", "24\n", "62\n", "129\n", "24\n", "44\n", "17\n", "8\n", "17\n", "17\n", "74\n", "74\n", "19\n", "49\n", "44\n", "17\n", "44\n", "24\n", "104\n", "79\n", "8\n", "8\n", "8\n", "12\n", "17\n", "8\n", "29\n", "34\n", "39\n", "59\n", "49\n", "24\n", "74\n", "89\n", "89\n", "12\n", "8\n", "39\n", "17\n", "59\n", "69\n", "114\n", "24\n", "17\n", "17\n", "8\n", "44\n", "19\n", "89\n", "169\n", "8\n", "12\n", "12\n", "8\n", "17\n", "14\n", "17\n", "17\n", "24\n", "24\n", "34\n", "44\n", "59\n", "44\n", "59\n", "69\n", "89\n", "8\n", "17\n", "34\n", "39\n", "54\n", "69\n", "8\n", "24\n", "19\n", "89\n", "149\n", "79\n", "24\n", "119\n", "79\n", "8\n", "24\n", "17\n", "19\n", "17\n", "8\n", "34\n", "44\n", "54\n", "59\n", "69\n", "79\n", "119\n", "8\n", "24\n", "24\n", "44\n", "24\n", "4\n", "4\n", "6\n", "4\n", "9\n", "4\n", "10\n", "8\n", "24\n", "10\n", "20\n", "7\n", "7\n", "7\n", "7\n", "7\n", "8\n", "4\n", "57\n", "6\n", "35\n", "34\n", "34\n", "34\n", "34\n", "8\n", "18\n", "24\n", "69\n", "12\n", "34\n", "44\n", "17\n", "44\n", "44\n", "7\n", "7\n", "7\n", "9\n", "9\n", "24\n", "39\n", "7\n", "14\n", "9\n", "7\n", "14\n", "19\n", "7\n", "9\n", "4\n", "7\n", "9\n", "9\n", "9\n", "9\n", "17\n", "19\n", "19\n", "24\n", "7\n", "7\n", "9\n", "9\n", "17\n", "17\n", "19\n", "7\n", "7\n", "9\n", "9\n", "17\n", "9\n", "14\n", "14\n", "19\n", "24\n", "24\n", "7\n", "9\n", "14\n", "24\n", "14\n", "24\n", "19\n", "29\n", "14\n", "29\n", "3\n", "3\n", "6\n", "3\n", "2\n", "4\n", "3\n", "3\n", "2\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "2\n", "3\n", "3\n", "2\n", "3\n", "3\n", "50\n", "45\n", "60\n", "35\n", "30\n", "249\n", "5\n", "4\n", "10\n", "10\n", "20\n", "20\n", "25\n", "10\n", "20\n", "30\n", "30\n", "20\n", "10\n", "30\n", "30\n", "30\n", "30\n", "19\n", "19\n", "19\n", "29\n", "29\n", "29\n", "39\n", "34\n", "30\n", "20\n", "20\n", "20\n", "20\n", "20\n", "20\n", "20\n", "9\n", "9\n", "9\n", "9\n", "4\n", "4\n", "4\n", "4\n", "262\n", "12\n", "115\n", "75\n", "19\n", "39\n", "19\n", "39\n", "3\n", "15\n", "15\n", "15\n", "14\n", "119\n", "119\n", "139\n", "69\n", "8\n", "3\n", "9\n", "24\n", "5\n", "29\n", "29\n", "44\n", "3\n", "4\n", "4\n", "2\n", "2\n", "4\n", "2\n", "2\n", "14\n", "7\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "14\n", "3\n", "3\n", "4\n", "17\n", "4\n", "3\n", "2\n", "2\n", "2\n", "9\n", "2\n", "9\n", "10\n", "6\n", "4\n", "3\n", "1\n", "2\n", "2\n", "4\n", "3\n", "4\n", "3\n", "2\n", "11\n", "2\n", "4\n", "2\n", "2\n", "2\n", "2\n", "2\n", "4\n", "2\n", "2\n", "4\n", "3\n", "3\n", "2\n", "3\n", "2\n", "2\n", "4\n", "2\n", "2\n", "4\n", "2\n", "2\n", "4\n", "4\n", "7\n", "4\n", "1\n", "7\n", "7\n", "7\n", "2\n", "5\n", "3\n", "7\n", "2\n", "6\n", "6\n", "4\n", "4\n", "2\n", "3\n", "1\n", "6\n", "3\n", "3\n", "3\n", "1\n", "2\n", "3\n", "3\n", "2\n", "6\n", "10\n", "2\n", "2\n", "5\n", "5\n", "10\n", "3\n", "3\n", "3\n", "3\n", "6\n", "13\n", "3\n", "4\n", "4\n", "4\n", "3\n", "3\n", "4\n", "4\n", "2\n", "4\n", "1\n", "5\n", "6\n", "11\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "12\n", "4\n", "2\n", "10\n", "8\n", "6\n", "8\n", "3\n", "6\n", "6\n", "5\n", "10\n", "10\n", "3\n", "4\n", "2\n", "3\n", "2\n", "1\n", "1\n", "3\n", "4\n", "3\n", "7\n", "8\n", "6\n", "3\n", "1\n", "6\n", "2\n", "2\n", "2\n", "29\n", "4\n", "3\n", "4\n", "2\n", "2\n", "3\n", "19\n", "2\n", "8\n", "7\n", "4\n", "2\n", "2\n", "6\n", "4\n", "6\n", "2\n", "1\n", "2\n", "2\n", "2\n", "7\n", "3\n", "2\n", "2\n", "4\n", "2\n", "2\n", "2\n", "14\n", "4\n", "12\n", "2\n", "2\n", "1\n", "7\n", "2\n", "7\n", "29\n", "7\n", "3\n", "9\n", "12\n", "3\n", "9\n", "4\n", "8\n", "6\n", "5\n", "3\n", "4\n", "6\n", "7\n", "13\n", "4\n", "14\n", "7\n", "12\n", "3\n", "3\n", "7\n", "34\n", "9\n", "3\n", "3\n", "3\n", "5\n", "2\n", "2\n", "7\n", "14\n", "5\n", "9\n", "3\n", "6\n", "6\n", "1\n", "3\n", "3\n", "3\n", "3\n", "7\n", "5\n", "3\n", "2\n", "2\n", "29\n", "4\n", "5\n", "4\n", "5\n", "14\n", "5\n", "4\n", "5\n", "6\n", "1\n", "7\n", "9\n", "24\n", "2\n", "6\n", "7\n", "2\n", "2\n", "7\n", "7\n", "7\n", "14\n", "7\n", "2\n", "2\n", "3\n", "2\n", "1\n", "2\n", "2\n", "2\n", "5\n", "5\n", "5\n", "4\n", "4\n", "3\n", "6\n", "2\n", "2\n", "2\n", "9\n", "9\n", "2\n", "2\n", "2\n", "9\n", "11\n", "11\n", "2\n", "4\n", "11\n", "14\n", "3\n", "3\n", "9\n", "13\n", "2\n", "6\n", "2\n", "2\n", "2\n", "13\n", "4\n", "4\n", "4\n", "3\n", "4\n", "2\n", "4\n", "2\n", "4\n", "8\n", "4\n", "136\n", "5\n", "2\n", "2\n", "6\n", "2\n", "3\n", "13\n", "14\n", "5\n", "5\n", "2\n", "4\n", "7\n", "2\n", "13\n", "10\n", "13\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "4\n", "2\n", "1\n", "1\n", "2\n", "3\n", "2\n", "9\n", "4\n", "1\n", "1\n", "3\n", "5\n", "9\n", "9\n", "2\n", "11\n", "4\n", "12\n", "14\n", "9\n", "11\n", "8\n", "2\n", "2\n", "16\n", "7\n", "4\n", "2\n", "9\n", "13\n", "14\n", "14\n", "4\n", "16\n", "14\n", "19\n", "19\n", "6\n", "17\n", "7\n", "2\n", "9\n", "8\n", "2\n", "2\n", "2\n", "8\n", "9\n", "8\n", "9\n", "9\n", "3\n", "2\n", "17\n", "24\n", "2\n", "8\n", "2\n", "3\n", "9\n", "8\n", "8\n", "1\n", "17\n", "19\n", "8\n", "2\n", "8\n", "2\n", "2\n", "2\n", "8\n", "4\n", "13\n", "4\n", "14\n", "6\n", "2\n", "6\n", "14\n", "2\n", "14\n", "49\n", "6\n", "1\n", "16\n", "16\n", "16\n", "6\n", "6\n", "2\n", "2\n", "2\n", "7\n", "5\n", "14\n", "5\n", "5\n", "5\n", "2\n", "2\n", "11\n", "2\n", "9\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "8\n", "8\n", "8\n", "11\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "14\n", "14\n", "2\n", "2\n", "2\n", "9\n", "2\n", "2\n", "2\n", "9\n", "9\n", "9\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "9\n", "9\n", "1\n", "2\n", "2\n", "3\n", "7\n", "5\n", "9\n", "29\n", "5\n", "9\n", "2\n", "2\n", "1\n", "2\n", "2\n", "2\n", "9\n", "2\n", "2\n", "2\n", "9\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "9\n", "9\n", "2\n", "5\n", "2\n", "2\n", "2\n", "9\n", "2\n", "2\n", "9\n", "9\n", "9\n", "3\n", "3\n", "1\n", "5\n", "1\n", "2\n", "2\n", "9\n", "14\n", "2\n", "2\n", "2\n", "9\n", "2\n", "2\n", "5\n", "1\n", "6\n", "1\n", "14\n", "9\n", "7\n", "1\n", "24\n", "39\n", "2\n", "2\n", "2\n", "4\n", "2\n", "2\n", "2\n", "9\n", "7\n", "3\n", "14\n", "9\n", "2\n", "2\n", "9\n", "9\n", "9\n", "3\n", "3\n", "9\n", "9\n", "4\n", "8\n", "6\n", "4\n", "12\n", "6\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "2\n", "3\n", "6\n", "8\n", "3\n", "3\n", "4\n", "3\n", "3\n", "2\n", "3\n", "8\n", "4\n", "6\n", "8\n", "12\n", "12\n", "19\n", "19\n", "6\n", "6\n", "6\n", "3\n", "3\n", "2\n", "3\n", "2\n", "6\n", "14\n", "10\n", "19\n", "5\n", "4\n", "3\n", "5\n", "3\n", "3\n", "4\n", "4\n", "4\n", "6\n", "3\n", "3\n", "3\n", "3\n", "3\n", "10\n", "6\n", "2\n", "8\n", "4\n", "3\n", "4\n", "12\n", "12\n", "4\n", "4\n", "4\n", "4\n", "5\n", "4\n", "4\n", "3\n", "4\n", "12\n", "3\n", "4\n", "4\n", "4\n", "4\n", "7\n", "12\n", "6\n", "6\n", "7\n", "7\n", "7\n", "10\n", "6\n", "4\n", "10\n", "20\n", "20\n", "3\n", "20\n", "6\n", "20\n", "7\n", "3\n", "6\n", "4\n", "3\n", "6\n", "4\n", "7\n", "10\n", "7\n", "12\n", "3\n", "3\n", "3\n", "3\n", "3\n", "6\n", "7\n", "4\n", "20\n", "20\n", "4\n", "3\n", "3\n", "4\n", "4\n", "3\n", "7\n", "15\n", "3\n", "3\n", "4\n", "3\n", "4\n", "3\n", "8\n", "8\n", "21\n", "8\n", "8\n", "4\n", "4\n", "12\n", "6\n", "10\n", "21\n", "21\n", "4\n", "4\n", "3\n", "3\n", "4\n", "3\n", "8\n", "3\n", "3\n", "6\n", "10\n", "3\n", "3\n", "3\n", "3\n", "25\n", "10\n", "21\n", "4\n", "4\n", "3\n", "3\n", "3\n", "13\n", "6\n", "9\n", "8\n", "3\n", "6\n", "11\n", "11\n", "21\n", "21\n", "4\n", "3\n", "3\n", "21\n", "6\n", "8\n", "12\n", "8\n", "3\n", "3\n", "6\n", "6\n", "4\n", "3\n", "4\n", "3\n", "7\n", "13\n", "8\n", "8\n", "8\n", "8\n", "6\n", "14\n", "3\n", "14\n", "13\n", "4\n", "3\n", "4\n", "3\n", "4\n", "4\n", "4\n", "3\n", "3\n", "3\n", "4\n", "3\n", "13\n", "109\n", "154\n", "4\n", "3\n", "3\n", "6\n", "8\n", "17\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "4\n", "8\n", "9\n", "8\n", "4\n", "9\n", "3\n", "8\n", "21\n", "8\n", "3\n", "3\n", "3\n", "4\n", "4\n", "4\n", "3\n", "4\n", "8\n", "19\n", "4\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "3\n", "3\n", "8\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "8\n", "19\n", "3\n", "3\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "25\n", "8\n", "8\n", "8\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "8\n", "8\n", "8\n", "21\n", "16\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "1\n", "1\n", "19\n", "9\n", "20\n", "9\n", "9\n", "9\n", "9\n", "14\n", "24\n", "24\n", "24\n", "14\n", "14\n", "14\n", "24\n", "24\n", "15\n", "14\n", "14\n", "7\n", "34\n", "19\n", "39\n", "39\n", "39\n", "39\n", "29\n", "39\n", "29\n", "19\n", "14\n", "39\n", "29\n", "44\n", "44\n", "24\n", "29\n", "44\n", "39\n", "44\n", "24\n", "14\n", "24\n", "24\n", "24\n", "24\n", "11\n", "39\n", "39\n", "39\n", "29\n", "29\n", "29\n", "19\n", "24\n", "39\n", "14\n", "29\n", "29\n", "44\n", "29\n", "29\n", "39\n", "44\n", "15\n", "15\n", "15\n", "20\n", "20\n", "25\n", "25\n", "25\n", "25\n", "24\n", "2\n", "5\n", "4\n", "3\n", "13\n", "4\n", "2\n", "2\n", "7\n", "3\n", "5\n", "6\n", "4\n", "3\n", "9\n", "24\n", "14\n", "14\n", "29\n", "24\n", "20\n", "20\n", "20\n", "24\n", "24\n", "44\n", "44\n", "24\n", "39\n", "29\n", "39\n", "14\n", "39\n", "24\n", "20\n", "7\n", "19\n", "34\n", "29\n", "24\n", "39\n", "39\n", "29\n", "39\n", "19\n", "44\n", "17\n", "13\n", "13\n", "17\n", "14\n", "9\n", "9\n", "39\n", "6\n", "6\n", "9\n", "9\n", "29\n", "29\n", "29\n", "29\n", "29\n", "24\n", "29\n", "19\n", "29\n", "19\n", "19\n", "24\n", "15\n", "3\n", "24\n", "41\n", "34\n", "29\n", "39\n", "34\n", "39\n", "29\n", "24\n", "34\n", "14\n", "44\n", "19\n", "14\n", "9\n", "19\n", "19\n", "24\n", "24\n", "19\n", "19\n", "19\n", "29\n", "29\n", "29\n", "24\n", "29\n", "14\n", "6\n", "9\n", "12\n", "7\n", "24\n", "24\n", "19\n", "19\n", "19\n", "19\n", "14\n", "14\n", "18\n", "21\n", "24\n", "25\n", "24\n", "31\n", "29\n", "19\n", "29\n", "19\n", "29\n", "39\n", "39\n", "39\n", "7\n", "7\n", "19\n", "19\n", "6\n", "9\n", "9\n", "9\n", "9\n", "19\n", "24\n", "17\n", "17\n", "20\n", "20\n", "19\n", "24\n", "24\n", "29\n", "59\n", "49\n", "29\n", "49\n", "49\n", "59\n", "14\n", "39\n", "14\n", "39\n", "11\n", "19\n", "17\n", "11\n", "17\n", "17\n", "11\n", "11\n", "24\n", "24\n", "24\n", "11\n", "14\n", "99\n", "19\n", "174\n", "29\n", "99\n", "14\n", "19\n", "94\n", "29\n", "19\n", "24\n", "9\n", "29\n", "49\n", "59\n", "29\n", "49\n", "49\n", "59\n", "24\n", "29\n", "29\n", "29\n", "39\n", "12\n", "12\n", "12\n", "9\n", "9\n", "4\n", "4\n", "7\n", "11\n", "13\n", "13\n", "13\n", "13\n", "14\n", "29\n", "29\n", "49\n", "59\n", "59\n", "15\n", "24\n", "24\n", "19\n", "14\n", "29\n", "24\n", "24\n", "24\n", "24\n", "24\n", "24\n", "24\n", "24\n", "24\n", "24\n", "24\n", "29\n", "29\n", "9\n", "9\n", "9\n", "9\n", "9\n", "29\n", "49\n", "49\n", "49\n", "19\n", "14\n", "18\n", "19\n", "15\n", "34\n", "24\n", "24\n", "9\n", "9\n", "19\n", "22\n", "17\n", "12\n", "17\n", "4\n", "19\n", "39\n", "39\n", "39\n", "19\n", "12\n", "5\n", "12\n", "9\n", "8\n", "5\n", "29\n", "24\n", "29\n", "24\n", "29\n", "29\n", "24\n", "24\n", "29\n", "24\n", "59\n", "49\n", "59\n", "69\n", "59\n", "49\n", "19\n", "39\n", "24\n", "19\n", "12\n", "155\n", "24\n", "59\n", "59\n", "59\n", "9\n", "18\n", "17\n", "14\n", "29\n", "24\n", "24\n", "24\n", "29\n", "29\n", "24\n", "29\n", "24\n", "29\n", "29\n", "5\n", "7\n", "2\n", "7\n", "4\n", "13\n", "12\n", "13\n", "12\n", "12\n", "69\n", "69\n", "24\n", "20\n", "13\n", "13\n", "19\n", "17\n", "14\n", "14\n", "49\n", "59\n", "59\n", "29\n", "24\n", "24\n", "24\n", "24\n", "29\n", "59\n", "31\n", "9\n", "9\n", "9\n", "12\n", "12\n", "12\n", "9\n", "44\n", "29\n", "14\n", "14\n", "35\n", "12\n", "12\n", "9\n", "9\n", "9\n", "9\n", "12\n", "9\n", "9\n", "9\n", "59\n", "59\n", "59\n", "19\n", "24\n", "24\n", "19\n", "14\n", "24\n", "49\n", "16\n", "49\n", "34\n", "24\n", "16\n", "49\n", "8\n", "8\n", "39\n", "26\n", "2\n", "2\n", "6\n", "1\n", "6\n", "24\n", "24\n", "24\n", "19\n", "24\n", "19\n", "5\n", "5\n", "4\n", "1\n", "19\n", "24\n", "26\n", "13\n", "13\n", "24\n", "24\n", "19\n", "19\n", "24\n", "24\n", "19\n", "19\n", "19\n", "13\n", "13\n", "5\n", "5\n", "5\n", "5\n", "29\n", "3\n", "9\n", "9\n", "9\n", "24\n", "24\n", "19\n", "4\n", "14\n", "29\n", "49\n", "18\n", "5\n", "5\n", "8\n", "9\n", "24\n", "19\n", "8\n", "5\n", "5\n", "15\n", "5\n", "5\n", "19\n", "19\n", "24\n", "15\n", "59\n", "59\n", "39\n", "26\n", "15\n", "5\n", "11\n", "11\n", "11\n", "6\n", "2\n", "6\n", "13\n", "39\n", "39\n", "39\n", "6\n", "6\n", "6\n", "44\n", "9\n", "17\n", "5\n", "5\n", "19\n", "34\n", "34\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "14\n", "19\n", "39\n", "39\n", "15\n", "7\n", "15\n", "14\n", "11\n", "14\n", "19\n", "8\n", "9\n", "15\n", "10\n", "8\n", "8\n", "17\n", "24\n", "8\n", "19\n", "14\n", "14\n", "14\n", "8\n", "6\n", "5\n", "5\n", "12\n", "11\n", "4\n", "9\n", "14\n", "13\n", "59\n", "24\n", "39\n", "29\n", "9\n", "13\n", "6\n", "6\n", "6\n", "10\n", "6\n", "19\n", "44\n", "19\n", "19\n", "19\n", "39\n", "39\n", "58\n", "32\n", "58\n", "28\n", "58\n", "52\n", "52\n", "12\n", "12\n", "17\n", "12\n", "11\n", "11\n", "11\n", "13\n", "56\n", "29\n", "19\n", "26\n", "24\n", "24\n", "33\n", "34\n", "26\n", "13\n", "8\n", "9\n", "11\n", "14\n", "14\n", "39\n", "9\n", "24\n", "24\n", "10\n", "15\n", "24\n", "21\n", "7\n", "7\n", "15\n", "59\n", "59\n", "54\n", "54\n", "104\n", "54\n", "69\n", "54\n", "69\n", "104\n", "24\n", "24\n", "8\n", "14\n", "12\n", "19\n", "19\n", "19\n", "19\n", "19\n", "9\n", "9\n", "9\n", "9\n", "9\n", "11\n", "8\n", "8\n", "8\n", "17\n", "17\n", "13\n", "14\n", "14\n", "14\n", "7\n", "15\n", "13\n", "12\n", "13\n", "69\n", "69\n", "69\n", "69\n", "24\n", "49\n", "24\n", "24\n", "24\n", "26\n", "31\n", "32\n", "32\n", "30\n", "30\n", "30\n", "30\n", "8\n", "8\n", "20\n", "39\n", "39\n", "26\n", "26\n", "24\n", "34\n", "13\n", "44\n", "19\n", "27\n", "19\n", "19\n", "27\n", "19\n", "19\n", "8\n", "13\n", "13\n", "13\n", "39\n", "42\n", "42\n", "42\n", "59\n", "59\n", "59\n", "3\n", "14\n", "16\n", "16\n", "15\n", "21\n", "21\n", "21\n", "21\n", "10\n", "29\n", "35\n", "21\n", "21\n", "10\n", "14\n", "26\n", "7\n", "7\n", "7\n", "7\n", "10\n", "12\n", "12\n", "16\n", "12\n", "12\n", "12\n", "86\n", "86\n", "86\n", "99\n", "27\n", "27\n", "27\n", "27\n", "27\n", "13\n", "24\n", "19\n", "8\n", "21\n", "21\n", "10\n", "10\n", "9\n", "9\n", "9\n", "8\n", "8\n", "8\n", "13\n", "8\n", "8\n", "8\n", "5\n", "8\n", "8\n", "21\n", "8\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "16\n", "9\n", "8\n", "8\n", "13\n", "11\n", "14\n", "19\n", "24\n", "25\n", "8\n", "25\n", "14\n", "24\n", "45\n", "45\n", "35\n", "17\n", "47\n", "33\n", "33\n", "17\n", "38\n", "40\n", "22\n", "14\n", "14\n", "60\n", "17\n", "20\n", "20\n", "20\n", "20\n", "20\n", "14\n", "16\n", "6\n", "6\n", "14\n", "15\n", "17\n", "9\n", "29\n", "25\n", "16\n", "16\n", "13\n", "8\n", "8\n", "13\n", "13\n", "22\n", "15\n", "16\n", "24\n", "14\n", "14\n", "14\n", "14\n", "15\n", "14\n", "13\n", "31\n", "19\n", "19\n", "19\n", "42\n", "42\n", "42\n", "21\n", "29\n", "29\n", "21\n", "21\n", "32\n", "27\n", "24\n", "22\n", "32\n", "39\n", "49\n", "32\n", "16\n", "16\n", "49\n", "19\n", "14\n", "46\n", "69\n", "69\n", "79\n", "84\n", "94\n", "129\n", "42\n", "42\n", "79\n", "69\n", "34\n", "34\n", "54\n", "54\n", "42\n", "42\n", "42\n", "42\n", "27\n", "27\n", "24\n", "24\n", "14\n", "13\n", "21\n", "26\n", "12\n", "12\n", "12\n", "12\n", "19\n", "13\n", "12\n", "13\n", "17\n", "12\n", "12\n", "12\n", "12\n", "13\n", "13\n", "13\n", "13\n", "8\n", "8\n", "8\n", "8\n", "8\n", "14\n", "7\n", "8\n", "8\n", "21\n", "21\n", "12\n", "12\n", "39\n", "49\n", "47\n", "18\n", "4\n", "4\n", "5\n", "5\n", "39\n", "22\n", "8\n", "59\n", "14\n", "40\n", "34\n", "13\n", "17\n", "16\n", "24\n", "24\n", "14\n", "24\n", "109\n", "39\n", "39\n", "13\n", "21\n", "12\n", "11\n", "15\n", "14\n", "14\n", "21\n", "21\n", "12\n", "12\n", "39\n", "24\n", "17\n", "19\n", "89\n", "79\n", "59\n", "17\n", "29\n", "42\n", "42\n", "34\n", "9\n", "49\n", "17\n", "17\n", "39\n", "22\n", "24\n", "49\n", "19\n", "24\n", "44\n", "49\n", "29\n", "97\n", "117\n", "59\n", "79\n", "54\n", "54\n", "59\n", "79\n", "84\n", "114\n", "24\n", "24\n", "13\n", "8\n", "8\n", "8\n", "29\n", "149\n", "59\n", "79\n", "79\n", "89\n", "89\n", "22\n", "18\n", "59\n", "59\n", "59\n", "36\n", "36\n", "36\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "24\n", "24\n", "24\n", "12\n", "8\n", "12\n", "9\n", "284\n", "54\n", "4\n", "8\n", "16\n", "16\n", "24\n", "24\n", "39\n", "79\n", "2\n", "8\n", "24\n", "8\n", "19\n", "8\n", "8\n", "8\n", "11\n", "17\n", "24\n", "44\n", "59\n", "5\n", "17\n", "8\n", "10\n", "19\n", "39\n", "5\n", "8\n", "17\n", "17\n", "19\n", "19\n", "39\n", "79\n", "34\n", "14\n", "29\n", "29\n", "39\n", "59\n", "79\n", "102\n", "10\n", "29\n", "49\n", "69\n", "89\n", "132\n", "4\n", "3\n", "3\n", "4\n", "24\n", "3\n", "3\n", "13\n", "13\n", "409\n", "19\n", "29\n", "49\n", "89\n", "12\n", "19\n", "44\n", "59\n", "89\n", "79\n", "34\n", "34\n", "44\n", "24\n", "19\n", "17\n", "24\n", "69\n", "89\n", "389\n", "34\n", "89\n", "24\n", "24\n", "24\n", "27\n", "24\n", "17\n", "34\n", "79\n", "129\n", "24\n", "259\n", "59\n", "114\n", "34\n", "24\n", "24\n", "24\n", "44\n", "59\n", "17\n", "44\n", "79\n", "89\n", "29\n", "429\n", "44\n", "79\n", "114\n", "29\n", "29\n", "29\n", "29\n", "44\n", "62\n", "74\n", "62\n", "369\n", "29\n", "149\n", "39\n", "24\n", "84\n", "114\n", "12\n", "17\n", "31\n", "54\n", "64\n", "89\n", "39\n", "34\n", "24\n", "59\n", "17\n", "169\n", "219\n", "29\n", "79\n", "124\n", "19\n", "17\n", "44\n", "169\n", "44\n", "44\n", "69\n", "17\n", "54\n", "89\n", "79\n", "89\n", "129\n", "229\n", "29\n", "349\n", "59\n", "17\n", "12\n", "24\n", "89\n", "54\n", "139\n", "89\n", "69\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "17\n", "17\n", "21\n", "25\n", "6\n", "6\n", "9\n", "14\n", "6\n", "6\n", "9\n", "6\n", "9\n", "9\n", "9\n", "6\n", "6\n", "24\n", "24\n", "6\n", "9\n", "9\n", "14\n", "9\n", "9\n", "9\n", "9\n", "19\n", "34\n", "14\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "19\n", "9\n", "4\n", "14\n", "9\n", "7\n", "7\n", "7\n", "9\n", "7\n", "9\n", "9\n", "17\n", "9\n", "9\n", "7\n", "7\n", "24\n", "8\n", "8\n", "12\n", "12\n", "12\n", "12\n", "17\n", "19\n", "8\n", "8\n", "12\n", "12\n", "12\n", "24\n", "34\n", "4\n", "3\n", "12\n", "12\n", "17\n", "24\n", "24\n", "34\n", "44\n", "54\n", "69\n", "109\n", "17\n", "17\n", "24\n", "24\n", "44\n", "44\n", "17\n", "24\n", "34\n", "59\n", "89\n", "2\n", "3\n", "3\n", "9\n", "9\n", "12\n", "19\n", "29\n", "44\n", "1\n", "1\n", "2\n", "2\n", "1\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "4\n", "39\n", "259\n", "209\n", "79\n", "474\n", "89\n", "169\n", "139\n", "54\n", "44\n", "79\n", "79\n", "169\n", "289\n", "89\n", "114\n", "89\n", "159\n", "89\n", "589\n", "149\n", "199\n", "89\n", "344\n", "169\n", "159\n", "344\n", "149\n", "344\n", "209\n", "554\n", "89\n", "44\n", "44\n", "199\n", "54\n", "44\n", "94\n", "429\n", "209\n", "169\n", "189\n", "129\n", "229\n", "89\n", "259\n", "149\n", "54\n", "44\n", "69\n", "44\n", "199\n", "399\n", "89\n", "229\n", "159\n", "79\n", "89\n", "89\n", "219\n", "199\n", "109\n", "179\n", "69\n", "229\n", "89\n", "349\n", "139\n", "159\n", "89\n", "199\n", "109\n", "69\n", "49\n", "299\n", "399\n", "109\n", "24\n", "24\n", "44\n", "59\n", "94\n", "89\n", "249\n", "229\n", "99\n", "64\n", "79\n", "119\n", "199\n", "129\n", "99\n", "30\n", "10\n", "79\n", "44\n", "34\n", "34\n", "24\n", "44\n", "29\n", "15\n", "39\n", "49\n", "39\n", "49\n", "59\n", "54\n", "74\n", "44\n", "109\n", "139\n", "159\n", "19\n", "69\n", "29\n", "59\n", "54\n", "79\n", "214\n", "59\n", "54\n", "59\n", "179\n", "344\n", "104\n", "159\n", "89\n", "214\n", "69\n", "104\n", "259\n", "69\n", "199\n", "149\n", "89\n", "259\n", "104\n", "214\n", "159\n", "89\n", "44\n", "199\n", "69\n", "124\n", "259\n", "69\n", "79\n", "99\n", "314\n", "89\n", "129\n", "169\n", "89\n", "289\n", "189\n", "69\n", "289\n", "59\n", "149\n", "249\n", "199\n", "89\n", "54\n", "269\n", "44\n", "99\n", "139\n", "69\n", "89\n", "104\n", "69\n", "9\n", "18\n", "29\n", "47\n", "74\n", "8\n", "17\n", "26\n", "46\n", "8\n", "18\n", "31\n", "73\n", "41\n", "26\n", "41\n", "29\n", "34\n", "129\n", "49\n", "1\n", "1\n", "1\n", "4\n", "7\n", "9\n", "9\n", "14\n", "24\n", "39\n", "2\n", "2\n", "5\n", "5\n", "7\n", "9\n", "14\n", "14\n", "24\n", "39\n", "54\n", "1\n", "1\n", "1\n", "2\n", "5\n", "9\n", "14\n", "24\n", "54\n", "9\n", "14\n", "11\n", "9\n", "14\n", "14\n", "17\n", "15\n", "29\n", "24\n", "24\n", "24\n", "34\n", "9\n", "9\n", "15\n", "15\n", "19\n", "19\n", "24\n", "29\n", "8\n", "11\n", "12\n", "12\n", "19\n", "24\n", "8\n", "17\n", "24\n", "19\n", "7\n", "7\n", "7\n", "7\n", "24\n", "14\n", "19\n", "12\n", "12\n", "15\n", "17\n", "15\n", "19\n", "29\n", "44\n", "17\n", "24\n", "8\n", "17\n", "8\n", "17\n", "24\n", "19\n", "17\n", "19\n", "24\n", "44\n", "19\n", "24\n", "29\n", "12\n", "29\n", "44\n", "12\n", "3\n", "79\n", "19\n", "29\n", "49\n", "59\n", "99\n", "39\n", "19\n", "29\n", "39\n", "59\n", "119\n", "39\n", "39\n", "59\n", "19\n", "59\n", "219\n", "54\n", "79\n", "17\n", "49\n", "89\n", "24\n", "34\n", "24\n", "44\n", "69\n", "17\n", "44\n", "17\n", "29\n", "44\n", "89\n", "119\n", "44\n", "44\n", "89\n", "31\n", "19\n", "46\n", "74\n", "114\n", "19\n", "34\n", "34\n", "59\n", "79\n", "19\n", "219\n", "39\n", "19\n", "29\n", "89\n", "54\n", "44\n", "139\n", "19\n", "24\n", "39\n", "59\n", "89\n", "179\n", "89\n", "3\n", "3\n", "3\n", "4\n", "109\n", "7\n", "12\n", "17\n", "29\n", "29\n", "39\n", "69\n", "19\n", "49\n", "59\n", "99\n", "34\n", "39\n", "39\n", "69\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "14\n", "14\n", "19\n", "7\n", "7\n", "7\n", "7\n", "7\n", "12\n", "17\n", "17\n", "24\n", "34\n", "34\n", "49\n", "34\n", "9\n", "9\n", "9\n", "9\n", "14\n", "17\n", "24\n", "34\n", "39\n", "69\n", "89\n", "59\n", "9\n", "9\n", "9\n", "9\n", "14\n", "10\n", "10\n", "10\n", "10\n", "10\n", "10\n", "12\n", "12\n", "12\n", "12\n", "12\n", "17\n", "17\n", "12\n", "17\n", "29\n", "39\n", "59\n", "34\n", "49\n", "69\n", "34\n", "7\n", "7\n", "7\n", "7\n", "4\n", "10\n", "6\n", "6\n", "0\n", "0\n", "7\n", "1\n", "1\n", "1\n", "0\n", "1\n", "1\n", "2\n", "1\n", "2\n", "2\n", "4\n", "2\n", "3\n", "8\n", "8\n", "3\n", "0\n", "0\n", "1\n", "1\n", "1\n", "1\n", "1\n", "5\n", "1\n", "1\n", "1\n", "1\n", "15\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "14\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "1\n", "1\n", "1\n", "5\n", "2\n", "29\n", "29\n", "9\n", "9\n", "10\n", "19\n", "39\n", "20\n", "9\n", "5\n", "9\n", "24\n", "24\n", "40\n", "30\n", "11\n", "14\n", "14\n", "14\n", "12\n", "8\n", "13\n", "19\n", "25\n", "34\n", "14\n", "29\n", "10\n", "10\n", "10\n", "11\n", "19\n", "19\n", "49\n", "69\n", "29\n", "8\n", "17\n", "24\n", "44\n", "8\n", "29\n", "44\n", "8\n", "17\n", "49\n", "17\n", "24\n", "49\n", "8\n", "29\n", "44\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "3\n", "19\n", "12\n", "13\n", "13\n", "13\n", "29\n", "19\n", "39\n", "19\n", "34\n", "11\n", "11\n", "19\n", "44\n", "19\n", "49\n", "19\n", "39\n", "69\n", "44\n", "11\n", "19\n", "29\n", "69\n", "11\n", "39\n", "59\n", "19\n", "49\n", "279\n", "29\n", "29\n", "49\n", "19\n", "74\n", "99\n", "19\n", "39\n", "29\n", "8\n", "8\n", "8\n", "29\n", "8\n", "8\n", "8\n", "19\n", "29\n", "54\n", "19\n", "29\n", "44\n", "19\n", "39\n", "49\n", "54\n", "8\n", "8\n", "8\n", "19\n", "29\n", "11\n", "19\n", "34\n", "29\n", "119\n", "69\n", "89\n", "19\n", "19\n", "34\n", "44\n", "19\n", "29\n", "54\n", "74\n", "24\n", "24\n", "34\n", "54\n", "89\n", "8\n", "24\n", "8\n", "8\n", "19\n", "34\n", "54\n", "8\n", "8\n", "19\n", "19\n", "29\n", "29\n", "74\n", "54\n", "109\n", "17\n", "59\n", "89\n", "24\n", "24\n", "34\n", "54\n", "79\n", "24\n", "8\n", "8\n", "17\n", "8\n", "8\n", "17\n", "39\n", "69\n", "24\n", "34\n", "299\n", "17\n", "34\n", "17\n", "59\n", "8\n", "34\n", "79\n", "69\n", "139\n", "29\n", "17\n", "24\n", "17\n", "54\n", "24\n", "24\n", "8\n", "8\n", "8\n", "24\n", "39\n", "17\n", "54\n", "99\n", "474\n", "44\n", "8\n", "29\n", "79\n", "299\n", "79\n", "44\n", "214\n", "17\n", "59\n", "24\n", "24\n", "24\n", "29\n", "84\n", "34\n", "12\n", "12\n", "12\n", "19\n", "29\n", "44\n", "89\n", "46\n", "64\n", "69\n", "8\n", "29\n", "89\n", "29\n", "31\n", "31\n", "12\n", "94\n", "179\n", "20\n", "94\n", "29\n", "429\n", "8\n", "12\n", "12\n", "31\n", "24\n", "31\n", "74\n", "54\n", "31\n", "59\n", "159\n", "12\n", "19\n", "24\n", "44\n", "89\n", "49\n", "29\n", "289\n", "69\n", "29\n", "39\n", "29\n", "12\n", "12\n", "24\n", "24\n", "44\n", "24\n", "89\n", "89\n", "49\n", "54\n", "44\n", "29\n", "17\n", "44\n", "44\n", "89\n", "119\n", "109\n", "54\n", "54\n", "59\n", "19\n", "8\n", "17\n", "12\n", "24\n", "54\n", "99\n", "44\n", "119\n", "89\n", "44\n", "79\n", "329\n", "39\n", "4\n", "4\n", "39\n", "39\n", "29\n", "79\n", "79\n", "49\n", "79\n", "9\n", "16\n", "19\n", "39\n", "24\n", "49\n", "50\n", "25\n", "159\n", "20\n", "179\n", "8\n", "8\n", "234\n", "110\n", "25\n", "200\n", "50\n", "100\n", "50\n", "150\n", "50\n", "19\n", "200\n", "100\n", "100\n", "24\n", "15\n", "11\n", "19\n", "31\n", "13\n", "139\n", "21\n", "15\n", "15\n", "22\n", "28\n", "28\n", "24\n", "10\n", "49\n", "107\n", "299\n", "17\n", "199\n", "25\n", "20\n", "29\n", "25\n", "25\n", "15\n", "22\n", "25\n", "24\n", "314\n", "49\n", "39\n", "49\n", "39\n", "39\n", "19\n", "36\n", "36\n", "36\n", "39\n", "49\n", "39\n", "39\n", "24\n", "29\n", "29\n", "29\n", "19\n", "24\n", "39\n", "49\n", "59\n", "89\n", "19\n", "39\n", "59\n", "74\n", "19\n", "54\n", "69\n", "29\n", "99\n", "179\n", "19\n", "29\n", "39\n", "49\n", "59\n", "69\n", "59\n", "119\n", "249\n", "12\n", "12\n", "19\n", "19\n", "29\n", "39\n", "49\n", "19\n", "39\n", "79\n", "12\n", "12\n", "12\n", "19\n", "39\n", "19\n", "29\n", "79\n", "12\n", "12\n", "17\n", "29\n", "59\n", "69\n", "8\n", "39\n", "8\n", "17\n", "19\n", "19\n", "24\n", "54\n", "44\n", "17\n", "24\n", "54\n", "104\n", "34\n", "8\n", "17\n", "17\n", "19\n", "29\n", "59\n", "19\n", "29\n", "44\n", "89\n", "114\n", "24\n", "44\n", "8\n", "17\n", "19\n", "29\n", "39\n", "44\n", "59\n", "20\n", "31\n", "64\n", "94\n", "8\n", "17\n", "17\n", "20\n", "31\n", "49\n", "39\n", "12\n", "22\n", "29\n", "49\n", "54\n", "69\n", "79\n", "8\n", "12\n", "17\n", "24\n", "44\n", "34\n", "44\n", "59\n", "17\n", "24\n", "34\n", "49\n", "74\n", "89\n", "29\n", "17\n", "59\n", "8\n", "12\n", "17\n", "17\n", "24\n", "39\n", "54\n", "59\n", "3\n", "4\n", "4\n", "4\n", "3\n", "44\n", "44\n", "84\n", "10\n", "10\n", "1\n", "4\n", "4\n", "3\n", "0\n", "12\n", "10\n", "10\n", "29\n", "6\n", "15\n", "13\n", "54\n", "69\n", "10\n", "8\n", "34\n", "14\n", "13\n", "11\n", "14\n", "89\n", "54\n", "79\n", "79\n", "21\n", "12\n", "12\n", "64\n", "79\n", "79\n", "79\n", "34\n", "24\n", "12\n", "54\n", "54\n", "139\n", "129\n", "89\n", "19\n", "14\n", "24\n", "18\n", "76\n", "9\n", "9\n", "11\n", "9\n", "14\n", "7\n", "11\n", "11\n", "11\n", "11\n", "11\n", "9\n", "6\n", "9\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "36\n", "50\n", "39\n", "40\n", "49\n", "88\n", "80\n", "139\n", "79\n", "80\n", "110\n", "26\n", "11\n", "24\n", "39\n", "44\n", "54\n", "74\n", "89\n", "114\n", "149\n", "44\n", "54\n", "119\n", "17\n", "24\n", "34\n", "59\n", "89\n", "114\n", "149\n", "39\n", "44\n", "89\n", "29\n", "34\n", "44\n", "59\n", "69\n", "89\n", "119\n", "54\n", "89\n", "159\n", "17\n", "17\n", "59\n", "89\n", "119\n", "42\n", "46\n", "64\n", "169\n", "29\n", "39\n", "74\n", "159\n", "59\n", "74\n", "94\n", "124\n", "69\n", "54\n", "4\n", "8\n", "17\n", "24\n", "34\n", "39\n", "59\n", "79\n", "149\n", "3\n", "3\n", "7\n", "7\n", "17\n", "17\n", "24\n", "29\n", "39\n", "84\n", "7\n", "17\n", "29\n", "39\n", "59\n", "109\n", "19\n", "19\n", "39\n", "29\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "7\n", "14\n", "14\n", "24\n", "44\n", "84\n", "29\n", "29\n", "49\n", "59\n", "109\n", "19\n", "19\n", "12\n", "7\n", "7\n", "7\n", "7\n", "7\n", "2\n", "2\n", "19\n", "19\n", "29\n", "39\n", "49\n", "59\n", "10\n", "10\n", "10\n", "10\n", "89\n", "59\n", "34\n", "89\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "14\n", "7\n", "7\n", "12\n", "6\n", "13\n", "19\n", "26\n", "30\n", "49\n", "45\n", "91\n", "14\n", "30\n", "3\n", "19\n", "26\n", "35\n", "61\n", "5\n", "12\n", "19\n", "24\n", "29\n", "39\n", "59\n", "19\n", "29\n", "59\n", "89\n", "19\n", "34\n", "49\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "14\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "12\n", "7\n", "12\n", "3\n", "4\n", "3\n", "4\n", "4\n", "3\n", "4\n", "4\n", "3\n", "10\n", "11\n", "7\n", "17\n", "17\n", "24\n", "29\n", "59\n", "24\n", "39\n", "49\n", "17\n", "39\n", "44\n", "59\n", "84\n", "109\n", "7\n", "17\n", "17\n", "24\n", "24\n", "44\n", "74\n", "8\n", "14\n", "24\n", "24\n", "39\n", "59\n", "74\n", "9\n", "9\n", "9\n", "9\n", "9\n", "14\n", "24\n", "39\n", "34\n", "44\n", "59\n", "12\n", "12\n", "12\n", "12\n", "12\n", "17\n", "17\n", "34\n", "59\n", "89\n", "119\n", "44\n", "8\n", "8\n", "8\n", "8\n", "15\n", "15\n", "14\n", "17\n", "24\n", "34\n", "44\n", "77\n", "12\n", "17\n", "24\n", "39\n", "44\n", "64\n", "119\n", "89\n", "79\n", "8\n", "8\n", "8\n", "8\n", "17\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "9\n", "17\n", "17\n", "24\n", "49\n", "69\n", "24\n", "34\n", "89\n", "24\n", "29\n", "89\n", "17\n", "34\n", "39\n", "59\n", "39\n", "99\n", "7\n", "7\n", "7\n", "7\n", "7\n", "7\n", "17\n", "24\n", "24\n", "34\n", "39\n", "59\n", "179\n", "5\n", "7\n", "12\n", "17\n", "19\n", "44\n", "8\n", "17\n", "34\n", "24\n", "34\n", "124\n", "8\n", "17\n", "29\n", "24\n", "34\n", "44\n", "69\n", "24\n", "8\n", "8\n", "8\n", "24\n", "17\n", "44\n", "64\n", "74\n", "89\n", "8\n", "8\n", "8\n", "8\n", "8\n", "24\n", "34\n", "44\n", "59\n", "79\n", "17\n", "299\n", "24\n", "17\n", "34\n", "44\n", "59\n", "34\n", "17\n", "34\n", "44\n", "69\n", "99\n", "129\n", "8\n", "39\n", "17\n", "8\n", "24\n", "24\n", "34\n", "89\n", "59\n", "89\n", "17\n", "39\n", "24\n", "69\n", "59\n", "89\n", "129\n", "104\n", "44\n", "8\n", "8\n", "8\n", "8\n", "17\n", "29\n", "39\n", "8\n", "69\n", "89\n", "54\n", "8\n", "18\n", "18\n", "29\n", "42\n", "46\n", "74\n", "84\n", "94\n", "129\n", "26\n", "319\n", "17\n", "8\n", "8\n", "8\n", "12\n", "8\n", "17\n", "17\n", "24\n", "59\n", "12\n", "44\n", "59\n", "104\n", "219\n", "31\n", "8\n", "17\n", "44\n", "104\n", "79\n", "89\n", "129\n", "8\n", "8\n", "17\n", "8\n", "19\n", "17\n", "44\n", "34\n", "64\n", "44\n", "89\n", "89\n", "219\n", "8\n", "17\n", "17\n", "34\n", "39\n", "59\n", "79\n", "89\n", "109\n", "139\n", "179\n", "8\n", "8\n", "8\n", "17\n", "24\n", "39\n", "44\n", "69\n", "89\n", "89\n", "119\n", "269\n", "34\n", "69\n", "12\n", "10\n", "10\n", "19\n", "10\n", "10\n", "7\n", "7\n", "11\n", "7\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "14\n", "5\n", "42\n", "24\n", "44\n", "74\n", "119\n", "269\n", "24\n", "54\n", "59\n", "69\n", "89\n", "149\n", "59\n", "12\n", "19\n", "29\n", "34\n", "49\n", "79\n", "17\n", "44\n", "22\n", "3\n", "8\n", "14\n", "25\n", "40\n", "71\n", "9\n", "19\n", "26\n", "39\n", "84\n", "10\n", "19\n", "46\n", "71\n", "102\n", "2\n", "179\n", "9\n", "2\n", "22\n", "2\n", "6\n", "3\n", "3\n", "3\n", "4\n", "3\n", "4\n", "8\n", "17\n", "39\n", "59\n", "8\n", "4\n", "7\n", "4\n", "12\n", "22\n", "33\n", "6\n", "7\n", "26\n", "15\n", "12\n", "8\n", "9\n", "8\n", "12\n", "13\n", "21\n", "27\n", "29\n", "15\n", "17\n", "29\n", "39\n", "37\n", "50\n", "66\n", "54\n", "66\n", "85\n", "66\n", "53\n", "50\n", "73\n", "110\n", "126\n", "99\n", "99\n", "50\n", "70\n", "29\n", "15\n", "2\n", "2\n", "90\n", "45\n", "8\n", "17\n", "17\n", "29\n", "79\n", "10\n", "8\n", "54\n", "179\n", "579\n", "29\n", "9\n", "4\n", "5\n", "3\n", "42\n", "10\n", "5\n", "7\n", "5\n", "11\n", "7\n", "2\n", "19\n", "11\n", "11\n", "11\n", "20\n", "6\n", "17\n", "24\n", "34\n", "26\n", "34\n", "51\n", "3\n", "6\n", "8\n", "15\n", "21\n", "41\n", "14\n", "24\n", "59\n", "8\n", "69\n", "12\n", "14\n", "44\n", "19\n", "12\n", "69\n", "29\n", "29\n", "29\n", "209\n", "29\n", "24\n", "29\n", "29\n", "24\n", "20\n", "1\n", "7\n", "20\n", "13\n", "30\n", "20\n", "15\n", "30\n", "4\n", "15\n", "7\n", "4\n", "8\n", "10\n", "15\n", "20\n", "5\n", "9\n", "10\n", "10\n", "15\n", "10\n", "5\n", "18\n", "25\n", "8\n", "9\n", "14\n", "29\n", "39\n", "69\n", "0\n", "59\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "4\n", "0\n", "0\n", "0\n", "0\n", "0\n", "12\n", "0\n", "16\n", "19\n", "19\n", "19\n", "19\n", "9\n", "8\n", "21\n", "19\n", "5\n", "19\n", "74\n", "17\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "12\n", "39\n", "34\n", "69\n", "30\n", "29\n", "24\n", "25\n", "47\n", "0\n", "9\n", "14\n", "0\n", "59\n", "0\n", "14\n", "9\n", "4\n", "5\n", "12\n", "15\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "11\n", "6\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "19\n", "7\n", "15\n", "18\n", "29\n", "12\n", "25\n", "7\n", "7\n", "1\n", "3\n", "3\n", "3\n", "2\n", "3\n", "3\n", "3\n", "2\n", "2\n", "3\n", "2\n", "2\n", "3\n", "14\n", "2\n", "2\n", "7\n", "7\n", "14\n", "29\n", "39\n", "49\n", "2\n", "2\n", "2\n", "4\n", "4\n", "7\n", "9\n", "80\n", "80\n", "8\n", "2\n", "9\n", "9\n", "9\n", "9\n", "3\n", "3\n", "3\n", "3\n", "9\n", "9\n", "9\n", "9\n", "2\n", "2\n", "2\n", "2\n", "12\n", "29\n", "6\n", "6\n", "6\n", "6\n", "12\n", "12\n", "14\n", "34\n", "49\n", "79\n", "39\n", "34\n", "2\n", "2\n", "2\n", "2\n", "7\n", "15\n", "34\n", "24\n", "31\n", "73\n", "7\n", "7\n", "7\n", "7\n", "14\n", "15\n", "15\n", "59\n", "31\n", "24\n", "36\n", "59\n", "49\n", "4\n", "4\n", "4\n", "4\n", "12\n", "12\n", "12\n", "12\n", "29\n", "49\n", "9\n", "9\n", "9\n", "9\n", "4\n", "4\n", "4\n", "4\n", "2\n", "14\n", "7\n", "7\n", "9\n", "9\n", "2\n", "2\n", "2\n", "9\n", "29\n", "69\n", "59\n", "79\n", "89\n", "40\n", "7\n", "7\n", "9\n", "19\n", "80\n", "29\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "49\n", "4\n", "99\n", "4\n", "7\n", "9\n", "14\n", "49\n", "39\n", "79\n", "6\n", "6\n", "6\n", "6\n", "19\n", "24\n", "29\n", "2\n", "2\n", "2\n", "2\n", "6\n", "6\n", "6\n", "6\n", "34\n", "14\n", "17\n", "29\n", "79\n", "49\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "2\n", "6\n", "6\n", "6\n", "6\n", "29\n", "39\n", "14\n", "99\n", "99\n", "39\n", "29\n", "39\n", "7\n", "7\n", "7\n", "7\n", "10\n", "2\n", "3\n", "4\n", "6\n", "15\n", "20\n", "30\n", "50\n", "80\n", "4\n", "1\n", "4\n", "17\n", "2\n", "19\n", "10\n", "2\n", "9\n", "3\n", "4\n", "4\n", "3\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "12\n", "1\n", "25\n", "2\n", "4\n", "6\n", "9\n", "12\n", "14\n", "10\n", "20\n", "19\n", "2\n", "4\n", "4\n", "0\n", "5\n", "0\n", "4\n", "1\n", "8\n", "6\n", "12\n", "14\n", "3\n", "3\n", "12\n", "8\n", "10\n", "15\n", "16\n", "25\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "18\n", "100\n", "0\n", "1\n", "7\n", "7\n", "4\n", "7\n", "13\n", "38\n", "54\n", "96\n", "5\n", "9\n", "14\n", "39\n", "8\n", "41\n", "17\n", "38\n", "100\n", "8\n", "15\n", "15\n", "9\n", "5\n", "5\n", "9\n", "5\n", "16\n", "22\n", "26\n", "76\n", "11\n", "19\n", "29\n", "39\n", "69\n", "14\n", "14\n", "3\n", "7\n", "2\n", "2\n", "1\n", "1\n", "1\n", "1\n", "2\n", "6\n", "1\n", "1\n", "2\n", "2\n", "6\n", "2\n", "2\n", "2\n", "2\n", "4\n", "2\n", "2\n", "2\n", "4\n", "1\n", "1\n", "1\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "3\n", "3\n", "6\n", "3\n", "3\n", "3\n", "6\n", "6\n", "6\n", "6\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "6\n", "9\n", "4\n", "8\n", "8\n", "5\n", "5\n", "8\n", "8\n", "9\n", "8\n", "9\n", "9\n", "8\n", "8\n", "9\n", "8\n", "8\n", "8\n", "8\n", "8\n", "11\n", "11\n", "20\n", "17\n", "11\n", "11\n", "34\n", "13\n", "13\n", "9\n", "8\n", "13\n", "13\n", "39\n", "11\n", "11\n", "11\n", "11\n", "8\n", "39\n", "8\n", "10\n", "10\n", "10\n", "13\n", "10\n", "17\n", "8\n", "21\n", "26\n", "10\n", "10\n", "12\n", "39\n", "10\n", "17\n", "17\n", "10\n", "34\n", "12\n", "10\n", "24\n", "12\n", "17\n", "54\n", "12\n", "12\n", "29\n", "34\n", "12\n", "24\n", "17\n", "17\n", "34\n", "39\n", "269\n", "15\n", "44\n", "64\n", "89\n", "59\n", "89\n", "59\n", "89\n", "69\n", "89\n", "69\n", "89\n", "89\n", "69\n", "69\n", "89\n", "2\n", "3\n", "6\n", "7\n", "7\n", "6\n", "6\n", "6\n", "6\n", "3\n", "6\n", "6\n", "4\n", "14\n", "5\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "3\n", "6\n", "6\n", "6\n", "6\n", "6\n", "8\n", "8\n", "14\n", "47\n", "3\n", "3\n", "2\n", "314\n", "314\n", "21\n", "614\n", "489\n", "5\n", "13\n", "16\n", "14\n", "2\n", "7\n", "5\n", "27\n", "3\n", "5\n", "12\n", "5\n", "6\n", "5\n", "2\n", "2\n", "4\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "2\n", "3\n", "2\n", "12\n", "12\n", "12\n", "2\n", "2\n", "8\n", "12\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "10\n", "4\n", "16\n", "11\n", "3\n", "4\n", "10\n", "5\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "3\n", "5\n", "5\n", "3\n", "3\n", "3\n", "6\n", "6\n", "3\n", "3\n", "2\n", "3\n", "3\n", "3\n", "2\n", "2\n", "2\n", "3\n", "2\n", "2\n", "2\n", "6\n", "6\n", "3\n", "4\n", "4\n", "5\n", "4\n", "4\n", "5\n", "5\n", "5\n", "15\n", "4\n", "3\n", "4\n", "4\n", "2\n", "2\n", "4\n", "3\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "2\n", "5\n", "4\n", "4\n", "4\n", "3\n", "3\n", "4\n", "4\n", "4\n", "4\n", "3\n", "4\n", "6\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "3\n", "12\n", "4\n", "25\n", "3\n", "2\n", "3\n", "3\n", "6\n", "3\n", "5\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "4\n", "4\n", "3\n", "4\n", "3\n", "3\n", "3\n", "4\n", "4\n", "5\n", "5\n", "3\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "3\n", "24\n", "37\n", "46\n", "57\n", "94\n", "18\n", "29\n", "49\n", "29\n", "69\n", "59\n", "17\n", "24\n", "39\n", "34\n", "59\n", "8\n", "34\n", "5\n", "10\n", "32\n", "4\n", "14\n", "2\n", "10\n", "2\n", "1\n", "20\n", "10\n", "18\n", "27\n", "2\n", "12\n", "20\n", "30\n", "36\n", "2\n", "6\n", "8\n", "1\n", "1\n", "2\n", "4\n", "9\n", "17\n", "24\n", "39\n", "64\n", "29\n", "34\n", "7\n", "17\n", "24\n", "34\n", "59\n", "5\n", "6\n", "4\n", "28\n", "50\n", "0\n", "1\n", "1\n", "2\n", "3\n", "3\n", "3\n", "3\n", "2\n", "4\n", "3\n", "2\n", "6\n", "3\n", "3\n", "4\n", "4\n", "4\n", "8\n", "4\n", "6\n", "6\n", "8\n", "4\n", "6\n", "8\n", "8\n", "7\n", "9\n", "12\n", "7\n", "12\n", "11\n", "15\n", "10\n", "21\n", "15\n", "15\n", "22\n", "2\n", "3\n", "15\n", "22\n", "20\n", "30\n", "35\n", "34\n", "24\n", "14\n", "15\n", "25\n", "24\n", "27\n", "36\n", "36\n", "30\n", "29\n", "26\n", "36\n", "36\n", "40\n", "36\n", "50\n", "37\n", "45\n", "60\n", "80\n", "80\n", "80\n", "60\n", "60\n", "50\n", "80\n", "60\n", "155\n", "178\n", "20\n", "3\n", "8\n", "18\n", "25\n", "49\n", "76\n", "30\n", "3\n", "3\n", "3\n", "2\n", "4\n", "8\n", "17\n", "17\n", "24\n", "39\n", "69\n", "53\n", "39\n", "19\n", "14\n", "7\n", "48\n", "68\n", "39\n", "29\n", "14\n", "7\n", "3\n", "19\n", "39\n", "1\n", "1\n", "3\n", "3\n", "7\n", "17\n", "24\n", "34\n", "49\n", "59\n", "17\n", "34\n", "49\n", "79\n", "8\n", "9\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "269\n", "12\n", "12\n", "12\n", "12\n", "29\n", "44\n", "69\n", "12\n", "12\n", "12\n", "12\n", "29\n", "44\n", "84\n", "12\n", "12\n", "12\n", "12\n", "29\n", "89\n", "12\n", "12\n", "12\n", "29\n", "44\n", "12\n", "12\n", "12\n", "12\n", "12\n", "29\n", "39\n", "79\n", "17\n", "17\n", "17\n", "29\n", "49\n", "19\n", "19\n", "17\n", "29\n", "49\n", "44\n", "19\n", "19\n", "19\n", "34\n", "39\n", "19\n", "19\n", "19\n", "19\n", "19\n", "19\n", "34\n", "20\n", "20\n", "20\n", "44\n", "20\n", "44\n", "44\n", "20\n", "20\n", "22\n", "44\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "22\n", "12\n", "12\n", "24\n", "34\n", "17\n", "24\n", "44\n", "7\n", "17\n", "29\n", "39\n", "17\n", "13\n", "18\n", "24\n", "49\n", "19\n", "24\n", "34\n", "18\n", "26\n", "24\n", "24\n", "39\n", "24\n", "37\n", "6\n", "10\n", "15\n", "20\n", "20\n", "20\n", "20\n", "30\n", "50\n", "15\n", "20\n", "5\n", "5\n", "5\n", "9\n", "39\n", "24\n", "14\n", "7\n", "4\n", "69\n", "20\n", "4\n", "7\n", "9\n", "9\n", "14\n", "39\n", "69\n", "20\n", "7\n", "9\n", "14\n", "19\n", "4\n", "4\n", "4\n", "4\n", "14\n", "14\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "29\n", "20\n", "29\n", "12\n", "5\n", "39\n", "0\n", "0\n", "0\n", "5\n", "4\n", "40\n", "20\n", "59\n", "59\n", "59\n", "59\n", "5\n", "5\n", "5\n", "5\n", "5\n", "5\n", "12\n", "19\n", "27\n", "27\n", "44\n", "64\n", "89\n", "3\n", "3\n", "3\n", "3\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "19\n", "27\n", "49\n", "99\n", "7\n", "17\n", "9\n", "24\n", "39\n", "59\n", "79\n", "45\n", "5\n", "4\n", "6\n", "8\n", "6\n", "6\n", "6\n", "6\n", "8\n", "10\n", "8\n", "10\n", "10\n", "10\n", "8\n", "10\n", "20\n", "15\n", "27\n", "15\n", "10\n", "30\n", "20\n", "30\n", "17\n", "20\n", "17\n", "50\n", "30\n", "50\n", "44\n", "20\n", "25\n", "50\n", "79\n", "27\n", "90\n", "30\n", "100\n", "50\n", "39\n", "100\n", "150\n", "79\n", "5\n", "5\n", "5\n", "5\n", "6\n", "4\n", "9\n", "14\n", "14\n", "24\n", "24\n", "29\n", "39\n", "69\n", "69\n", "50\n", "14\n", "44\n", "50\n", "8\n", "8\n", "19\n", "19\n", "39\n", "48\n", "29\n", "48\n", "78\n", "24\n", "39\n", "69\n", "39\n", "9\n", "9\n", "19\n", "19\n", "39\n", "48\n", "39\n", "48\n", "69\n", "84\n", "24\n", "48\n", "68\n", "21\n", "24\n", "24\n", "31\n", "39\n", "34\n", "89\n", "34\n", "35\n", "35\n", "40\n", "89\n", "11\n", "11\n", "19\n", "24\n", "40\n", "49\n", "24\n", "24\n", "24\n", "29\n", "59\n", "81\n", "102\n", "132\n", "20\n", "30\n", "50\n", "29\n", "29\n", "17\n", "34\n", "29\n", "29\n", "9\n", "9\n", "19\n", "29\n", "39\n", "49\n", "4\n", "3\n", "3\n", "29\n", "49\n", "84\n", "102\n", "9\n", "9\n", "21\n", "24\n", "39\n", "49\n", "35\n", "29\n", "24\n", "24\n", "45\n", "59\n", "79\n", "102\n", "34\n", "45\n", "91\n", "11\n", "11\n", "19\n", "19\n", "49\n", "49\n", "34\n", "49\n", "24\n", "39\n", "29\n", "54\n", "79\n", "24\n", "99\n", "119\n", "49\n", "59\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "149\n", "200\n", "39\n", "249\n", "100\n", "130\n", "64\n", "109\n", "249\n", "107\n", "58\n", "79\n", "89\n", "342\n", "63\n", "274\n", "183\n", "122\n", "245\n", "94\n", "349\n", "149\n", "169\n", "199\n", "169\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "4\n", "4\n", "3\n", "3\n", "3\n", "14\n", "13\n", "13\n", "25\n", "34\n", "54\n", "40\n", "50\n", "60\n", "84\n", "109\n", "97\n", "69\n", "47\n", "49\n", "44\n", "204\n", "11\n", "11\n", "19\n", "24\n", "39\n", "59\n", "9\n", "9\n", "9\n", "9\n", "9\n", "9\n", "24\n", "49\n", "39\n", "19\n", "29\n", "39\n", "59\n", "79\n", "99\n", "109\n", "24\n", "24\n", "39\n", "89\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "11\n", "11\n", "11\n", "14\n", "19\n", "19\n", "19\n", "19\n", "44\n", "59\n", "29\n", "39\n", "49\n", "19\n", "29\n", "49\n", "59\n", "64\n", "69\n", "109\n", "119\n", "24\n", "89\n", "249\n", "179\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "11\n", "11\n", "24\n", "24\n", "39\n", "49\n", "59\n", "19\n", "39\n", "39\n", "11\n", "11\n", "19\n", "29\n", "49\n", "69\n", "79\n", "179\n", "84\n", "24\n", "229\n", "19\n", "39\n", "64\n", "69\n", "79\n", "109\n", "139\n", "99\n", "14\n", "14\n", "19\n", "19\n", "24\n", "29\n", "14\n", "14\n", "19\n", "19\n", "19\n", "19\n", "19\n", "19\n", "19\n", "8\n", "8\n", "8\n", "8\n", "8\n", "8\n", "11\n", "11\n", "11\n", "11\n", "19\n", "19\n", "19\n", "19\n", "54\n", "59\n", "19\n", "29\n", "169\n", "29\n", "24\n", "49\n", "54\n", "79\n", "79\n", "109\n", "29\n", "39\n", "64\n", "74\n", "84\n", "109\n", "109\n", "409\n", "8\n", "8\n", "8\n", "8\n", "11\n", "11\n", "11\n", "11\n", "19\n", "19\n", "29\n", "49\n", "59\n", "19\n", "29\n", "39\n", "29\n", "49\n", "49\n", "74\n", "79\n", "169\n", "19\n", "19\n", "24\n", "64\n", "84\n", "84\n", "99\n", "129\n", "129\n", "89\n", "734\n", "8\n", "8\n", "16\n", "16\n", "12\n", "12\n", "25\n", "25\n", "39\n", "74\n", "29\n", "29\n", "39\n", "12\n", "12\n", "25\n", "25\n", "39\n", "64\n", "149\n", "24\n", "19\n", "25\n", "64\n", "79\n", "79\n", "89\n", "109\n", "79\n", "299\n", "8\n", "8\n", "12\n", "12\n", "39\n", "17\n", "24\n", "59\n", "49\n", "59\n", "24\n", "17\n", "17\n", "24\n", "24\n", "64\n", "54\n", "44\n", "109\n", "179\n", "24\n", "17\n", "11\n", "24\n", "59\n", "39\n", "119\n", "614\n", "179\n", "49\n", "99\n", "99\n", "149\n", "24\n", "34\n", "24\n", "19\n", "8\n", "8\n", "17\n", "12\n", "12\n", "17\n", "19\n", "24\n", "24\n", "64\n", "89\n", "54\n", "179\n", "54\n", "54\n", "64\n", "24\n", "24\n", "24\n", "34\n", "64\n", "74\n", "149\n", "344\n", "89\n", "119\n", "89\n", "39\n", "8\n", "59\n", "17\n", "17\n", "24\n", "39\n", "44\n", "69\n", "69\n", "44\n", "59\n", "24\n", "209\n", "344\n", "17\n", "34\n", "44\n", "734\n", "89\n", "139\n", "59\n", "79\n", "24\n", "17\n", "8\n", "44\n", "149\n", "29\n", "59\n", "89\n", "59\n", "59\n", "59\n", "79\n", "519\n", "29\n", "29\n", "44\n", "89\n", "89\n", "119\n", "69\n", "79\n", "29\n", "209\n", "39\n", "59\n", "8\n", "17\n", "29\n", "59\n", "89\n", "59\n", "59\n", "59\n", "89\n", "69\n", "129\n", "209\n", "59\n", "149\n", "37\n", "18\n", "29\n", "46\n", "64\n", "12\n", "94\n", "149\n", "29\n", "559\n", "12\n", "12\n", "12\n", "179\n", "24\n", "19\n", "124\n", "74\n", "69\n", "46\n", "24\n", "89\n", "69\n", "59\n", "199\n", "59\n", "46\n", "49\n", "34\n", "49\n", "34\n", "159\n", "12\n", "11\n", "89\n", "94\n", "149\n", "29\n", "69\n", "429\n", "124\n", "59\n", "12\n", "39\n", "59\n", "89\n", "44\n", "59\n", "59\n", "59\n", "69\n", "259\n", "24\n", "12\n", "17\n", "139\n", "44\n", "59\n", "94\n", "179\n", "29\n", "899\n", "34\n", "59\n", "59\n", "79\n", "44\n", "69\n", "89\n", "139\n", "119\n", "69\n", "109\n", "34\n", "59\n", "59\n", "79\n", "139\n", "8\n", "24\n", "34\n", "44\n", "59\n", "69\n", "229\n", "17\n", "39\n", "64\n", "119\n", "139\n", "12\n", "17\n", "79\n", "59\n", "8\n", "19\n", "19\n", "19\n", "19\n", "19\n", "19\n", "24\n", "19\n", "49\n", "25\n", "34\n", "24\n", "24\n", "25\n", "39\n", "3\n", "3\n", "2\n", "0\n", "0\n", "4\n", "3\n", "0\n", "75\n", "75\n", "49\n", "49\n", "49\n", "49\n", "49\n", "49\n", "50\n", "50\n", "40\n", "39\n", "179\n", "180\n", "60\n", "24\n", "14\n", "10\n", "7\n", "2\n", "1\n", "3\n", "3\n", "3\n", "3\n", "14\n", "24\n", "4\n", "14\n", "24\n", "7\n", "14\n", "39\n", "2\n", "0\n", "7\n", "4\n", "4\n", "3\n", "54\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "3\n", "44\n", "17\n", "17\n", "24\n", "24\n", "24\n", "69\n", "89\n", "8\n", "8\n", "8\n", "8\n", "229\n", "34\n", "44\n", "49\n", "19\n", "24\n", "34\n", "8\n", "8\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "54\n", "24\n", "34\n", "59\n", "89\n", "8\n", "8\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "169\n", "8\n", "21\n", "24\n", "34\n", "54\n", "69\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "54\n", "8\n", "19\n", "29\n", "59\n", "114\n", "59\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "229\n", "39\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "12\n", "19\n", "29\n", "59\n", "54\n", "44\n", "8\n", "20\n", "31\n", "94\n", "57\n", "94\n", "57\n", "74\n", "8\n", "17\n", "17\n", "24\n", "39\n", "12\n", "49\n", "59\n", "64\n", "104\n", "114\n", "44\n", "44\n", "44\n", "12\n", "17\n", "29\n", "24\n", "34\n", "69\n", "149\n", "44\n", "89\n", "12\n", "24\n", "89\n", "44\n", "44\n", "17\n", "54\n", "159\n", "19\n", "99\n", "109\n", "264\n", "2\n", "1\n", "22\n", "2\n", "7\n", "1\n", "7\n", "70\n", "20\n", "28\n", "30\n", "12\n", "40\n", "17\n", "10\n", "15\n", "26\n", "45\n", "38\n", "142\n", "9\n", "15\n", "20\n", "25\n", "49\n", "35\n", "49\n", "76\n", "34\n", "68\n", "63\n", "55\n", "8\n", "15\n", "20\n", "34\n", "49\n", "99\n", "40\n", "49\n", "99\n", "71\n", "154\n", "7\n", "7\n", "8\n", "20\n", "10\n", "8\n", "10\n", "13\n", "22\n", "22\n", "25\n", "30\n", "6\n", "10\n", "18\n", "9\n", "6\n", "14\n", "33\n", "30\n", "4\n", "6\n", "33\n", "49\n", "8\n", "20\n", "16\n", "15\n", "14\n", "50\n", "129\n", "9\n", "9\n", "19\n", "29\n", "39\n", "59\n", "74\n", "70\n", "15\n", "40\n", "7\n", "13\n", "19\n", "34\n", "48\n", "97\n", "40\n", "70\n", "55\n", "6\n", "12\n", "19\n", "39\n", "89\n", "84\n", "24\n", "34\n", "49\n", "4\n", "18\n", "51\n", "41\n", "61\n", "13\n", "99\n", "50\n", "11\n", "30\n", "90\n", "30\n", "29\n", "30\n", "14\n", "39\n", "30\n", "4\n", "14\n", "29\n", "89\n", "33\n", "49\n", "59\n", "35\n", "85\n", "9\n", "24\n", "34\n", "59\n", "54\n", "85\n", "70\n", "54\n", "4\n", "59\n", "30\n", "40\n", "60\n", "130\n", "14\n", "14\n", "49\n", "69\n", "74\n", "100\n", "170\n", "82\n", "99\n", "122\n", "30\n", "70\n", "29\n", "79\n", "164\n", "158\n", "219\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "2\n", "6\n", "6\n", "6\n", "6\n", "6\n", "6\n", "2\n", "20\n", "6\n", "6\n", "15\n", "8\n", "9\n", "36\n", "40\n", "8\n", "10\n", "13\n", "25\n", "10\n", "21\n", "29\n", "47\n", "29\n", "59\n", "25\n", "20\n", "49\n", "69\n", "69\n", "59\n", "139\n", "82\n", "130\n", "6\n", "14\n", "17\n", "24\n", "29\n", "49\n", "69\n", "99\n", "139\n", "3\n", "4\n", "3\n", "3\n", "3\n", "139\n", "79\n", "7\n", "12\n", "17\n", "34\n", "49\n", "24\n", "99\n", "149\n", "14\n", "14\n", "7\n", "14\n", "29\n", "49\n", "59\n", "109\n", "17\n", "17\n", "34\n", "69\n", "169\n", "7\n", "14\n", "17\n", "17\n", "24\n", "29\n", "44\n", "59\n", "99\n", "44\n", "59\n", "109\n", "179\n", "7\n", "14\n", "17\n", "17\n", "24\n", "29\n", "54\n", "109\n", "74\n", "129\n", "189\n", "259\n", "14\n", "17\n", "17\n", "19\n", "24\n", "49\n", "49\n", "74\n", "74\n", "109\n", "79\n", "129\n", "219\n", "14\n", "17\n", "17\n", "24\n", "34\n", "59\n", "89\n", "139\n", "49\n", "119\n", "109\n", "229\n", "319\n", "8\n", "8\n", "14\n", "17\n", "17\n", "24\n", "39\n", "54\n", "69\n", "169\n", "79\n", "139\n", "199\n", "399\n", "8\n", "8\n", "17\n", "17\n", "34\n", "44\n", "59\n", "89\n", "124\n", "174\n", "104\n", "89\n", "124\n", "229\n", "389\n", "8\n", "8\n", "17\n", "17\n", "24\n", "34\n", "44\n", "44\n", "114\n", "169\n", "99\n", "89\n", "159\n", "284\n", "214\n", "429\n", "8\n", "8\n", "17\n", "17\n", "24\n", "44\n", "44\n", "79\n", "129\n", "169\n", "389\n", "104\n", "179\n", "579\n", "8\n", "8\n", "17\n", "17\n", "44\n", "94\n", "44\n", "104\n", "49\n", "169\n", "169\n", "84\n", "199\n", "149\n", "46\n", "44\n", "8\n", "12\n", "20\n", "20\n", "29\n", "37\n", "46\n", "69\n", "189\n", "389\n", "46\n", "104\n", "169\n", "149\n", "219\n", "29\n", "69\n", "129\n", "89\n", "189\n", "46\n", "46\n", "8\n", "22\n", "22\n", "22\n", "34\n", "169\n", "44\n", "54\n", "54\n", "199\n", "199\n", "54\n", "89\n", "129\n", "89\n", "54\n", "54\n", "159\n", "349\n", "54\n", "8\n", "24\n", "24\n", "54\n", "59\n", "64\n", "129\n", "8\n", "59\n", "59\n", "199\n", "89\n", "3\n", "4\n", "9\n", "24\n", "19\n", "49\n", "59\n", "39\n", "39\n", "69\n", "79\n", "11\n", "19\n", "29\n", "59\n", "49\n", "11\n", "19\n", "29\n", "39\n", "59\n", "79\n", "4\n", "4\n", "4\n", "9\n", "24\n", "49\n", "59\n", "39\n", "79\n", "19\n", "29\n", "49\n", "69\n", "11\n", "29\n", "59\n", "99\n", "39\n", "259\n", "99\n", "3\n", "3\n", "44\n", "11\n", "19\n", "19\n", "29\n", "29\n", "54\n", "49\n", "64\n", "79\n", "99\n", "19\n", "29\n", "139\n", "11\n", "49\n", "49\n", "89\n", "129\n", "19\n", "29\n", "29\n", "49\n", "249\n", "69\n", "15\n", "10\n", "3\n", "14\n", "3\n", "3\n", "4\n", "3\n", "44\n", "17\n", "8\n", "12\n", "17\n", "34\n", "24\n", "24\n", "79\n", "44\n", "59\n", "54\n", "24\n", "24\n", "54\n", "109\n", "17\n", "59\n", "94\n", "139\n", "279\n", "8\n", "24\n", "8\n", "17\n", "44\n", "11\n", "7\n", "7\n", "4\n", "11\n", "11\n", "24\n", "17\n", "24\n", "24\n", "24\n", "29\n", "44\n", "59\n", "169\n", "24\n", "34\n", "59\n", "49\n", "69\n", "79\n", "9\n", "14\n", "24\n", "2\n", "8\n", "14\n", "24\n", "24\n", "24\n", "29\n", "44\n", "59\n", "59\n", "59\n", "79\n", "79\n", "109\n", "259\n", "9\n", "14\n", "49\n", "79\n", "79\n", "199\n", "15\n", "3\n", "11\n", "19\n", "29\n", "39\n", "69\n", "79\n", "11\n", "19\n", "29\n", "49\n", "69\n", "99\n", "39\n", "169\n", "3\n", "4\n", "11\n", "29\n", "59\n", "89\n", "0\n", "6\n", "17\n", "29\n", "189\n", "179\n", "9\n", "4\n", "21\n", "43\n", "63\n", "9\n", "21\n", "38\n", "9\n", "4\n", "5\n", "3\n", "2\n", "17\n", "3\n", "1\n", "1\n", "1\n", "1\n", "1\n", "1\n", "7\n", "6\n", "13\n", "13\n", "20\n", "3\n", "3\n", "10\n", "12\n", "8\n", "2\n", "10\n", "15\n", "50\n", "16\n", "2\n", "10\n", "15\n", "24\n", "11\n", "23\n", "27\n", "7\n", "28\n", "11\n", "19\n", "2\n", "2\n", "2\n", "15\n", "2\n", "6\n", "6\n", "5\n", "5\n", "10\n", "10\n", "10\n", "4\n", "4\n", "4\n", "4\n", "5\n", "3\n", "2\n", "6\n", "5\n", "3\n", "3\n", "5\n", "7\n", "1\n", "2\n", "2\n", "4\n", "4\n", "6\n", "6\n", "6\n", "6\n", "3\n", "4\n", "6\n", "10\n", "15\n", "25\n", "49\n", "16\n", "60\n", "20\n", "30\n", "16\n", "40\n", "49\n", "66\n", "20\n", "13\n", "17\n", "21\n", "34\n", "38\n", "34\n", "33\n", "15\n", "19\n", "19\n", "15\n", "14\n", "15\n", "17\n", "13\n", "12\n", "12\n", "12\n", "12\n", "17\n", "20\n", "23\n", "25\n", "25\n", "26\n", "29\n", "23\n", "25\n", "30\n", "43\n", "35\n", "52\n", "40\n", "43\n", "52\n", "52\n", "58\n", "58\n", "69\n", "52\n", "73\n", "140\n", "6\n", "7\n", "13\n", "8\n", "16\n", "2\n", "5\n", "21\n", "25\n", "29\n", "33\n", "38\n", "4\n", "42\n", "46\n", "2\n", "8\n", "5\n", "20\n", "4\n", "30\n", "6\n", "2\n", "13\n", "25\n", "4\n", "22\n", "30\n", "50\n", "66\n", "3\n", "3\n", "27\n", "60\n", "20\n", "20\n", "8\n", "20\n", "3\n", "6\n", "20\n", "30\n", "79\n", "2\n", "3\n", "15\n", "25\n", "4\n", "76\n", "10\n", "7\n", "10\n", "2\n", "5\n", "50\n", "35\n", "6\n", "20\n", "50\n", "60\n", "20\n", "27\n", "35\n", "48\n", "49\n", "10\n", "6\n", "13\n", "15\n", "2\n", "1\n", "2\n", "3\n", "3\n", "7\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "5\n", "29\n", "1\n", "2\n", "4\n", "4\n", "3\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "4\n", "42\n", "44\n", "63\n", "85\n", "38\n", "26\n", "4\n", "27\n", "24\n", "30\n", "4\n", "26\n", "29\n", "12\n", "44\n", "4\n", "8\n", "22\n", "30\n", "44\n", "79\n", "26\n", "24\n", "27\n", "7\n", "16\n", "15\n", "3\n", "30\n", "10\n", "55\n", "6\n", "15\n", "60\n", "2\n", "5\n", "12\n", "13\n", "30\n", "50\n", "3\n", "10\n", "12\n", "13\n", "12\n", "109\n", "66\n", "10\n", "80\n", "10\n", "9\n", "8\n", "20\n", "50\n", "2\n", "6\n", "2\n", "65\n", "7\n", "6\n", "15\n", "6\n", "6\n", "7\n", "6\n", "6\n", "7\n", "7\n", "7\n", "7\n", "9\n", "9\n", "9\n", "8\n", "9\n", "7\n", "8\n", "7\n", "6\n", "5\n", "6\n", "30\n", "15\n", "20\n", "23\n", "49\n", "8\n", "69\n", "9\n", "14\n", "19\n", "20\n", "29\n", "40\n", "9\n", "49\n", "79\n", "35\n", "49\n", "15\n", "2\n", "3\n", "19\n", "7\n", "0\n", "2\n", "1\n", "2\n", "2\n", "2\n", "2\n", "1\n", "69\n", "73\n", "29\n", "1\n", "66\n", "9\n", "12\n", "6\n", "3\n", "3\n", "3\n", "3\n", "3\n", "6\n", "44\n", "11\n", "7\n", "11\n", "10\n", "27\n", "24\n", "9\n", "160\n", "170\n", "15\n", "23\n", "25\n", "13\n", "22\n", "18\n", "10\n", "37\n", "41\n", "52\n", "38\n", "30\n", "72\n", "66\n", "46\n", "30\n", "149\n", "130\n", "130\n", "120\n", "134\n", "140\n", "68\n", "70\n", "25\n", "44\n", "18\n", "149\n", "37\n", "17\n", "15\n", "19\n", "20\n", "20\n", "26\n", "26\n", "26\n", "24\n", "7\n", "24\n", "22\n", "40\n", "80\n", "3\n", "19\n", "19\n", "29\n", "24\n", "34\n", "44\n", "34\n", "54\n", "9\n", "17\n", "24\n", "34\n", "49\n", "79\n", "9\n", "17\n", "24\n", "39\n", "59\n", "19\n", "69\n", "99\n", "3\n", "14\n", "9\n", "9\n", "19\n", "29\n", "39\n", "39\n", "3\n", "3\n", "3\n", "3\n", "3\n", "1\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "7\n", "16\n", "19\n", "40\n", "2\n", "2\n", "3\n", "3\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "17\n", "17\n", "17\n", "17\n", "17\n", "17\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "17\n", "17\n", "24\n", "24\n", "44\n", "59\n", "89\n", "3\n", "5\n", "12\n", "34\n", "49\n", "17\n", "24\n", "44\n", "79\n", "19\n", "74\n", "89\n", "0\n", "6\n", "4\n", "4\n", "8\n", "8\n", "20\n", "40\n", "25\n", "40\n", "100\n", "70\n", "30\n", "50\n", "60\n", "85\n", "2\n", "2\n", "10\n", "24\n", "49\n", "59\n", "89\n", "139\n", "19\n", "34\n", "74\n", "59\n", "109\n", "69\n", "99\n", "39\n", "14\n", "2\n", "7\n", "9\n", "14\n", "24\n", "39\n", "2\n", "5\n", "14\n", "24\n", "24\n", "39\n", "12\n", "49\n", "39\n", "19\n", "19\n", "49\n", "76\n", "8\n", "18\n", "25\n", "35\n", "3\n", "3\n", "2\n", "2\n", "2\n", "2\n", "2\n", "3\n", "3\n", "3\n", "3\n", "3\n", "3\n", "6\n", "6\n", "6\n", "4\n", "7\n", "7\n", "1\n", "10\n", "20\n", "20\n", "20\n", "30\n" ] } ], "source": [ "for bs_set in bs_sets.itertuples(index=False):\n", " num = f\"{str(bs_set.Number).strip()}-{str(bs_set.Variant)}\" #Error for Set 853357\n", " set_ref = thm[f\"set/lego/{num}\"]\n", "\n", " if (set_ref, None, None) in g:\n", " #brickset prices already in euro\n", " #choose the cheapest price since the usual customer wont choose the highest price\n", " options = [bs_set.USRetailPrice, bs_set.DERetailPrice, bs_set.UKRetailPrice, bs_set.CARetailPrice]\n", " options = [int(opt) for opt in options if not pd.isna(opt)]\n", "\n", " if len(options) >= 1:\n", " cheapest = min(options)\n", " g.add((set_ref, THM.price_new, Literal(cheapest, datatype=XSD.float)))\n", " print(cheapest)" ] }, { "cell_type": "markdown", "id": "cbd69fa6", "metadata": {}, "source": [ "Only concrete elements (parts considering their shape, color and print) can have prices" ] }, { "cell_type": "code", "execution_count": 36, "id": "307a3210", "metadata": {}, "outputs": [], "source": [ "\n", "for bs_element in bs_parts.itertuples(index=False):\n", " element_ref = thm[f\"element/{bs_element.ElementID}\"]\n", " \n", " if (element_ref, None, None) in g:\n", " if not pd.isna(bs_element.BrickLinkSoldPriceNew):\n", " g.add((element_ref, THM.price_new, Literal(bs_element.BrickLinkSoldPriceNew)))\n", " if not pd.isna(bs_element.BrickLinkSoldPriceUsed):\n", " g.add((element_ref, THM.price_used, Literal(bs_element.BrickLinkSoldPriceNew)))" ] }, { "cell_type": "markdown", "id": "a16fd51a", "metadata": {}, "source": [ "# Bricklink\n", "\n", "Add missing minifigs, parts and sets using bricklink data" ] }, { "cell_type": "code", "execution_count": 37, "id": "a8beb593", "metadata": {}, "outputs": [], "source": [ "bl_minifigs = pd.read_csv(\"./data/bricklink/minifigs.csv\")\n", "bl_sets = pd.read_csv(\"./data/bricklink/sets.csv\")\n", "bl_parts = pd.read_csv(\"./data/bricklink/parts.csv\")" ] }, { "cell_type": "code", "execution_count": 38, "id": "bbf5462b", "metadata": {}, "outputs": [], "source": [ "for bl_set in bl_sets.itertuples(index=False):\n", " set_ref = thm[f\"set/lego/{bl_set.set_id}\"]\n", "\n", " if not (set_ref, None, None) in g:\n", " g.add((set_ref, RDFS.label, Literal(lego_set.name, lang=\"en\")))\n", " if not pd.isna(bl_set.year) and str(bl_set.year).isnumeric():\n", " g.add((set_ref, THM.year, Literal(int(bl_set.year))))\n", " if not pd.isna(bl_set.parts) and str(bl_set.parts).isnumeric():\n", " g.add((set_ref, THM.num_parts, Literal(int(bl_set.parts), datatype=XSD.integer)))\n", " g.add((set_ref, THM.brand, Literal(\"Lego\")))" ] }, { "cell_type": "code", "execution_count": 39, "id": "ef52582e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\nfor bl_part in bl_parts.itertuples(index=False):\\n part_ref = thm[f\"part/{bl_part.part_id}\"]\\n\\n if not (part_ref, None, None) in g:\\n additional_entries += 1\\n g.add((part_ref, RDFS.label, Literal(bl_part.part_name, lang=\"en\")))\\n'" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"\n", "for bl_part in bl_parts.itertuples(index=False):\n", " part_ref = thm[f\"part/{bl_part.part_id}\"]\n", "\n", " if not (part_ref, None, None) in g:\n", " additional_entries += 1\n", " g.add((part_ref, RDFS.label, Literal(bl_part.part_name, lang=\"en\")))\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 40, "id": "8bf0ffeb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'\\nfor bl_minifig in bl_minifigs.itertuples(index=False):\\n minifig_ref = thm[f\"minfig/{bl_minifig.minifig_id}\"]\\n\\n if not (minifig_ref, None, None) in g:\\n additional_entries += 1\\n g.add((minifig_ref, RDFS.label, Literal(bl_minifig.minifig_name, lang=\"en\")))\\n'" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"\n", "for bl_minifig in bl_minifigs.itertuples(index=False):\n", " minifig_ref = thm[f\"minfig/{bl_minifig.minifig_id}\"]\n", "\n", " if not (minifig_ref, None, None) in g:\n", " additional_entries += 1\n", " g.add((minifig_ref, RDFS.label, Literal(bl_minifig.minifig_name, lang=\"en\")))\n", "\"\"\"" ] }, { "cell_type": "markdown", "id": "bfab0c73", "metadata": {}, "source": [ "Serialize the graph in turtle format" ] }, { "cell_type": "markdown", "id": "2abd6894", "metadata": {}, "source": [ "```\n", " ___-------___\n", " _-~~ ~~-_\n", " _-~ /~-_\n", " /^\\__/^\\ /~ \\ / \\\n", " /| O|| O| / \\_______________/ \\\n", "| |___||__| / / \\ \\\n", "| \\ / / \\ \\\n", "| (_______) /______/ \\_________ \\\n", "| / / \\ / \\\n", " \\ \\^\\\\ \\ / \\ /\n", " \\ || \\______________/ _-_ //\\__//\n", " \\ ||------_-~~-_ ------------- \\ --/~ ~\\ || __/\n", " ~-----||====/~ |==================| |/~~~~~\n", " (_(__/ ./ / \\_\\ \\.\n", " (_(___/ \\_____)_)\n", "```" ] }, { "cell_type": "code", "execution_count": null, "id": "1a30bff8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ ")>" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.bind(\"thm\", THM)\n", "\n", "#g.serialize(\"lego_graph.ttl\", format=\"turtle\")" ] } ], "metadata": { "kernelspec": { "display_name": "venv (3.12.3)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }