Full Code of ljpzzz/machinelearning for AI

master 17302f708146 cached
59 files
4.2 MB
1.1M tokens
157 symbols
1 requests
Download .txt
Showing preview only (4,403K chars total). Download the full file or copy to clipboard to get everything.
Repository: ljpzzz/machinelearning
Branch: master
Commit: 17302f708146
Files: 59
Total size: 4.2 MB

Directory structure:
gitextract_orqyikle/

├── .gitignore
├── LICENSE
├── classic-machine-learning/
│   ├── birch_cluster.ipynb
│   ├── bpr.ipynb
│   ├── dbscan_cluster.ipynb
│   ├── decision_tree_classifier.ipynb
│   ├── decision_tree_classifier_1.ipynb
│   ├── fp_tree_prefixspan.ipynb
│   ├── kmeans_cluster.ipynb
│   ├── knn_classifier.ipynb
│   ├── lda.ipynb
│   ├── linear-regression.ipynb
│   ├── lle.ipynb
│   ├── matrix_factorization.ipynb
│   ├── native_bayes.ipynb
│   ├── pca.ipynb
│   ├── regression_production_example.ipynb
│   ├── ridge_regression.ipynb
│   ├── ridge_regression_1.ipynb
│   ├── spectral_cluster.ipynb
│   └── svm_classifier.ipynb
├── data/
│   ├── nlp_test0.txt
│   └── nlp_test2.txt
├── ensemble-learning/
│   ├── adaboost-classifier.ipynb
│   ├── gbdt_classifier.ipynb
│   ├── random_forest_classifier.ipynb
│   └── xgboost-example.ipynb
├── mathematics/
│   ├── mcmc_2.ipynb
│   ├── mcmc_3_4.ipynb
│   └── random_data_generation.ipynb
├── model-in-product/
│   ├── sklearn-jpmml/
│   │   ├── PMML_Example.ipynb
│   │   ├── demo.pmml
│   │   └── pmml_demo/
│   │       ├── pom.xml
│   │       └── src/
│   │           └── main/
│   │               └── java/
│   │                   └── PMMLDemo.java
│   └── tensorflow-java/
│       ├── TFDemoJava/
│       │   ├── pom.xml
│       │   └── src/
│       │       └── main/
│       │           └── java/
│       │               └── TFjavaDemo.java
│       ├── rf.pb
│       └── tensorflow_model.ipynb
├── natural-language-processing/
│   ├── chinese_digging.ipynb
│   ├── english_digging.ipynb
│   ├── hash_trick.ipynb
│   ├── hmm.ipynb
│   ├── lda.ipynb
│   ├── nmf.ipynb
│   ├── tf-idf.ipynb
│   └── word2vec.ipynb
├── readme.md
└── reinforcement-learning/
    ├── a3c.py
    ├── actor_critic.py
    ├── ddpg.py
    ├── ddqn.py
    ├── ddqn_prioritised_replay.py
    ├── dqn.py
    ├── duel_dqn.py
    ├── introduction.py
    ├── nature_dqn.py
    ├── policy_gradient.py
    ├── q_learning_windy_world.py
    └── sarsa_windy_world.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.idea/

