diff --git a/.ipynb_checkpoints/Logistic_Regression-checkpoint.ipynb b/.ipynb_checkpoints/Logistic_Regression-checkpoint.ipynb new file mode 100644 index 0000000..a50ea29 --- /dev/null +++ b/.ipynb_checkpoints/Logistic_Regression-checkpoint.ipynb @@ -0,0 +1,144 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 43, + "id": "f607767c", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import torch\n", + "import gensim.downloader as gensim\n", + "from nltk.tokenize import word_tokenize" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "58212f9c", + "metadata": {}, + "outputs": [], + "source": [ + "x_train = pd.read_table('train/in.tsv', sep='\\t', header = None)\n", + "y_train = pd.read_table('train/expected.tsv', sep='\\t', header = None)\n", + "y_train = y_train[0]\n", + "x_dev = pd.read_table('dev-0/in.tsv', sep='\\t', header = None)\n", + "x_test = pd.read_table('test-A/in.tsv', sep='\\t', header = None)\n", + "\n", + "x_train = x_train[0].str.lower()\n", + "x_dev = x_dev[0].str.lower()\n", + "x_test = x_test[0].str.lower()\n", + "\n", + "x_train = [word_tokenize(x) for x in x_train]\n", + "x_dev = [word_tokenize(x) for x in x_dev]\n", + "x_test = [word_tokenize(x) for x in x_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "d2ef6f47", + "metadata": {}, + "outputs": [], + "source": [ + "word2vec = gensim.load('glove-wiki-gigaword-50')\n", + "\n", + "def document_vector(doc):\n", + " return np.mean([word2vec[word] for word in doc if word in word2vec] or [np.zeros(50)], axis=0)\n", + "\n", + "x_train = [document_vector(doc) for doc in x_train]\n", + "x_dev = [document_vector(doc) for doc in x_dev]\n", + "x_test = [document_vector(doc) for doc in x_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "c8f52012", + "metadata": {}, + "outputs": [], + "source": [ + "class NeuralNetworkModel(torch.nn.Module):\n", + " def __init__(self, features):\n", + " super(NeuralNetworkModel, self).__init__()\n", + " self.fc1 = torch.nn.Linear(features, 50)\n", + " self.fc2 = torch.nn.Linear(50, 1)\n", + "\n", + " def forward(self, x):\n", + " x = self.fc1(x)\n", + " x = torch.relu(x)\n", + " x = self.fc2(x)\n", + " x = torch.sigmoid(x)\n", + " return x\n", + " \n", + "nn_model = NeuralNetworkModel(100)\n", + "BATCH_SIZE = 5\n", + "criterion = torch.nn.BCELoss()\n", + "optimizer = torch.optim.SGD(nn_model.parameters(), lr = 0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "47c18496", + "metadata": {}, + "outputs": [ + { + "ename": "RuntimeError", + "evalue": "mat1 and mat2 shapes cannot be multiplied (5x50 and 100x50)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat32\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_numpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnn_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 10\u001b[0m \u001b[0mloss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcriterion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniconda3/lib/python3.9/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 887\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_slow_forward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 888\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 889\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 890\u001b[0m for hook in itertools.chain(\n\u001b[1;32m 891\u001b[0m \u001b[0m_global_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfc1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrelu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfc2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniconda3/lib/python3.9/site-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *input, **kwargs)\u001b[0m\n\u001b[1;32m 887\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_slow_forward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 888\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 889\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 890\u001b[0m for hook in itertools.chain(\n\u001b[1;32m 891\u001b[0m \u001b[0m_global_forward_hooks\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniconda3/lib/python3.9/site-packages/torch/nn/modules/linear.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, input)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mTensor\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mTensor\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 94\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mF\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 96\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mextra_repr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/miniconda3/lib/python3.9/site-packages/torch/nn/functional.py\u001b[0m in \u001b[0;36mlinear\u001b[0;34m(input, weight, bias)\u001b[0m\n\u001b[1;32m 1751\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhas_torch_function_variadic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1752\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mhandle_torch_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinear\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbias\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1753\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_C\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_nn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1754\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1755\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mRuntimeError\u001b[0m: mat1 and mat2 shapes cannot be multiplied (5x50 and 100x50)" + ] + } + ], + "source": [ + "for epoch in range(5):\n", + " nn_model.train()\n", + " for i in range(0, y_train.shape[0], BATCH_SIZE):\n", + " X = x_train[i:i+BATCH_SIZE]\n", + " X = torch.tensor(X)\n", + " y = y_train[i:i+BATCH_SIZE]\n", + " y = torch.tensor(y.astype(np.float32).to_numpy()).reshape(-1,1)\n", + "\n", + " outputs = nn_model(X.float())\n", + " loss = criterion(outputs, y)\n", + "\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 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.9.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Logistic-Regression.py b/Logistic-Regression.py new file mode 100644 index 0000000..76c821d --- /dev/null +++ b/Logistic-Regression.py @@ -0,0 +1,94 @@ +import pandas as pd +import numpy as np +import torch +import gensim.downloader as gensim +from nltk.tokenize import word_tokenize + +x_train = pd.read_table('train/in.tsv', sep='\t', header = None, error_bad_lines = False, quoting = 3) +y_train = pd.read_table('train/expected.tsv', sep='\t', header = None, quoting = 3) +y_train = y_train[0] +x_dev = pd.read_table('dev-0/in.tsv', sep='\t', header = None, quoting = 3) +x_test = pd.read_table('test-A/in.tsv', sep='\t', header = None, quoting = 3) + +x_train = x_train[0].str.lower() +x_dev = x_dev[0].str.lower() +x_test = x_test[0].str.lower() + +x_train = [word_tokenize(x) for x in x_train] +x_dev = [word_tokenize(x) for x in x_dev] +x_test = [word_tokenize(x) for x in x_test] + +word2vec = gensim.load('glove-wiki-gigaword-50') + +def document_vector(doc): + return np.mean([word2vec[word] for word in doc if word in word2vec] or [np.zeros(50)], axis=0) + +x_train = [document_vector(doc) for doc in x_train] +x_dev = [document_vector(doc) for doc in x_dev] +x_test = [document_vector(doc) for doc in x_test] + +class NeuralNetworkModel(torch.nn.Module): + def __init__(self, features): + super(NeuralNetworkModel, self).__init__() + self.fc1 = torch.nn.Linear(50, features) + self.fc2 = torch.nn.Linear(features, 1) + + def forward(self, x): + x = self.fc1(x) + x = torch.relu(x) + x = self.fc2(x) + x = torch.sigmoid(x) + return x + +nn_model = NeuralNetworkModel(100) +BATCH_SIZE = 5 +criterion = torch.nn.BCELoss() +optimizer = torch.optim.SGD(nn_model.parameters(), lr = 0.1) + +for epoch in range(5): + nn_model.train() + for i in range(0, y_train.shape[0], BATCH_SIZE): + X = x_train[i:i+BATCH_SIZE] + X = torch.tensor(X) + y = y_train[i:i+BATCH_SIZE] + y = torch.tensor(y.astype(np.float32).to_numpy()).reshape(-1,1) + + outputs = nn_model(X.float()) + loss = criterion(outputs, y) + + optimizer.zero_grad() + loss.backward() + optimizer.step() + +y_dev = [] +y_test = [] + +nn_model.eval() + +with torch.no_grad(): + for i in range(0, len(x_dev), BATCH_SIZE): + X = x_dev[i:i+BATCH_SIZE] + X = torch.tensor(X) + + outputs = nn_model(X.float()) + + y = (outputs > 0.5) + y_dev.extend(y) + + for i in range(0, len(x_test), BATCH_SIZE): + X = x_test[i:i+BATCH_SIZE] + X = torch.tensor(X) + + outputs = nn_model(X.float()) + + y = (outputs > 0.5) + y_test.extend(y) + +y_dev = np.asarray(y_dev, dtype=np.int32) +y_test = np.asarray(y_test, dtype=np.int32) + +Y_dev = pd.DataFrame({'label':y_dev}) +Y_test = pd.DataFrame({'label':y_test}) + +Y_dev.to_csv(r'dev-0/out.tsv', sep='\t', index=False, header=False) +Y_test.to_csv(r'test-A/out.tsv', sep='\t', index=False, header=False) \ No newline at end of file diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..79b87cd --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,5272 @@ +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +1 +1 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +1 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +1 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +1 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +1 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +1 +1 +1 +1 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 diff --git a/geval b/geval new file mode 100755 index 0000000..b68b316 Binary files /dev/null and b/geval differ diff --git a/geval-results.txt b/geval-results.txt new file mode 100644 index 0000000..ca250c1 --- /dev/null +++ b/geval-results.txt @@ -0,0 +1,5 @@ +Likelihood 0.0000 +Accuracy 0.7289 +F1.0 0.5594 +Precision 0.6587 +Recall 0.4861 diff --git a/test-A/out.tsv b/test-A/out.tsv new file mode 100644 index 0000000..d88232a --- /dev/null +++ b/test-A/out.tsv @@ -0,0 +1,5152 @@ +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +1 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +1 +1 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +1 +1 +1 +0 +0 +1 +1 +1 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +1 +1 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +1 +1 +1 +1 +0 +0 +0 +1 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +1 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +1 +0 +0 +1 +0 +1 +1 +0 +0 +1 +0 +1 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +0 +0 +0 +0 +1 +0 +1 +0 +0 +1 +1 +1 +1 +0 +1 +1 +1 +0 +0 +0 +0 +1 +0 +1 +1 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +1 +1 +1 +0 +1 +1 +0 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +0 +0 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +1 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +1 +1 +1 +1 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +1 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +0 +1 +1 +0 +1 +1 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +1 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1