Copy disabled (too large)
Download .txt
Showing preview only (16,170K chars total). Download the full file to get everything.
Repository: fuxuemingzhu/MovieLens-Recommender
Branch: master
Commit: 2811955668d8
Files: 35
Total size: 15.4 MB
Directory structure:
gitextract_x74nph22/
├── .gitignore
├── ItemCF.py
├── LFM.py
├── README.md
├── UserCF.py
├── data/
│ ├── ml-100k/
│ │ ├── README
│ │ ├── allbut.pl
│ │ ├── mku.sh
│ │ ├── u.data
│ │ ├── u.genre
│ │ ├── u.info
│ │ ├── u.item
│ │ ├── u.occupation
│ │ ├── u.user
│ │ ├── u1.base
│ │ ├── u1.test
│ │ ├── u2.base
│ │ ├── u2.test
│ │ ├── u3.base
│ │ ├── u3.test
│ │ ├── u4.base
│ │ ├── u4.test
│ │ ├── u5.base
│ │ ├── u5.test
│ │ ├── ua.base
│ │ ├── ua.test
│ │ ├── ub.base
│ │ └── ub.test
│ └── ml-1m/
│ └── README
├── dataset.py
├── main.py
├── most_popular.py
├── random_pred.py
├── similarity.py
└── utils.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Movie rating data
# model
model/
# run log
log/
# vscode
.vscode/
# IDE
.idea/
================================================
FILE: ItemCF.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@author: fuxuemingzhu
@site: www.fuxuemingzhu.cn
@file: ItemCF.py
@time: 18-4-16 下午6:17
Description : Item-based Collaborative filtering.
"""
import collections
from operator import itemgetter
import math
from collections import defaultdict
import similarity
import utils
from utils import LogTime
class ItemBasedCF:
"""
Item-based Collaborative filtering.
Top-N recommendation.
"""
def __init__(self, k_sim_movie=20, n_rec_movie=10, use_iuf_similarity=False, save_model=True):
"""
Init UserBasedCF with n_sim_user and n_rec_movie.
:return: None
"""
print("ItemBasedCF start...\n")
self.k_sim_movie = k_sim_movie
self.n_rec_movie = n_rec_movie
self.trainset = None
self.save_model = save_model
self.use_iuf_similarity = use_iuf_similarity
def fit(self, trainset):
"""
Fit the trainset by calculate movie similarity matrix.
:param trainset: train dataset
:return: None
"""
model_manager = utils.ModelManager()
try:
self.movie_sim_mat = model_manager.load_model(
'movie_sim_mat-iif' if self.use_iuf_similarity else 'movie_sim_mat')
self.movie_popular = model_manager.load_model('movie_popular')
self.movie_count = model_manager.load_model('movie_count')
self.trainset = model_manager.load_model('trainset')
print('Movie similarity model has saved before.\nLoad model success...\n')
except OSError:
print('No model saved before.\nTrain a new model...')
self.movie_sim_mat, self.movie_popular, self.movie_count = \
similarity.calculate_item_similarity(trainset=trainset,
use_iuf_similarity=self.use_iuf_similarity)
self.trainset = trainset
print('Train a new model success.')
if self.save_model:
model_manager.save_model(self.movie_sim_mat,
'movie_sim_mat-iif' if self.use_iuf_similarity else 'movie_sim_mat')
model_manager.save_model(self.movie_popular, 'movie_popular')
model_manager.save_model(self.movie_count, 'movie_count')
model_manager.save_model(self.trainset, 'trainset')
print('The new model has saved success.\n')
def recommend(self, user):
"""
Find K similar movies and recommend N movies for the user.
:param user: The user we recommend movies to.
:return: the N best score movies
"""
if not self.movie_sim_mat or not self.n_rec_movie or \
not self.trainset or not self.movie_popular or not self.movie_count:
raise NotImplementedError('ItemCF has not init or fit method has not called yet.')
K = self.k_sim_movie
N = self.n_rec_movie
predict_score = collections.defaultdict(int)
if user not in self.trainset:
print('The user (%s) not in trainset.' % user)
return
# print('Recommend movies to user start...')
watched_movies = self.trainset[user]
for movie, rating in watched_movies.items():
for related_movie, similarity_factor in sorted(self.movie_sim_mat[movie].items(),
key=itemgetter(1), reverse=True)[0:K]:
if related_movie in watched_movies:
continue
# predict the user's "interest" for each movie
# the predict_score is sum(similarity_factor * rating)
predict_score[related_movie] += similarity_factor * rating
# log steps and times.
# print('Recommend movies to user success.')
# return the N best score movies
return [movie for movie, _ in sorted(predict_score.items(), key=itemgetter(1), reverse=True)[0:N]]
def test(self, testset):
"""
Test the recommendation system by recommending scores to all users in testset.
:param testset: test dataset
:return:
"""
if not self.n_rec_movie or not self.trainset or not self.movie_popular or not self.movie_count:
raise ValueError('ItemCF has not init or fit method has not called yet.')
self.testset = testset
print('Test recommendation system start...')
N = self.n_rec_movie
# varables for precision and recall
hit = 0
rec_count = 0
test_count = 0
# varables for coverage
all_rec_movies = set()
# varables for popularity
popular_sum = 0
# record the calculate time has spent.
test_time = LogTime(print_step=1000)
for i, user in enumerate(self.trainset):
test_movies = self.testset.get(user, {})
rec_movies = self.recommend(user) # type:list
for movie in rec_movies:
if movie in test_movies:
hit += 1
all_rec_movies.add(movie)
popular_sum += math.log(1 + self.movie_popular[movie])
# log steps and times.
rec_count += N
test_count += len(test_movies)
# print time per 500 times.
test_time.count_time()
precision = hit / (1.0 * rec_count)
recall = hit / (1.0 * test_count)
coverage = len(all_rec_movies) / (1.0 * self.movie_count)
popularity = popular_sum / (1.0 * rec_count)
print('Test recommendation system success.')
test_time.finish()
print('precision=%.4f\trecall=%.4f\tcoverage=%.4f\tpopularity=%.4f\n' %
(precision, recall, coverage, popularity))
def predict(self, testset):
"""
Recommend movies to all users in testset.
:param testset: test dataset
:return: `dict` : recommend list for each user.
"""
movies_recommend = defaultdict(list)
print('Predict scores start...')
# record the calculate time has spent.
predict_time = LogTime(print_step=500)
for i, user in enumerate(testset):
rec_movies = self.recommend(user) # type:list
movies_recommend[user].append(rec_movies)
# log steps and times.
predict_time.count_time()
print('Predict scores success.')
predict_time.finish()
return movies_recommend
================================================
FILE: LFM.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@author: fuxuemingzhu
@site: www.fuxuemingzhu.cn
@file: LFM.py
@time: 18-6-19 下午2:38
Description : Latent Factor Model
"""
import collections
import random
from operator import itemgetter
import math
from collections import defaultdict
import utils
from utils import LogTime
class LFM:
"""
Latent Factor Model.
Top-N recommendation.
"""
def __init__(self, K, epochs, alpha, lamb, n_rec_movie=10, save_model=True):
"""
Init LFM with K, T, alpha, lamb
:param K: Latent Factor dimension
:param epochs: epochs to go
:param alpha: study rate
:param lamb: regular params
:param save_model: save model
"""
print("LFM start...\n")
self.K = K
self.epochs = epochs
self.alpha = alpha
self.lamb = lamb
self.n_rec_movie = n_rec_movie
self.save_model = save_model
self.users_set, self.items_set = set(), set()
self.items_list = list()
self.P, self.Q = None, None
self.trainset = None
self.testset = None
self.item_popular, self.items_count = None, None
self.model_name = 'K={}-epochs={}-alpha={}-lamb={}'.format(self.K, self.epochs, self.alpha, self.lamb)
def init_model(self, users_set, items_set, K):
"""
Init model, set P and Q with random numbers.
:param users_set: Users set
:param items_set: Items set
:param K: Latent factor dimension.
:return: None
"""
self.P = dict()
self.Q = dict()
for user in users_set:
self.P[user] = [random.random()/math.sqrt(K) for _ in range(K)]
for item in items_set:
self.Q[item] = [random.random()/math.sqrt(K) for _ in range(K)]
def init_users_items_set(self, trainset):
"""
Get users set and items set.
:param trainset: train dataset
:return: Basic users and items set, etc.
"""
users_set, items_set = set(), set()
items_list = []
item_popular = defaultdict(int)
for user, movies in trainset.items():
for item in movies:
item_popular[item] += 1
users_set.add(user)
items_set.add(item)
items_list.append(item)
items_count = len(items_set)
return users_set, items_set, items_list, item_popular, items_count
def gen_negative_sample(self, items: dict):
"""
Generate negative samples
:param items: Original items, positive sample
:return: Positive and negative samples
"""
samples = dict()
for item, rate in items.items():
samples[item] = 1
for i in range(len(items) * 11):
item = self.items_list[random.randint(0, len(self.items_list) - 1)]
if item in samples:
continue
samples[item] = 0
if len(samples) >= 10 * len(items):
break
# print(samples)
return samples
def predict(self, user, item):
"""
Predict the rate for item given user and P and Q.
:param user: Given a user
:param item: Given a item to predict the rate
:return: The predict rate
"""
rate_e = 0
for k in range(self.K):
Puk = self.P[user][k]
Qki = self.Q[item][k]
rate_e += Puk * Qki
return rate_e
def train(self, trainset):
"""
Train model.
:param trainset: Origin trainset.
:return: None
"""
for epoch in range(self.epochs):
print('epoch:', epoch)
for user in trainset:
samples = self.gen_negative_sample(trainset[user])
for item, rui in samples.items():
eui = rui - self.predict(user, item)
for k in range(self.K):
self.P[user][k] += self.alpha * (eui * self.Q[item][k] - self.lamb * self.P[user][k])
self.Q[item][k] += self.alpha * (eui * self.P[user][k] - self.lamb * self.Q[item][k])
self.alpha *= 0.9
# print(self.P)
# print(self.Q)
def fit(self, trainset):
"""
Fit the trainset by optimize the P and Q.
:param trainset: train dataset
:return: None
"""
self.trainset = trainset
self.users_set, self.items_set, self.items_list, self.item_popular, self.items_count = \
self.init_users_items_set(trainset)
model_manager = utils.ModelManager()
try:
self.P = model_manager.load_model(self.model_name + '-P')
self.Q = model_manager.load_model(self.model_name + '-Q')
print('User origin similarity model has saved before.\nLoad model success...\n')
except OSError:
print('No model saved before.\nTrain a new model...')
self.init_model(self.users_set, self.items_set, self.K)
self.train(self.trainset)
print('Train a new model success.')
if self.save_model:
model_manager.save_model(self.P, self.model_name + '-P')
model_manager.save_model(self.Q, self.model_name + '-Q')
print('The new model has saved success.\n')
return self.P, self.Q
def recommend(self, user):
"""
Recommend N movies for the user.
:param user: The user we recommend movies to.
:return: the N best score movies
"""
rank = collections.defaultdict(float)
interacted_items = self.trainset[user]
for item in self.items_set:
if item in interacted_items.keys():
continue
for k, Qik in enumerate(self.Q[item]):
rank[item] += self.P[user][k] * Qik
return [movie for movie, _ in sorted(rank.items(), key=itemgetter(1), reverse=True)][:self.n_rec_movie]
def test(self, testset):
"""
Test the recommendation system by recommending scores to all users in testset.
:param testset: test dataset
:return: None
"""
self.testset = testset
print('Test recommendation system start...')
# varables for precision and recall
hit = 0
rec_count = 0
test_count = 0
# varables for coverage
all_rec_movies = set()
# varables for popularity
popular_sum = 0
# record the calculate time has spent.
test_time = LogTime(print_step=1000)
for user in self.users_set:
test_movies = self.testset.get(user, {})
rec_movies = self.recommend(user) # type:list
for movie in rec_movies:
if movie in test_movies.keys():
hit += 1
all_rec_movies.add(movie)
popular_sum += math.log(1 + self.item_popular[movie])
# log steps and times.
rec_count += self.n_rec_movie
test_count += len(test_movies)
# print time per 500 times.
test_time.count_time()
precision = hit / (1.0 * rec_count)
recall = hit / (1.0 * test_count)
coverage = len(all_rec_movies) / (1.0 * self.items_count)
popularity = popular_sum / (1.0 * rec_count)
print('Test recommendation system success.')
test_time.finish()
print('precision=%.4f\trecall=%.4f\tcoverage=%.4f\tpopularity=%.4f\n' %
(precision, recall, coverage, popularity))
================================================
FILE: README.md
================================================
# MovieLens-Recommender
[MovieLens-Recommender][1] is a pure Python implement of ``Collaborative Filtering``. Which contains ``User Based Collaborative Filtering(UserCF)`` and ``Item Based Collaborative Filtering(ItemCF)``. As comparisons, ``Random Based Recommendation`` and ``Most-Popular Based Recommendation`` are also included. The famous ``Latent Factor Model(LFM)`` is added in this Repo,too.
The buildin-datasets are ``Movielens-1M`` and ``Movielens-100k``. But of course, you can use other custom datasets.
Besides, there are two models named ``UserCF-IIF`` and ``ItemCF-IUF``, which have improvement to ``UseCF`` and ``ItemCF``. They eliminate the influence of very popular users or items.
# Overview
The book 《[推荐系统实践](https://book.douban.com/subject/10769749/)》 written by *Xiang Liang* is quite wonderful for those people who don't have much knowledge about Recommendation System. But the book only offers each function's implement of ``Collaborative Filtering``. A good architecture project with datasets-build and model-validation process are required.
So I made [MovieLens-Recommender][1] project, which is a pure Python implement of ``Collaborative Filtering`` based on the ideas of the book.
This repository is based on [MovieLens-RecSys][2], which is also a good implement of ``Collaborative Filtering``. But its efficiency is so damn poor!
Besides, [Surprise][3] is a very popular Python *scikit* building and analyzing recommender systems. So, I Mix the advantages of these two projects, and here comes ``MovieLens-Recommender``.
My Recommendation System contains four steps:
- Create trainset and testset
- Train a recommender model
- Give recommendations
- Evaluate results
At the end of a recommendation process, four numbers are given to measure the recommendation model, which are:
- Precision
- Recall
- Coverage
- Popularity
**No python extensions(e.g. Numpy/pandas) are needed!**
# Getting started
**1. Download**
``Git`` is awesome~
```shell
git clone https://github.com/fuxuemingzhu/MovieLens-Recommender.git
```
`Movielens-1M` and `Movielens-100k` datasets are under the `data/` folder.
**2. Run**
The configures are in `main.py`. Pleas choose the dataset and model you want to use and set the proper test_size. The default values in `main.py` are shown below:
```python
dataset_name = 'ml-100k'
# dataset_name = 'ml-1m'
# model_type = 'UserCF'
# model_type = 'UserCF-IIF'
# model_type = 'ItemCF'
# model_type = 'Random'
# model_type = 'MostPopular'
model_type = 'ItemCF-IUF'
# model_type = 'LFM'
test_size = 0.1
```
Then run ``python main.py`` in your command line. There will be a recommendation model built on the dataset you choose above.
Note: my code only tested on python3, so python3 is prefer.
```shell
Python main.py
#Python3 main.py
```
if you are using Linux, this command will redirect the whole output into a file.
```shell
Python main.py > run.log 2>&1 &
#Python3 main.py > run.log 2>&1 &
```
This command will run in background. You can wait for the result, or use `tail -f run.log` to see the real time result.
All model will be saved to `model/` fold, which means the time will be cut down in your next run.
**3. Output**
Here is a example run result of ItemCF model trained on ml-1m with test_size = 0.10. No mater which model are chosen, the output log will like this.
```
**********************************************************************
This is ItemCF model trained on ml-1m with test_size = 0.10
**********************************************************************
ItemBasedCF start...
No model saved before.
Train a new model...
counting movies number and popularity...
counting movies number and popularity success.
total movie number = 3693
generate items co-rated similarity matrix...
steps(0), 0.00 seconds have spent..
steps(1000), 18.50 seconds have spent..
steps(2000), 46.39 seconds have spent..
steps(3000), 63.52 seconds have spent..
steps(4000), 87.37 seconds have spent..
steps(5000), 111.83 seconds have spent..
steps(6000), 132.71 seconds have spent..
generate items co-rated similarity matrix success.
total step number is 6040
total 133.61 seconds have spent
calculate item-item similarity matrix...
steps(0), 0.00 seconds have spent..
steps(1000), 1.77 seconds have spent..
steps(2000), 3.47 seconds have spent..
steps(3000), 5.01 seconds have spent..
calculate item-item similarity matrix success.
total step number is 3693
total 5.67 seconds have spent
Train a new model success.
The new model has saved success.
recommend for userid = 1:
['1196', '364', '1265', '318', '2081', '1282', '1198', '2716', '1', '2096']
recommend for userid = 100:
['2916', '1580', '457', '1240', '589', '1291', '780', '1036', '1610', '1214']
recommend for userid = 233:
['1022', '594', '1282', '2087', '2078', '1196', '608', '2081', '593', '1393']
recommend for userid = 666:
['296', '1704', '593', '356', '1196', '589', '1580', '50', '1393', '1']
recommend for userid = 888:
['2916', '457', '480', '2628', '1265', '1610', '1198', '1573', '2762', '1527']
Test recommendation system start...
steps(0), 0.10 seconds have spent..
steps(1000), 291.42 seconds have spent..
steps(2000), 627.60 seconds have spent..
steps(3000), 898.21 seconds have spent..
steps(4000), 1219.94 seconds have spent..
steps(5000), 1523.29 seconds have spent..
steps(6000), 1817.46 seconds have spent..
Test recommendation system success.
total step number is 6040
total 1829.26 seconds have spent
precision=0.1900 recall=0.1147 coverage=0.1673 popularity=7.3911
total Main Function step number is 0
total 1972.49 seconds have spent
```
# Benchmarks
Here are four models' benchmarks over Precision、Recall、Coverage、Popularity. The testsize is 0.1.
These results are nearly same with *Xiang Liang*'s book, which proves that my algorithms are right.
**Movielens 1M:**
| Movielens 1M | Precision | Recall | Coverage | Popularity |
| :------------------: | --------: | -----: | -------: | ---------: |
| UserCF | 19.84% | 11.97% | 28.16% | 7.2023 |
| ItemCF | 19.00% | 11.47% | 16.73% | 7.3911 |
| UserCF-IIF | 19.77% | 11.93% | 29.62% | 7.1660 |
| ItemCF-IUF | 18.71% | 11.29% | 15.03% | 7.4748 |
| LFM | / | / | / | / |
| Random | 0.54% | 0.33% | 100.00% | 4.4075 |
| Most Popular | 10.59% | 6.39% | 2.76% | 7.7462 |
**Movielens 100k:**
| Movielens 100k | Precision | Recall | Coverage | Popularity |
| :------------------: | --------: | -----: | -------: | ---------: |
| UserCF | 19.69% | 18.50% | 22.20% | 5.4928 |
| ItemCF | 17.89% | 16.80% | 13.23% | 5.6202 |
| UserCF-IIF | 19.57% | 18.38% | 22.74% | 5.4716 |
| ItemCF-IUF | 20.38% | 12.30% | 17.30% | 7.3643 |
| LFM | 20.29% | 19.06% | 27.41% | 4.9983 |
| Random | 0.82% | 0.77% | 99.64% | 3.0332 |
| Most Popular | 10.54% | 9.90% | 4.07% | 5.9578 |
# Notice
UserCF is faser than ItemCF. Using `ml-100k` instead of `ml-1m` will speed up the predict process.
Caculating similarity matrix is quite slow. Please wait for the result patiently.
LFM will make negative samples when running. And when the ratio of Neg./Pos. goes to larger, the performance goes to better.
LFM has more parameters to tune, and I don't spend much time to do this. I believe you will do quite better!
# Licence
Apache License.
Copyright 2018 fuxuemingzhu
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
[1]: https://github.com/fuxuemingzhu/MovieLens-Recommender
[2]: https://github.com/Lockvictor/MovieLens-RecSys
[3]: https://github.com/NicolasHug/Surprise
================================================
FILE: UserCF.py
================================================
# -*- coding = utf-8 -*-
"""
User-based Collaborative filtering.
Created on 2018-04-15
@author: fuxuemingzhu
"""
import collections
from operator import itemgetter
import math
from collections import defaultdict
import similarity
import utils
from utils import LogTime
class UserBasedCF:
"""
User-based Collaborative filtering.
Top-N recommendation.
"""
def __init__(self, k_sim_user=20, n_rec_movie=10, use_iif_similarity=False, save_model=True):
"""
Init UserBasedCF with n_sim_user and n_rec_movie.
:return: None
"""
print("UserBasedCF start...\n")
self.k_sim_user = k_sim_user
self.n_rec_movie = n_rec_movie
self.trainset = None
self.save_model = save_model
self.use_iif_similarity = use_iif_similarity
def fit(self, trainset):
"""
Fit the trainset by calculate user similarity matrix.
:param trainset: train dataset
:return: None
"""
model_manager = utils.ModelManager()
try:
self.user_sim_mat = model_manager.load_model(
'user_sim_mat-iif' if self.use_iif_similarity else 'user_sim_mat')
self.movie_popular = model_manager.load_model('movie_popular')
self.movie_count = model_manager.load_model('movie_count')
self.trainset = model_manager.load_model('trainset')
print('User origin similarity model has saved before.\nLoad model success...\n')
except OSError:
print('No model saved before.\nTrain a new model...')
self.user_sim_mat, self.movie_popular, self.movie_count = \
similarity.calculate_user_similarity(trainset=trainset,
use_iif_similarity=self.use_iif_similarity)
self.trainset = trainset
print('Train a new model success.')
if self.save_model:
model_manager.save_model(self.user_sim_mat,
'user_sim_mat-iif' if self.use_iif_similarity else 'user_sim_mat')
model_manager.save_model(self.movie_popular, 'movie_popular')
model_manager.save_model(self.movie_count, 'movie_count')
print('The new model has saved success.\n')
def recommend(self, user):
"""
Find K similar users and recommend N movies for the user.
:param user: The user we recommend movies to.
:return: the N best score movies
"""
if not self.user_sim_mat or not self.n_rec_movie or \
not self.trainset or not self.movie_popular or not self.movie_count:
raise NotImplementedError('UserCF has not init or fit method has not called yet.')
K = self.k_sim_user
N = self.n_rec_movie
predict_score = collections.defaultdict(int)
if user not in self.trainset:
print('The user (%s) not in trainset.' % user)
return
# print('Recommend movies to user start...')
watched_movies = self.trainset[user]
for similar_user, similarity_factor in sorted(self.user_sim_mat[user].items(),
key=itemgetter(1), reverse=True)[0:K]:
for movie, rating in self.trainset[similar_user].items():
if movie in watched_movies:
continue
# predict the user's "interest" for each movie
# the predict_score is sum(similarity_factor * rating)
predict_score[movie] += similarity_factor * rating
# log steps and times.
# print('Recommend movies to user success.')
# return the N best score movies
return [movie for movie, _ in sorted(predict_score.items(), key=itemgetter(1), reverse=True)[0:N]]
def test(self, testset):
"""
Test the recommendation system by recommending scores to all users in testset.
:param testset: test dataset
:return:
"""
if not self.n_rec_movie or not self.trainset or not self.movie_popular or not self.movie_count:
raise ValueError('UserCF has not init or fit method has not called yet.')
self.testset = testset
print('Test recommendation system start...')
N = self.n_rec_movie
# varables for precision and recall
hit = 0
rec_count = 0
test_count = 0
# varables for coverage
all_rec_movies = set()
# varables for popularity
popular_sum = 0
# record the calculate time has spent.
test_time = LogTime(print_step=1000)
for i, user in enumerate(self.trainset):
test_movies = self.testset.get(user, {})
rec_movies = self.recommend(user) # type:list
for movie in rec_movies:
if movie in test_movies:
hit += 1
all_rec_movies.add(movie)
popular_sum += math.log(1 + self.movie_popular[movie])
# log steps and times.
rec_count += N
test_count += len(test_movies)
# print time per 500 times.
test_time.count_time()
precision = hit / (1.0 * rec_count)
recall = hit / (1.0 * test_count)
coverage = len(all_rec_movies) / (1.0 * self.movie_count)
popularity = popular_sum / (1.0 * rec_count)
print('Test recommendation system success.')
test_time.finish()
print('precision=%.4f\trecall=%.4f\tcoverage=%.4f\tpopularity=%.4f\n' %
(precision, recall, coverage, popularity))
def predict(self, testset):
"""
Recommend movies to all users in testset.
:param testset: test dataset
:return: `dict` : recommend list for each user.
"""
movies_recommend = defaultdict(list)
print('Predict scores start...')
# record the calculate time has spent.
predict_time = LogTime(print_step=500)
for i, user in enumerate(testset):
rec_movies = self.recommend(user) # type:list
movies_recommend[user].append(rec_movies)
# log steps and times.
predict_time.count_time()
print('Predict scores success.')
predict_time.finish()
return movies_recommend
================================================
FILE: data/ml-100k/README
================================================
SUMMARY & USAGE LICENSE
=============================================
MovieLens data sets were collected by the GroupLens Research Project
at the University of Minnesota.
This data set consists of:
* 100,000 ratings (1-5) from 943 users on 1682 movies.
* Each user has rated at least 20 movies.
* Simple demographic info for the users (age, gender, occupation, zip)
The data was collected through the MovieLens web site
(movielens.umn.edu) during the seven-month period from September 19th,
1997 through April 22nd, 1998. This data has been cleaned up - users
who had less than 20 ratings or did not have complete demographic
information were removed from this data set. Detailed descriptions of
the data file can be found at the end of this file.
Neither the University of Minnesota nor any of the researchers
involved can guarantee the correctness of the data, its suitability
for any particular purpose, or the validity of results based on the
use of the data set. The data set may be used for any research
purposes under the following conditions:
* The user may not state or imply any endorsement from the
University of Minnesota or the GroupLens Research Group.
* The user must acknowledge the use of the data set in
publications resulting from the use of the data set
(see below for citation information).
* The user may not redistribute the data without separate
permission.
* The user may not use this information for any commercial or
revenue-bearing purposes without first obtaining permission
from a faculty member of the GroupLens Research Project at the
University of Minnesota.
If you have any further questions or comments, please contact GroupLens
<grouplens-info@cs.umn.edu>.
CITATION
==============================================
To acknowledge use of the dataset in publications, please cite the
following paper:
F. Maxwell Harper and Joseph A. Konstan. 2015. The MovieLens Datasets:
History and Context. ACM Transactions on Interactive Intelligent
Systems (TiiS) 5, 4, Article 19 (December 2015), 19 pages.
DOI=http://dx.doi.org/10.1145/2827872
ACKNOWLEDGEMENTS
==============================================
Thanks to Al Borchers for cleaning up this data and writing the
accompanying scripts.
PUBLISHED WORK THAT HAS USED THIS DATASET
==============================================
Herlocker, J., Konstan, J., Borchers, A., Riedl, J.. An Algorithmic
Framework for Performing Collaborative Filtering. Proceedings of the
1999 Conference on Research and Development in Information
Retrieval. Aug. 1999.
FURTHER INFORMATION ABOUT THE GROUPLENS RESEARCH PROJECT
==============================================
The GroupLens Research Project is a research group in the Department
of Computer Science and Engineering at the University of Minnesota.
Members of the GroupLens Research Project are involved in many
research projects related to the fields of information filtering,
collaborative filtering, and recommender systems. The project is lead
by professors John Riedl and Joseph Konstan. The project began to
explore automated collaborative filtering in 1992, but is most well
known for its world wide trial of an automated collaborative filtering
system for Usenet news in 1996. The technology developed in the
Usenet trial formed the base for the formation of Net Perceptions,
Inc., which was founded by members of GroupLens Research. Since then
the project has expanded its scope to research overall information
filtering solutions, integrating in content-based methods as well as
improving current collaborative filtering technology.
Further information on the GroupLens Research project, including
research publications, can be found at the following web site:
http://www.grouplens.org/
GroupLens Research currently operates a movie recommender based on
collaborative filtering:
http://www.movielens.org/
DETAILED DESCRIPTIONS OF DATA FILES
==============================================
Here are brief descriptions of the data.
ml-data.tar.gz -- Compressed tar file. To rebuild the u data files do this:
gunzip ml-data.tar.gz
tar xvf ml-data.tar
mku.sh
u.data -- The full u data set, 100000 ratings by 943 users on 1682 items.
Each user has rated at least 20 movies. Users and items are
numbered consecutively from 1. The data is randomly
ordered. This is a tab separated list of
user id | item id | rating | timestamp.
The time stamps are unix seconds since 1/1/1970 UTC
u.info -- The number of users, items, and ratings in the u data set.
u.item -- Information about the items (movies); this is a tab separated
list of
movie id | movie title | release date | video release date |
IMDb URL | unknown | Action | Adventure | Animation |
Children's | Comedy | Crime | Documentary | Drama | Fantasy |
Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |
Thriller | War | Western |
The last 19 fields are the genres, a 1 indicates the movie
is of that genre, a 0 indicates it is not; movies can be in
several genres at once.
The movie ids are the ones used in the u.data data set.
u.genre -- A list of the genres.
u.user -- Demographic information about the users; this is a tab
separated list of
user id | age | gender | occupation | zip code
The user ids are the ones used in the u.data data set.
u.occupation -- A list of the occupations.
u1.base -- The data sets u1.base and u1.test through u5.base and u5.test
u1.test are 80%/20% splits of the u data into training and test data.
u2.base Each of u1, ..., u5 have disjoint test sets; this if for
u2.test 5 fold cross validation (where you repeat your experiment
u3.base with each training and test set and average the results).
u3.test These data sets can be generated from u.data by mku.sh.
u4.base
u4.test
u5.base
u5.test
ua.base -- The data sets ua.base, ua.test, ub.base, and ub.test
ua.test split the u data into a training set and a test set with
ub.base exactly 10 ratings per user in the test set. The sets
ub.test ua.test and ub.test are disjoint. These data sets can
be generated from u.data by mku.sh.
allbut.pl -- The script that generates training and test sets where
all but n of a users ratings are in the training data.
mku.sh -- A shell script to generate all the u data sets from u.data.
================================================
FILE: data/ml-100k/allbut.pl
================================================
#!/usr/local/bin/perl
# get args
if (@ARGV < 3) {
print STDERR "Usage: $0 base_name start stop max_test [ratings ...]\n";
exit 1;
}
$basename = shift;
$start = shift;
$stop = shift;
$maxtest = shift;
# open files
open( TESTFILE, ">$basename.test" ) or die "Cannot open $basename.test for writing\n";
open( BASEFILE, ">$basename.base" ) or die "Cannot open $basename.base for writing\n";
# init variables
$testcnt = 0;
while (<>) {
($user) = split;
if (! defined $ratingcnt{$user}) {
$ratingcnt{$user} = 0;
}
++$ratingcnt{$user};
if (($testcnt < $maxtest || $maxtest <= 0)
&& $ratingcnt{$user} >= $start && $ratingcnt{$user} <= $stop) {
++$testcnt;
print TESTFILE;
}
else {
print BASEFILE;
}
}
================================================
FILE: data/ml-100k/mku.sh
================================================
#!/bin/sh
trap `rm -f tmp.$$; exit 1` 1 2 15
for i in 1 2 3 4 5
do
head -`expr $i \* 20000` u.data | tail -20000 > tmp.$$
sort -t" " -k 1,1n -k 2,2n tmp.$$ > u$i.test
head -`expr \( $i - 1 \) \* 20000` u.data > tmp.$$
tail -`expr \( 5 - $i \) \* 20000` u.data >> tmp.$$
sort -t" " -k 1,1n -k 2,2n tmp.$$ > u$i.base
done
allbut.pl ua 1 10 100000 u.data
sort -t" " -k 1,1n -k 2,2n ua.base > tmp.$$
mv tmp.$$ ua.base
sort -t" " -k 1,1n -k 2,2n ua.test > tmp.$$
mv tmp.$$ ua.test
allbut.pl ub 11 20 100000 u.data
sort -t" " -k 1,1n -k 2,2n ub.base > tmp.$$
mv tmp.$$ ub.base
sort -t" " -k 1,1n -k 2,2n ub.test > tmp.$$
mv tmp.$$ ub.test
================================================
FILE: data/ml-100k/u.data
================================================
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
166 346 1 886397596
298 474 4 884182806
115 265 2 881171488
253 465 5 891628467
305 451 3 886324817
6 86 3 883603013
62 257 2 879372434
286 1014 5 879781125
200 222 5 876042340
210 40 3 891035994
224 29 3 888104457
303 785 3 879485318
122 387 5 879270459
194 274 2 879539794
291 1042 4 874834944
234 1184 2 892079237
119 392 4 886176814
167 486 4 892738452
299 144 4 877881320
291 118 2 874833878
308 1 4 887736532
95 546 2 879196566
38 95 5 892430094
102 768 2 883748450
63 277 4 875747401
160 234 5 876861185
50 246 3 877052329
301 98 4 882075827
225 193 4 879539727
290 88 4 880731963
97 194 3 884238860
157 274 4 886890835
181 1081 1 878962623
278 603 5 891295330
276 796 1 874791932
7 32 4 891350932
10 16 4 877888877
284 304 4 885329322
201 979 2 884114233
276 564 3 874791805
287 327 5 875333916
246 201 5 884921594
242 1137 5 879741196
249 241 5 879641194
99 4 5 886519097
178 332 3 882823437
251 100 4 886271884
81 432 2 876535131
260 322 4 890618898
25 181 5 885853415
59 196 5 888205088
72 679 2 880037164
87 384 4 879877127
290 143 5 880474293
42 423 5 881107687
292 515 4 881103977
115 20 3 881171009
20 288 1 879667584
201 219 4 884112673
13 526 3 882141053
246 919 4 884920949
138 26 5 879024232
167 232 1 892738341
60 427 5 883326620
57 304 5 883698581
223 274 4 891550094
189 512 4 893277702
243 15 3 879987440
92 1049 1 890251826
246 416 3 884923047
194 165 4 879546723
241 690 2 887249482
178 248 4 882823954
254 1444 3 886475558
293 5 3 888906576
127 229 5 884364867
225 237 5 879539643
299 229 3 878192429
225 480 5 879540748
276 54 3 874791025
291 144 5 874835091
222 366 4 878183381
267 518 5 878971773
42 403 3 881108684
11 111 4 891903862
95 625 4 888954412
8 338 4 879361873
162 25 4 877635573
87 1016 4 879876194
279 154 5 875296291
145 275 2 885557505
119 1153 5 874781198
62 498 4 879373848
62 382 3 879375537
28 209 4 881961214
135 23 4 879857765
32 294 3 883709863
90 382 5 891383835
286 208 4 877531942
293 685 3 888905170
216 144 4 880234639
166 328 5 886397722
250 496 4 878090499
271 132 5 885848672
160 174 5 876860807
265 118 4 875320714
198 498 3 884207492
42 96 5 881107178
168 151 5 884288058
110 307 4 886987260
58 144 4 884304936
90 648 4 891384754
271 346 4 885844430
62 21 3 879373460
279 832 3 881375854
237 514 4 879376641
94 789 4 891720887
128 485 3 879966895
298 317 4 884182806
44 195 5 878347874
264 200 5 886122352
194 385 2 879524643
72 195 5 880037702
222 750 5 883815120
250 264 3 878089182
41 265 3 890687042
224 245 3 888082216
82 135 3 878769629
262 1147 4 879791710
293 471 3 888904884
216 658 3 880245029
250 140 3 878092059
59 23 5 888205300
286 379 5 877533771
244 815 4 880605185
7 479 4 891352010
174 368 1 886434402
87 274 4 879876734
194 1211 2 879551380
82 1134 2 884714402
13 836 2 882139746
13 272 4 884538403
244 756 2 880605157
305 427 5 886323090
95 787 2 888954930
43 14 2 883955745
299 955 4 889502823
57 419 3 883698454
84 405 3 883452363
269 504 4 891449922
299 111 3 877878184
194 466 4 879525876
160 135 4 876860807
99 268 3 885678247
10 486 4 877886846
259 117 4 874724988
85 427 3 879456350
303 919 4 879467295
213 273 5 878870987
121 514 3 891387947
90 98 5 891383204
49 559 2 888067405
42 794 3 881108425
155 323 2 879371261
68 117 4 876973939
172 177 4 875537965
19 4 4 885412840
268 231 4 875744136
5 2 3 875636053
305 117 2 886324028
44 294 4 883612356
43 137 4 875975656
279 1336 1 875298353
80 466 5 887401701
254 164 4 886472768
298 281 3 884183336
279 1240 1 892174404
66 298 4 883601324
18 443 3 880130193
268 1035 2 875542174
99 79 4 885680138
13 98 4 881515011
26 258 3 891347949
7 455 4 891353086
222 755 4 878183481
200 673 5 884128554
119 328 4 876923913
213 172 5 878955442
276 322 3 874786392
94 1217 3 891723086
130 379 4 875801662
38 328 4 892428688
160 719 3 876857977
293 1267 3 888906966
26 930 2 891385985
130 216 4 875216545
92 1079 3 886443455
256 452 4 882164999
1 61 4 878542420
72 48 4 880036718
56 755 3 892910207
13 360 4 882140926
15 405 2 879455957
92 77 3 875654637
207 476 2 884386343
292 174 5 881105481
232 483 5 888549622
251 748 2 886272175
224 26 3 888104153
181 220 4 878962392
259 255 4 874724710
305 471 4 886323648
52 280 3 882922806
161 202 5 891170769
148 408 5 877399018
125 235 2 892838559
97 228 5 884238860
58 1098 4 884304936
83 234 4 887665548
90 347 4 891383319
272 178 5 879455113
194 181 3 879521396
125 478 4 879454628
110 688 1 886987605
299 14 4 877877775
151 10 5 879524921
269 127 4 891446165
6 14 5 883599249
54 106 3 880937882
303 69 5 879467542
16 944 1 877727122
301 790 4 882078621
276 1091 3 874793035
305 214 2 886323068
194 1028 2 879541148
91 323 2 891438397
87 554 4 879875940
294 109 4 877819599
286 171 4 877531791
200 318 5 884128458
229 328 1 891632142
178 568 4 882826555
303 842 2 879484804
62 65 4 879374686
207 591 3 876018608
92 172 4 875653271
301 401 4 882078040
36 339 5 882157581
70 746 3 884150257
63 242 3 875747190
28 201 3 881961671
279 68 4 875307407
250 7 4 878089716
14 98 3 890881335
299 1018 3 889502324
194 54 3 879525876
303 815 3 879485532
119 237 5 874775038
295 218 5 879966498
268 930 2 875742942
268 2 2 875744173
66 258 4 883601089
233 202 5 879394264
83 623 4 880308578
214 334 3 891542540
192 476 2 881368243
100 344 4 891374868
268 145 1 875744501
301 56 4 882076587
307 89 5 879283786
234 141 3 892334609
83 576 4 880308755
181 264 2 878961624
297 133 4 875240090
38 153 5 892430369
7 382 4 891352093
264 813 4 886122952
181 872 1 878961814
201 146 1 884140579
85 507 4 879456199
269 367 3 891450023
59 468 3 888205855
286 143 4 889651549
193 96 1 889124507
113 595 5 875936424
292 11 5 881104093
130 1014 3 876250718
275 98 4 875155140
189 520 5 893265380
219 82 1 889452455
218 209 5 877488546
123 427 3 879873020
119 222 5 874775311
158 177 4 880134407
222 118 4 877563802
302 322 2 879436875
279 501 3 875308843
301 79 5 882076403
181 3 2 878963441
201 695 1 884140115
13 198 3 881515193
1 189 3 888732928
145 237 5 875270570
23 385 4 874786462
201 767 4 884114505
296 705 5 884197193
42 546 3 881105817
33 872 3 891964230
301 554 3 882078830
16 64 5 877720297
95 135 3 879197562
154 357 4 879138713
77 484 5 884733766
296 508 5 884196584
302 303 2 879436785
244 673 3 880606667
222 77 4 878183616
13 215 5 882140588
16 705 5 877722736
270 452 4 876956264
145 15 2 875270655
187 64 5 879465631
200 304 5 876041644
170 749 5 887646170
101 829 3 877136138
184 218 3 889909840
128 204 4 879967478
181 1295 1 878961781
184 153 3 889911285
1 33 4 878542699
1 160 4 875072547
184 321 5 889906967
54 595 3 880937813
94 343 4 891725009
128 508 4 879967767
23 323 2 874784266
301 227 3 882077222
301 191 3 882075672
112 903 1 892440172
82 183 3 878769848
222 724 3 878181976
218 430 3 877488316
308 1197 4 887739521
303 134 5 879467959
133 751 3 890588547
215 212 2 891435680
69 256 5 882126156
254 662 4 887347350
276 2 4 874792436
104 984 1 888442575
63 1067 3 875747514
267 410 4 878970785
13 56 5 881515011
240 879 3 885775745
286 237 2 875806800
294 271 5 889241426
90 1086 4 891384424
18 26 4 880129731
92 229 3 875656201
308 649 4 887739292
144 89 3 888105691
191 302 4 891560253
59 951 3 888206409
200 96 5 884129409
16 197 5 877726146
61 678 3 892302309
271 199 4 885848448
271 709 3 885849325
142 169 5 888640356
275 597 3 876197678
222 151 3 878182109
87 40 3 879876917
207 258 4 877879172
272 1393 2 879454663
177 333 4 880130397
207 1115 2 879664906
299 577 3 889503806
271 378 4 885849447
305 425 4 886324486
49 959 2 888068912
94 1224 3 891722802
130 1017 3 874953895
10 175 3 877888677
203 321 3 880433418
191 286 4 891560842
43 323 3 875975110
21 558 5 874951695
197 96 5 891409839
13 344 2 888073635
194 66 3 879527264
234 206 4 892334543
308 402 4 887740700
308 640 4 887737036
269 522 5 891447773
94 265 4 891721889
268 62 3 875310824
272 12 5 879455254
121 291 3 891390477
296 20 5 884196921
134 286 3 891732334
180 462 5 877544218
234 612 3 892079140
104 117 2 888465972
38 758 1 892434626
269 845 1 891456255
7 163 4 891353444
234 1451 3 892078343
275 405 2 876197645
52 250 3 882922661
102 823 3 888801465
13 186 4 890704999
178 731 4 882827532
236 71 3 890116671
256 781 5 882165296
263 176 5 891299752
244 186 3 880605697
279 1181 4 875314001
43 815 4 883956189
83 78 2 880309089
151 197 5 879528710
254 436 2 886474216
109 631 3 880579371
297 716 3 875239422
249 188 4 879641067
144 699 4 888106106
301 604 4 882075994
64 392 3 889737542
92 501 2 875653665
222 97 4 878181739
268 436 3 875310745
293 135 5 888905550
213 173 5 878955442
160 460 2 876861185
13 498 4 882139901
59 715 5 888205921
5 17 4 875636198
125 163 5 879454956
174 315 5 886432749
114 505 3 881260203
213 515 4 878870518
23 196 2 874786926
128 15 4 879968827
239 56 4 889179478
181 279 1 878962955
291 80 4 875086354
250 238 4 878089963
201 649 3 884114275
60 60 5 883327734
181 325 2 878961814
119 407 3 887038665
287 1 5 875334088
216 228 3 880245642
216 531 4 880233810
203 471 4 880434463
92 587 3 875660408
13 892 3 882774224
213 176 4 878956338
286 288 5 875806672
117 1047 2 881009697
99 111 1 885678886
11 558 3 891904214
65 47 2 879216672
295 194 4 879517412
269 217 2 891451610
85 259 2 881705026
250 596 5 878089921
137 144 5 881433689
201 960 2 884112077
257 137 4 882049932
111 328 4 891679939
91 480 4 891438875
215 211 4 891436202
181 938 1 878961586
189 1060 5 893264301
1 20 4 887431883
303 404 4 879468375
299 305 3 879737314
187 210 4 879465242
222 278 2 877563913
214 568 4 892668197
293 770 3 888906655
285 191 4 890595859
303 252 3 879544791
96 156 4 884402860
72 1110 3 880037334
115 1067 4 881171009
7 430 3 891352178
116 350 3 886977926
73 480 4 888625753
269 246 5 891457067
263 419 5 891299514
70 431 3 884150257
221 475 4 875244204
72 182 5 880036515
25 357 4 885852757
290 50 5 880473582
189 526 4 893266205
299 303 3 877618584
264 294 3 886121516
200 365 5 884129962
187 135 4 879465653
184 187 4 889909024
63 289 2 875746985
13 229 4 882397650
298 486 3 884183063
235 185 4 889655435
62 712 4 879376178
246 94 2 884923505
54 742 5 880934806
63 762 3 875747688
11 732 3 891904596
92 168 4 875653723
8 550 3 879362356
307 174 4 879283480
303 200 4 879468459
256 849 2 882164603
72 54 3 880036854
164 406 2 889402389
117 150 4 880125101
224 77 4 888103872
193 869 3 889127811
94 184 2 891720862
281 338 2 881200457
130 109 3 874953794
128 371 1 879966954
94 720 1 891723593
182 845 3 885613067
129 873 1 883245452
254 229 4 886474580
64 381 4 879365491
151 176 2 879524293
45 25 4 881014015
193 879 3 889123257
276 922 4 889174849
276 57 3 874787526
234 187 4 892079140
181 306 1 878962006
21 370 1 874951293
293 249 3 888905229
264 721 5 886123656
10 611 5 877886722
197 346 3 891409070
276 142 3 874792945
308 427 4 887736584
221 943 4 875246759
131 126 4 883681514
268 824 2 876518557
109 8 3 880572642
198 58 3 884208173
230 680 4 880484286
181 741 1 878962918
192 1061 4 881368891
234 448 3 892335501
90 900 4 891382309
193 941 4 889124890
128 603 5 879966839
126 905 2 887855283
244 265 4 880606634
90 289 3 891382310
157 25 3 886890787
305 71 3 886323684
119 382 5 874781742
21 222 2 874951382
231 181 4 888605273
280 508 3 891700453
288 132 3 886374129
279 1497 2 890780576
301 33 4 882078228
72 699 3 880036783
90 259 2 891382392
308 55 3 887738760
59 742 3 888203053
94 744 4 891721462
130 642 4 875216933
26 1015 3 891352136
56 121 5 892679480
82 508 2 884714249
62 12 4 879373613
276 40 3 874791871
181 1015 1 878963121
152 301 3 880147407
178 845 4 882824291
217 597 4 889070087
79 303 4 891271203
138 484 4 879024127
308 81 5 887737293
75 284 2 884050393
269 198 4 891447062
307 94 3 877122695
222 781 3 881059677
121 740 3 891390544
269 22 1 891448072
13 864 4 882141924
230 742 5 880485043
269 507 4 891448800
239 1099 5 889179253
245 1028 5 888513447
56 546 3 892679460
295 961 5 879519556
271 1028 2 885848102
222 812 2 881059117
69 240 3 882126156
10 7 4 877892210
22 376 3 878887112
294 931 3 889242857
82 717 1 884714492
279 399 4 875313859
269 234 1 891449406
6 98 5 883600680
243 1039 4 879988184
298 181 4 884125629
282 325 1 881703044
78 323 1 879633567
118 200 5 875384647
283 1114 5 879297545
171 292 4 891034835
70 217 4 884151119
10 100 5 877891747
245 181 4 888513664
107 333 3 891264267
246 561 1 884923445
13 901 1 883670672
276 70 4 874790826
244 17 2 880607205
189 56 5 893265263
226 242 5 883888671
62 1016 4 879373008
276 417 4 874792907
214 478 4 891544052
306 235 4 876504354
222 26 3 878183043
280 631 5 891700751
60 430 5 883326122
56 71 4 892683275
42 274 5 881105817
1 202 5 875072442
13 809 4 882397582
173 289 4 877556988
15 749 1 879455311
185 23 4 883524249
280 540 3 891702304
244 381 4 880604077
150 293 4 878746946
7 497 4 891352134
178 317 4 882826915
178 742 3 882823833
95 1217 3 880572658
234 1462 3 892333865
97 222 5 884238887
109 127 2 880563471
117 268 5 880124306
269 705 2 891448850
130 1246 3 876252497
264 655 4 886123530
207 13 3 875506839
42 588 5 881108147
246 409 2 884923372
87 367 4 879876702
101 304 3 877135677
256 127 4 882164406
92 794 3 875654798
181 762 2 878963418
213 235 1 878955115
92 739 2 876175582
292 661 5 881105561
246 665 4 884922831
274 845 5 878945579
188 692 5 875072583
18 86 4 880129731
5 439 1 878844423
236 632 3 890116254
193 407 4 889127921
144 709 4 888105940
90 1198 5 891383866
48 609 4 879434819
5 225 2 875635723
22 128 5 878887983
311 432 4 884365485
8 22 5 879362183
276 188 4 874792547
222 173 5 878183043
72 866 4 880035887
299 134 4 878192311
1 171 5 889751711
308 295 3 887741461
165 216 4 879525778
222 49 3 878183512
181 121 4 878962623
200 11 5 884129542
234 626 4 892336358
244 707 4 880606243
90 25 5 891384789
208 216 5 883108324
263 96 4 891298336
134 323 4 891732335
279 586 4 892864663
2 292 4 888550774
288 593 2 886892127
49 302 4 888065432
286 153 5 877531406
205 304 3 888284313
22 80 4 878887227
234 318 4 892078890
223 328 3 891548959
15 25 3 879456204
268 147 4 876514002
94 1220 3 891722678
274 405 4 878945840
7 492 5 891352010
268 217 2 875744501
16 55 5 877717956
164 620 3 889402298
290 161 4 880474293
92 515 4 875640800
239 1070 5 889179032
56 449 5 892679308
248 234 4 884534968
234 10 3 891227851
280 1049 2 891702486
308 187 5 887738760
276 64 5 874787441
192 948 3 881368302
122 509 4 879270511
85 588 3 880838306
262 931 2 879790874
201 272 3 886013700
181 870 2 878962623
295 739 4 879518319
263 568 4 891299387
295 39 4 879518279
201 1100 4 884112800
93 820 3 888705966
159 1028 5 880557539
158 665 2 880134532
293 423 3 888906070
82 597 3 878768882
276 181 5 874786488
13 823 5 882397833
217 2 3 889069782
83 660 4 880308256
189 20 5 893264466
222 796 4 878183684
146 1022 5 891458193
267 121 3 878970681
126 294 3 887855087
181 1060 1 878962675
125 80 4 892838865
43 120 4 884029430
13 780 1 882142057
253 259 2 891628883
42 44 3 881108548
77 518 4 884753202
291 686 5 874835165
268 21 3 875742822
262 28 3 879792220
234 81 3 892334680
29 245 3 882820803
236 57 5 890116575
158 729 3 880133116
156 661 4 888185947
232 52 5 888550130
168 866 5 884287927
37 288 4 880915258
141 245 3 884584426
235 230 4 889655162
102 70 3 888803537
77 172 3 884752562
90 506 5 891383319
186 566 5 879023663
44 660 5 878347915
118 774 5 875385198
7 661 5 891351624
49 1003 2 888068651
62 68 1 879374969
42 1028 4 881106072
178 433 4 882827834
85 51 2 879454782
77 474 5 884732407
58 1099 2 892243079
56 1047 4 892911290
197 688 1 891409564
286 99 4 878141681
90 258 3 891382121
181 1288 1 878962349
295 190 4 879517062
224 69 4 888082495
272 317 4 879454977
221 1010 3 875246662
66 877 1 883601089
207 318 5 877124871
234 487 3 892079237
7 648 5 891351653
87 82 5 879875774
195 1052 1 877835102
44 449 5 883613334
306 287 4 876504442
194 172 3 879521474
94 62 3 891722933
167 659 4 892738277
108 100 4 879879720
230 304 5 880484286
181 927 1 878962675
54 302 4 880928519
90 22 4 891384357
181 696 2 878962997
286 357 4 877531537
14 269 4 892242403
311 179 2 884365357
92 121 5 875640679
21 440 1 874951798
244 550 1 880602264
181 405 4 878962919
65 806 4 879216529
37 540 2 880916070
44 443 5 878348289
244 183 4 880606043
1 265 4 878542441
270 25 5 876954456
299 387 2 889502756
94 572 3 891723883
286 746 4 877533058
239 272 5 889181247
216 55 5 880245145
254 121 3 886472369
62 665 2 879376483
178 385 4 882826982
194 23 4 879522819
268 955 3 875745160
188 143 5 875072674
276 294 4 874786366
158 1098 4 880135069
207 845 3 881681663
161 48 1 891170745
305 654 4 886323937
47 324 3 879439078
64 736 4 889739212
191 751 3 891560753
7 378 5 891353011
59 92 5 888204997
69 268 5 882027109
10 461 3 877888944
21 129 4 874951382
58 9 4 884304328
194 152 3 879549996
7 200 5 891353543
113 126 5 875076827
173 328 5 877557028
95 233 4 879196354
16 194 5 877720733
59 323 4 888206809
311 654 3 884365075
292 589 4 881105516
43 203 4 883955224
79 50 4 891271545
235 70 5 889655619
125 190 5 892836309
284 322 3 885329671
303 161 5 879468547
254 378 3 886474396
255 1034 1 883217030
104 301 2 888442275
90 923 5 891383912
6 463 4 883601713
279 122 1 875297433
286 298 4 875807004
222 448 3 878183565
297 57 5 875239383
42 625 3 881108873
130 1217 4 875801778
254 357 3 886472466
109 475 1 880563641
230 1444 2 880485726
244 310 3 880601905
6 301 2 883600406
36 748 4 882157285
256 443 3 882164727
102 515 1 888801316
104 285 4 888465201
21 447 5 874951695
111 301 4 891680028
18 408 5 880129628
25 222 4 885852817
110 944 3 886989501
270 98 5 876955868
68 237 5 876974133
83 215 4 880307940
6 258 2 883268278
89 216 5 879459859
128 317 4 879968029
305 512 4 886323525
184 412 2 889912691
286 175 5 877532470
279 1428 3 888465209
256 86 5 882165103
221 48 5 875245462
140 332 3 879013617
190 977 2 891042938
11 227 3 891905896
201 203 5 884114471
150 181 5 878746685
126 245 3 887854726
20 208 2 879669401
144 742 4 888104122
181 930 1 878963275
109 566 4 880578814
85 1065 3 879455021
213 133 3 878955973
222 379 1 878184290
223 11 3 891550649
215 421 4 891435704
218 208 3 877488366
174 937 5 886432989
275 186 3 880314383
68 742 1 876974198
268 583 4 876513830
160 462 4 876858346
195 273 4 878019342
224 178 4 888082468
5 110 1 875636493
99 1016 5 885678724
2 251 5 888552084
292 9 4 881104148
72 568 4 880037203
85 228 3 882813248
83 281 5 880307072
92 831 2 886443708
7 543 3 891351772
87 401 2 879876813
287 926 4 875334340
1 155 2 878542201
234 632 2 892079538
222 53 5 878184113
24 64 5 875322758
7 554 3 891354639
82 56 3 878769410
161 318 3 891170824
196 393 4 881251863
56 91 4 892683275
82 477 3 876311344
7 472 2 891353357
256 761 4 882164644
226 56 4 883889102
279 741 5 875296891
308 1286 3 887738151
16 8 5 877722736
180 202 3 877128388
203 93 4 880434940
145 56 5 875271896
288 305 4 886372527
84 742 3 883450643
44 644 3 878347818
17 13 3 885272654
313 117 4 891015319
148 1 4 877019411
197 347 4 891409070
21 164 5 874951695
279 982 3 875298314
239 491 5 889181015
185 287 5 883526288
297 89 4 875239125
303 68 4 879467361
186 250 1 879023607
73 206 3 888625754
104 756 2 888465739
94 216 3 885870665
239 194 5 889178833
197 511 5 891409839
280 1 4 891700426
1 117 3 874965739
224 583 1 888103729
303 397 1 879543831
60 162 4 883327734
198 258 4 884204501
239 513 5 889178887
6 69 3 883601277
233 375 4 876374419
85 642 4 882995615
110 38 3 886988574
184 522 3 889908462
99 873 1 885678436
13 418 2 882398763
201 518 4 884112201
13 858 1 882397068
214 131 3 891544465
296 228 4 884197264
222 87 3 878182589
279 725 4 875314144
217 182 2 889070109
85 433 3 879828720
239 234 3 889178762
13 72 4 882141727
194 77 3 879527421
208 663 5 883108476
109 178 3 880572950
230 172 4 880484523
59 485 2 888204466
313 478 3 891014373
70 1133 3 884151344
62 182 5 879375169
198 234 3 884207833
65 125 4 879217509
174 660 5 886514261
90 12 5 891383241
130 1248 3 880396702
100 354 2 891375260
283 432 5 879297965
275 418 3 875154718
311 98 5 884364502
195 751 4 883295500
130 105 4 876251160
269 252 1 891456350
286 73 5 877532965
7 623 3 891354217
56 222 5 892679439
210 204 5 887730676
239 9 5 889180446
96 87 4 884403531
297 73 2 875239691
249 239 3 879572284
94 860 2 891723706
84 121 4 883452307
275 265 4 880314031
135 1046 3 879858003
291 1178 4 875086354
125 382 1 892836623
70 399 4 884068521
311 9 4 884963365
301 523 4 882076146
152 685 5 880149074
244 172 4 880605665
275 1091 2 875154535
53 281 4 879443288
198 118 2 884206513
244 790 4 880608037
26 125 4 891371676
151 13 3 879542688
124 496 1 890286933
24 191 5 875323003
271 65 3 885849419
307 634 3 879283385
294 1245 3 877819265
234 241 2 892335042
25 501 3 885852301
293 137 3 888904653
201 432 3 884111312
75 240 1 884050661
13 181 5 882140354
207 68 2 877125350
2 50 5 888552084
313 566 4 891016220
144 125 4 888104191
188 443 4 875074329
276 324 4 874786419
145 974 1 882182634
72 234 4 880037418
83 385 4 887665549
181 619 3 878963086
109 402 4 880581344
207 107 3 876198301
185 216 4 883526268
14 213 5 890881557
149 319 2 883512658
57 79 5 883698495
230 963 5 880484370
176 875 4 886047442
253 97 4 891628501
284 269 4 885328991
106 526 4 881452685
121 180 3 891388286
62 86 2 879374640
291 418 4 875086920
84 1033 4 883452711
293 380 2 888907527
207 58 3 875991047
194 187 4 879520813
109 97 3 880578711
283 845 4 879297442
297 275 5 874954260
181 334 1 878961749
78 255 4 879633745
11 425 4 891904300
308 59 4 887737647
193 1078 4 889126943
297 234 3 875239018
87 585 4 879877008
250 204 2 878091682
8 50 5 879362124
186 148 4 891719774
312 692 4 891699426
91 683 3 891438351
5 454 1 875721432
291 376 3 875086534
175 127 5 877107640
145 737 2 875272833
7 644 5 891351685
276 419 5 874792907
83 210 5 880307751
102 524 3 888803537
153 174 1 881371140
62 302 3 879371909
49 995 3 888065577
268 298 3 875742647
207 554 2 877822854
313 616 5 891015049
286 44 3 877532173
279 168 5 875296435
276 474 5 889174904
62 59 4 879373821
254 219 1 886475980
83 97 4 880308690
63 100 5 875747319
16 178 5 877719333
297 233 2 875239914
90 945 5 891383866
85 25 2 879452769
42 98 4 881106711
303 393 4 879484981
274 50 5 878944679
104 299 3 888442436
94 792 4 885873006
184 98 4 889908539
293 708 3 888907527
248 589 4 884534968
18 950 3 880130764
217 27 1 889070011
200 892 4 884127082
201 148 1 884140751
296 222 5 884196640
7 662 3 892133739
196 381 4 881251728
69 427 3 882145465
72 196 4 880036747
256 472 4 882152471
128 182 4 879967225
151 747 3 879524564
7 171 3 891351287
286 85 5 877533224
172 220 4 875537441
308 516 4 887736743
190 974 2 891625949
82 756 1 878768741
308 436 4 887739257
59 235 1 888203658
64 1063 3 889739539
145 756 2 885557506
220 298 4 881198966
21 324 4 874950889
285 269 4 890595313
207 65 3 878104594
198 658 3 884208173
220 333 3 881197771
210 70 4 887730589
181 14 1 878962392
158 128 2 880134296
143 682 3 888407741
75 237 2 884050309
199 221 4 883782854
223 1150 2 891549841
297 25 4 874954497
276 78 4 877934828
299 847 4 877877649
293 325 2 888904353
301 138 2 882079446
1 47 4 875072125
164 281 4 889401906
96 673 4 884402860
291 1016 4 874833827
7 451 5 891353892
233 177 4 877661496
6 517 4 883602212
202 283 3 879727153
214 117 4 891543241
184 602 4 889909691
277 257 3 879543487
194 212 1 879524216
95 68 4 879196231
25 257 4 885853415
6 23 4 883601365
38 573 1 892433660
313 436 4 891029877
22 241 3 878888025
262 617 3 879793715
130 569 3 880396494
66 181 5 883601425
21 948 1 874951054
181 1332 1 878962278
262 174 3 879791948
206 302 5 888180227
222 22 5 878183285
76 61 4 875028123
151 703 4 879542460
314 28 5 877888346
13 147 3 882397502
44 258 4 878340824
303 418 4 879483510
16 89 2 877717833
270 558 5 876954927
248 117 5 884535433
125 318 5 879454309
138 523 5 879024043
268 386 2 875743978
291 15 5 874833668
234 147 3 892335372
239 96 5 889178798
15 331 3 879455166
94 155 2 891723807
136 89 4 882848925
223 423 3 891550684
82 194 4 878770027
145 355 3 888396967
280 845 3 891700925
179 339 1 892151366
178 199 4 882826306
307 949 4 877123315
10 488 5 877888613
116 331 3 876451911
23 258 5 876785704
308 174 4 887736696
185 114 4 883524320
188 237 3 875073648
118 654 5 875385007
246 721 4 884921794
234 98 4 892078567
194 239 3 879522917
94 24 4 885873423
122 378 4 879270769
312 100 4 891698613
262 64 5 879793022
154 242 3 879138235
223 763 3 891550067
99 403 4 885680374
83 43 4 880308690
130 307 4 877984546
174 402 5 886513729
256 487 5 882164231
59 177 4 888204349
161 168 1 891171174
244 53 3 880607489
250 196 4 878091818
43 40 3 883956468
285 150 5 890595636
42 953 2 881108815
97 670 5 884239744
122 510 4 879270327
61 323 3 891206450
222 106 2 883816184
4 264 3 892004275
304 259 1 884967253
37 403 5 880915942
49 68 1 888069513
303 1098 4 879467959
165 372 5 879525987
176 324 5 886047292
3 335 1 889237269
56 869 3 892683895
44 15 4 878341343
190 117 4 891033697
29 189 4 882821942
94 174 4 885870231
130 949 3 876251944
117 181 5 880124648
303 779 1 879543418
19 435 5 885412840
194 191 4 879521856
158 24 4 880134261
56 447 4 892679067
262 223 3 879791816
181 1334 1 878962240
214 137 4 891543227
92 747 4 875656164
188 96 5 875073128
58 173 5 884305353
244 154 5 880606385
134 879 4 891732393
298 625 4 884183406
254 230 4 886472400
230 138 3 880485197
16 209 5 877722736
151 835 5 879524199
181 1327 1 878963305
145 1248 3 875272195
200 588 5 884128499
248 257 3 884535840
297 432 4 875239658
312 133 5 891699296
151 12 5 879524368
110 568 3 886988449
305 483 5 886323068
141 258 5 884584338
44 240 4 878346997
186 263 3 879023571
214 213 4 891544414
233 208 4 880610814
104 287 2 888465347
312 153 2 891699491
1 222 4 878873388
206 323 1 888179833
230 419 4 880484587
56 450 3 892679374
94 651 5 891725332
205 316 4 888284710
14 174 5 890881294
268 790 2 876513785
276 1081 3 880913705
83 929 3 880307140
268 580 3 875309344
222 1041 3 881060155
279 89 4 875306910
5 424 1 875635807
112 331 4 884992603
296 429 5 884197330
18 202 3 880130515
13 868 5 882139901
87 210 5 879875734
10 285 5 877889186
181 328 3 878961227
23 463 4 874785843
253 746 3 891628630
234 228 3 892079190
299 1047 2 877880041
66 1 3 883601324
216 174 5 881432488
290 208 3 880475245
79 1161 2 891271697
264 448 2 886122031
4 303 5 892002352
144 831 3 888104805
138 517 4 879024279
64 433 2 889740286
5 1 4 875635748
276 357 5 874787526
62 433 5 879375588
239 475 5 889178689
293 166 3 888905520
130 234 5 875216932
264 70 4 886123596
208 197 5 883108797
24 763 5 875322875
279 1162 3 875314334
3 245 1 889237247
101 596 3 877136564
162 1019 4 877636556
223 908 1 891548802
99 246 3 888469392
239 430 3 889180338
160 160 5 876862078
172 580 4 875538028
303 1160 2 879544629
54 676 5 880935294
44 507 3 878347392
210 97 5 887736454
164 930 4 889402340
299 240 2 877878414
28 217 3 881961671
305 79 3 886324276
18 729 3 880131236
82 343 1 884713755
109 1012 4 880564570
207 25 4 876079113
92 1209 1 875660468
109 1 4 880563619
15 222 3 879455730
58 709 5 884304812
303 693 4 879466771
152 111 5 880148782
194 160 2 879551380
92 241 3 875655961
77 91 3 884752924
244 662 3 880606533
177 321 2 880130481
131 221 3 883681561
197 302 3 891409070
227 50 4 879035347
85 282 3 879829618
295 72 4 879518714
181 1 3 878962392
277 255 4 879544145
279 96 4 875310606
1 253 5 874965970
18 182 4 880130640
276 568 4 882659211
87 177 5 879875940
177 69 1 880131088
213 13 4 878955139
125 134 5 879454532
128 739 4 879969349
291 428 5 874871766
25 208 4 885852337
288 272 5 889225463
207 1350 2 877878772
271 56 3 885848559
5 363 3 875635225
274 748 5 878944406
70 419 5 884065035
311 559 2 884366187
151 919 5 879524368
199 268 5 883782509
201 209 3 884112801
99 274 1 885679157
11 740 4 891903067
59 77 4 888206254
184 277 3 889907971
222 88 4 878183336
38 161 5 892432062
59 418 2 888205188
104 300 3 888442275
298 1346 3 884126061
180 1119 3 877128156
7 674 2 891352659
121 14 5 891390014
268 1041 1 875743735
252 277 4 891456797
303 411 4 879483802
210 527 5 887736232
234 648 3 892826760
312 573 5 891712535
308 215 3 887737483
234 1397 4 892334976
75 546 3 884050422
117 15 5 880125887
246 239 3 884921380
64 516 5 889737376
85 187 5 879454235
239 81 3 889179808
59 54 4 888205921
256 220 3 882151690
216 196 5 880245145
203 282 1 880434919
13 195 3 881515296
144 153 5 888105823
100 268 3 891374982
210 274 5 887730676
94 471 4 891721642
13 807 1 886304229
125 657 3 892836422
65 1142 4 879217349
1 113 5 878542738
76 175 4 875028853
294 508 4 877819532
263 1451 4 891299949
294 930 3 889242704
121 117 1 891388600
85 13 3 879452866
303 426 3 879542535
212 180 1 879303974
6 492 5 883601089
181 240 1 878963122
279 746 5 875310233
303 1109 4 879467936
184 191 4 889908716
310 116 5 879436104
313 22 3 891014870
314 1150 4 877887002
13 121 5 882397503
43 5 4 875981421
58 214 2 884305296
215 164 3 891436633
62 288 2 879371909
280 127 5 891702544
161 898 3 891170191
11 723 5 891904637
94 218 3 891721851
35 243 2 875459046
311 566 4 884366112
48 680 3 879434330
85 604 4 882995132
288 527 3 886373565
184 514 5 889908497
151 929 3 879543457
90 690 4 891383319
11 38 3 891905936
104 1016 1 888466002
106 582 4 881451199
181 1010 1 878962774
37 117 4 880915674
276 845 4 874786807
22 258 5 878886261
70 82 4 884068075
5 98 3 875720691
308 95 4 887737130
60 208 5 883326028
270 778 5 876955711
243 208 4 879989134
92 540 2 875813197
81 280 4 876534214
293 412 1 888905377
200 478 5 884128788
13 308 3 881514726
56 184 4 892679088
116 250 4 876452606
295 172 4 879516986
63 1007 5 875747368
295 235 4 879517943
104 1010 1 888465554
156 641 5 888185677
269 1165 1 891446904
160 430 5 876861799
237 191 4 879376773
287 252 1 875334361
290 132 3 880473993
45 109 5 881012356
224 678 3 888082277
145 764 2 888398257
277 1011 3 879543697
65 100 3 879217558
272 1101 5 879454977
116 255 3 876452524
184 86 5 889908694
285 151 5 890595636
222 148 2 881061164
72 28 4 880036824
271 187 5 885848343
94 211 5 891721142
246 425 5 884921918
115 8 5 881171982
176 327 3 886047176
13 396 3 882141727
129 331 2 883244737
257 1260 2 880496892
95 1 5 879197329
147 904 5 885594015
151 58 4 879524849
184 660 3 889909962
311 386 3 884365747
105 268 4 889214268
158 510 3 880134296
34 312 4 888602742
72 427 5 880037702
263 416 5 891299697
94 1048 4 891722678
200 291 3 891825292
45 118 4 881014550
279 144 4 880850073
145 22 5 875273021
71 89 5 880864462
182 69 5 876435435
193 627 4 889126972
214 302 4 892668197
151 485 5 879525002
102 322 3 883277645
234 571 2 892318158
249 930 2 879640585
195 328 4 884420059
109 258 5 880562908
222 552 2 878184596
282 288 4 879949367
117 758 2 881011217
23 381 4 874787350
112 327 1 884992535
303 145 1 879543573
252 300 4 891448664
151 372 5 879524819
282 327 5 879949417
304 237 5 884968415
290 568 3 880474716
64 160 4 889739288
28 79 4 881961003
168 1278 3 884287560
265 471 4 875320302
18 113 5 880129628
83 82 5 887665423
90 499 5 891383866
234 1186 4 892335707
87 196 5 879877681
26 685 3 891371676
150 129 4 878746946
161 98 4 891171357
70 210 4 884065854
51 182 3 883498790
222 1057 4 881061370
92 176 5 875652981
204 216 4 892513864
164 685 5 889402160
57 682 3 883696824
184 207 4 889908903
60 403 3 883327087
92 180 5 875653016
43 204 4 883956122
222 1042 4 878184514
197 300 4 891409422
92 790 3 875907618
294 282 3 877821796
201 747 2 884113635
201 215 2 884140382
193 410 3 889127633
271 705 4 885849052
214 693 3 891544414
73 657 5 888625422
90 187 4 891383561
315 273 3 879821349
48 309 3 879434132
255 472 1 883216958
270 671 4 876956360
66 7 3 883601355
6 478 4 883602762
101 222 3 877136243
207 1046 4 875509787
144 182 3 888105743
85 83 4 886282959
102 625 3 883748418
158 770 5 880134477
297 588 4 875238579
90 507 5 891383987
271 482 5 885848519
130 901 1 884624044
178 276 3 882823978
90 245 3 891382612
181 1094 1 878963086
311 143 3 884364812
267 17 4 878971773
201 51 2 884140751
194 647 4 879521531
59 387 3 888206562
1 227 4 876892946
116 751 3 890131577
170 292 5 884103732
110 578 3 886988536
60 1021 5 883326185
287 347 4 888177040
197 55 3 891409982
38 679 5 892432062
195 1014 4 879673925
279 227 4 889326161
84 748 4 883449530
31 886 2 881547877
316 98 5 880853743
25 25 5 885853415
168 274 4 884287865
103 24 4 880415847
299 588 4 877880852
194 478 3 879521329
287 294 5 875333873
234 582 4 892334883
279 1048 1 886015533
87 9 4 879877931
181 408 1 878962550
279 1151 2 875744584
49 47 5 888068715
296 855 5 884197352
44 95 4 878347569
92 216 3 875653867
135 39 3 879857931
13 66 3 882141485
262 386 3 879795512
7 676 3 891354499
116 942 3 876454090
318 474 4 884495742
141 826 2 884585437
269 13 4 891446662
222 1044 4 881060578
82 455 4 876311319
279 254 3 879572960
42 685 4 881105972
145 1245 5 875271397
184 161 2 889909640
49 625 3 888067031
177 243 1 882142141
313 99 4 891014029
32 290 3 883717913
308 848 4 887736925
145 448 5 877343121
130 542 3 875801778
130 806 3 875217096
165 288 2 879525673
249 255 3 879571752
49 581 3 888068143
195 300 3 890588925
118 475 5 875384793
130 316 4 888211794
104 293 3 888465166
201 1229 3 884140307
142 82 4 888640356
119 718 5 874774956
303 94 3 879485318
99 50 5 885679998
306 14 5 876503995
92 709 2 875654590
227 295 5 879035387
3 337 1 889236983
94 820 1 891723186
59 1107 4 888206254
30 539 3 885941454
262 821 3 879794887
6 508 3 883599530
311 716 4 884365718
268 364 3 875743979
262 553 4 879795122
214 275 3 891542968
16 56 5 877719863
262 293 2 879790906
293 132 4 888905481
62 132 5 879375022
94 346 4 891725410
13 59 4 882140425
240 313 5 885775604
102 161 2 888801876
83 301 2 891181430
291 7 5 874834481
312 28 4 891698300
31 484 5 881548030
291 70 4 874868146
56 172 5 892737191
109 588 4 880578388
110 1246 2 886989613
59 429 4 888204597
246 1218 3 884922801
65 196 5 879216637
24 367 2 875323241
92 115 3 875654125
308 741 4 887739863
301 660 4 882076782
214 1129 4 892668249
158 241 4 880134445
269 674 2 891451754
308 493 3 887737293
32 151 3 883717850
224 191 4 888082468
215 423 5 891435526
32 1012 4 883717581
154 289 2 879138345
201 509 3 884111546
85 298 4 880581629
180 68 5 877127721
184 36 3 889910195
188 218 5 875074667
305 11 1 886323237
144 508 4 888104150
73 94 1 888625754
194 205 3 879524291
177 203 4 880131026
276 273 4 874786517
198 7 4 884205317
108 290 4 879880076
189 197 5 893265291
73 56 4 888626041
172 462 3 875537717
120 546 2 889490979
101 471 3 877136535
5 102 3 875721196
26 235 2 891372429
268 1249 2 875743793
276 773 3 874792794
13 150 5 882140588
7 401 4 891354257
128 482 4 879967432
104 7 3 888465972
293 39 3 888906804
256 25 5 882150552
90 821 3 891385843
275 69 3 880314089
22 510 5 878887765
312 494 5 891698454
207 192 3 877822350
264 504 5 886122577
137 687 4 881432756
185 740 4 883524475
307 687 1 879114143
42 176 3 881107178
145 472 3 875271128
189 634 3 893265506
262 121 3 879790536
251 148 2 886272547
259 772 4 874724882
239 58 5 889179623
312 921 5 891699295
92 15 3 875640189
81 742 2 876533764
311 419 3 884364931
102 448 3 888803002
249 746 5 879641209
95 527 4 888954440
19 655 3 885412723
79 100 5 891271652
189 751 4 893265046
253 510 5 891628416
201 919 3 884141208
1 17 3 875073198
214 42 5 892668130
7 81 5 891352626
234 132 4 892333865
59 148 3 888203175
13 354 2 888779458
6 469 5 883601155
82 14 4 876311280
109 627 5 880582133
305 50 5 886321799
195 154 3 888737525
277 279 4 879543592
223 8 2 891550684
92 81 3 875654929
201 69 2 884112901
94 58 5 891720540
217 144 4 889069782
244 148 2 880605071
313 200 3 891017736
181 874 1 878961749
116 1216 3 876452582
303 433 4 879467985
117 151 4 880126373
221 327 4 875243968
46 307 3 883611430
91 28 4 891439243
151 317 5 879524610
64 176 4 889737567
90 553 2 891384959
116 271 4 886310197
291 1139 3 874871671
62 111 3 879372670
196 251 3 881251274
303 120 2 879544099
49 547 5 888066187
307 1022 4 879283008
303 176 5 879467260
286 154 4 877533381
291 501 4 875087100
235 87 4 889655162
254 379 1 886474650
276 157 5 874790773
135 1208 3 879858003
57 243 3 883696547
276 1157 2 874795772
7 576 5 892132943
250 404 4 878092144
318 768 2 884498022
234 808 2 892335707
289 282 3 876789180
87 1079 2 879877240
50 823 3 877052784
25 258 5 885853199
18 496 5 880130470
193 790 3 889127381
263 510 4 891298392
209 906 2 883589546
207 716 3 875508783
314 535 4 877887002
250 338 4 883263374
262 568 3 879794113
95 172 4 879196847
94 470 4 891722006
59 583 5 888205921
277 282 4 879543697
303 1286 4 879467413
271 714 3 885848863
269 235 3 891446756
148 140 1 877019882
223 977 2 891550295
210 357 5 887736206
185 199 4 883526268
174 80 1 886515210
235 480 4 889655044
276 939 3 874790855
99 354 2 888469332
308 163 4 887737084
303 738 2 879544276
224 873 2 888082187
298 252 4 884183833
44 208 4 878347420
315 13 4 879821158
215 197 4 891435357
269 9 4 891446246
42 195 5 881107949
293 79 3 888906045
246 68 5 884922341
101 405 4 877137015
92 665 3 875906853
249 88 4 879572668
60 525 5 883325944
13 331 3 881515457
271 750 4 885844698
92 731 4 875653769
254 188 3 886473672
311 203 5 884365201
263 197 4 891299752
201 660 3 884140927
279 79 3 875296461
138 496 4 879024043
209 251 5 883417810
217 7 4 889069741
261 340 5 890454045
176 258 4 886047026
303 1037 3 879544340
81 169 4 876534751
62 114 4 879373568
72 530 4 880037164
276 364 3 877935377
88 750 2 891037276
49 7 4 888067307
263 117 3 891299387
9 298 5 886960055
92 528 4 875657681
249 708 4 879572403
262 754 3 879961283
196 655 5 881251793
207 1436 3 878191574
256 771 2 882164999
276 226 4 874792520
134 313 5 891732150
311 849 3 884365781
181 1383 1 878962086
203 148 3 880434755
247 736 5 893097024
313 745 3 891016583
311 83 5 884364812
251 1014 5 886272486
227 411 4 879035897
59 550 5 888206605
201 206 2 884112029
58 100 5 884304553
249 723 4 879641093
286 1316 5 884583549
11 725 3 891905568
7 228 4 891350845
92 846 3 886443471
160 56 5 876770222
103 127 4 880416331
11 110 3 891905324
87 2 4 879876074
45 763 2 881013563
293 605 3 888907702
291 732 4 874868097
254 575 3 886476165
49 334 4 888065744
222 1284 4 878184422
161 162 2 891171413
268 1 3 875742341
59 215 5 888204430
177 209 4 880130736
151 1298 4 879528520
299 235 1 877878184
29 332 4 882820869
30 435 5 885941156
297 182 3 875239125
315 185 4 879821267
23 172 4 874785889
262 47 2 879794599
321 496 4 879438607
191 754 3 891560366
106 778 4 881453040
7 151 4 891352749
178 678 3 882823530
84 12 5 883452874
94 168 5 891721378
264 33 3 886122644
239 529 5 889179808
90 657 5 891385190
261 875 5 890454351
190 302 5 891033606
112 289 5 884992690
144 106 3 888104684
199 258 4 883782403
224 20 1 888104487
85 501 3 880838306
301 202 5 882076211
145 743 1 888398516
294 127 5 877819265
130 206 3 875801695
103 121 3 880415766
152 412 2 880149328
267 840 4 878970926
286 231 3 877532094
200 24 2 884127370
5 211 4 875636631
160 117 4 876767822
6 357 4 883602422
158 72 3 880135118
297 736 4 875239975
250 244 4 878089786
57 760 2 883697617
58 268 5 884304288
23 1006 3 874785809
301 1228 4 882079423
307 265 3 877122816
276 1095 1 877935135
223 411 1 891550005
92 24 3 875640448
137 300 5 881432524
164 117 5 889401816
276 38 3 874792574
213 294 3 878870226
286 34 5 877534701
232 197 4 888549563
150 221 4 878747017
21 103 1 874951245
130 731 3 876251922
222 441 2 881059920
1 90 4 878542300
189 1005 4 893265971
49 38 1 888068289
311 5 3 884365853
36 307 4 882157227
128 228 3 879969329
151 89 5 879524491
248 475 5 884535446
95 1229 2 879198800
213 609 4 878955533
203 181 5 880434278
308 863 3 887736881
269 47 4 891448386
198 100 1 884207325
297 307 4 878771124
305 189 5 886323303
266 676 3 892257897
197 229 3 891410039
74 272 5 888333194
127 294 4 884363803
194 4 4 879521397
177 56 5 880130618
45 473 3 881014417
57 28 4 883698324
239 187 5 889178798
268 94 2 875743630
238 252 3 883576644
201 1010 3 884140579
131 1281 4 883681561
270 97 4 876955633
159 127 5 880989744
230 202 4 880485352
92 219 4 875654888
318 356 4 884496671
123 531 3 879872671
267 403 4 878971939
232 630 3 888550060
5 382 5 875636587
16 155 3 877719157
180 762 4 877126241
178 282 3 882823978
319 313 5 889816026
180 737 3 877128327
270 736 5 876955087
269 658 2 891448497
293 496 5 888905840
269 793 4 891449880
54 685 3 880935504
21 98 5 874951657
303 209 5 879467328
13 766 4 882139686
314 95 5 877888168
151 387 5 879542353
230 378 5 880485159
201 403 3 884112427
95 1206 4 888956137
270 370 5 876956232
256 716 5 882165135
80 582 3 887401701
303 435 5 879466491
312 121 3 891698174
151 1006 1 879524974
62 258 5 879371909
189 1115 4 893264270
77 195 5 884733695
99 742 5 885679114
291 1028 3 875086561
293 748 2 888904327
181 1342 1 878962168
206 900 1 888179980
83 338 4 883868647
262 179 4 879962570
253 216 4 891628252
223 596 3 891549713
108 50 4 879879739
94 347 5 891724950
293 779 1 888908066
101 281 2 877136842
267 980 3 878970578
201 1245 4 884141015
314 1263 2 877890611
271 111 4 885847956
314 276 1 877886413
18 387 4 880130155
207 4 4 876198457
313 96 5 891015144
21 299 1 874950931
215 144 4 891435107
279 1376 4 886016680
234 1015 2 892079617
296 248 5 884196765
270 83 4 876954995
210 161 5 887736393
201 79 4 884112245
5 376 2 879198045
184 181 4 889907426
104 411 1 888465739
275 449 3 876198328
185 269 5 883524428
276 550 4 874792574
279 1182 3 875314370
216 69 5 880235229
21 457 1 874951054
16 471 3 877724845
147 292 5 885594040
291 250 4 874805927
28 95 3 881956917
29 539 2 882821044
291 471 4 874833746
7 580 3 892132171
181 16 1 878962996
297 218 3 875409827
308 559 4 887740367
87 211 5 879876812
97 89 5 884238939
21 596 3 874951617
59 710 3 888205463
238 756 3 883576476
178 209 4 882826944
186 470 5 879023693
299 615 4 878192555
10 504 5 877892110
110 682 4 886987354
109 101 1 880578186
157 250 1 886890296
267 386 3 878973597
181 327 3 878961780
207 87 4 884386260
47 995 3 879440429
148 114 5 877016735
94 9 5 885872684
60 222 4 883327441
244 409 4 880605294
276 246 4 874786686
90 906 2 891382240
234 20 4 891227979
106 107 4 883876961
216 697 4 883981700
294 1199 2 889242142
323 257 2 878739393
140 268 4 879013684
220 303 4 881198014
67 64 5 875379211
170 299 3 886190476
230 142 4 880485633
299 641 4 889501514
7 581 5 891353477
275 501 3 875154718
44 250 5 878346709
291 214 4 874868146
11 741 5 891902745
59 286 3 888202532
174 395 1 886515154
194 234 3 879521167
57 204 4 883698272
314 417 4 877888855
201 197 4 884113422
184 155 3 889912656
194 792 4 879524504
159 1037 2 884360502
186 983 3 879023152
181 979 2 878963241
68 7 3 876974096
286 721 3 877532329
316 306 4 880853072
280 781 4 891701699
13 14 4 884538727
211 127 4 879461498
187 215 3 879465805
71 134 3 885016614
306 242 5 876503793
64 684 4 889740199
303 277 3 879468547
198 135 5 884208061
232 91 5 888549515
98 47 4 880498898
53 24 3 879442538
299 971 2 889502353
254 1116 3 886473448
7 106 4 891353892
12 300 4 879958639
239 10 5 889180338
238 111 4 883576603
130 267 5 875801239
90 662 5 891385842
63 20 3 875748004
40 268 4 889041430
181 221 1 878962465
298 152 3 884183336
104 327 2 888442202
42 185 4 881107449
181 995 1 878961585
258 288 1 885700919
291 578 4 874835242
148 70 5 877021271
305 187 4 886323189
184 71 4 889911552
94 556 3 891722882
158 1011 4 880132579
7 528 5 891352659
174 237 4 886434047
158 190 5 880134332
201 853 4 884114635
276 43 1 874791383
278 311 4 891295130
229 347 1 891632073
101 252 3 877136628
63 1028 3 875748198
275 520 4 880314218
275 173 3 875154795
62 1073 4 879374752
230 234 4 880484756
109 975 3 880572351
73 357 5 888626007
83 118 3 880307071
4 361 5 892002353
130 245 1 874953526
64 778 5 889739806
15 473 1 879456204
244 89 5 880602210
7 643 4 891350932
219 347 1 889386819
295 704 5 879519266
293 288 3 888904327
125 997 2 892838976
279 487 3 890282182
76 582 3 882607444
272 48 4 879455143
269 285 5 891446165
244 380 4 880608133
271 220 3 885848179
321 287 3 879438857
306 864 3 876504286
224 332 3 888103429
57 1047 4 883697679
145 591 4 879161848
85 277 2 879452938
116 7 2 876453915
52 95 4 882922927
209 688 1 883589626
145 260 4 875269871
208 202 4 883108476
160 187 5 876770168
141 274 5 884585220
260 990 5 890618729
177 299 4 880130500
82 231 2 878769815
223 969 5 891550649
107 271 2 891264432
26 25 3 891373727
297 1016 3 874955131
244 167 3 880607853
15 678 1 879455311
286 709 4 877532748
82 411 3 878768902
167 364 3 892738212
99 181 5 885680138
56 196 2 892678628
293 346 3 888904004
7 650 3 891350965
90 425 4 891384996
228 475 3 889388521
82 919 3 876311280
43 151 4 875975613
10 289 4 877886223
197 515 5 891409935
57 756 3 883697730
246 82 2 884921986
62 24 4 879372633
323 223 4 878739699
13 320 1 882397010
268 63 1 875743792
18 863 3 880130680
271 410 2 885848238
307 509 3 877121019
54 298 4 892681300
295 47 5 879518166
194 237 3 879538959
194 82 2 879524216
311 385 5 884365284
287 257 4 875334224
290 82 4 880473918
262 96 4 879793022
279 491 5 875296435
290 393 3 880475169
145 393 5 875273174
305 61 4 886323378
269 156 5 891449364
276 180 5 874787353
323 298 4 878739275
296 258 5 884196469
18 965 4 880132012
72 528 4 880036664
224 949 3 888104057
125 239 5 892838375
244 652 5 880606533
135 431 2 879857868
138 211 4 879024183
59 604 3 888204927
221 1059 4 875245077
13 451 1 882141872
42 69 4 881107375
10 340 4 880371312
219 882 3 889386741
60 604 4 883327997
125 152 1 879454892
63 50 4 875747292
255 448 3 883216544
311 172 5 884364763
7 582 5 892135347
7 127 5 891351728
189 203 3 893265921
59 470 3 888205714
313 148 2 891031979
234 161 3 892335824
6 143 2 883601053
305 960 1 886324362
226 147 3 883889479
204 340 5 892389195
13 493 5 882140206
186 281 4 879023390
6 275 4 883599102
269 82 2 891450780
69 300 3 882027204
259 959 4 888720593
5 62 4 875637575
181 1164 3 878962464
135 449 3 879857843
222 1207 2 881060659
5 231 2 875635947
286 258 4 877530390
104 249 3 888465675
303 65 4 879467436
295 73 4 879519009
201 686 2 884112352
13 289 2 882140759
184 100 5 889907652
262 786 3 879795319
234 614 3 892334609
1 64 5 875072404
325 485 3 891478599
312 641 5 891698300
207 810 2 877125506
262 509 3 879792818
239 478 5 889178986
142 181 5 888640317
296 242 4 884196057
291 571 2 875086608
13 488 3 890704999
294 676 3 877821514
69 174 5 882145548
195 265 4 888737346
121 509 5 891388145
279 509 3 875296552
49 17 2 888068651
7 196 5 891351432
280 472 2 891702086
221 780 3 875246552
175 96 3 877108051
180 431 4 877442098
311 1222 3 884366010
44 120 4 878346977
318 257 5 884471030
59 588 2 888204389
320 117 4 884748641
256 939 5 882164893
310 24 4 879436242
236 265 2 890116191
83 139 3 880308959
280 128 3 891701188
43 52 4 883955224
18 494 3 880131497
303 87 3 879466421
91 427 4 891439057
318 631 4 884496855
275 258 3 875154310
97 482 5 884238693
174 160 5 886514377
268 470 3 875310745
188 769 2 875074720
94 89 3 885870284
7 44 5 891351728
158 85 4 880135118
256 765 4 882165328
221 69 4 875245641
196 67 5 881252017
232 175 5 888549815
159 685 4 880557347
99 182 4 886518810
175 71 4 877107942
254 624 2 886473254
326 22 4 879874989
303 291 3 879484804
270 53 4 876956106
181 1001 1 878963038
254 418 3 886473078
56 235 1 892911348
11 190 3 891904174
162 181 4 877635798
117 829 3 881010219
268 52 3 875309319
320 177 5 884749360
6 294 2 883599938
210 380 4 887736482
151 969 5 879542510
42 684 4 881108093
62 365 2 879376096
207 121 3 875504876
59 70 3 888204758
26 455 3 891371506
234 705 5 892318002
270 466 5 876955899
97 484 3 884238966
11 660 3 891904573
5 377 1 878844615
56 797 4 892910860
305 923 5 886323237
173 286 5 877556626
67 1095 4 875379287
213 12 5 878955409
268 684 3 875744321
36 883 5 882157581
100 321 1 891375112
269 729 2 891448569
131 100 5 883681418
308 298 5 887741383
14 709 5 879119693
284 305 4 885328906
191 752 3 891560481
222 29 3 878184571
201 421 2 884111708
207 864 3 877750738
303 1315 3 879544791
52 1086 4 882922562
305 529 5 886324097
223 318 4 891550711
22 79 4 878887765
137 546 5 881433116
292 328 3 877560833
249 11 5 879640868
269 616 4 891450453
197 294 4 891409290
42 603 4 881107502
26 1016 3 891377609
7 560 3 892132798
193 435 4 889124439
7 559 5 891354882
299 186 3 889503233
115 127 5 881171760
59 433 5 888205982
217 22 5 889069741
279 709 4 875310195
257 345 4 887066556
279 789 4 875306580
279 919 3 892864663
63 222 3 875747635
178 73 5 882827985
90 1194 4 891383718
111 313 4 891679901
13 848 5 882140001
94 625 4 891723086
59 496 4 888205144
179 905 4 892151331
303 302 4 879465986
299 516 4 889503159
10 505 4 877886846
62 464 4 879375196
56 69 4 892678893
92 289 3 875641367
308 378 3 887740700
13 144 4 882397146
181 1348 1 878962200
15 932 1 879456465
244 155 3 880608599
234 233 2 892335990
15 127 2 879455505
110 1179 2 886989501
181 302 2 878961511
236 313 4 890115777
310 536 4 879436137
37 55 3 880915942
234 617 3 892078741
303 369 1 879544130
75 409 3 884050829
197 518 1 891409982
314 692 5 877888445
187 523 3 879465125
151 402 3 879543423
268 264 3 876513607
224 215 4 888082612
292 195 5 881103568
16 191 5 877719454
99 597 4 885679210
234 482 4 892334803
303 323 1 879466214
233 99 3 877663383
66 249 4 883602158
280 204 3 891700643
301 174 5 882075827
92 1142 4 886442422
99 410 5 885679262
221 1250 2 875247855
97 98 4 884238728
313 673 4 891016622
58 109 4 884304396
270 781 5 876955750
13 476 2 882141997
189 1 5 893264174
67 147 3 875379357
234 50 4 892079237
40 880 3 889041643
294 222 4 877819353
293 629 3 888907753
7 241 4 891354053
87 775 2 879876848
314 1289 2 877887388
131 750 5 883681723
296 48 5 884197091
81 3 4 876592546
151 186 4 879524222
57 926 3 883697831
234 134 5 892333573
53 174 5 879442561
280 544 4 891701302
123 135 5 879872868
109 797 3 880582856
96 479 4 884403758
236 286 5 890115777
201 313 5 884110598
174 471 5 886433804
130 931 2 880396881
151 15 4 879524879
90 529 5 891385132
59 12 5 888204260
3 343 3 889237122
310 845 5 879436534
224 658 1 888103840
4 357 4 892003525
25 615 5 885852611
11 517 2 891905222
298 91 2 884182932
59 170 4 888204430
147 305 4 885593997
314 1518 4 877891426
256 413 4 882163956
234 618 3 892078343
246 8 3 884921245
255 678 2 883215795
92 106 3 875640609
272 127 5 879454725
104 269 5 888441878
276 406 2 874786831
276 34 2 877934264
97 50 5 884239471
150 121 2 878747322
14 530 5 890881433
23 170 4 874785348
13 97 4 882399357
165 325 4 879525672
244 7 4 880602558
95 416 4 888954961
28 98 5 881961531
259 269 3 877923906
82 596 3 876311195
28 173 3 881956220
94 455 3 891721777
276 384 3 874792189
298 8 5 884182748
151 210 4 879524419
77 238 5 884733965
200 241 4 884129782
201 405 4 884112427
193 332 3 889123257
38 139 2 892432786
291 226 5 874834895
113 326 5 875935609
313 191 5 891013829
207 531 4 877878342
214 151 5 892668153
44 123 4 878346532
18 154 4 880131358
297 628 4 874954497
279 116 1 888799670
7 28 5 891352341
115 92 4 881172049
308 581 4 887740500
62 138 1 879376709
81 824 3 876534437
293 1161 2 888905062
13 781 3 882399528
13 338 1 882140740
41 28 4 890687353
280 554 1 891701998
287 249 5 875334430
117 50 5 880126022
178 106 2 882824983
201 117 2 884112487
256 1057 2 882163805
221 204 4 875246008
318 659 4 884495868
262 11 4 879793597
154 488 4 879138831
186 385 4 879023894
303 1095 2 879543988
302 323 2 879436875
198 179 4 884209264
99 168 5 885680374
229 313 2 891631948
126 262 4 887854726
72 226 4 880037307
109 31 4 880577844
34 242 5 888601628
173 323 5 877556926
156 276 3 888185854
122 215 4 879270676
276 583 3 874791444
224 528 3 888082658
208 88 5 883108324
295 483 5 879517348
279 65 1 875306767
43 64 5 875981247
89 197 5 879459859
308 435 4 887737484
315 305 5 881017419
42 1041 4 881109060
164 299 4 889401383
7 153 5 891352220
93 412 2 888706037
125 1180 3 892838865
70 50 4 884064188
177 960 3 880131161
75 476 1 884050393
62 401 3 879376727
130 366 5 876251972
312 228 3 891699040
158 414 4 880135118
279 42 4 875308843
210 58 4 887730177
43 66 4 875981506
151 490 5 879528418
293 665 2 888908117
293 36 1 888908041
102 405 2 888801812
276 291 3 874791169
21 839 1 874951797
194 663 4 879524292
38 432 1 892430282
92 453 1 875906882
311 180 4 884364764
198 214 4 884208273
82 661 4 878769703
267 238 4 878971629
291 466 5 874834768
151 692 3 879524669
60 47 4 883326399
92 79 4 875653198
97 115 5 884239525
314 1218 4 877887525
319 338 2 879977242
5 407 3 875635431
15 685 4 879456288
99 204 4 885679952
123 192 5 879873119
47 340 5 879439078
222 135 5 878181563
224 149 1 888103999
58 284 4 884304519
320 294 4 884748418
268 135 4 875309583
83 640 2 880308550
106 692 3 881453290
287 11 5 875335124
305 186 4 886323902
181 1320 1 878962279
49 49 2 888068990
6 221 4 883599431
85 647 4 879453844
128 736 5 879968352
279 827 1 888426577
271 630 2 885848943
303 748 2 879466214
249 124 5 879572646
280 693 3 891701027
207 827 3 876018501
60 616 3 883327087
21 184 4 874951797
286 628 4 875806800
145 183 5 875272009
311 28 5 884365140
25 228 4 885852920
76 92 4 882606108
246 406 3 884924749
201 292 3 884110598
235 647 4 889655045
286 133 4 877531730
48 174 5 879434723
144 685 3 888105473
5 24 4 879198229
85 272 4 893110061
286 7 4 875807003
64 93 2 889739025
151 429 5 879528673
191 301 4 891561336
287 56 5 875334759
96 153 4 884403624
125 615 3 879454793
150 100 2 878746636
93 15 5 888705388
84 528 5 883453617
318 50 2 884495696
13 167 4 882141659
213 471 3 878870816
178 234 4 882826783
128 418 4 879968164
195 496 4 888737525
13 570 5 882397581
276 843 4 874792989
54 268 5 883963510
305 347 3 886308111
14 474 4 890881557
18 58 4 880130613
263 921 3 891298727
289 849 4 876789943
194 321 3 879520306
11 746 4 891905032
298 842 4 884127249
56 215 5 892678547
13 844 1 882397010
38 465 5 892432476
308 165 3 887736696
214 652 4 891543972
102 300 3 875886434
7 420 5 891353219
61 328 5 891206371
307 100 3 879206424
21 590 1 874951898
311 68 1 884365824
95 1230 1 888956901
303 182 5 879467105
145 13 5 875270507
50 253 5 877052550
194 530 4 879521167
145 1 3 882181396
222 157 4 878181976
7 188 5 891352778
109 100 4 880563080
90 631 5 891384570
7 78 3 891354165
181 1324 1 878962464
201 332 2 884110887
13 685 5 882397582
82 73 4 878769888
267 423 3 878972842
194 1206 1 879554453
269 106 1 891451947
99 895 3 885678304
235 1149 4 889655595
200 665 4 884130621
312 188 3 891698793
145 50 5 885557660
234 71 3 892334338
213 48 5 878955848
244 216 4 880605869
316 588 1 880853992
85 175 4 879828912
124 50 3 890287508
137 237 4 881432965
13 567 1 882396955
151 162 5 879528779
187 116 5 879464978
193 554 3 889126088
49 741 4 888068079
291 54 4 874834963
316 292 4 880853072
271 514 4 885848408
194 404 3 879522445
268 721 3 875743587
277 1197 4 879543768
301 606 3 882076890
89 1048 3 879460027
253 50 4 891628518
102 732 3 888804089
311 662 4 884365018
201 943 3 884114275
246 816 4 884925218
172 488 3 875537965
280 38 3 891701832
43 1057 2 884029777
311 661 3 884365075
59 287 5 888203175
268 83 4 875309344
315 651 3 879799457
145 299 4 875269822
248 174 3 884534992
327 191 4 887820828
268 672 2 875744501
297 286 5 874953892
295 151 4 879517635
13 877 2 882140792
70 584 3 884150236
145 460 1 875271312
275 176 4 880314320
48 259 4 879434270
235 419 5 889655858
83 413 1 891182379
147 258 4 885594040
92 521 4 875813412
246 728 1 884923829
43 284 5 883955441
207 203 3 877124625
234 485 3 892079434
201 587 4 884140975
286 689 5 884583549
69 12 5 882145567
237 494 4 879376553
85 133 4 879453876
276 85 3 874791871
311 366 5 884366010
320 399 3 884749411
114 175 5 881259955
42 121 4 881110578
7 680 4 891350703
154 302 4 879138235
106 660 4 881451631
313 71 4 891030144
90 526 5 891383866
94 186 4 891722278
224 43 3 888104456
44 230 2 883613335
229 315 1 891632945
151 480 5 879524151
311 505 4 884365451
320 202 4 884750946
113 329 3 875935312
255 859 3 883216748
193 827 2 890859916
276 789 3 874791623
259 750 4 888630424
204 172 3 892513819
78 412 4 879634223
85 98 4 879453716
279 393 1 875314093
222 323 3 877562839
288 127 5 886374451
42 606 3 881107538
25 729 4 885852697
119 213 5 874781257
116 185 3 876453519
123 13 3 879873988
315 657 4 879821299
142 243 1 888640199
13 480 3 881515193
201 326 2 884111095
43 631 2 883955675
195 387 4 891762491
95 174 5 879196231
130 332 4 876250582
233 482 4 877661437
44 530 5 878348725
292 86 4 881105778
176 294 2 886047220
157 405 3 886890342
207 787 3 876079054
239 204 3 889180888
251 144 5 886271920
269 923 4 891447169
178 148 4 882824325
138 121 4 879023558
30 82 4 875060217
302 245 2 879436911
34 690 4 888602513
292 276 5 881103915
271 11 4 885848408
69 175 3 882145586
42 456 3 881106113
311 568 5 884365325
183 241 4 892323453
269 411 1 891451013
288 196 5 886373474
268 42 4 875310384
308 634 4 887737334
308 166 3 887737837
57 831 1 883697785
207 410 3 877838946
271 211 5 885849164
16 144 5 877721142
90 603 5 891385132
209 408 4 883417517
299 238 4 877880852
279 1228 4 890779991
128 140 4 879968308
307 173 5 879283786
167 392 1 892738307
22 791 1 878887227
291 159 4 875087488
194 705 2 879524007
10 489 4 877892210
95 128 3 879196354
10 657 4 877892110
59 855 4 888204502
124 11 5 890287645
7 133 5 891353192
256 692 5 882165066
85 629 3 879454685
271 1266 2 885848943
276 1416 3 874792634
155 988 2 879371261
318 476 4 884495164
307 258 5 879283786
28 7 5 881961531
236 729 5 890118372
38 672 3 892434800
7 93 5 891351042
255 217 2 883216600
184 729 3 889909840
154 175 5 879138784
311 403 4 884365889
116 301 3 892683732
94 229 3 891722979
221 508 4 875244160
95 636 1 879196566
44 56 2 878348601
305 203 4 886323839
207 508 4 877879259
130 161 4 875802058
98 163 3 880499053
328 9 4 885045993
178 218 3 882827776
293 293 4 888904795
162 742 4 877635758
128 79 4 879967692
307 1411 4 877124058
269 514 4 891449123
195 186 3 888737240
327 533 4 887822530
189 91 3 893265684
206 1394 1 888179981
95 143 4 880571951
31 682 2 881547834
94 157 5 891725332
73 588 2 888625754
256 819 4 882151052
291 366 3 874868255
222 153 4 878182416
207 98 4 875509887
222 298 4 877563253
286 151 5 875806800
116 262 3 876751342
7 174 5 891350757
148 495 4 877016735
311 495 4 884366066
178 255 4 882824001
181 597 3 878963276
123 847 4 879873193
291 77 4 874834799
237 528 5 879376606
140 301 3 879013747
290 222 4 880731778
177 79 4 880130758
65 202 4 879217852
311 181 4 884364724
125 796 3 892838591
77 168 4 884752721
58 960 4 884305004
117 405 5 880126174
248 127 5 884535084
5 423 4 875636793
254 286 1 887346861
289 7 4 876789628
241 294 3 887250085
213 690 3 878870275
99 508 4 885678840
275 523 4 880314031
168 284 2 884288112
28 380 4 881961394
144 31 3 888105823
198 651 4 884207424
181 1093 1 878962391
221 268 5 876502910
267 739 4 878973276
129 303 3 883244011
301 496 5 882075743
94 33 3 891721919
318 64 4 884495590
298 477 4 884126202
290 476 3 880475837
16 942 4 877719863
130 815 3 874953866
181 304 1 878961586
178 125 4 882824431
42 506 3 881108760
320 284 4 884748818
138 151 4 879023389
197 849 3 891410124
215 157 4 891435573
94 1119 4 891723261
293 724 3 888907061
79 246 5 891271545
279 1492 4 888430806
189 30 4 893266205
233 806 4 880610396
198 24 2 884205385
222 172 5 878183079
276 301 4 877584219
70 417 3 884066823
305 15 1 886322796
201 370 1 884114506
57 409 4 883697655
13 314 1 884538485
206 245 1 888179772
125 173 5 879454100
128 143 5 879967300
92 763 3 886443192
65 56 3 879217816
236 506 5 890118153
262 77 2 879794829
90 958 4 891383561
144 91 2 888106106
63 841 1 875747917
323 117 3 878739355
197 176 5 891409798
277 273 5 879544145
176 288 3 886046979
38 838 2 892433680
99 546 4 885679353
326 186 4 879877143
59 663 4 888204928
59 702 5 888205463
26 15 4 891386369
7 182 4 891350965
112 354 3 891304031
109 154 2 880578121
121 405 2 891390579
293 167 3 888907702
297 198 3 875238923
276 11 5 874787497
222 210 4 878184338
287 92 4 875334896
62 443 3 879375080
106 703 4 881450039
276 1218 4 874792040
230 210 5 880484975
246 184 4 884921948
22 511 4 878887983
165 258 5 879525672
161 174 2 891170800
109 89 4 880573263
305 87 1 886323153
195 181 5 875771440
7 193 5 892135346
326 480 4 879875691
77 125 3 884733014
85 58 4 879829689
186 588 4 879024535
256 280 5 882151167
84 529 5 883453108
74 288 3 888333280
102 432 3 883748418
194 770 4 879525342
267 114 5 878971514
1 92 3 876892425
16 504 5 877718168
211 300 2 879461395
90 31 4 891384673
234 657 4 892079840
60 1020 4 883327018
92 947 4 875654929
158 1 4 880132443
87 1000 3 879877173
276 104 1 874836682
1 228 5 878543541
42 143 4 881108229
43 26 5 883954901
299 1322 3 877878001
130 200 5 875217392
307 71 5 879283169
147 339 5 885594204
311 229 5 884365890
296 286 5 884196209
217 82 5 889069842
80 886 4 883605238
314 9 4 877886375
64 527 4 879365590
249 79 5 879572777
21 298 5 874951382
68 118 2 876974248
215 151 5 891435761
305 238 3 886323617
308 417 3 887740254
102 118 3 888801465
189 120 1 893264954
112 750 4 884992444
130 622 3 875802173
188 474 4 875072674
56 585 3 892911366
56 230 5 892676339
20 11 2 879669401
20 176 2 879669152
222 25 3 877563437
49 148 1 888068195
307 431 4 877123333
144 313 5 888103407
23 404 4 874787860
144 961 3 888106106
160 3 3 876770124
22 227 4 878888067
79 508 3 891271676
18 647 4 880129595
151 481 3 879524669
312 480 5 891698224
256 29 4 882164644
158 568 4 880134532
311 141 4 884366187
303 179 5 879466491
25 478 5 885852271
195 407 2 877835302
152 147 3 880149045
145 1001 4 875271607
151 260 1 879523998
194 576 2 879528568
271 624 2 885849558
162 121 4 877636000
313 65 2 891016962
6 532 3 883600066
22 433 3 878886479
13 915 5 892015023
327 461 3 887746665
200 402 4 884129029
271 22 5 885848518
269 478 4 891448980
315 431 2 879821300
178 121 5 882824291
210 502 3 891035965
76 135 5 875028792
318 648 5 884495534
279 1291 4 875297708
75 121 4 884050450
90 618 5 891385335
44 174 5 878347662
293 729 2 888907145
217 195 5 889069709
224 708 2 888104153
246 121 4 884922627
284 906 3 885328836
301 172 5 882076403
244 31 4 880603484
95 395 3 888956928
303 330 3 879552065
198 640 3 884208651
256 802 3 882164955
46 690 5 883611274
305 209 5 886322966
83 364 1 886534501
224 1208 1 888104554
295 67 4 879519042
116 248 3 876452492
201 37 2 884114635
155 748 2 879371261
318 508 4 884494976
274 288 4 878944379
263 333 2 891296842
145 172 5 882181632
188 191 3 875073128
119 313 5 886176135
270 306 5 876953744
262 91 3 879792713
131 845 4 883681351
250 260 4 878089144
33 307 3 891964148
37 183 4 880930042
6 211 5 883601155
85 517 5 879455238
308 164 4 887738664
42 746 3 881108279
102 1025 2 883278200
311 70 4 884364999
181 1322 1 878962086
17 508 3 885272779
174 396 1 886515104
125 150 1 879454892
181 1364 1 878962464
235 511 5 889655162
1 266 1 885345728
295 727 5 879517682
56 194 5 892676908
83 1035 4 880308959
100 355 4 891375313
106 828 2 883876872
270 327 5 876953900
181 680 1 878961709
115 228 4 881171488
286 771 2 877535119
234 151 3 892334481
16 92 4 877721905
130 410 5 875802105
271 121 2 885848132
320 1157 4 884751336
189 462 5 893265741
313 31 4 891015486
49 238 4 888068762
60 79 4 883326620
13 226 4 882397651
1 121 4 875071823
150 246 5 878746719
13 548 3 882398743
179 751 1 892151565
222 426 1 878181351
7 614 5 891352489
157 1132 3 886891132
193 368 1 889127860
130 993 5 874953665
166 322 5 886397723
62 4 4 879374640
253 183 5 891628341
261 117 4 890455974
269 1020 4 891449571
269 136 4 891449075
322 197 5 887313983
7 647 5 891352489
112 748 3 884992651
170 245 5 884103758
271 823 3 885848237
294 288 5 877818729
151 522 5 879524443
311 213 4 884365075
26 257 3 891371596
291 627 4 875086991
26 7 3 891350826
221 468 3 875246824
318 204 5 884496218
87 996 3 879876848
279 88 1 882146554
279 562 3 890451433
207 14 4 875504876
279 163 5 875313311
230 238 1 880484778
94 235 4 891722980
293 931 1 888905252
121 86 5 891388286
198 180 3 884207298
292 653 4 881105442
92 781 3 875907649
291 572 3 874834944
48 690 4 879434211
102 264 2 883277645
1 114 5 875072173
180 79 3 877442037
255 879 3 883215660
250 2 4 878090414
119 716 5 874782190
101 282 3 877135883
244 220 2 880605264
67 1 3 875379445
291 99 4 875086887
59 238 5 888204553
311 73 4 884366187
177 919 4 880130736
1 132 4 878542889
144 778 4 888106044
1 74 1 889751736
268 68 4 875744173
232 705 5 888549838
49 758 1 888067596
102 313 3 887048184
279 1093 4 875298330
279 1493 1 888465068
22 173 5 878886368
122 715 5 879270741
145 315 5 883840797
119 1101 5 874781779
261 259 4 890454843
1 134 4 875073067
94 45 5 886008764
330 11 4 876546561
291 741 5 874834481
6 180 4 883601311
188 88 4 875075300
299 921 3 889502087
253 203 4 891628651
215 194 4 891436150
291 273 3 874833705
303 867 3 879484373
6 477 1 883599509
307 1110 4 877122208
130 876 4 874953291
95 483 3 879198697
74 326 4 888333329
13 305 4 881514811
4 260 4 892004275
261 294 4 890454217
159 259 4 893255969
137 55 5 881433689
174 699 5 886514220
286 158 3 877533472
87 1183 3 879875995
270 230 3 876955868
91 172 4 891439208
296 272 5 884198772
125 483 4 879454628
62 1118 3 879375537
328 200 4 885046420
296 510 5 884197264
234 500 3 892078890
237 100 5 879376381
150 13 4 878746889
301 610 3 882077176
151 25 4 879528496
271 8 4 885848770
87 303 3 879875471
293 1220 2 888907552
113 294 4 875935277
311 518 3 884365451
181 123 2 878963276
328 905 3 888641999
110 301 2 886987505
288 742 3 886893063
111 887 3 891679692
194 196 3 879524007
239 605 4 889180446
109 5 3 880580637
291 824 4 874833962
16 168 4 877721142
14 357 2 890881294
22 687 1 878887476
207 746 4 877878342
312 1299 4 891698832
268 250 4 875742530
68 411 1 876974596
195 887 4 886782489
271 50 5 885848640
74 9 4 888333458
308 802 3 887738717
144 66 4 888106078
195 14 4 890985390
18 199 3 880129769
13 918 3 892524090
174 41 1 886515063
109 159 4 880578121
227 293 5 879035387
233 357 5 877661553
264 475 5 886122706
205 678 1 888284618
275 1066 3 880313679
56 68 3 892910913
78 1160 5 879634134
130 682 4 881076059
127 380 5 884364950
130 568 5 876251693
58 1100 2 884304979
49 473 3 888067164
13 273 3 882397502
203 336 3 880433474
330 136 5 876546378
109 195 5 880578038
186 406 1 879023272
293 148 1 888907015
280 1028 5 891702276
143 331 5 888407622
183 96 3 891463617
60 699 4 883327539
178 131 4 882827947
297 216 4 875409423
59 1117 4 888203313
276 429 5 874790972
179 258 5 892151270
87 386 2 879877006
198 1169 4 884208834
119 54 4 886176814
297 20 4 874954763
1 98 4 875072404
268 205 5 875309859
279 174 4 875306636
64 187 5 889737395
119 1262 3 890627252
75 1017 5 884050502
27 742 3 891543129
307 21 4 876433101
37 685 3 880915528
82 15 3 876311365
244 238 5 880606118
271 274 3 885848014
174 1014 3 890664424
210 135 5 887736352
262 258 4 879961282
320 68 5 884749327
85 660 4 879829618
311 348 4 884364108
82 208 3 878769815
1 186 4 875073128
145 368 3 888398492
276 401 3 874792094
23 213 3 874785675
64 515 5 889737478
63 237 3 875747342
293 227 2 888906990
322 32 5 887314417
74 285 3 888333428
297 202 3 875238638
82 216 4 878769949
280 145 3 891702198
200 227 5 884129006
290 21 3 880475695
43 820 2 884029742
95 573 1 888954808
181 20 1 878962919
178 926 4 882824671
81 476 2 876534124
194 410 3 879541042
325 402 2 891479706
276 347 4 885159630
207 133 4 875812281
87 135 5 879875649
331 7 4 877196633
315 8 3 879820961
106 435 3 881452355
286 83 5 877531975
87 157 3 879877799
87 163 4 879877083
286 655 3 889651746
232 8 2 888549757
254 380 4 886474456
96 91 5 884403250
232 1 4 880062302
315 98 4 879821193
43 553 4 875981159
305 679 3 886324792
61 690 2 891206407
44 665 1 883613372
92 1016 2 875640582
168 255 1 884287560
276 270 4 879131395
328 568 3 885047896
222 1053 3 881060735
93 222 4 888705295
330 235 5 876544690
82 504 4 878769917
2 314 1 888980085
89 732 5 879459909
38 216 5 892430486
308 85 4 887741245
24 153 4 875323368
235 1464 4 889655266
1 221 5 887431921
222 715 2 878183924
222 69 5 878182338
43 114 5 883954950
331 486 3 877196308
223 322 4 891548920
201 452 1 884114770
158 271 4 880132232
32 249 4 883717645
314 90 2 877888758
313 245 3 891013144
102 576 2 888802722
211 526 4 879459952
268 425 4 875310549
332 770 3 888098170
38 508 2 892429399
280 975 4 891702252
10 463 4 877889186
92 386 3 875907727
268 374 2 875744895
69 258 4 882027204
210 96 4 887736616
213 144 5 878956047
254 50 5 886471151
58 272 5 884647314
327 210 3 887744065
291 385 4 874835141
291 324 1 874805453
246 596 3 884921511
11 714 4 891904214
329 100 4 891655812
86 258 5 879570366
7 621 5 892132773
246 80 2 884923329
308 481 4 887737997
54 820 3 880937992
177 651 3 880130862
10 655 5 877891904
83 631 2 887664566
145 993 3 875270616
255 185 4 883216449
18 607 3 880131752
226 180 4 883889322
234 616 2 892334976
274 25 5 878945541
293 156 4 888905948
83 476 3 880307359
295 173 5 879518257
286 1039 5 877531730
42 48 5 881107821
208 204 3 883108360
232 275 2 885939945
267 94 3 878972558
271 242 4 885844495
125 97 3 879454385
323 333 4 878738865
305 56 1 886323068
145 250 5 882182944
38 1030 5 892434475
202 515 1 879726778
181 975 2 878963343
332 566 4 888360342
108 13 3 879879834
194 520 5 879545114
144 62 2 888105902
194 1183 2 879554453
148 172 5 877016513
144 1147 4 888105587
269 961 5 891457067
290 71 5 880473667
249 597 2 879640436
65 676 5 879217689
301 395 1 882079384
267 546 3 878970877
207 754 4 879577345
201 777 1 884112673
314 1095 3 877887356
210 631 5 887736796
22 456 1 878887413
59 931 2 888203610
92 715 4 875656288
50 475 5 877052167
188 159 3 875074589
303 700 3 879485718
197 288 3 891409387
244 676 4 880604858
44 88 2 878348885
164 597 4 889402225
11 230 4 891905783
6 297 3 883599134
186 925 5 879023152
190 147 4 891033863
184 1137 5 889907812
85 269 3 891289966
185 127 5 883525183
44 257 4 878346689
293 484 5 888906217
150 1 4 878746441
60 179 4 883326566
75 147 3 884050134
269 640 5 891457067
138 493 4 879024382
299 271 3 879737472
92 928 3 886443582
299 24 3 877877732
292 183 5 881103478
5 394 2 879198031
62 559 3 879375912
198 549 3 884208518
288 1039 2 886373565
152 272 5 890322298
42 999 4 881108982
64 333 3 879365313
99 682 2 885678371
59 121 4 888203313
135 233 3 879857843
7 22 5 891351121
24 427 5 875323002
144 747 5 888105473
261 322 4 890454974
201 475 4 884112748
133 258 5 890588639
110 245 3 886987540
5 384 3 875636389
139 268 4 879537876
112 322 4 884992690
234 596 2 891227979
301 184 4 882077222
291 1471 3 874834914
285 216 3 890595900
85 53 3 882995643
275 183 3 880314500
296 275 4 884196555
271 197 4 885848915
29 748 2 882821558
221 172 5 875245907
323 9 4 878739325
111 340 4 891679692
95 176 3 879196298
207 170 4 877125221
136 276 5 882693489
124 616 4 890287645
185 528 4 883526268
167 404 3 892738278
286 341 5 884069544
84 322 3 883449567
151 529 5 879542610
264 401 5 886123656
289 1 3 876789736
144 64 5 888105140
56 29 3 892910913
23 528 4 874786974
328 742 4 885047309
125 785 3 892838558
200 72 4 884129542
249 23 4 879572432
130 56 5 875216283
140 319 4 879013617
49 102 2 888067164
158 483 5 880133225
222 58 3 878182479
194 213 2 879523575
177 89 5 880131088
7 268 3 891350703
59 549 4 888205659
145 411 2 875271522
265 7 2 875320689
248 282 2 884535582
239 47 2 889180169
319 879 5 876280338
42 102 5 881108873
301 1035 4 882078809
326 69 2 879874964
180 67 1 877127591
280 99 2 891700475
145 682 3 879161624
214 79 4 891544306
259 210 4 874725485
57 864 3 883697512
261 597 4 890456142
136 298 4 882693569
293 705 5 888906338
194 470 3 879527421
75 496 5 884051921
202 172 3 879726778
23 183 3 874785728
38 403 1 892432205
52 1009 5 882922328
95 720 2 879196513
65 97 5 879216605
207 290 2 878104627
201 2 2 884112487
190 751 4 891033606
162 685 3 877635917
221 250 5 875244633
92 134 4 875656623
49 695 3 888068957
102 391 2 888802767
6 500 4 883601277
152 25 3 880149045
145 278 4 875272871
328 271 3 885044607
116 750 4 886309481
90 237 4 891385215
221 318 5 875245690
128 283 5 879966729
94 467 4 885873423
221 1218 3 875246745
281 332 4 881200603
294 539 4 889241707
300 948 4 875650018
326 153 4 879875751
62 28 3 879375169
159 249 4 884027269
76 811 4 882606323
74 237 4 888333428
81 411 2 876534244
280 227 3 891702153
224 22 5 888103581
64 77 3 889737420
194 756 1 879549899
15 20 3 879455541
43 328 4 875975061
244 100 4 880604252
327 805 4 887819462
21 928 3 874951616
83 254 2 880327839
14 22 3 890881521
318 610 5 884496525
92 756 3 886443582
222 1078 2 878183449
62 157 3 879374686
13 840 3 886261387
271 300 2 885844583
59 13 5 888203415
208 514 4 883108324
289 815 3 876789581
279 249 3 878878420
326 50 5 879875112
73 12 5 888624976
28 234 4 881956144
6 95 2 883602133
90 354 3 891382240
96 519 4 884402896
7 627 3 891352594
254 649 1 886474619
328 519 5 885046420
247 751 3 893081411
45 472 3 881014417
323 127 5 878739137
268 566 3 875744321
291 816 3 874867852
59 405 3 888203578
200 409 2 884127431
332 975 3 887938631
239 612 5 889178616
22 399 4 878887157
267 147 3 878970681
235 319 4 889654419
87 70 5 879876448
216 143 2 881428956
268 121 2 875743141
239 317 5 889179291
269 922 5 891457067
207 468 4 877124806
270 148 4 876954062
184 559 3 889910418
304 271 4 884968415
331 479 2 877196504
157 283 4 886890692
239 183 5 889180071
261 339 5 890454351
301 58 4 882077285
145 339 3 882181058
10 321 4 879163494
48 308 5 879434292
321 631 4 879440264
32 591 3 883717581
125 1036 2 892839191
1 84 4 875072923
21 742 3 874951617
22 186 5 878886368
292 324 3 881104533
72 129 4 880035588
256 642 4 882164893
92 1095 2 886443728
73 475 4 888625753
290 274 4 880731874
83 543 2 887665445
56 597 3 892679439
83 216 4 880307846
215 22 3 891435161
101 369 2 877136928
328 521 4 885047484
307 175 4 877117651
201 23 4 884111830
197 570 4 891410124
26 286 3 891347400
90 489 5 891384357
98 517 5 880498990
57 250 3 883697223
163 288 3 891220226
1 31 3 875072144
104 324 1 888442404
333 894 3 891045496
311 22 4 884364538
237 211 4 879376515
44 603 4 878347420
22 96 5 878887680
213 546 4 878870903
257 258 3 879029516
327 300 2 887743541
279 1017 3 875296891
53 845 3 879443083
85 97 2 879829667
43 286 4 875975028
181 7 4 878963037
297 574 1 875239092
201 651 4 884111217
320 99 4 884751440
94 180 5 885870284
235 85 4 889655232
305 131 3 886323440
234 229 4 892334189
328 591 3 885047018
328 754 4 885044607
258 323 4 885701062
3 323 2 889237269
16 70 4 877720118
286 425 2 877532013
327 702 2 887819021
200 265 5 884128372
207 131 3 878104377
292 10 5 881104606
214 179 5 892668130
155 321 4 879370963
106 213 4 881453065
200 586 4 884130391
305 216 5 886323563
279 1113 3 888806035
178 984 2 882823530
331 133 3 877196443
58 45 5 884305295
167 1306 5 892738385
151 191 3 879524326
326 168 3 879874859
297 443 2 875240133
191 288 3 891562090
81 471 3 876533586
284 258 4 885329146
5 267 4 875635064
150 325 1 878747322
257 59 5 879547440
145 443 3 882182658
271 191 5 885848448
176 297 3 886047918
158 38 4 880134607
152 716 5 884019001
232 638 5 888549988
109 930 3 880572351
243 660 4 879988422
57 744 5 883698581
145 1057 1 875271312
235 275 5 889655550
181 124 1 878962550
145 182 5 885622510
249 476 3 879640481
44 11 3 878347915
194 566 4 879522819
109 218 4 880578633
49 10 3 888066086
269 210 1 891449608
87 233 4 879876036
314 791 4 877889398
292 132 4 881105340
7 300 4 891350703
291 460 5 874834254
292 176 5 881103478
290 1028 3 880732365
122 427 3 879270165
17 151 4 885272751
59 47 5 888205574
29 689 2 882821705
274 411 3 878945888
190 340 1 891033153
213 50 5 878870456
14 111 3 876965165
321 131 4 879439883
221 1314 3 875247833
195 100 5 875771440
236 187 3 890118340
92 619 4 875640487
303 576 3 879485417
42 210 5 881108633
246 423 3 884920900
181 823 2 878963343
197 231 3 891410124
181 369 3 878963418
130 172 5 875801530
276 1131 3 874796116
252 742 4 891455743
221 1067 3 875244387
292 488 5 881105657
177 124 3 880130881
42 785 4 881109060
1 70 3 875072895
13 178 4 882139829
76 276 5 875027601
269 72 2 891451470
3 331 4 889237455
290 429 4 880474606
159 815 3 880557387
248 474 2 884534672
214 1065 5 892668173
30 181 4 875060217
8 182 5 879362183
238 118 3 883576509
249 176 4 879641109
264 1069 5 886123728
98 655 3 880498861
123 275 4 879873726
181 688 1 878961668
7 162 5 891353444
119 269 3 892564213
181 457 1 878961474
138 483 5 879024280
56 63 3 892910268
291 122 3 874834289
326 468 3 879875572
92 175 4 875653549
293 654 5 888905760
162 1047 5 877635896
303 549 3 879484846
325 504 3 891477905
267 654 5 878971902
130 546 4 876250932
216 577 1 881432453
301 53 1 882078883
91 423 5 891439090
301 384 5 882079315
291 672 3 874867741
18 196 3 880131297
195 1084 4 888737345
222 939 3 878182211
327 274 2 887819462
254 577 1 886476092
332 693 5 888098538
267 55 4 878972785
16 443 5 877727055
158 79 4 880134332
305 14 4 886322893
87 67 4 879877007
313 175 4 891014697
43 498 5 875981275
234 1035 3 892335142
90 11 4 891384113
230 196 5 880484755
1 60 5 875072370
262 185 3 879793164
221 1407 3 875247833
279 382 4 875312947
211 678 3 879461394
287 1016 5 875334430
167 603 4 892738212
119 154 5 874782022
126 878 5 887938392
60 474 5 883326028
296 427 5 884198772
300 243 4 875650068
194 971 3 879551049
83 186 4 880308601
207 1242 5 884386260
311 1116 3 884364623
181 406 1 878962955
130 550 5 878537602
245 222 4 888513212
168 235 2 884288270
256 756 4 882151167
1 177 5 876892701
59 10 4 888203234
223 258 1 891548802
243 225 3 879987655
148 1149 5 877016513
10 48 4 877889058
178 549 4 882827689
295 4 4 879518568
99 124 2 885678886
334 117 3 891544735
263 523 5 891298107
230 402 5 880485445
152 132 5 882475496
189 45 3 893265657
130 231 3 875801422
334 282 4 891544925
91 193 3 891439057
244 97 2 880605514
83 866 3 883867947
222 217 3 881060062
10 203 4 877891967
173 300 4 877556988
269 168 4 891448850
292 100 5 881103999
60 508 4 883327368
197 431 3 891409935
313 265 4 891016853
234 506 4 892318107
234 959 2 892334189
154 484 4 879139096
14 56 5 879119579
201 1211 3 884113806
181 359 1 878961668
52 748 4 882922629
308 579 3 887740700
212 515 4 879303571
13 42 4 882141393
268 99 3 875744744
119 245 4 886176618
44 202 4 878347315
126 884 5 887938392
159 111 4 880556981
90 301 4 891382392
320 42 4 884751712
301 25 3 882075110
114 269 4 881256090
9 691 5 886960055
315 17 1 879821003
137 195 5 881433689
183 562 3 891467003
297 301 4 876529834
334 603 5 891628849
18 954 3 880130640
152 97 5 882475618
184 498 5 889913687
325 430 5 891478028
39 315 4 891400094
231 127 3 879965565
302 309 2 879436820
63 150 4 875747292
201 375 3 884287140
200 103 2 891825521
13 94 3 882142057
297 22 4 875238984
201 844 2 884112537
14 93 3 879119311
240 343 3 885775831
184 716 3 889909987
216 12 5 881432544
38 122 1 892434801
257 276 5 882049973
256 778 4 882165103
200 229 5 884129696
148 177 2 877020715
249 22 5 879572926
184 47 4 889909640
276 58 4 874791169
268 432 3 875310145
224 258 3 888081947
145 25 2 875270655
298 261 4 884126805
244 743 5 880602170
289 410 2 876790361
59 132 5 888205744
301 1112 4 882079294
56 1090 3 892683641
327 192 5 887820828
285 288 5 890595584
133 328 3 890588577
71 346 4 885016248
293 1132 3 888905416
13 908 1 886302385
1 27 2 876892946
271 172 5 885848616
286 269 5 879780839
49 926 1 888069117
290 153 3 880475310
226 270 4 883888639
104 122 3 888465739
311 233 4 884365889
60 178 5 883326399
200 191 5 884128554
128 276 4 879967550
157 748 2 886890015
303 460 4 879543600
5 445 3 875720744
268 540 1 875542174
290 218 2 880475542
181 1346 1 878962086
189 276 3 893264300
90 659 4 891384357
321 134 3 879438607
279 108 4 892174381
197 770 3 891410082
217 566 4 889069903
193 682 1 889123377
34 310 4 888601628
293 157 5 888905779
297 300 3 874953892
24 742 4 875323915
259 405 3 874725120
303 1007 5 879544576
326 282 2 879875964
10 218 4 877889261
334 635 2 891548155
272 8 4 879455015
76 1129 5 875028075
13 300 1 881515736
194 431 4 879524291
256 291 5 882152630
148 185 1 877398385
276 318 5 874787496
227 126 4 879035158
311 553 3 884365451
198 427 4 884207009
13 180 5 882141248
286 100 3 876521650
271 451 3 885849447
59 318 5 888204349
328 655 4 886037429
25 174 5 885853415
90 971 4 891385250
157 150 5 874813703
106 69 4 881449886
173 322 4 877557028
276 1135 4 874791527
276 76 4 874791506
49 546 1 888069636
115 234 5 881171982
307 22 3 879205470
82 218 3 878769748
116 1082 3 876453171
80 50 3 887401533
59 381 5 888205659
236 143 4 890116163
56 174 5 892737191
82 413 1 884714593
82 69 4 878769948
144 727 3 888105765
7 526 5 891351042
49 531 3 888066511
1 260 1 875071713
243 129 2 879987526
313 488 5 891013496
207 273 4 878104569
334 222 4 891544904
83 95 4 880308453
162 230 2 877636860
326 496 5 879874825
236 686 3 890118372
17 9 3 885272558
92 1215 2 890251747
82 147 3 876311473
201 242 4 884110598
223 237 5 891549657
168 295 4 884287615
186 977 3 879023273
246 356 2 884923047
62 135 4 879375080
320 456 3 884748904
48 603 4 879434607
209 269 2 883589606
236 1328 4 890116132
92 673 4 875656392
71 285 3 877319414
5 167 2 875636281
67 240 5 875379566
188 554 2 875074891
326 54 3 879876300
234 462 4 892079840
31 302 4 881547719
228 886 1 889387173
172 603 3 875538027
314 1139 5 877888480
297 652 3 875239346
264 659 5 886122577
118 174 5 875385007
216 286 4 881432501
290 1013 2 880732131
256 278 5 882151517
200 820 3 884127370
49 312 3 888065786
118 433 5 875384793
293 195 3 888906119
13 29 2 882397833
42 405 4 881105541
293 566 3 888907312
125 158 4 892839066
315 230 4 879821300
296 83 5 884199624
188 204 4 875073478
201 4 4 884111830
253 747 3 891628501
315 531 5 879799457
210 134 5 887736070
119 1170 3 890627339
151 509 4 879524778
81 273 4 876533710
324 748 5 880575108
43 15 5 875975546
298 432 4 884183307
250 127 4 878089881
286 1265 5 884069544
203 294 2 880433398
267 226 3 878972463
194 735 4 879524718
303 99 4 879467514
193 195 1 889124507
57 588 4 883698454
92 672 3 875660028
207 269 4 877845577
325 154 3 891478480
280 86 4 891700475
197 449 5 891410124
39 352 5 891400704
197 510 5 891409935
117 1 4 880126083
132 922 5 891278996
271 180 5 885849087
222 433 4 881059876
103 117 4 880416313
201 26 4 884111927
270 387 5 876955689
104 100 4 888465166
95 96 4 879196298
130 204 5 875216718
290 239 2 880474451
314 833 4 877887155
313 969 4 891015387
295 722 4 879518881
269 412 3 891446904
49 1 2 888068651
332 228 5 888359980
301 11 4 882076291
125 434 4 879454100
336 66 3 877756126
1 145 2 875073067
327 230 4 887820448
262 292 4 879961282
313 205 5 891013652
321 523 3 879440687
248 185 3 884534772
38 384 5 892433660
224 778 1 888104057
217 1222 1 889070050
6 475 5 883599478
331 47 5 877196235
38 423 5 892430071
1 174 5 875073198
308 60 3 887737760
207 642 3 875991116
215 1039 5 891436543
56 239 4 892676970
109 1011 3 880571872
10 124 5 877888545
320 210 5 884749227
269 180 3 891448120
290 380 3 880731766
311 205 5 884365357
129 270 3 883243934
109 281 2 880571919
235 898 3 889654553
335 328 3 891566903
13 508 3 882140426
201 558 2 884112537
276 801 3 877935306
81 118 2 876533764
288 200 4 886373534
263 97 4 891299387
293 87 4 888907015
136 117 4 882694498
318 660 3 884497207
295 405 5 879518319
201 480 4 884111598
232 708 4 888550060
197 566 4 891409893
313 180 5 891014898
109 230 5 880579107
168 596 4 884287615
201 980 3 884140927
222 554 2 881060435
115 11 4 881171348
334 224 2 891545020
119 697 5 874782068
198 385 3 884208778
91 507 4 891438977
62 281 3 879373118
239 98 5 889180410
324 1033 4 880575589
201 823 3 884140975
322 50 5 887314418
107 305 4 891264327
64 2 3 889737609
28 50 4 881957090
246 202 3 884922272
168 1197 5 884287927
34 259 2 888602808
286 465 5 889651698
184 521 4 889908873
106 286 4 881449486
198 1117 3 884205252
291 53 5 874834827
25 477 4 885853155
1 159 3 875073180
181 1393 1 878961709
169 301 4 891268622
60 172 4 883326339
178 427 5 882826162
149 327 2 883512689
280 96 4 891700664
205 984 1 888284710
92 431 4 875660164
244 369 4 880605294
308 291 3 887739472
235 684 4 889655162
218 194 3 877488546
307 313 5 888095725
18 69 3 880129527
23 215 2 874787116
184 132 5 889913687
244 237 5 880602334
211 181 1 879461498
236 696 2 890117223
145 672 3 882182689
235 648 4 889655662
116 1016 2 876453376
178 358 1 888512993
11 561 2 891905936
329 512 4 891656347
183 405 4 891464393
308 467 4 887737194
207 576 3 877822904
198 249 2 884205277
100 750 4 891375016
291 168 5 874871800
115 762 4 881170508
151 169 5 879524268
305 403 2 886324792
338 494 3 879438570
292 525 5 881105701
234 671 3 892336257
234 584 3 892333653
279 275 3 875249232
234 638 4 892335989
110 79 4 886988480
106 273 3 881453290
128 111 3 879969215
298 151 3 884183952
42 845 5 881110719
128 747 3 879968742
190 717 3 891042938
1 82 5 878542589
99 421 3 885680772
313 208 3 891015167
13 45 3 882139863
305 302 4 886307860
94 185 5 885873684
271 204 4 885848314
128 83 5 879967691
267 50 5 878974783
142 189 4 888640317
1 56 4 875072716
18 214 4 880132078
188 234 4 875073048
235 100 4 889655550
303 408 4 879467035
100 266 2 891375484
178 302 4 892239796
42 781 4 881108280
18 488 3 880130065
184 14 4 889907738
293 521 3 888906288
293 849 2 888907891
198 156 3 884207058
234 966 4 892334189
181 1351 1 878962168
194 153 3 879546723
1 272 3 887431647
265 279 2 875320462
159 323 4 880485443
332 229 5 888360342
334 229 2 891549777
126 258 4 887853919
200 225 4 876042299
63 246 3 875747514
271 134 3 885848518
179 316 5 892151202
308 959 3 887739335
270 70 5 876955066
181 1198 1 878962585
21 445 3 874951658
326 675 4 879875457
268 823 2 875742942
109 845 4 880571684
339 132 5 891032953
244 95 4 880606418
62 702 2 879376079
321 615 5 879440109
254 141 3 886472836
295 423 4 879517372
271 241 3 885849207
7 519 4 891352831
334 52 4 891548579
136 14 5 882693338
192 1160 4 881367456
259 176 4 874725386
244 509 5 880606017
238 815 2 883576398
73 127 5 888625200
249 455 4 879640326
320 291 4 884749014
13 820 4 882398743
10 283 4 877892276
321 207 3 879440244
201 991 4 884110735
102 559 3 888803052
190 742 3 891033841
311 99 5 884365075
309 333 3 877370419
62 685 2 879373175
116 187 5 886310197
295 966 5 879518060
234 72 3 892335674
255 984 1 883215902
161 582 1 891170800
87 550 4 879876074
59 559 5 888206562
140 322 3 879013684
224 301 3 888082013
90 486 5 891383912
14 792 5 879119651
194 216 3 879523785
222 501 2 881060331
90 311 4 891382163
328 43 3 886038224
7 633 5 891351509
151 228 5 879524345
297 223 5 875238638
207 529 4 878191679
130 930 3 876251072
314 743 1 877886443
181 926 1 878962866
13 509 5 882140691
232 523 4 888549757
201 87 3 884111775
223 470 4 891550767
18 602 3 880131407
82 495 3 878769668
144 403 3 888105636
186 322 5 879022927
250 174 3 878092104
321 194 3 879441225
28 12 4 881956853
28 895 4 882826398
151 405 3 879543055
207 1102 3 880839891
201 164 3 884112627
6 509 4 883602664
42 380 4 881108548
221 895 2 885081339
328 10 4 885047099
270 159 4 876956233
269 340 5 891446132
216 249 3 880232917
201 1424 3 884113114
85 86 4 879454189
95 843 4 880572448
306 275 4 876503894
256 235 3 882153668
85 692 3 879828490
11 312 4 891902157
305 210 3 886323006
181 321 2 878961623
151 7 4 879524610
296 961 5 884197287
119 595 3 874781067
314 929 3 877887356
279 363 5 890451473
188 357 4 875073647
214 872 2 891542492
234 209 4 892317967
5 426 3 878844510
1 80 4 876893008
246 578 2 884923306
294 979 3 877819897
314 73 4 877889205
312 98 4 891698300
208 662 4 883108842
43 382 5 883955702
254 596 4 886473852
3 294 2 889237224
44 153 4 878347234
25 742 4 885852569
94 79 4 885882967
262 406 3 879791537
35 1025 3 875459237
148 501 4 877020297
70 423 5 884066910
83 265 5 880308186
5 222 4 875635174
308 1028 2 887738972
109 62 3 880578711
49 173 3 888067691
314 468 4 877892214
334 1163 4 891544764
269 205 3 891447841
38 318 3 892430071
102 222 3 888801406
329 297 4 891655868
305 1411 3 886324865
236 289 4 890117820
313 131 4 891015513
332 284 5 887938245
121 121 2 891388501
60 183 5 883326399
339 1030 1 891036707
296 544 4 884196938
11 720 1 891904717
263 272 5 891296919
303 203 5 879467669
288 182 4 886374497
291 17 4 874834850
308 628 3 887738104
13 755 3 882399014
64 231 3 889740880
277 24 4 879543931
130 572 3 878537853
293 386 2 888908065
279 368 1 886016352
189 253 4 893264150
296 32 4 884197131
305 169 5 886322893
303 262 5 879466065
95 211 3 879197652
207 1098 4 877879172
110 1248 3 886989126
312 408 4 891698174
279 1413 5 875314434
15 301 4 879455233
116 484 4 886310197
198 51 3 884208455
13 2 3 882397650
332 232 5 888098373
44 55 4 878347455
62 716 4 879375951
148 529 5 877398901
303 421 4 879466966
276 56 5 874791623
311 484 4 884366590
58 475 5 884304609
85 488 4 879455197
330 584 3 876547220
181 1067 1 878962550
301 515 3 882074561
13 830 1 882397581
127 268 1 884363990
37 56 5 880915810
314 924 5 877886921
201 210 2 884111270
198 511 4 884208326
94 742 3 891722214
209 258 2 883589626
305 610 3 886324128
67 405 5 875379794
294 120 2 889242937
246 98 4 884921428
194 162 3 879549899
307 393 3 877123041
95 976 2 879195703
268 252 3 875743182
216 298 5 881721819
5 453 1 879198898
223 845 4 891549713
293 124 4 888904696
224 1119 3 888082634
299 176 4 880699166
130 71 5 875801695
130 50 5 874953665
54 313 4 890608360
62 473 4 879373046
312 495 4 891699372
125 22 5 892836395
318 357 4 884496069
204 748 1 892392030
182 293 3 885613152
49 569 3 888067482
69 56 5 882145428
64 959 4 889739903
325 179 5 891478529
286 272 5 884069298
116 880 3 876680723
215 89 4 891435060
46 333 5 883611374
246 294 2 884924460
213 25 4 878870750
90 213 5 891383718
110 188 4 886988574
212 511 4 879304051
57 1059 3 883697432
57 825 1 883697761
297 282 3 874954845
276 176 5 874792401
106 45 3 881453290
151 66 4 879524974
276 66 3 874791993
269 76 3 891448456
154 286 4 879138235
210 219 3 887808581
306 319 4 876503793
324 471 5 880575412
265 472 3 875320542
85 389 3 882995832
54 325 3 880930146
18 498 4 880129940
271 345 3 885844666
123 22 4 879809943
87 1189 5 879877951
217 810 3 889070050
198 148 3 884206401
116 257 3 876452523
131 274 3 883681351
297 692 3 875239018
266 874 2 892257101
109 796 3 880582856
189 480 5 893265291
22 294 1 878886262
234 471 3 892335074
328 679 2 885049460
56 79 4 892676303
178 978 2 882824983
216 226 3 880244803
38 444 1 892433912
219 179 5 889492687
43 944 2 883956260
279 1484 3 875307587
236 507 3 890115897
296 1009 3 884196921
271 490 4 885848886
206 903 2 888180018
21 295 3 874951349
318 47 2 884496855
59 230 4 888205714
151 175 5 879524244
263 86 4 891299574
308 193 3 887737837
152 125 5 880149165
123 165 5 879872672
169 174 4 891359418
294 10 3 877819490
197 651 5 891409839
263 892 3 891297766
63 109 4 875747731
206 362 1 888180018
52 498 5 882922948
316 213 5 880853516
72 89 3 880037164
189 705 4 893265569
80 87 4 887401307
198 746 4 884207946
85 56 4 879453587
194 56 5 879521936
110 82 4 886988480
99 741 3 885678886
7 195 5 891352626
323 546 2 878739519
21 982 1 874951482
334 93 4 891545020
12 82 4 879959610
43 235 3 875975520
228 288 4 889387173
109 90 3 880583192
13 64 5 882140037
178 288 5 882823353
181 887 1 878962005
123 606 3 879872540
82 64 5 878770169
138 285 4 879023245
87 1182 3 879877043
201 304 2 884110967
70 202 4 884066713
178 655 4 882827247
327 558 4 887746196
315 654 5 879821193
251 55 3 886271856
42 70 3 881109148
311 482 4 884365104
129 272 4 883243972
307 193 3 879205470
10 4 4 877889130
338 211 4 879438092
95 514 2 888954076
342 1047 2 874984854
342 792 3 875318882
201 213 4 884111873
32 276 4 883717913
257 289 4 879029543
14 175 5 879119497
299 174 4 877880961
6 134 5 883602283
320 433 4 884751730
305 257 2 886322122
28 153 3 881961214
308 609 4 887739757
287 218 5 875335424
62 421 5 879375716
269 172 3 891449031
119 628 4 874775185
279 1142 1 890780603
224 1442 3 888104281
308 528 3 887737036
151 435 4 879524131
328 216 3 885045899
295 493 5 879516961
62 96 4 879374835
59 1109 3 888205088
255 258 4 883215406
102 195 4 888801360
128 660 2 879968415
8 79 4 879362286
197 1419 2 891410124
217 578 5 889070087
313 204 4 891014401
162 298 4 877635690
30 289 2 876847817
260 319 2 890618198
57 294 4 883696547
334 86 4 891548295
308 54 2 887740254
210 255 4 887730842
213 447 4 878955598
189 1021 5 893266251
220 306 4 881197664
104 1241 1 888465379
339 582 4 891032793
28 184 4 881961671
51 148 3 883498623
244 157 4 880604119
234 491 4 892079538
275 588 3 875154535
186 53 1 879023882
99 1052 1 885679533
269 131 5 891449728
311 720 3 884366307
270 1119 5 876955729
286 1035 3 877532094
311 94 3 884366187
211 257 5 879461498
239 671 5 889179290
201 98 4 884111312
43 403 4 883956305
315 216 4 879821120
53 924 3 879443303
308 452 2 887741329
338 613 3 879438597
90 357 5 891385132
303 327 1 879466166
247 271 2 893081411
144 303 4 888103407
102 1030 1 892994075
90 739 5 891384789
72 527 4 880036746
286 248 5 875806800
201 32 3 884140049
327 497 4 887818658
141 125 5 884585642
167 675 1 892738277
262 217 3 879792818
151 813 4 879524222
13 859 1 882397040
276 207 4 874795988
246 1073 4 884921380
298 98 4 884127720
23 88 3 874787410
94 700 2 891723427
130 772 4 876251804
5 403 3 875636152
297 176 4 881708055
178 250 4 888514821
128 417 4 879968447
270 281 5 876956137
63 251 4 875747514
42 357 5 881107687
100 288 2 891374603
334 100 5 891544707
162 222 4 877635758
184 1020 4 889908630
13 625 2 882398691
72 79 4 880037119
213 8 3 878955564
82 13 2 878768615
314 735 5 877888855
59 488 3 888205956
14 313 2 890880970
236 200 3 890115856
325 240 1 891479592
286 164 3 877533586
268 768 3 875744895
83 77 4 880308426
313 230 3 891015049
21 218 4 874951696
325 656 4 891478219
283 83 4 879298239
223 323 2 891549017
130 418 5 875801631
28 282 4 881957425
43 7 4 875975520
293 559 2 888906168
286 432 3 878141681
176 272 5 886047068
237 499 2 879376487
332 451 5 888360179
303 273 3 879468274
286 13 2 876521933
327 169 2 887744205
262 50 2 879962366
312 631 5 891699599
102 734 2 892993786
16 655 5 877724066
23 90 2 874787370
249 182 5 879640949
18 209 4 880130861
293 216 4 888905990
308 607 3 887737084
164 689 5 889401490
306 1009 4 876503995
327 655 4 887745303
280 756 4 891701649
106 97 5 881450810
109 147 4 880564679
156 58 4 888185906
133 260 1 890588878
23 511 5 874786770
112 689 4 884992668
116 313 5 886978155
271 13 4 885847714
313 136 5 891014474
240 898 5 885775770
52 405 4 882922610
280 202 3 891701090
262 1278 4 879961819
275 252 2 876197944
187 732 3 879465419
13 428 5 882140588
268 946 3 875310442
234 283 3 891227814
16 151 5 877721905
336 108 3 877757320
235 435 5 889655434
216 274 3 880233061
246 215 2 884921058
13 913 1 892014908
21 439 1 874951820
94 99 3 891721815
82 275 2 884714125
339 55 3 891032765
59 1116 3 888206562
217 685 5 889069782
295 736 5 879966498
170 328 3 884103860
151 826 1 879543212
13 212 5 882399385
223 1 4 891549324
246 196 3 884921861
154 137 3 879138657
158 144 4 880134445
11 120 2 891903935
18 630 3 880132188
197 181 5 891409893
235 433 4 889655596
331 69 5 877196384
244 278 3 880605294
217 540 1 889070087
312 134 5 891698764
299 168 4 878192039
234 1172 3 892079076
224 632 2 888103872
327 474 3 887743986
184 780 4 889913254
62 1107 1 879376159
65 70 1 879216529
101 928 2 877136302
210 465 4 887737131
144 237 4 888104258
320 250 4 884751992
311 692 4 884364652
159 328 3 893255993
128 77 3 879968447
167 48 1 892738277
291 558 4 874867757
56 143 3 892910182
38 392 5 892430120
293 264 3 888904392
115 69 1 881171825
276 250 4 874786784
280 225 4 891701974
295 588 4 879517682
26 321 3 891347949
302 328 3 879436844
145 109 4 875270903
201 380 1 884140825
57 252 2 883697807
280 100 3 891700385
310 258 3 879435606
26 269 4 891347478
308 4 5 887737890
269 174 1 891449124
262 71 4 879794951
221 684 4 875247454
263 521 3 891297988
256 276 3 882151198
1 229 4 878542075
266 508 4 892258004
59 127 5 888204430
325 505 4 891478557
327 133 4 887745662
282 269 4 879949347
151 300 4 879523942
104 283 4 888465582
291 1017 4 874833911
276 770 4 877935446
334 1108 4 891549632
224 879 3 888082099
64 1133 4 889739975
58 42 4 884304936
106 584 4 881453481
159 258 4 893255836
268 248 3 875742530
318 286 3 884470681
6 525 5 883601203
327 431 3 887820384
77 23 4 884753173
95 15 4 879195062
255 452 3 883216672
144 328 3 888103407
102 307 4 883748222
269 1014 3 891446838
184 172 4 889908497
306 306 5 876503792
49 732 3 888069040
181 1347 1 878962052
293 514 4 888906378
330 121 4 876544582
125 1074 3 892838827
291 147 4 874805768
269 214 3 891448547
13 168 4 881515193
305 76 1 886323506
313 435 5 891013803
307 229 5 879538921
314 54 4 877888892
269 529 5 891455815
283 186 5 879298239
158 8 5 880134948
92 87 3 876175077
85 842 3 882995704
20 118 4 879668442
193 393 4 889126808
167 222 4 892737995
201 1187 3 884112201
125 346 1 892835800
144 880 5 888103509
234 628 2 892826612
291 574 1 875087656
224 977 2 888104281
152 780 5 884019189
71 462 5 877319567
151 755 3 879543366
135 229 2 879857843
92 931 1 875644796
95 33 3 880571704
130 125 5 875801963
269 405 1 891450902
297 277 3 875048641
62 527 4 879373692
221 17 4 875245406
11 743 2 891904065
230 50 5 880484755
159 930 4 880557824
174 107 5 886434361
97 7 5 884238939
84 289 5 883449419
63 948 3 875746948
125 143 5 879454793
160 126 3 876769148
316 483 4 880853810
32 117 3 883717555
327 93 4 887744432
13 856 5 886303171
216 202 4 880234346
92 1212 3 876175626
1 140 1 878543133
263 183 4 891298655
5 173 4 875636675
85 372 4 879828720
194 519 4 879521474
109 550 5 880579107
201 198 4 884111873
340 172 4 884990620
49 117 1 888069459
7 642 3 892132277
239 286 1 889178512
198 568 3 884208710
237 23 4 879376606
239 135 5 889178762
5 241 1 875720948
72 382 4 880036691
297 480 4 875238923
249 826 1 879640481
25 127 3 885853030
94 227 3 891722759
195 591 4 892281779
92 85 3 875812364
85 709 5 879828941
308 502 5 887739521
311 117 4 884366852
247 251 4 893081395
235 792 4 889655490
329 326 3 891656639
338 79 4 879438715
244 428 4 880606155
187 70 4 879465394
253 483 5 891628122
194 62 2 879524504
70 71 3 884066399
203 332 5 880433474
49 72 2 888069246
308 673 4 887737243
246 426 3 884923471
280 231 3 891701974
180 433 5 877127273
110 1250 3 886988818
327 811 4 887747363
339 47 4 891032701
194 132 3 879520991
1 225 2 878542738
36 319 2 882157356
342 746 4 875320227
260 1105 5 890618729
40 754 4 889041790
175 31 4 877108051
62 827 2 879373421
138 100 5 879022956
252 9 5 891456797
59 421 5 888206015
110 540 3 886988793
1 235 5 875071589
334 269 3 891544049
301 95 5 882076334
63 6 3 875747439
269 805 2 891450623
151 357 5 879524585
268 404 4 875309430
199 473 4 883783005
22 780 1 878887377
28 441 2 881961782
299 210 4 889502980
317 326 3 891446438
254 384 1 886475790
178 245 3 882823460
297 194 3 875239453
90 966 5 891385843
11 734 3 891905349
325 514 4 891478006
249 411 3 879640436
18 964 3 880132252
311 118 3 884963203
334 293 3 891544840
294 483 4 889854323
297 86 5 875238883
293 647 5 888905760
294 876 3 889241633
286 142 4 877534793
308 569 3 887740410
222 164 4 878181768
49 721 2 888068934
303 1090 1 879485686
73 474 5 888625200
93 845 4 888705321
85 1101 4 879454046
223 216 5 891550925
42 1043 2 881108633
234 212 2 892334883
16 288 3 877717078
13 319 4 882139327
135 294 4 879857575
168 411 1 884288222
72 204 4 880037853
144 523 5 888105338
303 398 1 879485372
128 215 3 879967452
320 11 4 884749255
267 684 4 878973088
60 490 4 883326958
189 694 4 893265946
116 905 2 890131519
249 240 4 879640343
110 300 3 886987380
201 1063 3 884113453
180 121 5 877127830
87 1072 3 879876610
6 209 4 883601713
63 301 5 875747010
179 895 5 892151565
148 98 3 877017714
13 312 1 883670630
15 278 1 879455843
176 305 5 886047068
102 66 3 892992129
293 251 4 888904734
42 204 5 881107821
328 523 5 885046206
206 333 4 888179565
279 67 4 875310419
158 42 3 880134913
70 151 3 884148603
271 661 4 885848373
37 222 3 880915528
279 1095 1 886016480
250 200 5 883263374
103 144 4 880420510
50 1084 5 877052501
128 1141 4 879968827
336 577 1 877757396
275 191 4 880314797
95 173 5 879198547
87 651 4 879875893
21 678 2 874951005
145 1217 2 875272349
13 860 1 882396984
312 676 3 891699295
200 431 5 884129006
102 67 1 892993706
325 506 5 891478180
221 1073 4 875245846
2 297 4 888550871
305 733 3 886324661
275 969 2 880314412
11 215 3 891904389
341 876 4 890757886
231 126 5 888605273
269 474 4 891448823
13 540 3 882398410
102 809 3 888802768
254 240 1 886476165
234 486 3 892079373
256 932 3 882150508
249 58 5 879572516
305 947 4 886322838
262 15 3 879962366
325 187 3 891478455
184 836 4 889909142
11 428 4 891905032
40 258 3 889041981
313 740 2 891016540
276 1314 3 874796412
101 1051 2 877136891
236 699 4 890116095
207 134 4 875991160
215 82 3 891435995
125 945 5 892836465
120 282 4 889490172
293 461 2 888905519
160 93 5 876767572
298 418 4 884183406
326 444 4 879877413
246 849 1 884923687
278 301 2 891294980
166 288 3 886397510
328 4 3 885047895
70 265 4 884067503
298 465 4 884182806
343 186 4 876407485
205 313 3 888284313
201 461 4 884113924
276 1478 3 889174849
91 264 4 891438583
250 294 1 878089033
68 405 3 876974518
246 99 3 884922657
10 704 3 877892050
97 435 4 884238752
99 118 2 885679237
102 302 3 880680541
70 152 4 884149877
41 31 3 890687473
178 179 2 882828320
6 19 4 883602965
89 246 5 879461219
254 257 3 886471389
94 402 4 891723261
42 404 5 881108760
130 566 4 878537558
13 614 4 884538634
286 642 3 877531498
291 410 5 874834481
214 121 4 891543632
246 284 1 884922475
130 413 3 876251127
320 1210 4 884751316
60 810 4 883327201
141 744 5 884584981
288 97 4 886629750
145 750 4 885555884
189 496 5 893265380
130 55 5 875216507
328 431 2 885047822
177 1039 3 880130807
201 281 2 884112352
301 456 3 882074838
136 56 4 882848783
74 15 4 888333542
169 429 3 891359250
1 120 1 875241637
100 302 4 891374528
303 716 2 879467639
216 498 3 880235329
6 476 1 883600175
329 98 4 891656300
230 511 2 880485656
113 321 3 875075887
64 100 4 879365558
13 876 2 881515521
269 771 1 891451754
6 154 3 883602730
327 962 3 887820545
179 345 1 892151565
60 152 4 883328033
222 250 2 877563801
83 252 4 883868598
330 51 5 876546753
125 290 4 892838375
181 286 1 878961173
327 451 4 887819411
161 14 4 891171413
18 82 3 880131236
24 372 4 875323553
200 286 4 884125953
73 202 2 888626577
22 29 1 878888228
96 8 5 884403020
343 1107 3 876406977
297 12 5 875239619
279 1411 3 884556545
110 202 2 886988909
94 257 4 891724178
72 176 2 880037203
102 89 4 888801315
119 684 4 886177338
60 151 5 883326995
295 404 4 879518378
308 447 4 887739056
312 1203 5 891699599
343 55 3 876405129
284 259 2 885329593
276 563 3 874977334
280 736 2 891700341
311 310 4 884363865
18 739 3 880131776
87 209 5 879876488
13 90 3 882141872
58 1097 5 884504973
224 243 2 888082277
279 780 4 875314165
56 568 4 892910797
330 215 5 876547925
7 92 5 891352010
179 315 5 892151202
64 239 3 889740033
297 699 4 875239658
21 424 1 874951293
188 792 2 875075062
91 195 5 891439057
293 194 4 888906045
94 727 5 891722458
274 148 2 878946133
57 282 5 883697223
276 780 3 874792143
216 651 5 880233912
151 241 3 879542645
62 8 5 879373820
197 68 2 891410082
59 385 4 888205659
119 275 5 874774575
118 324 4 875384444
304 298 5 884968415
26 9 4 891386369
312 847 3 891698174
308 965 4 887738387
270 707 5 876954927
297 31 3 881708087
221 100 5 875244125
116 760 3 886309812
119 193 4 874781872
177 300 2 880130434
161 654 3 891171357
303 235 4 879484563
117 174 4 881011393
327 216 3 887818991
327 1098 4 887820828
23 516 4 874787330
181 1051 2 878962586
48 661 5 879434954
76 531 4 875028007
189 129 3 893264378
1 125 3 878542960
312 144 1 891698987
301 410 4 882074460
306 476 3 876504679
38 616 3 892433375
223 298 5 891549570
145 1292 1 875271357
328 528 5 886037457
174 458 4 886433862
303 31 3 879467361
23 83 4 874785926
6 175 4 883601426
173 938 3 877557076
313 239 3 891028873
38 780 4 892434217
184 89 4 889908572
44 155 3 878348947
244 13 4 880604379
13 263 5 881515647
344 479 4 884901093
40 340 2 889041454
141 222 4 884584865
144 286 4 888103370
324 597 4 880575493
222 700 3 881060550
96 484 5 884402860
90 199 5 891384423
1 215 3 876893145
270 379 5 876956232
251 257 3 886272378
246 109 5 884921794
130 90 4 875801920
326 318 5 879875612
9 521 4 886959343
221 32 4 875245223
20 186 3 879669040
37 79 4 880915810
279 871 4 875297410
163 56 4 891220097
84 284 3 883450093
201 676 2 884140927
46 1062 5 883614766
72 82 3 880037242
117 176 5 881012028
269 608 4 891449526
148 214 5 877019882
294 1067 4 877819421
121 174 3 891388063
20 172 3 879669181
59 724 5 888205265
108 125 3 879879864
49 53 4 888067405
294 678 2 877818861
240 301 5 885775683
299 602 3 878191995
246 802 1 884923471
13 788 1 882396914
303 1508 1 879544130
207 1283 4 884386260
255 271 4 883215525
195 477 2 885110922
312 557 5 891699599
144 302 3 888103530
102 399 2 888802722
297 515 5 874954353
106 165 5 881450536
291 421 4 875087352
145 552 5 888398747
89 936 5 879461219
85 71 4 879456308
282 271 3 881702919
339 856 5 891034922
135 227 3 879857843
151 91 2 879542796
221 467 4 875245928
286 196 4 877533543
116 195 4 876453626
94 738 2 891723558
144 172 4 888105312
214 208 5 892668153
234 519 5 892078342
244 596 4 880604735
222 739 4 878184924
74 126 3 888333428
45 127 5 881007272
344 306 5 884814359
116 887 3 881246591
181 1362 1 878962200
144 461 4 888106044
189 1099 5 893266074
53 228 3 879442561
2 290 3 888551441
299 739 3 889502865
313 139 3 891030334
274 275 5 878944679
321 521 2 879441201
134 539 4 891732335
269 486 3 891449922
94 655 4 891720862
262 1220 4 879794296
181 1265 1 878961668
109 4 2 880572756
12 96 4 879959583
109 42 1 880572756
90 307 5 891383319
77 498 5 884734016
314 620 3 877887212
48 210 3 879434886
305 1101 4 886323563
198 357 5 884207267
222 293 3 877563353
207 186 4 877879173
158 580 4 880135093
255 551 1 883216672
87 1047 3 879877280
301 9 3 882074291
279 1498 4 891208884
299 343 3 881605700
339 288 3 891036899
13 782 3 885744650
210 722 4 891036021
200 528 4 884128426
193 693 4 889124374
297 678 3 874954093
128 216 5 879967102
311 38 3 884365954
169 879 5 891268653
174 82 1 886515472
13 440 1 882397040
95 378 4 888954699
321 224 3 879439733
180 83 5 877128388
150 127 5 878746889
332 233 4 888360370
102 83 3 888803487
263 678 2 891297766
128 97 3 879968125
239 288 2 889178513
275 202 3 875155167
311 471 4 884963254
267 145 4 878972903
253 210 4 891628598
250 64 5 878090153
284 339 3 885329671
327 849 2 887822530
11 90 2 891905298
222 93 2 883815577
299 26 4 878192601
276 748 3 883822507
274 496 5 878946473
252 129 4 891456876
244 1225 2 880606818
75 820 3 884050979
194 52 4 879525876
328 627 3 885048365
201 955 3 884114895
253 198 5 891628392
221 39 4 875245798
334 317 3 891546000
271 414 4 885849470
158 525 5 880133288
64 705 5 879365558
294 24 4 877819761
28 480 5 881957002
269 959 5 891457067
299 270 4 878052375
151 655 4 879542645
177 87 4 880130931
269 15 2 891446348
279 740 3 875736276
332 673 5 888360307
269 483 4 891448800
91 682 2 891438184
246 17 2 884922658
290 418 3 880474293
9 487 5 886960056
217 797 4 889070011
234 14 3 891227730
292 1050 4 881105778
65 1129 4 879217258
222 231 2 878182005
299 32 3 877881169
279 685 3 884982881
15 620 4 879456204
68 178 5 876974755
293 210 3 888905665
43 931 1 884029742
344 278 3 884900454
56 368 3 892911589
339 30 3 891032765
144 518 3 888106182
125 734 3 892838977
12 735 5 879960826
269 484 3 891448895
90 179 5 891385389
185 237 4 883526268
243 275 3 879987084
269 1091 2 891451705
11 429 5 891904335
13 88 4 882141485
120 25 5 889490370
198 402 3 884209147
165 304 3 879525672
138 98 5 879024043
94 561 3 891722882
293 188 3 888906288
39 258 4 891400280
159 237 3 880485766
344 39 3 884901290
69 1017 5 882126156
230 673 3 880485573
160 124 4 876767360
44 228 5 883613334
298 1142 4 884183572
345 1160 3 884994606
94 133 4 885882685
121 122 2 891390501
325 109 2 891478528
160 1019 5 876857977
205 333 4 888284618
343 44 3 876406640
321 1028 2 879441064
102 986 1 888802319
268 123 3 875742794
19 153 4 885412840
125 511 5 879454699
332 1188 5 888098374
90 132 5 891384673
16 657 5 877723882
316 50 1 880853654
272 11 4 879455143
85 380 4 882995704
279 1118 3 875310631
269 761 2 891451374
75 696 4 884050979
249 469 4 879641285
311 671 3 884365954
58 222 4 884304656
254 99 3 886473254
308 632 3 887738057
125 1272 1 879454892
49 40 1 888069222
83 1101 2 880308256
16 294 4 877717116
94 214 5 891725332
295 624 5 879518654
152 866 5 880149224
128 227 2 879968946
119 235 5 874774956
122 1268 2 879270711
276 561 2 874792745
251 109 4 886272547
7 90 3 891352984
184 275 5 889913687
262 628 2 879962366
279 13 3 875249210
181 764 1 878962866
21 56 5 874951658
298 660 3 884182838
98 321 3 880498519
145 949 4 875272652
164 458 4 889402050
232 64 4 888549441
184 126 3 889907971
269 209 4 891448895
26 100 5 891386368
57 1093 3 883697352
117 338 3 886019636
297 97 5 875239871
276 969 4 874792839
119 1263 3 886177338
345 722 3 884993783
318 72 4 884498540
246 410 1 884923175
158 809 3 880134675
178 651 4 882826915
254 625 3 886473808
21 106 2 874951447
225 136 5 879540707
41 486 4 890687305
234 191 4 892334765
78 289 4 879633567
90 9 4 891385787
313 415 2 891030367
180 716 1 877128119
344 462 2 884901156
268 810 2 875744388
195 227 3 888737346
72 603 4 880037417
31 135 4 881548030
303 1267 3 879484327
64 731 3 889739648
62 89 5 879374640
151 662 4 879525054
189 1372 4 893264429
213 79 5 878956263
219 13 1 889452455
345 708 3 884992786
244 712 3 880607925
220 288 5 881197887
1 6 5 887431973
239 923 5 889179033
290 202 4 880474590
194 523 5 879521596
200 831 4 891825565
346 213 3 874948173
267 214 4 878972342
100 340 3 891374707
42 521 2 881107989
214 45 4 891543952
264 320 4 886122261
145 1102 1 888398162
10 22 5 877888812
299 71 3 878192238
313 608 4 891017585
209 242 4 883589606
221 92 4 875245989
293 646 3 888906244
184 1012 3 889907448
70 260 2 884065247
90 30 5 891385843
144 1169 4 888106044
1 104 1 875241619
21 288 3 874950932
6 523 5 883601528
248 181 4 884535374
168 409 4 884287846
234 878 2 892336477
44 238 4 878347598
296 1073 5 884197330
296 96 5 884197287
206 288 5 888179565
76 100 5 875028391
327 50 3 887745574
308 811 4 887739212
338 168 3 879438225
125 238 3 892838322
299 1074 3 889502786
85 203 5 879455402
77 431 5 884733695
18 367 4 880130802
293 572 2 888907931
286 228 3 889651576
246 568 4 884922451
174 902 3 890168363
268 163 2 875743656
291 555 1 874868629
151 478 5 879524471
269 63 1 891450857
11 97 4 891904300
83 748 2 886534501
83 125 5 880306811
145 717 3 888398702
56 426 4 892683303
339 435 4 891032189
35 242 2 875459166
18 462 3 880130065
194 708 3 879528106
14 514 4 879119579
345 651 4 884992493
279 415 3 875314313
12 471 5 879959670
126 332 2 887853735
16 22 5 877721071
116 758 1 876452980
220 325 1 881198435
151 328 3 879523838
280 11 5 891700570
10 155 4 877889186
73 1149 4 888626299
180 213 5 877128388
13 831 3 882398385
181 1291 1 878963167
92 132 3 875812211
345 202 3 884992218
269 482 3 891448823
59 241 4 888205574
322 508 4 887314073
18 25 3 880131591
343 135 5 876404568
62 856 4 879374866
144 528 4 888105846
24 662 5 875323440
108 282 3 879880055
95 518 4 888954076
276 383 2 877934828
187 427 5 879465597
13 315 5 884538466
332 98 5 888359903
12 172 4 879959088
347 22 5 881654005
201 8 3 884141438
90 855 5 891383752
193 1132 3 889127660
99 203 4 885680723
122 708 5 879270605
15 742 2 879456049
222 1239 2 881060762
57 56 3 883698646
332 595 4 887938574
6 498 4 883601053
339 58 3 891032379
268 154 4 875743563
102 202 4 892991269
213 474 2 878955635
73 196 4 888626177
283 70 4 879298206
122 212 5 879270567
201 454 2 884111830
298 652 3 884183099
7 10 4 891352864
314 29 5 877889234
130 1277 4 876250897
201 275 4 884113634
304 681 2 884967167
130 748 4 874953526
118 176 5 875384793
182 237 3 885613067
13 794 4 882399615
242 934 5 879741196
69 1134 5 882072998
77 153 5 884732685
151 196 4 879542670
279 202 4 875307587
233 958 5 875508372
284 682 3 885329322
181 301 2 878961303
286 419 5 889651990
327 14 4 887744167
256 195 5 882164406
331 1100 2 877196634
102 186 4 888803487
119 338 1 892565167
234 316 4 891033851
295 378 4 879518233
14 100 5 876965165
184 1006 3 889910078
216 721 4 880245213
130 148 4 876251127
130 229 4 875802173
158 100 5 880132401
222 972 2 881059758
122 792 3 879270459
59 14 5 888203234
31 705 5 881548110
254 501 3 886476281
297 475 5 874954426
193 328 3 889122993
292 28 4 881105734
1 49 3 878542478
242 1152 5 879741196
267 559 3 878972614
82 705 3 878769598
292 1039 4 881105778
14 455 4 880929745
308 511 5 887737130
236 170 5 890116451
334 4 3 891548345
130 1215 2 876251389
145 203 5 875271948
156 205 3 888185735
340 435 4 884990546
94 385 2 891721975
94 109 4 891721974
168 988 2 884287145
313 151 1 891014982
96 645 5 884403020
308 109 3 887738894
94 393 3 891721684
21 995 2 874950932
5 234 2 875720692
317 350 5 891446819
102 62 3 888801812
118 156 5 875384946
276 786 3 874791694
116 259 4 876452186
81 93 3 876533657
92 595 3 886443534
250 111 4 878091915
344 215 3 884900818
320 148 4 884748708
79 124 5 891271870
94 313 4 891724925
1 206 4 876893205
128 966 4 879968071
269 664 5 891457067
318 795 2 884498766
16 940 2 877721236
54 276 5 880931595
291 1109 4 874834768
298 172 4 884124993
234 292 4 891033821
106 15 3 883876518
114 1104 5 881260352
299 137 4 877877535
301 771 2 882079256
73 7 4 888625956
332 44 3 888360342
308 1019 4 887738570
187 28 4 879465597
94 783 2 891723495
15 137 4 879455939
286 56 2 877531469
222 756 4 877564031
18 699 5 880130802
68 245 3 876973777
134 748 5 891732365
334 1207 2 891550121
243 223 4 879988262
322 479 5 887313892
334 481 5 891546206
243 13 4 879987362
268 16 3 875306691
90 241 5 891384611
267 484 5 878971542
233 48 5 877663184
77 4 3 884752721
184 92 3 889908657
148 596 5 877020297
59 664 4 888205614
110 734 2 886989566
285 628 2 890595636
244 101 5 880603288
314 366 4 877891354
303 654 5 879467328
186 333 3 891718820
92 785 3 875660304
151 486 5 879525002
6 188 3 883602462
293 125 2 888905086
194 51 4 879549793
291 552 3 874834963
87 790 4 879876885
299 50 4 877877775
56 1 4 892683248
277 9 4 879543336
174 823 4 886434376
92 1047 1 875644796
177 182 5 880130684
41 751 4 890686872
1 76 4 878543176
113 262 2 875075983
271 657 4 885848559
323 7 2 878739355
303 373 2 879544276
138 238 5 879024382
325 98 4 891478079
106 64 4 881449830
222 155 4 878184113
345 367 4 884993069
273 328 3 891293048
144 1039 4 888105587
157 127 5 886890541
211 310 3 879461394
56 31 4 892679259
168 1016 5 884287615
303 129 5 879468547
76 258 3 875027206
223 249 2 891549876
60 28 5 883326155
321 507 3 879441336
141 932 3 884585128
73 286 4 888792192
226 480 4 883888853
90 713 4 891385466
272 172 4 879455043
19 313 2 885411792
145 286 3 875269755
342 764 1 875318762
224 322 2 888082013
328 1126 3 885046580
268 552 2 876514108
179 354 4 892151331
308 526 3 887739426
267 693 4 878972266
345 402 4 884993464
6 213 4 883602462
12 143 5 879959635
210 160 4 887737210
290 546 2 880475564
293 300 2 888904004
58 248 4 884794774
303 181 5 879468082
298 498 5 884182573
347 501 4 881654410
236 172 3 890116539
102 121 3 888801673
290 404 3 880475341
92 123 2 875640251
151 274 5 879542369
6 432 4 883601713
256 1289 4 882150552
43 216 5 875981128
189 632 5 893265624
263 514 3 891299387
22 117 4 878887869
250 44 4 878090199
269 188 2 891450675
278 98 4 891295360
155 294 3 879371194
140 334 2 879013684
18 190 4 880130155
239 198 5 889181047
104 342 3 888442437
251 258 3 886271496
72 64 5 880036549
305 338 3 886308252
72 566 4 880037277
339 226 2 891034744
1 72 4 878542678
194 511 4 879520991
316 549 5 880854049
201 150 4 884139983
206 1127 4 888180081
48 187 5 879434954
279 418 3 875733888
94 153 5 891725333
217 53 1 889069974
94 765 3 891723619
250 485 4 878092104
79 288 3 891272015
230 393 3 880485110
128 64 5 879966954
311 367 3 884365780
76 518 3 875498895
62 153 4 879374686
6 515 4 883599273
215 11 2 891436024
145 569 4 877343156
213 715 5 878955915
94 1199 3 891724798
10 294 3 879163524
344 181 3 884901047
53 100 5 879442537
20 678 4 879667684
207 294 3 875504669
123 285 5 879873830
256 1028 4 882151690
174 94 2 886515062
5 154 3 875636691
308 488 4 887736696
222 436 4 878184358
200 7 4 876042451
65 121 4 879217458
7 485 5 891351851
295 843 4 879517994
63 111 3 875747896
7 511 5 891351624
198 11 4 884207392
295 1503 2 879517082
267 28 4 878972524
91 99 2 891439386
151 321 4 879523900
13 302 5 881514811
293 1098 2 888905519
42 131 2 881108548
328 1135 1 885045528
14 519 5 890881335
234 142 2 892334852
230 154 4 880485159
152 98 2 882473974
164 313 5 889401284
55 144 5 878176398
318 1014 2 884494919
3 332 1 889237224
290 818 3 880732656
125 175 2 879455184
243 93 2 879987173
21 670 3 874951696
268 228 4 875309945
7 654 5 892135347
82 178 4 878769629
318 524 3 884496123
89 381 4 879459999
301 123 4 882074726
193 673 4 889126551
1 185 4 875072631
323 79 4 878739829
21 219 5 874951797
197 328 4 891409290
184 15 3 889907812
313 482 5 891016193
109 823 3 880572296
152 167 5 882477430
297 629 3 875410013
167 1147 4 892738384
264 524 3 886123596
280 571 3 891702338
222 577 1 878185137
21 591 3 874951382
210 501 4 887736998
280 230 3 891702153
86 286 3 879569555
320 174 4 884749255
144 50 5 888103929
256 97 4 882165103
65 427 5 879216734
198 429 4 884207691
184 217 3 889910394
151 709 5 879524778
18 530 4 880129877
43 724 4 875981390
86 319 3 879569555
242 305 5 879741340
97 28 5 884238778
114 195 4 881260861
188 69 4 875072009
301 230 4 882077033
85 241 3 882995340
129 313 3 883243934
106 77 4 881451716
261 748 3 890454310
188 7 5 875073477
13 208 5 882140624
342 288 5 875318267
299 286 4 877618524
311 204 5 884365617
125 813 1 879455184
276 463 4 874792839
13 421 2 882140389
141 472 5 884585274
222 550 3 878184623
191 896 3 891562090
144 516 2 888105197
216 1047 3 881428365
151 213 5 879524849
144 845 4 888104191
4 356 3 892003459
96 64 5 884403336
160 79 4 876859413
49 369 1 888069329
110 332 3 886987287
209 351 2 883589546
178 1004 4 882827375
344 97 3 884901156
11 203 4 891905856
241 307 4 887249795
239 312 2 889181247
276 719 3 877935336
18 191 4 880130193
141 535 5 884585195
18 971 4 880131878
162 42 3 877636675
342 591 3 875318629
278 525 5 891295330
102 217 2 888803149
16 447 5 877724066
343 82 5 876405735
109 357 2 880572528
301 732 4 882077351
303 202 5 879468149
250 378 4 878092059
234 507 4 892334803
217 68 3 889069974
87 523 5 879875649
95 26 3 880571951
245 94 2 888513081
95 289 2 879191590
334 1008 4 891545126
201 896 3 884110766
126 323 3 887853568
150 475 5 878746764
59 871 2 888203865
227 9 3 879035431
169 603 5 891359171
293 553 3 888907453
201 190 4 884111873
58 8 4 884304955
303 840 2 879543988
328 1106 2 893195825
58 850 5 884305150
299 101 2 889501721
339 573 3 891036016
235 198 3 889655044
58 347 3 888638515
291 455 5 874805958
178 275 5 882823857
99 1119 4 885680348
296 292 5 884196057
343 569 3 876406421
18 513 4 880129769
312 238 3 891699510
62 294 1 879373215
97 428 4 884239553
215 64 4 891435804
343 47 4 876405130
334 223 5 891545973
349 411 4 879466232
311 433 3 884364931
236 134 4 890116282
27 596 2 891542987
64 211 4 889739318
144 713 4 888104322
110 22 4 886987826
109 665 5 880582384
1 96 5 875072716
267 597 3 878970805
89 127 5 879441335
59 258 3 888202749
239 1245 5 889181092
222 96 5 878181739
8 294 3 879361521
95 137 3 879192404
280 566 4 891701188
311 469 5 884366227
11 521 2 891904174
222 1226 4 883815840
184 645 3 889910123
17 1 4 885272579
223 69 5 891550889
64 429 4 889737800
262 252 3 879790603
87 154 4 879876564
286 96 4 877532385
207 53 1 881681725
334 8 4 891547171
79 937 2 891271180
276 147 4 874786686
314 328 4 877885887
127 286 1 884364525
94 203 5 885870577
348 628 4 886523256
348 370 4 886523621
206 896 4 888180018
85 508 2 879453040
312 639 5 891698391
59 1009 4 888203095
344 1283 2 889814587
188 211 4 875075062
343 371 2 876405893
184 972 3 889909962
308 746 4 887739056
62 298 4 879372304
244 1017 4 880604583
135 54 3 879858003
14 151 5 876964725
327 469 4 887822623
148 71 5 877019251
6 156 3 883602212
52 257 3 882922806
130 58 2 876251619
222 413 3 881061213
76 12 3 882606060
44 317 4 878347633
293 172 5 888905618
95 32 1 888954726
130 47 3 875801470
12 97 5 879960826
38 99 5 892430829
13 409 3 882141872
198 188 5 884208200
328 144 4 885045740
12 204 5 879960826
241 750 5 887249576
216 628 4 880235546
201 357 4 884111217
194 582 1 879535549
72 45 5 880037853
308 736 3 887738760
128 427 5 879966685
346 582 3 874951783
178 546 3 888514680
128 422 4 879968598
44 82 4 878348885
280 419 3 891701047
13 910 2 890704721
312 1021 3 891698365
85 639 3 879454189
222 313 4 883814858
107 321 2 891264432
5 436 5 875720717
102 418 3 883748450
309 326 5 877370383
198 97 3 884207112
339 97 4 891034626
280 316 5 891700184
303 325 1 879466249
189 60 3 893265773
279 1209 4 875314350
293 68 3 888906990
222 234 2 878181387
184 855 4 889909474
292 657 5 881103711
323 1017 3 878739394
303 450 3 879544386
276 1210 2 877934988
300 322 4 875650018
59 972 4 888206125
286 704 2 877531941
249 13 4 879640396
234 521 3 892079077
83 294 3 887665569
8 457 1 879361825
279 1500 5 875306613
200 218 5 884129410
150 268 5 878746257
257 305 4 882049607
8 385 1 879362124
28 100 5 881957425
119 86 4 874782068
155 328 2 879370860
246 368 1 884924813
273 345 3 891293108
174 117 5 886434136
230 125 5 880485090
232 921 4 888549929
198 323 2 884204637
14 13 4 880929778
276 448 4 874792692
95 742 4 879193512
103 126 5 880420002
94 101 2 891720996
234 1463 5 892333573
267 187 5 878972071
244 324 4 880601905
279 577 1 889151559
238 476 3 883576799
158 228 5 880134296
286 815 3 876521966
195 298 4 888737703
190 282 3 891033773
92 42 4 875653664
269 211 4 891449075
188 628 5 875074200
343 712 4 876406391
343 375 2 876406978
321 483 5 879439658
45 121 4 881013563
279 397 4 890780547
23 483 4 884550048
322 192 5 887313984
13 318 3 882139686
175 56 2 877107790
91 331 5 891438245
159 1002 3 884027027
185 196 4 883524172
244 179 5 880603833
348 405 4 886523174
296 950 4 884196741
43 371 4 883955269
16 230 5 877720813
262 275 4 879961980
102 686 3 888801673
214 408 4 891543952
277 151 3 879543768
3 328 5 889237455
119 526 2 886177762
49 168 5 888068686
63 288 3 875746948
320 118 1 884748868
92 825 4 875640487
72 68 3 880037242
271 133 4 885848971
194 317 4 879521657
13 898 1 884538403
279 1495 4 889984565
308 656 3 887736622
253 568 4 891628295
267 1401 4 878971816
244 226 1 880602264
295 401 3 879519390
268 141 3 875744832
344 119 5 884814457
33 328 4 891964187
344 619 4 885770181
347 1035 3 881654522
235 22 4 889655044
313 114 4 891013554
90 613 4 891383835
72 12 5 880036664
320 173 5 884750946
271 435 4 885848802
94 644 5 886008390
194 648 4 879521936
130 276 4 878537447
340 1 5 884990988
49 56 5 888067307
307 143 3 879283203
263 486 4 891299148
1 213 2 876892896
308 826 3 887739427
151 464 4 879524089
345 88 4 884992940
265 328 4 875320084
240 300 3 885775563
82 191 4 878769748
25 498 4 885852086
151 100 3 879524514
222 40 1 881060550
197 385 2 891409893
293 655 3 888905618
280 404 3 891701114
210 404 5 887736739
234 213 3 892079190
318 248 3 884494976
104 544 3 888465413
336 619 3 877759833
308 475 4 887737193
23 228 4 874785582
234 850 2 892336047
94 232 3 891721584
1 233 2 878542552
144 304 4 888103466
295 1040 2 879519180
130 228 4 875216420
275 630 3 880315243
63 250 5 875747789
20 194 3 879669152
354 462 3 891218116
308 322 2 887736408
145 185 4 875271838
110 1206 3 886988321
303 410 4 879484846
317 300 4 891446313
180 631 5 877544373
343 76 4 876407565
345 48 5 884902317
301 89 2 882076046
181 1312 1 878962349
102 233 3 888801622
64 222 4 889739733
303 233 4 879484981
41 313 3 890685449
229 260 1 891632437
144 855 4 888105510
59 569 4 888206161
191 313 5 891560481
305 212 3 886324058
14 408 5 879119348
279 216 3 884983225
316 735 4 880854337
193 288 1 889123777
216 231 2 880245109
201 537 3 884141053
348 240 3 886523839
22 683 1 878886307
104 823 1 888465554
341 294 3 890757997
169 172 5 891359317
213 509 4 878955372
101 840 3 877136659
90 313 5 891382163
159 831 2 880557604
65 191 4 879216797
114 204 3 881260441
215 205 3 891435161
184 259 3 889907096
121 125 2 891388600
279 992 4 889151559
94 1074 2 891723427
59 229 3 888205921
73 479 5 888625127
59 7 4 888202941
254 472 3 886474456
29 358 2 882821044
145 553 3 875272786
230 199 3 880484755
234 731 2 892336194
52 116 4 882922328
218 33 4 881288386
203 117 4 880434810
99 346 4 885678415
146 307 3 891457905
59 100 5 888202899
298 144 4 884182838
343 655 5 876405697
297 98 5 875238579
119 866 3 874774575
24 129 3 875246185
181 824 1 878963305
334 250 3 891544840
32 250 4 883717684
181 1384 1 878962052
92 48 4 875653307
197 748 3 891409323
116 840 1 886309958
251 121 4 886272118
2 312 3 888550631
158 68 3 880134532
275 304 3 876197368
145 174 5 882181728
279 1487 1 875314076
234 8 5 892079585
193 234 3 889126551
339 270 2 891036753
64 8 4 889737968
354 133 3 891217547
215 239 3 891436297
184 531 4 889910653
233 174 5 877661553
222 182 4 881058666
7 168 5 891351509
90 435 5 891383350
140 289 4 879013719
315 223 5 879799486
293 781 2 888907644
240 288 5 885775536
222 829 3 877563934
311 378 5 884366363
201 271 4 884110967
161 56 3 891171257
181 882 1 878962006
311 951 3 884365548
7 269 3 891349991
43 241 4 883955441
59 208 5 888205533
323 246 4 878739177
224 325 1 888082045
318 197 5 884496030
178 1012 4 884837364
214 531 4 891544222
49 313 3 888065527
95 737 3 879197021
345 174 4 884992367
333 66 5 891045515
174 255 5 886434114
21 569 3 874951820
328 402 3 885047627
280 323 2 891700106
308 233 3 887738346
314 623 5 877890927
292 510 4 881104093
276 684 4 874792436
237 1192 5 879376553
7 285 5 891351813
58 340 4 884305708
62 1060 1 879373007
151 224 5 879524293
96 100 5 884403758
354 242 5 891180399
79 269 5 891271792
91 131 2 891439471
299 645 4 877881276
344 283 4 884814432
62 1136 3 879375977
152 220 5 884035907
92 1041 3 875907675
342 723 3 875319659
268 949 2 875743909
234 501 4 892334543
178 135 2 882826915
267 470 4 878972931
159 871 4 880557003
236 79 4 890118417
254 183 4 886472713
238 181 3 883576336
329 129 3 891655905
293 282 2 888905170
135 176 4 879857765
204 258 2 892388976
294 547 3 877819972
151 494 4 879524244
311 258 4 884363706
244 1178 3 880608134
270 596 5 876954456
83 892 2 891181444
296 1142 5 884196524
301 483 4 882076403
130 222 4 874953769
102 173 3 888803602
299 1227 1 878192556
16 228 5 877720733
334 461 3 891547744
343 187 4 876406006
256 1119 3 882165032
21 217 3 874951727
276 22 5 874787496
315 234 3 879821349
194 30 3 879524504
244 54 2 880607335
87 629 4 879877006
49 213 3 888066486
255 249 5 883216245
325 865 3 891478079
178 210 5 884837073
279 167 3 875312441
11 47 4 891904551
311 82 5 884364436
292 405 3 881104820
58 1106 4 892068866
57 866 3 883697915
162 174 4 877636772
310 832 1 879436035
345 473 2 884991244
354 257 3 891216735
164 322 4 889401432
117 421 5 881012601
330 447 4 876546619
339 475 5 891032856
5 42 5 875636360
82 11 4 878769992
209 898 3 883460304
214 285 5 892668153
60 751 2 883325421
220 301 4 881197948
214 1039 4 891544269
133 315 4 890588524
13 764 2 882141997
338 204 3 879438063
178 193 4 882826868
11 204 3 891904920
186 591 4 879023073
193 117 4 889125913
264 516 5 886123655
248 100 4 884534716
178 284 4 888514680
117 168 5 881012550
224 569 3 888104313
223 248 1 891549683
162 50 5 877635662
129 339 2 883244737
7 432 4 891352831
77 181 3 884732278
279 662 2 875310631
287 39 5 875336652
157 273 5 886889876
331 190 3 877196308
177 1 3 880130699
286 234 3 877532093
10 656 5 877886846
89 117 5 879441357
327 143 4 888251408
116 806 4 876453800
207 313 4 885066537
87 519 4 879877652
28 174 5 881956334
181 1128 1 878962279
297 56 5 875239422
246 100 4 884921033
188 173 5 875075118
119 486 4 874781547
283 588 4 879297965
188 210 4 875071891
291 770 4 874834799
109 278 3 880571770
11 402 4 891904662
248 928 3 884536117
258 313 5 885700778
256 576 3 882164603
187 792 5 879465340
291 175 2 874867966
189 652 5 893265428
313 163 2 891016757
181 1371 1 878962240
239 479 5 889178762
119 546 4 874775914
144 521 4 888105312
305 298 4 886322150
343 823 3 876403851
326 732 5 879877143
95 675 2 888954310
279 408 5 875249210
276 456 2 874787237
345 151 5 884991191
184 604 4 889908693
277 129 4 879543653
197 720 2 891410039
253 294 4 891627829
303 9 5 879466830
296 654 5 884197419
32 246 4 883717521
279 530 3 890780576
49 590 1 888067579
95 474 4 880570909
318 1032 3 884498210
318 194 5 884495590
286 683 5 884583549
191 307 3 891560935
48 50 4 879434723
298 195 4 884183277
171 245 3 891034801
339 82 4 891035850
81 926 3 876533824
207 42 4 877878688
269 153 3 891449346
303 1071 2 879485352
7 54 3 892132380
339 198 5 891033382
11 435 4 891904968
23 421 5 874786770
188 511 2 875072211
137 327 4 881432671
76 690 2 882607017
38 720 5 892432424
221 1035 3 875246124
59 928 4 888203449
13 814 5 886302261
318 315 5 884470294
342 607 3 875318963
200 121 5 876042268
269 654 4 891448980
7 89 5 891351082
136 847 4 882693371
254 243 2 887347834
183 483 5 892323452
84 265 5 883453617
151 193 4 879524491
70 751 4 884063601
314 938 3 877886099
291 1239 2 874835279
234 192 3 892078984
38 67 4 892434312
156 12 3 888185853
56 228 3 892676340
354 463 4 891217575
311 178 5 884364437
122 214 2 879270676
314 591 5 877887002
1 258 5 878873389
230 209 1 880485283
42 142 4 881109271
328 750 4 885044519
130 357 5 875216933
267 464 5 878974783
267 324 3 878970114
190 300 4 891033606
276 853 5 889174849
193 465 3 889126867
59 126 5 888202899
347 416 3 881654715
109 69 4 880572561
296 948 1 884196149
28 143 4 881956564
351 340 1 879481424
59 760 2 888203659
318 503 4 884497402
181 335 1 878961748
48 654 5 879434792
94 693 4 891720921
215 450 2 891436470
82 518 4 878769747
155 325 2 879371261
303 318 5 879466523
23 28 3 874786793
1 81 5 875072865
303 416 3 879468179
320 472 3 884748750
57 410 3 883697378
305 192 2 886323275
293 144 4 888905819
13 387 3 886304229
327 215 4 887820695
327 886 2 887737493
299 367 4 878192497
9 286 5 886960055
111 326 3 891680131
246 451 2 884923003
260 1025 5 890618729
293 239 3 888907166
305 151 4 886324433
116 1253 2 876454109
124 166 5 890287645
161 213 2 891171887
198 15 3 884205185
313 132 5 891013589
268 717 1 876513785
113 100 4 875935610
42 281 3 881105728
234 709 4 892079337
128 609 4 879967550
293 1101 3 888906677
156 64 3 888185677
194 808 2 879527999
25 455 4 885853415
282 258 5 879949367
327 82 2 887820448
64 56 5 889737542
201 276 5 884111598
314 126 2 877886971
325 177 5 891478627
136 747 4 882848866
181 1318 1 878962349
280 265 4 891700588
271 283 4 885847876
262 405 2 879962367
6 205 3 883600878
308 283 3 887737194
6 133 4 883601459
130 158 5 875801897
85 289 3 879452334
239 530 5 889179290
122 553 3 879270741
7 530 5 891350900
334 59 5 891546000
18 14 5 880130431
95 132 3 880570993
313 670 3 891029877
279 412 3 875297708
184 462 4 889908873
102 685 3 888801876
271 732 4 885848672
10 64 4 877886598
164 125 5 889402071
276 230 4 882659602
216 367 3 881428365
49 628 4 888068167
141 50 4 884584735
114 191 3 881309511
82 127 2 878769777
207 1378 3 877878714
55 56 4 878176397
89 221 1 879441687
334 474 3 891546257
160 21 1 876769480
311 326 2 884364047
286 191 4 877531407
23 177 4 884550003
32 100 3 883717662
332 156 4 888359944
236 478 3 890118106
251 50 5 886272086
7 489 3 891353477
59 134 5 888204841
43 117 4 883954853
99 258 5 885678696
295 153 5 879517324
1 78 1 878543176
6 70 3 883601427
13 894 1 883670742
279 753 2 875307443
11 735 3 891904300
92 778 4 875811457
257 151 4 882050266
23 705 4 874785526
320 411 3 884749119
288 202 5 889225535
234 921 4 892079434
358 469 4 891271063
13 341 2 886952422
343 275 5 876408139
326 646 2 879875112
256 172 3 882164443
90 272 5 891382121
294 118 3 877819941
321 30 4 879439658
339 133 4 891033165
205 289 4 888284710
236 307 4 890117902
244 747 4 880606760
303 194 5 879466742
6 481 5 883600914
236 204 3 890118393
90 269 5 891382310
181 319 3 878961173
193 268 3 889122906
159 451 5 884360502
312 675 5 891698485
234 79 3 892079910
214 7 5 892668130
303 480 4 879466523
7 657 4 891351234
305 806 3 886322720
18 89 3 880130065
181 676 3 878962392
180 421 5 877128388
119 272 5 886611471
160 432 3 876861185
227 244 3 879035205
189 1098 4 893265506
291 1253 3 874834944
54 327 5 880928893
95 417 3 888956158
318 239 4 884497235
303 506 4 879467328
340 405 5 884991817
62 306 4 879371909
279 702 4 875309760
181 742 4 878962623
197 187 5 891409798
10 702 3 877886722
296 279 4 884196640
269 179 4 891447141
5 422 4 875636767
58 663 2 884304728
343 20 5 876408138
270 441 5 876956420
312 1124 4 891698553
310 748 3 879435729
236 735 5 890116599
13 452 3 882397039
291 470 3 874834768
92 281 3 875812331
295 412 2 879519237
346 245 4 875266665
46 127 5 883616133
62 100 4 879372276
343 12 5 876405735
103 300 3 880416727
174 369 1 886515272
85 566 3 879454273
217 554 3 889070050
31 504 5 881548110
82 476 3 878768765
91 265 5 891439018
48 202 4 879434791
130 3 5 876250897
83 22 5 880307724
59 188 4 888205188
236 661 3 890116451
152 255 5 884035936
352 55 1 884289728
262 790 3 879795379
326 503 3 879876542
145 200 4 877343121
216 172 4 880234639
233 57 5 880190451
314 1520 3 877892052
131 313 5 883681723
307 427 3 877121988
360 334 4 880353736
292 124 4 881104147
152 1028 5 880149197
314 268 5 877885836
160 175 4 876860808
277 117 4 879544145
318 49 3 884497257
354 694 5 891217299
294 250 5 877819459
264 1270 2 886122194
276 249 4 874786632
222 1089 1 877563659
218 504 3 881288574
56 623 3 892910268
13 25 1 882141686
13 632 3 884538664
292 151 5 881104268
130 374 4 875217392
24 508 4 875323833
318 384 3 884498210
93 275 4 888705224
7 142 3 891354090
144 293 4 888104283
308 1046 4 887740649
78 269 3 879633467
276 228 4 880913800
142 895 4 888640143
234 294 3 891033715
234 1123 3 892335342
87 1190 4 879876336
286 790 1 877535208
318 934 4 884495382
215 474 4 891435022
68 1047 1 876974379
7 423 5 891351509
110 204 3 886989276
346 62 3 875263634
72 181 1 880037203
303 160 4 879468375
200 357 5 884128498
262 845 4 879962052
235 474 5 889655112
326 526 5 879874964
125 949 3 892838623
7 156 5 891351653
347 79 5 881653890
13 416 3 882398934
127 227 4 884364867
13 502 5 882141458
308 490 4 887738104
222 672 1 878183777
251 132 5 886271641
109 742 5 880564457
97 655 5 884238860
222 94 3 878184866
303 234 5 879467260
295 1459 5 879519237
325 143 1 891479017
186 742 3 879023073
68 1028 4 876974430
15 696 2 879456262
256 662 2 882165032
28 271 4 881955281
49 129 2 888068079
127 300 5 884364017
102 326 3 879082298
144 900 4 888103371
314 204 5 877888644
293 153 4 888905948
79 286 5 891271792
315 302 5 879799301
181 1202 1 878962720
23 188 3 877817151
83 323 4 883868420
59 48 5 888204502
294 7 4 877819563
257 307 4 879029581
49 3 3 888068877
56 98 4 892679067
43 225 2 875975579
280 125 2 891701148
346 4 4 874948105
292 429 5 881105587
151 1065 3 879542413
178 849 3 882828021
145 281 4 875272299
327 90 3 887819194
130 183 5 875801369
213 11 4 878956156
42 451 2 881108982
268 1059 3 875743310
279 727 3 890780864
18 194 3 880129816
312 57 5 891699599
69 109 3 882145428
112 306 5 891299783
308 170 3 887737130
325 474 5 891478392
314 785 3 877890960
327 949 4 887819316
94 829 2 891724800
222 419 2 878182279
42 25 3 881110670
296 685 4 884196896
189 274 4 893264735
280 381 3 891700925
144 22 5 888105439
109 245 3 880562908
119 658 5 874782127
172 697 3 875536498
18 515 5 880130155
222 364 1 878185137
87 393 4 879876703
244 208 5 880606300
363 391 2 891498811
332 148 5 887938486
272 474 5 879454753
95 523 4 879197562
102 183 4 888801360
294 299 3 877818982
27 925 3 891543245
164 984 4 889401456
121 9 5 891390013
340 204 4 884990004
115 530 5 881172117
334 72 3 891549192
268 31 4 875310311
60 514 4 883326300
145 637 3 882182689
90 6 4 891384357
344 508 4 884814697
98 70 3 880499018
279 1000 4 875314313
279 390 3 875744641
157 407 4 886891218
334 289 3 891544491
307 527 5 878066938
327 237 4 887745494
308 116 4 887737594
211 687 2 879437184
189 173 5 893265160
271 200 5 885849356
342 1007 4 874984507
328 188 5 885046498
144 204 2 888105116
43 298 4 875975211
268 826 1 875743065
149 269 5 883512557
92 252 4 886443582
339 214 3 891033226
18 286 5 880129305
169 181 5 891359276
189 281 2 893264766
254 238 3 886473120
250 1014 4 883263439
130 946 4 875801830
172 657 3 875538027
10 615 4 877892276
216 95 3 881428365
95 24 3 879192542
360 116 3 880354275
301 692 3 882076619
345 121 3 884991384
164 245 5 889401362
323 744 5 878739436
264 558 5 886122447
197 340 2 891409199
237 28 4 879376435
196 306 4 881251021
179 305 4 892151270
342 132 5 875319129
56 82 4 892676314
346 187 3 874948030
118 547 5 875385228
332 1150 3 887938631
250 742 3 878089786
193 871 3 890860319
293 447 4 888907290
348 928 5 886523683
339 12 5 891032659
292 343 2 881103478
209 349 2 883589546
23 99 4 874786098
49 258 2 888065895
234 490 4 892079803
201 447 5 884112581
43 501 4 883955605
290 550 3 880475807
276 290 4 874786854
346 322 3 886273541
292 252 3 881104881
363 405 4 891497015
355 300 4 879486529
351 879 5 879481461
211 263 3 879461395
332 696 3 887938760
118 185 5 875384979
308 483 3 887736843
100 689 3 891375212
241 880 5 887249889
253 566 4 891628578
292 919 5 881103508
334 207 4 891545950
223 255 4 891549382
313 174 4 891014499
244 1098 5 880605578
299 501 3 889501790
328 284 3 885047593
18 71 4 880131236
232 471 3 880062414
311 174 5 884364538
7 608 4 891351653
201 708 4 884140247
345 285 5 884901701
184 1136 4 889912890
130 49 4 875802236
232 22 3 888549988
46 288 2 883611307
213 151 5 878955886
210 216 4 887737603
75 475 5 884049939
90 323 3 891382634
14 7 5 876965061
1 212 4 875072895
272 772 2 879455220
332 1016 5 887916529
117 597 4 881010052
184 287 4 889908050
79 813 5 891271792
10 200 5 877889261
119 144 4 887038665
158 277 4 880132658
59 570 4 888205745
322 185 5 887313850
129 995 2 883245452
42 692 4 881107773
298 496 5 884127603
318 481 4 884496156
293 134 5 888905618
60 1126 4 883327174
285 538 5 890595479
345 919 2 884991077
72 70 4 880036691
342 25 2 875318328
94 31 4 891721286
223 717 1 891550470
339 190 4 891034215
130 346 4 884623704
218 265 3 881288408
362 333 5 885019261
334 450 1 891550338
176 751 1 886046979
145 1212 2 875272196
189 815 3 893264558
60 485 4 883327222
293 257 2 888904696
306 100 4 876504286
308 319 4 887736408
130 53 3 876251972
320 501 3 884751462
321 1194 5 879438607
155 319 3 879370963
338 310 3 879437522
214 325 3 891542622
49 418 3 888067031
57 1028 3 883697432
236 185 5 890118307
138 617 4 879024128
232 173 4 888549674
331 100 4 877196308
297 157 2 875238853
95 88 4 880571016
268 333 4 876513565
58 156 5 884304955
299 378 3 878192680
294 327 3 877818982
286 1091 4 877534859
234 601 3 892334765
207 156 2 878104438
269 492 4 891449550
357 284 4 878951691
255 53 3 883216672
92 717 3 886443416
13 161 5 882397741
65 197 5 879216769
17 237 2 885272628
167 698 4 892738307
313 609 3 891014782
42 99 5 881108346
65 210 4 879217913
303 366 3 879485221
233 98 5 877661724
354 86 5 891218312
268 1090 2 875745536
7 226 5 891353614
81 7 4 876533545
323 886 3 878738997
119 87 5 874781829
299 418 4 889501790
174 456 1 886515240
8 89 4 879362124
79 900 4 891271245
232 215 3 888549563
271 338 1 885847194
356 313 5 891405651
177 271 2 882141868
181 458 3 878962350
6 151 3 883599558
363 1495 5 891497278
117 751 5 886018996
306 744 4 876504054
90 494 5 891383241
117 368 3 881010610
181 1386 1 878962119
233 418 4 877664010
44 542 3 878348036
13 303 4 881514876
127 243 5 884364764
92 561 3 875812413
236 864 2 890117073
234 660 4 892334543
363 1168 2 891496587
177 150 4 880130807
117 121 4 880126038
301 514 3 882076021
194 1 4 879539127
276 496 4 882659476
221 1210 3 875246887
363 673 2 891496543
218 516 5 877488692
85 414 4 879828720
60 498 5 883326566
188 233 3 875074266
144 960 2 888105784
184 88 3 889909551
83 412 1 883868208
194 631 2 879546551
11 751 2 891902092
178 1051 3 885784583
318 1023 2 884495091
328 132 5 885046420
142 28 4 888640404
293 657 4 888905582
13 437 1 882397068
246 231 1 884922898
346 727 1 874947794
323 199 4 878739953
194 510 4 879521474
99 123 3 885678997
280 483 4 891701066
314 1276 4 877887179
305 943 2 886323464
106 923 4 881453355
174 383 1 886515171
62 955 4 879374072
10 223 5 877888545
234 526 3 892334045
92 660 4 875654125
361 273 3 879441215
1 143 1 875072631
332 258 5 887916151
286 559 4 877534081
308 805 4 887739471
326 448 3 879877349
323 22 5 878739743
365 301 5 891303586
23 315 3 884550320
256 783 4 882165328
3 334 3 889237122
195 99 3 888737277
236 223 5 890116032
38 389 5 892433660
95 505 3 888954513
351 873 3 879481643
271 83 4 885848408
297 250 1 874955085
91 351 4 891438617
119 472 4 874775406
42 1051 4 881106270
270 703 4 876955019
311 526 5 884364873
94 562 3 891721494
352 746 4 884290361
350 174 5 882346720
233 286 3 876690514
250 1 4 883263374
154 806 4 879139040
255 569 1 883216672
229 875 1 891632402
332 1013 3 887938798
58 237 4 884304396
320 976 2 884749567
307 169 5 879283625
110 794 3 886988909
244 818 2 880605010
330 596 5 876544690
343 474 5 876406677
59 25 4 888203270
64 173 5 889737454
280 934 2 891702291
283 627 4 879297966
314 120 3 877887094
336 13 3 877756890
312 587 3 891699399
222 411 3 878185137
181 933 1 878962675
270 741 5 876953967
59 65 4 888205265
174 63 4 886514985
313 44 3 891015049
264 208 5 886123415
59 382 4 888205574
301 511 4 882075803
341 877 3 890758113
60 1124 4 883326652
303 849 3 879485589
1 151 4 875072865
13 786 3 886303088
56 94 4 892910292
59 175 4 888205300
58 246 5 884304592
234 95 3 892079689
365 15 3 891304152
164 148 5 889402203
194 202 3 879524216
151 425 4 879528647
83 1043 3 880308807
116 180 5 886310197
49 347 3 888065487
233 644 5 880610635
102 271 2 888781860
144 285 4 888103969
71 475 5 877319330
145 1077 3 875272245
299 742 4 877878339
263 79 4 891298047
276 631 3 874796412
308 968 4 887739987
1 51 4 878543275
269 435 3 891449011
95 736 4 888954170
311 708 5 884366397
244 90 4 880607684
313 318 4 891013712
258 310 5 885700778
123 485 5 879872792
334 183 4 891545950
130 743 2 878537778
269 64 4 891447960
328 451 4 885048159
43 300 5 875975135
130 12 4 875216340
90 185 5 891384959
12 132 5 879959465
189 216 5 893265478
207 135 2 877822350
315 55 5 879821267
5 139 3 875721260
195 469 3 880710046
88 302 3 891037111
153 678 2 881370935
148 1012 4 877400154
270 155 5 876955770
218 273 4 881288351
145 674 4 877343184
223 369 1 891550253
222 4 3 878183924
128 785 2 879968243
192 127 4 881367456
228 651 4 889388521
354 191 4 891217082
328 82 4 885046537
344 716 3 884901403
38 450 1 892432624
269 137 4 891446193
248 55 4 884534793
310 304 5 879435664
13 612 4 882140318
130 335 3 875801254
62 774 1 879376483
135 77 4 879858003
294 264 2 877819090
89 813 5 879461219
194 433 3 879523104
94 39 3 891721317
318 396 1 884498684
151 223 5 879524088
181 1120 1 878962279
312 234 5 891712535
177 175 5 880130972
297 50 5 874954541
313 162 3 891017270
275 89 3 875154878
293 202 3 888906490
330 465 5 876547250
323 100 4 878739177
135 566 3 879857930
229 358 1 891632437
288 900 5 886372155
295 1221 5 879518455
162 151 3 877636191
87 55 4 879875774
128 378 5 879967804
268 267 3 875742077
282 302 5 879949347
361 222 2 879441253
280 286 4 891700185
334 276 4 891545089
361 387 3 879441008
87 385 5 879875818
344 175 5 884901110
312 481 5 891698893
130 1047 5 875801897
357 222 5 878951498
190 118 3 891033906
308 192 5 887736696
106 8 4 881452405
357 928 4 878952041
320 678 3 884748418
217 117 4 889069842
216 764 2 880233153
230 633 4 880485283
263 82 4 891299697
233 495 4 877661364
314 672 5 877888723
204 310 1 892389073
279 240 4 889151559
188 195 3 875073179
177 179 5 880131057
181 330 1 878961668
184 458 3 889907925
86 872 3 879570366
79 313 2 891271086
53 181 4 879443046
125 204 5 879454139
326 528 3 879875112
276 747 4 874795448
238 300 4 883575836
39 333 4 891400214
201 175 2 884140022
276 746 4 874791806
13 334 1 886952467
117 12 5 881011350
301 651 5 882075994
280 790 4 891702013
3 350 3 889237076
345 956 4 884916322
174 393 4 886514837
181 866 1 878963037
290 158 5 880474977
360 238 4 880355845
247 257 4 893081396
162 117 4 877635869
43 336 4 880317271
258 311 4 885700946
348 819 4 886523710
191 328 3 891562090
215 483 4 891435022
184 665 2 889910098
114 157 2 881260611
184 52 4 889910034
49 821 1 888069246
233 212 5 877665324
345 173 5 884902317
55 1089 1 878176134
293 99 3 888906402
13 353 4 886261450
99 196 4 885680578
49 325 3 888065744
367 1012 4 876689825
123 127 5 879809943
194 383 1 879554842
141 825 4 884585247
323 150 4 878739568
279 1180 2 890781034
330 575 4 876547165
109 1244 3 880571872
177 318 4 880130618
85 792 4 879828941
248 249 4 884536117
298 237 5 884126240
276 139 4 889174904
23 257 3 890276940
52 657 5 882922833
201 1194 4 884111899
330 8 5 876546236
268 403 4 875309914
70 176 4 884066573
280 53 5 891702544
234 152 4 892826701
13 759 2 882398542
325 181 4 891478160
268 269 4 876513523
154 202 3 879139096
222 689 4 881058008
354 269 4 891180399
42 222 4 881105882
99 232 4 886519075
96 170 5 884403866
111 1024 3 891679939
87 300 3 879875418
328 349 2 888641949
13 190 4 882397145
347 227 4 881654734
117 258 4 880126022
229 286 4 891633029
329 591 2 891655812
345 508 4 884901000
291 396 4 874867757
320 1188 4 884749411
94 34 1 891723558
72 515 4 880036602
218 695 3 881288574
18 12 5 880129991
346 1110 1 875264985
218 762 4 877489091
178 58 5 882827134
334 302 5 891544177
303 49 2 879483901
145 1208 4 875272196
42 925 4 881106113
329 79 4 891656391
286 11 5 877531975
33 343 4 891964344
326 79 4 879875203
339 183 4 891032828
308 521 3 887736798
264 1225 3 886123530
130 672 5 875801920
114 183 5 881260545
276 229 3 874792483
11 383 2 891905555
256 202 3 882165032
273 311 4 891292905
116 661 4 876454023
13 137 5 882139804
332 82 5 888098524
6 479 5 883601053
91 689 5 891438617
79 137 4 891271870
308 265 3 887737647
10 651 4 877888812
295 1401 5 879966498
18 181 3 880131631
49 299 2 888068651
343 423 5 876408139
92 423 3 875655990
244 762 3 880604616
363 288 4 891493723
43 423 4 883955498
201 1425 3 884111637
84 31 4 883453755
59 1047 2 888203371
234 157 2 892334400
300 328 3 875650068
345 1082 2 884994569
191 269 3 891562090
268 114 5 875744966
147 269 4 885593812
71 222 3 877319375
76 59 4 875027981
232 462 4 888549879
102 248 3 877915935
205 326 4 888284454
200 25 4 876042234
311 431 4 884365201
197 195 5 891409798
356 937 2 891406040
303 1016 3 879544727
101 815 3 877136392
119 1259 3 874780996
264 56 5 886122261
210 447 5 887737631
276 63 3 874792168
308 178 4 887737719
64 181 4 889737420
303 1014 3 879544588
271 284 3 885847956
201 513 3 884114069
92 628 4 875639823
54 333 5 880928745
301 187 4 882076403
81 410 4 876533946
31 498 4 881548111
21 234 5 874951657
311 212 3 884366397
264 792 5 886123415
132 137 4 891278996
307 463 5 879283786
311 275 4 884963136
22 403 5 878887810
43 318 5 875975717
201 61 2 884111986
186 770 2 879023819
125 475 1 879454244
339 73 3 891035003
145 120 2 888398563
51 132 4 883498655
130 84 4 876252497
347 144 5 881654186
110 715 2 886989440
100 905 3 891375630
311 470 3 884365140
189 248 4 893264174
365 1017 4 891304213
44 227 4 883613334
201 1098 2 884112747
295 25 5 879518042
193 276 4 890860319
125 1093 1 892839412
10 711 4 877888812
276 272 5 885871447
43 1053 3 883955859
342 427 4 875319254
14 211 4 879119693
8 190 4 879362183
280 144 2 891700514
333 739 5 891045410
11 721 3 891905279
94 380 3 891722760
8 686 3 879362356
115 462 4 881171273
264 559 5 886122446
299 297 3 877877691
299 1021 3 878192721
268 483 5 875309859
95 202 4 879198209
24 25 4 875246258
159 546 4 880557621
174 312 5 886432972
368 379 4 889783562
293 943 2 888906576
186 550 4 879023985
250 582 4 878090114
185 638 4 883524364
234 566 2 892335108
221 257 4 875244475
187 659 5 879465274
313 187 4 891014373
116 199 4 876454174
109 9 3 880564607
174 412 1 886433919
7 208 5 891352220
371 97 5 877487440
296 255 2 884196584
280 82 2 891700925
271 275 4 885847693
110 791 2 886989473
59 926 1 888203708
217 576 1 889070087
145 665 5 877343212
334 204 4 891547190
42 568 4 881107256
200 143 5 884128499
89 387 5 879459909
311 588 4 884365284
235 269 4 889654530
287 156 5 875336804
344 204 4 884901024
43 289 4 875975085
99 11 5 885680138
145 159 4 875272299
200 82 5 884129656
269 316 4 891446132
13 517 5 882139746
184 208 4 889908985
327 144 4 887820293
218 517 3 877488634
6 487 5 883600785
279 792 3 875308843
268 161 3 875744199
85 124 5 882813248
75 472 4 884050733
18 483 4 880129940
234 291 3 892335342
196 238 4 881251820
318 750 4 884469971
2 281 3 888980240
295 102 4 879518339
276 81 4 874791101
194 1409 2 879552662
291 1078 4 875086920
145 896 2 888396828
160 762 3 876769148
290 216 4 880475218
174 1254 1 886434421
327 435 4 888251521
145 471 4 885622707
83 465 4 880308578
277 591 4 879543768
214 56 5 892668130
345 1315 3 884994631
330 44 5 876546920
328 1277 3 885049084
6 131 5 883602048
334 693 3 891547083
156 192 4 888185735
91 479 4 891439208
130 22 5 875217265
75 271 5 884051635
328 265 5 885045993
291 379 3 874834827
222 815 2 877563716
347 168 5 881653798
328 510 5 885046376
290 423 5 880474422
12 157 5 879959138
151 114 5 879524268
294 603 5 889854323
244 232 4 880608670
130 63 4 876252521
259 762 2 883372151
58 425 5 884304979
245 112 4 888513575
184 1232 3 889910123
122 727 4 879270849
144 129 4 888104234
305 357 5 886323189
16 96 5 877717833
1 175 5 875072547
7 618 4 891350900
16 546 4 877726944
80 45 4 887401585
173 294 5 877556864
104 1017 1 888465634
161 523 3 891170686
179 1316 3 892151489
12 71 4 879959635
59 141 4 888206605
339 636 4 891035248
321 485 4 879439787
201 204 4 884113082
59 516 4 888204430
56 118 4 892679460
191 332 2 891562090
65 318 5 879217689
249 993 3 879571779
145 229 3 885557699
262 336 3 879961474
235 52 4 889656168
116 604 3 876454174
49 476 1 888069222
286 325 1 889651253
221 588 3 875246209
197 344 4 891409070
198 23 4 884208491
207 28 4 877822162
345 251 5 884994119
145 760 2 888398123
316 1084 4 880853953
77 179 5 884752806
83 575 4 880309339
328 55 4 885046655
178 1035 4 882828350
346 33 5 875261753
89 26 3 879459909
334 1315 4 891545185
263 69 5 891298914
53 199 5 879442384
312 498 5 891699568
213 1 2 878870719
270 173 5 876955531
85 690 2 890255371
85 404 3 882994947
184 949 3 889909618
330 823 3 876544872
230 1050 3 880485136
184 255 3 889907468
312 132 5 891699121
322 179 5 887314416
32 118 3 883717967
184 1010 4 889907896
18 180 4 880130252
55 89 5 878176398
373 588 3 877098821
274 546 3 878945918
363 97 2 891496513
177 197 4 880130758
87 796 4 879877280
24 477 5 875323594
137 261 5 882805603
253 237 4 891628002
298 200 3 884183063
344 597 2 884900454
305 638 5 886324128
85 499 4 879455114
44 168 5 878347504
33 258 4 891964066
293 8 3 888905736
365 109 2 891304106
90 42 4 891384885
99 963 3 885679998
176 250 4 886047963
234 414 4 892336021
308 515 3 887737536
314 983 4 877892488
85 1168 3 882995908
137 50 5 881432937
130 1016 4 874953698
117 1057 2 881010401
225 64 4 879539727
109 117 5 880564457
85 199 5 879829438
15 924 3 879456204
179 269 3 892151064
154 333 3 879138287
170 333 4 886190330
49 202 3 888068816
62 183 4 879374893
343 1132 4 876403746
43 866 4 883956417
95 471 5 884266051
116 294 2 876453376
95 2 2 888955909
223 120 2 891550504
151 419 3 879524878
291 1098 4 875086330
303 79 5 879466891
15 289 3 879455262
308 443 3 887740500
43 316 5 892349752
334 77 3 891549247
26 864 2 891383899
130 779 4 878537558
138 514 5 879024043
234 237 3 892336021
297 79 3 875239125
335 324 1 891567098
334 620 2 891545540
276 597 3 874787150
69 689 3 882027284
297 864 3 874954541
153 64 5 881371005
184 699 5 889909914
58 568 4 884304838
178 480 3 882826048
348 288 5 886522495
62 173 5 879374732
307 428 4 877118113
222 946 2 878182237
117 240 3 880126038
10 705 4 877892050
94 1032 2 891723807
326 185 5 879875203
59 739 4 888206485
307 189 4 877121617
339 431 4 891035488
318 182 4 884496549
321 494 4 879440318
217 185 3 889069659
72 435 5 880037242
249 431 5 879641194
299 1141 4 877880522
13 888 2 886261388
151 972 4 879543366
235 705 5 889655204
160 4 4 876861754
12 15 5 879959670
62 78 2 879376612
314 42 5 877888610
89 151 5 879441507
230 582 4 880485380
120 9 4 889489886
316 614 2 880854267
331 454 3 877196702
40 271 2 889041523
345 172 4 884991831
55 1016 1 878176005
92 1213 2 875907079
73 28 3 888626468
373 694 5 877098643
373 707 4 877100378
336 405 3 877760374
325 484 5 891478643
8 301 4 879361550
141 237 4 884584865
141 1258 4 884585071
345 216 5 884901701
87 88 5 879876672
209 1105 2 883589568
7 587 4 891353950
290 98 4 880474235
16 692 4 877719158
175 176 3 877107255
185 197 5 883524428
328 331 4 885045085
244 20 4 880604758
181 1048 2 878963275
246 840 4 884924045
269 293 3 891446308
246 385 1 884922272
221 789 4 875245739
130 150 5 874953558
109 176 5 880577868
174 332 5 886432901
94 28 4 885873159
85 1098 4 879828912
48 522 2 879434886
237 98 4 879376327
293 23 4 888905865
313 494 3 891016193
178 70 4 882827083
293 322 2 888904456
6 528 4 883602174
236 15 5 890116628
38 393 5 892430282
276 737 4 890979964
143 328 4 888407656
276 854 4 874791806
90 693 3 891385752
18 960 4 880131004
251 222 4 886272547
7 172 4 891350965
44 106 2 878347076
85 382 4 879454820
184 13 3 889907839
286 20 4 876521858
56 219 5 892679144
345 403 3 884992922
45 1061 2 881016056
73 156 4 888625835
254 125 3 886473158
184 202 3 889909768
360 309 2 880354094
214 236 5 892668153
18 179 4 880129877
57 1094 2 883697990
363 616 3 891498135
200 29 4 884130540
148 228 4 877016514
63 323 1 875746986
270 66 4 876955531
6 28 2 883603013
291 834 3 874834358
314 143 5 877890234
82 520 3 878769703
346 218 3 875263574
103 222 3 880415875
189 657 5 893265123
154 182 5 879138783
13 384 2 882141814
291 1083 3 874834876
148 473 5 877399322
271 1091 4 885849648
264 219 5 886122447
154 50 5 879138657
370 56 2 879434587
27 298 4 891543164
268 395 2 875744021
82 480 4 878769373
94 118 3 891723295
342 1368 5 874984507
299 889 3 884023918
177 245 3 880130534
44 185 4 878347569
371 175 1 877487266
186 237 2 879023934
102 176 3 888801360
43 238 2 883955160
326 134 3 879875797
243 713 3 879987495
349 105 2 879466283
82 25 2 878768435
257 50 5 882049897
14 70 1 879119692
346 17 1 874950839
6 467 4 883602284
227 276 4 879035251
157 298 4 886889876
290 1336 3 880733010
189 847 4 893264150
86 889 5 879570973
249 333 4 879571521
42 211 4 881107880
152 790 5 884018821
328 1248 3 885047417
193 485 5 889124252
59 709 5 888204997
293 228 3 888906315
346 977 3 875264110
207 183 2 875509832
239 1020 3 889180920
301 77 3 882076751
248 183 5 884534772
288 12 4 886374130
303 451 5 879468581
255 436 4 883216544
210 202 5 887737338
363 102 4 891498681
299 479 4 878192556
92 834 1 875906882
323 327 4 878738910
374 1047 3 880394179
249 628 3 879640306
222 401 2 878184422
122 70 5 879270606
122 511 5 879270084
23 32 3 874785809
10 696 4 877892276
144 298 3 888103988
196 663 5 881251911
152 966 5 882829150
157 740 2 886889876
18 610 4 880130861
107 258 4 891264466
125 999 4 892838288
334 475 4 891544953
207 171 3 880839802
85 480 4 879453658
111 269 5 891679692
12 191 5 879960801
304 322 4 884968415
342 544 1 875318606
201 482 4 884111360
333 748 4 891044596
167 1126 5 892738418
303 1224 2 879485475
222 62 4 878183616
6 136 5 883600842
223 276 4 891549324
340 1133 5 884991742
70 546 2 884066211
244 764 5 880605158
355 310 4 879485423
230 185 4 880485090
295 210 4 879518378
308 98 3 887737334
210 49 3 891036116
130 1228 3 878537681
249 456 3 879640549
215 230 3 891436469
207 1118 3 878104017
136 313 2 882693234
276 117 4 874786568
216 824 3 880233253
269 50 3 891448926
293 466 3 888906655
275 142 2 880315197
136 1142 4 882693569
112 347 1 891302716
292 1014 3 881104424
77 176 4 884752757
314 941 3 877889971
181 829 1 878962675
200 33 4 884129602
291 551 2 874867824
301 152 3 882077285
291 237 4 874805668
334 716 3 891548758
216 218 4 880234933
358 482 2 891270510
13 243 3 882140966
100 289 3 891375359
119 12 3 874781915
268 558 3 875309304
94 273 4 885872684
200 205 4 884128458
333 98 4 891045496
256 161 5 882164559
265 409 3 875320462
268 108 3 875742992
320 3 4 884748978
90 178 5 891384611
347 609 4 881654064
286 405 3 876522150
136 223 4 882848820
344 537 4 884814432
244 22 4 880605665
350 1 4 882345734
299 127 5 877877434
221 129 5 875244331
328 403 3 885047281
181 21 1 878963381
254 174 5 886471720
158 566 3 880134499
262 419 3 879791710
243 1466 3 879988104
230 7 3 880484476
301 411 1 882074867
104 347 2 888442140
348 1 4 886523078
208 302 1 883108157
151 675 2 879524368
105 258 5 889214306
72 210 4 880037242
322 89 3 887314185
280 180 4 891700453
10 367 4 877892437
156 137 4 888185735
372 159 5 876869894
363 316 3 891493918
178 866 4 882825357
181 112 1 878962955
346 232 3 875263877
114 507 3 881260303
14 14 3 879119311
271 248 4 886106129
354 847 3 891216713
263 328 4 891297330
258 893 1 885701099
100 691 4 891375260
259 12 5 874809192
90 604 5 891383350
130 367 4 875801369
327 293 3 887745574
57 173 5 883698408
239 493 5 889180616
318 305 2 884470682
13 776 2 882398934
339 32 5 891032255
253 188 4 891628416
311 199 4 884365485
311 226 4 884366397
283 42 5 879298333
125 386 3 892838827
361 26 3 879440941
283 24 4 879297867
334 210 3 891546405
181 1390 1 878962052
336 202 1 877757909
254 222 4 886471346
276 544 3 889174870
89 83 4 879459884
268 265 3 875310603
311 748 4 884364071
270 17 2 876956064
344 196 4 884901328
58 480 3 884305220
328 31 4 886036884
234 221 2 891227814
60 633 4 883326995
2 13 4 888551922
321 180 4 879440612
131 1 4 883681384
307 91 4 879283514
264 709 5 886123727
181 1282 1 878962496
102 403 3 888801812
197 808 3 891409893
308 487 4 887736798
374 126 3 880393223
6 117 2 883599431
367 250 5 876689824
299 257 2 877877732
25 480 4 885852008
87 208 5 879876403
277 748 3 879543879
332 655 5 888360248
16 735 3 877720186
236 419 5 890116282
11 736 4 891906411
1 107 4 875241619
6 32 4 883601311
72 124 4 880035636
214 952 3 891543176
305 52 2 886323506
345 297 4 884994156
269 902 5 891446132
336 864 1 877757837
314 402 4 877888758
33 313 5 891963290
345 1017 2 884991303
346 392 3 875266064
123 50 3 879873726
161 286 2 891169991
330 204 5 876546839
234 781 2 892335764
181 148 2 878963204
262 238 4 879792713
233 492 5 880923253
200 294 4 884125953
213 135 5 878956101
130 596 4 874953825
346 167 2 875264209
142 362 3 888639920
325 135 5 891478006
83 28 4 880308284
90 521 4 891384570
13 530 5 881515295
314 765 3 877889480
361 275 4 879440694
334 436 3 891548203
314 147 4 877886584
363 906 2 891493795
92 183 4 875653960
247 272 4 893081381
230 51 4 880484937
44 755 3 878347742
98 209 2 880498935
326 674 3 879877433
303 96 5 879466830
92 318 2 875653307
12 196 5 879959553
94 64 5 885870362
327 288 4 887743600
288 317 4 886374497
373 724 5 877103935
337 106 2 875184682
179 301 4 892151565
267 7 5 878970503
241 332 3 887249841
87 182 4 879875737
311 679 4 884365580
58 20 1 884304538
276 77 3 874795751
194 450 1 879555001
236 51 5 890116709
44 9 5 878341196
354 480 4 891217897
303 62 2 879484159
134 300 3 891732220
92 692 4 875653805
338 604 4 879438326
224 86 3 888082612
341 880 5 890757997
194 218 4 879524892
94 1206 3 891723593
332 300 5 887916188
180 111 5 877127747
321 709 4 879441308
108 181 3 879879985
199 242 5 883782485
46 313 5 883611274
85 855 3 879827989
188 504 3 875074589
174 333 4 886432811
153 22 2 881371140
119 188 4 874781742
45 476 3 881015729
287 346 5 888177040
14 498 5 890881384
189 21 2 893264619
363 189 5 891495070
367 246 4 876689612
268 82 3 875310784
14 181 5 889666215
200 570 4 884130484
91 529 4 891438977
195 258 4 882859352
194 559 2 879521937
301 281 4 882074903
60 272 4 889286840
278 347 4 891294932
181 1370 1 878962550
344 477 3 884900353
44 209 5 878347315
38 225 5 892433062
18 276 5 880130829
91 82 5 891439386
336 395 2 877757094
305 156 4 886323068
102 810 2 888802508
181 1272 1 878962349
156 317 4 888185906
365 258 4 891303515
32 122 2 883718250
6 15 3 883599302
236 756 1 890117353
234 965 3 892079538
232 498 4 888549467
130 625 5 875801750
291 41 4 875086636
344 25 4 884814480
222 232 4 878183985
13 907 1 884538485
378 554 3 880333540
214 327 5 892668196
279 762 3 875297199
363 1007 5 891499355
297 135 4 875238608
13 232 3 890704999
13 861 3 882139774
87 79 5 879875856
195 61 3 888737277
158 11 4 880134398
13 48 5 882139863
189 121 2 893264816
344 663 5 884900993
14 922 4 880929651
181 840 1 878963204
181 1259 1 878962496
94 50 5 891720996
206 904 1 888180081
89 707 5 879459884
62 1128 2 879372831
288 340 5 886372155
329 515 4 891655932
354 882 4 891216157
291 101 4 875087198
153 127 3 881371140
285 168 4 890595900
303 153 5 879466421
13 505 3 882140389
246 675 4 884920978
93 476 4 888705879
268 129 2 875742437
325 1411 4 891478981
226 7 4 883889479
297 175 4 875238883
344 451 4 884901403
233 69 5 877665324
87 684 5 879875774
70 472 3 884148885
181 1378 1 878962169
260 300 3 890618198
200 45 3 884128372
246 720 1 884923592
92 527 3 875653549
330 50 5 876544366
82 103 2 878768665
299 496 3 878192154
28 218 3 881961601
64 83 3 889737654
262 1054 2 879791536
59 102 2 888205956
294 325 3 877818861
294 471 4 877820189
344 58 3 884814697
276 46 3 874791145
21 974 3 874951416
43 993 3 875975211
72 644 4 880036602
273 902 5 891293008
54 1016 4 890609001
276 265 4 874792483
328 162 4 885048004
90 813 4 891384997
161 127 3 891171698
305 245 1 886308147
69 9 4 882126086
273 900 3 891292873
95 14 5 879197329
177 289 2 880130534
334 922 4 891544810
64 420 3 889739678
119 562 4 886177206
23 419 3 874787204
154 480 5 879138784
271 25 3 885847876
276 231 3 874796373
60 671 4 883327175
279 464 4 875310041
42 12 4 881107502
320 576 3 884749411
279 226 4 880850073
378 63 3 880333719
347 465 3 881654825
15 508 2 879455789
328 370 3 885048986
204 292 5 892388857
378 367 3 880055002
295 485 4 879517558
255 763 5 883217072
67 121 4 875379683
328 443 4 885048235
57 237 4 883697182
20 405 3 879668555
243 28 4 879988215
94 1210 3 891723558
328 371 4 885046773
188 148 4 875074667
308 204 4 887737891
344 568 5 884901419
130 685 3 874953895
206 258 4 888179602
119 111 5 886176779
347 208 2 881654480
151 514 4 879524797
13 21 3 882399040
373 598 3 877112076
210 186 4 887730532
144 274 3 888104382
58 813 5 884304430
76 474 5 875498278
294 147 4 877819845
184 77 3 889910217
137 222 5 881432908
311 527 4 884365780
259 235 2 883372151
43 597 3 883956229
92 196 4 875654222
254 162 3 886472643
95 83 5 880573288
104 475 4 888465582
214 248 4 891543001
128 790 4 879969277
293 55 4 888906096
195 1013 3 877156636
11 135 4 891904335
178 178 4 882826395
270 156 5 876955899
269 1480 1 891451725
151 234 4 879524819
174 1001 1 886515030
151 428 5 879542510
276 164 4 874792663
130 333 5 875801239
332 288 5 887916151
189 143 5 893266027
43 847 5 875975468
188 13 4 875073408
172 485 3 875538028
262 44 2 879794446
135 802 2 879858003
304 275 4 884968264
308 393 4 887740367
342 1071 4 875319497
76 333
gitextract_x74nph22/ ├── .gitignore ├── ItemCF.py ├── LFM.py ├── README.md ├── UserCF.py ├── data/ │ ├── ml-100k/ │ │ ├── README │ │ ├── allbut.pl │ │ ├── mku.sh │ │ ├── u.data │ │ ├── u.genre │ │ ├── u.info │ │ ├── u.item │ │ ├── u.occupation │ │ ├── u.user │ │ ├── u1.base │ │ ├── u1.test │ │ ├── u2.base │ │ ├── u2.test │ │ ├── u3.base │ │ ├── u3.test │ │ ├── u4.base │ │ ├── u4.test │ │ ├── u5.base │ │ ├── u5.test │ │ ├── ua.base │ │ ├── ua.test │ │ ├── ub.base │ │ └── ub.test │ └── ml-1m/ │ └── README ├── dataset.py ├── main.py ├── most_popular.py ├── random_pred.py ├── similarity.py └── utils.py
SYMBOL INDEX (55 symbols across 9 files)
FILE: ItemCF.py
class ItemBasedCF (line 24) | class ItemBasedCF:
method __init__ (line 30) | def __init__(self, k_sim_movie=20, n_rec_movie=10, use_iuf_similarity=...
method fit (line 42) | def fit(self, trainset):
method recommend (line 71) | def recommend(self, user):
method test (line 101) | def test(self, testset):
method predict (line 147) | def predict(self, testset):
FILE: LFM.py
class LFM (line 24) | class LFM:
method __init__ (line 30) | def __init__(self, K, epochs, alpha, lamb, n_rec_movie=10, save_model=...
method init_model (line 54) | def init_model(self, users_set, items_set, K):
method init_users_items_set (line 69) | def init_users_items_set(self, trainset):
method gen_negative_sample (line 87) | def gen_negative_sample(self, items: dict):
method predict (line 106) | def predict(self, user, item):
method train (line 120) | def train(self, trainset):
method fit (line 139) | def fit(self, trainset):
method recommend (line 164) | def recommend(self, user):
method test (line 179) | def test(self, testset):
FILE: UserCF.py
class UserBasedCF (line 21) | class UserBasedCF:
method __init__ (line 27) | def __init__(self, k_sim_user=20, n_rec_movie=10, use_iif_similarity=F...
method fit (line 39) | def fit(self, trainset):
method recommend (line 67) | def recommend(self, user):
method test (line 97) | def test(self, testset):
method predict (line 143) | def predict(self, testset):
FILE: dataset.py
class DataSet (line 44) | class DataSet:
method __init__ (line 51) | def __init__(self):
method load_dataset (line 55) | def load_dataset(cls, name='ml-100k'):
method parse_line (line 80) | def parse_line(cls, line: str, sep: str):
method train_test_split (line 98) | def train_test_split(cls, ratings, test_size=0.2):
FILE: main.py
function run_model (line 19) | def run_model(model_name, dataset_name, test_size=0.3, clean=False):
function recommend_test (line 57) | def recommend_test(model, user_list):
FILE: most_popular.py
class MostPopular (line 23) | class MostPopular:
method __init__ (line 29) | def __init__(self, n_rec_movie=10, save_model=True):
method fit (line 39) | def fit(self, trainset):
method recommend (line 67) | def recommend(self, user):
method test (line 85) | def test(self, testset):
method predict (line 132) | def predict(self, testset):
FILE: random_pred.py
class RandomPredict (line 22) | class RandomPredict:
method __init__ (line 28) | def __init__(self, n_rec_movie=10, save_model=True):
method fit (line 38) | def fit(self, trainset):
method recommend (line 63) | def recommend(self, user):
method test (line 81) | def test(self, testset):
method predict (line 127) | def predict(self, testset):
FILE: similarity.py
function calculate_user_similarity (line 18) | def calculate_user_similarity(trainset, use_iif_similarity=False):
function calculate_item_similarity (line 92) | def calculate_item_similarity(trainset, use_iuf_similarity=False):
function calculate_movie_popular (line 152) | def calculate_movie_popular(trainset):
FILE: utils.py
class LogTime (line 16) | class LogTime:
method __init__ (line 25) | def __init__(self, print_step=20000, words=''):
method count_time (line 38) | def count_time(self):
method finish (line 50) | def finish(self):
method get_curr_step (line 58) | def get_curr_step(self):
method get_total_time (line 61) | def get_total_time(self):
class ModelManager (line 65) | class ModelManager:
method __init__ (line 75) | def __init__(cls, dataset_name=None, test_size=0.3):
method save_model (line 83) | def save_model(self, model, save_name: str):
method load_model (line 96) | def load_model(self, model_name: str):
method clean_workspace (line 109) | def clean_workspace(clean=False):
Copy disabled (too large)
Download .json
Condensed preview — 35 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (19,371K chars).
[
{
"path": ".gitignore",
"chars": 787,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\n"
},
{
"path": "ItemCF.py",
"chars": 6556,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@author: fuxuemingzhu \n@site: www.fuxuemingzhu.cn\n\n@file: ItemCF.py\n@t"
},
{
"path": "LFM.py",
"chars": 7640,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@author: fuxuemingzhu \n@site: www.fuxuemingzhu.cn\n\n@file: LFM.py\n@time"
},
{
"path": "README.md",
"chars": 8037,
"preview": "# MovieLens-Recommender\n\n[MovieLens-Recommender][1] is a pure Python implement of ``Collaborative Filtering``. Which con"
},
{
"path": "UserCF.py",
"chars": 6385,
"preview": "# -*- coding = utf-8 -*-\n\"\"\"\nUser-based Collaborative filtering.\n\nCreated on 2018-04-15\n\n@author: fuxuemingzhu\n\"\"\"\nimpor"
},
{
"path": "data/ml-100k/README",
"chars": 6750,
"preview": "SUMMARY & USAGE LICENSE\n=============================================\n\nMovieLens data sets were collected by the GroupLe"
},
{
"path": "data/ml-100k/allbut.pl",
"chars": 716,
"preview": "#!/usr/local/bin/perl\n\n# get args\nif (@ARGV < 3) {\n\tprint STDERR \"Usage: $0 base_name start stop max_test [ratings ...]\\"
},
{
"path": "data/ml-100k/mku.sh",
"chars": 643,
"preview": "#!/bin/sh\n\ntrap `rm -f tmp.$$; exit 1` 1 2 15\n\nfor i in 1 2 3 4 5\ndo\n\thead -`expr $i \\* 20000` u.data | tail -20000 > tm"
},
{
"path": "data/ml-100k/u.data",
"chars": 1979173,
"preview": "196\t242\t3\t881250949\n186\t302\t3\t891717742\n22\t377\t1\t878887116\n244\t51\t2\t880606923\n166\t346\t1\t886397596\n298\t474\t4\t884182806\n11"
},
{
"path": "data/ml-100k/u.genre",
"chars": 202,
"preview": "unknown|0\nAction|1\nAdventure|2\nAnimation|3\nChildren's|4\nComedy|5\nCrime|6\nDocumentary|7\nDrama|8\nFantasy|9\nFilm-Noir|10\nHo"
},
{
"path": "data/ml-100k/u.info",
"chars": 36,
"preview": "943 users\n1682 items\n100000 ratings\n"
},
{
"path": "data/ml-100k/u.item",
"chars": 236332,
"preview": "1|Toy Story (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Toy%20Story%20(1995)|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|"
},
{
"path": "data/ml-100k/u.occupation",
"chars": 193,
"preview": "administrator\nartist\ndoctor\neducator\nengineer\nentertainment\nexecutive\nhealthcare\nhomemaker\nlawyer\nlibrarian\nmarketing\nno"
},
{
"path": "data/ml-100k/u.user",
"chars": 22628,
"preview": "1|24|M|technician|85711\n2|53|F|other|94043\n3|23|M|writer|32067\n4|24|M|technician|43537\n5|33|F|other|15213\n6|42|M|executi"
},
{
"path": "data/ml-100k/u1.base",
"chars": 1586544,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t3\t4\t878542960\n1\t4\t3\t876893119\n1\t5\t3\t889751712\n1\t7\t4\t875071561\n1\t8\t1\t875072484\n1\t9\t5\t87"
},
{
"path": "data/ml-100k/u1.test",
"chars": 392629,
"preview": "1\t6\t5\t887431973\n1\t10\t3\t875693118\n1\t12\t5\t878542960\n1\t14\t5\t874965706\n1\t17\t3\t875073198\n1\t20\t4\t887431883\n1\t23\t4\t875072895\n1\t"
},
{
"path": "data/ml-100k/u2.base",
"chars": 1583948,
"preview": "1\t3\t4\t878542960\n1\t4\t3\t876893119\n1\t5\t3\t889751712\n1\t6\t5\t887431973\n1\t7\t4\t875071561\n1\t10\t3\t875693118\n1\t11\t2\t875072262\n1\t12\t5"
},
{
"path": "data/ml-100k/u2.test",
"chars": 395225,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t8\t1\t875072484\n1\t9\t5\t878543541\n1\t21\t1\t878542772\n1\t22\t4\t875072404\n1\t26\t3\t875072442\n1\t30\t"
},
{
"path": "data/ml-100k/u3.base",
"chars": 1582546,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t3\t4\t878542960\n1\t4\t3\t876893119\n1\t6\t5\t887431973\n1\t7\t4\t875071561\n1\t8\t1\t875072484\n1\t9\t5\t87"
},
{
"path": "data/ml-100k/u3.test",
"chars": 396627,
"preview": "1\t5\t3\t889751712\n1\t11\t2\t875072262\n1\t16\t5\t878543541\n1\t25\t4\t875071805\n1\t35\t1\t878542420\n1\t41\t2\t876892818\n1\t45\t5\t875241687\n1\t"
},
{
"path": "data/ml-100k/u4.base",
"chars": 1581878,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t3\t4\t878542960\n1\t5\t3\t889751712\n1\t6\t5\t887431973\n1\t8\t1\t875072484\n1\t9\t5\t878543541\n1\t10\t3\t8"
},
{
"path": "data/ml-100k/u4.test",
"chars": 397295,
"preview": "1\t4\t3\t876893119\n1\t7\t4\t875071561\n1\t42\t5\t876892425\n1\t43\t4\t878542869\n1\t55\t5\t875072688\n1\t58\t4\t878542960\n1\t95\t4\t875072303\n1\t1"
},
{
"path": "data/ml-100k/u5.base",
"chars": 1581776,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t4\t3\t876893119\n1\t5\t3\t889751712\n1\t6\t5\t887431973\n1\t7\t4\t875071561\n1\t8\t1\t875072484\n1\t9\t5\t87"
},
{
"path": "data/ml-100k/u5.test",
"chars": 397397,
"preview": "1\t3\t4\t878542960\n1\t13\t5\t875071805\n1\t15\t5\t875071608\n1\t18\t4\t887432020\n1\t19\t5\t875071515\n1\t28\t4\t875072173\n1\t29\t1\t878542869\n1\t"
},
{
"path": "data/ml-100k/ua.base",
"chars": 1792501,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t3\t4\t878542960\n1\t4\t3\t876893119\n1\t5\t3\t889751712\n1\t6\t5\t887431973\n1\t7\t4\t875071561\n1\t8\t1\t87"
},
{
"path": "data/ml-100k/ua.test",
"chars": 186672,
"preview": "1\t20\t4\t887431883\n1\t33\t4\t878542699\n1\t61\t4\t878542420\n1\t117\t3\t874965739\n1\t155\t2\t878542201\n1\t160\t4\t875072547\n1\t171\t5\t8897517"
},
{
"path": "data/ml-100k/ub.base",
"chars": 1792476,
"preview": "1\t1\t5\t874965758\n1\t2\t3\t876893171\n1\t3\t4\t878542960\n1\t4\t3\t876893119\n1\t5\t3\t889751712\n1\t6\t5\t887431973\n1\t7\t4\t875071561\n1\t8\t1\t87"
},
{
"path": "data/ml-100k/ub.test",
"chars": 186697,
"preview": "1\t17\t3\t875073198\n1\t47\t4\t875072125\n1\t64\t5\t875072404\n1\t90\t4\t878542300\n1\t92\t3\t876892425\n1\t113\t5\t878542738\n1\t222\t4\t878873388"
},
{
"path": "data/ml-1m/README",
"chars": 5577,
"preview": "SUMMARY\n================================================================================\n\nThese files contain 1,000,209 "
},
{
"path": "dataset.py",
"chars": 4241,
"preview": "# -*- coding = utf-8 -*-\n\"\"\"\nThe :mod:`dataset` module defines the :class:`Dataset` class\nand other subclasses which are"
},
{
"path": "main.py",
"chars": 2594,
"preview": "# -*- coding = utf-8 -*-\n\"\"\"\nMain function to build recommendation systems.\n\nCreated on 2018-04-16\n\n@author: fuxuemingzh"
},
{
"path": "most_popular.py",
"chars": 5621,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@author: fuxuemingzhu \n@site: www.fuxuemingzhu.cn\n\n@file: most_popular"
},
{
"path": "random_pred.py",
"chars": 5229,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@author: fuxuemingzhu \n@site: www.fuxuemingzhu.cn\n\n@file: random_pred."
},
{
"path": "similarity.py",
"chars": 6905,
"preview": "# -*- coding = utf-8 -*-\n\"\"\"\nCalculate user similarity matrix.\n\nCreated on 2018-04-15\n\n@author: fuxuemingzhu\n\"\"\"\nimport "
},
{
"path": "utils.py",
"chars": 3498,
"preview": "# -*- coding = utf-8 -*-\n\"\"\"\nUtils in order to simplify coding.\n\nCreated on 2018-04-16\n\n@author: fuxuemingzhu\n\"\"\"\nimport"
}
]
About this extraction
This page contains the full source code of the fuxuemingzhu/MovieLens-Recommender GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 35 files (15.4 MB), approximately 4.0M tokens, and a symbol index with 55 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.