================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2018 刘建平(Pinard Liu)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: classic-machine-learning/birch_cluster.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright (C) 2016 - 2019 Pinard Liu(liujianping-ok@163.com)\n",
    "\n",
    "https://www.cnblogs.com/pinard\n",
    "\n",
    "Permission given to modify the code as long as you keep this declaration at the top\n",
    "\n",
    "用scikit-learn学习BIRCH聚类 https://www.cnblogs.com/pinard/p/6200579.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "from sklearn.datasets.samples_generator import make_blobs\n",
    "# X为样本特征,Y为样本簇类别, 共1000个样本,每个样本2个特征,共4个簇,簇中心在[-1,-1], [0,0],[1,1], [2,2]\n",
    "X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.3, 0.4, 0.3], \n",
    "                  random_state =9)\n",
    "plt.scatter(X[:, 0], X[:, 1], marker='o')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calinski-Harabasz Score 2220.952539045443\n"
     ]
    }
   ],
   "source": [
    "from sklearn.cluster import Birch\n",
    "y_pred = Birch(n_clusters = None).fit_predict(X)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y_pred)\n",
    "plt.show()\n",
    "from sklearn import metrics\n",
    "print (\"Calinski-Harabasz Score\", metrics.calinski_harabaz_score(X, y_pred)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calinski-Harabasz Score 2816.407652684516\n"
     ]
    }
   ],
   "source": [
    "y_pred = Birch(n_clusters = 4).fit_predict(X)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y_pred)\n",
    "plt.show()\n",
    "print (\"Calinski-Harabasz Score\", metrics.calinski_harabaz_score(X, y_pred) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calinski-Harabasz Score 3295.634922726645\n"
     ]
    }
   ],
   "source": [
    "y_pred = Birch(n_clusters = 4, threshold = 0.3).fit_predict(X)\n",
    "print (\"Calinski-Harabasz Score\", metrics.calinski_harabaz_score(X, y_pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calinski-Harabasz Score 2155.10021807852\n"
     ]
    }
   ],
   "source": [
    "y_pred = Birch(n_clusters = 4, threshold = 0.1).fit_predict(X)\n",
    "print (\"Calinski-Harabasz Score\", metrics.calinski_harabaz_score(X, y_pred)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calinski-Harabasz Score 3301.8023106358173\n"
     ]
    }
   ],
   "source": [
    "y_pred = Birch(n_clusters = 4, threshold = 0.3, branching_factor = 20).fit_predict(X)\n",
    "print (\"Calinski-Harabasz Score\", metrics.calinski_harabaz_score(X, y_pred)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calinski-Harabasz Score 2800.878409621567\n"
     ]
    }
   ],
   "source": [
    "y_pred = Birch(n_clusters = 4, threshold = 0.3, branching_factor = 10).fit_predict(X)\n",
    "print (\"Calinski-Harabasz Score\", metrics.calinski_harabaz_score(X, y_pred)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}


================================================
FILE: classic-machine-learning/bpr.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright (C) 2016 - 2019 Pinard Liu(liujianping-ok@163.com)\n",
    "\n",
    "https://www.cnblogs.com/pinard\n",
    "\n",
    "Permission given to modify the code as long as you keep this declaration at the top\n",
    "\n",
    "用tensorflow学习贝叶斯个性化排序(BPR) https://www.cnblogs.com/pinard/p/9163481.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "max_u_id: 943\n",
      "max_i_id: 1682\n"
     ]
    }
   ],
   "source": [
    "import numpy\n",
    "import tensorflow as tf\n",
    "import os\n",
    "import random\n",
    "from collections import defaultdict\n",
    "\n",
    "def load_data(data_path):\n",
    "    user_ratings = defaultdict(set)\n",
    "    max_u_id = -1\n",
    "    max_i_id = -1\n",
    "    with open(data_path, 'r') as f:\n",
    "        for line in f.readlines():\n",
    "            u, i, _, _ = line.split(\"\\t\")\n",
    "            u = int(u)\n",
    "            i = int(i)\n",
    "            user_ratings[u].add(i)\n",
    "            max_u_id = max(u, max_u_id)\n",
    "            max_i_id = max(i, max_i_id)\n",
    "    print (\"max_u_id:\", max_u_id)\n",
    "    print (\"max_i_id:\", max_i_id)\n",
    "    return max_u_id, max_i_id, user_ratings\n",
    "    \n",
    "\n",
    "data_path = os.path.join('D:\\\\tmp\\\\ml-100k', 'u.data')\n",
    "user_count, item_count, user_ratings = load_data(data_path)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "defaultdict(<class 'set'>, {196: {257, 8, 393, 13, 269, 655, 1022, 663, 25, 153, 411, 285, 286, 287, 428, 173, 306, 692, 66, 67, 580, 70, 202, 845, 340, 1241, 94, 1118, 108, 238, 111, 1007, 110, 242, 116, 762, 251, 381, 382}, 186: {1033, 12, 1042, 1046, 540, 31, 546, 550, 38, 554, 44, 53, 566, 55, 568, 56, 1083, 71, 588, 77, 591, 79, 595, 596, 95, 98, 100, 106, 117, 118, 121, 147, 148, 159, 684, 689, 177, 1213, 203, 717, 225, 226, 1253, 742, 237, 754, 243, 250, 1277, 257, 770, 258, 263, 269, 281, 288, 291, 294, 295, 298, 299, 300, 302, 303, 306, 820, 1336, 829, 322, 327, 330, 331, 332, 333, 338, 356, 1385, 880, 887, 1399, 385, 405, 406, 925, 934, 939, 977, 470, 983, 988, 477, 1016}, 22: {2, 515, 4, 523, 526, 17, 21, 24, 29, 546, 550, 554, 50, 53, 566, 568, 62, 68, 79, 80, 85, 89, 94, 96, 105, 109, 110, 117, 118, 121, 636, 127, 128, 648, 651, 144, 153, 154, 665, 161, 163, 167, 168, 683, 172, 173, 684, 687, 176, 175, 688, 174, 692, 181, 184, 186, 187, 194, 195, 712, 201, 202, 204, 208, 209, 210, 211, 216, 731, 732, 222, 226, 227, 228, 229, 230, 231, 233, 238, 241, 250, 258, 265, 780, 791, 792, 290, 294, 840, 862, 358, 871, 878, 367, 376, 377, 384, 385, 386, 393, 399, 403, 405, 407, 411, 926, 932, 430, 431, 433, 435, 948, 449, 451, 455, 456, 988, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 502, 510, 511}, 244: {1, 3, 1028, 7, 521, 9, 13, 1039, 527, 17, 1041, 528, 20, 1045, 22, 1047, 1048, 537, 26, 28, 1053, 1054, 31, 32, 1057, 550, 40, 553, 554, 42, 559, 1074, 51, 52, 53, 54, 566, 1079, 50, 58, 56, 62, 64, 65, 66, 67, 68, 69, 581, 71, 72, 584, 1098, 70, 1095, 77, 80, 82, 1107, 596, 1109, 86, 88, 89, 90, 92, 1118, 95, 1119, 97, 609, 100, 101, 105, 1132, 109, 111, 1136, 114, 628, 117, 629, 631, 118, 121, 122, 126, 1150, 135, 650, 651, 652, 655, 1168, 145, 144, 148, 660, 662, 151, 153, 154, 155, 1178, 157, 156, 158, 673, 161, 162, 676, 164, 1188, 167, 168, 169, 171, 172, 685, 173, 174, 179, 180, 181, 183, 1209, 186, 697, 188, 191, 193, 707, 196, 197, 710, 708, 712, 1225, 200, 204, 716, 208, 209, 721, 723, 724, 214, 215, 216, 217, 220, 732, 222, 735, 226, 738, 739, 743, 232, 744, 746, 747, 235, 237, 238, 234, 240, 241, 754, 756, 246, 249, 762, 763, 764, 255, 258, 772, 265, 780, 268, 276, 790, 278, 281, 287, 290, 291, 294, 301, 815, 818, 310, 317, 318, 833, 324, 845, 856, 866, 357, 871, 365, 367, 369, 886, 380, 381, 383, 393, 401, 1428, 409, 410, 411, 924, 926, 428, 941, 433, 946, 949, 950, 953, 955, 1467, 959, 451, 455, 456, 458, 468, 471, 475, 1012, 1017, 508, 509}, 166: {288, 258, 322, 323, 294, 328, 300, 748, 751, 688, 315, 687, 243, 343, 984, 313, 346, 347, 894, 286}, 298: {1, 514, 8, 9, 523, 526, 527, 530, 22, 23, 28, 546, 549, 50, 58, 69, 71, 588, 79, 596, 88, 91, 603, 604, 97, 98, 99, 625, 1142, 118, 121, 125, 127, 132, 133, 134, 651, 652, 143, 144, 660, 151, 152, 153, 679, 168, 172, 174, 178, 181, 183, 185, 186, 187, 705, 194, 195, 196, 197, 193, 199, 200, 202, 203, 204, 205, 208, 210, 211, 213, 215, 742, 237, 252, 257, 261, 265, 274, 275, 276, 281, 282, 284, 286, 294, 820, 311, 317, 318, 1346, 842, 333, 845, 864, 866, 356, 357, 393, 402, 418, 419, 423, 427, 430, 432, 946, 435, 951, 465, 471, 473, 474, 477, 479, 993, 482, 483, 484, 485, 486, 496, 498, 502, 503, 504, 507, 511}, 115: {4, 7, 8, 9, 11, 12, 13, 530, 20, 22, 23, 543, 32, 33, 1067, 558, 48, 1073, 50, 56, 69, 77, 79, 82, 83, 596, 89, 92, 93, 96, 98, 100, 628, 117, 121, 124, 127, 642, 644, 137, 654, 657, 673, 172, 684, 174, 176, 177, 178, 181, 183, 696, 185, 187, 192, 218, 228, 229, 741, 234, 237, 240, 762, 763, 772, 265, 269, 273, 279, 282, 284, 302, 310, 317, 847, 357, 922, 431, 952, 443, 969, 462, 466, 980, 470, 471, 475, 479, 496, 1008, 508, 511}, 253: {1, 1025, 4, 518, 8, 523, 12, 527, 15, 1039, 22, 50, 566, 568, 56, 64, 588, 79, 591, 81, 82, 83, 87, 89, 95, 96, 97, 98, 100, 117, 121, 125, 127, 132, 647, 655, 659, 153, 156, 679, 168, 173, 685, 175, 689, 182, 183, 699, 188, 190, 192, 705, 198, 200, 202, 203, 210, 216, 732, 220, 222, 742, 746, 747, 234, 237, 751, 243, 259, 273, 282, 294, 806, 298, 300, 318, 328, 331, 333, 343, 1404, 895, 427, 433, 1468, 448, 966, 465, 482, 483, 485, 487, 490, 494, 496, 1016, 510}, 305: {512, 1, 2, 7, 11, 12, 13, 14, 15, 527, 529, 530, 16, 528, 33, 550, 42, 557, 45, 48, 1073, 50, 1074, 52, 49, 566, 56, 59, 60, 61, 64, 66, 69, 582, 71, 70, 76, 1101, 79, 1104, 81, 83, 597, 86, 87, 88, 89, 602, 91, 96, 97, 610, 98, 100, 628, 117, 631, 121, 638, 127, 129, 131, 134, 135, 650, 654, 655, 143, 144, 660, 151, 664, 153, 154, 663, 156, 160, 163, 165, 166, 679, 168, 169, 170, 171, 172, 684, 174, 175, 686, 176, 178, 690, 180, 181, 179, 183, 184, 186, 187, 188, 189, 190, 191, 192, 195, 196, 708, 198, 199, 200, 201, 202, 203, 204, 713, 709, 207, 209, 210, 212, 214, 215, 216, 729, 733, 222, 223, 735, 228, 748, 237, 238, 239, 751, 749, 242, 245, 246, 249, 251, 257, 258, 770, 1286, 778, 268, 269, 272, 275, 792, 793, 282, 285, 286, 287, 289, 806, 298, 300, 302, 305, 311, 315, 317, 318, 326, 327, 845, 338, 856, 347, 863, 865, 357, 173, 382, 385, 1411, 904, 403, 405, 408, 921, 923, 423, 425, 427, 428, 941, 943, 1456, 433, 431, 947, 960, 961, 451, 963, 971, 1485, 462, 464, 469, 471, 474, 475, 478, 479, 480, 197, 482, 483, 484, 485, 486, 1512, 1513, 1015, 505, 1018, 511}, 6: {512, 513, 514, 515, 516, 517, 518, 7, 520, 521, 522, 523, 524, 525, 14, 15, 528, 526, 529, 19, 532, 21, 534, 23, 536, 22, 530, 538, 28, 535, 533, 1, 32, 539, 537, 8, 9, 47, 50, 519, 56, 59, 12, 64, 13, 69, 70, 71, 79, 81, 86, 87, 89, 527, 95, 98, 100, 111, 531, 117, 124, 125, 127, 131, 132, 133, 134, 135, 136, 137, 143, 151, 153, 154, 156, 165, 166, 168, 169, 170, 173, 174, 175, 177, 178, 180, 182, 183, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 197, 199, 200, 202, 203, 204, 205, 208, 209, 211, 213, 216, 221, 223, 237, 238, 242, 246, 248, 257, 258, 259, 261, 268, 269, 272, 274, 275, 276, 284, 285, 286, 293, 294, 297, 298, 301, 302, 303, 304, 306, 308, 309, 310, 317, 318, 321, 340, 357, 367, 405, 408, 410, 419, 423, 425, 427, 432, 435, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511}, 62: {512, 1, 514, 3, 4, 1028, 7, 8, 9, 521, 12, 13, 14, 527, 528, 15, 20, 21, 22, 24, 28, 541, 33, 546, 1060, 554, 44, 559, 47, 1073, 1074, 50, 53, 1077, 55, 56, 568, 569, 59, 62, 64, 65, 1091, 68, 69, 70, 582, 71, 72, 76, 78, 81, 82, 1107, 83, 597, 86, 89, 91, 605, 1118, 96, 97, 98, 100, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 111, 1136, 1135, 114, 116, 117, 118, 121, 125, 127, 128, 129, 132, 134, 135, 138, 651, 652, 655, 144, 147, 660, 151, 664, 665, 153, 155, 157, 159, 673, 162, 164, 676, 167, 168, 170, 171, 172, 685, 173, 174, 176, 179, 180, 181, 182, 183, 697, 699, 188, 702, 190, 704, 191, 195, 196, 708, 710, 199, 712, 715, 716, 204, 207, 209, 210, 723, 213, 215, 216, 729, 217, 222, 225, 227, 228, 229, 742, 230, 232, 744, 739, 235, 747, 237, 238, 241, 245, 249, 250, 763, 252, 257, 258, 774, 270, 271, 273, 275, 276, 281, 283, 285, 286, 288, 290, 294, 298, 302, 815, 306, 827, 318, 328, 845, 856, 866, 357, 875, 365, 380, 382, 387, 401, 402, 403, 405, 921, 924, 931, 421, 423, 431, 433, 436, 949, 952, 443, 955, 959, 448, 451, 455, 462, 463, 464, 466, 472, 473, 474, 475, 483, 1009, 498, 1012, 1016, 1018, 508, 509, 511}, 286: {512, 1, 3, 4, 7, 1035, 11, 13, 14, 1039, 527, 1038, 17, 16, 20, 22, 1047, 535, 25, 537, 1051, 29, 1053, 34, 546, 1060, 552, 40, 554, 42, 44, 41, 559, 47, 50, 1075, 1074, 53, 55, 56, 57, 569, 1079, 574, 577, 66, 1091, 70, 72, 73, 588, 77, 1101, 1105, 82, 83, 596, 85, 597, 81, 88, 89, 1113, 91, 90, 1118, 95, 96, 1119, 97, 99, 100, 101, 107, 1133, 111, 628, 1140, 117, 116, 629, 121, 123, 636, 125, 127, 640, 642, 132, 133, 137, 139, 652, 142, 143, 655, 144, 658, 147, 151, 153, 154, 155, 158, 1182, 161, 164, 167, 168, 169, 1194, 171, 683, 172, 174, 175, 176, 689, 1202, 179, 173, 181, 183, 184, 186, 189, 191, 704, 703, 195, 196, 709, 710, 707, 198, 202, 204, 1230, 208, 721, 209, 211, 212, 210, 214, 1239, 216, 217, 724, 728, 732, 215, 734, 224, 737, 738, 739, 228, 229, 742, 231, 741, 232, 746, 234, 747, 237, 749, 235, 240, 1265, 248, 761, 762, 251, 763, 250, 766, 768, 1280, 258, 771, 257, 1286, 1288, 778, 268, 269, 781, 272, 274, 275, 277, 790, 278, 792, 280, 285, 288, 289, 290, 800, 1316, 805, 298, 301, 815, 818, 819, 309, 821, 824, 312, 315, 316, 325, 329, 330, 336, 339, 340, 341, 856, 345, 348, 1375, 354, 357, 367, 881, 883, 372, 884, 888, 379, 381, 382, 386, 1411, 390, 393, 394, 906, 396, 401, 402, 403, 404, 405, 408, 411, 924, 413, 417, 930, 419, 931, 421, 934, 423, 929, 425, 428, 431, 432, 433, 946, 949, 952, 955, 451, 455, 969, 461, 462, 465, 472, 473, 475, 476, 477, 1502, 1503, 1504, 993, 988, 483, 1014}, 200: {1, 2, 515, 1028, 7, 8, 1033, 1034, 11, 9, 523, 15, 528, 527, 22, 24, 25, 1049, 28, 29, 542, 33, 546, 1060, 549, 38, 552, 43, 45, 559, 560, 48, 50, 1073, 54, 56, 568, 570, 58, 62, 63, 576, 578, 1091, 580, 69, 68, 582, 72, 584, 586, 71, 588, 79, 82, 596, 597, 88, 89, 91, 94, 95, 96, 609, 98, 99, 103, 107, 622, 112, 1139, 117, 118, 121, 123, 125, 132, 135, 139, 652, 140, 141, 143, 147, 148, 660, 151, 665, 673, 674, 161, 679, 169, 172, 173, 174, 685, 176, 177, 179, 692, 183, 188, 191, 193, 1217, 1219, 196, 195, 202, 1228, 205, 717, 204, 208, 720, 210, 215, 218, 222, 225, 226, 227, 228, 229, 739, 743, 231, 742, 234, 235, 748, 230, 239, 241, 755, 756, 243, 758, 245, 760, 768, 258, 771, 265, 276, 280, 282, 286, 288, 802, 291, 294, 812, 304, 820, 313, 826, 318, 831, 323, 325, 840, 841, 866, 357, 358, 363, 365, 373, 890, 378, 892, 380, 385, 1411, 391, 392, 393, 1419, 401, 402, 405, 409, 410, 411, 924, 929, 930, 419, 420, 931, 934, 423, 429, 431, 432, 951, 443, 447, 449, 451, 455, 462, 465, 982, 470, 984, 473, 472, 478, 483, 495, 496, 501, 509}, 210: {1, 514, 4, 517, 1028, 523, 527, 15, 23, 25, 28, 40, 44, 49, 50, 56, 568, 58, 65, 69, 70, 72, 73, 79, 88, 94, 1118, 96, 97, 98, 99, 105, 114, 629, 631, 121, 127, 132, 134, 135, 651, 654, 655, 657, 662, 152, 153, 154, 160, 161, 163, 679, 167, 168, 172, 684, 174, 173, 176, 179, 692, 181, 180, 182, 185, 186, 187, 188, 195, 708, 197, 200, 202, 204, 205, 208, 722, 211, 210, 216, 219, 732, 222, 735, 230, 234, 235, 238, 751, 243, 755, 763, 255, 257, 274, 276, 792, 290, 300, 301, 302, 821, 315, 832, 327, 864, 357, 380, 392, 393, 402, 403, 404, 411, 926, 419, 420, 423, 435, 953, 443, 956, 447, 451, 969, 465, 482, 483, 484, 1012, 501, 502}, 224: {518, 11, 526, 1039, 528, 15, 20, 1045, 22, 1044, 26, 28, 29, 1053, 544, 1058, 549, 553, 43, 556, 555, 51, 54, 569, 570, 1085, 69, 581, 583, 582, 70, 77, 591, 86, 92, 1119, 97, 107, 620, 632, 125, 126, 1152, 135, 1163, 655, 658, 147, 148, 149, 662, 660, 157, 162, 676, 678, 686, 687, 689, 178, 1208, 699, 1212, 191, 704, 193, 708, 196, 1221, 715, 720, 723, 212, 724, 215, 727, 729, 731, 221, 222, 223, 736, 744, 748, 237, 751, 239, 243, 245, 258, 778, 276, 277, 280, 282, 284, 286, 287, 294, 300, 301, 313, 318, 321, 322, 323, 325, 326, 328, 329, 332, 333, 846, 349, 356, 1381, 873, 365, 366, 879, 1401, 378, 380, 893, 387, 392, 402, 403, 924, 925, 1441, 1442, 423, 949, 962, 977, 980, 469, 470, 468, 991}, 303: {1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 17, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 38, 41, 42, 43, 44, 46, 47, 49, 50, 53, 54, 55, 56, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 77, 78, 79, 80, 81, 82, 83, 85, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 106, 109, 111, 116, 117, 118, 120, 121, 122, 123, 124, 125, 127, 128, 129, 132, 134, 137, 139, 141, 143, 144, 145, 147, 150, 151, 152, 153, 155, 156, 158, 159, 160, 161, 164, 167, 168, 170, 171, 172, 173, 174, 176, 179, 181, 182, 183, 184, 185, 186, 187, 191, 194, 195, 198, 200, 201, 202, 203, 204, 208, 209, 210, 215, 216, 218, 219, 221, 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 245, 246, 248, 249, 250, 251, 252, 255, 257, 258, 259, 260, 262, 264, 268, 269, 270, 271, 273, 276, 277, 281, 282, 283, 284, 286, 287, 288, 289, 290, 291, 293, 294, 298, 300, 302, 318, 319, 321, 323, 324, 325, 326, 327, 328, 330, 333, 334, 340, 357, 358, 363, 364, 366, 367, 368, 369, 373, 375, 376, 379, 381, 382, 384, 385, 386, 387, 388, 390, 391, 393, 395, 396, 397, 398, 401, 402, 403, 404, 405, 408, 410, 411, 412, 413, 416, 418, 419, 420, 421, 423, 425, 426, 427, 430, 432, 433, 435, 436, 443, 449, 450, 451, 452, 455, 458, 460, 461, 462, 470, 473, 474, 475, 476, 477, 479, 480, 482, 483, 484, 491, 501, 502, 506, 507, 508, 514, 517, 518, 525, 531, 535, 540, 541, 542, 544, 545, 546, 549, 550, 551, 552, 554, 558, 559, 562, 564, 568, 569, 574, 575, 576, 577, 578, 582, 583, 586, 588, 591, 595, 596, 597, 603, 615, 616, 619, 627, 631, 634, 636, 650, 651, 653, 654, 655, 658, 665, 670, 673, 678, 679, 685, 687, 692, 693, 697, 700, 705, 709, 715, 716, 720, 721, 722, 725, 729, 734, 735, 738, 739, 741, 742, 744, 746, 748, 755, 759, 762, 763, 765, 773, 778, 779, 780, 783, 785, 790, 792, 800, 801, 805, 808, 809, 813, 815, 820, 824, 825, 829, 831, 833, 840, 842, 844, 845, 847, 849, 866, 867, 869, 871, 872, 873, 875, 919, 926, 928, 939, 940, 943, 948, 952, 953, 956, 960, 979, 993, 997, 998, 1007, 1011, 1012, 1013, 1014, 1016, 1021, 1023, 1034, 1037, 1039, 1040, 1041, 1044, 1046, 1047, 1048, 1052, 1071, 1073, 1086, 1088, 1089, 1090, 1092, 1095, 1097, 1098, 1109, 1110, 1118, 1135, 1142, 1145, 1153, 1157, 1160, 1178, 1182, 1187, 1188, 1199, 1209, 1210, 1215, 1217, 1218, 1220, 1222, 1224, 1226, 1228, 1230, 1232, 1239, 1258, 1267, 1270, 1273, 1286, 1303, 1315, 1335, 1337, 1407, 1411, 1426, 1508, 1509, 1510, 1511}, 122: {513, 382, 387, 135, 519, 11, 269, 1168, 403, 660, 661, 1044, 1045, 792, 28, 673, 423, 553, 427, 429, 46, 175, 1074, 180, 57, 570, 187, 956, 699, 190, 191, 193, 708, 69, 70, 582, 197, 715, 464, 83, 212, 724, 214, 727, 215, 470, 469, 1113, 86, 1119, 736, 737, 357, 239, 1267, 1268, 378, 127, 509, 510, 511}, 194: {1, 514, 515, 1028, 4, 517, 519, 520, 7, 9, 523, 12, 8, 526, 527, 13, 1041, 530, 529, 15, 1045, 22, 23, 1044, 25, 26, 28, 29, 30, 31, 542, 540, 1058, 546, 549, 516, 550, 1066, 44, 559, 518, 562, 51, 52, 50, 54, 566, 56, 568, 58, 570, 62, 521, 576, 64, 66, 1091, 580, 1093, 582, 71, 70, 69, 73, 72, 588, 77, 76, 78, 79, 81, 82, 83, 1107, 86, 87, 88, 89, 90, 91, 1112, 604, 94, 95, 97, 98, 99, 100, 223, 616, 623, 624, 625, 628, 117, 118, 631, 629, 633, 121, 124, 636, 125, 127, 640, 642, 132, 133, 134, 647, 648, 135, 136, 651, 654, 655, 144, 143, 657, 659, 660, 661, 663, 152, 153, 154, 155, 157, 1183, 160, 161, 162, 159, 674, 165, 679, 168, 167, 172, 173, 174, 175, 177, 178, 179, 692, 181, 1206, 180, 693, 185, 182, 187, 1211, 188, 1207, 191, 192, 705, 193, 195, 196, 708, 1220, 198, 197, 194, 202, 203, 204, 205, 715, 710, 720, 209, 210, 211, 212, 213, 208, 215, 216, 218, 219, 732, 222, 735, 736, 225, 226, 739, 227, 229, 230, 737, 744, 232, 234, 235, 228, 237, 238, 239, 241, 756, 762, 770, 259, 265, 780, 783, 274, 276, 790, 792, 281, 282, 284, 286, 289, 294, 808, 820, 317, 318, 321, 837, 575, 67, 864, 356, 357, 871, 366, 367, 371, 376, 380, 383, 1408, 385, 1409, 1411, 1412, 1410, 387, 393, 399, 402, 403, 404, 405, 183, 410, 414, 417, 419, 423, 186, 425, 427, 939, 941, 431, 944, 433, 946, 432, 435, 951, 443, 449, 450, 451, 456, 971, 465, 466, 467, 470, 471, 474, 478, 479, 991, 481, 482, 483, 485, 997, 488, 199, 491, 496, 498, 1011, 501, 502, 503, 504, 507, 712, 509, 510, 511}, 291: {1, 3, 1028, 4, 5, 7, 8, 9, 11, 12, 15, 17, 1042, 21, 1046, 22, 24, 1047, 27, 28, 540, 31, 33, 546, 1059, 38, 551, 552, 41, 550, 555, 1067, 558, 46, 48, 49, 1073, 563, 50, 53, 54, 1078, 56, 567, 1077, 571, 572, 1083, 574, 566, 569, 568, 578, 66, 67, 581, 70, 69, 72, 1090, 1098, 71, 588, 77, 582, 79, 80, 592, 82, 84, 1109, 85, 597, 89, 90, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 106, 619, 1139, 627, 117, 118, 631, 121, 122, 123, 124, 636, 125, 128, 129, 1157, 140, 143, 144, 655, 147, 151, 153, 1178, 155, 154, 156, 670, 159, 672, 158, 1188, 164, 168, 172, 685, 686, 175, 174, 173, 179, 181, 1206, 184, 1209, 1210, 188, 1213, 1215, 1217, 706, 1219, 1220, 195, 200, 202, 715, 204, 1229, 717, 210, 722, 212, 214, 1239, 215, 729, 218, 219, 732, 1244, 735, 1248, 223, 226, 739, 741, 1253, 231, 232, 742, 234, 235, 236, 237, 238, 747, 240, 755, 244, 756, 246, 245, 760, 1273, 250, 761, 763, 1277, 249, 769, 770, 772, 773, 262, 774, 780, 562, 783, 273, 785, 55, 790, 1303, 1305, 794, 565, 284, 285, 798, 282, 288, 801, 290, 291, 800, 293, 294, 816, 820, 1079, 823, 824, 825, 829, 833, 834, 64, 324, 325, 573, 844, 575, 576, 577, 1376, 356, 364, 365, 366, 367, 369, 375, 376, 379, 383, 384, 385, 391, 393, 395, 396, 401, 402, 403, 404, 405, 410, 411, 412, 924, 413, 416, 417, 418, 928, 420, 421, 933, 423, 427, 428, 941, 940, 939, 943, 946, 1471, 448, 1478, 455, 456, 460, 974, 975, 977, 466, 1489, 469, 470, 471, 985, 475, 1505, 998, 496, 1012, 501, 1016, 1017, 508}, 234: {1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 25, 28, 30, 31, 32, 40, 44, 45, 47, 48, 50, 52, 54, 56, 64, 66, 69, 70, 71, 72, 73, 76, 77, 79, 81, 82, 85, 86, 87, 88, 89, 91, 93, 95, 96, 97, 98, 99, 100, 102, 106, 111, 116, 117, 119, 124, 125, 127, 130, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 144, 147, 148, 151, 152, 153, 154, 156, 157, 160, 161, 162, 163, 164, 165, 166, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 218, 219, 221, 222, 223, 224, 226, 228, 229, 233, 234, 236, 237, 238, 241, 242, 243, 258, 259, 265, 268, 273, 274, 276, 277, 279, 280, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 294, 300, 301, 304, 307, 313, 316, 317, 318, 319, 321, 322, 328, 329, 357, 358, 367, 371, 378, 381, 385, 389, 393, 401, 403, 404, 412, 414, 416, 417, 418, 419, 421, 423, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 443, 445, 447, 448, 451, 462, 463, 464, 465, 466, 470, 471, 472, 473, 474, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 510, 511, 513, 515, 516, 517, 519, 520, 521, 523, 524, 525, 526, 527, 528, 530, 531, 546, 549, 550, 552, 557, 558, 566, 571, 582, 584, 588, 589, 591, 596, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 622, 623, 625, 626, 628, 629, 630, 631, 632, 634, 635, 636, 638, 641, 642, 646, 647, 648, 649, 650, 651, 653, 654, 655, 656, 657, 659, 660, 661, 662, 663, 671, 673, 675, 686, 692, 693, 694, 699, 702, 705, 709, 712, 724, 727, 731, 732, 735, 739, 745, 746, 747, 749, 751, 765, 768, 770, 781, 782, 785, 792, 806, 808, 832, 835, 836, 837, 842, 843, 844, 845, 847, 848, 850, 855, 863, 867, 872, 873, 874, 878, 887, 921, 923, 925, 927, 928, 929, 939, 942, 945, 950, 951, 956, 959, 963, 964, 965, 966, 970, 980, 984, 989, 1003, 1010, 1011, 1015, 1020, 1021, 1035, 1039, 1044, 1048, 1050, 1051, 1063, 1064, 1075, 1078, 1100, 1101, 1120, 1121, 1123, 1126, 1133, 1149, 1168, 1169, 1170, 1172, 1184, 1185, 1186, 1198, 1200, 1203, 1204, 1205, 1221, 1263, 1269, 1285, 1298, 1330, 1369, 1397, 1400, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463}, 119: {7, 9, 1034, 11, 12, 526, 22, 23, 24, 25, 537, 1052, 28, 31, 544, 546, 550, 40, 562, 50, 52, 54, 568, 56, 1086, 64, 70, 1101, 591, 82, 595, 83, 597, 86, 87, 89, 93, 96, 100, 616, 105, 109, 111, 1137, 628, 117, 121, 124, 125, 1153, 132, 1160, 137, 1166, 655, 144, 1170, 658, 147, 154, 168, 684, 1197, 174, 685, 172, 689, 1202, 181, 182, 697, 188, 193, 194, 196, 710, 199, 716, 717, 718, 204, 209, 210, 213, 727, 1244, 222, 226, 741, 742, 235, 1259, 237, 1262, 1263, 1261, 1260, 1265, 755, 751, 245, 1264, 250, 762, 252, 254, 255, 257, 258, 259, 268, 269, 271, 272, 274, 275, 276, 277, 282, 286, 287, 288, 294, 298, 299, 300, 813, 301, 310, 823, 313, 825, 826, 827, 829, 316, 831, 315, 322, 323, 328, 329, 332, 845, 338, 340, 348, 349, 866, 354, 879, 382, 385, 392, 916, 917, 405, 407, 410, 412, 924, 930, 931, 449, 451, 455, 458, 459, 977, 982, 471, 472, 473, 986, 475, 995, 486, 492, 1016, 506, 511}, 167: {512, 513, 641, 133, 392, 136, 521, 8, 137, 655, 530, 659, 404, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 288, 673, 290, 675, 674, 169, 554, 48, 1200, 435, 949, 568, 184, 698, 318, 831, 73, 1225, 204, 719, 465, 83, 726, 86, 216, 603, 733, 222, 478, 96, 225, 735, 99, 606, 1125, 486, 1126, 232, 615, 235, 364, 237, 238, 493, 240, 241, 1147, 381, 126}, 299: {512, 1, 514, 513, 516, 517, 4, 7, 515, 522, 10, 1036, 13, 14, 1039, 12, 17, 1021, 19, 529, 531, 20, 1047, 24, 23, 26, 1050, 538, 25, 28, 543, 32, 1056, 546, 553, 1068, 45, 47, 48, 1073, 1074, 50, 52, 49, 55, 56, 58, 59, 60, 61, 577, 67, 582, 71, 70, 73, 72, 588, 77, 1103, 81, 83, 597, 86, 88, 89, 602, 91, 603, 93, 606, 1119, 95, 607, 94, 99, 100, 101, 98, 615, 97, 1132, 111, 114, 115, 1141, 118, 634, 127, 640, 641, 129, 642, 645, 134, 135, 136, 137, 647, 652, 143, 144, 655, 150, 151, 662, 152, 154, 153, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 747, 179, 692, 181, 182, 185, 186, 702, 1214, 191, 190, 194, 197, 198, 710, 1223, 1226, 1227, 715, 204, 202, 207, 208, 209, 210, 211, 724, 213, 212, 727, 216, 728, 730, 732, 733, 222, 739, 228, 229, 742, 746, 235, 1258, 237, 238, 239, 240, 752, 753, 749, 244, 241, 248, 249, 251, 255, 257, 259, 264, 778, 270, 271, 785, 274, 275, 276, 1300, 278, 792, 283, 285, 286, 288, 289, 294, 297, 1322, 811, 300, 813, 302, 303, 298, 305, 820, 311, 313, 318, 319, 333, 847, 343, 856, 345, 346, 347, 855, 354, 1379, 367, 889, 378, 381, 895, 384, 387, 393, 396, 399, 402, 915, 916, 919, 408, 921, 418, 423, 936, 432, 433, 435, 950, 954, 955, 959, 962, 965, 970, 971, 461, 462, 473, 474, 475, 478, 479, 480, 481, 482, 1506, 484, 485, 998, 483, 488, 1507, 487, 1005, 1006, 508, 496, 498, 501, 502, 503, 1018, 1020, 509, 510, 511}, 308: {1, 4, 5, 7, 8, 9, 11, 12, 15, 17, 19, 21, 22, 23, 24, 25, 28, 30, 31, 32, 42, 44, 45, 47, 48, 49, 50, 54, 55, 56, 58, 59, 60, 61, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 77, 79, 81, 82, 85, 87, 88, 89, 91, 92, 95, 96, 97, 98, 99, 100, 107, 109, 116, 117, 118, 121, 122, 123, 124, 127, 129, 131, 132, 133, 134, 135, 139, 141, 143, 144, 147, 148, 151, 152, 153, 154, 156, 157, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 208, 209, 210, 211, 213, 214, 215, 216, 218, 219, 223, 226, 230, 231, 233, 234, 235, 237, 238, 239, 241, 248, 254, 255, 257, 259, 264, 265, 273, 274, 275, 276, 283, 284, 285, 288, 291, 293, 294, 295, 298, 309, 313, 318, 319, 321, 322, 356, 357, 365, 367, 371, 378, 382, 385, 392, 393, 396, 402, 403, 404, 408, 410, 411, 417, 419, 420, 423, 425, 427, 428, 429, 430, 432, 433, 434, 435, 436, 443, 447, 448, 449, 452, 455, 461, 463, 466, 467, 469, 471, 472, 473, 475, 477, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 490, 492, 493, 494, 495, 496, 498, 499, 501, 502, 504, 505, 506, 507, 509, 510, 511, 512, 513, 514, 515, 516, 517, 519, 520, 521, 522, 523, 525, 526, 528, 530, 531, 537, 546, 550, 558, 559, 566, 567, 568, 569, 578, 579, 581, 582, 583, 584, 588, 589, 591, 597, 602, 603, 605, 607, 609, 610, 611, 613, 614, 615, 616, 618, 628, 629, 632, 633, 634, 637, 640, 641, 642, 646, 648, 649, 653, 654, 655, 656, 657, 659, 660, 661, 663, 664, 665, 671, 673, 675, 678, 679, 684, 686, 692, 693, 699, 705, 708, 709, 712, 715, 729, 732, 736, 739, 741, 742, 746, 747, 755, 770, 778, 792, 802, 805, 806, 811, 822, 824, 825, 826, 842, 843, 848, 853, 856, 863, 921, 928, 942, 945, 959, 962, 965, 966, 968, 1006, 1019, 1021, 1028, 1045, 1046, 1047, 1065, 1073, 1074, 1118, 1121, 1126, 1135, 1140, 1147, 1154, 1169, 1197, 1211, 1252, 1286, 1404, 1411, 1421, 1456, 1515}, 95: {1, 514, 2, 3, 515, 518, 7, 520, 8, 1222, 523, 14, 527, 15, 715, 532, 22, 1047, 24, 25, 26, 539, 28, 542, 31, 32, 33, 546, 1228, 1227, 550, 552, 554, 43, 48, 560, 49, 51, 52, 50, 566, 568, 58, 573, 62, 63, 64, 65, 1090, 1091, 68, 69, 70, 71, 72, 67, 586, 73, 588, 1101, 77, 591, 79, 78, 82, 83, 596, 597, 88, 89, 90, 91, 1116, 94, 95, 96, 97, 98, 99, 101, 102, 1126, 1133, 622, 111, 110, 625, 623, 627, 117, 631, 121, 636, 127, 128, 640, 132, 133, 135, 648, 137, 649, 651, 140, 650, 142, 143, 655, 657, 141, 144, 660, 151, 153, 665, 671, 161, 674, 675, 1188, 679, 168, 170, 683, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 1206, 183, 182, 185, 186, 699, 188, 692, 190, 191, 139, 1217, 193, 1219, 708, 705, 198, 199, 712, 200, 202, 1221, 204, 1229, 1230, 716, 720, 1231, 205, 211, 210, 208, 207, 209, 728, 216, 215, 219, 736, 737, 226, 739, 228, 229, 742, 227, 232, 233, 234, 747, 237, 238, 239, 241, 250, 768, 257, 265, 779, 781, 274, 787, 275, 791, 282, 286, 289, 290, 294, 815, 328, 843, 855, 862, 356, 357, 878, 366, 371, 378, 892, 381, 385, 386, 389, 391, 392, 393, 395, 398, 399, 402, 403, 404, 405, 415, 416, 417, 419, 420, 422, 423, 431, 432, 433, 946, 436, 443, 445, 447, 448, 449, 960, 451, 450, 968, 971, 462, 463, 976, 465, 194, 195, 471, 472, 473, 474, 196, 197, 483, 485, 707, 491, 495, 496, 498, 506, 203, 505, 1018, 507, 509, 510, 511}, 38: {1, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 526, 22, 28, 35, 550, 573, 67, 69, 70, 71, 588, 590, 79, 78, 82, 84, 88, 94, 95, 97, 99, 616, 105, 112, 627, 118, 122, 637, 127, 133, 139, 140, 144, 145, 153, 155, 672, 161, 673, 162, 678, 679, 681, 185, 188, 195, 200, 202, 717, 720, 211, 216, 218, 225, 226, 742, 234, 243, 758, 247, 252, 768, 257, 259, 780, 288, 294, 313, 318, 838, 326, 328, 356, 383, 384, 389, 392, 393, 395, 400, 401, 402, 403, 404, 916, 405, 406, 409, 410, 411, 413, 418, 419, 420, 423, 424, 940, 432, 433, 444, 445, 447, 450, 451, 452, 465, 501, 1014, 1016, 508}, 102: {1025, 2, 515, 4, 5, 1030, 1, 7, 522, 11, 524, 13, 530, 1052, 29, 541, 546, 548, 38, 550, 554, 559, 47, 49, 50, 1076, 565, 566, 53, 568, 56, 55, 62, 576, 577, 66, 67, 578, 68, 70, 72, 73, 588, 79, 82, 83, 596, 597, 88, 89, 91, 94, 95, 96, 98, 99, 612, 101, 102, 625, 629, 118, 117, 121, 635, 636, 127, 650, 652, 655, 144, 663, 665, 153, 667, 154, 671, 672, 161, 675, 164, 163, 167, 168, 684, 173, 686, 685, 176, 689, 175, 174, 172, 181, 182, 183, 184, 185, 186, 187, 188, 194, 195, 200, 201, 202, 204, 1228, 208, 720, 210, 211, 1239, 1240, 217, 218, 219, 732, 222, 734, 226, 227, 228, 229, 230, 231, 233, 746, 235, 748, 234, 239, 751, 241, 245, 248, 760, 768, 258, 771, 260, 264, 265, 778, 269, 271, 272, 273, 785, 792, 797, 286, 288, 294, 809, 810, 298, 300, 301, 302, 307, 823, 313, 827, 316, 831, 319, 322, 326, 327, 840, 328, 841, 332, 334, 338, 856, 350, 866, 358, 363, 879, 373, 892, 384, 385, 386, 391, 393, 396, 399, 403, 405, 409, 411, 418, 930, 431, 432, 947, 436, 435, 443, 444, 445, 447, 448, 449, 450, 986, 476, 993, 501, 502, 510, 511}, 63: {1, 3, 1028, 6, 10, 13, 14, 15, 20, 25, 546, 1067, 50, 591, 79, 596, 100, 106, 108, 109, 111, 1137, 1138, 116, 121, 126, 137, 150, 676, 678, 181, 713, 222, 224, 225, 741, 748, 237, 242, 246, 250, 762, 251, 255, 257, 258, 259, 262, 268, 269, 276, 277, 282, 283, 284, 285, 286, 287, 288, 289, 294, 300, 301, 302, 813, 306, 828, 321, 322, 323, 325, 328, 841, 333, 405, 408, 412, 924, 929, 948, 952, 979, 473, 475, 480, 993, 1007, 1008, 1009, 1010, 1011, 1012, 508}, 160: {1, 514, 3, 4, 7, 9, 11, 13, 15, 531, 21, 23, 24, 32, 544, 1073, 50, 564, 55, 56, 59, 61, 589, 79, 603, 604, 93, 100, 109, 1134, 628, 117, 118, 1142, 123, 124, 126, 127, 640, 129, 135, 137, 150, 151, 153, 157, 671, 160, 161, 168, 169, 1197, 174, 175, 693, 182, 185, 187, 192, 195, 1223, 201, 202, 719, 209, 211, 213, 218, 228, 230, 234, 237, 240, 248, 762, 763, 250, 770, 273, 276, 282, 285, 288, 293, 302, 825, 832, 325, 328, 844, 864, 405, 408, 410, 922, 412, 926, 933, 430, 432, 952, 955, 447, 455, 969, 458, 460, 461, 462, 463, 474, 475, 483, 484, 488, 497, 1012, 1016, 1019, 508}, 50: {9, 268, 15, 276, 286, 288, 544, 547, 823, 1084, 319, 324, 325, 327, 475, 100, 1008, 124, 1010, 246, 253, 123, 508, 125}, 301: {1, 514, 515, 1028, 2, 3, 7, 8, 9, 519, 523, 1035, 11, 521, 527, 12, 15, 17, 4, 22, 21, 24, 25, 28, 29, 1052, 31, 33, 546, 550, 39, 552, 41, 554, 42, 43, 47, 559, 1074, 51, 562, 53, 54, 566, 56, 568, 58, 50, 62, 64, 576, 66, 67, 1091, 68, 582, 71, 69, 73, 588, 77, 76, 79, 80, 81, 82, 597, 1112, 89, 88, 91, 604, 90, 606, 95, 96, 607, 98, 610, 99, 94, 97, 100, 105, 109, 111, 1135, 117, 118, 631, 120, 121, 122, 123, 636, 127, 128, 132, 133, 138, 651, 142, 143, 144, 145, 658, 655, 660, 150, 151, 152, 153, 154, 665, 156, 157, 155, 159, 160, 161, 673, 163, 164, 162, 678, 168, 172, 684, 174, 686, 173, 176, 685, 179, 692, 180, 182, 181, 184, 693, 186, 187, 183, 702, 191, 193, 194, 195, 196, 197, 710, 199, 201, 202, 203, 1228, 204, 1230, 719, 205, 721, 210, 215, 216, 217, 218, 219, 732, 222, 735, 737, 226, 227, 739, 229, 230, 231, 743, 228, 746, 235, 742, 237, 232, 239, 240, 241, 233, 755, 756, 758, 249, 250, 763, 252, 258, 771, 772, 1283, 265, 269, 271, 273, 276, 790, 281, 282, 284, 797, 288, 802, 294, 299, 300, 820, 824, 318, 831, 323, 333, 334, 849, 340, 864, 866, 357, 871, 363, 367, 373, 380, 384, 385, 387, 393, 395, 401, 402, 403, 404, 405, 407, 409, 410, 411, 412, 418, 419, 420, 423, 425, 426, 427, 429, 431, 443, 447, 959, 451, 455, 456, 462, 465, 470, 474, 481, 483, 496, 1012, 501, 502, 503, 1016, 1013, 511}, 225: {136, 143, 22, 286, 418, 1443, 427, 172, 1203, 566, 64, 193, 705, 194, 215, 603, 604, 606, 478, 480, 479, 482, 98, 492, 237, 245, 510}, 290: {1, 515, 1028, 520, 523, 1035, 15, 527, 21, 22, 1047, 28, 31, 546, 1060, 550, 43, 49, 50, 54, 1079, 568, 566, 62, 64, 66, 1091, 69, 71, 588, 82, 596, 88, 89, 91, 95, 97, 98, 99, 102, 105, 109, 622, 625, 629, 118, 117, 120, 121, 125, 132, 133, 135, 136, 650, 139, 651, 141, 143, 144, 151, 153, 158, 161, 162, 164, 167, 168, 683, 172, 685, 174, 176, 180, 692, 181, 183, 699, 191, 193, 196, 199, 202, 204, 205, 208, 720, 210, 211, 216, 218, 732, 222, 227, 739, 228, 742, 230, 229, 234, 235, 239, 243, 755, 252, 257, 1285, 265, 271, 274, 809, 818, 1336, 825, 826, 318, 832, 323, 357, 378, 380, 385, 393, 402, 403, 404, 405, 926, 418, 930, 419, 423, 429, 432, 434, 435, 436, 449, 450, 465, 472, 473, 474, 476, 993, 483, 484, 496, 498, 1013}, 97: {1, 132, 133, 7, 135, 526, 655, 661, 919, 408, 153, 663, 23, 28, 670, 32, 423, 168, 169, 428, 429, 430, 174, 432, 431, 50, 435, 175, 434, 173, 183, 186, 189, 191, 192, 193, 194, 195, 197, 69, 202, 204, 205, 79, 208, 466, 82, 83, 89, 603, 222, 96, 97, 482, 98, 228, 484, 357, 100, 172, 1126, 496, 115}, 157: {1, 258, 3, 1283, 255, 515, 137, 268, 269, 273, 274, 147, 276, 405, 150, 407, 1302, 25, 410, 283, 1051, 286, 289, 290, 293, 934, 298, 685, 50, 313, 340, 597, 1016, 475, 476, 93, 1244, 740, 100, 1258, 235, 1132, 748, 111, 244, 117, 118, 120, 250, 508, 127}, 181: {1, 3, 6, 7, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 24, 25, 93, 100, 103, 104, 105, 106, 107, 108, 109, 111, 112, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 129, 130, 137, 146, 147, 148, 149, 150, 151, 220, 221, 222, 224, 225, 235, 236, 237, 240, 242, 243, 245, 251, 256, 258, 259, 260, 261, 262, 263, 264, 266, 268, 269, 270, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 294, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 358, 359, 360, 363, 368, 369, 370, 405, 406, 407, 408, 409, 410, 411, 412, 413, 424, 455, 456, 457, 458, 459, 460, 471, 472, 473, 475, 476, 477, 508, 544, 546, 547, 591, 593, 595, 596, 597, 598, 619, 620, 628, 676, 678, 680, 681, 682, 683, 685, 687, 688, 690, 696, 713, 717, 718, 740, 741, 742, 743, 744, 748, 749, 756, 758, 760, 762, 763, 764, 766, 767, 813, 815, 818, 819, 820, 823, 824, 825, 826, 827, 828, 829, 831, 832, 833, 834, 840, 841, 844, 845, 846, 847, 864, 866, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 919, 920, 922, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 937, 938, 948, 950, 952, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 988, 989, 990, 991, 995, 1001, 1002, 1008, 1009, 1010, 1011, 1015, 1017, 1022, 1025, 1026, 1028, 1033, 1034, 1038, 1040, 1047, 1048, 1049, 1051, 1052, 1054, 1057, 1059, 1060, 1061, 1067, 1068, 1079, 1081, 1084, 1085, 1086, 1087, 1093, 1094, 1095, 1097, 1102, 1114, 1115, 1117, 1120, 1128, 1129, 1132, 1134, 1137, 1150, 1151, 1152, 1161, 1162, 1163, 1164, 1165, 1171, 1173, 1174, 1187, 1197, 1198, 1199, 1202, 1215, 1242, 1245, 1252, 1255, 1259, 1265, 1272, 1276, 1277, 1280, 1281, 1282, 1284, 1287, 1288, 1289, 1291, 1295, 1296, 1302, 1312, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395}, 278: {258, 515, 525, 269, 22, 538, 923, 286, 288, 294, 301, 173, 302, 306, 311, 313, 315, 347, 603, 98, 752, 882, 245}, 276: {1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 17, 21, 22, 23, 24, 25, 27, 28, 29, 31, 33, 34, 38, 39, 40, 41, 42, 43, 44, 46, 47, 50, 51, 53, 54, 55, 56, 57, 58, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 88, 89, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 104, 108, 109, 117, 118, 120, 121, 122, 123, 124, 125, 127, 128, 135, 139, 141, 142, 143, 144, 145, 147, 148, 150, 151, 153, 154, 156, 157, 158, 159, 160, 161, 164, 168, 169, 171, 172, 173, 174, 175, 176, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 192, 193, 195, 196, 197, 198, 200, 201, 202, 203, 204, 206, 207, 209, 210, 214, 215, 217, 218, 219, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 245, 246, 248, 249, 250, 252, 254, 257, 258, 260, 262, 264, 265, 268, 269, 270, 271, 272, 273, 274, 276, 281, 282, 284, 288, 289, 290, 291, 293, 294, 298, 300, 301, 302, 303, 307, 313, 315, 316, 317, 318, 322, 323, 324, 325, 328, 331, 332, 333, 334, 340, 343, 346, 347, 354, 355, 356, 357, 358, 364, 365, 366, 367, 373, 375, 379, 380, 382, 383, 384, 385, 386, 387, 388, 391, 392, 393, 395, 396, 397, 399, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 413, 415, 417, 418, 419, 420, 421, 423, 425, 426, 427, 428, 429, 431, 432, 433, 436, 443, 447, 448, 449, 450, 451, 452, 453, 455, 456, 458, 461, 462, 463, 469, 470, 471, 472, 473, 474, 475, 479, 496, 501, 508, 518, 523, 526, 531, 540, 541, 544, 546, 547, 549, 550, 551, 552, 554, 558, 559, 561, 562, 563, 564, 566, 567, 568, 569, 571, 572, 575, 576, 577, 578, 581, 582, 583, 586, 588, 590, 591, 595, 597, 603, 624, 627, 628, 631, 634, 636, 640, 647, 649, 652, 653, 655, 658, 665, 669, 672, 678, 679, 682, 684, 685, 686, 691, 692, 693, 696, 697, 709, 710, 715, 719, 720, 721, 725, 727, 728, 732, 734, 735, 737, 739, 742, 743, 746, 747, 748, 750, 751, 755, 759, 763, 765, 768, 769, 770, 771, 772, 773, 774, 779, 780, 783, 786, 789, 790, 794, 796, 797, 800, 801, 802, 803, 806, 807, 809, 816, 820, 823, 825, 831, 840, 843, 844, 845, 853, 854, 871, 876, 879, 881, 890, 902, 915, 916, 919, 922, 928, 930, 931, 939, 941, 942, 943, 949, 951, 959, 969, 974, 975, 977, 993, 1000, 1006, 1010, 1011, 1013, 1016, 1019, 1028, 1031, 1035, 1036, 1042, 1044, 1046, 1047, 1052, 1056, 1073, 1074, 1079, 1081, 1083, 1089, 1090, 1091, 1095, 1098, 1109, 1110, 1118, 1129, 1131, 1135, 1140, 1141, 1145, 1157, 1170, 1172, 1180, 1194, 1199, 1208, 1210, 1213, 1218, 1220, 1221, 1228, 1232, 1239, 1240, 1244, 1245, 1253, 1267, 1273, 1274, 1301, 1314, 1407, 1413, 1416, 1471, 1478, 1481, 1482, 1483}, 7: {4, 7, 8, 9, 10, 11, 12, 22, 23, 25, 27, 28, 29, 31, 32, 39, 44, 47, 50, 51, 52, 53, 54, 56, 62, 64, 68, 69, 70, 71, 72, 73, 77, 78, 79, 80, 81, 82, 86, 89, 90, 91, 92, 93, 96, 97, 98, 99, 100, 101, 106, 118, 121, 125, 126, 127, 131, 132, 133, 134, 135, 136, 139, 140, 141, 142, 143, 144, 145, 151, 152, 153, 154, 156, 157, 161, 162, 163, 164, 166, 168, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 207, 208, 210, 211, 212, 213, 214, 215, 216, 217, 219, 223, 226, 227, 228, 229, 230, 231, 232, 234, 237, 238, 241, 258, 259, 260, 264, 265, 266, 268, 269, 273, 275, 281, 285, 286, 288, 294, 300, 307, 309, 317, 318, 324, 334, 341, 356, 357, 365, 367, 378, 379, 380, 382, 384, 385, 386, 387, 389, 391, 393, 396, 399, 401, 402, 403, 404, 405, 415, 416, 417, 418, 419, 420, 421, 423, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 440, 441, 443, 444, 446, 447, 448, 449, 450, 451, 452, 455, 461, 463, 465, 470, 471, 472, 474, 479, 480, 481, 482, 483, 484, 485, 487, 488, 489, 491, 492, 495, 496, 497, 498, 499, 501, 502, 503, 504, 505, 506, 507, 509, 510, 511, 513, 514, 515, 519, 520, 521, 523, 526, 527, 528, 529, 530, 537, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683}, 10: {1, 513, 4, 518, 7, 519, 521, 9, 11, 12, 13, 525, 527, 16, 529, 530, 531, 22, 23, 32, 33, 40, 558, 48, 50, 56, 59, 60, 64, 69, 582, 70, 588, 589, 82, 85, 602, 603, 604, 93, 606, 98, 611, 100, 99, 610, 615, 617, 116, 629, 124, 127, 129, 132, 133, 134, 135, 137, 651, 652, 654, 655, 656, 657, 144, 663, 664, 153, 155, 156, 157, 160, 161, 162, 164, 168, 170, 174, 175, 176, 686, 178, 179, 692, 693, 694, 695, 696, 183, 186, 698, 697, 182, 702, 191, 704, 705, 703, 194, 706, 195, 710, 711, 200, 712, 199, 203, 197, 205, 709, 198, 211, 216, 218, 221, 223, 230, 234, 238, 245, 269, 273, 274, 275, 276, 283, 285, 286, 289, 294, 302, 319, 321, 333, 334, 340, 357, 367, 371, 385, 180, 404, 414, 418, 185, 420, 430, 432, 435, 699, 447, 700, 701, 192, 461, 462, 463, 467, 470, 474, 475, 478, 479, 480, 482, 483, 484, 486, 707, 488, 489, 708, 493, 495, 496, 497, 498, 499, 502, 504, 505, 509, 510, 511}, 284: {258, 259, 900, 262, 903, 906, 268, 269, 270, 272, 539, 286, 289, 682, 938, 300, 301, 302, 687, 304, 305, 306, 307, 690, 303, 310, 313, 315, 319, 322, 324, 328, 332, 333, 334, 339, 340, 344, 345, 346, 347, 748, 877, 750, 751, 754, 887}, 201: {1, 2, 4, 7, 8, 9, 10, 11, 12, 15, 17, 20, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 36, 37, 39, 42, 45, 46, 47, 48, 50, 51, 53, 55, 56, 57, 58, 59, 61, 62, 64, 65, 68, 69, 70, 71, 76, 77, 79, 81, 82, 86, 87, 89, 92, 93, 95, 96, 97, 98, 99, 100, 116, 117, 118, 121, 123, 124, 125, 127, 128, 129, 134, 137, 144, 145, 146, 148, 150, 156, 157, 160, 164, 171, 172, 173, 174, 175, 176, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 190, 191, 192, 193, 195, 196, 197, 198, 200, 201, 202, 203, 204, 206, 207, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 221, 222, 223, 226, 227, 228, 230, 231, 232, 233, 234, 237, 238, 239, 240, 241, 242, 258, 260, 265, 268, 269, 271, 272, 273, 275, 276, 281, 282, 284, 285, 286, 288, 289, 292, 302, 303, 304, 313, 315, 317, 318, 319, 321, 324, 325, 326, 331, 332, 333, 334, 340, 346, 357, 358, 366, 370, 375, 379, 380, 381, 385, 387, 396, 402, 403, 405, 406, 408, 413, 421, 423, 425, 431, 432, 435, 436, 438, 440, 441, 443, 447, 448, 452, 454, 455, 458, 461, 462, 464, 466, 467, 468, 469, 471, 473, 475, 479, 480, 482, 483, 505, 506, 508, 509, 511, 513, 514, 515, 518, 521, 527, 531, 537, 544, 546, 549, 551, 556, 558, 559, 563, 566, 567, 568, 578, 581, 582, 583, 587, 588, 589, 590, 591, 596, 597, 603, 607, 631, 636, 637, 640, 642, 644, 649, 651, 654, 655, 656, 658, 660, 665, 667, 670, 672, 673, 676, 679, 682, 684, 685, 686, 692, 693, 695, 697, 699, 702, 705, 708, 715, 729, 733, 735, 737, 747, 750, 751, 767, 770, 772, 773, 774, 777, 789, 792, 800, 803, 806, 823, 825, 844, 847, 853, 855, 856, 886, 895, 896, 919, 923, 924, 943, 950, 955, 956, 960, 962, 972, 979, 980, 991, 1006, 1008, 1010, 1011, 1039, 1045, 1056, 1063, 1065, 1069, 1070, 1073, 1098, 1100, 1103, 1128, 1131, 1135, 1136, 1137, 1153, 1163, 1166, 1169, 1170, 1174, 1187, 1192, 1193, 1194, 1208, 1211, 1220, 1224, 1227, 1229, 1245, 1267, 1268, 1355, 1398, 1401, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428}, 287: {1, 257, 4, 9, 11, 268, 652, 276, 156, 28, 926, 546, 291, 294, 39, 168, 298, 682, 426, 301, 1067, 815, 941, 50, 181, 56, 313, 952, 64, 710, 327, 200, 201, 461, 845, 591, 208, 340, 346, 218, 92, 347, 476, 222, 248, 121, 98, 100, 742, 235, 748, 237, 108, 111, 240, 117, 246, 1016, 249, 250, 252, 895}, 246: {1, 3, 1028, 8, 11, 12, 1039, 17, 1044, 24, 25, 1052, 541, 29, 547, 38, 550, 41, 559, 561, 1073, 50, 55, 568, 567, 570, 56, 572, 576, 1089, 578, 67, 68, 69, 66, 585, 588, 1101, 77, 80, 81, 82, 83, 596, 597, 92, 94, 95, 96, 97, 98, 99, 100, 101, 616, 109, 1135, 111, 1139, 628, 117, 118, 121, 633, 132, 133, 739, 138, 651, 652, 145, 658, 151, 665, 155, 158, 159, 672, 161, 675, 1188, 164, 679, 172, 173, 174, 175, 176, 178, 181, 184, 185, 1218, 195, 196, 1220, 1222, 198, 201, 202, 1228, 204, 719, 1232, 721, 720, 210, 211, 208, 724, 215, 728, 216, 219, 223, 735, 226, 227, 228, 741, 230, 231, 232, 743, 746, 235, 236, 748, 238, 239, 240, 758, 250, 252, 765, 254, 257, 260, 265, 790, 284, 798, 288, 289, 802, 294, 809, 816, 827, 831, 840, 841, 849, 853, 356, 368, 369, 895, 384, 385, 1411, 393, 401, 402, 403, 404, 406, 919, 409, 410, 411, 412, 413, 416, 930, 418, 932, 420, 423, 425, 426, 941, 431, 432, 433, 441, 444, 447, 451, 469, 470, 981, 475, 477, 993}, 242: {1152, 1, 1355, 291, 740, 934, 294, 361, 331, 268, 1357, 237, 111, 283, 1137, 305, 306, 1011, 275, 475}, 249: {1, 2, 4, 7, 9, 11, 12, 13, 1039, 22, 23, 24, 1047, 28, 31, 546, 39, 42, 1069, 1073, 50, 53, 55, 568, 56, 58, 64, 68, 69, 583, 588, 79, 1103, 591, 83, 597, 86, 88, 89, 603, 92, 93, 96, 98, 100, 108, 114, 628, 117, 121, 634, 123, 124, 125, 129, 135, 137, 1167, 144, 658, 147, 148, 156, 161, 168, 169, 684, 172, 174, 686, 176, 175, 173, 179, 181, 182, 183, 186, 188, 191, 195, 708, 198, 202, 203, 209, 210, 723, 212, 216, 218, 222, 223, 228, 741, 742, 746, 235, 748, 237, 238, 239, 240, 241, 242, 245, 248, 249, 250, 252, 255, 257, 258, 271, 273, 275, 789, 283, 290, 806, 294, 298, 300, 302, 309, 826, 317, 318, 327, 844, 333, 853, 357, 403, 405, 919, 407, 409, 408, 411, 930, 421, 423, 427, 431, 455, 456, 462, 467, 469, 471, 472, 476, 478, 479, 480, 993, 483, 1011, 1012, 1016}, 99: {1, 3, 4, 7, 11, 12, 22, 1047, 1048, 25, 1052, 28, 544, 546, 1067, 50, 1079, 56, 64, 66, 69, 79, 591, 595, 597, 92, 1119, 98, 100, 105, 107, 619, 1132, 111, 628, 117, 118, 116, 120, 121, 123, 124, 125, 651, 147, 676, 678, 168, 682, 172, 685, 173, 174, 181, 182, 694, 196, 201, 203, 204, 210, 741, 742, 232, 748, 237, 238, 751, 240, 245, 246, 762, 763, 255, 258, 265, 268, 780, 273, 274, 275, 276, 789, 282, 288, 290, 294, 300, 815, 310, 312, 313, 827, 315, 829, 322, 326, 328, 329, 331, 332, 845, 338, 342, 345, 346, 348, 354, 358, 871, 873, 363, 367, 369, 895, 402, 403, 405, 406, 409, 410, 413, 926, 931, 421, 433, 963, 456, 975, 978, 471, 472, 473, 475, 1016, 508}, 178: {1, 2, 1028, 7, 520, 8, 9, 1035, 11, 1033, 1038, 15, 16, 12, 531, 22, 535, 24, 25, 1048, 1051, 28, 540, 1047, 31, 546, 549, 38, 39, 50, 51, 566, 55, 568, 56, 58, 62, 64, 578, 66, 69, 70, 71, 73, 76, 1101, 77, 591, 79, 588, 82, 83, 596, 597, 87, 89, 90, 92, 95, 96, 97, 98, 99, 607, 100, 1119, 106, 619, 111, 625, 628, 117, 118, 121, 123, 124, 125, 127, 131, 1157, 134, 135, 133, 651, 654, 655, 143, 1169, 144, 658, 148, 147, 232, 153, 155, 156, 157, 161, 164, 678, 679, 168, 682, 172, 685, 1197, 684, 176, 174, 178, 179, 180, 181, 173, 183, 696, 184, 187, 193, 194, 195, 196, 197, 199, 200, 202, 203, 204, 720, 209, 210, 724, 214, 215, 216, 729, 218, 731, 219, 220, 222, 735, 223, 226, 739, 228, 229, 742, 230, 744, 233, 234, 746, 235, 237, 238, 751, 1258, 241, 748, 244, 245, 756, 246, 248, 249, 250, 762, 764, 763, 255, 257, 258, 1283, 259, 260, 265, 268, 781, 269, 271, 783, 273, 274, 275, 276, 1300, 790, 280, 281, 282, 792, 284, 283, 286, 288, 1314, 1315, 293, 294, 295, 809, 298, 300, 302, 304, 819, 823, 313, 316, 317, 318, 319, 322, 323, 326, 328, 331, 332, 845, 846, 333, 849, 339, 340, 342, 864, 866, 354, 358, 873, 363, 876, 877, 367, 881, 895, 385, 405, 410, 926, 423, 427, 431, 433, 435, 454, 455, 458, 460, 465, 978, 469, 471, 984, 472, 476, 478, 480, 993, 483, 484, 491, 1004, 495, 1011, 1012, 500, 1016, 506, 508, 510, 511}, 251: {257, 258, 1, 132, 1028, 7, 520, 265, 12, 15, 144, 275, 148, 147, 22, 151, 405, 281, 282, 24, 535, 25, 288, 33, 418, 294, 295, 298, 427, 172, 685, 429, 813, 45, 300, 50, 181, 183, 55, 313, 185, 60, 64, 1098, 202, 845, 79, 978, 210, 596, 468, 595, 471, 472, 597, 476, 222, 248, 121, 866, 480, 100, 612, 742, 748, 109, 237, 111, 1012, 117, 1014, 118, 1016, 249, 250, 252, 125}, 81: {1, 3, 1028, 7, 269, 273, 274, 147, 275, 405, 150, 151, 280, 1047, 282, 410, 412, 411, 926, 283, 544, 289, 25, 284, 288, 1059, 928, 169, 42, 432, 824, 186, 318, 456, 717, 591, 79, 210, 595, 596, 726, 471, 475, 476, 93, 222, 98, 100, 742, 619, 237, 276, 111, 756, 116, 118, 121, 124}, 260: {1025, 258, 270, 272, 538, 288, 682, 300, 307, 313, 319, 322, 326, 333, 334, 1105, 1243, 350, 990, 362, 748, 881, 882, 891}, 25: {257, 258, 131, 1, 133, 134, 135, 520, 8, 265, 7, 269, 13, 141, 655, 143, 527, 275, 404, 657, 151, 23, 25, 408, 929, 419, 169, 427, 173, 174, 430, 432, 177, 50, 176, 692, 181, 183, 568, 186, 189, 195, 197, 837, 455, 968, 969, 204, 463, 208, 79, 82, 86, 729, 474, 604, 477, 478, 222, 480, 479, 98, 121, 228, 357, 742, 615, 612, 238, 239, 495, 498, 114, 116, 501, 633, 125, 127}, 59: {1, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 18, 22, 23, 24, 25, 28, 30, 32, 33, 39, 42, 44, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 64, 65, 68, 69, 70, 71, 73, 77, 79, 81, 82, 83, 86, 87, 89, 90, 91, 92, 95, 96, 97, 98, 99, 100, 101, 102, 106, 109, 111, 116, 118, 121, 123, 125, 126, 127, 129, 131, 132, 133, 134, 135, 136, 137, 140, 141, 142, 143, 147, 148, 149, 151, 161, 168, 169, 170, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 208, 209, 210, 211, 212, 215, 216, 218, 219, 220, 226, 227, 228, 229, 230, 232, 234, 235, 237, 238, 240, 241, 243, 258, 265, 273, 274, 276, 277, 284, 285, 286, 287, 288, 290, 313, 318, 321, 323, 357, 367, 369, 371, 380, 381, 382, 385, 387, 392, 393, 402, 403, 404, 405, 410, 416, 418, 419, 421, 423, 425, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 443, 447, 448, 451, 458, 462, 465, 466, 468, 470, 472, 473, 474, 476, 477, 479, 480, 483, 484, 485, 488, 489, 490, 491, 492, 496, 498, 501, 503, 504, 505, 506, 507, 508, 510, 511, 513, 514, 515, 516, 517, 519, 521, 523, 524, 525, 526, 527, 528, 529, 547, 549, 550, 559, 562, 564, 566, 567, 568, 569, 570, 581, 582, 583, 584, 588, 591, 595, 597, 602, 603, 604, 606, 608, 609, 610, 611, 612, 615, 616, 618, 620, 622, 625, 633, 640, 642, 644, 647, 649, 650, 651, 654, 655, 657, 658, 659, 660, 662, 663, 664, 670, 672, 673, 675, 679, 684, 687, 692, 699, 702, 705, 707, 708, 709, 710, 713, 715, 717, 724, 727, 729, 732, 735, 736, 739, 741, 742, 746, 747, 755, 756, 760, 762, 764, 770, 774, 781, 789, 792, 823, 825, 845, 846, 855, 866, 871, 900, 919, 926, 928, 929, 931, 946, 951, 953, 959, 963, 969, 972, 974, 975, 1005, 1009, 1021, 1028, 1047, 1048, 1050, 1065, 1074, 1093, 1101, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120}, 72: {1, 2, 515, 5, 518, 7, 520, 9, 521, 12, 525, 526, 527, 528, 15, 530, 23, 25, 1051, 28, 550, 38, 553, 45, 48, 50, 51, 54, 566, 568, 56, 58, 64, 68, 581, 70, 582, 69, 77, 79, 591, 81, 82, 1110, 87, 89, 603, 96, 97, 98, 100, 106, 628, 117, 118, 121, 1147, 124, 1148, 127, 129, 642, 644, 134, 135, 647, 649, 654, 655, 147, 664, 161, 679, 170, 172, 685, 174, 684, 176, 177, 180, 181, 182, 699, 187, 188, 191, 194, 195, 196, 708, 198, 197, 203, 204, 210, 212, 215, 220, 222, 226, 228, 229, 230, 233, 234, 237, 241, 770, 265, 271, 792, 318, 844, 866, 356, 357, 380, 382, 402, 403, 405, 423, 427, 435, 443, 972, 461, 466, 471, 476, 479, 480, 484, 493, 504, 509}, 87: {2, 515, 4, 514, 1028, 519, 7, 9, 521, 523, 8, 13, 1041, 21, 22, 1047, 535, 25, 1049, 27, 33, 546, 550, 39, 40, 38, 554, 47, 1072, 48, 1074, 50, 49, 566, 1079, 55, 568, 570, 56, 62, 63, 64, 1089, 576, 67, 68, 575, 70, 578, 72, 585, 73, 66, 79, 80, 82, 598, 87, 88, 89, 90, 94, 1118, 96, 97, 100, 111, 628, 629, 118, 120, 121, 127, 128, 132, 134, 135, 648, 651, 144, 657, 152, 1177, 154, 153, 1179, 157, 1182, 1183, 1184, 161, 1181, 163, 1187, 1189, 1190, 679, 167, 1188, 1185, 1186, 684, 172, 174, 685, 177, 179, 692, 181, 182, 183, 180, 186, 188, 702, 192, 705, 194, 195, 196, 709, 199, 201, 202, 715, 204, 208, 209, 210, 211, 722, 216, 728, 732, 222, 228, 229, 230, 231, 232, 233, 235, 238, 239, 252, 765, 254, 775, 780, 781, 783, 273, 274, 789, 790, 791, 281, 158, 796, 801, 802, 804, 1178, 808, 297, 810, 300, 303, 1180, 824, 318, 321, 323, 845, 849, 577, 866, 871, 367, 372, 382, 384, 385, 386, 393, 396, 401, 403, 405, 409, 410, 411, 414, 926, 423, 427, 944, 433, 435, 449, 451, 472, 476, 477, 996, 1000, 491, 496, 502, 1016, 510}, 42: {1, 2, 1028, 521, 523, 12, 15, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 25, 1049, 1051, 28, 1050, 546, 38, 43, 44, 559, 48, 50, 566, 54, 568, 58, 63, 64, 66, 69, 70, 582, 72, 71, 73, 588, 77, 79, 591, 82, 83, 595, 86, 87, 88, 603, 606, 95, 96, 97, 98, 99, 102, 103, 111, 625, 627, 118, 121, 125, 131, 132, 135, 136, 141, 142, 143, 655, 658, 660, 151, 161, 679, 168, 684, 685, 172, 173, 176, 175, 174, 692, 181, 183, 185, 194, 195, 196, 202, 203, 204, 720, 210, 211, 215, 216, 729, 219, 732, 222, 735, 736, 227, 228, 229, 742, 230, 746, 234, 237, 239, 755, 756, 265, 781, 785, 274, 273, 276, 280, 281, 794, 283, 284, 282, 290, 294, 826, 318, 834, 845, 866, 357, 367, 369, 371, 380, 385, 387, 402, 403, 404, 405, 409, 410, 411, 924, 925, 413, 926, 418, 419, 934, 423, 939, 428, 427, 941, 432, 433, 953, 443, 451, 456, 969, 462, 977, 467, 468, 469, 471, 479, 999, 491, 496, 501, 506}, 292: {1, 2, 515, 7, 9, 10, 11, 523, 525, 1039, 528, 20, 535, 24, 1050, 28, 48, 1073, 50, 56, 58, 64, 589, 79, 83, 86, 602, 603, 607, 96, 98, 100, 111, 115, 628, 117, 118, 1142, 631, 124, 125, 127, 132, 135, 653, 654, 144, 657, 659, 661, 150, 151, 153, 665, 156, 165, 168, 169, 173, 174, 176, 180, 181, 183, 190, 705, 194, 195, 193, 197, 199, 203, 207, 209, 214, 222, 223, 226, 228, 234, 235, 748, 248, 249, 250, 252, 264, 265, 276, 789, 282, 285, 288, 298, 300, 320, 324, 328, 331, 844, 343, 855, 405, 919, 408, 419, 423, 429, 462, 472, 475, 479, 482, 483, 484, 486, 488, 491, 492, 1010, 499, 1014, 510, 511}, 20: {1, 11, 143, 144, 15, 274, 148, 405, 22, 151, 288, 931, 678, 423, 934, 172, 174, 176, 50, 820, 181, 568, 186, 194, 323, 69, 588, 204, 208, 210, 82, 597, 87, 94, 95, 98, 866, 357, 742, 496, 633, 498, 243, 118, 121, 378, 763, 252}, 13: {1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 17, 21, 22, 23, 24, 25, 27, 28, 29, 32, 33, 37, 38, 39, 40, 42, 45, 48, 49, 50, 51, 53, 56, 58, 59, 60, 61, 62, 64, 66, 67, 68, 69, 70, 71, 72, 73, 78, 79, 82, 83, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 109, 110, 111, 116, 117, 118, 121, 124, 127, 128, 132, 135, 137, 138, 141, 143, 144, 145, 147, 150, 152, 153, 154, 155, 157, 158, 160, 161, 163, 164, 165, 166, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 241, 242, 243, 258, 260, 261, 262, 263, 264, 265, 268, 269, 270, 271, 272, 273, 274, 275, 276, 279, 280, 281, 285, 286, 287, 288, 289, 290, 292, 294, 299, 300, 301, 302, 303, 305, 306, 307, 308, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 326, 327, 328, 329, 331, 332, 333, 334, 336, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 353, 354, 355, 357, 358, 360, 362, 363, 367, 370, 371, 377, 379, 382, 384, 385, 387, 391, 393, 394, 396, 398, 400, 401, 402, 403, 404, 405, 406, 409, 410, 411, 413, 414, 416, 417, 418, 419, 420, 421, 423, 424, 427, 428, 429, 430, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 455, 457, 462, 463, 467, 471, 472, 473, 474, 475, 476, 477, 478, 480, 481, 482, 483, 484, 485, 488, 491, 492, 493, 494, 497, 498, 501, 502, 504, 505, 506, 507, 508, 509, 510, 511, 514, 515, 516, 517, 518, 519, 520, 522, 523, 524, 525, 526, 527, 529, 530, 531, 538, 539, 540, 541, 546, 547, 548, 549, 550, 551, 553, 554, 558, 559, 561, 563, 564, 565, 566, 567, 568, 569, 570, 572, 573, 576, 578, 585, 586, 588, 589, 590, 596, 597, 601, 602, 603, 604, 606, 610, 612, 613, 614, 615, 617, 619, 621, 624, 625, 629, 630, 631, 632, 635, 636, 637, 638, 639, 646, 647, 650, 651, 652, 654, 655, 656, 657, 659, 661, 662, 663, 665, 667, 668, 669, 670, 671, 672, 673, 674, 675, 678, 679, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 694, 705, 706, 709, 712, 716, 720, 722, 732, 733, 735, 736, 737, 739, 740, 746, 747, 748, 749, 750, 751, 752, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918}, 138: {513, 514, 1, 517, 518, 519, 133, 137, 523, 12, 13, 14, 15, 147, 150, 151, 662, 26, 285, 45, 435, 182, 56, 185, 187, 318, 194, 209, 211, 602, 603, 474, 222, 98, 483, 484, 100, 614, 357, 487, 617, 742, 493, 238, 111, 496, 497, 116, 117, 121, 509}, 60: {513, 514, 515, 517, 7, 8, 9, 519, 523, 1020, 525, 13, 524, 12, 529, 528, 1122, 15, 21, 23, 1050, 28, 30, 546, 1060, 558, 47, 50, 56, 59, 60, 61, 64, 69, 582, 71, 70, 73, 77, 79, 592, 593, 82, 88, 89, 602, 603, 604, 605, 606, 95, 608, 1121, 98, 1123, 1124, 613, 1126, 97, 616, 609, 618, 1125, 615, 617, 629, 633, 121, 637, 638, 128, 641, 131, 132, 133, 134, 135, 136, 138, 650, 141, 654, 143, 144, 656, 659, 660, 661, 151, 152, 665, 153, 671, 160, 673, 162, 163, 161, 675, 166, 168, 172, 173, 174, 684, 176, 175, 178, 179, 180, 181, 183, 185, 186, 699, 705, 194, 195, 708, 197, 199, 200, 204, 205, 207, 208, 209, 210, 211, 212, 215, 216, 729, 218, 222, 735, 736, 225, 227, 228, 229, 230, 745, 234, 237, 751, 755, 265, 272, 275, 286, 799, 810, 835, 327, 842, 357, 366, 378, 385, 393, 403, 404, 405, 411, 416, 417, 418, 419, 420, 423, 427, 429, 430, 433, 434, 435, 443, 445, 601, 474, 478, 479, 480, 482, 483, 96, 485, 484, 489, 490, 491, 492, 493, 494, 495, 496, 498, 499, 501, 502, 505, 506, 507, 508, 1021, 510, 511}, 57: {1, 1028, 7, 8, 11, 15, 1047, 24, 28, 546, 1059, 42, 1071, 1073, 50, 56, 64, 1093, 1094, 1095, 1096, 588, 79, 597, 100, 105, 109, 111, 117, 121, 125, 126, 144, 151, 678, 168, 682, 173, 181, 194, 195, 710, 199, 204, 717, 222, 225, 744, 748, 237, 240, 243, 756, 245, 248, 760, 249, 250, 763, 252, 257, 258, 264, 271, 281, 282, 284, 288, 294, 295, 298, 304, 820, 825, 826, 318, 831, 321, 833, 323, 844, 845, 864, 866, 871, 405, 409, 410, 411, 926, 930, 419, 932, 456, 975, 471, 472, 473, 475, 476, 988, 477, 1001, 496, 1011, 1016}, 223: {1, 8, 11, 22, 535, 25, 1051, 1052, 28, 546, 1088, 69, 71, 591, 596, 597, 95, 619, 620, 111, 117, 118, 120, 121, 125, 1150, 143, 155, 682, 1197, 173, 185, 717, 1234, 216, 225, 742, 237, 749, 243, 756, 248, 249, 763, 252, 255, 257, 258, 259, 1284, 1291, 274, 276, 1300, 278, 282, 284, 286, 288, 289, 294, 295, 298, 300, 819, 820, 309, 313, 826, 318, 321, 322, 323, 328, 329, 332, 333, 845, 846, 339, 864, 866, 873, 369, 908, 405, 409, 411, 924, 926, 929, 930, 423, 969, 974, 975, 977, 470, 984, 476, 477, 993, 1009, 1014, 1016}, 189: {512, 1, 513, 516, 4, 517, 7, 520, 9, 10, 8, 523, 13, 526, 15, 16, 527, 525, 531, 20, 21, 14, 532, 24, 28, 30, 31, 1056, 1060, 1065, 44, 45, 50, 56, 568, 59, 60, 61, 582, 1098, 1099, 588, 79, 83, 596, 89, 91, 1115, 1117, 603, 607, 96, 97, 99, 100, 105, 618, 630, 118, 632, 120, 121, 634, 124, 638, 127, 639, 129, 1154, 131, 132, 133, 134, 135, 647, 136, 137, 652, 654, 143, 656, 657, 659, 661, 150, 663, 151, 157, 162, 165, 166, 170, 172, 173, 174, 175, 176, 178, 179, 180, 181, 694, 185, 186, 191, 705, 194, 196, 197, 198, 199, 203, 204, 207, 209, 214, 216, 732, 225, 742, 234, 238, 751, 241, 246, 248, 253, 255, 268, 274, 275, 276, 792, 281, 283, 1315, 294, 297, 815, 820, 313, 317, 318, 847, 855, 1372, 863, 1400, 1401, 1402, 1403, 378, 381, 1404, 914, 405, 418, 934, 423, 433, 952, 459, 462, 473, 474, 990, 479, 480, 483, 484, 485, 486, 487, 489, 492, 1005, 496, 498, 499, 500, 501, 503, 505, 1020, 1021, 510, 511}, 243: {129, 1281, 387, 1, 514, 7, 8, 137, 778, 10, 268, 13, 14, 1039, 15, 655, 16, 275, 660, 531, 1148, 22, 151, 280, 25, 283, 28, 285, 286, 157, 26, 162, 423, 813, 173, 1197, 306, 435, 694, 1465, 1466, 699, 317, 318, 191, 194, 196, 69, 582, 708, 713, 458, 461, 77, 208, 83, 468, 724, 86, 215, 1368, 1115, 732, 221, 93, 223, 736, 225, 477, 737, 237, 111, 367, 116, 125, 246, 631, 632, 127, 509, 511}, 92: {1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 15, 22, 24, 25, 28, 29, 31, 32, 38, 39, 40, 42, 43, 44, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 58, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 77, 78, 79, 80, 81, 82, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 98, 100, 101, 102, 106, 108, 109, 111, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 129, 132, 134, 135, 143, 144, 145, 147, 148, 149, 153, 154, 155, 156, 157, 159, 160, 161, 164, 167, 168, 169, 171, 172, 173, 174, 175, 176, 179, 180, 181, 182, 183, 184, 186, 189, 190, 191, 193, 195, 196, 198, 199, 200, 201, 202, 203, 204, 208, 209, 210, 212, 214, 215, 216, 217, 218, 219, 220, 222, 223, 225, 226, 227, 228, 229, 230, 231, 233, 234, 235, 237, 238, 239, 240, 241, 243, 245, 246, 248, 249, 250, 252, 257, 258, 260, 265, 268, 271, 273, 274, 276, 278, 281, 282, 284, 288, 289, 291, 294, 295, 304, 307, 313, 318, 322, 328, 356, 363, 364, 367, 368, 369, 370, 376, 382, 383, 385, 386, 393, 396, 401, 402, 403, 405, 406, 408, 409, 410, 411, 412, 418, 421, 423, 425, 428, 431, 432, 433, 436, 449, 450, 451, 452, 453, 455, 456, 463, 466, 471, 474, 475, 476, 500, 501, 504, 508, 515, 518, 521, 527, 528, 531, 540, 546, 551, 552, 554, 558, 559, 561, 566, 568, 575, 576, 577, 581, 582, 583, 587, 591, 595, 596, 597, 619, 620, 627, 628, 631, 636, 640, 642, 651, 655, 658, 660, 663, 665, 672, 673, 674, 678, 679, 684, 685, 692, 702, 704, 707, 708, 709, 712, 715, 717, 720, 722, 725, 727, 728, 729, 731, 732, 735, 737, 739, 742, 743, 747, 748, 755, 756, 758, 761, 763, 771, 778, 780, 781, 783, 785, 789, 790, 794, 800, 802, 820, 823, 825, 826, 831, 834, 841, 845, 846, 855, 922, 925, 926, 928, 930, 931, 934, 947, 949, 955, 961, 963, 974, 977, 980, 984, 986, 993, 998, 1011, 1012, 1014, 1016, 1018, 1023, 1028, 1033, 1037, 1040, 1041, 1042, 1046, 1047, 1049, 1052, 1073, 1074, 1079, 1090, 1095, 1142, 1157, 1194, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216}, 241: {268, 270, 286, 288, 292, 294, 682, 300, 302, 689, 690, 307, 310, 313, 332, 335, 343, 346, 350, 750, 880, 887, 895}, 254: {1, 1028, 8, 1033, 526, 15, 21, 22, 1050, 28, 29, 542, 35, 548, 1060, 554, 561, 50, 573, 62, 575, 64, 577, 1091, 69, 71, 584, 75, 588, 78, 82, 596, 90, 1116, 94, 97, 610, 99, 98, 612, 102, 103, 616, 621, 1133, 622, 624, 625, 112, 629, 118, 121, 125, 126, 132, 133, 135, 136, 649, 138, 140, 141, 142, 655, 143, 662, 151, 665, 1183, 162, 163, 164, 678, 679, 167, 168, 172, 174, 176, 181, 183, 186, 699, 188, 196, 199, 200, 204, 210, 211, 214, 219, 222, 225, 227, 228, 229, 230, 231, 234, 238, 1263, 240, 241, 243, 755, 768, 257, 258, 259, 265, 269, 286, 313, 323, 842, 843, 343, 357, 871, 378, 379, 892, 380, 384, 386, 389, 393, 400, 403, 405, 415, 416, 417, 418, 419, 1444, 1443, 423, 429, 432, 435, 436, 951, 441, 443, 1469, 1470, 448, 449, 451, 967, 457, 465, 472, 496, 498, 501, 504}, 293: {1, 2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 16, 17, 22, 23, 25, 26, 27, 28, 29, 31, 33, 36, 38, 39, 45, 47, 48, 49, 50, 51, 53, 54, 55, 56, 62, 64, 65, 66, 67, 68, 69, 70, 71, 73, 76, 77, 79, 81, 82, 85, 87, 88, 89, 91, 92, 94, 96, 97, 98, 99, 100, 111, 117, 121, 122, 124, 125, 127, 129, 132, 133, 134, 135, 137, 139, 143, 144, 147, 148, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 192, 193, 194, 195, 196, 198, 199, 200, 202, 203, 204, 206, 208, 209, 210, 211, 213, 215, 216, 217, 218, 222, 223, 226, 227, 228, 229, 230, 232, 233, 234, 235, 237, 238, 239, 240, 245, 248, 249, 250, 251, 252, 255, 257, 258, 264, 265, 272, 273, 275, 280, 282, 283, 284, 285, 286, 288, 290, 291, 293, 294, 297, 298, 300, 302, 303, 313, 315, 316, 317, 322, 325, 328, 346, 347, 356, 357, 366, 367, 371, 380, 386, 393, 401, 402, 403, 404, 405, 410, 411, 412, 414, 416, 419, 420, 421, 423, 425, 426, 427, 429, 430, 432, 433, 435, 436, 443, 445, 447, 451, 455, 460, 461, 462, 463, 464, 466, 467, 468, 469, 471, 474, 479, 480, 482, 483, 484, 485, 491, 492, 496, 497, 501, 502, 503, 504, 506, 507, 509, 510, 513, 514, 518, 521, 527, 528, 531, 544, 546, 549, 550, 553, 554, 558, 559, 566, 568, 571, 572, 578, 582, 583, 588, 589, 591, 603, 605, 616, 619, 627, 628, 629, 632, 636, 637, 638, 642, 646, 647, 649, 651, 653, 654, 655, 657, 658, 660, 663, 665, 678, 679, 684, 685, 686, 693, 696, 705, 708, 710, 712, 715, 720, 724, 729, 732, 739, 742, 746, 747, 748, 751, 761, 765, 770, 779, 780, 781, 789, 804, 809, 810, 815, 820, 824, 831, 843, 845, 849, 856, 866, 871, 877, 895, 924, 931, 933, 939, 941, 942, 943, 955, 956, 977, 1011, 1016, 1017, 1018, 1041, 1042, 1044, 1046, 1048, 1057, 1098, 1101, 1119, 1132, 1135, 1147, 1161, 1208, 1209, 1217, 1220, 1226, 1228, 1229, 1248, 1264, 1267, 1286, 1298, 1311, 1333, 1421}, 127: {258, 901, 268, 271, 286, 288, 294, 300, 50, 690, 62, 449, 450, 343, 222, 227, 228, 229, 230, 748, 750, 243, 380}, 222: {1, 2, 4, 7, 8, 9, 11, 12, 15, 17, 22, 24, 25, 26, 28, 29, 31, 35, 38, 40, 41, 44, 48, 49, 50, 51, 53, 54, 56, 58, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 77, 78, 79, 80, 81, 82, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 106, 109, 111, 117, 118, 120, 121, 125, 127, 132, 133, 135, 140, 142, 144, 145, 147, 148, 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 167, 168, 172, 173, 174, 175, 176, 180, 181, 182, 183, 185, 186, 188, 191, 193, 195, 196, 198, 200, 202, 204, 208, 209, 210, 214, 215, 216, 217, 218, 219, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 237, 238, 239, 240, 241, 245, 246, 247, 248, 249, 250, 252, 255, 257, 258, 261, 265, 268, 270, 271, 276, 278, 280, 281, 282, 284, 288, 293, 294, 298, 300, 302, 313, 318, 323, 326, 328, 333, 338, 356, 357, 358, 363, 364, 365, 366, 367, 368, 373, 375, 377, 378, 379, 380, 385, 386, 388, 391, 392, 393, 395, 396, 399, 401, 402, 403, 405, 407, 409, 410, 411, 412, 413, 418, 419, 422, 423, 424, 426, 431, 432, 433, 436, 441, 446, 448, 449, 450, 451, 452, 455, 457, 465, 468, 470, 471, 472, 473, 475, 476, 477, 501, 506, 508, 521, 527, 529, 537, 540, 541, 542, 546, 549, 550, 552, 554, 559, 566, 568, 569, 571, 575, 576, 577, 578, 580, 585, 588, 591, 596, 597, 619, 620, 623, 627, 628, 636, 637, 642, 651, 654, 655, 658, 662, 665, 670, 672, 678, 679, 685, 689, 692, 693, 700, 710, 712, 715, 716, 717, 719, 722, 723, 724, 729, 732, 734, 735, 738, 739, 742, 746, 747, 750, 755, 756, 762, 763, 768, 769, 770, 772, 780, 781, 783, 790, 796, 806, 808, 810, 812, 815, 816, 819, 825, 826, 829, 833, 840, 845, 849, 869, 895, 929, 931, 934, 939, 941, 944, 946, 949, 972, 1011, 1016, 1029, 1035, 1041, 1042, 1044, 1045, 1053, 1054, 1057, 1059, 1060, 1066, 1074, 1078, 1079, 1087, 1089, 1139, 1145, 1178, 1179, 1188, 1206, 1207, 1218, 1220, 1226, 1239, 1250, 1267, 1284, 1291, 1336, 1419, 1438, 1439, 1440}, 267: {2, 3, 515, 1028, 518, 7, 5, 1035, 12, 17, 22, 24, 28, 29, 31, 545, 546, 33, 550, 552, 554, 559, 47, 1073, 50, 53, 54, 55, 568, 566, 56, 62, 575, 64, 65, 578, 67, 1090, 579, 69, 68, 576, 77, 80, 81, 82, 597, 1110, 88, 89, 92, 94, 98, 100, 614, 108, 622, 114, 121, 1145, 124, 127, 128, 642, 647, 135, 141, 654, 655, 144, 145, 143, 147, 665, 153, 155, 156, 157, 158, 159, 1185, 161, 164, 679, 168, 169, 684, 685, 172, 175, 176, 177, 174, 179, 180, 693, 182, 181, 183, 186, 187, 188, 189, 195, 198, 710, 202, 203, 204, 715, 206, 720, 209, 210, 214, 727, 216, 217, 218, 1240, 732, 222, 226, 739, 227, 228, 229, 231, 230, 742, 233, 235, 238, 239, 240, 250, 771, 774, 265, 780, 273, 789, 293, 294, 810, 824, 1336, 826, 324, 840, 364, 367, 1401, 380, 384, 385, 386, 391, 393, 403, 405, 408, 410, 411, 926, 423, 943, 944, 433, 431, 1471, 959, 449, 450, 455, 464, 980, 470, 474, 475, 479, 480, 483, 484, 498}, 11: {517, 8, 521, 9, 11, 524, 12, 715, 15, 527, 526, 22, 208, 24, 25, 28, 29, 718, 544, 549, 38, 39, 40, 42, 558, 47, 213, 561, 51, 52, 54, 56, 57, 58, 724, 573, 577, 580, 69, 70, 79, 83, 729, 597, 86, 88, 90, 603, 94, 97, 98, 100, 107, 109, 110, 111, 120, 121, 123, 125, 737, 229, 738, 646, 135, 652, 654, 659, 660, 742, 663, 662, 168, 173, 175, 176, 747, 690, 692, 180, 185, 699, 190, 191, 194, 707, 196, 710, 713, 714, 203, 204, 716, 717, 719, 720, 721, 722, 723, 211, 725, 726, 215, 216, 727, 730, 728, 732, 733, 734, 735, 736, 222, 731, 227, 740, 741, 230, 743, 739, 744, 746, 228, 745, 749, 750, 751, 752, 241, 238, 237, 748, 239, 258, 259, 260, 268, 274, 277, 286, 290, 291, 300, 301, 312, 317, 318, 324, 332, 350, 356, 357, 365, 367, 370, 372, 382, 383, 386, 393, 395, 399, 401, 402, 405, 414, 423, 425, 427, 428, 429, 430, 431, 433, 434, 435, 449, 451, 455, 504, 508}, 8: {385, 258, 259, 260, 518, 7, 688, 651, 11, 144, 273, 403, 22, 566, 550, 294, 172, 301, 686, 685, 687, 689, 50, 176, 684, 435, 182, 183, 568, 56, 177, 187, 188, 181, 190, 55, 195, 457, 79, 336, 338, 210, 82, 341, 89, 222, 96, 227, 228, 229, 358, 233, 174, 241, 243, 431, 127, 510, 511}, 162: {1, 7, 11, 144, 403, 147, 1047, 151, 25, 28, 544, 294, 298, 42, 685, 174, 943, 50, 179, 181, 55, 826, 710, 79, 208, 597, 474, 222, 742, 230, 358, 105, 237, 1011, 628, 117, 1012, 121, 122, 1019, 508, 254}, 279: {1, 2, 4, 7, 10, 12, 13, 16, 17, 21, 22, 24, 25, 27, 28, 29, 30, 31, 32, 33, 40, 41, 42, 44, 47, 50, 52, 56, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 73, 79, 80, 81, 83, 87, 88, 89, 90, 92, 94, 95, 96, 99, 100, 101, 105, 108, 109, 114, 116, 117, 120, 121, 122, 124, 128, 129, 130, 131, 132, 137, 139, 144, 146, 147, 150, 151, 152, 153, 154, 156, 158, 163, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 180, 181, 184, 186, 189, 190, 191, 193, 195, 198, 201, 202, 203, 204, 207, 208, 209, 210, 211, 214, 216, 219, 222, 224, 226, 227, 228, 229, 230, 231, 233, 234, 235, 236, 238, 239, 240, 242, 248, 249, 250, 254, 257, 259, 265, 269, 273, 274, 275, 283, 284, 288, 290, 291, 294, 301, 319, 321, 342, 363, 364, 367, 368, 372, 373, 374, 375, 379, 380, 382, 384, 385, 386, 388, 390, 391, 393, 395, 396, 397, 398, 399, 401, 403, 405, 407, 408, 410, 411, 412, 413, 415, 418, 421, 425, 428, 429, 431, 432, 433, 434, 436, 444, 449, 450, 451, 455, 456, 461, 462, 464, 465, 469, 470, 472, 474, 480, 482, 486, 487, 489, 490, 491, 501, 502, 509, 514, 515, 517, 529, 530, 532, 534, 541, 544, 546, 547, 550, 554, 556, 558, 562, 566, 571, 576, 577, 578, 586, 591, 594, 597, 616, 624, 625, 630, 636, 638, 644, 649, 652, 654, 659, 660, 662, 663, 666, 671, 679, 684, 685, 687, 702, 709, 710, 712, 713, 719, 721, 725, 727, 728, 732, 739, 740, 741, 744, 746, 751, 753, 759, 760, 762, 763, 764, 778, 779, 780, 781, 789, 792, 797, 802, 804, 805, 809, 810, 820, 823, 824, 826, 827, 831, 832, 833, 841, 843, 845, 853, 854, 862, 864, 869, 871, 890, 901, 919, 922, 926, 932, 940, 945, 946, 948, 952, 969, 971, 976, 977, 978, 982, 990, 992, 998, 1000, 1001, 1007, 1011, 1012, 1017, 1025, 1027, 1028, 1030, 1032, 1034, 1035, 1037, 1039, 1047, 1048, 1052, 1059, 1070, 1072, 1087, 1088, 1093, 1095, 1108, 1110, 1113, 1118, 1120, 1121, 1132, 1133, 1142, 1151, 1162, 1170, 1178, 1180, 1181, 1182, 1185, 1195, 1205, 1206, 1209, 1215, 1219, 1224, 1228, 1230, 1231, 1239, 1240, 1242, 1244, 1247, 1250, 1266, 1271, 1274, 1288, 1291, 1305, 1312, 1321, 1336, 1361, 1376, 1402, 1411, 1413, 1428, 1435, 1437, 1444, 1480, 1481, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501}, 145: {1, 1025, 3, 1028, 5, 515, 7, 1033, 9, 11, 12, 13, 308, 15, 1040, 17, 1041, 22, 1047, 23, 25, 1046, 1051, 1054, 31, 544, 1057, 546, 549, 38, 39, 552, 553, 42, 554, 44, 558, 559, 1073, 50, 51, 563, 1077, 54, 566, 56, 569, 55, 53, 572, 59, 574, 1087, 62, 64, 1090, 66, 69, 218, 77, 1102, 591, 592, 79, 590, 595, 597, 88, 89, 603, 96, 97, 98, 100, 105, 106, 620, 109, 1132, 111, 628, 117, 118, 631, 120, 121, 122, 635, 123, 637, 636, 249, 642, 134, 135, 650, 652, 740, 150, 665, 234, 155, 156, 159, 672, 673, 674, 164, 678, 680, 682, 683, 172, 684, 174, 685, 688, 687, 173, 690, 692, 181, 182, 183, 696, 185, 1208, 1210, 1212, 1215, 1216, 1217, 195, 200, 713, 202, 203, 717, 209, 212, 727, 216, 217, 728, 731, 732, 1245, 219, 222, 1248, 737, 738, 739, 227, 229, 230, 743, 228, 742, 226, 235, 236, 237, 750, 751, 752, 238, 242, 240, 756, 754, 246, 49, 760, 761, 250, 763, 764, 762, 1273, 767, 1279, 257, 770, 258, 260, 259, 771, 1287, 1288, 265, 266, 1290, 1292, 1291, 270, 1289, 271, 273, 274, 275, 276, 789, 278, 281, 282, 796, 284, 286, 769, 800, 293, 294, 298, 299, 300, 301, 302, 304, 816, 820, 821, 310, 823, 312, 313, 825, 315, 316, 826, 1283, 831, 827, 268, 327, 328, 329, 269, 331, 333, 338, 339, 342, 343, 346, 859, 348, 347, 352, 354, 355, 356, 869, 358, 363, 877, 879, 368, 176, 890, 379, 380, 892, 894, 895, 896, 898, 901, 393, 394, 405, 406, 407, 410, 411, 924, 413, 412, 925, 928, 929, 930, 926, 933, 934, 939, 431, 943, 436, 949, 443, 447, 448, 449, 450, 452, 454, 460, 974, 977, 979, 470, 471, 472, 983, 988, 477, 993, 486, 1001, 1002, 1009, 1011, 1012, 510, 1023}, 28: {258, 5, 646, 7, 11, 12, 143, 271, 145, 529, 153, 282, 665, 28, 670, 286, 800, 288, 31, 672, 164, 444, 294, 678, 423, 173, 174, 429, 176, 50, 434, 436, 567, 184, 441, 568, 443, 56, 185, 573, 447, 448, 449, 450, 323, 195, 322, 70, 196, 200, 201, 603, 332, 588, 79, 209, 217, 218, 89, 859, 219, 222, 95, 480, 479, 98, 223, 100, 228, 227, 609, 229, 230, 234, 96, 117, 760, 380, 895}, 135: {642, 258, 260, 5, 265, 12, 653, 1046, 23, 288, 33, 802, 294, 39, 38, 554, 939, 173, 431, 176, 943, 564, 54, 566, 1208, 185, 183, 443, 56, 55, 449, 1217, 321, 324, 325, 452, 327, 581, 203, 77, 79, 470, 603, 475, 98, 227, 228, 229, 230, 226, 744, 233, 234, 504, 379}, 32: {257, 259, 7, 9, 268, 271, 276, 405, 151, 408, 288, 290, 294, 298, 50, 307, 181, 313, 455, 591, 1016, 475, 222, 248, 866, 100, 742, 250, 235, 111, 240, 1012, 117, 246, 118, 245, 249, 122, 628, 508, 1023}, 90: {512, 514, 515, 516, 517, 6, 518, 519, 9, 521, 11, 12, 10, 526, 14, 528, 529, 17, 19, 18, 20, 22, 531, 1048, 25, 26, 530, 1045, 23, 30, 31, 543, 33, 547, 553, 42, 8, 45, 52, 568, 56, 57, 59, 60, 1086, 64, 65, 69, 70, 523, 1097, 1101, 79, 83, 1109, 86, 89, 602, 603, 604, 527, 606, 607, 96, 609, 98, 611, 100, 613, 1125, 614, 610, 617, 618, 1039, 1134, 1136, 1137, 117, 631, 632, 126, 127, 639, 131, 132, 133, 134, 647, 648, 136, 650, 651, 652, 141, 654, 143, 656, 657, 137, 659, 148, 149, 662, 150, 151, 661, 153, 155, 154, 660, 156, 162, 676, 166, 1192, 1193, 1194, 1195, 170, 1197, 1198, 175, 1200, 177, 178, 690, 179, 693, 692, 1206, 182, 185, 180, 187, 1205, 699, 190, 191, 703, 705, 193, 707, 194, 197, 709, 199, 198, 713, 202, 203, 708, 196, 208, 721, 209, 211, 212, 213, 215, 216, 218, 730, 732, 221, 220, 223, 739, 234, 237, 750, 241, 242, 753, 245, 762, 258, 259, 268, 269, 270, 272, 273, 275, 276, 285, 286, 287, 289, 811, 300, 301, 813, 303, 302, 306, 307, 821, 310, 311, 312, 313, 316, 317, 318, 322, 323, 836, 837, 328, 135, 644, 847, 340, 855, 347, 171, 863, 354, 356, 357, 875, 174, 367, 879, 684, 889, 382, 896, 385, 1196, 387, 900, 903, 904, 905, 906, 1199, 402, 923, 1201, 1202, 421, 1203, 423, 425, 1204, 427, 430, 942, 433, 945, 435, 954, 443, 958, 447, 962, 964, 965, 966, 454, 192, 971, 972, 462, 464, 471, 474, 475, 478, 990, 480, 481, 482, 995, 483, 485, 486, 479, 488, 489, 490, 97, 491, 493, 494, 1005, 496, 497, 498, 499, 500, 501, 505, 506, 507, 1020, 509, 511}, 216: {1, 3, 4, 7, 9, 1035, 12, 11, 15, 531, 22, 1047, 25, 27, 28, 546, 42, 1067, 47, 50, 55, 56, 569, 58, 64, 577, 66, 67, 65, 69, 72, 1101, 79, 81, 82, 91, 93, 95, 97, 98, 100, 108, 628, 122, 129, 134, 1161, 651, 652, 143, 144, 655, 658, 147, 150, 151, 153, 156, 673, 168, 169, 172, 174, 693, 182, 181, 184, 697, 188, 189, 1218, 196, 200, 201, 202, 204, 721, 210, 215, 216, 218, 221, 735, 226, 228, 231, 234, 747, 237, 238, 249, 763, 764, 257, 274, 276, 789, 790, 280, 282, 286, 298, 302, 824, 313, 315, 318, 833, 356, 357, 364, 367, 368, 396, 402, 403, 405, 408, 412, 928, 416, 421, 423, 943, 433, 466, 475, 496, 498, 1010, 508}, 250: {1, 2, 7, 9, 12, 527, 23, 28, 44, 558, 1073, 50, 55, 56, 64, 69, 582, 71, 588, 81, 596, 89, 91, 92, 95, 96, 98, 100, 111, 1137, 628, 117, 116, 629, 123, 127, 129, 135, 1161, 140, 144, 151, 153, 154, 159, 676, 678, 174, 687, 688, 1199, 175, 179, 181, 183, 184, 191, 195, 196, 200, 202, 204, 222, 223, 742, 234, 235, 748, 237, 238, 751, 240, 754, 244, 248, 258, 259, 260, 264, 270, 271, 276, 288, 293, 294, 813, 313, 321, 322, 323, 324, 325, 328, 331, 844, 333, 338, 340, 357, 367, 378, 1426, 404, 418, 933, 943, 948, 969, 458, 469, 984, 474, 475, 988, 477, 991, 480, 993, 485, 496, 501, 1014}, 271: {1, 514, 2, 1028, 517, 518, 516, 8, 520, 521, 11, 12, 13, 526, 15, 528, 523, 530, 529, 527, 4, 22, 1046, 25, 539, 28, 31, 515, 546, 549, 38, 40, 43, 44, 9, 47, 48, 50, 51, 52, 54, 566, 56, 58, 570, 62, 64, 65, 1091, 580, 69, 582, 70, 73, 1101, 77, 79, 591, 81, 83, 87, 88, 89, 602, 603, 605, 1117, 95, 1120, 97, 98, 610, 100, 614, 107, 1133, 111, 624, 625, 1139, 116, 117, 630, 118, 121, 124, 125, 126, 127, 642, 130, 132, 133, 134, 644, 135, 137, 648, 651, 131, 141, 654, 649, 136, 657, 659, 660, 661, 148, 663, 161, 168, 169, 170, 172, 173, 174, 176, 177, 690, 179, 180, 692, 182, 178, 181, 185, 697, 187, 699, 188, 190, 191, 192, 705, 193, 703, 196, 709, 197, 199, 200, 713, 714, 194, 204, 198, 205, 202, 208, 203, 210, 211, 215, 216, 729, 218, 220, 732, 221, 735, 224, 739, 742, 744, 234, 235, 747, 237, 750, 239, 238, 241, 1266, 242, 756, 244, 248, 763, 257, 258, 1282, 265, 269, 272, 274, 275, 276, 277, 792, 282, 283, 284, 285, 286, 289, 294, 300, 302, 815, 310, 823, 311, 312, 313, 315, 317, 318, 328, 845, 847, 338, 345, 346, 347, 864, 866, 356, 357, 882, 371, 378, 381, 384, 1411, 392, 393, 402, 405, 410, 411, 924, 414, 419, 423, 186, 425, 427, 428, 429, 430, 435, 951, 441, 443, 956, 451, 963, 461, 462, 466, 470, 471, 472, 474, 476, 477, 479, 480, 481, 482, 485, 707, 487, 490, 493, 494, 495, 496, 498, 499, 504, 505, 506, 507, 509, 510, 511}, 265: {257, 258, 1, 7, 1
Download .txt
gitextract_orqyikle/

├── .gitignore
├── LICENSE
├── classic-machine-learning/
│   ├── birch_cluster.ipynb
│   ├── bpr.ipynb
│   ├── dbscan_cluster.ipynb
│   ├── decision_tree_classifier.ipynb
│   ├── decision_tree_classifier_1.ipynb
│   ├── fp_tree_prefixspan.ipynb
│   ├── kmeans_cluster.ipynb
│   ├── knn_classifier.ipynb
│   ├── lda.ipynb
│   ├── linear-regression.ipynb
│   ├── lle.ipynb
│   ├── matrix_factorization.ipynb
│   ├── native_bayes.ipynb
│   ├── pca.ipynb
│   ├── regression_production_example.ipynb
│   ├── ridge_regression.ipynb
│   ├── ridge_regression_1.ipynb
│   ├── spectral_cluster.ipynb
│   └── svm_classifier.ipynb
├── data/
│   ├── nlp_test0.txt
│   └── nlp_test2.txt
├── ensemble-learning/
│   ├── adaboost-classifier.ipynb
│   ├── gbdt_classifier.ipynb
│   ├── random_forest_classifier.ipynb
│   └── xgboost-example.ipynb
├── mathematics/
│   ├── mcmc_2.ipynb
│   ├── mcmc_3_4.ipynb
│   └── random_data_generation.ipynb
├── model-in-product/
│   ├── sklearn-jpmml/
│   │   ├── PMML_Example.ipynb
│   │   ├── demo.pmml
│   │   └── pmml_demo/
│   │       ├── pom.xml
│   │       └── src/
│   │           └── main/
│   │               └── java/
│   │                   └── PMMLDemo.java
│   └── tensorflow-java/
│       ├── TFDemoJava/
│       │   ├── pom.xml
│       │   └── src/
│       │       └── main/
│       │           └── java/
│       │               └── TFjavaDemo.java
│       ├── rf.pb
│       └── tensorflow_model.ipynb
├── natural-language-processing/
│   ├── chinese_digging.ipynb
│   ├── english_digging.ipynb
│   ├── hash_trick.ipynb
│   ├── hmm.ipynb
│   ├── lda.ipynb
│   ├── nmf.ipynb
│   ├── tf-idf.ipynb
│   └── word2vec.ipynb
├── readme.md
└── reinforcement-learning/
    ├── a3c.py
    ├── actor_critic.py
    ├── ddpg.py
    ├── ddqn.py
    ├── ddqn_prioritised_replay.py
    ├── dqn.py
    ├── duel_dqn.py
    ├── introduction.py
    ├── nature_dqn.py
    ├── policy_gradient.py
    ├── q_learning_windy_world.py
    └── sarsa_windy_world.py
Download .txt
SYMBOL INDEX (157 symbols across 14 files)

FILE: model-in-product/sklearn-jpmml/pmml_demo/src/main/java/PMMLDemo.java
  class PMMLDemo (line 28) | public class PMMLDemo {
    method loadPmml (line 29) | private Evaluator loadPmml(){
    method predict (line 60) | private int predict(Evaluator evaluator,int a, int b, int c, int d) {
    method main (line 92) | public static void main(String args[]){

FILE: model-in-product/tensorflow-java/TFDemoJava/src/main/java/TFjavaDemo.java
  class TFjavaDemo (line 22) | public class TFjavaDemo {
    method main (line 23) | public static void main(String args[]){
    method loadTensorflowModel (line 51) | static private byte[] loadTensorflowModel(String path){
    method covertArrayToTensor (line 60) | static private Tensor<Float> covertArrayToTensor(float inputs[][]){

FILE: reinforcement-learning/a3c.py
  class ACNet (line 44) | class ACNet(object):
    method __init__ (line 45) | def __init__(self, scope, globalAC=None):
    method _build_net (line 83) | def _build_net(self, scope):
    method update_global (line 95) | def update_global(self, feed_dict):  # run by a local
    method pull_global (line 98) | def pull_global(self):  # run by a local
    method choose_action (line 101) | def choose_action(self, s):  # run by a local
  class Worker (line 108) | class Worker(object):
    method __init__ (line 109) | def __init__(self, name, globalAC):
    method work (line 114) | def work(self):

FILE: reinforcement-learning/actor_critic.py
  class Actor (line 21) | class Actor():
    method __init__ (line 22) | def __init__(self, env, sess):
    method create_softmax_network (line 33) | def create_softmax_network(self):
    method weight_variable (line 57) | def weight_variable(self, shape):
    method bias_variable (line 61) | def bias_variable(self, shape):
    method choose_action (line 65) | def choose_action(self, observation):
    method learn (line 71) | def learn(self, state, action, td_error):
  class Critic (line 88) | class Critic():
    method __init__ (line 89) | def __init__(self, env, sess):
    method create_Q_network (line 103) | def create_Q_network(self):
    method create_training_method (line 115) | def create_training_method(self):
    method train_Q_network (line 125) | def train_Q_network(self, state, reward, next_state):
    method weight_variable (line 132) | def weight_variable(self,shape):
    method bias_variable (line 136) | def bias_variable(self,shape):
  function main (line 146) | def main():

FILE: reinforcement-learning/ddpg.py
  class DDPG (line 44) | class DDPG(object):
    method __init__ (line 45) | def __init__(self, a_dim, s_dim, a_bound,):
    method choose_action (line 84) | def choose_action(self, s):
    method learn (line 87) | def learn(self):
    method store_transition (line 101) | def store_transition(self, s, a, r, s_):
    method _build_a (line 107) | def _build_a(self, s, scope, trainable):
    method _build_c (line 113) | def _build_c(self, s, a, scope, trainable):

FILE: reinforcement-learning/ddqn.py
  class DQN (line 25) | class DQN():
    method __init__ (line 27) | def __init__(self, env):
    method create_Q_network (line 43) | def create_Q_network(self):
    method create_training_method (line 75) | def create_training_method(self):
    method perceive (line 82) | def perceive(self,state,action,reward,next_state,done):
    method train_Q_network (line 92) | def train_Q_network(self):
    method egreedy_action (line 121) | def egreedy_action(self,state):
    method action (line 132) | def action(self,state):
    method update_target_q_network (line 137) | def update_target_q_network(self, episode):
    method weight_variable (line 143) | def weight_variable(self,shape):
    method bias_variable (line 147) | def bias_variable(self,shape):
  function main (line 157) | def main():

FILE: reinforcement-learning/ddqn_prioritised_replay.py
  class SumTree (line 27) | class SumTree(object):
    method __init__ (line 35) | def __init__(self, capacity):
    method add (line 44) | def add(self, p, data):
    method update (line 53) | def update(self, tree_idx, p):
    method get_leaf (line 61) | def get_leaf(self, v):
    method total_p (line 91) | def total_p(self):
  class Memory (line 95) | class Memory(object):  # stored as ( s, a, r, s_ ) in SumTree
    method __init__ (line 106) | def __init__(self, capacity):
    method store (line 109) | def store(self, transition):
    method sample (line 115) | def sample(self, n):
    method batch_update (line 132) | def batch_update(self, tree_idx, abs_errors):
  class DQN (line 139) | class DQN():
    method __init__ (line 141) | def __init__(self, env):
    method create_Q_network (line 158) | def create_Q_network(self):
    method create_training_method (line 191) | def create_training_method(self):
    method store_transition (line 199) | def store_transition(self, s, a, r, s_, done):
    method perceive (line 203) | def perceive(self,state,action,reward,next_state,done):
    method train_Q_network (line 212) | def train_Q_network(self):
    method egreedy_action (line 248) | def egreedy_action(self,state):
    method action (line 259) | def action(self,state):
    method update_target_q_network (line 264) | def update_target_q_network(self, episode):
    method weight_variable (line 270) | def weight_variable(self,shape):
    method bias_variable (line 274) | def bias_variable(self,shape):
  function main (line 284) | def main():

FILE: reinforcement-learning/dqn.py
  class DQN (line 24) | class DQN():
    method __init__ (line 26) | def __init__(self, env):
    method create_Q_network (line 42) | def create_Q_network(self):
    method create_training_method (line 55) | def create_training_method(self):
    method perceive (line 62) | def perceive(self,state,action,reward,next_state,done):
    method train_Q_network (line 72) | def train_Q_network(self):
    method egreedy_action (line 97) | def egreedy_action(self,state):
    method action (line 108) | def action(self,state):
    method weight_variable (line 113) | def weight_variable(self,shape):
    method bias_variable (line 117) | def bias_variable(self,shape):
  function main (line 127) | def main():

FILE: reinforcement-learning/duel_dqn.py
  class DQN (line 25) | class DQN():
    method __init__ (line 27) | def __init__(self, env):
    method create_Q_network (line 43) | def create_Q_network(self):
    method create_training_method (line 97) | def create_training_method(self):
    method perceive (line 104) | def perceive(self,state,action,reward,next_state,done):
    method train_Q_network (line 114) | def train_Q_network(self):
    method egreedy_action (line 139) | def egreedy_action(self,state):
    method action (line 150) | def action(self,state):
    method update_target_q_network (line 155) | def update_target_q_network(self, episode):
    method weight_variable (line 161) | def weight_variable(self,shape):
    method bias_variable (line 165) | def bias_variable(self,shape):
  function main (line 175) | def main():

FILE: reinforcement-learning/introduction.py
  class State (line 20) | class State:
    method __init__ (line 21) | def __init__(self):
    method hash (line 32) | def hash(self):
    method is_end (line 42) | def is_end(self):
    method next_state (line 84) | def next_state(self, i, j, symbol):
    method print (line 91) | def print(self):
  function get_all_states_impl (line 106) | def get_all_states_impl(current_state, current_symbol, all_states):
  function get_all_states (line 118) | def get_all_states():
  class Judger (line 129) | class Judger:
    method __init__ (line 133) | def __init__(self, player1, player2):
    method reset (line 143) | def reset(self):
    method alternate (line 147) | def alternate(self):
    method play (line 153) | def play(self, print=False):
  class Player (line 174) | class Player:
    method __init__ (line 177) | def __init__(self, step_size=0.1, epsilon=0.1):
    method reset (line 184) | def reset(self):
    method set_state (line 188) | def set_state(self, state):
    method set_symbol (line 192) | def set_symbol(self, symbol):
    method backup (line 208) | def backup(self):
    method act (line 222) | def act(self):
    method save_policy (line 247) | def save_policy(self):
    method load_policy (line 251) | def load_policy(self):
  class HumanPlayer (line 260) | class HumanPlayer:
    method __init__ (line 261) | def __init__(self, **kwargs):
    method reset (line 267) | def reset(self):
    method set_state (line 270) | def set_state(self, state):
    method set_symbol (line 273) | def set_symbol(self, symbol):
    method backup (line 277) | def backup(self, _):
    method act (line 280) | def act(self):
  function train (line 288) | def train(epochs):
  function compete (line 307) | def compete(turns):
  function play (line 326) | def play():

FILE: reinforcement-learning/nature_dqn.py
  class DQN (line 25) | class DQN():
    method __init__ (line 27) | def __init__(self, env):
    method create_Q_network (line 43) | def create_Q_network(self):
    method create_training_method (line 75) | def create_training_method(self):
    method perceive (line 82) | def perceive(self,state,action,reward,next_state,done):
    method train_Q_network (line 92) | def train_Q_network(self):
    method egreedy_action (line 117) | def egreedy_action(self,state):
    method action (line 128) | def action(self,state):
    method update_target_q_network (line 133) | def update_target_q_network(self, episode):
    method weight_variable (line 139) | def weight_variable(self,shape):
    method bias_variable (line 143) | def bias_variable(self,shape):
  function main (line 153) | def main():

FILE: reinforcement-learning/policy_gradient.py
  class Policy_Gradient (line 21) | class Policy_Gradient():
    method __init__ (line 22) | def __init__(self, env):
    method create_softmax_network (line 34) | def create_softmax_network(self):
    method weight_variable (line 56) | def weight_variable(self, shape):
    method bias_variable (line 60) | def bias_variable(self, shape):
    method choose_action (line 64) | def choose_action(self, observation):
    method store_transition (line 69) | def store_transition(self, s, a, r):
    method learn (line 74) | def learn(self):
  function main (line 99) | def main():

FILE: reinforcement-learning/q_learning_windy_world.py
  function step (line 44) | def step(state, action):
  function episode (line 58) | def episode(q_value):
  function q_learning (line 91) | def q_learning():

FILE: reinforcement-learning/sarsa_windy_world.py
  function step (line 44) | def step(state, action):
  function episode (line 58) | def episode(q_value):
  function sarsa (line 90) | def sarsa():
Condensed preview — 59 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,482K chars).
[
  {
    "path": ".gitignore",
    "chars": 6,
    "preview": ".idea/"
  },
  {
    "path": "LICENSE",
    "chars": 1072,
    "preview": "MIT License\n\nCopyright (c) 2018 刘建平(Pinard Liu)\n\nPermission is hereby granted, free of charge, to any person obtaining a"
  },
  {
    "path": "classic-machine-learning/birch_cluster.ipynb",
    "chars": 120323,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/bpr.ipynb",
    "chars": 703209,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/dbscan_cluster.ipynb",
    "chars": 165290,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/decision_tree_classifier.ipynb",
    "chars": 172230,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "classic-machine-learning/decision_tree_classifier_1.ipynb",
    "chars": 171868,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/fp_tree_prefixspan.ipynb",
    "chars": 9809,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/kmeans_cluster.ipynb",
    "chars": 492915,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/knn_classifier.ipynb",
    "chars": 146317,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "classic-machine-learning/lda.ipynb",
    "chars": 227597,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/linear-regression.ipynb",
    "chars": 53483,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \" Copyright (C)                     "
  },
  {
    "path": "classic-machine-learning/lle.ipynb",
    "chars": 493979,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/matrix_factorization.ipynb",
    "chars": 481187,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"\\n\",\n    \"Copyright (C)\\n\",\n    \"20"
  },
  {
    "path": "classic-machine-learning/native_bayes.ipynb",
    "chars": 2001,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "classic-machine-learning/pca.ipynb",
    "chars": 78123,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/regression_production_example.ipynb",
    "chars": 71895,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<h3>可用于产品的线性回归算法建流程</h3>\\n\",\n    \"<"
  },
  {
    "path": "classic-machine-learning/ridge_regression.ipynb",
    "chars": 43457,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \" Copyright (C)                     "
  },
  {
    "path": "classic-machine-learning/ridge_regression_1.ipynb",
    "chars": 4523,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "classic-machine-learning/spectral_cluster.ipynb",
    "chars": 4621,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "classic-machine-learning/svm_classifier.ipynb",
    "chars": 243855,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "data/nlp_test0.txt",
    "chars": 66,
    "preview": "ɳ̾ѧϰػǽɽİи¶￵Ĵܴѧϰֻ˷ֿǰһһȾƻѧϰְصس·º̣￵ǸöԲңԲ·ͺѧϰһ·5Ǯ·ԼŲ5飬ʼº̡û뵽·Ȼ÷ˮɳˣʱڻĭܲס"
  },
  {
    "path": "data/nlp_test2.txt",
    "chars": 53,
    "preview": "ɳë櫴ǼھݵıëЦ˵·ҵг֮Ҫŷݼ˾ĹȨûҪ·ھݵۺ԰ױ￵ѧϰҪЩӶ·£ŷݼȥסë櫲ȥ÷̫˷ѣԼסþͺ̤ʵ"
  },
  {
    "path": "ensemble-learning/adaboost-classifier.ipynb",
    "chars": 114396,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "ensemble-learning/gbdt_classifier.ipynb",
    "chars": 18428,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "ensemble-learning/random_forest_classifier.ipynb",
    "chars": 15866,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "ensemble-learning/xgboost-example.ipynb",
    "chars": 14657,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "mathematics/mcmc_2.ipynb",
    "chars": 111793,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "mathematics/mcmc_3_4.ipynb",
    "chars": 88562,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "mathematics/random_data_generation.ipynb",
    "chars": 161747,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C)\\n\",\n    \"2016 - 2019 "
  },
  {
    "path": "model-in-product/sklearn-jpmml/PMML_Example.ipynb",
    "chars": 2656,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "model-in-product/sklearn-jpmml/demo.pmml",
    "chars": 3055,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<PMML xmlns=\"http://www.dmg.org/PMML-4_3\" version=\"4.3\">\n\t<Heade"
  },
  {
    "path": "model-in-product/sklearn-jpmml/pmml_demo/pom.xml",
    "chars": 753,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "model-in-product/sklearn-jpmml/pmml_demo/src/main/java/PMMLDemo.java",
    "chars": 3505,
    "preview": "/*\r\n\tCopyright (C) 2016 - 2019 Pinard Liu(liujianping-ok@163.com)\r\n\r\n\thttps://www.cnblogs.com/pinard\r\n\r\n\tPermission give"
  },
  {
    "path": "model-in-product/tensorflow-java/TFDemoJava/pom.xml",
    "chars": 628,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "model-in-product/tensorflow-java/TFDemoJava/src/main/java/TFjavaDemo.java",
    "chars": 1810,
    "preview": "/*\r\n\tCopyright (C) 2016 - 2019 Pinard Liu(liujianping-ok@163.com)\r\n\r\n\thttps://www.cnblogs.com/pinard\r\n\r\n\tPermission give"
  },
  {
    "path": "model-in-product/tensorflow-java/tensorflow_model.ipynb",
    "chars": 6782,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/chinese_digging.ipynb",
    "chars": 11867,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/english_digging.ipynb",
    "chars": 3636,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/hash_trick.ipynb",
    "chars": 3513,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/hmm.ipynb",
    "chars": 9178,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/lda.ipynb",
    "chars": 17822,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/nmf.ipynb",
    "chars": 1906,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/tf-idf.ipynb",
    "chars": 3814,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "natural-language-processing/word2vec.ipynb",
    "chars": 6344,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Copyright (C) 2016 - 2019 Pinard Li"
  },
  {
    "path": "readme.md",
    "chars": 15890,
    "preview": "# 刘建平Pinard的博客配套代码\n\nhttp://www.cnblogs.com/pinard 刘建平Pinard\n\n之前不少朋友反应我博客中的代码都是连续的片段,不好学习,因此这里把文章和代码做一个整理。\n代码有部分来源于网络,已加上"
  },
  {
    "path": "reinforcement-learning/a3c.py",
    "chars": 9019,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/actor_critic.py",
    "chars": 6877,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/ddpg.py",
    "chars": 6782,
    "preview": "\"\"\"\nDeep Deterministic Policy Gradient (DDPG), Reinforcement Learning.\nDDPG is Actor Critic based algorithm.\nPendulum ex"
  },
  {
    "path": "reinforcement-learning/ddqn.py",
    "chars": 6934,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/ddqn_prioritised_replay.py",
    "chars": 12318,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/dqn.py",
    "chars": 5568,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/duel_dqn.py",
    "chars": 7549,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/introduction.py",
    "chars": 11240,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/nature_dqn.py",
    "chars": 6740,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/policy_gradient.py",
    "chars": 4976,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/q_learning_windy_world.py",
    "chars": 4110,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  },
  {
    "path": "reinforcement-learning/sarsa_windy_world.py",
    "chars": 4073,
    "preview": "#######################################################################\n# Copyright (C)                                 "
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the ljpzzz/machinelearning GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 59 files (4.2 MB), approximately 1.1M tokens, and a symbol index with 157 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!