From 8ab3c2c23813145b8c18cd8f7eff665244cf67b3 Mon Sep 17 00:00:00 2001 From: Escape142 Date: Sun, 24 Nov 2024 15:05:53 +0000 Subject: [PATCH 01/27] Training pipeline (#1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * training_pipeline_initial_state * docker * add_new_params * Выпилена hydra и обновлен общий пайплайн --------- Co-authored-by: ZhMax --- .gitignore | 8 +- Dockerfile | 17 + main.py | 32 ++ replay_benchmarks/__init__.py | 3 + replay_benchmarks/base_runner.py | 390 ++++++++++++++++++ .../configs/acceleration/quantization.yaml | 0 replay_benchmarks/configs/config.yaml | 31 ++ .../configs/dataset/megamarket.yaml | 15 + .../configs/dataset/movielens_1m.yaml | 15 + .../configs/dataset/movielens_20m.yaml | 15 + .../configs/dataset/netflix.yaml | 15 + replay_benchmarks/configs/dataset/zvuk.yaml | 15 + replay_benchmarks/configs/mode/infer.yaml | 9 + replay_benchmarks/configs/mode/train.yaml | 8 + replay_benchmarks/configs/model/bert4rec.yaml | 15 + replay_benchmarks/configs/model/sasrec.yaml | 15 + replay_benchmarks/environment/Dockerfile | 90 ++++ replay_benchmarks/environment/environment.yml | 22 + replay_benchmarks/infer_runner.py | 36 ++ replay_benchmarks/train_runner.py | 214 ++++++++++ replay_benchmarks/utils/__init__.py | 1 + replay_benchmarks/utils/conf.py | 38 ++ replay_benchmarks/utils/profiler.py | 4 + 23 files changed, 1007 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100755 main.py create mode 100755 replay_benchmarks/__init__.py create mode 100755 replay_benchmarks/base_runner.py create mode 100755 replay_benchmarks/configs/acceleration/quantization.yaml create mode 100755 replay_benchmarks/configs/config.yaml create mode 100644 replay_benchmarks/configs/dataset/megamarket.yaml create mode 100755 replay_benchmarks/configs/dataset/movielens_1m.yaml create mode 100755 replay_benchmarks/configs/dataset/movielens_20m.yaml create mode 100755 replay_benchmarks/configs/dataset/netflix.yaml create mode 100755 replay_benchmarks/configs/dataset/zvuk.yaml create mode 100755 replay_benchmarks/configs/mode/infer.yaml create mode 100755 replay_benchmarks/configs/mode/train.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec.yaml create mode 100755 replay_benchmarks/configs/model/sasrec.yaml create mode 100755 replay_benchmarks/environment/Dockerfile create mode 100755 replay_benchmarks/environment/environment.yml create mode 100755 replay_benchmarks/infer_runner.py create mode 100755 replay_benchmarks/train_runner.py create mode 100755 replay_benchmarks/utils/__init__.py create mode 100644 replay_benchmarks/utils/conf.py create mode 100755 replay_benchmarks/utils/profiler.py diff --git a/.gitignore b/.gitignore index 579989452..e76715761 100644 --- a/.gitignore +++ b/.gitignore @@ -183,6 +183,12 @@ airflow.yaml # temporary examples/tests +outputs ### d3rlpy logs -d3rlpy_logs/ \ No newline at end of file +d3rlpy_logs/ + +# datasets +replay_benchmarks/data +# logs and checkpoints +replay_benchmarks/artifacts \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..84a7bc24a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM python:3.11-slim as builder +RUN apt-get update \ + && apt-get install -y --no-install-recommends apt-utils \ + && apt-get install libgomp1 build-essential pandoc -y \ + && apt-get install git -y --no-install-recommends + +COPY --from=openjdk:11-jre-slim /usr/local/openjdk-11 /usr/local/openjdk-11 +ENV JAVA_HOME /usr/local/openjdk-11 +RUN update-alternatives --install /usr/bin/java java /usr/local/openjdk-11/bin/java 1 + +WORKDIR /root + +RUN pip install --no-cache-dir --upgrade pip wheel poetry==1.5.1 poetry-dynamic-versioning \ + && python -m poetry config virtualenvs.create false +COPY . RePlay-Accelerated/ +RUN cd RePlay-Accelerated && ./poetry_wrapper.sh install --all-extras +CMD ["/bin/bash"] \ No newline at end of file diff --git a/main.py b/main.py new file mode 100755 index 000000000..4b292e891 --- /dev/null +++ b/main.py @@ -0,0 +1,32 @@ +"""Main module""" + +import os +import logging +import warnings +import yaml + +from replay_benchmarks.utils.conf import load_config +from replay_benchmarks import TrainRunner, InferRunner + +logging.basicConfig(level=logging.INFO) +warnings.filterwarnings("ignore") + + +def main() -> None: + config_dir = "./replay_benchmarks/configs" + base_config_path = os.path.join(config_dir, "config.yaml") + config = load_config(base_config_path, config_dir) + logging.info("Configuration:\n%s", yaml.dump(config)) + + if config["mode"]["name"] == "train": + runner = TrainRunner(config) + elif config["mode"]["name"] == "infer": + runner = InferRunner(config) + else: + raise ValueError(f"Unsupported mode: {config['mode']}") + + runner.run() + + +if __name__ == "__main__": + main() diff --git a/replay_benchmarks/__init__.py b/replay_benchmarks/__init__.py new file mode 100755 index 000000000..6dedd0819 --- /dev/null +++ b/replay_benchmarks/__init__.py @@ -0,0 +1,3 @@ +from .base_runner import BaseRunner +from .infer_runner import InferRunner +from .train_runner import TrainRunner \ No newline at end of file diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py new file mode 100755 index 000000000..2573afaed --- /dev/null +++ b/replay_benchmarks/base_runner.py @@ -0,0 +1,390 @@ +import logging +import os +from abc import ABC, abstractmethod +from typing import Tuple + +import pandas as pd +from rs_datasets import MovieLens, Netflix + +from replay.data import ( + FeatureHint, + FeatureInfo, + FeatureSchema, + FeatureSource, + FeatureType, + Dataset, +) +from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter +from replay.splitters import TimeSplitter +from replay.utils import DataFrameLike +from replay.data.nn import ( + SequenceTokenizer, + SequentialDataset, + TensorFeatureSource, + TensorSchema, + TensorFeatureInfo, +) + +DATASET_MAPPINGS = { + "zvuk": {"kaggle": "alexxl/zvuk-dataset", "file": "zvuk-interactions.parquet"}, + "megamarket": {"kaggle": "alexxl/megamarket", "file": "megamarket.parquet"}, +} +SUPPORTED_RS_DATASETS = ["movielens", "netflix"] + + +class BaseRunner(ABC): + def __init__(self, config): + self.config = config + self.model_name = config["model"]["name"] + self.dataset_name = config["dataset"]["name"] + self.dataset_cfg = config["dataset"] + self.model_cfg = config["model"]["params"] + self.mode = config["mode"]["name"] + self.item_column = self.dataset_cfg["feature_schema"]["item_column"] + self.user_column = self.dataset_cfg["feature_schema"]["query_column"] + self.timestamp_column = self.dataset_cfg["feature_schema"]["timestamp_column"] + self.tokenizer = None + self.interactions = None + self.user_features = None + self.item_features = None + self.tensor_schema = self.build_tensor_schema() + self.setup_environment() + + def load_data( + self, + ) -> Tuple[ + DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike + ]: + """Load dataset and split into train, validation, and test sets.""" + dataset_name = self.dataset_cfg["name"] + data_path = self.dataset_cfg["path"] + interactions_file = os.path.join(data_path, "interactions.parquet") + + if not os.path.exists(interactions_file): + logging.info(f"Dataset not found at {interactions_file}. Downloading...") + self._download_dataset(data_path, dataset_name, interactions_file) + + logging.info(f"Dataset is loaded from {interactions_file}") + interactions = pd.read_parquet(interactions_file) + self.interactions = self._filter_data(interactions) + + splitter = TimeSplitter( + time_threshold=self.dataset_cfg["preprocess"]["global_split_ratio"], + drop_cold_users=True, + drop_cold_items=True, + item_column=self.item_column, + query_column=self.user_column, + timestamp_column=self.timestamp_column, + ) + + train_events, validation_events, validation_gt, test_events, test_gt = ( + self._split_data(splitter, self.interactions) + ) + logging.info("Data split into train, validation, and test sets") + return train_events, validation_events, validation_gt, test_events, test_gt + + def _download_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ): + """Download dataset from Kaggle or rs_datasets.""" + if dataset_name in DATASET_MAPPINGS: + self._download_kaggle_dataset(data_path, dataset_name, interactions_file) + elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS): + self._download_rs_dataset(data_path, dataset_name, interactions_file) + else: + raise ValueError(f"Unsupported dataset: {dataset_name}") + + def _download_kaggle_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ) -> None: + from kaggle.api.kaggle_api_extended import KaggleApi + + """Download dataset from Kaggle.""" + kaggle_info = DATASET_MAPPINGS[dataset_name] + kaggle_dataset = kaggle_info["kaggle"] + raw_data_file = os.path.join(data_path, kaggle_info["file"]) + + os.environ.setdefault("KAGGLE_USERNAME", "recsysaccelerate") + os.environ.setdefault("KAGGLE_KEY", "6363e91b656fea576c39e4f55dcc1d00") + + api = KaggleApi() + api.authenticate() + + api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True) + logging.info(f"Dataset downloaded and extracted to {data_path}") + + interactions = pd.read_parquet(raw_data_file) + interactions[self.timestamp_column] = interactions[ + self.timestamp_column + ].astype("int64") + interactions.to_parquet(interactions_file) + + def _download_rs_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ) -> None: + """Download dataset from rs_datasets.""" + if "movielens" in dataset_name: + version = dataset_name.split("_")[1] + movielens = MovieLens(version=version, path=data_path) + interactions = movielens.ratings + elif dataset_name == "netflix": + netflix = Netflix(path=data_path) + interactions = pd.concat([netflix.train, netflix.test]).fillna(5) + else: + raise ValueError(f"Unsupported dataset: {dataset_name}") + + interactions[self.timestamp_column] = interactions[ + self.timestamp_column + ].astype("int64") + interactions.to_parquet(interactions_file) + + def _filter_data(self, interactions: pd.DataFrame): + """Filters raw data based on minimum interaction counts.""" + + def log_min_counts(data: pd.DataFrame, message_prefix: str): + user_min = data.groupby(self.user_column).size().min() + item_min = data.groupby(self.item_column).size().min() + logging.info( + f"{message_prefix} - Min items per user: {user_min}, Min users per item: {item_min}" + ) + + log_min_counts(interactions, "Before filtering") + + interactions_filtered = MinCountFilter( + num_entries=self.dataset_cfg["preprocess"]["min_users_per_item"], + groupby_column=self.item_column, + ).transform(interactions) + + interactions_filtered = MinCountFilter( + num_entries=self.dataset_cfg["preprocess"]["min_items_per_user"], + groupby_column=self.user_column, + ).transform(interactions_filtered) + + log_min_counts(interactions_filtered, "After filtering") + + return interactions_filtered + + def _split_data( + self, splitter: TimeSplitter, interactions: pd.DataFrame + ) -> Tuple[ + DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike + ]: + """Split data for training, validation, and testing.""" + test_events, test_gt = splitter.split(interactions) + validation_events, validation_gt = splitter.split(test_events) + train_events = validation_events + + # Limit number of gt events in val and test: + logging.info( + f"Distribution of seq_len in validation before filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + validation_gt = NumInteractionsFilter( + num_interactions=self.dataset_cfg["preprocess"][ + "max_num_test_interactions" + ], + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(validation_gt) + logging.info( + f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + + logging.info( + f"Distribution of seq_len in test before filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + test_gt = NumInteractionsFilter( + num_interactions=self.dataset_cfg["preprocess"][ + "max_num_test_interactions" + ], + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(test_gt) + logging.info( + f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + + return train_events, validation_events, validation_gt, test_events, test_gt + + def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: + """Prepare the feature schema based on whether ground truth is needed.""" + base_features = FeatureSchema( + [ + FeatureInfo( + column=self.user_column, + feature_hint=FeatureHint.QUERY_ID, + feature_type=FeatureType.CATEGORICAL, + ), + FeatureInfo( + column=self.item_column, + feature_hint=FeatureHint.ITEM_ID, + feature_type=FeatureType.CATEGORICAL, + ), + ] + ) + if is_ground_truth: + return base_features + + return base_features + FeatureSchema( + [ + FeatureInfo( + column=self.timestamp_column, + feature_type=FeatureType.NUMERICAL, + feature_hint=FeatureHint.TIMESTAMP, + ), + ] + ) + + def build_tensor_schema(self) -> TensorSchema: + """Build TensorSchema for the sequential model.""" + embedding_dim = self.model_cfg["embedding_dim"] + item_feature_name = "item_id_seq" + + return TensorSchema( + TensorFeatureInfo( + name=item_feature_name, + is_seq=True, + feature_type=FeatureType.CATEGORICAL, + feature_sources=[ + TensorFeatureSource( + FeatureSource.INTERACTIONS, + self.item_column, + ) + ], + feature_hint=FeatureHint.ITEM_ID, + embedding_dim=embedding_dim, + ) + ) + + def prepare_datasets( + self, + train_events: DataFrameLike, + validation_events: DataFrameLike, + validation_gt: DataFrameLike, + test_events: DataFrameLike, + test_gt: DataFrameLike, + ) -> Tuple[Dataset, Dataset, Dataset, Dataset, Dataset]: + """Prepare Dataset objects for training, validation, and testing.""" + logging.info("Preparing Dataset objects...") + feature_schema = self.prepare_feature_schema(is_ground_truth=False) + ground_truth_schema = self.prepare_feature_schema(is_ground_truth=True) + + train_dataset = Dataset( + feature_schema=feature_schema, + interactions=train_events, + query_features=self.user_features, + item_features=self.item_features, + check_consistency=True, + categorical_encoded=False, + ) + validation_dataset = Dataset( + feature_schema=feature_schema, + interactions=validation_events, + query_features=self.user_features, + item_features=self.item_features, + check_consistency=True, + categorical_encoded=False, + ) + validation_gt_dataset = Dataset( + feature_schema=ground_truth_schema, + interactions=validation_gt, + check_consistency=True, + categorical_encoded=False, + ) + test_dataset = Dataset( + feature_schema=feature_schema, + interactions=test_events, + query_features=self.user_features, + item_features=self.item_features, + check_consistency=True, + categorical_encoded=False, + ) + test_gt_dataset = Dataset( + feature_schema=ground_truth_schema, + interactions=test_gt, + check_consistency=True, + categorical_encoded=False, + ) + + return ( + train_dataset, + validation_dataset, + validation_gt_dataset, + test_dataset, + test_gt_dataset, + ) + + def prepare_seq_datasets( + self, + train_dataset: Dataset, + validation_dataset: Dataset, + validation_gt: Dataset, + test_dataset: Dataset, + test_gt: Dataset, + ) -> Tuple[ + SequentialDataset, SequentialDataset, SequentialDataset, SequentialDataset + ]: + """Prepare SequentialDataset objects for training, validation, and testing.""" + logging.info("Preparing SequentialDataset objects...") + self.tokenizer = self.tokenizer or self._initialize_tokenizer(train_dataset) + + seq_train_dataset = self.tokenizer.transform(train_dataset) + seq_validation_dataset, seq_validation_gt = self._prepare_sequential_validation( + validation_dataset, validation_gt + ) + seq_test_dataset = self._prepare_sequential_test(test_dataset, test_gt) + + return ( + seq_train_dataset, + seq_validation_dataset, + seq_validation_gt, + seq_test_dataset, + ) + + def _initialize_tokenizer(self, train_dataset: Dataset) -> SequenceTokenizer: + """Initialize and fit the SequenceTokenizer.""" + tokenizer = SequenceTokenizer( + self.tensor_schema, allow_collect_to_master=True, handle_unknown_rule="drop" + ) + tokenizer.fit(train_dataset) + return tokenizer + + def _prepare_sequential_validation( + self, validation_dataset: Dataset, validation_gt: Dataset + ) -> Tuple[SequentialDataset, SequentialDataset]: + """Prepare sequential datasets for validation.""" + seq_validation_dataset = self.tokenizer.transform(validation_dataset) + seq_validation_gt = self.tokenizer.transform( + validation_gt, [self.tensor_schema.item_id_feature_name] + ) + + return SequentialDataset.keep_common_query_ids( + seq_validation_dataset, seq_validation_gt + ) + + def _prepare_sequential_test( + self, test_dataset: Dataset, test_gt: Dataset + ) -> SequentialDataset: + """Prepare sequential dataset for testing.""" + test_query_ids = test_gt.query_ids + test_query_ids_np = self.tokenizer.query_id_encoder.transform(test_query_ids)[ + self.user_column + ].values + return self.tokenizer.transform(test_dataset).filter_by_query_id( + test_query_ids_np + ) + + def setup_environment(self): + os.environ["CUDA_DEVICE_ORDER"] = self.config["env"]["CUDA_DEVICE_ORDER"] + os.environ["OMP_NUM_THREADS"] = self.config["env"]["OMP_NUM_THREADS"] + os.environ["CUDA_VISIBLE_DEVICES"] = self.config["env"]["CUDA_VISIBLE_DEVICES"] + os.environ["KAGGLE_USERNAME"] = "recsysaccelerate" + os.environ["KAGGLE_KEY"] = "6363e91b656fea576c39e4f55dcc1d00" + + @abstractmethod + def run(self): + """Run method to be implemented in derived classes.""" + raise NotImplementedError diff --git a/replay_benchmarks/configs/acceleration/quantization.yaml b/replay_benchmarks/configs/acceleration/quantization.yaml new file mode 100755 index 000000000..e69de29bb diff --git a/replay_benchmarks/configs/config.yaml b/replay_benchmarks/configs/config.yaml new file mode 100755 index 000000000..352e61a30 --- /dev/null +++ b/replay_benchmarks/configs/config.yaml @@ -0,0 +1,31 @@ +defaults: + - dataset: megamarket + - model: sasrec + - mode: train + - acceleration: null + +env: + CUDA_DEVICE_ORDER: "PCI_BUS_ID" + OMP_NUM_THREADS: "4" + CUDA_VISIBLE_DEVICES: "0" + +paths: + data_dir: "replay_benchmarks/data/" + model_dir: "replay_benchmarks/artifacts/models/" + log_dir: "replay_benchmarks/artifacts/logs/" + checkpoint_dir: "replay_benchmarks/artifacts/checkpoints/" + results_dir: "replay_benchmarks/artifacts/results/" + +metrics: + types: + - ndcg + - recall + - hitrate + - precision + - map + - mrr + ks: + - 1 + - 5 + - 10 + - 20 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/megamarket.yaml b/replay_benchmarks/configs/dataset/megamarket.yaml new file mode 100644 index 000000000..19a88a0f9 --- /dev/null +++ b/replay_benchmarks/configs/dataset/megamarket.yaml @@ -0,0 +1,15 @@ +dataset: + name: megamarket + path: "./replay_benchmarks/data/megamarket" + + feature_schema: + query_column: "user_id" + item_column: "item_id" + rating_column: "rating" + timestamp_column: "datetime" + + preprocess: + global_split_ratio: 0.1 + max_num_test_interactions: 10 + min_users_per_item: 5 + min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_1m.yaml b/replay_benchmarks/configs/dataset/movielens_1m.yaml new file mode 100755 index 000000000..0ca05c8d0 --- /dev/null +++ b/replay_benchmarks/configs/dataset/movielens_1m.yaml @@ -0,0 +1,15 @@ +dataset: + name: movielens_1m + path: "./replay_benchmarks/data/movielens_1m" + + feature_schema: + query_column: "user_id" + item_column: "item_id" + rating_column: "rating" + timestamp_column: "timestamp" + + preprocess: + global_split_ratio: 0.1 + max_num_test_interactions: 10 + min_users_per_item: 5 + min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_20m.yaml b/replay_benchmarks/configs/dataset/movielens_20m.yaml new file mode 100755 index 000000000..2527a6cfe --- /dev/null +++ b/replay_benchmarks/configs/dataset/movielens_20m.yaml @@ -0,0 +1,15 @@ +dataset: + name: movielens_20m + path: "./replay_benchmarks/data/movielens_20m" + + feature_schema: + query_column: "user_id" + item_column: "item_id" + rating_column: "rating" + timestamp_column: "timestamp" + + preprocess: + global_split_ratio: 0.1 + max_num_test_interactions: 10 + min_users_per_item: 5 + min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/netflix.yaml b/replay_benchmarks/configs/dataset/netflix.yaml new file mode 100755 index 000000000..f603a8731 --- /dev/null +++ b/replay_benchmarks/configs/dataset/netflix.yaml @@ -0,0 +1,15 @@ +dataset: + name: "netflix" + path: "./replay_benchmarks/data/netflix" + + feature_schema: + query_column: "user_id" + item_column: "item_id" + rating_column: "rating" + timestamp_column: "timestamp" + + preprocess: + global_split_ratio: 0.1 + max_num_test_interactions: 10 + min_users_per_item: 5 + min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/zvuk.yaml b/replay_benchmarks/configs/dataset/zvuk.yaml new file mode 100755 index 000000000..3fcb0aa6e --- /dev/null +++ b/replay_benchmarks/configs/dataset/zvuk.yaml @@ -0,0 +1,15 @@ +dataset: + name: zvuk + path: "./replay_benchmarks/data/zvuk" + + feature_schema: + query_column: "user_id" + item_column: "track_id" + rating_column: "play_duration" + timestamp_column: "datetime" + + preprocess: + global_split_ratio: 0.1 + max_num_test_interactions: 10 + min_users_per_item: 5 + min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/mode/infer.yaml b/replay_benchmarks/configs/mode/infer.yaml new file mode 100755 index 000000000..1a52da6c8 --- /dev/null +++ b/replay_benchmarks/configs/mode/infer.yaml @@ -0,0 +1,9 @@ +mode: + name: infer + + trainer_params: + batch_size: 256 + num_workers: 4 + + top_k: [1, 10, 20, 100] + output_format: "pandas" \ No newline at end of file diff --git a/replay_benchmarks/configs/mode/train.yaml b/replay_benchmarks/configs/mode/train.yaml new file mode 100755 index 000000000..468f6a738 --- /dev/null +++ b/replay_benchmarks/configs/mode/train.yaml @@ -0,0 +1,8 @@ +mode: + name: train + + trainer_params: + batch_size: 512 + num_workers: 4 + epochs: 100 + learning_rate: 0.001 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec.yaml b/replay_benchmarks/configs/model/bert4rec.yaml new file mode 100755 index 000000000..4dfb6d0bf --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec.yaml @@ -0,0 +1,15 @@ +model: + name: bert4rec + + params: + block_count: 2 + head_count: 4 + max_sequence_length: 20 + hidden_size: 312 + learning_rate: 0.002 + dropout_rate: 0.15 + + batch_size: 512 + num_workers: 4 + max_epochs: 100 + embedding_dim: 312 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/sasrec.yaml b/replay_benchmarks/configs/model/sasrec.yaml new file mode 100755 index 000000000..93753a6b9 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec.yaml @@ -0,0 +1,15 @@ +model: + name: sasrec + + params: + block_count: 4 + head_count: 2 + max_sequence_length: 100 + hidden_size: 384 + learning_rate: 0.001 + dropout_rate: 0.1 + + batch_size: 512 + num_workers: 4 + max_epochs: 100 + embedding_dim: 300 \ No newline at end of file diff --git a/replay_benchmarks/environment/Dockerfile b/replay_benchmarks/environment/Dockerfile new file mode 100755 index 000000000..c32166667 --- /dev/null +++ b/replay_benchmarks/environment/Dockerfile @@ -0,0 +1,90 @@ +# Start with the CUDA base image +FROM nvidia/cuda:12.3.2-base-ubuntu22.04 + +# Set environment variables +ENV DEBIAN_FRONTEND=noninteractive +ENV PIP_ROOT_USER_ACTION=ignore +ENV PYENV_ROOT /opt/pyenv +ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:/opt/miniconda3/bin:$PATH + +# Remove any third-party apt sources to avoid issues with expiring keys +RUN rm -f /etc/apt/sources.list.d/*.list + +# Install essential system dependencies +RUN apt-get update && apt-get install -y \ + curl wget mc unzip htop vim sudo adduser \ + build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \ + libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev \ + libxmlsec1-dev libffi-dev liblzma-dev default-jdk scala \ + openjdk-8-jdk ant ca-certificates-java \ + ffmpeg libsm6 libxext6 sox libsox-dev libsox-fmt-all tmux \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +# Set JAVA_HOME +ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/ +ENV PATH $JAVA_HOME/bin:$PATH + +# Set root password as empty +RUN passwd -d root + +# Set sudoers for root and all users +RUN sed -i '/^.*$/d' /etc/sudoers && \ + echo 'root ALL=(ALL:ALL) ALL' >> /etc/sudoers && \ + echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + +# Add developers group and users +RUN addgroup --gid 1000 developers && \ + for user in $(getent passwd | cut -d: -f1); do \ + if [[ $user == "da" ]] || [[ $(id -u $user) -ge 1000 ]] && [[ $(eval echo "~$user") == /home* ]]; then \ + addgroup --gid $(id -g $user) $user && \ + adduser --disabled-password --gecos "" --uid $(id -u $user) --gid $(id -g $user) --shell $(getent passwd $user | cut -d: -f7) --home $(eval echo "~$user") $user && \ + adduser $user sudo && adduser $user developers; \ + fi; \ + done + +# Set up Miniconda for environment and package management +RUN curl -sLo ~/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-x86_64.sh \ + && chmod +x ~/miniconda.sh \ + && ~/miniconda.sh -b -p /opt/miniconda3 \ + && rm ~/miniconda.sh + +# Update PATH to include Miniconda +ENV PATH="/opt/miniconda3/bin:$PATH" + +# Install Mamba +RUN conda install -n base -c conda-forge mamba + +# Copy and install environment using Mamba +COPY environment.yml /tmp/environment.yml +RUN mamba env create --file=/tmp/environment.yml \ + && conda clean -ya \ + && rm /tmp/environment.yml + +# Install additional Python packages via pip +RUN conda run -n env pip install hydra-core implicit lightfm torch pytorch-lightning sqlalchemy hdfs redis msgpack_numpy msgpack lz4 nvitop + +# Set up default Conda environment and activate it +RUN echo "source activate env" > ~/.bashrc +ENV PATH /opt/conda/envs/env/bin:$PATH +SHELL ["conda", "run", "-n", "env", "/bin/bash", "-c"] + +# Download and setup Hadoop +RUN wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz && \ + tar -xzf hadoop-3.3.1.tar.gz -C /opt && \ + rm hadoop-3.3.1.tar.gz + +# Set environment variables for Hadoop +ENV HADOOP_HOME=/opt/hadoop-3.3.1 +ENV HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop +ENV LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH +ENV PATH=$HADOOP_HOME/bin:$PATH + +# Download and setup Spark +RUN wget https://archive.apache.org/dist/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz && \ + tar -xzf spark-3.4.1-bin-hadoop3.tgz -C /opt && \ + ln -s /opt/spark-3.4.1-bin-hadoop3 /opt/spark && \ + rm spark-3.4.1-bin-hadoop3.tgz + +# Set environment variables for Spark +ENV SPARK_HOME /opt/spark +ENV PATH $SPARK_HOME/bin:$PATH \ No newline at end of file diff --git a/replay_benchmarks/environment/environment.yml b/replay_benchmarks/environment/environment.yml new file mode 100755 index 000000000..f01368e29 --- /dev/null +++ b/replay_benchmarks/environment/environment.yml @@ -0,0 +1,22 @@ +name: env +channels: + - defaults +dependencies: + - python=3.9 + - numpy + - pandas + - pyspark + - hdfs3 + - scikit-learn + - seaborn + - scipy + - sqlite + - h5py + - ipykernel + - matplotlib + - pip + - pyparsing + - pytest + - redis + - requests + - setuptools \ No newline at end of file diff --git a/replay_benchmarks/infer_runner.py b/replay_benchmarks/infer_runner.py new file mode 100755 index 000000000..534b35bd5 --- /dev/null +++ b/replay_benchmarks/infer_runner.py @@ -0,0 +1,36 @@ +from replay.models.nn.sequential import SasRec, Bert4Rec +from replay.utils import get_spark_session +from .base_runner import BaseRunner + + +class InferRunner(BaseRunner): + def __init__(self, config): + super().__init__(config) + self.spark_session = get_spark_session() + self.model = self.load_model() + + def load_model(self): + """Load the appropriate model based on the config.""" + model_config = { + "tensor_schema": self.model_cfg["tensor_schema"], + "block_count": self.model_cfg["block_count"], + "head_count": self.model_cfg["head_count"], + "max_seq_len": self.model_cfg["max_sequence_length"], + "hidden_size": self.model_cfg["hidden_size"], + "dropout_rate": self.model_cfg["dropout_rate"], + } + + if self.model_name.lower() == "sasrec": + model = SasRec(**model_config) + elif self.model_name.lower() == "bert4rec": + model = Bert4Rec(**model_config) + else: + raise ValueError(f"Model {self.model_name} not recognized.") + + model = model.load_from_checkpoint(self.config["paths"]["checkpoint_dir"]) + model.eval() + return model + + def run(self): + """Main inference logic.""" + pass diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py new file mode 100755 index 000000000..11f502f14 --- /dev/null +++ b/replay_benchmarks/train_runner.py @@ -0,0 +1,214 @@ +import logging +import os + +import lightning as L +from lightning.pytorch.loggers import CSVLogger +from lightning.pytorch.callbacks import ModelCheckpoint +from torch.utils.data import DataLoader +from torch.profiler import profile, record_function, ProfilerActivity, schedule + +from replay_benchmarks.base_runner import BaseRunner +from replay.metrics import OfflineMetrics, Recall, Precision, MAP, NDCG, HitRate, MRR +from replay.metrics.torch_metrics_builder import metrics_to_df +from replay.models.nn.sequential import SasRec, Bert4Rec +from replay.models.nn.optimizer_utils import FatOptimizerFactory +from replay.models.nn.sequential.callbacks import ValidationMetricsCallback +from replay.models.nn.sequential.postprocessors import RemoveSeenItems +from replay.models.nn.sequential.sasrec import ( + SasRecTrainingDataset, + SasRecValidationDataset, + SasRecPredictionDataset, +) +from replay.models.nn.sequential.bert4rec import ( + Bert4RecTrainingDataset, + Bert4RecValidationDataset, + Bert4RecPredictionDataset, +) + + +class TrainRunner(BaseRunner): + def __init__(self, config): + super().__init__(config) + self.logger = CSVLogger( + save_dir=config["paths"]["log_dir"], name=self.model_name + ) + + def initialize_model(self): + """Initialize the model based on the configuration.""" + model_config = { + "tensor_schema": self.tensor_schema, + "block_count": self.model_cfg["block_count"], + "head_count": self.model_cfg["head_count"], + "max_seq_len": self.model_cfg["max_sequence_length"], + "hidden_size": self.model_cfg["hidden_size"], + "dropout_rate": self.model_cfg["dropout_rate"], + "optimizer_factory": FatOptimizerFactory( + learning_rate=self.model_cfg["learning_rate"] + ), + } + + if self.model_name.lower() == "sasrec": + return SasRec(**model_config) + elif self.model_name.lower() == "bert4rec": + return Bert4Rec(**model_config) + else: + raise ValueError(f"Unsupported model type: {self.model_name}") + + def prepare_dataloaders( + self, + seq_train_dataset, + seq_validation_dataset, + seq_validation_gt, + seq_test_dataset, + ): + """Initialize dataloaders for training, validation, and testing.""" + logging.info("Preparing dataloaders objects...") + dataset_mapping = { + "sasrec": ( + SasRecTrainingDataset, + SasRecValidationDataset, + SasRecPredictionDataset, + ), + "bert4rec": ( + Bert4RecTrainingDataset, + Bert4RecValidationDataset, + Bert4RecPredictionDataset, + ), + } + + try: + TrainingDataset, ValidationDataset, PredictionDataset = dataset_mapping[ + self.model_name.lower() + ] + except KeyError: + raise ValueError( + f"Unsupported model type for dataloaders: {self.model_name}" + ) + + common_params = { + "batch_size": self.model_cfg["batch_size"], + "num_workers": self.model_cfg["num_workers"], + "pin_memory": True, + } + + train_dataloader = DataLoader( + dataset=TrainingDataset( + seq_train_dataset, + max_sequence_length=self.model_cfg["max_sequence_length"], + ), + shuffle=True, + **common_params, + ) + val_dataloader = DataLoader( + dataset=ValidationDataset( + seq_validation_dataset, + seq_validation_gt, + seq_train_dataset, + max_sequence_length=self.model_cfg["max_sequence_length"], + ), + **common_params, + ) + prediction_dataloader = DataLoader( + dataset=PredictionDataset( + seq_test_dataset, + max_sequence_length=self.model_cfg["max_sequence_length"], + ), + **common_params, + ) + + return train_dataloader, val_dataloader, prediction_dataloader + + def calculate_metrics(self, predictions, ground_truth): + """Calculate and return the desired metrics based on the predictions.""" + top_k = self.config["metrics"]["ks"] + metrics_list = [ + Recall(top_k), + Precision(top_k), + MAP(top_k), + NDCG(top_k), + MRR(top_k), + HitRate(top_k), + ] + init_args = {"query_column": "user_id", "rating_column": "score"} + + metrics = OfflineMetrics(metrics_list, **init_args)(predictions, ground_truth) + return metrics_to_df(metrics) + + def save_model(self, model, checkpoint_callback): + """Save the best model checkpoint to the specified directory.""" + best_model_path = checkpoint_callback.best_model_path + save_path = self.config["paths"]["model_dir"] + model.load_from_checkpoint(best_model_path).save( + f"{save_path}/{self.model_name}_best.pt" + ) + logging.info(f"Best model saved at: {save_path}/{self.model_name}_best.pt") + + def run(self): + """Execute the training pipeline.""" + logging.info("Preparing datasets for training.") + train_events, validation_events, validation_gt, test_events, test_gt = ( + self.load_data() + ) + + train_dataset, val_dataset, val_gt_dataset, test_dataset, test_gt_dataset = ( + self.prepare_datasets( + train_events, validation_events, validation_gt, test_events, test_gt + ) + ) + + ( + seq_train_dataset, + seq_validation_dataset, + seq_validation_gt, + seq_test_dataset, + ) = self.prepare_seq_datasets( + train_dataset, val_dataset, val_gt_dataset, test_dataset, test_gt_dataset + ) + + train_dataloader, val_dataloader, prediction_dataloader = ( + self.prepare_dataloaders( + seq_train_dataset, + seq_validation_dataset, + seq_validation_gt, + seq_test_dataset, + ) + ) + + model = self.initialize_model() + checkpoint_callback = ModelCheckpoint( + dirpath=self.config["paths"]["checkpoint_dir"], + save_top_k=1, + verbose=True, + monitor="recall@10", + mode="max", + ) + + validation_metrics_callback = ValidationMetricsCallback( + metrics=self.config["metrics"]["types"], + ks=self.config["metrics"]["ks"], + item_count=train_dataset.item_count, + postprocessors=[RemoveSeenItems(seq_validation_dataset)], + ) + + trainer = L.Trainer( + max_epochs=self.model_cfg["max_epochs"], + callbacks=[checkpoint_callback, validation_metrics_callback], + logger=self.logger, + ) + + logging.info("Starting model training.") + with profile( + activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], + record_shapes=True, + with_flops=True, + profile_memory=True, + ) as prof: + trainer.fit(model, train_dataloader, val_dataloader) + + prof.export_chrome_trace( + os.path.join( + self.config["paths"]["log_dir"], + f"{self.model_name}_{self.dataset_name}_profile.json", + ) + ) + logging.info("Training completed.") diff --git a/replay_benchmarks/utils/__init__.py b/replay_benchmarks/utils/__init__.py new file mode 100755 index 000000000..e94810ef6 --- /dev/null +++ b/replay_benchmarks/utils/__init__.py @@ -0,0 +1 @@ +from .profiler import Profiler \ No newline at end of file diff --git a/replay_benchmarks/utils/conf.py b/replay_benchmarks/utils/conf.py new file mode 100644 index 000000000..5cf486e55 --- /dev/null +++ b/replay_benchmarks/utils/conf.py @@ -0,0 +1,38 @@ +import os +import yaml +from typing import Dict + + +def load_yaml(file_path: str) -> Dict: + """Load a single YAML file.""" + with open(file_path, "r") as f: + return yaml.safe_load(f) + + +def merge_dicts(base: Dict, update: Dict) -> Dict: + """Recursively merge two dictionaries.""" + for key, value in update.items(): + if isinstance(value, dict) and key in base: + base[key] = merge_dicts(base[key], value) + else: + base[key] = value + return base + + +def load_config(base_config_path: str, config_dir: str) -> Dict: + """Load base configuration and merge sub-configurations.""" + base_config = load_yaml(base_config_path) + defaults = base_config.get("defaults", []) + + for default in defaults: + for key, subconfig in default.items(): + if subconfig is None: + continue + subconfig_path = os.path.join(config_dir, key, f"{subconfig}.yaml") + if not os.path.exists(subconfig_path): + raise FileNotFoundError(f"Configuration file not found: {subconfig_path}") + subconfig_data = load_yaml(subconfig_path) + base_config = merge_dicts(base_config, subconfig_data) + + base_config.pop("defaults", None) + return base_config \ No newline at end of file diff --git a/replay_benchmarks/utils/profiler.py b/replay_benchmarks/utils/profiler.py new file mode 100755 index 000000000..d859f1d88 --- /dev/null +++ b/replay_benchmarks/utils/profiler.py @@ -0,0 +1,4 @@ +class Profiler: + def __init__(self): + """Initialize profiler with placeholders for system and GPU metrics.""" + pass From 1f601e71efc8a8522a51292a816e845e73586852 Mon Sep 17 00:00:00 2001 From: Valeriy Shevchenko <106615929+Escape142@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:36:22 +0300 Subject: [PATCH 02/27] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D1=82=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2=20=D0=BF=D0=B0?= =?UTF-8?q?=D0=B9=D0=BF=D0=BB=D0=B0=D0=B9=D0=BD=20(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - отфильтровать рейтинги <= 3 для movielens и netflix - не ограничивать длину последовательностей на валидации и тесте - для датасета megamarket берем только покупки --- replay_benchmarks/base_runner.py | 67 ++++++++++--------- .../configs/dataset/megamarket.yaml | 2 +- .../configs/dataset/movielens_1m.yaml | 5 +- .../configs/dataset/movielens_20m.yaml | 5 +- .../configs/dataset/netflix.yaml | 5 +- replay_benchmarks/configs/dataset/zvuk.yaml | 2 +- 6 files changed, 48 insertions(+), 38 deletions(-) diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 2573afaed..771b2abce 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -117,6 +117,8 @@ def _download_kaggle_dataset( interactions[self.timestamp_column] = interactions[ self.timestamp_column ].astype("int64") + if dataset_name == "megamarket": + interactions = interactions[interactions.event == 2] # take only purchase interactions.to_parquet(interactions_file) def _download_rs_dataset( @@ -127,9 +129,13 @@ def _download_rs_dataset( version = dataset_name.split("_")[1] movielens = MovieLens(version=version, path=data_path) interactions = movielens.ratings + interactions = interactions[interactions[self.dataset_cfg["feature_schema"]["rating_column"]] > self.dataset_cfg["preprocess"]["min_rating"]] elif dataset_name == "netflix": netflix = Netflix(path=data_path) - interactions = pd.concat([netflix.train, netflix.test]).fillna(5) + interactions = pd.concat([netflix.train, netflix.test]).fillna(5).reset_index(drop=True) + interactions = interactions[interactions[self.dataset_cfg["feature_schema"]["rating_column"]] > self.dataset_cfg["preprocess"]["min_rating"]] + interactions = interactions.sort_values(by=[self.user_column, self.timestamp_column]) + interactions[self.timestamp_column] += interactions.groupby([self.user_column, self.timestamp_column]).cumcount() else: raise ValueError(f"Unsupported dataset: {dataset_name}") @@ -174,38 +180,39 @@ def _split_data( validation_events, validation_gt = splitter.split(test_events) train_events = validation_events - # Limit number of gt events in val and test: + # Limit number of gt events in val and test only if max_num_test_interactions is not null + max_test_interactions = self.dataset_cfg["preprocess"]["max_num_test_interactions"] logging.info( - f"Distribution of seq_len in validation before filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - validation_gt = NumInteractionsFilter( - num_interactions=self.dataset_cfg["preprocess"][ - "max_num_test_interactions" - ], - first=True, - query_column=self.user_column, - item_column=self.item_column, - timestamp_column=self.timestamp_column, - ).transform(validation_gt) + f"Distribution of seq_len in validation:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) logging.info( - f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) + f"Distribution of seq_len in test:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + if max_test_interactions is not None: + + validation_gt = NumInteractionsFilter( + num_interactions=max_test_interactions, + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(validation_gt) + logging.info( + f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) - logging.info( - f"Distribution of seq_len in test before filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - test_gt = NumInteractionsFilter( - num_interactions=self.dataset_cfg["preprocess"][ - "max_num_test_interactions" - ], - first=True, - query_column=self.user_column, - item_column=self.item_column, - timestamp_column=self.timestamp_column, - ).transform(test_gt) - logging.info( - f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) + test_gt = NumInteractionsFilter( + num_interactions=max_test_interactions, + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(test_gt) + logging.info( + f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + else: + logging.info("max_num_test_interactions is null. Skipping filtration.") return train_events, validation_events, validation_gt, test_events, test_gt diff --git a/replay_benchmarks/configs/dataset/megamarket.yaml b/replay_benchmarks/configs/dataset/megamarket.yaml index 19a88a0f9..5e5b9352a 100644 --- a/replay_benchmarks/configs/dataset/megamarket.yaml +++ b/replay_benchmarks/configs/dataset/megamarket.yaml @@ -10,6 +10,6 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: 10 + max_num_test_interactions: Null min_users_per_item: 5 min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_1m.yaml b/replay_benchmarks/configs/dataset/movielens_1m.yaml index 0ca05c8d0..1ff66eff6 100755 --- a/replay_benchmarks/configs/dataset/movielens_1m.yaml +++ b/replay_benchmarks/configs/dataset/movielens_1m.yaml @@ -10,6 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: 10 + max_num_test_interactions: Null min_users_per_item: 5 - min_items_per_user: 3 \ No newline at end of file + min_items_per_user: 3 + min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_20m.yaml b/replay_benchmarks/configs/dataset/movielens_20m.yaml index 2527a6cfe..5bd5c991d 100755 --- a/replay_benchmarks/configs/dataset/movielens_20m.yaml +++ b/replay_benchmarks/configs/dataset/movielens_20m.yaml @@ -10,6 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: 10 + max_num_test_interactions: Null min_users_per_item: 5 - min_items_per_user: 3 \ No newline at end of file + min_items_per_user: 3 + min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/netflix.yaml b/replay_benchmarks/configs/dataset/netflix.yaml index f603a8731..382f89b1a 100755 --- a/replay_benchmarks/configs/dataset/netflix.yaml +++ b/replay_benchmarks/configs/dataset/netflix.yaml @@ -10,6 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: 10 + max_num_test_interactions: Null min_users_per_item: 5 - min_items_per_user: 3 \ No newline at end of file + min_items_per_user: 3 + min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/zvuk.yaml b/replay_benchmarks/configs/dataset/zvuk.yaml index 3fcb0aa6e..fcbe541cd 100755 --- a/replay_benchmarks/configs/dataset/zvuk.yaml +++ b/replay_benchmarks/configs/dataset/zvuk.yaml @@ -10,6 +10,6 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: 10 + max_num_test_interactions: Null min_users_per_item: 5 min_items_per_user: 3 \ No newline at end of file From be2aadffe34192b8c7018819178736702e7e197b Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 12:09:08 +0000 Subject: [PATCH 03/27] add sce loss to bert4rec and sasrec --- .../nn/sequential/bert4rec/lightning.py | 74 ++++++++++++++++++- .../models/nn/sequential/sasrec/lightning.py | 67 ++++++++++++++++- 2 files changed, 137 insertions(+), 4 deletions(-) diff --git a/replay/models/nn/sequential/bert4rec/lightning.py b/replay/models/nn/sequential/bert4rec/lightning.py index 8b6a575b2..4036efe47 100644 --- a/replay/models/nn/sequential/bert4rec/lightning.py +++ b/replay/models/nn/sequential/bert4rec/lightning.py @@ -4,8 +4,8 @@ import lightning import torch -from replay.data.nn import TensorMap, TensorSchema -from replay.models.nn.optimizer_utils import FatOptimizerFactory, LRSchedulerFactory, OptimizerFactory +from replay_dev.data.nn import TensorMap, TensorSchema +from replay_dev.models.nn.optimizer_utils import FatOptimizerFactory, LRSchedulerFactory, OptimizerFactory from .dataset import Bert4RecPredictionBatch, Bert4RecTrainingBatch, Bert4RecValidationBatch, _shift_features from .model import Bert4RecModel, CatFeatureEmbedding @@ -31,6 +31,10 @@ def __init__( loss_sample_count: Optional[int] = None, negative_sampling_strategy: str = "global_uniform", negatives_sharing: bool = False, + n_buckets: int = 100, + bucket_size_x: int = 100, + bucket_size_y: int = 100, + mix_x: bool = False, optimizer_factory: OptimizerFactory = FatOptimizerFactory(), lr_scheduler_factory: Optional[LRSchedulerFactory] = None, ): @@ -90,6 +94,10 @@ def __init__( self._lr_scheduler_factory = lr_scheduler_factory self._loss = self._create_loss() self._schema = tensor_schema + self._n_buckets = n_buckets + self._bucket_size_x = bucket_size_x + self._bucket_size_y = bucket_size_y + self._mix_x = mix_x assert negative_sampling_strategy in {"global_uniform", "inbatch"} item_count = tensor_schema.item_id_features.item().cardinality @@ -207,6 +215,8 @@ def _compute_loss(self, batch: Bert4RecTrainingBatch) -> torch.Tensor: loss_func = self._compute_loss_bce if self._loss_sample_count is None else self._compute_loss_bce_sampled elif self._loss_type == "CE": loss_func = self._compute_loss_ce if self._loss_sample_count is None else self._compute_loss_ce_sampled + elif self._loss_type == "SCE": + loss_func = self._compute_loss_scalable_ce else: msg = f"Not supported loss type: {self._loss_type}" raise ValueError(msg) @@ -325,6 +335,64 @@ def _compute_loss_ce_sampled( labels_flat = torch.zeros(positive_logits.size(0), dtype=torch.long, device=padding_mask.device) loss = self._loss(logits, labels_flat) return loss + + def _compute_loss_scalable_ce( + self, + feature_tensors: TensorMap, + positive_labels: torch.LongTensor, + padding_mask: torch.BoolTensor, + tokens_mask: torch.BoolTensor, + ) -> torch.Tensor: + + labels_mask = (~padding_mask) + tokens_mask + masked_tokens = ~labels_mask + + pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + emb = self._model.forward_step(feature_tensors, padding_mask, tokens_mask) + hd = torch.tensor(emb.shape[-1]) + + x = emb.view(-1, hd) + y = positive_labels.view(-1) + w = self.get_all_embeddings()["item_embedding"] + + correct_class_logits_ = (x * torch.index_select(w, dim=0, index=y)).sum(dim=1) # (bs,) + + with torch.no_grad(): + if self._mix_x: + omega = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(x.shape[0], self._n_buckets, device=x.device) + buckets = omega.T @ x + del omega + else: + buckets = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(self._n_buckets, hd, device=x.device) # (n_b, hd) + + with torch.no_grad(): + x_bucket = buckets @ x.T # (n_b, hd) x (hd, b) -> (n_b, b) + x_bucket[:, ~padding_mask.view(-1)] = float('-inf') + _, top_x_bucket = torch.topk(x_bucket, dim=1, k=self._bucket_size_x) # (n_b, bs_x) + del x_bucket + + y_bucket = buckets @ w.T # (n_b, hd) x (hd, n_cl) -> (n_b, n_cl) + + y_bucket[:, pad_token] = float('-inf') + _, top_y_bucket = torch.topk(y_bucket, dim=1, k=self._bucket_size_y) # (n_b, bs_y) + del y_bucket + + x_bucket = torch.gather(x, 0, top_x_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_x, hd) # (n_b, bs_x, hd) + y_bucket = torch.gather(w, 0, top_y_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_y, hd) # (n_b, bs_y, hd) + + wrong_class_logits = (x_bucket @ y_bucket.transpose(-1, -2)) # (n_b, bs_x, bs_y) + mask = torch.index_select(y, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] == top_y_bucket[:, None, :] # (n_b, bs_x, bs_y) + wrong_class_logits = wrong_class_logits.masked_fill(mask, float('-inf')) # (n_b, bs_x, bs_y) + correct_class_logits = torch.index_select(correct_class_logits_, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] # (n_b, bs_x, 1) + logits = torch.cat((wrong_class_logits, correct_class_logits), dim=2) # (n_b, bs_x, bs_y + 1) + + loss_ = torch.nn.functional.cross_entropy(logits.view(-1, logits.shape[-1]), (logits.shape[-1] - 1) * torch.ones(logits.shape[0] * logits.shape[1], dtype=torch.int64, device=logits.device), reduction='none') # (n_b * bs_x,) + loss = torch.zeros(x.shape[0], device=x.device, dtype=x.dtype) + loss.scatter_reduce_(0, top_x_bucket.view(-1), loss_, reduce='amax', include_self=False) + loss = loss[(loss != 0) & (masked_tokens).view(-1)] + loss = torch.mean(loss) + + return loss def _get_sampled_logits( self, @@ -412,7 +480,7 @@ def _create_loss(self) -> Union[torch.nn.BCEWithLogitsLoss, torch.nn.CrossEntrop if self._loss_type == "BCE": return torch.nn.BCEWithLogitsLoss(reduction="sum") - if self._loss_type == "CE": + if self._loss_type == "CE" or self._loss_type == "SCE": return torch.nn.CrossEntropyLoss() msg = "Not supported loss_type" diff --git a/replay/models/nn/sequential/sasrec/lightning.py b/replay/models/nn/sequential/sasrec/lightning.py index eb03693a5..ab927d3fa 100644 --- a/replay/models/nn/sequential/sasrec/lightning.py +++ b/replay/models/nn/sequential/sasrec/lightning.py @@ -33,6 +33,10 @@ def __init__( loss_sample_count: Optional[int] = None, negative_sampling_strategy: str = "global_uniform", negatives_sharing: bool = False, + n_buckets: int = 100, + bucket_size_x: int = 100, + bucket_size_y: int = 100, + mix_x: bool = False, optimizer_factory: OptimizerFactory = FatOptimizerFactory(), lr_scheduler_factory: Optional[LRSchedulerFactory] = None, ): @@ -87,6 +91,10 @@ def __init__( self._lr_scheduler_factory = lr_scheduler_factory self._loss = self._create_loss() self._schema = tensor_schema + self._n_buckets = n_buckets + self._bucket_size_x = bucket_size_x + self._bucket_size_y = bucket_size_y + self._mix_x = mix_x assert negative_sampling_strategy in {"global_uniform", "inbatch"} item_count = tensor_schema.item_id_features.item().cardinality @@ -190,6 +198,8 @@ def _compute_loss(self, batch: SasRecTrainingBatch) -> torch.Tensor: loss_func = self._compute_loss_bce if self._loss_sample_count is None else self._compute_loss_bce_sampled elif self._loss_type == "CE": loss_func = self._compute_loss_ce if self._loss_sample_count is None else self._compute_loss_ce_sampled + elif self._loss_type == "SCE": + loss_func = self._compute_loss_scalable_ce else: msg = f"Not supported loss type: {self._loss_type}" raise ValueError(msg) @@ -306,6 +316,61 @@ def _compute_loss_ce_sampled( labels_flat = torch.zeros(positive_logits.size(0), dtype=torch.long, device=padding_mask.device) loss = self._loss(logits, labels_flat) return loss + + def _compute_loss_scalable_ce( + self, + feature_tensors: TensorMap, + positive_labels: torch.LongTensor, + padding_mask: torch.BoolTensor, + target_padding_mask: torch.BoolTensor, + ) -> torch.Tensor: + + pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + emb = self._model.forward_step(feature_tensors, padding_mask)[target_padding_mask] + hd = torch.tensor(emb.shape[-1]) + + x = emb.view(-1, hd) + y = positive_labels[target_padding_mask].view(-1) + w = self.get_all_embeddings()["item_embedding"] + + correct_class_logits_ = (x * torch.index_select(w, dim=0, index=y)).sum(dim=1) # (bs,) + + with torch.no_grad(): + if self._mix_x: + omega = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(x.shape[0], self._n_buckets, device=x.device) + buckets = omega.T @ x + del omega + else: + buckets = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(self._n_buckets, hd, device=x.device) # (n_b, hd) + + with torch.no_grad(): + x_bucket = buckets @ x.T # (n_b, hd) x (hd, b) -> (n_b, b) + x_bucket[:, ~padding_mask[target_padding_mask].view(-1)] = float('-inf') + _, top_x_bucket = torch.topk(x_bucket, dim=1, k=self._bucket_size_x) # (n_b, bs_x) + del x_bucket + + y_bucket = buckets @ w.T # (n_b, hd) x (hd, n_cl) -> (n_b, n_cl) + + y_bucket[:, pad_token] = float('-inf') + _, top_y_bucket = torch.topk(y_bucket, dim=1, k=self._bucket_size_y) # (n_b, bs_y) + del y_bucket + + x_bucket = torch.gather(x, 0, top_x_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_x, hd) # (n_b, bs_x, hd) + y_bucket = torch.gather(w, 0, top_y_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_y, hd) # (n_b, bs_y, hd) + + wrong_class_logits = (x_bucket @ y_bucket.transpose(-1, -2)) # (n_b, bs_x, bs_y) + mask = torch.index_select(y, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] == top_y_bucket[:, None, :] # (n_b, bs_x, bs_y) + wrong_class_logits = wrong_class_logits.masked_fill(mask, float('-inf')) # (n_b, bs_x, bs_y) + correct_class_logits = torch.index_select(correct_class_logits_, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] # (n_b, bs_x, 1) + logits = torch.cat((wrong_class_logits, correct_class_logits), dim=2) # (n_b, bs_x, bs_y + 1) + + loss_ = torch.nn.functional.cross_entropy(logits.view(-1, logits.shape[-1]), (logits.shape[-1] - 1) * torch.ones(logits.shape[0] * logits.shape[1], dtype=torch.int64, device=logits.device), reduction='none') # (n_b * bs_x,) + loss = torch.zeros(x.shape[0], device=x.device, dtype=x.dtype) + loss.scatter_reduce_(0, top_x_bucket.view(-1), loss_, reduce='amax', include_self=False) + loss = loss[loss != 0] + loss = torch.mean(loss) + + return loss def _get_sampled_logits( self, @@ -391,7 +456,7 @@ def _create_loss(self) -> Union[torch.nn.BCEWithLogitsLoss, torch.nn.CrossEntrop if self._loss_type == "BCE": return torch.nn.BCEWithLogitsLoss(reduction="sum") - if self._loss_type == "CE": + if self._loss_type == "CE" or self._loss_type == "SCE": return torch.nn.CrossEntropyLoss() msg = "Not supported loss_type" From a87ce666f82ae84fb74eec3ef90739b3ae82cb82 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 12:47:40 +0000 Subject: [PATCH 04/27] debug bert4rec --- replay/models/nn/sequential/bert4rec/lightning.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/replay/models/nn/sequential/bert4rec/lightning.py b/replay/models/nn/sequential/bert4rec/lightning.py index 4036efe47..a6918e21a 100644 --- a/replay/models/nn/sequential/bert4rec/lightning.py +++ b/replay/models/nn/sequential/bert4rec/lightning.py @@ -4,8 +4,8 @@ import lightning import torch -from replay_dev.data.nn import TensorMap, TensorSchema -from replay_dev.models.nn.optimizer_utils import FatOptimizerFactory, LRSchedulerFactory, OptimizerFactory +from replay.data.nn import TensorMap, TensorSchema +from replay.models.nn.optimizer_utils import FatOptimizerFactory, LRSchedulerFactory, OptimizerFactory from .dataset import Bert4RecPredictionBatch, Bert4RecTrainingBatch, Bert4RecValidationBatch, _shift_features from .model import Bert4RecModel, CatFeatureEmbedding From 8a4a0cc53ff49d85ec966dea84363aade324f377 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 12:48:23 +0000 Subject: [PATCH 05/27] modify pipeline --- main.py | 4 +++- replay_benchmarks/base_runner.py | 2 +- replay_benchmarks/configs/config.yaml | 3 ++- replay_benchmarks/configs/model/bert4rec.yaml | 23 +++++++++--------- replay_benchmarks/configs/model/sasrec.yaml | 23 +++++++++--------- replay_benchmarks/train_runner.py | 24 ++++++++----------- replay_benchmarks/utils/conf.py | 14 +++++++++++ 7 files changed, 54 insertions(+), 39 deletions(-) diff --git a/main.py b/main.py index 4b292e891..38f3a1787 100755 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ import warnings import yaml -from replay_benchmarks.utils.conf import load_config +from replay_benchmarks.utils.conf import load_config, seed_everything from replay_benchmarks import TrainRunner, InferRunner logging.basicConfig(level=logging.INFO) @@ -18,6 +18,8 @@ def main() -> None: config = load_config(base_config_path, config_dir) logging.info("Configuration:\n%s", yaml.dump(config)) + seed_everything(config["env"]["SEED"]) + if config["mode"]["name"] == "train": runner = TrainRunner(config) elif config["mode"]["name"] == "infer": diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 771b2abce..7be581654 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -247,7 +247,7 @@ def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: def build_tensor_schema(self) -> TensorSchema: """Build TensorSchema for the sequential model.""" - embedding_dim = self.model_cfg["embedding_dim"] + embedding_dim = self.model_cfg["training_params"]["embedding_dim"] item_feature_name = "item_id_seq" return TensorSchema( diff --git a/replay_benchmarks/configs/config.yaml b/replay_benchmarks/configs/config.yaml index 352e61a30..54a08edc3 100755 --- a/replay_benchmarks/configs/config.yaml +++ b/replay_benchmarks/configs/config.yaml @@ -1,10 +1,11 @@ defaults: - - dataset: megamarket + - dataset: movielens_1m - model: sasrec - mode: train - acceleration: null env: + SEED: 42 CUDA_DEVICE_ORDER: "PCI_BUS_ID" OMP_NUM_THREADS: "4" CUDA_VISIBLE_DEVICES: "0" diff --git a/replay_benchmarks/configs/model/bert4rec.yaml b/replay_benchmarks/configs/model/bert4rec.yaml index 4dfb6d0bf..ed94af7be 100755 --- a/replay_benchmarks/configs/model/bert4rec.yaml +++ b/replay_benchmarks/configs/model/bert4rec.yaml @@ -2,14 +2,15 @@ model: name: bert4rec params: - block_count: 2 - head_count: 4 - max_sequence_length: 20 - hidden_size: 312 - learning_rate: 0.002 - dropout_rate: 0.15 - - batch_size: 512 - num_workers: 4 - max_epochs: 100 - embedding_dim: 312 \ No newline at end of file + model_params: + block_count: 2 + head_count: 4 + max_seq_len: 20 + hidden_size: 312 + dropout_rate: 0.15 + training_params: + embedding_dim: 312 + learning_rate: 0.002 + batch_size: 512 + num_workers: 4 + max_epochs: 100 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/sasrec.yaml b/replay_benchmarks/configs/model/sasrec.yaml index 93753a6b9..08f5daf64 100755 --- a/replay_benchmarks/configs/model/sasrec.yaml +++ b/replay_benchmarks/configs/model/sasrec.yaml @@ -2,14 +2,15 @@ model: name: sasrec params: - block_count: 4 - head_count: 2 - max_sequence_length: 100 - hidden_size: 384 - learning_rate: 0.001 - dropout_rate: 0.1 - - batch_size: 512 - num_workers: 4 - max_epochs: 100 - embedding_dim: 300 \ No newline at end of file + model_params: + block_count: 4 + head_count: 2 + max_seq_len: 100 + hidden_size: 384 + dropout_rate: 0.1 + training_params: + embedding_dim: 300 + learning_rate: 0.001 + batch_size: 32 + num_workers: 4 + max_epochs: 100 diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index 11f502f14..08c21856f 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -37,15 +37,11 @@ def initialize_model(self): """Initialize the model based on the configuration.""" model_config = { "tensor_schema": self.tensor_schema, - "block_count": self.model_cfg["block_count"], - "head_count": self.model_cfg["head_count"], - "max_seq_len": self.model_cfg["max_sequence_length"], - "hidden_size": self.model_cfg["hidden_size"], - "dropout_rate": self.model_cfg["dropout_rate"], "optimizer_factory": FatOptimizerFactory( - learning_rate=self.model_cfg["learning_rate"] + learning_rate=self.model_cfg["training_params"]["learning_rate"] ), } + model_config.update(self.model_cfg["model_params"]) if self.model_name.lower() == "sasrec": return SasRec(**model_config) @@ -76,25 +72,25 @@ def prepare_dataloaders( ), } - try: + if self.model_name.lower() in dataset_mapping: TrainingDataset, ValidationDataset, PredictionDataset = dataset_mapping[ self.model_name.lower() ] - except KeyError: + else: raise ValueError( f"Unsupported model type for dataloaders: {self.model_name}" ) common_params = { - "batch_size": self.model_cfg["batch_size"], - "num_workers": self.model_cfg["num_workers"], + "batch_size": self.model_cfg["training_params"]["batch_size"], + "num_workers": self.model_cfg["training_params"]["num_workers"], "pin_memory": True, } train_dataloader = DataLoader( dataset=TrainingDataset( seq_train_dataset, - max_sequence_length=self.model_cfg["max_sequence_length"], + max_sequence_length=self.model_cfg["model_params"]["max_seq_len"], ), shuffle=True, **common_params, @@ -104,14 +100,14 @@ def prepare_dataloaders( seq_validation_dataset, seq_validation_gt, seq_train_dataset, - max_sequence_length=self.model_cfg["max_sequence_length"], + max_sequence_length=self.model_cfg["model_params"]["max_seq_len"], ), **common_params, ) prediction_dataloader = DataLoader( dataset=PredictionDataset( seq_test_dataset, - max_sequence_length=self.model_cfg["max_sequence_length"], + max_sequence_length=self.model_cfg["model_params"]["max_seq_len"], ), **common_params, ) @@ -191,7 +187,7 @@ def run(self): ) trainer = L.Trainer( - max_epochs=self.model_cfg["max_epochs"], + max_epochs=self.model_cfg["training_params"]["max_epochs"], callbacks=[checkpoint_callback, validation_metrics_callback], logger=self.logger, ) diff --git a/replay_benchmarks/utils/conf.py b/replay_benchmarks/utils/conf.py index 5cf486e55..41982f094 100644 --- a/replay_benchmarks/utils/conf.py +++ b/replay_benchmarks/utils/conf.py @@ -1,12 +1,26 @@ import os import yaml +import random from typing import Dict +import torch +import numpy as np + def load_yaml(file_path: str) -> Dict: """Load a single YAML file.""" with open(file_path, "r") as f: return yaml.safe_load(f) + + +def seed_everything(seed: int) -> None: + """Fix seed everywhere.""" + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + np.random.seed(seed) + random.seed(seed) + + torch.backends.cudnn.deterministic=True def merge_dicts(base: Dict, update: Dict) -> Dict: From 40fc2985ff4fcfeaa4ee4f80b2899e56cb1a4c65 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 12:49:25 +0000 Subject: [PATCH 06/27] minor changes --- main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/main.py b/main.py index 38f3a1787..8b1ab835d 100755 --- a/main.py +++ b/main.py @@ -19,6 +19,7 @@ def main() -> None: logging.info("Configuration:\n%s", yaml.dump(config)) seed_everything(config["env"]["SEED"]) + logging.info("Fixing seed: ", config["env"]["SEED"]) if config["mode"]["name"] == "train": runner = TrainRunner(config) From 1026546a54142c2449679784d5e924b8342f41fd Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 13:39:53 +0000 Subject: [PATCH 07/27] debug seed logging --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 8b1ab835d..fa46a603e 100755 --- a/main.py +++ b/main.py @@ -19,7 +19,7 @@ def main() -> None: logging.info("Configuration:\n%s", yaml.dump(config)) seed_everything(config["env"]["SEED"]) - logging.info("Fixing seed: ", config["env"]["SEED"]) + logging.info(f"Fixing seed: {config['env']['SEED']}") if config["mode"]["name"] == "train": runner = TrainRunner(config) From ddd674d242d62595742f432c6b34d935366cf556 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 13:40:15 +0000 Subject: [PATCH 08/27] add configs --- .../configs/model/bert4rec_movielens_1m.yaml | 16 ++++++++++++++++ .../configs/model/bert4rec_zvuk.yaml | 16 ++++++++++++++++ .../configs/model/sasrec_movielens_1m.yaml | 17 +++++++++++++++++ .../configs/model/sasrec_zvuk.yaml | 18 ++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100755 replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec_zvuk.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_movielens_1m.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_zvuk.yaml diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml new file mode 100755 index 000000000..e4c485d0f --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml @@ -0,0 +1,16 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 4 + max_seq_len: 100 + hidden_size: 300 + dropout_rate: 0.5 + training_params: + embedding_dim: 300 + learning_rate: 0.001 + batch_size: 512 + num_workers: 4 + max_epochs: 30 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml new file mode 100755 index 000000000..ed94af7be --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml @@ -0,0 +1,16 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 4 + max_seq_len: 20 + hidden_size: 312 + dropout_rate: 0.15 + training_params: + embedding_dim: 312 + learning_rate: 0.002 + batch_size: 512 + num_workers: 4 + max_epochs: 100 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml new file mode 100755 index 000000000..f94d8d372 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml @@ -0,0 +1,17 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 200 + hidden_size: 300 + dropout_rate: 0.5 + loss_type: SCE + training_params: + embedding_dim: 300 + learning_rate: 0.001 + batch_size: 512 + num_workers: 4 + max_epochs: 30 diff --git a/replay_benchmarks/configs/model/sasrec_zvuk.yaml b/replay_benchmarks/configs/model/sasrec_zvuk.yaml new file mode 100755 index 000000000..d2d3de79e --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_zvuk.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 4 + max_seq_len: 400 + hidden_size: 128 + dropout_rate: 0.1 + loss_type: BCE + loss_sample_count: 500 + training_params: + embedding_dim: 300 + learning_rate: 0.001 + batch_size: 512 + num_workers: 4 + max_epochs: 10 From 089062ce3014d7c484f5c2bf37d39e99cf61d4c4 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 19:12:54 +0000 Subject: [PATCH 09/27] debug cold users/items --- replay_benchmarks/base_runner.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 7be581654..7cf2ad9f7 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -180,6 +180,9 @@ def _split_data( validation_events, validation_gt = splitter.split(test_events) train_events = validation_events + test_gt = test_gt[test_gt[self.item_column].isin(train_events[self.item_column])] + self.test_gt = test_gt[test_gt[self.user_column].isin(train_events[self.user_column])] + # Limit number of gt events in val and test only if max_num_test_interactions is not null max_test_interactions = self.dataset_cfg["preprocess"]["max_num_test_interactions"] logging.info( From e2cf8ef294cc09fce27bf3f5f04545d413660261 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 19:54:32 +0000 Subject: [PATCH 10/27] testing benchmark --- replay_benchmarks/benchmark_test.ipynb | 894 +++++++++++++++++++++++++ 1 file changed, 894 insertions(+) create mode 100644 replay_benchmarks/benchmark_test.ipynb diff --git a/replay_benchmarks/benchmark_test.ipynb b/replay_benchmarks/benchmark_test.ipynb new file mode 100644 index 000000000..26a7fccfb --- /dev/null +++ b/replay_benchmarks/benchmark_test.ipynb @@ -0,0 +1,894 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# changing core directory\n", + "import os, sys\n", + "dir2 = os.path.abspath('')\n", + "dir1 = os.path.dirname(dir2)\n", + "if not dir1 in sys.path:\n", + " sys.path.append(dir1)\n", + "os.chdir('..')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import os\n", + "import logging\n", + "import warnings\n", + "import yaml\n", + "\n", + "from replay_benchmarks.utils.conf import load_config, seed_everything\n", + "from replay_benchmarks import TrainRunner, InferRunner\n", + "\n", + "import logging\n", + "import os\n", + "from abc import ABC, abstractmethod\n", + "from typing import Tuple\n", + "\n", + "import pandas as pd\n", + "from rs_datasets import MovieLens, Netflix\n", + "\n", + "from replay.data import (\n", + " FeatureHint,\n", + " FeatureInfo,\n", + " FeatureSchema,\n", + " FeatureSource,\n", + " FeatureType,\n", + " Dataset,\n", + ")\n", + "from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter\n", + "from replay.splitters import TimeSplitter\n", + "from replay.utils import DataFrameLike\n", + "from replay.data.nn import (\n", + " SequenceTokenizer,\n", + " SequentialDataset,\n", + " TensorFeatureSource,\n", + " TensorSchema,\n", + " TensorFeatureInfo,\n", + ")\n", + "\n", + "from torch.utils.data import DataLoader\n", + "from replay.models.nn.sequential.sasrec import (\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionDataset,\n", + ")\n", + "from replay.models.nn.sequential.bert4rec import (\n", + " Bert4RecTrainingDataset,\n", + " Bert4RecValidationDataset,\n", + " Bert4RecPredictionDataset,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "config_dir = \"./replay_benchmarks/configs\"\n", + "base_config_path = os.path.join(config_dir, \"config.yaml\")\n", + "config = load_config(base_config_path, config_dir)\n", + "\n", + "seed_everything(config[\"env\"][\"SEED\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "config = config\n", + "model_name = config[\"model\"][\"name\"]\n", + "dataset_name = config[\"dataset\"][\"name\"]\n", + "dataset_cfg = config[\"dataset\"]\n", + "model_cfg = config[\"model\"][\"params\"]\n", + "mode = config[\"mode\"][\"name\"]\n", + "item_column = dataset_cfg[\"feature_schema\"][\"item_column\"]\n", + "user_column = dataset_cfg[\"feature_schema\"][\"query_column\"]\n", + "timestamp_column = dataset_cfg[\"feature_schema\"][\"timestamp_column\"]\n", + "tokenizer = None\n", + "interactions = None\n", + "user_features = None\n", + "item_features = None\n", + "\n", + "\n", + "os.environ[\"CUDA_DEVICE_ORDER\"] = config[\"env\"][\"CUDA_DEVICE_ORDER\"]\n", + "os.environ[\"OMP_NUM_THREADS\"] = config[\"env\"][\"OMP_NUM_THREADS\"]\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = config[\"env\"][\"CUDA_VISIBLE_DEVICES\"]\n", + "os.environ[\"KAGGLE_USERNAME\"] = \"recsysaccelerate\"\n", + "os.environ[\"KAGGLE_KEY\"] = \"6363e91b656fea576c39e4f55dcc1d00\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "embedding_dim = model_cfg[\"training_params\"][\"embedding_dim\"]\n", + "item_feature_name = \"item_id_seq\"\n", + "\n", + "tensor_schema = TensorSchema(\n", + " TensorFeatureInfo(\n", + " name=item_feature_name,\n", + " is_seq=True,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " feature_sources=[\n", + " TensorFeatureSource(\n", + " FeatureSource.INTERACTIONS,\n", + " item_column,\n", + " )\n", + " ],\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " embedding_dim=embedding_dim,\n", + " )\n", + ")\n", + "\n", + "tensor_schema" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "DATASET_MAPPINGS = {\n", + " \"zvuk\": {\"kaggle\": \"alexxl/zvuk-dataset\", \"file\": \"zvuk-interactions.parquet\"},\n", + " \"megamarket\": {\"kaggle\": \"alexxl/megamarket\", \"file\": \"megamarket.parquet\"},\n", + "}\n", + "SUPPORTED_RS_DATASETS = [\"movielens\", \"netflix\"]\n", + "\n", + "def _download_dataset(\n", + " data_path: str, dataset_name: str, interactions_file: str\n", + "):\n", + " \"\"\"Download dataset from Kaggle or rs_datasets.\"\"\"\n", + " if dataset_name in DATASET_MAPPINGS:\n", + " _download_kaggle_dataset(data_path, dataset_name, interactions_file)\n", + " elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS):\n", + " _download_rs_dataset(data_path, dataset_name, interactions_file)\n", + " else:\n", + " raise ValueError(f\"Unsupported dataset: {dataset_name}\")\n", + "\n", + "def _download_kaggle_dataset(\n", + " data_path: str, dataset_name: str, interactions_file: str\n", + ") -> None:\n", + " from kaggle.api.kaggle_api_extended import KaggleApi\n", + "\n", + " \"\"\"Download dataset from Kaggle.\"\"\"\n", + " kaggle_info = DATASET_MAPPINGS[dataset_name]\n", + " kaggle_dataset = kaggle_info[\"kaggle\"]\n", + " raw_data_file = os.path.join(data_path, kaggle_info[\"file\"])\n", + "\n", + " os.environ.setdefault(\"KAGGLE_USERNAME\", \"recsysaccelerate\")\n", + " os.environ.setdefault(\"KAGGLE_KEY\", \"6363e91b656fea576c39e4f55dcc1d00\")\n", + "\n", + " api = KaggleApi()\n", + " api.authenticate()\n", + "\n", + " api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True)\n", + " logging.info(f\"Dataset downloaded and extracted to {data_path}\")\n", + "\n", + " interactions = pd.read_parquet(raw_data_file)\n", + " interactions[timestamp_column] = interactions[\n", + " timestamp_column\n", + " ].astype(\"int64\")\n", + " if dataset_name == \"megamarket\":\n", + " interactions = interactions[interactions.event == 2] # take only purchase\n", + " interactions.to_parquet(interactions_file)\n", + "\n", + "def _download_rs_dataset(\n", + " data_path: str, dataset_name: str, interactions_file: str\n", + ") -> None:\n", + " \"\"\"Download dataset from rs_datasets.\"\"\"\n", + " if \"movielens\" in dataset_name:\n", + " version = dataset_name.split(\"_\")[1]\n", + " movielens = MovieLens(version=version, path=data_path)\n", + " interactions = movielens.ratings\n", + " interactions = interactions[interactions[dataset_cfg[\"feature_schema\"][\"rating_column\"]] > dataset_cfg[\"preprocess\"][\"min_rating\"]]\n", + " elif dataset_name == \"netflix\":\n", + " netflix = Netflix(path=data_path)\n", + " interactions = pd.concat([netflix.train, netflix.test]).fillna(5).reset_index(drop=True)\n", + " interactions = interactions[interactions[dataset_cfg[\"feature_schema\"][\"rating_column\"]] > dataset_cfg[\"preprocess\"][\"min_rating\"]]\n", + " interactions = interactions.sort_values(by=[user_column, timestamp_column])\n", + " interactions[timestamp_column] += interactions.groupby([user_column, timestamp_column]).cumcount()\n", + " else:\n", + " raise ValueError(f\"Unsupported dataset: {dataset_name}\")\n", + "\n", + " interactions[timestamp_column] = interactions[\n", + " timestamp_column\n", + " ].astype(\"int64\")\n", + " interactions.to_parquet(interactions_file)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
0111935978300760
3134084978300275
4123555978824291
6112875978302039
7128045978300719
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "0 1 1193 5 978300760\n", + "3 1 3408 4 978300275\n", + "4 1 2355 5 978824291\n", + "6 1 1287 5 978302039\n", + "7 1 2804 5 978300719" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset_name = dataset_cfg[\"name\"]\n", + "data_path = dataset_cfg[\"path\"]\n", + "interactions_file = os.path.join(data_path, \"interactions.parquet\")\n", + "\n", + "if not os.path.exists(interactions_file):\n", + " _download_dataset(data_path, dataset_name, interactions_file)\n", + "\n", + "interactions = pd.read_parquet(interactions_file)\n", + "interactions.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 1\n" + ] + }, + { + "data": { + "text/plain": [ + "(4, 5)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(interactions.groupby(user_column).size().min(), interactions.groupby(item_column).size().min())\n", + "\n", + "interactions = MinCountFilter(\n", + " num_entries=dataset_cfg[\"preprocess\"][\"min_users_per_item\"],\n", + " groupby_column=item_column,\n", + ").transform(interactions)\n", + "\n", + "interactions = MinCountFilter(\n", + " num_entries=dataset_cfg[\"preprocess\"][\"min_items_per_user\"],\n", + " groupby_column=user_column,\n", + ").transform(interactions)\n", + "\n", + "\n", + "interactions.groupby(user_column).size().min(), interactions.groupby(item_column).size().min()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.1" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset_cfg[\"preprocess\"][\"global_split_ratio\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'user_id'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_column" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Distribution of seq_len in validation:\n", + "count 448.000000\n", + "mean 24.837054\n", + "std 49.389768\n", + "min 1.000000\n", + "25% 2.000000\n", + "50% 6.500000\n", + "75% 26.000000\n", + "max 656.000000\n", + "Name: item_id, dtype: float64.\n", + "Distribution of seq_len in test:\n", + "count 999.000000\n", + "mean 43.796797\n", + "std 59.198925\n", + "min 1.000000\n", + "25% 7.000000\n", + "50% 23.000000\n", + "75% 57.000000\n", + "max 585.000000\n", + "Name: item_id, dtype: float64.\n" + ] + } + ], + "source": [ + "splitter = TimeSplitter(\n", + " time_threshold=dataset_cfg[\"preprocess\"][\"global_split_ratio\"],\n", + " drop_cold_users=True,\n", + " drop_cold_items=True,\n", + " item_column=item_column,\n", + " query_column=user_column,\n", + " timestamp_column=timestamp_column,\n", + ")\n", + "\n", + "# train_events, validation_events, validation_gt, test_events, test_gt = (\n", + "# _split_data(splitter, interactions)\n", + "# )\n", + "\n", + "test_events, test_gt = splitter.split(interactions)\n", + "validation_events, validation_gt = splitter.split(test_events)\n", + "train_events = validation_events\n", + "\n", + "test_gt = test_gt[test_gt[item_column].isin(train_events[item_column])]\n", + "test_gt = test_gt[test_gt[user_column].isin(train_events[user_column])]\n", + "\n", + "\n", + "# Limit number of gt events in val and test only if max_num_test_interactions is not null\n", + "max_test_interactions = dataset_cfg[\"preprocess\"][\"max_num_test_interactions\"]\n", + "print(f\"Distribution of seq_len in validation:\\n{validation_gt.groupby(user_column)[item_column].agg('count').describe()}.\")\n", + "print(f\"Distribution of seq_len in test:\\n{test_gt.groupby(user_column)[item_column].agg('count').describe()}.\")\n", + "if max_test_interactions is not None:\n", + " \n", + " validation_gt = NumInteractionsFilter(\n", + " num_interactions=max_test_interactions,\n", + " first=True,\n", + " query_column=user_column,\n", + " item_column=item_column,\n", + " timestamp_column=timestamp_column,\n", + " ).transform(validation_gt)\n", + " print(f\"Distribution of seq_len in validation after filtering:\\n{validation_gt.groupby(user_column)[item_column].agg('count').describe()}.\")\n", + "\n", + " test_gt = NumInteractionsFilter(\n", + " num_interactions=max_test_interactions,\n", + " first=True,\n", + " query_column=user_column,\n", + " item_column=item_column,\n", + " timestamp_column=timestamp_column,\n", + " ).transform(test_gt)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
14072590423484977939424
1407219048584977939543
1406609042605977939543
14066890428665977939573
14069690411934977939573
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "140725 904 2348 4 977939424\n", + "140721 904 858 4 977939543\n", + "140660 904 260 5 977939543\n", + "140668 904 2866 5 977939573\n", + "140696 904 1193 4 977939573" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test_gt.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_events['timestamp'].max() <= validation_events['timestamp'].min()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('timestamp', 'item_id', 'user_id')" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timestamp_column, item_column, user_column" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "def test_splitting(events, gt, name=''):\n", + " if events[timestamp_column].max() > gt[timestamp_column].min():\n", + " print(\"Problem with time points in\", name)\n", + " if len(set(gt[user_column].unique().tolist()) - set(events[user_column].unique().tolist())) > 0:\n", + " print(\"Problem with cold users in\", name)\n", + " if len(set(gt[item_column].unique().tolist()) - set(events[item_column].unique().tolist())) > 0:\n", + " print(\"Problem with cold items in\", name)\n", + "\n", + "\n", + "test_splitting(train_events, test_gt, \"train events, test gt\")\n", + "test_splitting(train_events, validation_gt, \"train events, valid gt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "set()" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set([1, 2, 3]) - set({1, 2, 3, 4})" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_feature_schema(is_ground_truth: bool) -> FeatureSchema:\n", + " \"\"\"Prepare the feature schema based on whether ground truth is needed.\"\"\"\n", + " base_features = FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=user_column,\n", + " feature_hint=FeatureHint.QUERY_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " FeatureInfo(\n", + " column=item_column,\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " ]\n", + " )\n", + " if is_ground_truth:\n", + " return base_features\n", + "\n", + " return base_features + FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=timestamp_column,\n", + " feature_type=FeatureType.NUMERICAL,\n", + " feature_hint=FeatureHint.TIMESTAMP,\n", + " ),\n", + " ]\n", + " )\n", + "\n", + "feature_schema = prepare_feature_schema(is_ground_truth=False)\n", + "ground_truth_schema = prepare_feature_schema(is_ground_truth=True)\n", + "\n", + "train_dataset = Dataset(\n", + " feature_schema=feature_schema,\n", + " interactions=train_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "validation_dataset = Dataset(\n", + " feature_schema=feature_schema,\n", + " interactions=validation_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "validation_gt_dataset = Dataset(\n", + " feature_schema=ground_truth_schema,\n", + " interactions=validation_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "test_dataset = Dataset(\n", + " feature_schema=feature_schema,\n", + " interactions=test_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "test_gt_dataset = Dataset(\n", + " feature_schema=ground_truth_schema,\n", + " interactions=test_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/root/RePlay-Accelerated/replay/data/nn/sequence_tokenizer.py:396: UserWarning: The specified cardinality of item_id_seq will be replaced by item_id from Dataset\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "tokenizer = SequenceTokenizer(\n", + " tensor_schema, allow_collect_to_master=True, handle_unknown_rule=\"drop\"\n", + ")\n", + "tokenizer.fit(train_dataset)\n", + "\n", + "seq_train_dataset = tokenizer.transform(train_dataset)\n", + "# seq_validation_dataset, seq_validation_gt = _prepare_sequential_validation(\n", + "# validation_dataset, validation_gt\n", + "# )\n", + "\n", + "seq_validation_dataset = tokenizer.transform(validation_dataset)\n", + "seq_validation_gt = tokenizer.transform(\n", + " validation_gt_dataset, [tensor_schema.item_id_feature_name]\n", + ")\n", + "\n", + "seq_validation_dataset, seq_validation_gt = SequentialDataset.keep_common_query_ids(\n", + " seq_validation_dataset, seq_validation_gt\n", + ")\n", + "\n", + "\n", + "test_query_ids = test_gt_dataset.query_ids\n", + "test_query_ids_np = tokenizer.query_id_encoder.transform(test_query_ids)[\n", + " user_column\n", + "].values\n", + "seq_test_dataset = tokenizer.transform(test_dataset).filter_by_query_id(\n", + " test_query_ids_np\n", + ")\n", + "# seq_test_dataset = self._prepare_sequential_test(test_dataset, test_gt)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "dataset_mapping = {\n", + " \"sasrec\": (\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionDataset,\n", + " ),\n", + " \"bert4rec\": (\n", + " Bert4RecTrainingDataset,\n", + " Bert4RecValidationDataset,\n", + " Bert4RecPredictionDataset,\n", + " ),\n", + "}\n", + "\n", + "if model_name.lower() in dataset_mapping:\n", + " TrainingDataset, ValidationDataset, PredictionDataset = dataset_mapping[\n", + " model_name.lower()\n", + " ]\n", + "else:\n", + " raise ValueError(\n", + " f\"Unsupported model type for dataloaders: {model_name}\"\n", + " )\n", + "\n", + "common_params = {\n", + " \"batch_size\": model_cfg[\"training_params\"][\"batch_size\"],\n", + " \"num_workers\": model_cfg[\"training_params\"][\"num_workers\"],\n", + " \"pin_memory\": True,\n", + "}\n", + "\n", + "train_dataloader = DataLoader(\n", + " dataset=TrainingDataset(\n", + " seq_train_dataset,\n", + " max_sequence_length=model_cfg[\"model_params\"][\"max_seq_len\"],\n", + " ),\n", + " shuffle=True,\n", + " **common_params,\n", + ")\n", + "val_dataloader = DataLoader(\n", + " dataset=ValidationDataset(\n", + " seq_validation_dataset,\n", + " seq_validation_gt,\n", + " seq_train_dataset,\n", + " max_sequence_length=model_cfg[\"model_params\"][\"max_seq_len\"],\n", + " ),\n", + " **common_params,\n", + ")\n", + "prediction_dataloader = DataLoader(\n", + " dataset=PredictionDataset(\n", + " seq_test_dataset,\n", + " max_sequence_length=model_cfg[\"model_params\"][\"max_seq_len\"],\n", + " ),\n", + " **common_params,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 08a32110025015afa2f50deef66cea3cf3245fb6 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 20:19:06 +0000 Subject: [PATCH 11/27] add notebook with different metrics --- .../09_sasrec_example_like_pipeline.ipynb | 4891 +++++++++++++++++ 1 file changed, 4891 insertions(+) create mode 100644 replay_benchmarks/09_sasrec_example_like_pipeline.ipynb diff --git a/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb new file mode 100644 index 000000000..97189977b --- /dev/null +++ b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb @@ -0,0 +1,4891 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example of the SASRec training and inference stages\n", + "Note that all the given examples can be run without using PySpark, using only Pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# changing core directory\n", + "import os, sys\n", + "dir2 = os.path.abspath('')\n", + "dir1 = os.path.dirname(dir2)\n", + "if not dir1 in sys.path:\n", + " sys.path.append(dir1)\n", + "os.chdir('..')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import lightning as L\n", + "from lightning.pytorch.loggers import CSVLogger\n", + "from lightning.pytorch.callbacks import ModelCheckpoint\n", + "from torch.utils.data import DataLoader\n", + "import torch\n", + "\n", + "from replay.preprocessing.filters import MinCountFilter\n", + "from replay.metrics import OfflineMetrics, Recall, Precision, MAP, NDCG, HitRate, MRR\n", + "from replay.metrics.torch_metrics_builder import metrics_to_df\n", + "from replay.splitters import LastNSplitter, TimeSplitter\n", + "from replay.utils import get_spark_session\n", + "from replay.data import (\n", + " FeatureHint,\n", + " FeatureInfo,\n", + " FeatureSchema,\n", + " FeatureSource,\n", + " FeatureType,\n", + " Dataset,\n", + ")\n", + "from replay.models.nn.optimizer_utils import FatOptimizerFactory\n", + "from replay.models.nn.sequential.callbacks import (\n", + " ValidationMetricsCallback,\n", + " SparkPredictionCallback,\n", + " PandasPredictionCallback, \n", + " TorchPredictionCallback,\n", + " QueryEmbeddingsPredictionCallback\n", + ")\n", + "from replay.models.nn.sequential.postprocessors import RemoveSeenItems\n", + "from replay.data.nn import (\n", + " SequenceTokenizer,\n", + " SequentialDataset,\n", + " TensorFeatureSource,\n", + " TensorSchema,\n", + " TensorFeatureInfo\n", + ")\n", + "from replay.models.nn.sequential import SasRec\n", + "from replay.models.nn.sequential.sasrec import (\n", + " SasRecPredictionDataset,\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionBatch,\n", + " SasRecModel\n", + ")\n", + "\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "\n", + "SEED = 42\n", + "\n", + "torch.manual_seed(SEED)\n", + "torch.cuda.manual_seed(SEED)\n", + "np.random.seed(SEED)\n", + "random.seed(SEED)\n", + "\n", + "torch.backends.cudnn.deterministic=True" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting a spark session" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.11/site-packages/pyspark/bin/load-spark-env.sh: line 68: ps: command not found\n", + "Setting default log level to \"WARN\".\n", + "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", + "24/11/27 20:06:54 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", + "24/11/27 20:06:54 WARN SparkConf: Note that spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone/kubernetes and LOCAL_DIRS in YARN).\n", + "24/11/27 20:06:54 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n", + "24/11/27 20:06:54 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.\n", + "24/11/27 20:06:54 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.\n" + ] + } + ], + "source": [ + "spark_session = get_spark_session()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare data\n", + "### Load raw movielens-1M interactions, item features and user features.\n", + "In the current implementation, the SASRec does not take into account the features of items or users. They are only used to get a complete list of users and items." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: rs-datasets in /usr/local/lib/python3.11/site-packages (0.5.1)\n", + "Requirement already satisfied: datatable in /usr/local/lib/python3.11/site-packages (from rs-datasets) (1.1.0)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.11/site-packages (from rs-datasets) (2.0.3)\n", + "Requirement already satisfied: gdown in /usr/local/lib/python3.11/site-packages (from rs-datasets) (5.2.0)\n", + "Requirement already satisfied: pyarrow in /usr/local/lib/python3.11/site-packages (from rs-datasets) (16.0.0)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.11/site-packages (from rs-datasets) (4.66.4)\n", + "Requirement already satisfied: xlrd in /usr/local/lib/python3.11/site-packages (from rs-datasets) (2.0.1)\n", + "Requirement already satisfied: kaggle in /usr/local/lib/python3.11/site-packages (from rs-datasets) (1.6.17)\n", + "Requirement already satisfied: py7zr in /usr/local/lib/python3.11/site-packages (from rs-datasets) (0.22.0)\n", + "Requirement already satisfied: openpyxl in /usr/local/lib/python3.11/site-packages (from rs-datasets) (3.1.5)\n", + "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/site-packages (from gdown->rs-datasets) (4.12.3)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.11/site-packages (from gdown->rs-datasets) (3.14.0)\n", + "Requirement already satisfied: requests[socks] in /usr/local/lib/python3.11/site-packages (from gdown->rs-datasets) (2.32.3)\n", + "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (1.16.0)\n", + "Requirement already satisfied: certifi>=2023.7.22 in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (2024.6.2)\n", + "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (2.9.0.post0)\n", + "Requirement already satisfied: python-slugify in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (8.0.4)\n", + "Requirement already satisfied: urllib3 in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (2.2.1)\n", + "Requirement already satisfied: bleach in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (6.1.0)\n", + "Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.11/site-packages (from openpyxl->rs-datasets) (2.0.0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/site-packages (from pandas->rs-datasets) (2024.1)\n", + "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.11/site-packages (from pandas->rs-datasets) (2024.1)\n", + "Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.11/site-packages (from pandas->rs-datasets) (1.24.4)\n", + "Requirement already satisfied: texttable in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.7.0)\n", + "Requirement already satisfied: pycryptodomex>=3.16.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (3.21.0)\n", + "Requirement already satisfied: pyzstd>=0.15.9 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (0.16.2)\n", + "Requirement already satisfied: pyppmd<1.2.0,>=1.1.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.1.0)\n", + "Requirement already satisfied: pybcj<1.1.0,>=1.0.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.0.2)\n", + "Requirement already satisfied: multivolumefile>=0.2.3 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (0.2.3)\n", + "Requirement already satisfied: inflate64<1.1.0,>=1.0.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.0.0)\n", + "Requirement already satisfied: brotli>=1.1.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.1.0)\n", + "Requirement already satisfied: psutil in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (6.0.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/site-packages (from beautifulsoup4->gdown->rs-datasets) (2.5)\n", + "Requirement already satisfied: webencodings in /usr/local/lib/python3.11/site-packages (from bleach->kaggle->rs-datasets) (0.5.1)\n", + "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.11/site-packages (from python-slugify->kaggle->rs-datasets) (1.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests[socks]->gdown->rs-datasets) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests[socks]->gdown->rs-datasets) (3.7)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.11/site-packages (from requests[socks]->gdown->rs-datasets) (1.7.1)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n", + "\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install rs-datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from rs_datasets import MovieLens" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "movielens = MovieLens(\"1m\")\n", + "interactions = movielens.ratings\n", + "user_features = movielens.users\n", + "item_features = movielens.items" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
0111935978300760
116613978302109
219143978301968
3134084978300275
4123555978824291
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "0 1 1193 5 978300760\n", + "1 1 661 3 978302109\n", + "2 1 914 3 978301968\n", + "3 1 3408 4 978300275\n", + "4 1 2355 5 978824291" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idgenderageoccupationzip_code
01F11048067
12M561670072
23M251555117
34M45702460
45M252055455
\n", + "
" + ], + "text/plain": [ + " user_id gender age occupation zip_code\n", + "0 1 F 1 10 48067\n", + "1 2 M 56 16 70072\n", + "2 3 M 25 15 55117\n", + "3 4 M 45 7 02460\n", + "4 5 M 25 20 55455" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_features.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
item_idtitlegenres
01Toy Story (1995)Animation|Children's|Comedy
12Jumanji (1995)Adventure|Children's|Fantasy
23Grumpier Old Men (1995)Comedy|Romance
34Waiting to Exhale (1995)Comedy|Drama
45Father of the Bride Part II (1995)Comedy
\n", + "
" + ], + "text/plain": [ + " item_id title genres\n", + "0 1 Toy Story (1995) Animation|Children's|Comedy\n", + "1 2 Jumanji (1995) Adventure|Children's|Fantasy\n", + "2 3 Grumpier Old Men (1995) Comedy|Romance\n", + "3 4 Waiting to Exhale (1995) Comedy|Drama\n", + "4 5 Father of the Bride Part II (1995) Comedy" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item_features.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "interactions = MinCountFilter(\n", + " num_entries=5,\n", + " groupby_column='item_id',\n", + ").transform(interactions)\n", + "\n", + "interactions = MinCountFilter(\n", + " num_entries=3,\n", + " groupby_column='user_id',\n", + ").transform(interactions)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Removing duplicates in the timestamp column without changing the original items order where timestamp is the same" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
1000138604085840
999873604059351
10001536040238442
10001926040201953
10000076040196144
...............
825793495823991446
825438495814075447
825724495832644448
825731495826343449
825603495819244450
\n", + "

999611 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "1000138 6040 858 4 0\n", + "999873 6040 593 5 1\n", + "1000153 6040 2384 4 2\n", + "1000192 6040 2019 5 3\n", + "1000007 6040 1961 4 4\n", + "... ... ... ... ...\n", + "825793 4958 2399 1 446\n", + "825438 4958 1407 5 447\n", + "825724 4958 3264 4 448\n", + "825731 4958 2634 3 449\n", + "825603 4958 1924 4 450\n", + "\n", + "[999611 rows x 4 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions[\"timestamp\"] = interactions[\"timestamp\"].astype(\"int64\")\n", + "interactions = interactions.sort_values(by=\"timestamp\")\n", + "interactions[\"timestamp\"] = interactions.groupby(\"user_id\").cumcount()\n", + "interactions" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Split interactions into the train, validation and test datasets using LastNSplitter" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# splitter = LastNSplitter(\n", + "# N=1,\n", + "# divide_column=\"user_id\",\n", + "# query_column=\"user_id\",\n", + "# strategy=\"interactions\",\n", + "# )\n", + "\n", + "# raw_test_events, raw_test_gt = splitter.split(interactions)\n", + "# raw_validation_events, raw_validation_gt = splitter.split(raw_test_events)\n", + "# raw_train_events = raw_validation_events\n", + "\n", + "\n", + "splitter = TimeSplitter(\n", + " time_threshold=0.1,\n", + " drop_cold_users=True,\n", + " drop_cold_items=True,\n", + " item_column='item_id',\n", + " query_column='user_id',\n", + " timestamp_column='timestamp',\n", + ")\n", + "\n", + "# train_events, validation_events, validation_gt, test_events, test_gt = (\n", + "# _split_data(splitter, interactions)\n", + "# )\n", + "\n", + "raw_test_events, raw_test_gt = splitter.split(interactions)\n", + "raw_validation_events, raw_validation_gt = splitter.split(raw_test_events)\n", + "raw_train_events = raw_validation_events\n", + "\n", + "raw_test_gt = raw_test_gt[raw_test_gt['item_id'].isin(raw_train_events['item_id'])]\n", + "raw_test_gt = raw_test_gt[raw_test_gt['user_id'].isin(raw_train_events['user_id'])]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare FeatureSchema required to create Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_feature_schema(is_ground_truth: bool) -> FeatureSchema:\n", + " base_features = FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=\"user_id\",\n", + " feature_hint=FeatureHint.QUERY_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " FeatureInfo(\n", + " column=\"item_id\",\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " ]\n", + " )\n", + " if is_ground_truth:\n", + " return base_features\n", + "\n", + " all_features = base_features + FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=\"timestamp\",\n", + " feature_type=FeatureType.NUMERICAL,\n", + " feature_hint=FeatureHint.TIMESTAMP,\n", + " ),\n", + " ]\n", + " )\n", + " return all_features" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Dataset for the training stage" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "train_dataset = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=False),\n", + " interactions=raw_train_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Datasets (events and ground_truth) for the validation stage" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "validation_dataset = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=False),\n", + " interactions=raw_validation_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "validation_gt = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=True),\n", + " interactions=raw_validation_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Datasets (events and ground_truth) for the testing stage" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "test_dataset = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=False),\n", + " interactions=raw_test_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "test_gt = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=True),\n", + " interactions=raw_test_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create the tensor schema\n", + "A schema shows the correspondence of columns from the source dataset with the internal representation of tensors inside the model" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "ITEM_FEATURE_NAME = \"item_id_seq\"\n", + "\n", + "tensor_schema = TensorSchema(\n", + " TensorFeatureInfo(\n", + " name=ITEM_FEATURE_NAME,\n", + " is_seq=True,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " feature_sources=[TensorFeatureSource(FeatureSource.INTERACTIONS, train_dataset.feature_schema.item_id_column)],\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " )\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create sequential datasets using SequenceTokenizer\n", + "The SequentialDataset internally store data in the form of sequences of items sorted by increasing interaction time (timestamp). A SequenceTokenizer is used to convert to this format. In addition, the SequenceTokenizer encodes all categorical columns from the source dataset and stores mapping inside itself.\n", + "SequentialDataset.keep_common_query_ids is used to leave only sequences from the same users" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "tokenizer = SequenceTokenizer(tensor_schema, allow_collect_to_master=True)\n", + "tokenizer.fit(train_dataset)\n", + "\n", + "sequential_train_dataset = tokenizer.transform(train_dataset)\n", + "\n", + "sequential_validation_dataset = tokenizer.transform(validation_dataset)\n", + "sequential_validation_gt = tokenizer.transform(validation_gt, [tensor_schema.item_id_feature_name])\n", + "\n", + "sequential_validation_dataset, sequential_validation_gt = SequentialDataset.keep_common_query_ids(\n", + " sequential_validation_dataset, sequential_validation_gt\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "test_query_ids = test_gt.query_ids\n", + "test_query_ids_np = tokenizer.query_id_encoder.transform(test_query_ids)[\"user_id\"].values\n", + "sequential_test_dataset = tokenizer.transform(test_dataset).filter_by_query_id(test_query_ids_np)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can get the user and item mapping and inverse mapping as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'user_id': {1: 0, 2: 1, 3: 2, 4: 3, 5: 4, 6: 5, 7: 6, 8: 7, 9: 8, 10: 9, 11: 10, 12: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16, 18: 17, 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24, 26: 25, 27: 26, 28: 27, 29: 28, 30: 29, 31: 30, 32: 31, 33: 32, 34: 33, 35: 34, 36: 35, 37: 36, 38: 37, 39: 38, 40: 39, 41: 40, 42: 41, 43: 42, 44: 43, 45: 44, 46: 45, 47: 46, 48: 47, 49: 48, 50: 49, 51: 50, 52: 51, 53: 52, 54: 53, 55: 54, 56: 55, 57: 56, 58: 57, 59: 58, 60: 59, 61: 60, 62: 61, 63: 62, 64: 63, 65: 64, 66: 65, 67: 66, 68: 67, 69: 68, 70: 69, 71: 70, 72: 71, 73: 72, 74: 73, 75: 74, 76: 75, 77: 76, 78: 77, 79: 78, 80: 79, 81: 80, 82: 81, 83: 82, 84: 83, 85: 84, 86: 85, 87: 86, 88: 87, 89: 88, 90: 89, 91: 90, 92: 91, 93: 92, 94: 93, 95: 94, 96: 95, 97: 96, 98: 97, 99: 98, 100: 99, 101: 100, 102: 101, 103: 102, 104: 103, 105: 104, 106: 105, 107: 106, 108: 107, 109: 108, 110: 109, 111: 110, 112: 111, 113: 112, 114: 113, 115: 114, 116: 115, 117: 116, 118: 117, 119: 118, 120: 119, 121: 120, 122: 121, 123: 122, 124: 123, 125: 124, 126: 125, 127: 126, 128: 127, 129: 128, 130: 129, 131: 130, 132: 131, 133: 132, 134: 133, 135: 134, 136: 135, 137: 136, 138: 137, 139: 138, 140: 139, 141: 140, 142: 141, 143: 142, 144: 143, 145: 144, 146: 145, 147: 146, 148: 147, 149: 148, 150: 149, 151: 150, 152: 151, 153: 152, 154: 153, 155: 154, 156: 155, 157: 156, 158: 157, 159: 158, 160: 159, 161: 160, 162: 161, 163: 162, 164: 163, 165: 164, 166: 165, 167: 166, 168: 167, 169: 168, 170: 169, 171: 170, 172: 171, 173: 172, 174: 173, 175: 174, 176: 175, 177: 176, 178: 177, 179: 178, 180: 179, 181: 180, 182: 181, 183: 182, 184: 183, 185: 184, 186: 185, 187: 186, 188: 187, 189: 188, 190: 189, 191: 190, 192: 191, 193: 192, 194: 193, 195: 194, 196: 195, 197: 196, 198: 197, 199: 198, 200: 199, 201: 200, 202: 201, 203: 202, 204: 203, 205: 204, 206: 205, 207: 206, 208: 207, 209: 208, 210: 209, 211: 210, 212: 211, 213: 212, 214: 213, 215: 214, 216: 215, 217: 216, 218: 217, 219: 218, 220: 219, 221: 220, 222: 221, 223: 222, 224: 223, 225: 224, 226: 225, 227: 226, 228: 227, 229: 228, 230: 229, 231: 230, 232: 231, 233: 232, 234: 233, 235: 234, 236: 235, 237: 236, 238: 237, 239: 238, 240: 239, 241: 240, 242: 241, 243: 242, 244: 243, 245: 244, 246: 245, 247: 246, 248: 247, 249: 248, 250: 249, 251: 250, 252: 251, 253: 252, 254: 253, 255: 254, 256: 255, 257: 256, 258: 257, 259: 258, 260: 259, 261: 260, 262: 261, 263: 262, 264: 263, 265: 264, 266: 265, 267: 266, 268: 267, 269: 268, 270: 269, 271: 270, 272: 271, 273: 272, 274: 273, 275: 274, 276: 275, 277: 276, 278: 277, 279: 278, 280: 279, 281: 280, 282: 281, 283: 282, 284: 283, 285: 284, 286: 285, 287: 286, 288: 287, 289: 288, 290: 289, 291: 290, 292: 291, 293: 292, 294: 293, 295: 294, 296: 295, 297: 296, 298: 297, 299: 298, 300: 299, 301: 300, 302: 301, 303: 302, 304: 303, 305: 304, 306: 305, 307: 306, 308: 307, 309: 308, 310: 309, 311: 310, 312: 311, 313: 312, 314: 313, 315: 314, 316: 315, 317: 316, 318: 317, 319: 318, 320: 319, 321: 320, 322: 321, 323: 322, 324: 323, 325: 324, 326: 325, 327: 326, 328: 327, 329: 328, 330: 329, 331: 330, 332: 331, 333: 332, 334: 333, 335: 334, 336: 335, 337: 336, 338: 337, 339: 338, 340: 339, 341: 340, 342: 341, 343: 342, 344: 343, 345: 344, 346: 345, 347: 346, 348: 347, 349: 348, 350: 349, 351: 350, 352: 351, 353: 352, 354: 353, 355: 354, 356: 355, 357: 356, 358: 357, 359: 358, 360: 359, 361: 360, 362: 361, 363: 362, 364: 363, 365: 364, 366: 365, 367: 366, 368: 367, 369: 368, 370: 369, 371: 370, 372: 371, 373: 372, 374: 373, 375: 374, 376: 375, 377: 376, 378: 377, 379: 378, 380: 379, 381: 380, 382: 381, 383: 382, 384: 383, 385: 384, 386: 385, 387: 386, 388: 387, 389: 388, 390: 389, 391: 390, 392: 391, 393: 392, 394: 393, 395: 394, 396: 395, 397: 396, 398: 397, 399: 398, 400: 399, 401: 400, 402: 401, 403: 402, 404: 403, 405: 404, 406: 405, 407: 406, 408: 407, 409: 408, 410: 409, 411: 410, 412: 411, 413: 412, 414: 413, 415: 414, 416: 415, 417: 416, 418: 417, 419: 418, 420: 419, 421: 420, 422: 421, 423: 422, 424: 423, 425: 424, 426: 425, 427: 426, 428: 427, 429: 428, 430: 429, 431: 430, 432: 431, 433: 432, 434: 433, 435: 434, 436: 435, 437: 436, 438: 437, 439: 438, 440: 439, 441: 440, 442: 441, 443: 442, 444: 443, 445: 444, 446: 445, 447: 446, 448: 447, 449: 448, 450: 449, 451: 450, 452: 451, 453: 452, 454: 453, 455: 454, 456: 455, 457: 456, 458: 457, 459: 458, 460: 459, 461: 460, 462: 461, 463: 462, 464: 463, 465: 464, 466: 465, 467: 466, 468: 467, 469: 468, 470: 469, 471: 470, 472: 471, 473: 472, 474: 473, 475: 474, 476: 475, 477: 476, 478: 477, 479: 478, 480: 479, 481: 480, 482: 481, 483: 482, 484: 483, 485: 484, 486: 485, 487: 486, 488: 487, 489: 488, 490: 489, 491: 490, 492: 491, 493: 492, 494: 493, 495: 494, 496: 495, 497: 496, 498: 497, 499: 498, 500: 499, 501: 500, 502: 501, 503: 502, 504: 503, 505: 504, 506: 505, 507: 506, 508: 507, 509: 508, 510: 509, 511: 510, 512: 511, 513: 512, 514: 513, 515: 514, 516: 515, 517: 516, 518: 517, 519: 518, 520: 519, 521: 520, 522: 521, 523: 522, 524: 523, 525: 524, 526: 525, 527: 526, 528: 527, 529: 528, 530: 529, 531: 530, 532: 531, 533: 532, 534: 533, 535: 534, 536: 535, 537: 536, 538: 537, 539: 538, 540: 539, 541: 540, 542: 541, 543: 542, 544: 543, 545: 544, 546: 545, 547: 546, 548: 547, 549: 548, 550: 549, 551: 550, 552: 551, 553: 552, 554: 553, 555: 554, 556: 555, 557: 556, 558: 557, 559: 558, 560: 559, 561: 560, 562: 561, 563: 562, 564: 563, 565: 564, 566: 565, 567: 566, 568: 567, 569: 568, 570: 569, 571: 570, 572: 571, 573: 572, 574: 573, 575: 574, 576: 575, 577: 576, 578: 577, 579: 578, 580: 579, 581: 580, 582: 581, 583: 582, 584: 583, 585: 584, 586: 585, 587: 586, 588: 587, 589: 588, 590: 589, 591: 590, 592: 591, 593: 592, 594: 593, 595: 594, 596: 595, 597: 596, 598: 597, 599: 598, 600: 599, 601: 600, 602: 601, 603: 602, 604: 603, 605: 604, 606: 605, 607: 606, 608: 607, 609: 608, 610: 609, 611: 610, 612: 611, 613: 612, 614: 613, 615: 614, 616: 615, 617: 616, 618: 617, 619: 618, 620: 619, 621: 620, 622: 621, 623: 622, 624: 623, 625: 624, 626: 625, 627: 626, 628: 627, 629: 628, 630: 629, 631: 630, 632: 631, 633: 632, 634: 633, 635: 634, 636: 635, 637: 636, 638: 637, 639: 638, 640: 639, 641: 640, 642: 641, 643: 642, 644: 643, 645: 644, 646: 645, 647: 646, 648: 647, 649: 648, 650: 649, 651: 650, 652: 651, 653: 652, 654: 653, 655: 654, 656: 655, 657: 656, 658: 657, 659: 658, 660: 659, 661: 660, 662: 661, 663: 662, 664: 663, 665: 664, 666: 665, 667: 666, 668: 667, 669: 668, 670: 669, 671: 670, 672: 671, 673: 672, 674: 673, 675: 674, 676: 675, 677: 676, 678: 677, 679: 678, 680: 679, 681: 680, 682: 681, 683: 682, 684: 683, 685: 684, 686: 685, 687: 686, 688: 687, 689: 688, 690: 689, 691: 690, 692: 691, 693: 692, 694: 693, 695: 694, 696: 695, 697: 696, 698: 697, 699: 698, 700: 699, 701: 700, 702: 701, 703: 702, 704: 703, 705: 704, 706: 705, 707: 706, 708: 707, 709: 708, 710: 709, 711: 710, 712: 711, 713: 712, 714: 713, 715: 714, 716: 715, 717: 716, 718: 717, 719: 718, 720: 719, 721: 720, 722: 721, 723: 722, 724: 723, 725: 724, 726: 725, 727: 726, 728: 727, 729: 728, 730: 729, 731: 730, 732: 731, 733: 732, 734: 733, 735: 734, 736: 735, 737: 736, 738: 737, 739: 738, 740: 739, 741: 740, 742: 741, 743: 742, 744: 743, 745: 744, 746: 745, 747: 746, 748: 747, 749: 748, 750: 749, 751: 750, 752: 751, 753: 752, 754: 753, 755: 754, 756: 755, 757: 756, 758: 757, 759: 758, 760: 759, 761: 760, 762: 761, 763: 762, 764: 763, 765: 764, 766: 765, 767: 766, 768: 767, 769: 768, 770: 769, 771: 770, 772: 771, 773: 772, 774: 773, 775: 774, 776: 775, 777: 776, 778: 777, 779: 778, 780: 779, 781: 780, 782: 781, 783: 782, 784: 783, 785: 784, 786: 785, 787: 786, 788: 787, 789: 788, 790: 789, 791: 790, 792: 791, 793: 792, 794: 793, 795: 794, 796: 795, 797: 796, 798: 797, 799: 798, 800: 799, 801: 800, 802: 801, 803: 802, 804: 803, 805: 804, 806: 805, 807: 806, 808: 807, 809: 808, 810: 809, 811: 810, 812: 811, 813: 812, 814: 813, 815: 814, 816: 815, 817: 816, 818: 817, 819: 818, 820: 819, 821: 820, 822: 821, 823: 822, 824: 823, 825: 824, 826: 825, 827: 826, 828: 827, 829: 828, 830: 829, 831: 830, 832: 831, 833: 832, 834: 833, 835: 834, 836: 835, 837: 836, 838: 837, 839: 838, 840: 839, 841: 840, 842: 841, 843: 842, 844: 843, 845: 844, 846: 845, 847: 846, 848: 847, 849: 848, 850: 849, 851: 850, 852: 851, 853: 852, 854: 853, 855: 854, 856: 855, 857: 856, 858: 857, 859: 858, 860: 859, 861: 860, 862: 861, 863: 862, 864: 863, 865: 864, 866: 865, 867: 866, 868: 867, 869: 868, 870: 869, 871: 870, 872: 871, 873: 872, 874: 873, 875: 874, 876: 875, 877: 876, 878: 877, 879: 878, 880: 879, 881: 880, 882: 881, 883: 882, 884: 883, 885: 884, 886: 885, 887: 886, 888: 887, 889: 888, 890: 889, 891: 890, 892: 891, 893: 892, 894: 893, 895: 894, 896: 895, 897: 896, 898: 897, 899: 898, 900: 899, 901: 900, 902: 901, 903: 902, 904: 903, 905: 904, 906: 905, 907: 906, 908: 907, 909: 908, 910: 909, 911: 910, 912: 911, 913: 912, 914: 913, 915: 914, 916: 915, 917: 916, 918: 917, 919: 918, 920: 919, 921: 920, 922: 921, 923: 922, 924: 923, 925: 924, 926: 925, 927: 926, 928: 927, 929: 928, 930: 929, 931: 930, 932: 931, 933: 932, 934: 933, 935: 934, 936: 935, 937: 936, 938: 937, 939: 938, 940: 939, 941: 940, 942: 941, 943: 942, 944: 943, 945: 944, 946: 945, 947: 946, 948: 947, 949: 948, 950: 949, 951: 950, 952: 951, 953: 952, 954: 953, 955: 954, 956: 955, 957: 956, 958: 957, 959: 958, 960: 959, 961: 960, 962: 961, 963: 962, 964: 963, 965: 964, 966: 965, 967: 966, 968: 967, 969: 968, 970: 969, 971: 970, 972: 971, 973: 972, 974: 973, 975: 974, 976: 975, 977: 976, 978: 977, 979: 978, 980: 979, 981: 980, 982: 981, 983: 982, 984: 983, 985: 984, 986: 985, 987: 986, 988: 987, 989: 988, 990: 989, 991: 990, 992: 991, 993: 992, 994: 993, 995: 994, 996: 995, 997: 996, 998: 997, 999: 998, 1000: 999, 1001: 1000, 1002: 1001, 1003: 1002, 1004: 1003, 1005: 1004, 1006: 1005, 1007: 1006, 1008: 1007, 1009: 1008, 1010: 1009, 1011: 1010, 1012: 1011, 1013: 1012, 1014: 1013, 1015: 1014, 1016: 1015, 1017: 1016, 1018: 1017, 1019: 1018, 1020: 1019, 1021: 1020, 1022: 1021, 1023: 1022, 1024: 1023, 1025: 1024, 1026: 1025, 1027: 1026, 1028: 1027, 1029: 1028, 1030: 1029, 1031: 1030, 1032: 1031, 1033: 1032, 1034: 1033, 1035: 1034, 1036: 1035, 1037: 1036, 1038: 1037, 1039: 1038, 1040: 1039, 1041: 1040, 1042: 1041, 1043: 1042, 1044: 1043, 1045: 1044, 1046: 1045, 1047: 1046, 1048: 1047, 1049: 1048, 1050: 1049, 1051: 1050, 1052: 1051, 1053: 1052, 1054: 1053, 1055: 1054, 1056: 1055, 1057: 1056, 1058: 1057, 1059: 1058, 1060: 1059, 1061: 1060, 1062: 1061, 1063: 1062, 1064: 1063, 1065: 1064, 1066: 1065, 1067: 1066, 1068: 1067, 1069: 1068, 1070: 1069, 1071: 1070, 1072: 1071, 1073: 1072, 1074: 1073, 1075: 1074, 1076: 1075, 1077: 1076, 1078: 1077, 1079: 1078, 1080: 1079, 1081: 1080, 1082: 1081, 1083: 1082, 1084: 1083, 1085: 1084, 1086: 1085, 1087: 1086, 1088: 1087, 1089: 1088, 1090: 1089, 1091: 1090, 1092: 1091, 1093: 1092, 1094: 1093, 1095: 1094, 1096: 1095, 1097: 1096, 1098: 1097, 1099: 1098, 1100: 1099, 1101: 1100, 1102: 1101, 1103: 1102, 1104: 1103, 1105: 1104, 1106: 1105, 1107: 1106, 1108: 1107, 1109: 1108, 1110: 1109, 1111: 1110, 1112: 1111, 1113: 1112, 1114: 1113, 1115: 1114, 1116: 1115, 1117: 1116, 1118: 1117, 1119: 1118, 1120: 1119, 1121: 1120, 1122: 1121, 1123: 1122, 1124: 1123, 1125: 1124, 1126: 1125, 1127: 1126, 1128: 1127, 1129: 1128, 1130: 1129, 1131: 1130, 1132: 1131, 1133: 1132, 1134: 1133, 1135: 1134, 1136: 1135, 1137: 1136, 1138: 1137, 1139: 1138, 1140: 1139, 1141: 1140, 1142: 1141, 1143: 1142, 1144: 1143, 1145: 1144, 1146: 1145, 1147: 1146, 1148: 1147, 1149: 1148, 1150: 1149, 1151: 1150, 1152: 1151, 1153: 1152, 1154: 1153, 1155: 1154, 1156: 1155, 1157: 1156, 1158: 1157, 1159: 1158, 1160: 1159, 1161: 1160, 1162: 1161, 1163: 1162, 1164: 1163, 1165: 1164, 1166: 1165, 1167: 1166, 1168: 1167, 1169: 1168, 1170: 1169, 1171: 1170, 1172: 1171, 1173: 1172, 1174: 1173, 1175: 1174, 1176: 1175, 1177: 1176, 1178: 1177, 1179: 1178, 1180: 1179, 1181: 1180, 1182: 1181, 1183: 1182, 1184: 1183, 1185: 1184, 1186: 1185, 1187: 1186, 1188: 1187, 1189: 1188, 1190: 1189, 1191: 1190, 1192: 1191, 1193: 1192, 1194: 1193, 1195: 1194, 1196: 1195, 1197: 1196, 1198: 1197, 1199: 1198, 1200: 1199, 1201: 1200, 1202: 1201, 1203: 1202, 1204: 1203, 1205: 1204, 1206: 1205, 1207: 1206, 1208: 1207, 1209: 1208, 1210: 1209, 1211: 1210, 1212: 1211, 1213: 1212, 1214: 1213, 1215: 1214, 1216: 1215, 1217: 1216, 1218: 1217, 1219: 1218, 1220: 1219, 1221: 1220, 1222: 1221, 1223: 1222, 1224: 1223, 1225: 1224, 1226: 1225, 1227: 1226, 1228: 1227, 1229: 1228, 1230: 1229, 1231: 1230, 1232: 1231, 1233: 1232, 1234: 1233, 1235: 1234, 1236: 1235, 1237: 1236, 1238: 1237, 1239: 1238, 1240: 1239, 1241: 1240, 1242: 1241, 1243: 1242, 1244: 1243, 1245: 1244, 1246: 1245, 1247: 1246, 1248: 1247, 1249: 1248, 1250: 1249, 1251: 1250, 1252: 1251, 1253: 1252, 1254: 1253, 1255: 1254, 1256: 1255, 1257: 1256, 1258: 1257, 1259: 1258, 1260: 1259, 1261: 1260, 1262: 1261, 1263: 1262, 1264: 1263, 1265: 1264, 1266: 1265, 1267: 1266, 1268: 1267, 1269: 1268, 1270: 1269, 1271: 1270, 1272: 1271, 1273: 1272, 1274: 1273, 1275: 1274, 1276: 1275, 1277: 1276, 1278: 1277, 1279: 1278, 1280: 1279, 1281: 1280, 1282: 1281, 1283: 1282, 1284: 1283, 1285: 1284, 1286: 1285, 1287: 1286, 1288: 1287, 1289: 1288, 1290: 1289, 1291: 1290, 1292: 1291, 1293: 1292, 1294: 1293, 1295: 1294, 1296: 1295, 1297: 1296, 1298: 1297, 1299: 1298, 1300: 1299, 1301: 1300, 1302: 1301, 1303: 1302, 1304: 1303, 1305: 1304, 1306: 1305, 1307: 1306, 1308: 1307, 1309: 1308, 1310: 1309, 1311: 1310, 1312: 1311, 1313: 1312, 1314: 1313, 1315: 1314, 1316: 1315, 1317: 1316, 1318: 1317, 1319: 1318, 1320: 1319, 1321: 1320, 1322: 1321, 1323: 1322, 1324: 1323, 1325: 1324, 1326: 1325, 1327: 1326, 1328: 1327, 1329: 1328, 1330: 1329, 1331: 1330, 1332: 1331, 1333: 1332, 1334: 1333, 1335: 1334, 1336: 1335, 1337: 1336, 1338: 1337, 1339: 1338, 1340: 1339, 1341: 1340, 1342: 1341, 1343: 1342, 1344: 1343, 1345: 1344, 1346: 1345, 1347: 1346, 1348: 1347, 1349: 1348, 1350: 1349, 1351: 1350, 1352: 1351, 1353: 1352, 1354: 1353, 1355: 1354, 1356: 1355, 1357: 1356, 1358: 1357, 1359: 1358, 1360: 1359, 1361: 1360, 1362: 1361, 1363: 1362, 1364: 1363, 1365: 1364, 1366: 1365, 1367: 1366, 1368: 1367, 1369: 1368, 1370: 1369, 1371: 1370, 1372: 1371, 1373: 1372, 1374: 1373, 1375: 1374, 1376: 1375, 1377: 1376, 1378: 1377, 1379: 1378, 1380: 1379, 1381: 1380, 1382: 1381, 1383: 1382, 1384: 1383, 1385: 1384, 1386: 1385, 1387: 1386, 1388: 1387, 1389: 1388, 1390: 1389, 1391: 1390, 1392: 1391, 1393: 1392, 1394: 1393, 1395: 1394, 1396: 1395, 1397: 1396, 1398: 1397, 1399: 1398, 1400: 1399, 1401: 1400, 1402: 1401, 1403: 1402, 1404: 1403, 1405: 1404, 1406: 1405, 1407: 1406, 1408: 1407, 1409: 1408, 1410: 1409, 1411: 1410, 1412: 1411, 1413: 1412, 1414: 1413, 1415: 1414, 1416: 1415, 1417: 1416, 1418: 1417, 1419: 1418, 1420: 1419, 1421: 1420, 1422: 1421, 1423: 1422, 1424: 1423, 1425: 1424, 1426: 1425, 1427: 1426, 1428: 1427, 1429: 1428, 1430: 1429, 1431: 1430, 1432: 1431, 1433: 1432, 1434: 1433, 1435: 1434, 1436: 1435, 1437: 1436, 1438: 1437, 1439: 1438, 1440: 1439, 1441: 1440, 1442: 1441, 1443: 1442, 1444: 1443, 1445: 1444, 1446: 1445, 1447: 1446, 1448: 1447, 1449: 1448, 1450: 1449, 1451: 1450, 1452: 1451, 1453: 1452, 1454: 1453, 1455: 1454, 1456: 1455, 1457: 1456, 1458: 1457, 1459: 1458, 1460: 1459, 1461: 1460, 1462: 1461, 1463: 1462, 1464: 1463, 1465: 1464, 1466: 1465, 1467: 1466, 1468: 1467, 1469: 1468, 1470: 1469, 1471: 1470, 1472: 1471, 1473: 1472, 1474: 1473, 1475: 1474, 1476: 1475, 1477: 1476, 1478: 1477, 1479: 1478, 1480: 1479, 1481: 1480, 1482: 1481, 1483: 1482, 1484: 1483, 1485: 1484, 1486: 1485, 1487: 1486, 1488: 1487, 1489: 1488, 1490: 1489, 1491: 1490, 1492: 1491, 1493: 1492, 1494: 1493, 1495: 1494, 1496: 1495, 1497: 1496, 1498: 1497, 1499: 1498, 1500: 1499, 1501: 1500, 1502: 1501, 1503: 1502, 1504: 1503, 1505: 1504, 1506: 1505, 1507: 1506, 1508: 1507, 1509: 1508, 1510: 1509, 1511: 1510, 1512: 1511, 1513: 1512, 1514: 1513, 1515: 1514, 1516: 1515, 1517: 1516, 1518: 1517, 1519: 1518, 1520: 1519, 1521: 1520, 1522: 1521, 1523: 1522, 1524: 1523, 1525: 1524, 1526: 1525, 1527: 1526, 1528: 1527, 1529: 1528, 1530: 1529, 1531: 1530, 1532: 1531, 1533: 1532, 1534: 1533, 1535: 1534, 1536: 1535, 1537: 1536, 1538: 1537, 1539: 1538, 1540: 1539, 1541: 1540, 1542: 1541, 1543: 1542, 1544: 1543, 1545: 1544, 1546: 1545, 1547: 1546, 1548: 1547, 1549: 1548, 1550: 1549, 1551: 1550, 1552: 1551, 1553: 1552, 1554: 1553, 1555: 1554, 1556: 1555, 1557: 1556, 1558: 1557, 1559: 1558, 1560: 1559, 1561: 1560, 1562: 1561, 1563: 1562, 1564: 1563, 1565: 1564, 1566: 1565, 1567: 1566, 1568: 1567, 1569: 1568, 1570: 1569, 1571: 1570, 1572: 1571, 1573: 1572, 1574: 1573, 1575: 1574, 1576: 1575, 1577: 1576, 1578: 1577, 1579: 1578, 1580: 1579, 1581: 1580, 1582: 1581, 1583: 1582, 1584: 1583, 1585: 1584, 1586: 1585, 1587: 1586, 1588: 1587, 1589: 1588, 1590: 1589, 1591: 1590, 1592: 1591, 1593: 1592, 1594: 1593, 1595: 1594, 1596: 1595, 1597: 1596, 1598: 1597, 1599: 1598, 1600: 1599, 1601: 1600, 1602: 1601, 1603: 1602, 1604: 1603, 1605: 1604, 1606: 1605, 1607: 1606, 1608: 1607, 1609: 1608, 1610: 1609, 1611: 1610, 1612: 1611, 1613: 1612, 1614: 1613, 1615: 1614, 1616: 1615, 1617: 1616, 1618: 1617, 1619: 1618, 1620: 1619, 1621: 1620, 1622: 1621, 1623: 1622, 1624: 1623, 1625: 1624, 1626: 1625, 1627: 1626, 1628: 1627, 1629: 1628, 1630: 1629, 1631: 1630, 1632: 1631, 1633: 1632, 1634: 1633, 1635: 1634, 1636: 1635, 1637: 1636, 1638: 1637, 1639: 1638, 1640: 1639, 1641: 1640, 1642: 1641, 1643: 1642, 1644: 1643, 1645: 1644, 1646: 1645, 1647: 1646, 1648: 1647, 1649: 1648, 1650: 1649, 1651: 1650, 1652: 1651, 1653: 1652, 1654: 1653, 1655: 1654, 1656: 1655, 1657: 1656, 1658: 1657, 1659: 1658, 1660: 1659, 1661: 1660, 1662: 1661, 1663: 1662, 1664: 1663, 1665: 1664, 1666: 1665, 1667: 1666, 1668: 1667, 1669: 1668, 1670: 1669, 1671: 1670, 1672: 1671, 1673: 1672, 1674: 1673, 1675: 1674, 1676: 1675, 1677: 1676, 1678: 1677, 1679: 1678, 1680: 1679, 1681: 1680, 1682: 1681, 1683: 1682, 1684: 1683, 1685: 1684, 1686: 1685, 1687: 1686, 1688: 1687, 1689: 1688, 1690: 1689, 1691: 1690, 1692: 1691, 1693: 1692, 1694: 1693, 1695: 1694, 1696: 1695, 1697: 1696, 1698: 1697, 1699: 1698, 1700: 1699, 1701: 1700, 1702: 1701, 1703: 1702, 1704: 1703, 1705: 1704, 1706: 1705, 1707: 1706, 1708: 1707, 1709: 1708, 1710: 1709, 1711: 1710, 1712: 1711, 1713: 1712, 1714: 1713, 1715: 1714, 1716: 1715, 1717: 1716, 1718: 1717, 1719: 1718, 1720: 1719, 1721: 1720, 1722: 1721, 1723: 1722, 1724: 1723, 1725: 1724, 1726: 1725, 1727: 1726, 1728: 1727, 1729: 1728, 1730: 1729, 1731: 1730, 1732: 1731, 1733: 1732, 1734: 1733, 1735: 1734, 1736: 1735, 1737: 1736, 1738: 1737, 1739: 1738, 1740: 1739, 1741: 1740, 1742: 1741, 1743: 1742, 1744: 1743, 1745: 1744, 1746: 1745, 1747: 1746, 1748: 1747, 1749: 1748, 1750: 1749, 1751: 1750, 1752: 1751, 1753: 1752, 1754: 1753, 1755: 1754, 1756: 1755, 1757: 1756, 1758: 1757, 1759: 1758, 1760: 1759, 1761: 1760, 1762: 1761, 1763: 1762, 1764: 1763, 1765: 1764, 1766: 1765, 1767: 1766, 1768: 1767, 1769: 1768, 1770: 1769, 1771: 1770, 1772: 1771, 1773: 1772, 1774: 1773, 1775: 1774, 1776: 1775, 1777: 1776, 1778: 1777, 1779: 1778, 1780: 1779, 1781: 1780, 1782: 1781, 1783: 1782, 1784: 1783, 1785: 1784, 1786: 1785, 1787: 1786, 1788: 1787, 1789: 1788, 1790: 1789, 1791: 1790, 1792: 1791, 1793: 1792, 1794: 1793, 1795: 1794, 1796: 1795, 1797: 1796, 1798: 1797, 1799: 1798, 1800: 1799, 1801: 1800, 1802: 1801, 1803: 1802, 1804: 1803, 1805: 1804, 1806: 1805, 1807: 1806, 1808: 1807, 1809: 1808, 1810: 1809, 1811: 1810, 1812: 1811, 1813: 1812, 1814: 1813, 1815: 1814, 1816: 1815, 1817: 1816, 1818: 1817, 1819: 1818, 1820: 1819, 1821: 1820, 1822: 1821, 1823: 1822, 1824: 1823, 1825: 1824, 1826: 1825, 1827: 1826, 1828: 1827, 1829: 1828, 1830: 1829, 1831: 1830, 1832: 1831, 1833: 1832, 1834: 1833, 1835: 1834, 1836: 1835, 1837: 1836, 1838: 1837, 1839: 1838, 1840: 1839, 1841: 1840, 1842: 1841, 1843: 1842, 1844: 1843, 1845: 1844, 1846: 1845, 1847: 1846, 1848: 1847, 1849: 1848, 1850: 1849, 1851: 1850, 1852: 1851, 1853: 1852, 1854: 1853, 1855: 1854, 1856: 1855, 1857: 1856, 1858: 1857, 1859: 1858, 1860: 1859, 1861: 1860, 1862: 1861, 1863: 1862, 1864: 1863, 1865: 1864, 1866: 1865, 1867: 1866, 1868: 1867, 1869: 1868, 1870: 1869, 1871: 1870, 1872: 1871, 1873: 1872, 1874: 1873, 1875: 1874, 1876: 1875, 1877: 1876, 1878: 1877, 1879: 1878, 1880: 1879, 1881: 1880, 1882: 1881, 1883: 1882, 1884: 1883, 1885: 1884, 1886: 1885, 1887: 1886, 1888: 1887, 1889: 1888, 1890: 1889, 1891: 1890, 1892: 1891, 1893: 1892, 1894: 1893, 1895: 1894, 1896: 1895, 1897: 1896, 1898: 1897, 1899: 1898, 1900: 1899, 1901: 1900, 1902: 1901, 1903: 1902, 1904: 1903, 1905: 1904, 1906: 1905, 1907: 1906, 1908: 1907, 1909: 1908, 1910: 1909, 1911: 1910, 1912: 1911, 1913: 1912, 1914: 1913, 1915: 1914, 1916: 1915, 1917: 1916, 1918: 1917, 1919: 1918, 1920: 1919, 1921: 1920, 1922: 1921, 1923: 1922, 1924: 1923, 1925: 1924, 1926: 1925, 1927: 1926, 1928: 1927, 1929: 1928, 1930: 1929, 1931: 1930, 1932: 1931, 1933: 1932, 1934: 1933, 1935: 1934, 1936: 1935, 1937: 1936, 1938: 1937, 1939: 1938, 1940: 1939, 1941: 1940, 1942: 1941, 1943: 1942, 1944: 1943, 1945: 1944, 1946: 1945, 1947: 1946, 1948: 1947, 1949: 1948, 1950: 1949, 1951: 1950, 1952: 1951, 1953: 1952, 1954: 1953, 1955: 1954, 1956: 1955, 1957: 1956, 1958: 1957, 1959: 1958, 1960: 1959, 1961: 1960, 1962: 1961, 1963: 1962, 1964: 1963, 1965: 1964, 1966: 1965, 1967: 1966, 1968: 1967, 1969: 1968, 1970: 1969, 1971: 1970, 1972: 1971, 1973: 1972, 1974: 1973, 1975: 1974, 1976: 1975, 1977: 1976, 1978: 1977, 1979: 1978, 1980: 1979, 1981: 1980, 1982: 1981, 1983: 1982, 1984: 1983, 1985: 1984, 1986: 1985, 1987: 1986, 1988: 1987, 1989: 1988, 1990: 1989, 1991: 1990, 1992: 1991, 1993: 1992, 1994: 1993, 1995: 1994, 1996: 1995, 1997: 1996, 1998: 1997, 1999: 1998, 2000: 1999, 2001: 2000, 2002: 2001, 2003: 2002, 2004: 2003, 2005: 2004, 2006: 2005, 2007: 2006, 2008: 2007, 2009: 2008, 2010: 2009, 2011: 2010, 2012: 2011, 2013: 2012, 2014: 2013, 2015: 2014, 2016: 2015, 2017: 2016, 2018: 2017, 2019: 2018, 2020: 2019, 2021: 2020, 2022: 2021, 2023: 2022, 2024: 2023, 2025: 2024, 2026: 2025, 2027: 2026, 2028: 2027, 2029: 2028, 2030: 2029, 2031: 2030, 2032: 2031, 2033: 2032, 2034: 2033, 2035: 2034, 2036: 2035, 2037: 2036, 2038: 2037, 2039: 2038, 2040: 2039, 2041: 2040, 2042: 2041, 2043: 2042, 2044: 2043, 2045: 2044, 2046: 2045, 2047: 2046, 2048: 2047, 2049: 2048, 2050: 2049, 2051: 2050, 2052: 2051, 2053: 2052, 2054: 2053, 2055: 2054, 2056: 2055, 2057: 2056, 2058: 2057, 2059: 2058, 2060: 2059, 2061: 2060, 2062: 2061, 2063: 2062, 2064: 2063, 2065: 2064, 2066: 2065, 2067: 2066, 2068: 2067, 2069: 2068, 2070: 2069, 2071: 2070, 2072: 2071, 2073: 2072, 2074: 2073, 2075: 2074, 2076: 2075, 2077: 2076, 2078: 2077, 2079: 2078, 2080: 2079, 2081: 2080, 2082: 2081, 2083: 2082, 2084: 2083, 2085: 2084, 2086: 2085, 2087: 2086, 2088: 2087, 2089: 2088, 2090: 2089, 2091: 2090, 2092: 2091, 2093: 2092, 2094: 2093, 2095: 2094, 2096: 2095, 2097: 2096, 2098: 2097, 2099: 2098, 2100: 2099, 2101: 2100, 2102: 2101, 2103: 2102, 2104: 2103, 2105: 2104, 2106: 2105, 2107: 2106, 2108: 2107, 2109: 2108, 2110: 2109, 2111: 2110, 2112: 2111, 2113: 2112, 2114: 2113, 2115: 2114, 2116: 2115, 2117: 2116, 2118: 2117, 2119: 2118, 2120: 2119, 2121: 2120, 2122: 2121, 2123: 2122, 2124: 2123, 2125: 2124, 2126: 2125, 2127: 2126, 2128: 2127, 2129: 2128, 2130: 2129, 2131: 2130, 2132: 2131, 2133: 2132, 2134: 2133, 2135: 2134, 2136: 2135, 2137: 2136, 2138: 2137, 2139: 2138, 2140: 2139, 2141: 2140, 2142: 2141, 2143: 2142, 2144: 2143, 2145: 2144, 2146: 2145, 2147: 2146, 2148: 2147, 2149: 2148, 2150: 2149, 2151: 2150, 2152: 2151, 2153: 2152, 2154: 2153, 2155: 2154, 2156: 2155, 2157: 2156, 2158: 2157, 2159: 2158, 2160: 2159, 2161: 2160, 2162: 2161, 2163: 2162, 2164: 2163, 2165: 2164, 2166: 2165, 2167: 2166, 2168: 2167, 2169: 2168, 2170: 2169, 2171: 2170, 2172: 2171, 2173: 2172, 2174: 2173, 2175: 2174, 2176: 2175, 2177: 2176, 2178: 2177, 2179: 2178, 2180: 2179, 2181: 2180, 2182: 2181, 2183: 2182, 2184: 2183, 2185: 2184, 2186: 2185, 2187: 2186, 2188: 2187, 2189: 2188, 2190: 2189, 2191: 2190, 2192: 2191, 2193: 2192, 2194: 2193, 2195: 2194, 2196: 2195, 2197: 2196, 2198: 2197, 2199: 2198, 2200: 2199, 2201: 2200, 2202: 2201, 2203: 2202, 2204: 2203, 2205: 2204, 2206: 2205, 2207: 2206, 2208: 2207, 2209: 2208, 2210: 2209, 2211: 2210, 2212: 2211, 2213: 2212, 2214: 2213, 2215: 2214, 2216: 2215, 2217: 2216, 2218: 2217, 2219: 2218, 2220: 2219, 2221: 2220, 2222: 2221, 2223: 2222, 2224: 2223, 2225: 2224, 2226: 2225, 2227: 2226, 2228: 2227, 2229: 2228, 2230: 2229, 2231: 2230, 2232: 2231, 2233: 2232, 2234: 2233, 2235: 2234, 2236: 2235, 2237: 2236, 2238: 2237, 2239: 2238, 2240: 2239, 2241: 2240, 2242: 2241, 2243: 2242, 2244: 2243, 2245: 2244, 2246: 2245, 2247: 2246, 2248: 2247, 2249: 2248, 2250: 2249, 2251: 2250, 2252: 2251, 2253: 2252, 2254: 2253, 2255: 2254, 2256: 2255, 2257: 2256, 2258: 2257, 2259: 2258, 2260: 2259, 2261: 2260, 2262: 2261, 2263: 2262, 2264: 2263, 2265: 2264, 2266: 2265, 2267: 2266, 2268: 2267, 2269: 2268, 2270: 2269, 2271: 2270, 2272: 2271, 2273: 2272, 2274: 2273, 2275: 2274, 2276: 2275, 2277: 2276, 2278: 2277, 2279: 2278, 2280: 2279, 2281: 2280, 2282: 2281, 2283: 2282, 2284: 2283, 2285: 2284, 2286: 2285, 2287: 2286, 2288: 2287, 2289: 2288, 2290: 2289, 2291: 2290, 2292: 2291, 2293: 2292, 2294: 2293, 2295: 2294, 2296: 2295, 2297: 2296, 2298: 2297, 2299: 2298, 2300: 2299, 2301: 2300, 2302: 2301, 2303: 2302, 2304: 2303, 2305: 2304, 2306: 2305, 2307: 2306, 2308: 2307, 2309: 2308, 2310: 2309, 2311: 2310, 2312: 2311, 2313: 2312, 2314: 2313, 2315: 2314, 2316: 2315, 2317: 2316, 2318: 2317, 2319: 2318, 2320: 2319, 2321: 2320, 2322: 2321, 2323: 2322, 2324: 2323, 2325: 2324, 2326: 2325, 2327: 2326, 2328: 2327, 2329: 2328, 2330: 2329, 2331: 2330, 2332: 2331, 2333: 2332, 2334: 2333, 2335: 2334, 2336: 2335, 2337: 2336, 2338: 2337, 2339: 2338, 2340: 2339, 2341: 2340, 2342: 2341, 2343: 2342, 2344: 2343, 2345: 2344, 2346: 2345, 2347: 2346, 2348: 2347, 2349: 2348, 2350: 2349, 2351: 2350, 2352: 2351, 2353: 2352, 2354: 2353, 2355: 2354, 2356: 2355, 2357: 2356, 2358: 2357, 2359: 2358, 2360: 2359, 2361: 2360, 2362: 2361, 2363: 2362, 2364: 2363, 2365: 2364, 2366: 2365, 2367: 2366, 2368: 2367, 2369: 2368, 2370: 2369, 2371: 2370, 2372: 2371, 2373: 2372, 2374: 2373, 2375: 2374, 2376: 2375, 2377: 2376, 2378: 2377, 2379: 2378, 2380: 2379, 2381: 2380, 2382: 2381, 2383: 2382, 2384: 2383, 2385: 2384, 2386: 2385, 2387: 2386, 2388: 2387, 2389: 2388, 2390: 2389, 2391: 2390, 2392: 2391, 2393: 2392, 2394: 2393, 2395: 2394, 2396: 2395, 2397: 2396, 2398: 2397, 2399: 2398, 2400: 2399, 2401: 2400, 2402: 2401, 2403: 2402, 2404: 2403, 2405: 2404, 2406: 2405, 2407: 2406, 2408: 2407, 2409: 2408, 2410: 2409, 2411: 2410, 2412: 2411, 2413: 2412, 2414: 2413, 2415: 2414, 2416: 2415, 2417: 2416, 2418: 2417, 2419: 2418, 2420: 2419, 2421: 2420, 2422: 2421, 2423: 2422, 2424: 2423, 2425: 2424, 2426: 2425, 2427: 2426, 2428: 2427, 2429: 2428, 2430: 2429, 2431: 2430, 2432: 2431, 2433: 2432, 2434: 2433, 2435: 2434, 2436: 2435, 2437: 2436, 2438: 2437, 2439: 2438, 2440: 2439, 2441: 2440, 2442: 2441, 2443: 2442, 2444: 2443, 2445: 2444, 2446: 2445, 2447: 2446, 2448: 2447, 2449: 2448, 2450: 2449, 2451: 2450, 2452: 2451, 2453: 2452, 2454: 2453, 2455: 2454, 2456: 2455, 2457: 2456, 2458: 2457, 2459: 2458, 2460: 2459, 2461: 2460, 2462: 2461, 2463: 2462, 2464: 2463, 2465: 2464, 2466: 2465, 2467: 2466, 2468: 2467, 2469: 2468, 2470: 2469, 2471: 2470, 2472: 2471, 2473: 2472, 2474: 2473, 2475: 2474, 2476: 2475, 2477: 2476, 2478: 2477, 2479: 2478, 2480: 2479, 2481: 2480, 2482: 2481, 2483: 2482, 2484: 2483, 2485: 2484, 2486: 2485, 2487: 2486, 2488: 2487, 2489: 2488, 2490: 2489, 2491: 2490, 2492: 2491, 2493: 2492, 2494: 2493, 2495: 2494, 2496: 2495, 2497: 2496, 2498: 2497, 2499: 2498, 2500: 2499, 2501: 2500, 2502: 2501, 2503: 2502, 2504: 2503, 2505: 2504, 2506: 2505, 2507: 2506, 2508: 2507, 2509: 2508, 2510: 2509, 2511: 2510, 2512: 2511, 2513: 2512, 2514: 2513, 2515: 2514, 2516: 2515, 2517: 2516, 2518: 2517, 2519: 2518, 2520: 2519, 2521: 2520, 2522: 2521, 2523: 2522, 2524: 2523, 2525: 2524, 2526: 2525, 2527: 2526, 2528: 2527, 2529: 2528, 2530: 2529, 2531: 2530, 2532: 2531, 2533: 2532, 2534: 2533, 2535: 2534, 2536: 2535, 2537: 2536, 2538: 2537, 2539: 2538, 2540: 2539, 2541: 2540, 2542: 2541, 2543: 2542, 2544: 2543, 2545: 2544, 2546: 2545, 2547: 2546, 2548: 2547, 2549: 2548, 2550: 2549, 2551: 2550, 2552: 2551, 2553: 2552, 2554: 2553, 2555: 2554, 2556: 2555, 2557: 2556, 2558: 2557, 2559: 2558, 2560: 2559, 2561: 2560, 2562: 2561, 2563: 2562, 2564: 2563, 2565: 2564, 2566: 2565, 2567: 2566, 2568: 2567, 2569: 2568, 2570: 2569, 2571: 2570, 2572: 2571, 2573: 2572, 2574: 2573, 2575: 2574, 2576: 2575, 2577: 2576, 2578: 2577, 2579: 2578, 2580: 2579, 2581: 2580, 2582: 2581, 2583: 2582, 2584: 2583, 2585: 2584, 2586: 2585, 2587: 2586, 2588: 2587, 2589: 2588, 2590: 2589, 2591: 2590, 2592: 2591, 2593: 2592, 2594: 2593, 2595: 2594, 2596: 2595, 2597: 2596, 2598: 2597, 2599: 2598, 2600: 2599, 2601: 2600, 2602: 2601, 2603: 2602, 2604: 2603, 2605: 2604, 2606: 2605, 2607: 2606, 2608: 2607, 2609: 2608, 2610: 2609, 2611: 2610, 2612: 2611, 2613: 2612, 2614: 2613, 2615: 2614, 2616: 2615, 2617: 2616, 2618: 2617, 2619: 2618, 2620: 2619, 2621: 2620, 2622: 2621, 2623: 2622, 2624: 2623, 2625: 2624, 2626: 2625, 2627: 2626, 2628: 2627, 2629: 2628, 2630: 2629, 2631: 2630, 2632: 2631, 2633: 2632, 2634: 2633, 2635: 2634, 2636: 2635, 2637: 2636, 2638: 2637, 2639: 2638, 2640: 2639, 2641: 2640, 2642: 2641, 2643: 2642, 2644: 2643, 2645: 2644, 2646: 2645, 2647: 2646, 2648: 2647, 2649: 2648, 2650: 2649, 2651: 2650, 2652: 2651, 2653: 2652, 2654: 2653, 2655: 2654, 2656: 2655, 2657: 2656, 2658: 2657, 2659: 2658, 2660: 2659, 2661: 2660, 2662: 2661, 2663: 2662, 2664: 2663, 2665: 2664, 2666: 2665, 2667: 2666, 2668: 2667, 2669: 2668, 2670: 2669, 2671: 2670, 2672: 2671, 2673: 2672, 2674: 2673, 2675: 2674, 2676: 2675, 2677: 2676, 2678: 2677, 2679: 2678, 2680: 2679, 2681: 2680, 2682: 2681, 2683: 2682, 2684: 2683, 2685: 2684, 2686: 2685, 2687: 2686, 2688: 2687, 2689: 2688, 2690: 2689, 2691: 2690, 2692: 2691, 2693: 2692, 2694: 2693, 2695: 2694, 2696: 2695, 2697: 2696, 2698: 2697, 2699: 2698, 2700: 2699, 2701: 2700, 2702: 2701, 2703: 2702, 2704: 2703, 2705: 2704, 2706: 2705, 2707: 2706, 2708: 2707, 2709: 2708, 2710: 2709, 2711: 2710, 2712: 2711, 2713: 2712, 2714: 2713, 2715: 2714, 2716: 2715, 2717: 2716, 2718: 2717, 2719: 2718, 2720: 2719, 2721: 2720, 2722: 2721, 2723: 2722, 2724: 2723, 2725: 2724, 2726: 2725, 2727: 2726, 2728: 2727, 2729: 2728, 2730: 2729, 2731: 2730, 2732: 2731, 2733: 2732, 2734: 2733, 2735: 2734, 2736: 2735, 2737: 2736, 2738: 2737, 2739: 2738, 2740: 2739, 2741: 2740, 2742: 2741, 2743: 2742, 2744: 2743, 2745: 2744, 2746: 2745, 2747: 2746, 2748: 2747, 2749: 2748, 2750: 2749, 2751: 2750, 2752: 2751, 2753: 2752, 2754: 2753, 2755: 2754, 2756: 2755, 2757: 2756, 2758: 2757, 2759: 2758, 2760: 2759, 2761: 2760, 2762: 2761, 2763: 2762, 2764: 2763, 2765: 2764, 2766: 2765, 2767: 2766, 2768: 2767, 2769: 2768, 2770: 2769, 2771: 2770, 2772: 2771, 2773: 2772, 2774: 2773, 2775: 2774, 2776: 2775, 2777: 2776, 2778: 2777, 2779: 2778, 2780: 2779, 2781: 2780, 2782: 2781, 2783: 2782, 2784: 2783, 2785: 2784, 2786: 2785, 2787: 2786, 2788: 2787, 2789: 2788, 2790: 2789, 2791: 2790, 2792: 2791, 2793: 2792, 2794: 2793, 2795: 2794, 2796: 2795, 2797: 2796, 2798: 2797, 2799: 2798, 2800: 2799, 2801: 2800, 2802: 2801, 2803: 2802, 2804: 2803, 2805: 2804, 2806: 2805, 2807: 2806, 2808: 2807, 2809: 2808, 2810: 2809, 2811: 2810, 2812: 2811, 2813: 2812, 2814: 2813, 2815: 2814, 2816: 2815, 2817: 2816, 2818: 2817, 2819: 2818, 2820: 2819, 2821: 2820, 2822: 2821, 2823: 2822, 2824: 2823, 2825: 2824, 2826: 2825, 2827: 2826, 2828: 2827, 2829: 2828, 2830: 2829, 2831: 2830, 2832: 2831, 2833: 2832, 2834: 2833, 2835: 2834, 2836: 2835, 2837: 2836, 2838: 2837, 2839: 2838, 2840: 2839, 2841: 2840, 2842: 2841, 2843: 2842, 2844: 2843, 2845: 2844, 2846: 2845, 2847: 2846, 2848: 2847, 2849: 2848, 2850: 2849, 2851: 2850, 2852: 2851, 2853: 2852, 2854: 2853, 2855: 2854, 2856: 2855, 2857: 2856, 2858: 2857, 2859: 2858, 2860: 2859, 2861: 2860, 2862: 2861, 2863: 2862, 2864: 2863, 2865: 2864, 2866: 2865, 2867: 2866, 2868: 2867, 2869: 2868, 2870: 2869, 2871: 2870, 2872: 2871, 2873: 2872, 2874: 2873, 2875: 2874, 2876: 2875, 2877: 2876, 2878: 2877, 2879: 2878, 2880: 2879, 2881: 2880, 2882: 2881, 2883: 2882, 2884: 2883, 2885: 2884, 2886: 2885, 2887: 2886, 2888: 2887, 2889: 2888, 2890: 2889, 2891: 2890, 2892: 2891, 2893: 2892, 2894: 2893, 2895: 2894, 2896: 2895, 2897: 2896, 2898: 2897, 2899: 2898, 2900: 2899, 2901: 2900, 2902: 2901, 2903: 2902, 2904: 2903, 2905: 2904, 2906: 2905, 2907: 2906, 2908: 2907, 2909: 2908, 2910: 2909, 2911: 2910, 2912: 2911, 2913: 2912, 2914: 2913, 2915: 2914, 2916: 2915, 2917: 2916, 2918: 2917, 2919: 2918, 2920: 2919, 2921: 2920, 2922: 2921, 2923: 2922, 2924: 2923, 2925: 2924, 2926: 2925, 2927: 2926, 2928: 2927, 2929: 2928, 2930: 2929, 2931: 2930, 2932: 2931, 2933: 2932, 2934: 2933, 2935: 2934, 2936: 2935, 2937: 2936, 2938: 2937, 2939: 2938, 2940: 2939, 2941: 2940, 2942: 2941, 2943: 2942, 2944: 2943, 2945: 2944, 2946: 2945, 2947: 2946, 2948: 2947, 2949: 2948, 2950: 2949, 2951: 2950, 2952: 2951, 2953: 2952, 2954: 2953, 2955: 2954, 2956: 2955, 2957: 2956, 2958: 2957, 2959: 2958, 2960: 2959, 2961: 2960, 2962: 2961, 2963: 2962, 2964: 2963, 2965: 2964, 2966: 2965, 2967: 2966, 2968: 2967, 2969: 2968, 2970: 2969, 2971: 2970, 2972: 2971, 2973: 2972, 2974: 2973, 2975: 2974, 2976: 2975, 2977: 2976, 2978: 2977, 2979: 2978, 2980: 2979, 2981: 2980, 2982: 2981, 2983: 2982, 2984: 2983, 2985: 2984, 2986: 2985, 2987: 2986, 2988: 2987, 2989: 2988, 2990: 2989, 2991: 2990, 2992: 2991, 2993: 2992, 2994: 2993, 2995: 2994, 2996: 2995, 2997: 2996, 2998: 2997, 2999: 2998, 3000: 2999, 3001: 3000, 3002: 3001, 3003: 3002, 3004: 3003, 3005: 3004, 3006: 3005, 3007: 3006, 3008: 3007, 3009: 3008, 3010: 3009, 3011: 3010, 3012: 3011, 3013: 3012, 3014: 3013, 3015: 3014, 3016: 3015, 3017: 3016, 3018: 3017, 3019: 3018, 3020: 3019, 3021: 3020, 3022: 3021, 3023: 3022, 3024: 3023, 3025: 3024, 3026: 3025, 3027: 3026, 3028: 3027, 3029: 3028, 3030: 3029, 3031: 3030, 3032: 3031, 3033: 3032, 3034: 3033, 3035: 3034, 3036: 3035, 3037: 3036, 3038: 3037, 3039: 3038, 3040: 3039, 3041: 3040, 3042: 3041, 3043: 3042, 3044: 3043, 3045: 3044, 3046: 3045, 3047: 3046, 3048: 3047, 3049: 3048, 3050: 3049, 3051: 3050, 3052: 3051, 3053: 3052, 3054: 3053, 3055: 3054, 3056: 3055, 3057: 3056, 3058: 3057, 3059: 3058, 3060: 3059, 3061: 3060, 3062: 3061, 3063: 3062, 3064: 3063, 3065: 3064, 3066: 3065, 3067: 3066, 3068: 3067, 3069: 3068, 3070: 3069, 3071: 3070, 3072: 3071, 3073: 3072, 3074: 3073, 3075: 3074, 3076: 3075, 3077: 3076, 3078: 3077, 3079: 3078, 3080: 3079, 3081: 3080, 3082: 3081, 3083: 3082, 3084: 3083, 3085: 3084, 3086: 3085, 3087: 3086, 3088: 3087, 3089: 3088, 3090: 3089, 3091: 3090, 3092: 3091, 3093: 3092, 3094: 3093, 3095: 3094, 3096: 3095, 3097: 3096, 3098: 3097, 3099: 3098, 3100: 3099, 3101: 3100, 3102: 3101, 3103: 3102, 3104: 3103, 3105: 3104, 3106: 3105, 3107: 3106, 3108: 3107, 3109: 3108, 3110: 3109, 3111: 3110, 3112: 3111, 3113: 3112, 3114: 3113, 3115: 3114, 3116: 3115, 3117: 3116, 3118: 3117, 3119: 3118, 3120: 3119, 3121: 3120, 3122: 3121, 3123: 3122, 3124: 3123, 3125: 3124, 3126: 3125, 3127: 3126, 3128: 3127, 3129: 3128, 3130: 3129, 3131: 3130, 3132: 3131, 3133: 3132, 3134: 3133, 3135: 3134, 3136: 3135, 3137: 3136, 3138: 3137, 3139: 3138, 3140: 3139, 3141: 3140, 3142: 3141, 3143: 3142, 3144: 3143, 3145: 3144, 3146: 3145, 3147: 3146, 3148: 3147, 3149: 3148, 3150: 3149, 3151: 3150, 3152: 3151, 3153: 3152, 3154: 3153, 3155: 3154, 3156: 3155, 3157: 3156, 3158: 3157, 3159: 3158, 3160: 3159, 3161: 3160, 3162: 3161, 3163: 3162, 3164: 3163, 3165: 3164, 3166: 3165, 3167: 3166, 3168: 3167, 3169: 3168, 3170: 3169, 3171: 3170, 3172: 3171, 3173: 3172, 3174: 3173, 3175: 3174, 3176: 3175, 3177: 3176, 3178: 3177, 3179: 3178, 3180: 3179, 3181: 3180, 3182: 3181, 3183: 3182, 3184: 3183, 3185: 3184, 3186: 3185, 3187: 3186, 3188: 3187, 3189: 3188, 3190: 3189, 3191: 3190, 3192: 3191, 3193: 3192, 3194: 3193, 3195: 3194, 3196: 3195, 3197: 3196, 3198: 3197, 3199: 3198, 3200: 3199, 3201: 3200, 3202: 3201, 3203: 3202, 3204: 3203, 3205: 3204, 3206: 3205, 3207: 3206, 3208: 3207, 3209: 3208, 3210: 3209, 3211: 3210, 3212: 3211, 3213: 3212, 3214: 3213, 3215: 3214, 3216: 3215, 3217: 3216, 3218: 3217, 3219: 3218, 3220: 3219, 3221: 3220, 3222: 3221, 3223: 3222, 3224: 3223, 3225: 3224, 3226: 3225, 3227: 3226, 3228: 3227, 3229: 3228, 3230: 3229, 3231: 3230, 3232: 3231, 3233: 3232, 3234: 3233, 3235: 3234, 3236: 3235, 3237: 3236, 3238: 3237, 3239: 3238, 3240: 3239, 3241: 3240, 3242: 3241, 3243: 3242, 3244: 3243, 3245: 3244, 3246: 3245, 3247: 3246, 3248: 3247, 3249: 3248, 3250: 3249, 3251: 3250, 3252: 3251, 3253: 3252, 3254: 3253, 3255: 3254, 3256: 3255, 3257: 3256, 3258: 3257, 3259: 3258, 3260: 3259, 3261: 3260, 3262: 3261, 3263: 3262, 3264: 3263, 3265: 3264, 3266: 3265, 3267: 3266, 3268: 3267, 3269: 3268, 3270: 3269, 3271: 3270, 3272: 3271, 3273: 3272, 3274: 3273, 3275: 3274, 3276: 3275, 3277: 3276, 3278: 3277, 3279: 3278, 3280: 3279, 3281: 3280, 3282: 3281, 3283: 3282, 3284: 3283, 3285: 3284, 3286: 3285, 3287: 3286, 3288: 3287, 3289: 3288, 3290: 3289, 3291: 3290, 3292: 3291, 3293: 3292, 3294: 3293, 3295: 3294, 3296: 3295, 3297: 3296, 3298: 3297, 3299: 3298, 3300: 3299, 3301: 3300, 3302: 3301, 3303: 3302, 3304: 3303, 3305: 3304, 3306: 3305, 3307: 3306, 3308: 3307, 3309: 3308, 3310: 3309, 3311: 3310, 3312: 3311, 3313: 3312, 3314: 3313, 3315: 3314, 3316: 3315, 3317: 3316, 3318: 3317, 3319: 3318, 3320: 3319, 3321: 3320, 3322: 3321, 3323: 3322, 3324: 3323, 3325: 3324, 3326: 3325, 3327: 3326, 3328: 3327, 3329: 3328, 3330: 3329, 3331: 3330, 3332: 3331, 3333: 3332, 3334: 3333, 3335: 3334, 3336: 3335, 3337: 3336, 3338: 3337, 3339: 3338, 3340: 3339, 3341: 3340, 3342: 3341, 3343: 3342, 3344: 3343, 3345: 3344, 3346: 3345, 3347: 3346, 3348: 3347, 3349: 3348, 3350: 3349, 3351: 3350, 3352: 3351, 3353: 3352, 3354: 3353, 3355: 3354, 3356: 3355, 3357: 3356, 3358: 3357, 3359: 3358, 3360: 3359, 3361: 3360, 3362: 3361, 3363: 3362, 3364: 3363, 3365: 3364, 3366: 3365, 3367: 3366, 3368: 3367, 3369: 3368, 3370: 3369, 3371: 3370, 3372: 3371, 3373: 3372, 3374: 3373, 3375: 3374, 3376: 3375, 3377: 3376, 3378: 3377, 3379: 3378, 3380: 3379, 3381: 3380, 3382: 3381, 3383: 3382, 3384: 3383, 3385: 3384, 3386: 3385, 3387: 3386, 3388: 3387, 3389: 3388, 3390: 3389, 3391: 3390, 3392: 3391, 3393: 3392, 3394: 3393, 3395: 3394, 3396: 3395, 3397: 3396, 3398: 3397, 3399: 3398, 3400: 3399, 3401: 3400, 3402: 3401, 3403: 3402, 3404: 3403, 3405: 3404, 3406: 3405, 3407: 3406, 3408: 3407, 3409: 3408, 3410: 3409, 3411: 3410, 3412: 3411, 3413: 3412, 3414: 3413, 3415: 3414, 3416: 3415, 3417: 3416, 3418: 3417, 3419: 3418, 3420: 3419, 3421: 3420, 3422: 3421, 3423: 3422, 3424: 3423, 3425: 3424, 3426: 3425, 3427: 3426, 3428: 3427, 3429: 3428, 3430: 3429, 3431: 3430, 3432: 3431, 3433: 3432, 3434: 3433, 3435: 3434, 3436: 3435, 3437: 3436, 3438: 3437, 3439: 3438, 3440: 3439, 3441: 3440, 3442: 3441, 3443: 3442, 3444: 3443, 3445: 3444, 3446: 3445, 3447: 3446, 3448: 3447, 3449: 3448, 3450: 3449, 3451: 3450, 3452: 3451, 3453: 3452, 3454: 3453, 3455: 3454, 3456: 3455, 3457: 3456, 3458: 3457, 3459: 3458, 3460: 3459, 3461: 3460, 3462: 3461, 3463: 3462, 3464: 3463, 3465: 3464, 3466: 3465, 3467: 3466, 3468: 3467, 3469: 3468, 3470: 3469, 3471: 3470, 3472: 3471, 3473: 3472, 3474: 3473, 3475: 3474, 3476: 3475, 3477: 3476, 3478: 3477, 3479: 3478, 3480: 3479, 3481: 3480, 3482: 3481, 3483: 3482, 3484: 3483, 3485: 3484, 3486: 3485, 3487: 3486, 3488: 3487, 3489: 3488, 3490: 3489, 3491: 3490, 3492: 3491, 3493: 3492, 3494: 3493, 3495: 3494, 3496: 3495, 3497: 3496, 3498: 3497, 3499: 3498, 3500: 3499, 3501: 3500, 3502: 3501, 3503: 3502, 3504: 3503, 3505: 3504, 3506: 3505, 3507: 3506, 3508: 3507, 3509: 3508, 3510: 3509, 3511: 3510, 3512: 3511, 3513: 3512, 3514: 3513, 3515: 3514, 3516: 3515, 3517: 3516, 3518: 3517, 3519: 3518, 3520: 3519, 3521: 3520, 3522: 3521, 3523: 3522, 3524: 3523, 3525: 3524, 3526: 3525, 3527: 3526, 3528: 3527, 3529: 3528, 3530: 3529, 3531: 3530, 3532: 3531, 3533: 3532, 3534: 3533, 3535: 3534, 3536: 3535, 3537: 3536, 3538: 3537, 3539: 3538, 3540: 3539, 3541: 3540, 3542: 3541, 3543: 3542, 3544: 3543, 3545: 3544, 3546: 3545, 3547: 3546, 3548: 3547, 3549: 3548, 3550: 3549, 3551: 3550, 3552: 3551, 3553: 3552, 3554: 3553, 3555: 3554, 3556: 3555, 3557: 3556, 3558: 3557, 3559: 3558, 3560: 3559, 3561: 3560, 3562: 3561, 3563: 3562, 3564: 3563, 3565: 3564, 3566: 3565, 3567: 3566, 3568: 3567, 3569: 3568, 3570: 3569, 3571: 3570, 3572: 3571, 3573: 3572, 3574: 3573, 3575: 3574, 3576: 3575, 3577: 3576, 3578: 3577, 3579: 3578, 3580: 3579, 3581: 3580, 3582: 3581, 3583: 3582, 3584: 3583, 3585: 3584, 3586: 3585, 3587: 3586, 3588: 3587, 3589: 3588, 3590: 3589, 3591: 3590, 3592: 3591, 3593: 3592, 3594: 3593, 3595: 3594, 3596: 3595, 3597: 3596, 3598: 3597, 3599: 3598, 3600: 3599, 3601: 3600, 3602: 3601, 3603: 3602, 3604: 3603, 3605: 3604, 3606: 3605, 3607: 3606, 3608: 3607, 3609: 3608, 3610: 3609, 3611: 3610, 3612: 3611, 3613: 3612, 3614: 3613, 3615: 3614, 3616: 3615, 3617: 3616, 3618: 3617, 3619: 3618, 3620: 3619, 3621: 3620, 3622: 3621, 3623: 3622, 3624: 3623, 3625: 3624, 3626: 3625, 3627: 3626, 3628: 3627, 3629: 3628, 3630: 3629, 3631: 3630, 3632: 3631, 3633: 3632, 3634: 3633, 3635: 3634, 3636: 3635, 3637: 3636, 3638: 3637, 3639: 3638, 3640: 3639, 3641: 3640, 3642: 3641, 3643: 3642, 3644: 3643, 3645: 3644, 3646: 3645, 3647: 3646, 3648: 3647, 3649: 3648, 3650: 3649, 3651: 3650, 3652: 3651, 3653: 3652, 3654: 3653, 3655: 3654, 3656: 3655, 3657: 3656, 3658: 3657, 3659: 3658, 3660: 3659, 3661: 3660, 3662: 3661, 3663: 3662, 3664: 3663, 3665: 3664, 3666: 3665, 3667: 3666, 3668: 3667, 3669: 3668, 3670: 3669, 3671: 3670, 3672: 3671, 3673: 3672, 3674: 3673, 3675: 3674, 3676: 3675, 3677: 3676, 3678: 3677, 3679: 3678, 3680: 3679, 3681: 3680, 3682: 3681, 3683: 3682, 3684: 3683, 3685: 3684, 3686: 3685, 3687: 3686, 3688: 3687, 3689: 3688, 3690: 3689, 3691: 3690, 3692: 3691, 3693: 3692, 3694: 3693, 3695: 3694, 3696: 3695, 3697: 3696, 3698: 3697, 3699: 3698, 3700: 3699, 3701: 3700, 3702: 3701, 3703: 3702, 3704: 3703, 3705: 3704, 3706: 3705, 3707: 3706, 3708: 3707, 3709: 3708, 3710: 3709, 3711: 3710, 3712: 3711, 3713: 3712, 3714: 3713, 3715: 3714, 3716: 3715, 3717: 3716, 3718: 3717, 3719: 3718, 3720: 3719, 3721: 3720, 3722: 3721, 3723: 3722, 3724: 3723, 3725: 3724, 3726: 3725, 3727: 3726, 3728: 3727, 3729: 3728, 3730: 3729, 3731: 3730, 3732: 3731, 3733: 3732, 3734: 3733, 3735: 3734, 3736: 3735, 3737: 3736, 3738: 3737, 3739: 3738, 3740: 3739, 3741: 3740, 3742: 3741, 3743: 3742, 3744: 3743, 3745: 3744, 3746: 3745, 3747: 3746, 3748: 3747, 3749: 3748, 3750: 3749, 3751: 3750, 3752: 3751, 3753: 3752, 3754: 3753, 3755: 3754, 3756: 3755, 3757: 3756, 3758: 3757, 3759: 3758, 3760: 3759, 3761: 3760, 3762: 3761, 3763: 3762, 3764: 3763, 3765: 3764, 3766: 3765, 3767: 3766, 3768: 3767, 3769: 3768, 3770: 3769, 3771: 3770, 3772: 3771, 3773: 3772, 3774: 3773, 3775: 3774, 3776: 3775, 3777: 3776, 3778: 3777, 3779: 3778, 3780: 3779, 3781: 3780, 3782: 3781, 3783: 3782, 3784: 3783, 3785: 3784, 3786: 3785, 3787: 3786, 3788: 3787, 3789: 3788, 3790: 3789, 3791: 3790, 3792: 3791, 3793: 3792, 3794: 3793, 3795: 3794, 3796: 3795, 3797: 3796, 3798: 3797, 3799: 3798, 3800: 3799, 3801: 3800, 3802: 3801, 3803: 3802, 3804: 3803, 3805: 3804, 3806: 3805, 3807: 3806, 3808: 3807, 3809: 3808, 3810: 3809, 3811: 3810, 3812: 3811, 3813: 3812, 3814: 3813, 3815: 3814, 3816: 3815, 3817: 3816, 3818: 3817, 3819: 3818, 3820: 3819, 3821: 3820, 3822: 3821, 3823: 3822, 3824: 3823, 3825: 3824, 3826: 3825, 3827: 3826, 3828: 3827, 3829: 3828, 3830: 3829, 3831: 3830, 3832: 3831, 3833: 3832, 3834: 3833, 3835: 3834, 3836: 3835, 3837: 3836, 3838: 3837, 3839: 3838, 3840: 3839, 3841: 3840, 3842: 3841, 3843: 3842, 3844: 3843, 3845: 3844, 3846: 3845, 3847: 3846, 3848: 3847, 3849: 3848, 3850: 3849, 3851: 3850, 3852: 3851, 3853: 3852, 3854: 3853, 3855: 3854, 3856: 3855, 3857: 3856, 3858: 3857, 3859: 3858, 3860: 3859, 3861: 3860, 3862: 3861, 3863: 3862, 3864: 3863, 3865: 3864, 3866: 3865, 3867: 3866, 3868: 3867, 3869: 3868, 3870: 3869, 3871: 3870, 3872: 3871, 3873: 3872, 3874: 3873, 3875: 3874, 3876: 3875, 3877: 3876, 3878: 3877, 3879: 3878, 3880: 3879, 3881: 3880, 3882: 3881, 3883: 3882, 3884: 3883, 3885: 3884, 3886: 3885, 3887: 3886, 3888: 3887, 3889: 3888, 3890: 3889, 3891: 3890, 3892: 3891, 3893: 3892, 3894: 3893, 3895: 3894, 3896: 3895, 3897: 3896, 3898: 3897, 3899: 3898, 3900: 3899, 3901: 3900, 3902: 3901, 3903: 3902, 3904: 3903, 3905: 3904, 3906: 3905, 3907: 3906, 3908: 3907, 3909: 3908, 3910: 3909, 3911: 3910, 3912: 3911, 3913: 3912, 3914: 3913, 3915: 3914, 3916: 3915, 3917: 3916, 3918: 3917, 3919: 3918, 3920: 3919, 3921: 3920, 3922: 3921, 3923: 3922, 3924: 3923, 3925: 3924, 3926: 3925, 3927: 3926, 3928: 3927, 3929: 3928, 3930: 3929, 3931: 3930, 3932: 3931, 3933: 3932, 3934: 3933, 3935: 3934, 3936: 3935, 3937: 3936, 3938: 3937, 3939: 3938, 3940: 3939, 3941: 3940, 3942: 3941, 3943: 3942, 3944: 3943, 3945: 3944, 3946: 3945, 3947: 3946, 3948: 3947, 3949: 3948, 3950: 3949, 3951: 3950, 3952: 3951, 3953: 3952, 3954: 3953, 3955: 3954, 3956: 3955, 3957: 3956, 3958: 3957, 3959: 3958, 3960: 3959, 3961: 3960, 3962: 3961, 3963: 3962, 3964: 3963, 3965: 3964, 3966: 3965, 3967: 3966, 3968: 3967, 3969: 3968, 3970: 3969, 3971: 3970, 3972: 3971, 3973: 3972, 3974: 3973, 3975: 3974, 3976: 3975, 3977: 3976, 3978: 3977, 3979: 3978, 3980: 3979, 3981: 3980, 3982: 3981, 3983: 3982, 3984: 3983, 3985: 3984, 3986: 3985, 3987: 3986, 3988: 3987, 3989: 3988, 3990: 3989, 3991: 3990, 3992: 3991, 3993: 3992, 3994: 3993, 3995: 3994, 3996: 3995, 3997: 3996, 3998: 3997, 3999: 3998, 4000: 3999, 4001: 4000, 4002: 4001, 4003: 4002, 4004: 4003, 4005: 4004, 4006: 4005, 4007: 4006, 4008: 4007, 4009: 4008, 4010: 4009, 4011: 4010, 4012: 4011, 4013: 4012, 4014: 4013, 4015: 4014, 4016: 4015, 4017: 4016, 4018: 4017, 4019: 4018, 4020: 4019, 4021: 4020, 4022: 4021, 4023: 4022, 4024: 4023, 4025: 4024, 4026: 4025, 4027: 4026, 4028: 4027, 4029: 4028, 4030: 4029, 4031: 4030, 4032: 4031, 4033: 4032, 4034: 4033, 4035: 4034, 4036: 4035, 4037: 4036, 4038: 4037, 4039: 4038, 4040: 4039, 4041: 4040, 4042: 4041, 4043: 4042, 4044: 4043, 4045: 4044, 4046: 4045, 4047: 4046, 4048: 4047, 4049: 4048, 4050: 4049, 4051: 4050, 4052: 4051, 4053: 4052, 4054: 4053, 4055: 4054, 4056: 4055, 4057: 4056, 4058: 4057, 4059: 4058, 4060: 4059, 4061: 4060, 4062: 4061, 4063: 4062, 4064: 4063, 4065: 4064, 4066: 4065, 4067: 4066, 4068: 4067, 4069: 4068, 4070: 4069, 4071: 4070, 4072: 4071, 4073: 4072, 4074: 4073, 4075: 4074, 4076: 4075, 4077: 4076, 4078: 4077, 4079: 4078, 4080: 4079, 4081: 4080, 4082: 4081, 4083: 4082, 4084: 4083, 4085: 4084, 4086: 4085, 4087: 4086, 4088: 4087, 4089: 4088, 4090: 4089, 4091: 4090, 4092: 4091, 4093: 4092, 4094: 4093, 4095: 4094, 4096: 4095, 4097: 4096, 4098: 4097, 4099: 4098, 4100: 4099, 4101: 4100, 4102: 4101, 4103: 4102, 4104: 4103, 4105: 4104, 4106: 4105, 4107: 4106, 4108: 4107, 4109: 4108, 4110: 4109, 4111: 4110, 4112: 4111, 4113: 4112, 4114: 4113, 4115: 4114, 4116: 4115, 4117: 4116, 4118: 4117, 4119: 4118, 4120: 4119, 4121: 4120, 4122: 4121, 4123: 4122, 4124: 4123, 4125: 4124, 4126: 4125, 4127: 4126, 4128: 4127, 4129: 4128, 4130: 4129, 4131: 4130, 4132: 4131, 4133: 4132, 4134: 4133, 4135: 4134, 4136: 4135, 4137: 4136, 4138: 4137, 4139: 4138, 4140: 4139, 4141: 4140, 4142: 4141, 4143: 4142, 4144: 4143, 4145: 4144, 4146: 4145, 4147: 4146, 4148: 4147, 4149: 4148, 4150: 4149, 4151: 4150, 4152: 4151, 4153: 4152, 4154: 4153, 4155: 4154, 4156: 4155, 4157: 4156, 4158: 4157, 4159: 4158, 4160: 4159, 4161: 4160, 4162: 4161, 4163: 4162, 4164: 4163, 4165: 4164, 4166: 4165, 4167: 4166, 4168: 4167, 4169: 4168, 4170: 4169, 4171: 4170, 4172: 4171, 4173: 4172, 4174: 4173, 4175: 4174, 4176: 4175, 4177: 4176, 4178: 4177, 4179: 4178, 4180: 4179, 4181: 4180, 4182: 4181, 4183: 4182, 4184: 4183, 4185: 4184, 4186: 4185, 4187: 4186, 4188: 4187, 4189: 4188, 4190: 4189, 4191: 4190, 4192: 4191, 4193: 4192, 4194: 4193, 4195: 4194, 4196: 4195, 4197: 4196, 4198: 4197, 4199: 4198, 4200: 4199, 4201: 4200, 4202: 4201, 4203: 4202, 4204: 4203, 4205: 4204, 4206: 4205, 4207: 4206, 4208: 4207, 4209: 4208, 4210: 4209, 4211: 4210, 4212: 4211, 4213: 4212, 4214: 4213, 4215: 4214, 4216: 4215, 4217: 4216, 4218: 4217, 4219: 4218, 4220: 4219, 4221: 4220, 4222: 4221, 4223: 4222, 4224: 4223, 4225: 4224, 4226: 4225, 4227: 4226, 4228: 4227, 4229: 4228, 4230: 4229, 4231: 4230, 4232: 4231, 4233: 4232, 4234: 4233, 4235: 4234, 4236: 4235, 4237: 4236, 4238: 4237, 4239: 4238, 4240: 4239, 4241: 4240, 4242: 4241, 4243: 4242, 4244: 4243, 4245: 4244, 4246: 4245, 4247: 4246, 4248: 4247, 4249: 4248, 4250: 4249, 4251: 4250, 4252: 4251, 4253: 4252, 4254: 4253, 4255: 4254, 4256: 4255, 4257: 4256, 4258: 4257, 4259: 4258, 4260: 4259, 4261: 4260, 4262: 4261, 4263: 4262, 4264: 4263, 4265: 4264, 4266: 4265, 4267: 4266, 4268: 4267, 4269: 4268, 4270: 4269, 4271: 4270, 4272: 4271, 4273: 4272, 4274: 4273, 4275: 4274, 4276: 4275, 4277: 4276, 4278: 4277, 4279: 4278, 4280: 4279, 4281: 4280, 4282: 4281, 4283: 4282, 4284: 4283, 4285: 4284, 4286: 4285, 4287: 4286, 4288: 4287, 4289: 4288, 4290: 4289, 4291: 4290, 4292: 4291, 4293: 4292, 4294: 4293, 4295: 4294, 4296: 4295, 4297: 4296, 4298: 4297, 4299: 4298, 4300: 4299, 4301: 4300, 4302: 4301, 4303: 4302, 4304: 4303, 4305: 4304, 4306: 4305, 4307: 4306, 4308: 4307, 4309: 4308, 4310: 4309, 4311: 4310, 4312: 4311, 4313: 4312, 4314: 4313, 4315: 4314, 4316: 4315, 4317: 4316, 4318: 4317, 4319: 4318, 4320: 4319, 4321: 4320, 4322: 4321, 4323: 4322, 4324: 4323, 4325: 4324, 4326: 4325, 4327: 4326, 4328: 4327, 4329: 4328, 4330: 4329, 4331: 4330, 4332: 4331, 4333: 4332, 4334: 4333, 4335: 4334, 4336: 4335, 4337: 4336, 4338: 4337, 4339: 4338, 4340: 4339, 4341: 4340, 4342: 4341, 4343: 4342, 4344: 4343, 4345: 4344, 4346: 4345, 4347: 4346, 4348: 4347, 4349: 4348, 4350: 4349, 4351: 4350, 4352: 4351, 4353: 4352, 4354: 4353, 4355: 4354, 4356: 4355, 4357: 4356, 4358: 4357, 4359: 4358, 4360: 4359, 4361: 4360, 4362: 4361, 4363: 4362, 4364: 4363, 4365: 4364, 4366: 4365, 4367: 4366, 4368: 4367, 4369: 4368, 4370: 4369, 4371: 4370, 4372: 4371, 4373: 4372, 4374: 4373, 4375: 4374, 4376: 4375, 4377: 4376, 4378: 4377, 4379: 4378, 4380: 4379, 4381: 4380, 4382: 4381, 4383: 4382, 4384: 4383, 4385: 4384, 4386: 4385, 4387: 4386, 4388: 4387, 4389: 4388, 4390: 4389, 4391: 4390, 4392: 4391, 4393: 4392, 4394: 4393, 4395: 4394, 4396: 4395, 4397: 4396, 4398: 4397, 4399: 4398, 4400: 4399, 4401: 4400, 4402: 4401, 4403: 4402, 4404: 4403, 4405: 4404, 4406: 4405, 4407: 4406, 4408: 4407, 4409: 4408, 4410: 4409, 4411: 4410, 4412: 4411, 4413: 4412, 4414: 4413, 4415: 4414, 4416: 4415, 4417: 4416, 4418: 4417, 4419: 4418, 4420: 4419, 4421: 4420, 4422: 4421, 4423: 4422, 4424: 4423, 4425: 4424, 4426: 4425, 4427: 4426, 4428: 4427, 4429: 4428, 4430: 4429, 4431: 4430, 4432: 4431, 4433: 4432, 4434: 4433, 4435: 4434, 4436: 4435, 4437: 4436, 4438: 4437, 4439: 4438, 4440: 4439, 4441: 4440, 4442: 4441, 4443: 4442, 4444: 4443, 4445: 4444, 4446: 4445, 4447: 4446, 4448: 4447, 4449: 4448, 4450: 4449, 4451: 4450, 4452: 4451, 4453: 4452, 4454: 4453, 4455: 4454, 4456: 4455, 4457: 4456, 4458: 4457, 4459: 4458, 4460: 4459, 4461: 4460, 4462: 4461, 4463: 4462, 4464: 4463, 4465: 4464, 4466: 4465, 4467: 4466, 4468: 4467, 4469: 4468, 4470: 4469, 4471: 4470, 4472: 4471, 4473: 4472, 4474: 4473, 4475: 4474, 4476: 4475, 4477: 4476, 4478: 4477, 4479: 4478, 4480: 4479, 4481: 4480, 4482: 4481, 4483: 4482, 4484: 4483, 4485: 4484, 4486: 4485, 4487: 4486, 4488: 4487, 4489: 4488, 4490: 4489, 4491: 4490, 4492: 4491, 4493: 4492, 4494: 4493, 4495: 4494, 4496: 4495, 4497: 4496, 4498: 4497, 4499: 4498, 4500: 4499, 4501: 4500, 4502: 4501, 4503: 4502, 4504: 4503, 4505: 4504, 4506: 4505, 4507: 4506, 4508: 4507, 4509: 4508, 4510: 4509, 4511: 4510, 4512: 4511, 4513: 4512, 4514: 4513, 4515: 4514, 4516: 4515, 4517: 4516, 4518: 4517, 4519: 4518, 4520: 4519, 4521: 4520, 4522: 4521, 4523: 4522, 4524: 4523, 4525: 4524, 4526: 4525, 4527: 4526, 4528: 4527, 4529: 4528, 4530: 4529, 4531: 4530, 4532: 4531, 4533: 4532, 4534: 4533, 4535: 4534, 4536: 4535, 4537: 4536, 4538: 4537, 4539: 4538, 4540: 4539, 4541: 4540, 4542: 4541, 4543: 4542, 4544: 4543, 4545: 4544, 4546: 4545, 4547: 4546, 4548: 4547, 4549: 4548, 4550: 4549, 4551: 4550, 4552: 4551, 4553: 4552, 4554: 4553, 4555: 4554, 4556: 4555, 4557: 4556, 4558: 4557, 4559: 4558, 4560: 4559, 4561: 4560, 4562: 4561, 4563: 4562, 4564: 4563, 4565: 4564, 4566: 4565, 4567: 4566, 4568: 4567, 4569: 4568, 4570: 4569, 4571: 4570, 4572: 4571, 4573: 4572, 4574: 4573, 4575: 4574, 4576: 4575, 4577: 4576, 4578: 4577, 4579: 4578, 4580: 4579, 4581: 4580, 4582: 4581, 4583: 4582, 4584: 4583, 4585: 4584, 4586: 4585, 4587: 4586, 4588: 4587, 4589: 4588, 4590: 4589, 4591: 4590, 4592: 4591, 4593: 4592, 4594: 4593, 4595: 4594, 4596: 4595, 4597: 4596, 4598: 4597, 4599: 4598, 4600: 4599, 4601: 4600, 4602: 4601, 4603: 4602, 4604: 4603, 4605: 4604, 4606: 4605, 4607: 4606, 4608: 4607, 4609: 4608, 4610: 4609, 4611: 4610, 4612: 4611, 4613: 4612, 4614: 4613, 4615: 4614, 4616: 4615, 4617: 4616, 4618: 4617, 4619: 4618, 4620: 4619, 4621: 4620, 4622: 4621, 4623: 4622, 4624: 4623, 4625: 4624, 4626: 4625, 4627: 4626, 4628: 4627, 4629: 4628, 4630: 4629, 4631: 4630, 4632: 4631, 4633: 4632, 4634: 4633, 4635: 4634, 4636: 4635, 4637: 4636, 4638: 4637, 4639: 4638, 4640: 4639, 4641: 4640, 4642: 4641, 4643: 4642, 4644: 4643, 4645: 4644, 4646: 4645, 4647: 4646, 4648: 4647, 4649: 4648, 4650: 4649, 4651: 4650, 4652: 4651, 4653: 4652, 4654: 4653, 4655: 4654, 4656: 4655, 4657: 4656, 4658: 4657, 4659: 4658, 4660: 4659, 4661: 4660, 4662: 4661, 4663: 4662, 4664: 4663, 4665: 4664, 4666: 4665, 4667: 4666, 4668: 4667, 4669: 4668, 4670: 4669, 4671: 4670, 4672: 4671, 4673: 4672, 4674: 4673, 4675: 4674, 4676: 4675, 4677: 4676, 4678: 4677, 4679: 4678, 4680: 4679, 4681: 4680, 4682: 4681, 4683: 4682, 4684: 4683, 4685: 4684, 4686: 4685, 4687: 4686, 4688: 4687, 4689: 4688, 4690: 4689, 4691: 4690, 4692: 4691, 4693: 4692, 4694: 4693, 4695: 4694, 4696: 4695, 4697: 4696, 4698: 4697, 4699: 4698, 4700: 4699, 4701: 4700, 4702: 4701, 4703: 4702, 4704: 4703, 4705: 4704, 4706: 4705, 4707: 4706, 4708: 4707, 4709: 4708, 4710: 4709, 4711: 4710, 4712: 4711, 4713: 4712, 4714: 4713, 4715: 4714, 4716: 4715, 4717: 4716, 4718: 4717, 4719: 4718, 4720: 4719, 4721: 4720, 4722: 4721, 4723: 4722, 4724: 4723, 4725: 4724, 4726: 4725, 4727: 4726, 4728: 4727, 4729: 4728, 4730: 4729, 4731: 4730, 4732: 4731, 4733: 4732, 4734: 4733, 4735: 4734, 4736: 4735, 4737: 4736, 4738: 4737, 4739: 4738, 4740: 4739, 4741: 4740, 4742: 4741, 4743: 4742, 4744: 4743, 4745: 4744, 4746: 4745, 4747: 4746, 4748: 4747, 4749: 4748, 4750: 4749, 4751: 4750, 4752: 4751, 4753: 4752, 4754: 4753, 4755: 4754, 4756: 4755, 4757: 4756, 4758: 4757, 4759: 4758, 4760: 4759, 4761: 4760, 4762: 4761, 4763: 4762, 4764: 4763, 4765: 4764, 4766: 4765, 4767: 4766, 4768: 4767, 4769: 4768, 4770: 4769, 4771: 4770, 4772: 4771, 4773: 4772, 4774: 4773, 4775: 4774, 4776: 4775, 4777: 4776, 4778: 4777, 4779: 4778, 4780: 4779, 4781: 4780, 4782: 4781, 4783: 4782, 4784: 4783, 4785: 4784, 4786: 4785, 4787: 4786, 4788: 4787, 4789: 4788, 4790: 4789, 4791: 4790, 4792: 4791, 4793: 4792, 4794: 4793, 4795: 4794, 4796: 4795, 4797: 4796, 4798: 4797, 4799: 4798, 4800: 4799, 4801: 4800, 4802: 4801, 4803: 4802, 4804: 4803, 4805: 4804, 4806: 4805, 4807: 4806, 4808: 4807, 4809: 4808, 4810: 4809, 4811: 4810, 4812: 4811, 4813: 4812, 4814: 4813, 4815: 4814, 4816: 4815, 4817: 4816, 4818: 4817, 4819: 4818, 4820: 4819, 4821: 4820, 4822: 4821, 4823: 4822, 4824: 4823, 4825: 4824, 4826: 4825, 4827: 4826, 4828: 4827, 4829: 4828, 4830: 4829, 4831: 4830, 4832: 4831, 4833: 4832, 4834: 4833, 4835: 4834, 4836: 4835, 4837: 4836, 4838: 4837, 4839: 4838, 4840: 4839, 4841: 4840, 4842: 4841, 4843: 4842, 4844: 4843, 4845: 4844, 4846: 4845, 4847: 4846, 4848: 4847, 4849: 4848, 4850: 4849, 4851: 4850, 4852: 4851, 4853: 4852, 4854: 4853, 4855: 4854, 4856: 4855, 4857: 4856, 4858: 4857, 4859: 4858, 4860: 4859, 4861: 4860, 4862: 4861, 4863: 4862, 4864: 4863, 4865: 4864, 4866: 4865, 4867: 4866, 4868: 4867, 4869: 4868, 4870: 4869, 4871: 4870, 4872: 4871, 4873: 4872, 4874: 4873, 4875: 4874, 4876: 4875, 4877: 4876, 4878: 4877, 4879: 4878, 4880: 4879, 4881: 4880, 4882: 4881, 4883: 4882, 4884: 4883, 4885: 4884, 4886: 4885, 4887: 4886, 4888: 4887, 4889: 4888, 4890: 4889, 4891: 4890, 4892: 4891, 4893: 4892, 4894: 4893, 4895: 4894, 4896: 4895, 4897: 4896, 4898: 4897, 4899: 4898, 4900: 4899, 4901: 4900, 4902: 4901, 4903: 4902, 4904: 4903, 4905: 4904, 4906: 4905, 4907: 4906, 4908: 4907, 4909: 4908, 4910: 4909, 4911: 4910, 4912: 4911, 4913: 4912, 4914: 4913, 4915: 4914, 4916: 4915, 4917: 4916, 4918: 4917, 4919: 4918, 4920: 4919, 4921: 4920, 4922: 4921, 4923: 4922, 4924: 4923, 4925: 4924, 4926: 4925, 4927: 4926, 4928: 4927, 4929: 4928, 4930: 4929, 4931: 4930, 4932: 4931, 4933: 4932, 4934: 4933, 4935: 4934, 4936: 4935, 4937: 4936, 4938: 4937, 4939: 4938, 4940: 4939, 4941: 4940, 4942: 4941, 4943: 4942, 4944: 4943, 4945: 4944, 4946: 4945, 4947: 4946, 4948: 4947, 4949: 4948, 4950: 4949, 4951: 4950, 4952: 4951, 4953: 4952, 4954: 4953, 4955: 4954, 4956: 4955, 4957: 4956, 4958: 4957, 4959: 4958, 4960: 4959, 4961: 4960, 4962: 4961, 4963: 4962, 4964: 4963, 4965: 4964, 4966: 4965, 4967: 4966, 4968: 4967, 4969: 4968, 4970: 4969, 4971: 4970, 4972: 4971, 4973: 4972, 4974: 4973, 4975: 4974, 4976: 4975, 4977: 4976, 4978: 4977, 4979: 4978, 4980: 4979, 4981: 4980, 4982: 4981, 4983: 4982, 4984: 4983, 4985: 4984, 4986: 4985, 4987: 4986, 4988: 4987, 4989: 4988, 4990: 4989, 4991: 4990, 4992: 4991, 4993: 4992, 4994: 4993, 4995: 4994, 4996: 4995, 4997: 4996, 4998: 4997, 4999: 4998, 5000: 4999, 5001: 5000, 5002: 5001, 5003: 5002, 5004: 5003, 5005: 5004, 5006: 5005, 5007: 5006, 5008: 5007, 5009: 5008, 5010: 5009, 5011: 5010, 5012: 5011, 5013: 5012, 5014: 5013, 5015: 5014, 5016: 5015, 5017: 5016, 5018: 5017, 5019: 5018, 5020: 5019, 5021: 5020, 5022: 5021, 5023: 5022, 5024: 5023, 5025: 5024, 5026: 5025, 5027: 5026, 5028: 5027, 5029: 5028, 5030: 5029, 5031: 5030, 5032: 5031, 5033: 5032, 5034: 5033, 5035: 5034, 5036: 5035, 5037: 5036, 5038: 5037, 5039: 5038, 5040: 5039, 5041: 5040, 5042: 5041, 5043: 5042, 5044: 5043, 5045: 5044, 5046: 5045, 5047: 5046, 5048: 5047, 5049: 5048, 5050: 5049, 5051: 5050, 5052: 5051, 5053: 5052, 5054: 5053, 5055: 5054, 5056: 5055, 5057: 5056, 5058: 5057, 5059: 5058, 5060: 5059, 5061: 5060, 5062: 5061, 5063: 5062, 5064: 5063, 5065: 5064, 5066: 5065, 5067: 5066, 5068: 5067, 5069: 5068, 5070: 5069, 5071: 5070, 5072: 5071, 5073: 5072, 5074: 5073, 5075: 5074, 5076: 5075, 5077: 5076, 5078: 5077, 5079: 5078, 5080: 5079, 5081: 5080, 5082: 5081, 5083: 5082, 5084: 5083, 5085: 5084, 5086: 5085, 5087: 5086, 5088: 5087, 5089: 5088, 5090: 5089, 5091: 5090, 5092: 5091, 5093: 5092, 5094: 5093, 5095: 5094, 5096: 5095, 5097: 5096, 5098: 5097, 5099: 5098, 5100: 5099, 5101: 5100, 5102: 5101, 5103: 5102, 5104: 5103, 5105: 5104, 5106: 5105, 5107: 5106, 5108: 5107, 5109: 5108, 5110: 5109, 5111: 5110, 5112: 5111, 5113: 5112, 5114: 5113, 5115: 5114, 5116: 5115, 5117: 5116, 5118: 5117, 5119: 5118, 5120: 5119, 5121: 5120, 5122: 5121, 5123: 5122, 5124: 5123, 5125: 5124, 5126: 5125, 5127: 5126, 5128: 5127, 5129: 5128, 5130: 5129, 5131: 5130, 5132: 5131, 5133: 5132, 5134: 5133, 5135: 5134, 5136: 5135, 5137: 5136, 5138: 5137, 5139: 5138, 5140: 5139, 5141: 5140, 5142: 5141, 5143: 5142, 5144: 5143, 5145: 5144, 5146: 5145, 5147: 5146, 5148: 5147, 5149: 5148, 5150: 5149, 5151: 5150, 5152: 5151, 5153: 5152, 5154: 5153, 5155: 5154, 5156: 5155, 5157: 5156, 5158: 5157, 5159: 5158, 5160: 5159, 5161: 5160, 5162: 5161, 5163: 5162, 5164: 5163, 5165: 5164, 5166: 5165, 5167: 5166, 5168: 5167, 5169: 5168, 5170: 5169, 5171: 5170, 5172: 5171, 5173: 5172, 5174: 5173, 5175: 5174, 5176: 5175, 5177: 5176, 5178: 5177, 5179: 5178, 5180: 5179, 5181: 5180, 5182: 5181, 5183: 5182, 5184: 5183, 5185: 5184, 5186: 5185, 5187: 5186, 5188: 5187, 5189: 5188, 5190: 5189, 5191: 5190, 5192: 5191, 5193: 5192, 5194: 5193, 5195: 5194, 5196: 5195, 5197: 5196, 5198: 5197, 5199: 5198, 5200: 5199, 5201: 5200, 5202: 5201, 5203: 5202, 5204: 5203, 5205: 5204, 5206: 5205, 5207: 5206, 5208: 5207, 5209: 5208, 5210: 5209, 5211: 5210, 5212: 5211, 5213: 5212, 5214: 5213, 5215: 5214, 5216: 5215, 5217: 5216, 5218: 5217, 5219: 5218, 5220: 5219, 5221: 5220, 5222: 5221, 5223: 5222, 5224: 5223, 5225: 5224, 5226: 5225, 5227: 5226, 5228: 5227, 5229: 5228, 5230: 5229, 5231: 5230, 5232: 5231, 5233: 5232, 5234: 5233, 5235: 5234, 5236: 5235, 5237: 5236, 5238: 5237, 5239: 5238, 5240: 5239, 5241: 5240, 5242: 5241, 5243: 5242, 5244: 5243, 5245: 5244, 5246: 5245, 5247: 5246, 5248: 5247, 5249: 5248, 5250: 5249, 5251: 5250, 5252: 5251, 5253: 5252, 5254: 5253, 5255: 5254, 5256: 5255, 5257: 5256, 5258: 5257, 5259: 5258, 5260: 5259, 5261: 5260, 5262: 5261, 5263: 5262, 5264: 5263, 5265: 5264, 5266: 5265, 5267: 5266, 5268: 5267, 5269: 5268, 5270: 5269, 5271: 5270, 5272: 5271, 5273: 5272, 5274: 5273, 5275: 5274, 5276: 5275, 5277: 5276, 5278: 5277, 5279: 5278, 5280: 5279, 5281: 5280, 5282: 5281, 5283: 5282, 5284: 5283, 5285: 5284, 5286: 5285, 5287: 5286, 5288: 5287, 5289: 5288, 5290: 5289, 5291: 5290, 5292: 5291, 5293: 5292, 5294: 5293, 5295: 5294, 5296: 5295, 5297: 5296, 5298: 5297, 5299: 5298, 5300: 5299, 5301: 5300, 5302: 5301, 5303: 5302, 5304: 5303, 5305: 5304, 5306: 5305, 5307: 5306, 5308: 5307, 5309: 5308, 5310: 5309, 5311: 5310, 5312: 5311, 5313: 5312, 5314: 5313, 5315: 5314, 5316: 5315, 5317: 5316, 5318: 5317, 5319: 5318, 5320: 5319, 5321: 5320, 5322: 5321, 5323: 5322, 5324: 5323, 5325: 5324, 5326: 5325, 5327: 5326, 5328: 5327, 5329: 5328, 5330: 5329, 5331: 5330, 5332: 5331, 5333: 5332, 5334: 5333, 5335: 5334, 5336: 5335, 5337: 5336, 5338: 5337, 5339: 5338, 5340: 5339, 5341: 5340, 5342: 5341, 5343: 5342, 5344: 5343, 5345: 5344, 5346: 5345, 5347: 5346, 5348: 5347, 5349: 5348, 5350: 5349, 5351: 5350, 5352: 5351, 5353: 5352, 5354: 5353, 5355: 5354, 5356: 5355, 5357: 5356, 5358: 5357, 5359: 5358, 5360: 5359, 5361: 5360, 5362: 5361, 5363: 5362, 5364: 5363, 5365: 5364, 5366: 5365, 5367: 5366, 5368: 5367, 5369: 5368, 5370: 5369, 5371: 5370, 5372: 5371, 5373: 5372, 5374: 5373, 5375: 5374, 5376: 5375, 5377: 5376, 5378: 5377, 5379: 5378, 5380: 5379, 5381: 5380, 5382: 5381, 5383: 5382, 5384: 5383, 5385: 5384, 5386: 5385, 5387: 5386, 5388: 5387, 5389: 5388, 5390: 5389, 5391: 5390, 5392: 5391, 5393: 5392, 5394: 5393, 5395: 5394, 5396: 5395, 5397: 5396, 5398: 5397, 5399: 5398, 5400: 5399, 5401: 5400, 5402: 5401, 5403: 5402, 5404: 5403, 5405: 5404, 5406: 5405, 5407: 5406, 5408: 5407, 5409: 5408, 5410: 5409, 5411: 5410, 5412: 5411, 5413: 5412, 5414: 5413, 5415: 5414, 5416: 5415, 5417: 5416, 5418: 5417, 5419: 5418, 5420: 5419, 5421: 5420, 5422: 5421, 5423: 5422, 5424: 5423, 5425: 5424, 5426: 5425, 5427: 5426, 5428: 5427, 5429: 5428, 5430: 5429, 5431: 5430, 5432: 5431, 5433: 5432, 5434: 5433, 5435: 5434, 5436: 5435, 5437: 5436, 5438: 5437, 5439: 5438, 5440: 5439, 5441: 5440, 5442: 5441, 5443: 5442, 5444: 5443, 5445: 5444, 5446: 5445, 5447: 5446, 5448: 5447, 5449: 5448, 5450: 5449, 5451: 5450, 5452: 5451, 5453: 5452, 5454: 5453, 5455: 5454, 5456: 5455, 5457: 5456, 5458: 5457, 5459: 5458, 5460: 5459, 5461: 5460, 5462: 5461, 5463: 5462, 5464: 5463, 5465: 5464, 5466: 5465, 5467: 5466, 5468: 5467, 5469: 5468, 5470: 5469, 5471: 5470, 5472: 5471, 5473: 5472, 5474: 5473, 5475: 5474, 5476: 5475, 5477: 5476, 5478: 5477, 5479: 5478, 5480: 5479, 5481: 5480, 5482: 5481, 5483: 5482, 5484: 5483, 5485: 5484, 5486: 5485, 5487: 5486, 5488: 5487, 5489: 5488, 5490: 5489, 5491: 5490, 5492: 5491, 5493: 5492, 5494: 5493, 5495: 5494, 5496: 5495, 5497: 5496, 5498: 5497, 5499: 5498, 5500: 5499, 5501: 5500, 5502: 5501, 5503: 5502, 5504: 5503, 5505: 5504, 5506: 5505, 5507: 5506, 5508: 5507, 5509: 5508, 5510: 5509, 5511: 5510, 5512: 5511, 5513: 5512, 5514: 5513, 5515: 5514, 5516: 5515, 5517: 5516, 5518: 5517, 5519: 5518, 5520: 5519, 5521: 5520, 5522: 5521, 5523: 5522, 5524: 5523, 5525: 5524, 5526: 5525, 5527: 5526, 5528: 5527, 5529: 5528, 5530: 5529, 5531: 5530, 5532: 5531, 5533: 5532, 5534: 5533, 5535: 5534, 5536: 5535, 5537: 5536, 5538: 5537, 5539: 5538, 5540: 5539, 5541: 5540, 5542: 5541, 5543: 5542, 5544: 5543, 5545: 5544, 5546: 5545, 5547: 5546, 5548: 5547, 5549: 5548, 5550: 5549, 5551: 5550, 5552: 5551, 5553: 5552, 5554: 5553, 5555: 5554, 5556: 5555, 5557: 5556, 5558: 5557, 5559: 5558, 5560: 5559, 5561: 5560, 5562: 5561, 5563: 5562, 5564: 5563, 5565: 5564, 5566: 5565, 5567: 5566, 5568: 5567, 5569: 5568, 5570: 5569, 5571: 5570, 5572: 5571, 5573: 5572, 5574: 5573, 5575: 5574, 5576: 5575, 5577: 5576, 5578: 5577, 5579: 5578, 5580: 5579, 5581: 5580, 5582: 5581, 5583: 5582, 5584: 5583, 5585: 5584, 5586: 5585, 5587: 5586, 5588: 5587, 5589: 5588, 5590: 5589, 5591: 5590, 5592: 5591, 5593: 5592, 5594: 5593, 5595: 5594, 5596: 5595, 5597: 5596, 5598: 5597, 5599: 5598, 5600: 5599, 5601: 5600, 5602: 5601, 5603: 5602, 5604: 5603, 5605: 5604, 5606: 5605, 5607: 5606, 5608: 5607, 5609: 5608, 5610: 5609, 5611: 5610, 5612: 5611, 5613: 5612, 5614: 5613, 5615: 5614, 5616: 5615, 5617: 5616, 5618: 5617, 5619: 5618, 5620: 5619, 5621: 5620, 5622: 5621, 5623: 5622, 5624: 5623, 5625: 5624, 5626: 5625, 5627: 5626, 5628: 5627, 5629: 5628, 5630: 5629, 5631: 5630, 5632: 5631, 5633: 5632, 5634: 5633, 5635: 5634, 5636: 5635, 5637: 5636, 5638: 5637, 5639: 5638, 5640: 5639, 5641: 5640, 5642: 5641, 5643: 5642, 5644: 5643, 5645: 5644, 5646: 5645, 5647: 5646, 5648: 5647, 5649: 5648, 5650: 5649, 5651: 5650, 5652: 5651, 5653: 5652, 5654: 5653, 5655: 5654, 5656: 5655, 5657: 5656, 5658: 5657, 5659: 5658, 5660: 5659, 5661: 5660, 5662: 5661, 5663: 5662, 5664: 5663, 5665: 5664, 5666: 5665, 5667: 5666, 5668: 5667, 5669: 5668, 5670: 5669, 5671: 5670, 5672: 5671, 5673: 5672, 5674: 5673, 5675: 5674, 5676: 5675, 5677: 5676, 5678: 5677, 5679: 5678, 5680: 5679, 5681: 5680, 5682: 5681, 5683: 5682, 5684: 5683, 5685: 5684, 5686: 5685, 5687: 5686, 5688: 5687, 5689: 5688, 5690: 5689, 5691: 5690, 5692: 5691, 5693: 5692, 5694: 5693, 5695: 5694, 5696: 5695, 5697: 5696, 5698: 5697, 5699: 5698, 5700: 5699, 5701: 5700, 5702: 5701, 5703: 5702, 5704: 5703, 5705: 5704, 5706: 5705, 5707: 5706, 5708: 5707, 5709: 5708, 5710: 5709, 5711: 5710, 5712: 5711, 5713: 5712, 5714: 5713, 5715: 5714, 5716: 5715, 5717: 5716, 5718: 5717, 5719: 5718, 5720: 5719, 5721: 5720, 5722: 5721, 5723: 5722, 5724: 5723, 5725: 5724, 5726: 5725, 5727: 5726, 5728: 5727, 5729: 5728, 5730: 5729, 5731: 5730, 5732: 5731, 5733: 5732, 5734: 5733, 5735: 5734, 5736: 5735, 5737: 5736, 5738: 5737, 5739: 5738, 5740: 5739, 5741: 5740, 5742: 5741, 5743: 5742, 5744: 5743, 5745: 5744, 5746: 5745, 5747: 5746, 5748: 5747, 5749: 5748, 5750: 5749, 5751: 5750, 5752: 5751, 5753: 5752, 5754: 5753, 5755: 5754, 5756: 5755, 5757: 5756, 5758: 5757, 5759: 5758, 5760: 5759, 5761: 5760, 5762: 5761, 5763: 5762, 5764: 5763, 5765: 5764, 5766: 5765, 5767: 5766, 5768: 5767, 5769: 5768, 5770: 5769, 5771: 5770, 5772: 5771, 5773: 5772, 5774: 5773, 5775: 5774, 5776: 5775, 5777: 5776, 5778: 5777, 5779: 5778, 5780: 5779, 5781: 5780, 5782: 5781, 5783: 5782, 5784: 5783, 5785: 5784, 5786: 5785, 5787: 5786, 5788: 5787, 5789: 5788, 5790: 5789, 5791: 5790, 5792: 5791, 5793: 5792, 5794: 5793, 5795: 5794, 5796: 5795, 5797: 5796, 5798: 5797, 5799: 5798, 5800: 5799, 5801: 5800, 5802: 5801, 5803: 5802, 5804: 5803, 5805: 5804, 5806: 5805, 5807: 5806, 5808: 5807, 5809: 5808, 5810: 5809, 5811: 5810, 5812: 5811, 5813: 5812, 5814: 5813, 5815: 5814, 5816: 5815, 5817: 5816, 5818: 5817, 5819: 5818, 5820: 5819, 5821: 5820, 5822: 5821, 5823: 5822, 5824: 5823, 5825: 5824, 5826: 5825, 5827: 5826, 5828: 5827, 5829: 5828, 5830: 5829, 5831: 5830, 5832: 5831, 5833: 5832, 5834: 5833, 5835: 5834, 5836: 5835, 5837: 5836, 5838: 5837, 5839: 5838, 5840: 5839, 5841: 5840, 5842: 5841, 5843: 5842, 5844: 5843, 5845: 5844, 5846: 5845, 5847: 5846, 5848: 5847, 5849: 5848, 5850: 5849, 5851: 5850, 5852: 5851, 5853: 5852, 5854: 5853, 5855: 5854, 5856: 5855, 5857: 5856, 5858: 5857, 5859: 5858, 5860: 5859, 5861: 5860, 5862: 5861, 5863: 5862, 5864: 5863, 5865: 5864, 5866: 5865, 5867: 5866, 5868: 5867, 5869: 5868, 5870: 5869, 5871: 5870, 5872: 5871, 5873: 5872, 5874: 5873, 5875: 5874, 5876: 5875, 5877: 5876, 5878: 5877, 5879: 5878, 5880: 5879, 5881: 5880, 5882: 5881, 5883: 5882, 5884: 5883, 5885: 5884, 5886: 5885, 5887: 5886, 5888: 5887, 5889: 5888, 5890: 5889, 5891: 5890, 5892: 5891, 5893: 5892, 5894: 5893, 5895: 5894, 5896: 5895, 5897: 5896, 5898: 5897, 5899: 5898, 5900: 5899, 5901: 5900, 5902: 5901, 5903: 5902, 5904: 5903, 5905: 5904, 5906: 5905, 5907: 5906, 5908: 5907, 5909: 5908, 5910: 5909, 5911: 5910, 5912: 5911, 5913: 5912, 5914: 5913, 5915: 5914, 5916: 5915, 5917: 5916, 5918: 5917, 5919: 5918, 5920: 5919, 5921: 5920, 5922: 5921, 5923: 5922, 5924: 5923, 5925: 5924, 5926: 5925, 5927: 5926, 5928: 5927, 5929: 5928, 5930: 5929, 5931: 5930, 5932: 5931, 5933: 5932, 5934: 5933, 5935: 5934, 5936: 5935, 5937: 5936, 5938: 5937, 5939: 5938, 5940: 5939, 5941: 5940, 5942: 5941, 5943: 5942, 5944: 5943, 5945: 5944, 5946: 5945, 5947: 5946, 5948: 5947, 5949: 5948, 5950: 5949, 5951: 5950, 5952: 5951, 5953: 5952, 5954: 5953, 5955: 5954, 5956: 5955, 5957: 5956, 5958: 5957, 5959: 5958, 5960: 5959, 5961: 5960, 5962: 5961, 5963: 5962, 5964: 5963, 5965: 5964, 5966: 5965, 5967: 5966, 5968: 5967, 5969: 5968, 5970: 5969, 5971: 5970, 5972: 5971, 5973: 5972, 5974: 5973, 5975: 5974, 5976: 5975, 5977: 5976, 5978: 5977, 5979: 5978, 5980: 5979, 5981: 5980, 5982: 5981, 5983: 5982, 5984: 5983, 5985: 5984, 5986: 5985, 5987: 5986, 5988: 5987, 5989: 5988, 5990: 5989, 5991: 5990, 5992: 5991, 5993: 5992, 5994: 5993, 5995: 5994, 5996: 5995, 5997: 5996, 5998: 5997, 5999: 5998, 6000: 5999, 6001: 6000, 6002: 6001, 6003: 6002, 6004: 6003, 6005: 6004, 6006: 6005, 6007: 6006, 6008: 6007, 6009: 6008, 6010: 6009, 6011: 6010, 6012: 6011, 6013: 6012, 6014: 6013, 6015: 6014, 6016: 6015, 6017: 6016, 6018: 6017, 6019: 6018, 6020: 6019, 6021: 6020, 6022: 6021, 6023: 6022, 6024: 6023, 6025: 6024, 6026: 6025, 6027: 6026, 6028: 6027, 6029: 6028, 6030: 6029, 6031: 6030, 6032: 6031, 6033: 6032, 6034: 6033, 6035: 6034, 6036: 6035, 6037: 6036, 6038: 6037, 6039: 6038, 6040: 6039}} {'user_id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 30: 31, 31: 32, 32: 33, 33: 34, 34: 35, 35: 36, 36: 37, 37: 38, 38: 39, 39: 40, 40: 41, 41: 42, 42: 43, 43: 44, 44: 45, 45: 46, 46: 47, 47: 48, 48: 49, 49: 50, 50: 51, 51: 52, 52: 53, 53: 54, 54: 55, 55: 56, 56: 57, 57: 58, 58: 59, 59: 60, 60: 61, 61: 62, 62: 63, 63: 64, 64: 65, 65: 66, 66: 67, 67: 68, 68: 69, 69: 70, 70: 71, 71: 72, 72: 73, 73: 74, 74: 75, 75: 76, 76: 77, 77: 78, 78: 79, 79: 80, 80: 81, 81: 82, 82: 83, 83: 84, 84: 85, 85: 86, 86: 87, 87: 88, 88: 89, 89: 90, 90: 91, 91: 92, 92: 93, 93: 94, 94: 95, 95: 96, 96: 97, 97: 98, 98: 99, 99: 100, 100: 101, 101: 102, 102: 103, 103: 104, 104: 105, 105: 106, 106: 107, 107: 108, 108: 109, 109: 110, 110: 111, 111: 112, 112: 113, 113: 114, 114: 115, 115: 116, 116: 117, 117: 118, 118: 119, 119: 120, 120: 121, 121: 122, 122: 123, 123: 124, 124: 125, 125: 126, 126: 127, 127: 128, 128: 129, 129: 130, 130: 131, 131: 132, 132: 133, 133: 134, 134: 135, 135: 136, 136: 137, 137: 138, 138: 139, 139: 140, 140: 141, 141: 142, 142: 143, 143: 144, 144: 145, 145: 146, 146: 147, 147: 148, 148: 149, 149: 150, 150: 151, 151: 152, 152: 153, 153: 154, 154: 155, 155: 156, 156: 157, 157: 158, 158: 159, 159: 160, 160: 161, 161: 162, 162: 163, 163: 164, 164: 165, 165: 166, 166: 167, 167: 168, 168: 169, 169: 170, 170: 171, 171: 172, 172: 173, 173: 174, 174: 175, 175: 176, 176: 177, 177: 178, 178: 179, 179: 180, 180: 181, 181: 182, 182: 183, 183: 184, 184: 185, 185: 186, 186: 187, 187: 188, 188: 189, 189: 190, 190: 191, 191: 192, 192: 193, 193: 194, 194: 195, 195: 196, 196: 197, 197: 198, 198: 199, 199: 200, 200: 201, 201: 202, 202: 203, 203: 204, 204: 205, 205: 206, 206: 207, 207: 208, 208: 209, 209: 210, 210: 211, 211: 212, 212: 213, 213: 214, 214: 215, 215: 216, 216: 217, 217: 218, 218: 219, 219: 220, 220: 221, 221: 222, 222: 223, 223: 224, 224: 225, 225: 226, 226: 227, 227: 228, 228: 229, 229: 230, 230: 231, 231: 232, 232: 233, 233: 234, 234: 235, 235: 236, 236: 237, 237: 238, 238: 239, 239: 240, 240: 241, 241: 242, 242: 243, 243: 244, 244: 245, 245: 246, 246: 247, 247: 248, 248: 249, 249: 250, 250: 251, 251: 252, 252: 253, 253: 254, 254: 255, 255: 256, 256: 257, 257: 258, 258: 259, 259: 260, 260: 261, 261: 262, 262: 263, 263: 264, 264: 265, 265: 266, 266: 267, 267: 268, 268: 269, 269: 270, 270: 271, 271: 272, 272: 273, 273: 274, 274: 275, 275: 276, 276: 277, 277: 278, 278: 279, 279: 280, 280: 281, 281: 282, 282: 283, 283: 284, 284: 285, 285: 286, 286: 287, 287: 288, 288: 289, 289: 290, 290: 291, 291: 292, 292: 293, 293: 294, 294: 295, 295: 296, 296: 297, 297: 298, 298: 299, 299: 300, 300: 301, 301: 302, 302: 303, 303: 304, 304: 305, 305: 306, 306: 307, 307: 308, 308: 309, 309: 310, 310: 311, 311: 312, 312: 313, 313: 314, 314: 315, 315: 316, 316: 317, 317: 318, 318: 319, 319: 320, 320: 321, 321: 322, 322: 323, 323: 324, 324: 325, 325: 326, 326: 327, 327: 328, 328: 329, 329: 330, 330: 331, 331: 332, 332: 333, 333: 334, 334: 335, 335: 336, 336: 337, 337: 338, 338: 339, 339: 340, 340: 341, 341: 342, 342: 343, 343: 344, 344: 345, 345: 346, 346: 347, 347: 348, 348: 349, 349: 350, 350: 351, 351: 352, 352: 353, 353: 354, 354: 355, 355: 356, 356: 357, 357: 358, 358: 359, 359: 360, 360: 361, 361: 362, 362: 363, 363: 364, 364: 365, 365: 366, 366: 367, 367: 368, 368: 369, 369: 370, 370: 371, 371: 372, 372: 373, 373: 374, 374: 375, 375: 376, 376: 377, 377: 378, 378: 379, 379: 380, 380: 381, 381: 382, 382: 383, 383: 384, 384: 385, 385: 386, 386: 387, 387: 388, 388: 389, 389: 390, 390: 391, 391: 392, 392: 393, 393: 394, 394: 395, 395: 396, 396: 397, 397: 398, 398: 399, 399: 400, 400: 401, 401: 402, 402: 403, 403: 404, 404: 405, 405: 406, 406: 407, 407: 408, 408: 409, 409: 410, 410: 411, 411: 412, 412: 413, 413: 414, 414: 415, 415: 416, 416: 417, 417: 418, 418: 419, 419: 420, 420: 421, 421: 422, 422: 423, 423: 424, 424: 425, 425: 426, 426: 427, 427: 428, 428: 429, 429: 430, 430: 431, 431: 432, 432: 433, 433: 434, 434: 435, 435: 436, 436: 437, 437: 438, 438: 439, 439: 440, 440: 441, 441: 442, 442: 443, 443: 444, 444: 445, 445: 446, 446: 447, 447: 448, 448: 449, 449: 450, 450: 451, 451: 452, 452: 453, 453: 454, 454: 455, 455: 456, 456: 457, 457: 458, 458: 459, 459: 460, 460: 461, 461: 462, 462: 463, 463: 464, 464: 465, 465: 466, 466: 467, 467: 468, 468: 469, 469: 470, 470: 471, 471: 472, 472: 473, 473: 474, 474: 475, 475: 476, 476: 477, 477: 478, 478: 479, 479: 480, 480: 481, 481: 482, 482: 483, 483: 484, 484: 485, 485: 486, 486: 487, 487: 488, 488: 489, 489: 490, 490: 491, 491: 492, 492: 493, 493: 494, 494: 495, 495: 496, 496: 497, 497: 498, 498: 499, 499: 500, 500: 501, 501: 502, 502: 503, 503: 504, 504: 505, 505: 506, 506: 507, 507: 508, 508: 509, 509: 510, 510: 511, 511: 512, 512: 513, 513: 514, 514: 515, 515: 516, 516: 517, 517: 518, 518: 519, 519: 520, 520: 521, 521: 522, 522: 523, 523: 524, 524: 525, 525: 526, 526: 527, 527: 528, 528: 529, 529: 530, 530: 531, 531: 532, 532: 533, 533: 534, 534: 535, 535: 536, 536: 537, 537: 538, 538: 539, 539: 540, 540: 541, 541: 542, 542: 543, 543: 544, 544: 545, 545: 546, 546: 547, 547: 548, 548: 549, 549: 550, 550: 551, 551: 552, 552: 553, 553: 554, 554: 555, 555: 556, 556: 557, 557: 558, 558: 559, 559: 560, 560: 561, 561: 562, 562: 563, 563: 564, 564: 565, 565: 566, 566: 567, 567: 568, 568: 569, 569: 570, 570: 571, 571: 572, 572: 573, 573: 574, 574: 575, 575: 576, 576: 577, 577: 578, 578: 579, 579: 580, 580: 581, 581: 582, 582: 583, 583: 584, 584: 585, 585: 586, 586: 587, 587: 588, 588: 589, 589: 590, 590: 591, 591: 592, 592: 593, 593: 594, 594: 595, 595: 596, 596: 597, 597: 598, 598: 599, 599: 600, 600: 601, 601: 602, 602: 603, 603: 604, 604: 605, 605: 606, 606: 607, 607: 608, 608: 609, 609: 610, 610: 611, 611: 612, 612: 613, 613: 614, 614: 615, 615: 616, 616: 617, 617: 618, 618: 619, 619: 620, 620: 621, 621: 622, 622: 623, 623: 624, 624: 625, 625: 626, 626: 627, 627: 628, 628: 629, 629: 630, 630: 631, 631: 632, 632: 633, 633: 634, 634: 635, 635: 636, 636: 637, 637: 638, 638: 639, 639: 640, 640: 641, 641: 642, 642: 643, 643: 644, 644: 645, 645: 646, 646: 647, 647: 648, 648: 649, 649: 650, 650: 651, 651: 652, 652: 653, 653: 654, 654: 655, 655: 656, 656: 657, 657: 658, 658: 659, 659: 660, 660: 661, 661: 662, 662: 663, 663: 664, 664: 665, 665: 666, 666: 667, 667: 668, 668: 669, 669: 670, 670: 671, 671: 672, 672: 673, 673: 674, 674: 675, 675: 676, 676: 677, 677: 678, 678: 679, 679: 680, 680: 681, 681: 682, 682: 683, 683: 684, 684: 685, 685: 686, 686: 687, 687: 688, 688: 689, 689: 690, 690: 691, 691: 692, 692: 693, 693: 694, 694: 695, 695: 696, 696: 697, 697: 698, 698: 699, 699: 700, 700: 701, 701: 702, 702: 703, 703: 704, 704: 705, 705: 706, 706: 707, 707: 708, 708: 709, 709: 710, 710: 711, 711: 712, 712: 713, 713: 714, 714: 715, 715: 716, 716: 717, 717: 718, 718: 719, 719: 720, 720: 721, 721: 722, 722: 723, 723: 724, 724: 725, 725: 726, 726: 727, 727: 728, 728: 729, 729: 730, 730: 731, 731: 732, 732: 733, 733: 734, 734: 735, 735: 736, 736: 737, 737: 738, 738: 739, 739: 740, 740: 741, 741: 742, 742: 743, 743: 744, 744: 745, 745: 746, 746: 747, 747: 748, 748: 749, 749: 750, 750: 751, 751: 752, 752: 753, 753: 754, 754: 755, 755: 756, 756: 757, 757: 758, 758: 759, 759: 760, 760: 761, 761: 762, 762: 763, 763: 764, 764: 765, 765: 766, 766: 767, 767: 768, 768: 769, 769: 770, 770: 771, 771: 772, 772: 773, 773: 774, 774: 775, 775: 776, 776: 777, 777: 778, 778: 779, 779: 780, 780: 781, 781: 782, 782: 783, 783: 784, 784: 785, 785: 786, 786: 787, 787: 788, 788: 789, 789: 790, 790: 791, 791: 792, 792: 793, 793: 794, 794: 795, 795: 796, 796: 797, 797: 798, 798: 799, 799: 800, 800: 801, 801: 802, 802: 803, 803: 804, 804: 805, 805: 806, 806: 807, 807: 808, 808: 809, 809: 810, 810: 811, 811: 812, 812: 813, 813: 814, 814: 815, 815: 816, 816: 817, 817: 818, 818: 819, 819: 820, 820: 821, 821: 822, 822: 823, 823: 824, 824: 825, 825: 826, 826: 827, 827: 828, 828: 829, 829: 830, 830: 831, 831: 832, 832: 833, 833: 834, 834: 835, 835: 836, 836: 837, 837: 838, 838: 839, 839: 840, 840: 841, 841: 842, 842: 843, 843: 844, 844: 845, 845: 846, 846: 847, 847: 848, 848: 849, 849: 850, 850: 851, 851: 852, 852: 853, 853: 854, 854: 855, 855: 856, 856: 857, 857: 858, 858: 859, 859: 860, 860: 861, 861: 862, 862: 863, 863: 864, 864: 865, 865: 866, 866: 867, 867: 868, 868: 869, 869: 870, 870: 871, 871: 872, 872: 873, 873: 874, 874: 875, 875: 876, 876: 877, 877: 878, 878: 879, 879: 880, 880: 881, 881: 882, 882: 883, 883: 884, 884: 885, 885: 886, 886: 887, 887: 888, 888: 889, 889: 890, 890: 891, 891: 892, 892: 893, 893: 894, 894: 895, 895: 896, 896: 897, 897: 898, 898: 899, 899: 900, 900: 901, 901: 902, 902: 903, 903: 904, 904: 905, 905: 906, 906: 907, 907: 908, 908: 909, 909: 910, 910: 911, 911: 912, 912: 913, 913: 914, 914: 915, 915: 916, 916: 917, 917: 918, 918: 919, 919: 920, 920: 921, 921: 922, 922: 923, 923: 924, 924: 925, 925: 926, 926: 927, 927: 928, 928: 929, 929: 930, 930: 931, 931: 932, 932: 933, 933: 934, 934: 935, 935: 936, 936: 937, 937: 938, 938: 939, 939: 940, 940: 941, 941: 942, 942: 943, 943: 944, 944: 945, 945: 946, 946: 947, 947: 948, 948: 949, 949: 950, 950: 951, 951: 952, 952: 953, 953: 954, 954: 955, 955: 956, 956: 957, 957: 958, 958: 959, 959: 960, 960: 961, 961: 962, 962: 963, 963: 964, 964: 965, 965: 966, 966: 967, 967: 968, 968: 969, 969: 970, 970: 971, 971: 972, 972: 973, 973: 974, 974: 975, 975: 976, 976: 977, 977: 978, 978: 979, 979: 980, 980: 981, 981: 982, 982: 983, 983: 984, 984: 985, 985: 986, 986: 987, 987: 988, 988: 989, 989: 990, 990: 991, 991: 992, 992: 993, 993: 994, 994: 995, 995: 996, 996: 997, 997: 998, 998: 999, 999: 1000, 1000: 1001, 1001: 1002, 1002: 1003, 1003: 1004, 1004: 1005, 1005: 1006, 1006: 1007, 1007: 1008, 1008: 1009, 1009: 1010, 1010: 1011, 1011: 1012, 1012: 1013, 1013: 1014, 1014: 1015, 1015: 1016, 1016: 1017, 1017: 1018, 1018: 1019, 1019: 1020, 1020: 1021, 1021: 1022, 1022: 1023, 1023: 1024, 1024: 1025, 1025: 1026, 1026: 1027, 1027: 1028, 1028: 1029, 1029: 1030, 1030: 1031, 1031: 1032, 1032: 1033, 1033: 1034, 1034: 1035, 1035: 1036, 1036: 1037, 1037: 1038, 1038: 1039, 1039: 1040, 1040: 1041, 1041: 1042, 1042: 1043, 1043: 1044, 1044: 1045, 1045: 1046, 1046: 1047, 1047: 1048, 1048: 1049, 1049: 1050, 1050: 1051, 1051: 1052, 1052: 1053, 1053: 1054, 1054: 1055, 1055: 1056, 1056: 1057, 1057: 1058, 1058: 1059, 1059: 1060, 1060: 1061, 1061: 1062, 1062: 1063, 1063: 1064, 1064: 1065, 1065: 1066, 1066: 1067, 1067: 1068, 1068: 1069, 1069: 1070, 1070: 1071, 1071: 1072, 1072: 1073, 1073: 1074, 1074: 1075, 1075: 1076, 1076: 1077, 1077: 1078, 1078: 1079, 1079: 1080, 1080: 1081, 1081: 1082, 1082: 1083, 1083: 1084, 1084: 1085, 1085: 1086, 1086: 1087, 1087: 1088, 1088: 1089, 1089: 1090, 1090: 1091, 1091: 1092, 1092: 1093, 1093: 1094, 1094: 1095, 1095: 1096, 1096: 1097, 1097: 1098, 1098: 1099, 1099: 1100, 1100: 1101, 1101: 1102, 1102: 1103, 1103: 1104, 1104: 1105, 1105: 1106, 1106: 1107, 1107: 1108, 1108: 1109, 1109: 1110, 1110: 1111, 1111: 1112, 1112: 1113, 1113: 1114, 1114: 1115, 1115: 1116, 1116: 1117, 1117: 1118, 1118: 1119, 1119: 1120, 1120: 1121, 1121: 1122, 1122: 1123, 1123: 1124, 1124: 1125, 1125: 1126, 1126: 1127, 1127: 1128, 1128: 1129, 1129: 1130, 1130: 1131, 1131: 1132, 1132: 1133, 1133: 1134, 1134: 1135, 1135: 1136, 1136: 1137, 1137: 1138, 1138: 1139, 1139: 1140, 1140: 1141, 1141: 1142, 1142: 1143, 1143: 1144, 1144: 1145, 1145: 1146, 1146: 1147, 1147: 1148, 1148: 1149, 1149: 1150, 1150: 1151, 1151: 1152, 1152: 1153, 1153: 1154, 1154: 1155, 1155: 1156, 1156: 1157, 1157: 1158, 1158: 1159, 1159: 1160, 1160: 1161, 1161: 1162, 1162: 1163, 1163: 1164, 1164: 1165, 1165: 1166, 1166: 1167, 1167: 1168, 1168: 1169, 1169: 1170, 1170: 1171, 1171: 1172, 1172: 1173, 1173: 1174, 1174: 1175, 1175: 1176, 1176: 1177, 1177: 1178, 1178: 1179, 1179: 1180, 1180: 1181, 1181: 1182, 1182: 1183, 1183: 1184, 1184: 1185, 1185: 1186, 1186: 1187, 1187: 1188, 1188: 1189, 1189: 1190, 1190: 1191, 1191: 1192, 1192: 1193, 1193: 1194, 1194: 1195, 1195: 1196, 1196: 1197, 1197: 1198, 1198: 1199, 1199: 1200, 1200: 1201, 1201: 1202, 1202: 1203, 1203: 1204, 1204: 1205, 1205: 1206, 1206: 1207, 1207: 1208, 1208: 1209, 1209: 1210, 1210: 1211, 1211: 1212, 1212: 1213, 1213: 1214, 1214: 1215, 1215: 1216, 1216: 1217, 1217: 1218, 1218: 1219, 1219: 1220, 1220: 1221, 1221: 1222, 1222: 1223, 1223: 1224, 1224: 1225, 1225: 1226, 1226: 1227, 1227: 1228, 1228: 1229, 1229: 1230, 1230: 1231, 1231: 1232, 1232: 1233, 1233: 1234, 1234: 1235, 1235: 1236, 1236: 1237, 1237: 1238, 1238: 1239, 1239: 1240, 1240: 1241, 1241: 1242, 1242: 1243, 1243: 1244, 1244: 1245, 1245: 1246, 1246: 1247, 1247: 1248, 1248: 1249, 1249: 1250, 1250: 1251, 1251: 1252, 1252: 1253, 1253: 1254, 1254: 1255, 1255: 1256, 1256: 1257, 1257: 1258, 1258: 1259, 1259: 1260, 1260: 1261, 1261: 1262, 1262: 1263, 1263: 1264, 1264: 1265, 1265: 1266, 1266: 1267, 1267: 1268, 1268: 1269, 1269: 1270, 1270: 1271, 1271: 1272, 1272: 1273, 1273: 1274, 1274: 1275, 1275: 1276, 1276: 1277, 1277: 1278, 1278: 1279, 1279: 1280, 1280: 1281, 1281: 1282, 1282: 1283, 1283: 1284, 1284: 1285, 1285: 1286, 1286: 1287, 1287: 1288, 1288: 1289, 1289: 1290, 1290: 1291, 1291: 1292, 1292: 1293, 1293: 1294, 1294: 1295, 1295: 1296, 1296: 1297, 1297: 1298, 1298: 1299, 1299: 1300, 1300: 1301, 1301: 1302, 1302: 1303, 1303: 1304, 1304: 1305, 1305: 1306, 1306: 1307, 1307: 1308, 1308: 1309, 1309: 1310, 1310: 1311, 1311: 1312, 1312: 1313, 1313: 1314, 1314: 1315, 1315: 1316, 1316: 1317, 1317: 1318, 1318: 1319, 1319: 1320, 1320: 1321, 1321: 1322, 1322: 1323, 1323: 1324, 1324: 1325, 1325: 1326, 1326: 1327, 1327: 1328, 1328: 1329, 1329: 1330, 1330: 1331, 1331: 1332, 1332: 1333, 1333: 1334, 1334: 1335, 1335: 1336, 1336: 1337, 1337: 1338, 1338: 1339, 1339: 1340, 1340: 1341, 1341: 1342, 1342: 1343, 1343: 1344, 1344: 1345, 1345: 1346, 1346: 1347, 1347: 1348, 1348: 1349, 1349: 1350, 1350: 1351, 1351: 1352, 1352: 1353, 1353: 1354, 1354: 1355, 1355: 1356, 1356: 1357, 1357: 1358, 1358: 1359, 1359: 1360, 1360: 1361, 1361: 1362, 1362: 1363, 1363: 1364, 1364: 1365, 1365: 1366, 1366: 1367, 1367: 1368, 1368: 1369, 1369: 1370, 1370: 1371, 1371: 1372, 1372: 1373, 1373: 1374, 1374: 1375, 1375: 1376, 1376: 1377, 1377: 1378, 1378: 1379, 1379: 1380, 1380: 1381, 1381: 1382, 1382: 1383, 1383: 1384, 1384: 1385, 1385: 1386, 1386: 1387, 1387: 1388, 1388: 1389, 1389: 1390, 1390: 1391, 1391: 1392, 1392: 1393, 1393: 1394, 1394: 1395, 1395: 1396, 1396: 1397, 1397: 1398, 1398: 1399, 1399: 1400, 1400: 1401, 1401: 1402, 1402: 1403, 1403: 1404, 1404: 1405, 1405: 1406, 1406: 1407, 1407: 1408, 1408: 1409, 1409: 1410, 1410: 1411, 1411: 1412, 1412: 1413, 1413: 1414, 1414: 1415, 1415: 1416, 1416: 1417, 1417: 1418, 1418: 1419, 1419: 1420, 1420: 1421, 1421: 1422, 1422: 1423, 1423: 1424, 1424: 1425, 1425: 1426, 1426: 1427, 1427: 1428, 1428: 1429, 1429: 1430, 1430: 1431, 1431: 1432, 1432: 1433, 1433: 1434, 1434: 1435, 1435: 1436, 1436: 1437, 1437: 1438, 1438: 1439, 1439: 1440, 1440: 1441, 1441: 1442, 1442: 1443, 1443: 1444, 1444: 1445, 1445: 1446, 1446: 1447, 1447: 1448, 1448: 1449, 1449: 1450, 1450: 1451, 1451: 1452, 1452: 1453, 1453: 1454, 1454: 1455, 1455: 1456, 1456: 1457, 1457: 1458, 1458: 1459, 1459: 1460, 1460: 1461, 1461: 1462, 1462: 1463, 1463: 1464, 1464: 1465, 1465: 1466, 1466: 1467, 1467: 1468, 1468: 1469, 1469: 1470, 1470: 1471, 1471: 1472, 1472: 1473, 1473: 1474, 1474: 1475, 1475: 1476, 1476: 1477, 1477: 1478, 1478: 1479, 1479: 1480, 1480: 1481, 1481: 1482, 1482: 1483, 1483: 1484, 1484: 1485, 1485: 1486, 1486: 1487, 1487: 1488, 1488: 1489, 1489: 1490, 1490: 1491, 1491: 1492, 1492: 1493, 1493: 1494, 1494: 1495, 1495: 1496, 1496: 1497, 1497: 1498, 1498: 1499, 1499: 1500, 1500: 1501, 1501: 1502, 1502: 1503, 1503: 1504, 1504: 1505, 1505: 1506, 1506: 1507, 1507: 1508, 1508: 1509, 1509: 1510, 1510: 1511, 1511: 1512, 1512: 1513, 1513: 1514, 1514: 1515, 1515: 1516, 1516: 1517, 1517: 1518, 1518: 1519, 1519: 1520, 1520: 1521, 1521: 1522, 1522: 1523, 1523: 1524, 1524: 1525, 1525: 1526, 1526: 1527, 1527: 1528, 1528: 1529, 1529: 1530, 1530: 1531, 1531: 1532, 1532: 1533, 1533: 1534, 1534: 1535, 1535: 1536, 1536: 1537, 1537: 1538, 1538: 1539, 1539: 1540, 1540: 1541, 1541: 1542, 1542: 1543, 1543: 1544, 1544: 1545, 1545: 1546, 1546: 1547, 1547: 1548, 1548: 1549, 1549: 1550, 1550: 1551, 1551: 1552, 1552: 1553, 1553: 1554, 1554: 1555, 1555: 1556, 1556: 1557, 1557: 1558, 1558: 1559, 1559: 1560, 1560: 1561, 1561: 1562, 1562: 1563, 1563: 1564, 1564: 1565, 1565: 1566, 1566: 1567, 1567: 1568, 1568: 1569, 1569: 1570, 1570: 1571, 1571: 1572, 1572: 1573, 1573: 1574, 1574: 1575, 1575: 1576, 1576: 1577, 1577: 1578, 1578: 1579, 1579: 1580, 1580: 1581, 1581: 1582, 1582: 1583, 1583: 1584, 1584: 1585, 1585: 1586, 1586: 1587, 1587: 1588, 1588: 1589, 1589: 1590, 1590: 1591, 1591: 1592, 1592: 1593, 1593: 1594, 1594: 1595, 1595: 1596, 1596: 1597, 1597: 1598, 1598: 1599, 1599: 1600, 1600: 1601, 1601: 1602, 1602: 1603, 1603: 1604, 1604: 1605, 1605: 1606, 1606: 1607, 1607: 1608, 1608: 1609, 1609: 1610, 1610: 1611, 1611: 1612, 1612: 1613, 1613: 1614, 1614: 1615, 1615: 1616, 1616: 1617, 1617: 1618, 1618: 1619, 1619: 1620, 1620: 1621, 1621: 1622, 1622: 1623, 1623: 1624, 1624: 1625, 1625: 1626, 1626: 1627, 1627: 1628, 1628: 1629, 1629: 1630, 1630: 1631, 1631: 1632, 1632: 1633, 1633: 1634, 1634: 1635, 1635: 1636, 1636: 1637, 1637: 1638, 1638: 1639, 1639: 1640, 1640: 1641, 1641: 1642, 1642: 1643, 1643: 1644, 1644: 1645, 1645: 1646, 1646: 1647, 1647: 1648, 1648: 1649, 1649: 1650, 1650: 1651, 1651: 1652, 1652: 1653, 1653: 1654, 1654: 1655, 1655: 1656, 1656: 1657, 1657: 1658, 1658: 1659, 1659: 1660, 1660: 1661, 1661: 1662, 1662: 1663, 1663: 1664, 1664: 1665, 1665: 1666, 1666: 1667, 1667: 1668, 1668: 1669, 1669: 1670, 1670: 1671, 1671: 1672, 1672: 1673, 1673: 1674, 1674: 1675, 1675: 1676, 1676: 1677, 1677: 1678, 1678: 1679, 1679: 1680, 1680: 1681, 1681: 1682, 1682: 1683, 1683: 1684, 1684: 1685, 1685: 1686, 1686: 1687, 1687: 1688, 1688: 1689, 1689: 1690, 1690: 1691, 1691: 1692, 1692: 1693, 1693: 1694, 1694: 1695, 1695: 1696, 1696: 1697, 1697: 1698, 1698: 1699, 1699: 1700, 1700: 1701, 1701: 1702, 1702: 1703, 1703: 1704, 1704: 1705, 1705: 1706, 1706: 1707, 1707: 1708, 1708: 1709, 1709: 1710, 1710: 1711, 1711: 1712, 1712: 1713, 1713: 1714, 1714: 1715, 1715: 1716, 1716: 1717, 1717: 1718, 1718: 1719, 1719: 1720, 1720: 1721, 1721: 1722, 1722: 1723, 1723: 1724, 1724: 1725, 1725: 1726, 1726: 1727, 1727: 1728, 1728: 1729, 1729: 1730, 1730: 1731, 1731: 1732, 1732: 1733, 1733: 1734, 1734: 1735, 1735: 1736, 1736: 1737, 1737: 1738, 1738: 1739, 1739: 1740, 1740: 1741, 1741: 1742, 1742: 1743, 1743: 1744, 1744: 1745, 1745: 1746, 1746: 1747, 1747: 1748, 1748: 1749, 1749: 1750, 1750: 1751, 1751: 1752, 1752: 1753, 1753: 1754, 1754: 1755, 1755: 1756, 1756: 1757, 1757: 1758, 1758: 1759, 1759: 1760, 1760: 1761, 1761: 1762, 1762: 1763, 1763: 1764, 1764: 1765, 1765: 1766, 1766: 1767, 1767: 1768, 1768: 1769, 1769: 1770, 1770: 1771, 1771: 1772, 1772: 1773, 1773: 1774, 1774: 1775, 1775: 1776, 1776: 1777, 1777: 1778, 1778: 1779, 1779: 1780, 1780: 1781, 1781: 1782, 1782: 1783, 1783: 1784, 1784: 1785, 1785: 1786, 1786: 1787, 1787: 1788, 1788: 1789, 1789: 1790, 1790: 1791, 1791: 1792, 1792: 1793, 1793: 1794, 1794: 1795, 1795: 1796, 1796: 1797, 1797: 1798, 1798: 1799, 1799: 1800, 1800: 1801, 1801: 1802, 1802: 1803, 1803: 1804, 1804: 1805, 1805: 1806, 1806: 1807, 1807: 1808, 1808: 1809, 1809: 1810, 1810: 1811, 1811: 1812, 1812: 1813, 1813: 1814, 1814: 1815, 1815: 1816, 1816: 1817, 1817: 1818, 1818: 1819, 1819: 1820, 1820: 1821, 1821: 1822, 1822: 1823, 1823: 1824, 1824: 1825, 1825: 1826, 1826: 1827, 1827: 1828, 1828: 1829, 1829: 1830, 1830: 1831, 1831: 1832, 1832: 1833, 1833: 1834, 1834: 1835, 1835: 1836, 1836: 1837, 1837: 1838, 1838: 1839, 1839: 1840, 1840: 1841, 1841: 1842, 1842: 1843, 1843: 1844, 1844: 1845, 1845: 1846, 1846: 1847, 1847: 1848, 1848: 1849, 1849: 1850, 1850: 1851, 1851: 1852, 1852: 1853, 1853: 1854, 1854: 1855, 1855: 1856, 1856: 1857, 1857: 1858, 1858: 1859, 1859: 1860, 1860: 1861, 1861: 1862, 1862: 1863, 1863: 1864, 1864: 1865, 1865: 1866, 1866: 1867, 1867: 1868, 1868: 1869, 1869: 1870, 1870: 1871, 1871: 1872, 1872: 1873, 1873: 1874, 1874: 1875, 1875: 1876, 1876: 1877, 1877: 1878, 1878: 1879, 1879: 1880, 1880: 1881, 1881: 1882, 1882: 1883, 1883: 1884, 1884: 1885, 1885: 1886, 1886: 1887, 1887: 1888, 1888: 1889, 1889: 1890, 1890: 1891, 1891: 1892, 1892: 1893, 1893: 1894, 1894: 1895, 1895: 1896, 1896: 1897, 1897: 1898, 1898: 1899, 1899: 1900, 1900: 1901, 1901: 1902, 1902: 1903, 1903: 1904, 1904: 1905, 1905: 1906, 1906: 1907, 1907: 1908, 1908: 1909, 1909: 1910, 1910: 1911, 1911: 1912, 1912: 1913, 1913: 1914, 1914: 1915, 1915: 1916, 1916: 1917, 1917: 1918, 1918: 1919, 1919: 1920, 1920: 1921, 1921: 1922, 1922: 1923, 1923: 1924, 1924: 1925, 1925: 1926, 1926: 1927, 1927: 1928, 1928: 1929, 1929: 1930, 1930: 1931, 1931: 1932, 1932: 1933, 1933: 1934, 1934: 1935, 1935: 1936, 1936: 1937, 1937: 1938, 1938: 1939, 1939: 1940, 1940: 1941, 1941: 1942, 1942: 1943, 1943: 1944, 1944: 1945, 1945: 1946, 1946: 1947, 1947: 1948, 1948: 1949, 1949: 1950, 1950: 1951, 1951: 1952, 1952: 1953, 1953: 1954, 1954: 1955, 1955: 1956, 1956: 1957, 1957: 1958, 1958: 1959, 1959: 1960, 1960: 1961, 1961: 1962, 1962: 1963, 1963: 1964, 1964: 1965, 1965: 1966, 1966: 1967, 1967: 1968, 1968: 1969, 1969: 1970, 1970: 1971, 1971: 1972, 1972: 1973, 1973: 1974, 1974: 1975, 1975: 1976, 1976: 1977, 1977: 1978, 1978: 1979, 1979: 1980, 1980: 1981, 1981: 1982, 1982: 1983, 1983: 1984, 1984: 1985, 1985: 1986, 1986: 1987, 1987: 1988, 1988: 1989, 1989: 1990, 1990: 1991, 1991: 1992, 1992: 1993, 1993: 1994, 1994: 1995, 1995: 1996, 1996: 1997, 1997: 1998, 1998: 1999, 1999: 2000, 2000: 2001, 2001: 2002, 2002: 2003, 2003: 2004, 2004: 2005, 2005: 2006, 2006: 2007, 2007: 2008, 2008: 2009, 2009: 2010, 2010: 2011, 2011: 2012, 2012: 2013, 2013: 2014, 2014: 2015, 2015: 2016, 2016: 2017, 2017: 2018, 2018: 2019, 2019: 2020, 2020: 2021, 2021: 2022, 2022: 2023, 2023: 2024, 2024: 2025, 2025: 2026, 2026: 2027, 2027: 2028, 2028: 2029, 2029: 2030, 2030: 2031, 2031: 2032, 2032: 2033, 2033: 2034, 2034: 2035, 2035: 2036, 2036: 2037, 2037: 2038, 2038: 2039, 2039: 2040, 2040: 2041, 2041: 2042, 2042: 2043, 2043: 2044, 2044: 2045, 2045: 2046, 2046: 2047, 2047: 2048, 2048: 2049, 2049: 2050, 2050: 2051, 2051: 2052, 2052: 2053, 2053: 2054, 2054: 2055, 2055: 2056, 2056: 2057, 2057: 2058, 2058: 2059, 2059: 2060, 2060: 2061, 2061: 2062, 2062: 2063, 2063: 2064, 2064: 2065, 2065: 2066, 2066: 2067, 2067: 2068, 2068: 2069, 2069: 2070, 2070: 2071, 2071: 2072, 2072: 2073, 2073: 2074, 2074: 2075, 2075: 2076, 2076: 2077, 2077: 2078, 2078: 2079, 2079: 2080, 2080: 2081, 2081: 2082, 2082: 2083, 2083: 2084, 2084: 2085, 2085: 2086, 2086: 2087, 2087: 2088, 2088: 2089, 2089: 2090, 2090: 2091, 2091: 2092, 2092: 2093, 2093: 2094, 2094: 2095, 2095: 2096, 2096: 2097, 2097: 2098, 2098: 2099, 2099: 2100, 2100: 2101, 2101: 2102, 2102: 2103, 2103: 2104, 2104: 2105, 2105: 2106, 2106: 2107, 2107: 2108, 2108: 2109, 2109: 2110, 2110: 2111, 2111: 2112, 2112: 2113, 2113: 2114, 2114: 2115, 2115: 2116, 2116: 2117, 2117: 2118, 2118: 2119, 2119: 2120, 2120: 2121, 2121: 2122, 2122: 2123, 2123: 2124, 2124: 2125, 2125: 2126, 2126: 2127, 2127: 2128, 2128: 2129, 2129: 2130, 2130: 2131, 2131: 2132, 2132: 2133, 2133: 2134, 2134: 2135, 2135: 2136, 2136: 2137, 2137: 2138, 2138: 2139, 2139: 2140, 2140: 2141, 2141: 2142, 2142: 2143, 2143: 2144, 2144: 2145, 2145: 2146, 2146: 2147, 2147: 2148, 2148: 2149, 2149: 2150, 2150: 2151, 2151: 2152, 2152: 2153, 2153: 2154, 2154: 2155, 2155: 2156, 2156: 2157, 2157: 2158, 2158: 2159, 2159: 2160, 2160: 2161, 2161: 2162, 2162: 2163, 2163: 2164, 2164: 2165, 2165: 2166, 2166: 2167, 2167: 2168, 2168: 2169, 2169: 2170, 2170: 2171, 2171: 2172, 2172: 2173, 2173: 2174, 2174: 2175, 2175: 2176, 2176: 2177, 2177: 2178, 2178: 2179, 2179: 2180, 2180: 2181, 2181: 2182, 2182: 2183, 2183: 2184, 2184: 2185, 2185: 2186, 2186: 2187, 2187: 2188, 2188: 2189, 2189: 2190, 2190: 2191, 2191: 2192, 2192: 2193, 2193: 2194, 2194: 2195, 2195: 2196, 2196: 2197, 2197: 2198, 2198: 2199, 2199: 2200, 2200: 2201, 2201: 2202, 2202: 2203, 2203: 2204, 2204: 2205, 2205: 2206, 2206: 2207, 2207: 2208, 2208: 2209, 2209: 2210, 2210: 2211, 2211: 2212, 2212: 2213, 2213: 2214, 2214: 2215, 2215: 2216, 2216: 2217, 2217: 2218, 2218: 2219, 2219: 2220, 2220: 2221, 2221: 2222, 2222: 2223, 2223: 2224, 2224: 2225, 2225: 2226, 2226: 2227, 2227: 2228, 2228: 2229, 2229: 2230, 2230: 2231, 2231: 2232, 2232: 2233, 2233: 2234, 2234: 2235, 2235: 2236, 2236: 2237, 2237: 2238, 2238: 2239, 2239: 2240, 2240: 2241, 2241: 2242, 2242: 2243, 2243: 2244, 2244: 2245, 2245: 2246, 2246: 2247, 2247: 2248, 2248: 2249, 2249: 2250, 2250: 2251, 2251: 2252, 2252: 2253, 2253: 2254, 2254: 2255, 2255: 2256, 2256: 2257, 2257: 2258, 2258: 2259, 2259: 2260, 2260: 2261, 2261: 2262, 2262: 2263, 2263: 2264, 2264: 2265, 2265: 2266, 2266: 2267, 2267: 2268, 2268: 2269, 2269: 2270, 2270: 2271, 2271: 2272, 2272: 2273, 2273: 2274, 2274: 2275, 2275: 2276, 2276: 2277, 2277: 2278, 2278: 2279, 2279: 2280, 2280: 2281, 2281: 2282, 2282: 2283, 2283: 2284, 2284: 2285, 2285: 2286, 2286: 2287, 2287: 2288, 2288: 2289, 2289: 2290, 2290: 2291, 2291: 2292, 2292: 2293, 2293: 2294, 2294: 2295, 2295: 2296, 2296: 2297, 2297: 2298, 2298: 2299, 2299: 2300, 2300: 2301, 2301: 2302, 2302: 2303, 2303: 2304, 2304: 2305, 2305: 2306, 2306: 2307, 2307: 2308, 2308: 2309, 2309: 2310, 2310: 2311, 2311: 2312, 2312: 2313, 2313: 2314, 2314: 2315, 2315: 2316, 2316: 2317, 2317: 2318, 2318: 2319, 2319: 2320, 2320: 2321, 2321: 2322, 2322: 2323, 2323: 2324, 2324: 2325, 2325: 2326, 2326: 2327, 2327: 2328, 2328: 2329, 2329: 2330, 2330: 2331, 2331: 2332, 2332: 2333, 2333: 2334, 2334: 2335, 2335: 2336, 2336: 2337, 2337: 2338, 2338: 2339, 2339: 2340, 2340: 2341, 2341: 2342, 2342: 2343, 2343: 2344, 2344: 2345, 2345: 2346, 2346: 2347, 2347: 2348, 2348: 2349, 2349: 2350, 2350: 2351, 2351: 2352, 2352: 2353, 2353: 2354, 2354: 2355, 2355: 2356, 2356: 2357, 2357: 2358, 2358: 2359, 2359: 2360, 2360: 2361, 2361: 2362, 2362: 2363, 2363: 2364, 2364: 2365, 2365: 2366, 2366: 2367, 2367: 2368, 2368: 2369, 2369: 2370, 2370: 2371, 2371: 2372, 2372: 2373, 2373: 2374, 2374: 2375, 2375: 2376, 2376: 2377, 2377: 2378, 2378: 2379, 2379: 2380, 2380: 2381, 2381: 2382, 2382: 2383, 2383: 2384, 2384: 2385, 2385: 2386, 2386: 2387, 2387: 2388, 2388: 2389, 2389: 2390, 2390: 2391, 2391: 2392, 2392: 2393, 2393: 2394, 2394: 2395, 2395: 2396, 2396: 2397, 2397: 2398, 2398: 2399, 2399: 2400, 2400: 2401, 2401: 2402, 2402: 2403, 2403: 2404, 2404: 2405, 2405: 2406, 2406: 2407, 2407: 2408, 2408: 2409, 2409: 2410, 2410: 2411, 2411: 2412, 2412: 2413, 2413: 2414, 2414: 2415, 2415: 2416, 2416: 2417, 2417: 2418, 2418: 2419, 2419: 2420, 2420: 2421, 2421: 2422, 2422: 2423, 2423: 2424, 2424: 2425, 2425: 2426, 2426: 2427, 2427: 2428, 2428: 2429, 2429: 2430, 2430: 2431, 2431: 2432, 2432: 2433, 2433: 2434, 2434: 2435, 2435: 2436, 2436: 2437, 2437: 2438, 2438: 2439, 2439: 2440, 2440: 2441, 2441: 2442, 2442: 2443, 2443: 2444, 2444: 2445, 2445: 2446, 2446: 2447, 2447: 2448, 2448: 2449, 2449: 2450, 2450: 2451, 2451: 2452, 2452: 2453, 2453: 2454, 2454: 2455, 2455: 2456, 2456: 2457, 2457: 2458, 2458: 2459, 2459: 2460, 2460: 2461, 2461: 2462, 2462: 2463, 2463: 2464, 2464: 2465, 2465: 2466, 2466: 2467, 2467: 2468, 2468: 2469, 2469: 2470, 2470: 2471, 2471: 2472, 2472: 2473, 2473: 2474, 2474: 2475, 2475: 2476, 2476: 2477, 2477: 2478, 2478: 2479, 2479: 2480, 2480: 2481, 2481: 2482, 2482: 2483, 2483: 2484, 2484: 2485, 2485: 2486, 2486: 2487, 2487: 2488, 2488: 2489, 2489: 2490, 2490: 2491, 2491: 2492, 2492: 2493, 2493: 2494, 2494: 2495, 2495: 2496, 2496: 2497, 2497: 2498, 2498: 2499, 2499: 2500, 2500: 2501, 2501: 2502, 2502: 2503, 2503: 2504, 2504: 2505, 2505: 2506, 2506: 2507, 2507: 2508, 2508: 2509, 2509: 2510, 2510: 2511, 2511: 2512, 2512: 2513, 2513: 2514, 2514: 2515, 2515: 2516, 2516: 2517, 2517: 2518, 2518: 2519, 2519: 2520, 2520: 2521, 2521: 2522, 2522: 2523, 2523: 2524, 2524: 2525, 2525: 2526, 2526: 2527, 2527: 2528, 2528: 2529, 2529: 2530, 2530: 2531, 2531: 2532, 2532: 2533, 2533: 2534, 2534: 2535, 2535: 2536, 2536: 2537, 2537: 2538, 2538: 2539, 2539: 2540, 2540: 2541, 2541: 2542, 2542: 2543, 2543: 2544, 2544: 2545, 2545: 2546, 2546: 2547, 2547: 2548, 2548: 2549, 2549: 2550, 2550: 2551, 2551: 2552, 2552: 2553, 2553: 2554, 2554: 2555, 2555: 2556, 2556: 2557, 2557: 2558, 2558: 2559, 2559: 2560, 2560: 2561, 2561: 2562, 2562: 2563, 2563: 2564, 2564: 2565, 2565: 2566, 2566: 2567, 2567: 2568, 2568: 2569, 2569: 2570, 2570: 2571, 2571: 2572, 2572: 2573, 2573: 2574, 2574: 2575, 2575: 2576, 2576: 2577, 2577: 2578, 2578: 2579, 2579: 2580, 2580: 2581, 2581: 2582, 2582: 2583, 2583: 2584, 2584: 2585, 2585: 2586, 2586: 2587, 2587: 2588, 2588: 2589, 2589: 2590, 2590: 2591, 2591: 2592, 2592: 2593, 2593: 2594, 2594: 2595, 2595: 2596, 2596: 2597, 2597: 2598, 2598: 2599, 2599: 2600, 2600: 2601, 2601: 2602, 2602: 2603, 2603: 2604, 2604: 2605, 2605: 2606, 2606: 2607, 2607: 2608, 2608: 2609, 2609: 2610, 2610: 2611, 2611: 2612, 2612: 2613, 2613: 2614, 2614: 2615, 2615: 2616, 2616: 2617, 2617: 2618, 2618: 2619, 2619: 2620, 2620: 2621, 2621: 2622, 2622: 2623, 2623: 2624, 2624: 2625, 2625: 2626, 2626: 2627, 2627: 2628, 2628: 2629, 2629: 2630, 2630: 2631, 2631: 2632, 2632: 2633, 2633: 2634, 2634: 2635, 2635: 2636, 2636: 2637, 2637: 2638, 2638: 2639, 2639: 2640, 2640: 2641, 2641: 2642, 2642: 2643, 2643: 2644, 2644: 2645, 2645: 2646, 2646: 2647, 2647: 2648, 2648: 2649, 2649: 2650, 2650: 2651, 2651: 2652, 2652: 2653, 2653: 2654, 2654: 2655, 2655: 2656, 2656: 2657, 2657: 2658, 2658: 2659, 2659: 2660, 2660: 2661, 2661: 2662, 2662: 2663, 2663: 2664, 2664: 2665, 2665: 2666, 2666: 2667, 2667: 2668, 2668: 2669, 2669: 2670, 2670: 2671, 2671: 2672, 2672: 2673, 2673: 2674, 2674: 2675, 2675: 2676, 2676: 2677, 2677: 2678, 2678: 2679, 2679: 2680, 2680: 2681, 2681: 2682, 2682: 2683, 2683: 2684, 2684: 2685, 2685: 2686, 2686: 2687, 2687: 2688, 2688: 2689, 2689: 2690, 2690: 2691, 2691: 2692, 2692: 2693, 2693: 2694, 2694: 2695, 2695: 2696, 2696: 2697, 2697: 2698, 2698: 2699, 2699: 2700, 2700: 2701, 2701: 2702, 2702: 2703, 2703: 2704, 2704: 2705, 2705: 2706, 2706: 2707, 2707: 2708, 2708: 2709, 2709: 2710, 2710: 2711, 2711: 2712, 2712: 2713, 2713: 2714, 2714: 2715, 2715: 2716, 2716: 2717, 2717: 2718, 2718: 2719, 2719: 2720, 2720: 2721, 2721: 2722, 2722: 2723, 2723: 2724, 2724: 2725, 2725: 2726, 2726: 2727, 2727: 2728, 2728: 2729, 2729: 2730, 2730: 2731, 2731: 2732, 2732: 2733, 2733: 2734, 2734: 2735, 2735: 2736, 2736: 2737, 2737: 2738, 2738: 2739, 2739: 2740, 2740: 2741, 2741: 2742, 2742: 2743, 2743: 2744, 2744: 2745, 2745: 2746, 2746: 2747, 2747: 2748, 2748: 2749, 2749: 2750, 2750: 2751, 2751: 2752, 2752: 2753, 2753: 2754, 2754: 2755, 2755: 2756, 2756: 2757, 2757: 2758, 2758: 2759, 2759: 2760, 2760: 2761, 2761: 2762, 2762: 2763, 2763: 2764, 2764: 2765, 2765: 2766, 2766: 2767, 2767: 2768, 2768: 2769, 2769: 2770, 2770: 2771, 2771: 2772, 2772: 2773, 2773: 2774, 2774: 2775, 2775: 2776, 2776: 2777, 2777: 2778, 2778: 2779, 2779: 2780, 2780: 2781, 2781: 2782, 2782: 2783, 2783: 2784, 2784: 2785, 2785: 2786, 2786: 2787, 2787: 2788, 2788: 2789, 2789: 2790, 2790: 2791, 2791: 2792, 2792: 2793, 2793: 2794, 2794: 2795, 2795: 2796, 2796: 2797, 2797: 2798, 2798: 2799, 2799: 2800, 2800: 2801, 2801: 2802, 2802: 2803, 2803: 2804, 2804: 2805, 2805: 2806, 2806: 2807, 2807: 2808, 2808: 2809, 2809: 2810, 2810: 2811, 2811: 2812, 2812: 2813, 2813: 2814, 2814: 2815, 2815: 2816, 2816: 2817, 2817: 2818, 2818: 2819, 2819: 2820, 2820: 2821, 2821: 2822, 2822: 2823, 2823: 2824, 2824: 2825, 2825: 2826, 2826: 2827, 2827: 2828, 2828: 2829, 2829: 2830, 2830: 2831, 2831: 2832, 2832: 2833, 2833: 2834, 2834: 2835, 2835: 2836, 2836: 2837, 2837: 2838, 2838: 2839, 2839: 2840, 2840: 2841, 2841: 2842, 2842: 2843, 2843: 2844, 2844: 2845, 2845: 2846, 2846: 2847, 2847: 2848, 2848: 2849, 2849: 2850, 2850: 2851, 2851: 2852, 2852: 2853, 2853: 2854, 2854: 2855, 2855: 2856, 2856: 2857, 2857: 2858, 2858: 2859, 2859: 2860, 2860: 2861, 2861: 2862, 2862: 2863, 2863: 2864, 2864: 2865, 2865: 2866, 2866: 2867, 2867: 2868, 2868: 2869, 2869: 2870, 2870: 2871, 2871: 2872, 2872: 2873, 2873: 2874, 2874: 2875, 2875: 2876, 2876: 2877, 2877: 2878, 2878: 2879, 2879: 2880, 2880: 2881, 2881: 2882, 2882: 2883, 2883: 2884, 2884: 2885, 2885: 2886, 2886: 2887, 2887: 2888, 2888: 2889, 2889: 2890, 2890: 2891, 2891: 2892, 2892: 2893, 2893: 2894, 2894: 2895, 2895: 2896, 2896: 2897, 2897: 2898, 2898: 2899, 2899: 2900, 2900: 2901, 2901: 2902, 2902: 2903, 2903: 2904, 2904: 2905, 2905: 2906, 2906: 2907, 2907: 2908, 2908: 2909, 2909: 2910, 2910: 2911, 2911: 2912, 2912: 2913, 2913: 2914, 2914: 2915, 2915: 2916, 2916: 2917, 2917: 2918, 2918: 2919, 2919: 2920, 2920: 2921, 2921: 2922, 2922: 2923, 2923: 2924, 2924: 2925, 2925: 2926, 2926: 2927, 2927: 2928, 2928: 2929, 2929: 2930, 2930: 2931, 2931: 2932, 2932: 2933, 2933: 2934, 2934: 2935, 2935: 2936, 2936: 2937, 2937: 2938, 2938: 2939, 2939: 2940, 2940: 2941, 2941: 2942, 2942: 2943, 2943: 2944, 2944: 2945, 2945: 2946, 2946: 2947, 2947: 2948, 2948: 2949, 2949: 2950, 2950: 2951, 2951: 2952, 2952: 2953, 2953: 2954, 2954: 2955, 2955: 2956, 2956: 2957, 2957: 2958, 2958: 2959, 2959: 2960, 2960: 2961, 2961: 2962, 2962: 2963, 2963: 2964, 2964: 2965, 2965: 2966, 2966: 2967, 2967: 2968, 2968: 2969, 2969: 2970, 2970: 2971, 2971: 2972, 2972: 2973, 2973: 2974, 2974: 2975, 2975: 2976, 2976: 2977, 2977: 2978, 2978: 2979, 2979: 2980, 2980: 2981, 2981: 2982, 2982: 2983, 2983: 2984, 2984: 2985, 2985: 2986, 2986: 2987, 2987: 2988, 2988: 2989, 2989: 2990, 2990: 2991, 2991: 2992, 2992: 2993, 2993: 2994, 2994: 2995, 2995: 2996, 2996: 2997, 2997: 2998, 2998: 2999, 2999: 3000, 3000: 3001, 3001: 3002, 3002: 3003, 3003: 3004, 3004: 3005, 3005: 3006, 3006: 3007, 3007: 3008, 3008: 3009, 3009: 3010, 3010: 3011, 3011: 3012, 3012: 3013, 3013: 3014, 3014: 3015, 3015: 3016, 3016: 3017, 3017: 3018, 3018: 3019, 3019: 3020, 3020: 3021, 3021: 3022, 3022: 3023, 3023: 3024, 3024: 3025, 3025: 3026, 3026: 3027, 3027: 3028, 3028: 3029, 3029: 3030, 3030: 3031, 3031: 3032, 3032: 3033, 3033: 3034, 3034: 3035, 3035: 3036, 3036: 3037, 3037: 3038, 3038: 3039, 3039: 3040, 3040: 3041, 3041: 3042, 3042: 3043, 3043: 3044, 3044: 3045, 3045: 3046, 3046: 3047, 3047: 3048, 3048: 3049, 3049: 3050, 3050: 3051, 3051: 3052, 3052: 3053, 3053: 3054, 3054: 3055, 3055: 3056, 3056: 3057, 3057: 3058, 3058: 3059, 3059: 3060, 3060: 3061, 3061: 3062, 3062: 3063, 3063: 3064, 3064: 3065, 3065: 3066, 3066: 3067, 3067: 3068, 3068: 3069, 3069: 3070, 3070: 3071, 3071: 3072, 3072: 3073, 3073: 3074, 3074: 3075, 3075: 3076, 3076: 3077, 3077: 3078, 3078: 3079, 3079: 3080, 3080: 3081, 3081: 3082, 3082: 3083, 3083: 3084, 3084: 3085, 3085: 3086, 3086: 3087, 3087: 3088, 3088: 3089, 3089: 3090, 3090: 3091, 3091: 3092, 3092: 3093, 3093: 3094, 3094: 3095, 3095: 3096, 3096: 3097, 3097: 3098, 3098: 3099, 3099: 3100, 3100: 3101, 3101: 3102, 3102: 3103, 3103: 3104, 3104: 3105, 3105: 3106, 3106: 3107, 3107: 3108, 3108: 3109, 3109: 3110, 3110: 3111, 3111: 3112, 3112: 3113, 3113: 3114, 3114: 3115, 3115: 3116, 3116: 3117, 3117: 3118, 3118: 3119, 3119: 3120, 3120: 3121, 3121: 3122, 3122: 3123, 3123: 3124, 3124: 3125, 3125: 3126, 3126: 3127, 3127: 3128, 3128: 3129, 3129: 3130, 3130: 3131, 3131: 3132, 3132: 3133, 3133: 3134, 3134: 3135, 3135: 3136, 3136: 3137, 3137: 3138, 3138: 3139, 3139: 3140, 3140: 3141, 3141: 3142, 3142: 3143, 3143: 3144, 3144: 3145, 3145: 3146, 3146: 3147, 3147: 3148, 3148: 3149, 3149: 3150, 3150: 3151, 3151: 3152, 3152: 3153, 3153: 3154, 3154: 3155, 3155: 3156, 3156: 3157, 3157: 3158, 3158: 3159, 3159: 3160, 3160: 3161, 3161: 3162, 3162: 3163, 3163: 3164, 3164: 3165, 3165: 3166, 3166: 3167, 3167: 3168, 3168: 3169, 3169: 3170, 3170: 3171, 3171: 3172, 3172: 3173, 3173: 3174, 3174: 3175, 3175: 3176, 3176: 3177, 3177: 3178, 3178: 3179, 3179: 3180, 3180: 3181, 3181: 3182, 3182: 3183, 3183: 3184, 3184: 3185, 3185: 3186, 3186: 3187, 3187: 3188, 3188: 3189, 3189: 3190, 3190: 3191, 3191: 3192, 3192: 3193, 3193: 3194, 3194: 3195, 3195: 3196, 3196: 3197, 3197: 3198, 3198: 3199, 3199: 3200, 3200: 3201, 3201: 3202, 3202: 3203, 3203: 3204, 3204: 3205, 3205: 3206, 3206: 3207, 3207: 3208, 3208: 3209, 3209: 3210, 3210: 3211, 3211: 3212, 3212: 3213, 3213: 3214, 3214: 3215, 3215: 3216, 3216: 3217, 3217: 3218, 3218: 3219, 3219: 3220, 3220: 3221, 3221: 3222, 3222: 3223, 3223: 3224, 3224: 3225, 3225: 3226, 3226: 3227, 3227: 3228, 3228: 3229, 3229: 3230, 3230: 3231, 3231: 3232, 3232: 3233, 3233: 3234, 3234: 3235, 3235: 3236, 3236: 3237, 3237: 3238, 3238: 3239, 3239: 3240, 3240: 3241, 3241: 3242, 3242: 3243, 3243: 3244, 3244: 3245, 3245: 3246, 3246: 3247, 3247: 3248, 3248: 3249, 3249: 3250, 3250: 3251, 3251: 3252, 3252: 3253, 3253: 3254, 3254: 3255, 3255: 3256, 3256: 3257, 3257: 3258, 3258: 3259, 3259: 3260, 3260: 3261, 3261: 3262, 3262: 3263, 3263: 3264, 3264: 3265, 3265: 3266, 3266: 3267, 3267: 3268, 3268: 3269, 3269: 3270, 3270: 3271, 3271: 3272, 3272: 3273, 3273: 3274, 3274: 3275, 3275: 3276, 3276: 3277, 3277: 3278, 3278: 3279, 3279: 3280, 3280: 3281, 3281: 3282, 3282: 3283, 3283: 3284, 3284: 3285, 3285: 3286, 3286: 3287, 3287: 3288, 3288: 3289, 3289: 3290, 3290: 3291, 3291: 3292, 3292: 3293, 3293: 3294, 3294: 3295, 3295: 3296, 3296: 3297, 3297: 3298, 3298: 3299, 3299: 3300, 3300: 3301, 3301: 3302, 3302: 3303, 3303: 3304, 3304: 3305, 3305: 3306, 3306: 3307, 3307: 3308, 3308: 3309, 3309: 3310, 3310: 3311, 3311: 3312, 3312: 3313, 3313: 3314, 3314: 3315, 3315: 3316, 3316: 3317, 3317: 3318, 3318: 3319, 3319: 3320, 3320: 3321, 3321: 3322, 3322: 3323, 3323: 3324, 3324: 3325, 3325: 3326, 3326: 3327, 3327: 3328, 3328: 3329, 3329: 3330, 3330: 3331, 3331: 3332, 3332: 3333, 3333: 3334, 3334: 3335, 3335: 3336, 3336: 3337, 3337: 3338, 3338: 3339, 3339: 3340, 3340: 3341, 3341: 3342, 3342: 3343, 3343: 3344, 3344: 3345, 3345: 3346, 3346: 3347, 3347: 3348, 3348: 3349, 3349: 3350, 3350: 3351, 3351: 3352, 3352: 3353, 3353: 3354, 3354: 3355, 3355: 3356, 3356: 3357, 3357: 3358, 3358: 3359, 3359: 3360, 3360: 3361, 3361: 3362, 3362: 3363, 3363: 3364, 3364: 3365, 3365: 3366, 3366: 3367, 3367: 3368, 3368: 3369, 3369: 3370, 3370: 3371, 3371: 3372, 3372: 3373, 3373: 3374, 3374: 3375, 3375: 3376, 3376: 3377, 3377: 3378, 3378: 3379, 3379: 3380, 3380: 3381, 3381: 3382, 3382: 3383, 3383: 3384, 3384: 3385, 3385: 3386, 3386: 3387, 3387: 3388, 3388: 3389, 3389: 3390, 3390: 3391, 3391: 3392, 3392: 3393, 3393: 3394, 3394: 3395, 3395: 3396, 3396: 3397, 3397: 3398, 3398: 3399, 3399: 3400, 3400: 3401, 3401: 3402, 3402: 3403, 3403: 3404, 3404: 3405, 3405: 3406, 3406: 3407, 3407: 3408, 3408: 3409, 3409: 3410, 3410: 3411, 3411: 3412, 3412: 3413, 3413: 3414, 3414: 3415, 3415: 3416, 3416: 3417, 3417: 3418, 3418: 3419, 3419: 3420, 3420: 3421, 3421: 3422, 3422: 3423, 3423: 3424, 3424: 3425, 3425: 3426, 3426: 3427, 3427: 3428, 3428: 3429, 3429: 3430, 3430: 3431, 3431: 3432, 3432: 3433, 3433: 3434, 3434: 3435, 3435: 3436, 3436: 3437, 3437: 3438, 3438: 3439, 3439: 3440, 3440: 3441, 3441: 3442, 3442: 3443, 3443: 3444, 3444: 3445, 3445: 3446, 3446: 3447, 3447: 3448, 3448: 3449, 3449: 3450, 3450: 3451, 3451: 3452, 3452: 3453, 3453: 3454, 3454: 3455, 3455: 3456, 3456: 3457, 3457: 3458, 3458: 3459, 3459: 3460, 3460: 3461, 3461: 3462, 3462: 3463, 3463: 3464, 3464: 3465, 3465: 3466, 3466: 3467, 3467: 3468, 3468: 3469, 3469: 3470, 3470: 3471, 3471: 3472, 3472: 3473, 3473: 3474, 3474: 3475, 3475: 3476, 3476: 3477, 3477: 3478, 3478: 3479, 3479: 3480, 3480: 3481, 3481: 3482, 3482: 3483, 3483: 3484, 3484: 3485, 3485: 3486, 3486: 3487, 3487: 3488, 3488: 3489, 3489: 3490, 3490: 3491, 3491: 3492, 3492: 3493, 3493: 3494, 3494: 3495, 3495: 3496, 3496: 3497, 3497: 3498, 3498: 3499, 3499: 3500, 3500: 3501, 3501: 3502, 3502: 3503, 3503: 3504, 3504: 3505, 3505: 3506, 3506: 3507, 3507: 3508, 3508: 3509, 3509: 3510, 3510: 3511, 3511: 3512, 3512: 3513, 3513: 3514, 3514: 3515, 3515: 3516, 3516: 3517, 3517: 3518, 3518: 3519, 3519: 3520, 3520: 3521, 3521: 3522, 3522: 3523, 3523: 3524, 3524: 3525, 3525: 3526, 3526: 3527, 3527: 3528, 3528: 3529, 3529: 3530, 3530: 3531, 3531: 3532, 3532: 3533, 3533: 3534, 3534: 3535, 3535: 3536, 3536: 3537, 3537: 3538, 3538: 3539, 3539: 3540, 3540: 3541, 3541: 3542, 3542: 3543, 3543: 3544, 3544: 3545, 3545: 3546, 3546: 3547, 3547: 3548, 3548: 3549, 3549: 3550, 3550: 3551, 3551: 3552, 3552: 3553, 3553: 3554, 3554: 3555, 3555: 3556, 3556: 3557, 3557: 3558, 3558: 3559, 3559: 3560, 3560: 3561, 3561: 3562, 3562: 3563, 3563: 3564, 3564: 3565, 3565: 3566, 3566: 3567, 3567: 3568, 3568: 3569, 3569: 3570, 3570: 3571, 3571: 3572, 3572: 3573, 3573: 3574, 3574: 3575, 3575: 3576, 3576: 3577, 3577: 3578, 3578: 3579, 3579: 3580, 3580: 3581, 3581: 3582, 3582: 3583, 3583: 3584, 3584: 3585, 3585: 3586, 3586: 3587, 3587: 3588, 3588: 3589, 3589: 3590, 3590: 3591, 3591: 3592, 3592: 3593, 3593: 3594, 3594: 3595, 3595: 3596, 3596: 3597, 3597: 3598, 3598: 3599, 3599: 3600, 3600: 3601, 3601: 3602, 3602: 3603, 3603: 3604, 3604: 3605, 3605: 3606, 3606: 3607, 3607: 3608, 3608: 3609, 3609: 3610, 3610: 3611, 3611: 3612, 3612: 3613, 3613: 3614, 3614: 3615, 3615: 3616, 3616: 3617, 3617: 3618, 3618: 3619, 3619: 3620, 3620: 3621, 3621: 3622, 3622: 3623, 3623: 3624, 3624: 3625, 3625: 3626, 3626: 3627, 3627: 3628, 3628: 3629, 3629: 3630, 3630: 3631, 3631: 3632, 3632: 3633, 3633: 3634, 3634: 3635, 3635: 3636, 3636: 3637, 3637: 3638, 3638: 3639, 3639: 3640, 3640: 3641, 3641: 3642, 3642: 3643, 3643: 3644, 3644: 3645, 3645: 3646, 3646: 3647, 3647: 3648, 3648: 3649, 3649: 3650, 3650: 3651, 3651: 3652, 3652: 3653, 3653: 3654, 3654: 3655, 3655: 3656, 3656: 3657, 3657: 3658, 3658: 3659, 3659: 3660, 3660: 3661, 3661: 3662, 3662: 3663, 3663: 3664, 3664: 3665, 3665: 3666, 3666: 3667, 3667: 3668, 3668: 3669, 3669: 3670, 3670: 3671, 3671: 3672, 3672: 3673, 3673: 3674, 3674: 3675, 3675: 3676, 3676: 3677, 3677: 3678, 3678: 3679, 3679: 3680, 3680: 3681, 3681: 3682, 3682: 3683, 3683: 3684, 3684: 3685, 3685: 3686, 3686: 3687, 3687: 3688, 3688: 3689, 3689: 3690, 3690: 3691, 3691: 3692, 3692: 3693, 3693: 3694, 3694: 3695, 3695: 3696, 3696: 3697, 3697: 3698, 3698: 3699, 3699: 3700, 3700: 3701, 3701: 3702, 3702: 3703, 3703: 3704, 3704: 3705, 3705: 3706, 3706: 3707, 3707: 3708, 3708: 3709, 3709: 3710, 3710: 3711, 3711: 3712, 3712: 3713, 3713: 3714, 3714: 3715, 3715: 3716, 3716: 3717, 3717: 3718, 3718: 3719, 3719: 3720, 3720: 3721, 3721: 3722, 3722: 3723, 3723: 3724, 3724: 3725, 3725: 3726, 3726: 3727, 3727: 3728, 3728: 3729, 3729: 3730, 3730: 3731, 3731: 3732, 3732: 3733, 3733: 3734, 3734: 3735, 3735: 3736, 3736: 3737, 3737: 3738, 3738: 3739, 3739: 3740, 3740: 3741, 3741: 3742, 3742: 3743, 3743: 3744, 3744: 3745, 3745: 3746, 3746: 3747, 3747: 3748, 3748: 3749, 3749: 3750, 3750: 3751, 3751: 3752, 3752: 3753, 3753: 3754, 3754: 3755, 3755: 3756, 3756: 3757, 3757: 3758, 3758: 3759, 3759: 3760, 3760: 3761, 3761: 3762, 3762: 3763, 3763: 3764, 3764: 3765, 3765: 3766, 3766: 3767, 3767: 3768, 3768: 3769, 3769: 3770, 3770: 3771, 3771: 3772, 3772: 3773, 3773: 3774, 3774: 3775, 3775: 3776, 3776: 3777, 3777: 3778, 3778: 3779, 3779: 3780, 3780: 3781, 3781: 3782, 3782: 3783, 3783: 3784, 3784: 3785, 3785: 3786, 3786: 3787, 3787: 3788, 3788: 3789, 3789: 3790, 3790: 3791, 3791: 3792, 3792: 3793, 3793: 3794, 3794: 3795, 3795: 3796, 3796: 3797, 3797: 3798, 3798: 3799, 3799: 3800, 3800: 3801, 3801: 3802, 3802: 3803, 3803: 3804, 3804: 3805, 3805: 3806, 3806: 3807, 3807: 3808, 3808: 3809, 3809: 3810, 3810: 3811, 3811: 3812, 3812: 3813, 3813: 3814, 3814: 3815, 3815: 3816, 3816: 3817, 3817: 3818, 3818: 3819, 3819: 3820, 3820: 3821, 3821: 3822, 3822: 3823, 3823: 3824, 3824: 3825, 3825: 3826, 3826: 3827, 3827: 3828, 3828: 3829, 3829: 3830, 3830: 3831, 3831: 3832, 3832: 3833, 3833: 3834, 3834: 3835, 3835: 3836, 3836: 3837, 3837: 3838, 3838: 3839, 3839: 3840, 3840: 3841, 3841: 3842, 3842: 3843, 3843: 3844, 3844: 3845, 3845: 3846, 3846: 3847, 3847: 3848, 3848: 3849, 3849: 3850, 3850: 3851, 3851: 3852, 3852: 3853, 3853: 3854, 3854: 3855, 3855: 3856, 3856: 3857, 3857: 3858, 3858: 3859, 3859: 3860, 3860: 3861, 3861: 3862, 3862: 3863, 3863: 3864, 3864: 3865, 3865: 3866, 3866: 3867, 3867: 3868, 3868: 3869, 3869: 3870, 3870: 3871, 3871: 3872, 3872: 3873, 3873: 3874, 3874: 3875, 3875: 3876, 3876: 3877, 3877: 3878, 3878: 3879, 3879: 3880, 3880: 3881, 3881: 3882, 3882: 3883, 3883: 3884, 3884: 3885, 3885: 3886, 3886: 3887, 3887: 3888, 3888: 3889, 3889: 3890, 3890: 3891, 3891: 3892, 3892: 3893, 3893: 3894, 3894: 3895, 3895: 3896, 3896: 3897, 3897: 3898, 3898: 3899, 3899: 3900, 3900: 3901, 3901: 3902, 3902: 3903, 3903: 3904, 3904: 3905, 3905: 3906, 3906: 3907, 3907: 3908, 3908: 3909, 3909: 3910, 3910: 3911, 3911: 3912, 3912: 3913, 3913: 3914, 3914: 3915, 3915: 3916, 3916: 3917, 3917: 3918, 3918: 3919, 3919: 3920, 3920: 3921, 3921: 3922, 3922: 3923, 3923: 3924, 3924: 3925, 3925: 3926, 3926: 3927, 3927: 3928, 3928: 3929, 3929: 3930, 3930: 3931, 3931: 3932, 3932: 3933, 3933: 3934, 3934: 3935, 3935: 3936, 3936: 3937, 3937: 3938, 3938: 3939, 3939: 3940, 3940: 3941, 3941: 3942, 3942: 3943, 3943: 3944, 3944: 3945, 3945: 3946, 3946: 3947, 3947: 3948, 3948: 3949, 3949: 3950, 3950: 3951, 3951: 3952, 3952: 3953, 3953: 3954, 3954: 3955, 3955: 3956, 3956: 3957, 3957: 3958, 3958: 3959, 3959: 3960, 3960: 3961, 3961: 3962, 3962: 3963, 3963: 3964, 3964: 3965, 3965: 3966, 3966: 3967, 3967: 3968, 3968: 3969, 3969: 3970, 3970: 3971, 3971: 3972, 3972: 3973, 3973: 3974, 3974: 3975, 3975: 3976, 3976: 3977, 3977: 3978, 3978: 3979, 3979: 3980, 3980: 3981, 3981: 3982, 3982: 3983, 3983: 3984, 3984: 3985, 3985: 3986, 3986: 3987, 3987: 3988, 3988: 3989, 3989: 3990, 3990: 3991, 3991: 3992, 3992: 3993, 3993: 3994, 3994: 3995, 3995: 3996, 3996: 3997, 3997: 3998, 3998: 3999, 3999: 4000, 4000: 4001, 4001: 4002, 4002: 4003, 4003: 4004, 4004: 4005, 4005: 4006, 4006: 4007, 4007: 4008, 4008: 4009, 4009: 4010, 4010: 4011, 4011: 4012, 4012: 4013, 4013: 4014, 4014: 4015, 4015: 4016, 4016: 4017, 4017: 4018, 4018: 4019, 4019: 4020, 4020: 4021, 4021: 4022, 4022: 4023, 4023: 4024, 4024: 4025, 4025: 4026, 4026: 4027, 4027: 4028, 4028: 4029, 4029: 4030, 4030: 4031, 4031: 4032, 4032: 4033, 4033: 4034, 4034: 4035, 4035: 4036, 4036: 4037, 4037: 4038, 4038: 4039, 4039: 4040, 4040: 4041, 4041: 4042, 4042: 4043, 4043: 4044, 4044: 4045, 4045: 4046, 4046: 4047, 4047: 4048, 4048: 4049, 4049: 4050, 4050: 4051, 4051: 4052, 4052: 4053, 4053: 4054, 4054: 4055, 4055: 4056, 4056: 4057, 4057: 4058, 4058: 4059, 4059: 4060, 4060: 4061, 4061: 4062, 4062: 4063, 4063: 4064, 4064: 4065, 4065: 4066, 4066: 4067, 4067: 4068, 4068: 4069, 4069: 4070, 4070: 4071, 4071: 4072, 4072: 4073, 4073: 4074, 4074: 4075, 4075: 4076, 4076: 4077, 4077: 4078, 4078: 4079, 4079: 4080, 4080: 4081, 4081: 4082, 4082: 4083, 4083: 4084, 4084: 4085, 4085: 4086, 4086: 4087, 4087: 4088, 4088: 4089, 4089: 4090, 4090: 4091, 4091: 4092, 4092: 4093, 4093: 4094, 4094: 4095, 4095: 4096, 4096: 4097, 4097: 4098, 4098: 4099, 4099: 4100, 4100: 4101, 4101: 4102, 4102: 4103, 4103: 4104, 4104: 4105, 4105: 4106, 4106: 4107, 4107: 4108, 4108: 4109, 4109: 4110, 4110: 4111, 4111: 4112, 4112: 4113, 4113: 4114, 4114: 4115, 4115: 4116, 4116: 4117, 4117: 4118, 4118: 4119, 4119: 4120, 4120: 4121, 4121: 4122, 4122: 4123, 4123: 4124, 4124: 4125, 4125: 4126, 4126: 4127, 4127: 4128, 4128: 4129, 4129: 4130, 4130: 4131, 4131: 4132, 4132: 4133, 4133: 4134, 4134: 4135, 4135: 4136, 4136: 4137, 4137: 4138, 4138: 4139, 4139: 4140, 4140: 4141, 4141: 4142, 4142: 4143, 4143: 4144, 4144: 4145, 4145: 4146, 4146: 4147, 4147: 4148, 4148: 4149, 4149: 4150, 4150: 4151, 4151: 4152, 4152: 4153, 4153: 4154, 4154: 4155, 4155: 4156, 4156: 4157, 4157: 4158, 4158: 4159, 4159: 4160, 4160: 4161, 4161: 4162, 4162: 4163, 4163: 4164, 4164: 4165, 4165: 4166, 4166: 4167, 4167: 4168, 4168: 4169, 4169: 4170, 4170: 4171, 4171: 4172, 4172: 4173, 4173: 4174, 4174: 4175, 4175: 4176, 4176: 4177, 4177: 4178, 4178: 4179, 4179: 4180, 4180: 4181, 4181: 4182, 4182: 4183, 4183: 4184, 4184: 4185, 4185: 4186, 4186: 4187, 4187: 4188, 4188: 4189, 4189: 4190, 4190: 4191, 4191: 4192, 4192: 4193, 4193: 4194, 4194: 4195, 4195: 4196, 4196: 4197, 4197: 4198, 4198: 4199, 4199: 4200, 4200: 4201, 4201: 4202, 4202: 4203, 4203: 4204, 4204: 4205, 4205: 4206, 4206: 4207, 4207: 4208, 4208: 4209, 4209: 4210, 4210: 4211, 4211: 4212, 4212: 4213, 4213: 4214, 4214: 4215, 4215: 4216, 4216: 4217, 4217: 4218, 4218: 4219, 4219: 4220, 4220: 4221, 4221: 4222, 4222: 4223, 4223: 4224, 4224: 4225, 4225: 4226, 4226: 4227, 4227: 4228, 4228: 4229, 4229: 4230, 4230: 4231, 4231: 4232, 4232: 4233, 4233: 4234, 4234: 4235, 4235: 4236, 4236: 4237, 4237: 4238, 4238: 4239, 4239: 4240, 4240: 4241, 4241: 4242, 4242: 4243, 4243: 4244, 4244: 4245, 4245: 4246, 4246: 4247, 4247: 4248, 4248: 4249, 4249: 4250, 4250: 4251, 4251: 4252, 4252: 4253, 4253: 4254, 4254: 4255, 4255: 4256, 4256: 4257, 4257: 4258, 4258: 4259, 4259: 4260, 4260: 4261, 4261: 4262, 4262: 4263, 4263: 4264, 4264: 4265, 4265: 4266, 4266: 4267, 4267: 4268, 4268: 4269, 4269: 4270, 4270: 4271, 4271: 4272, 4272: 4273, 4273: 4274, 4274: 4275, 4275: 4276, 4276: 4277, 4277: 4278, 4278: 4279, 4279: 4280, 4280: 4281, 4281: 4282, 4282: 4283, 4283: 4284, 4284: 4285, 4285: 4286, 4286: 4287, 4287: 4288, 4288: 4289, 4289: 4290, 4290: 4291, 4291: 4292, 4292: 4293, 4293: 4294, 4294: 4295, 4295: 4296, 4296: 4297, 4297: 4298, 4298: 4299, 4299: 4300, 4300: 4301, 4301: 4302, 4302: 4303, 4303: 4304, 4304: 4305, 4305: 4306, 4306: 4307, 4307: 4308, 4308: 4309, 4309: 4310, 4310: 4311, 4311: 4312, 4312: 4313, 4313: 4314, 4314: 4315, 4315: 4316, 4316: 4317, 4317: 4318, 4318: 4319, 4319: 4320, 4320: 4321, 4321: 4322, 4322: 4323, 4323: 4324, 4324: 4325, 4325: 4326, 4326: 4327, 4327: 4328, 4328: 4329, 4329: 4330, 4330: 4331, 4331: 4332, 4332: 4333, 4333: 4334, 4334: 4335, 4335: 4336, 4336: 4337, 4337: 4338, 4338: 4339, 4339: 4340, 4340: 4341, 4341: 4342, 4342: 4343, 4343: 4344, 4344: 4345, 4345: 4346, 4346: 4347, 4347: 4348, 4348: 4349, 4349: 4350, 4350: 4351, 4351: 4352, 4352: 4353, 4353: 4354, 4354: 4355, 4355: 4356, 4356: 4357, 4357: 4358, 4358: 4359, 4359: 4360, 4360: 4361, 4361: 4362, 4362: 4363, 4363: 4364, 4364: 4365, 4365: 4366, 4366: 4367, 4367: 4368, 4368: 4369, 4369: 4370, 4370: 4371, 4371: 4372, 4372: 4373, 4373: 4374, 4374: 4375, 4375: 4376, 4376: 4377, 4377: 4378, 4378: 4379, 4379: 4380, 4380: 4381, 4381: 4382, 4382: 4383, 4383: 4384, 4384: 4385, 4385: 4386, 4386: 4387, 4387: 4388, 4388: 4389, 4389: 4390, 4390: 4391, 4391: 4392, 4392: 4393, 4393: 4394, 4394: 4395, 4395: 4396, 4396: 4397, 4397: 4398, 4398: 4399, 4399: 4400, 4400: 4401, 4401: 4402, 4402: 4403, 4403: 4404, 4404: 4405, 4405: 4406, 4406: 4407, 4407: 4408, 4408: 4409, 4409: 4410, 4410: 4411, 4411: 4412, 4412: 4413, 4413: 4414, 4414: 4415, 4415: 4416, 4416: 4417, 4417: 4418, 4418: 4419, 4419: 4420, 4420: 4421, 4421: 4422, 4422: 4423, 4423: 4424, 4424: 4425, 4425: 4426, 4426: 4427, 4427: 4428, 4428: 4429, 4429: 4430, 4430: 4431, 4431: 4432, 4432: 4433, 4433: 4434, 4434: 4435, 4435: 4436, 4436: 4437, 4437: 4438, 4438: 4439, 4439: 4440, 4440: 4441, 4441: 4442, 4442: 4443, 4443: 4444, 4444: 4445, 4445: 4446, 4446: 4447, 4447: 4448, 4448: 4449, 4449: 4450, 4450: 4451, 4451: 4452, 4452: 4453, 4453: 4454, 4454: 4455, 4455: 4456, 4456: 4457, 4457: 4458, 4458: 4459, 4459: 4460, 4460: 4461, 4461: 4462, 4462: 4463, 4463: 4464, 4464: 4465, 4465: 4466, 4466: 4467, 4467: 4468, 4468: 4469, 4469: 4470, 4470: 4471, 4471: 4472, 4472: 4473, 4473: 4474, 4474: 4475, 4475: 4476, 4476: 4477, 4477: 4478, 4478: 4479, 4479: 4480, 4480: 4481, 4481: 4482, 4482: 4483, 4483: 4484, 4484: 4485, 4485: 4486, 4486: 4487, 4487: 4488, 4488: 4489, 4489: 4490, 4490: 4491, 4491: 4492, 4492: 4493, 4493: 4494, 4494: 4495, 4495: 4496, 4496: 4497, 4497: 4498, 4498: 4499, 4499: 4500, 4500: 4501, 4501: 4502, 4502: 4503, 4503: 4504, 4504: 4505, 4505: 4506, 4506: 4507, 4507: 4508, 4508: 4509, 4509: 4510, 4510: 4511, 4511: 4512, 4512: 4513, 4513: 4514, 4514: 4515, 4515: 4516, 4516: 4517, 4517: 4518, 4518: 4519, 4519: 4520, 4520: 4521, 4521: 4522, 4522: 4523, 4523: 4524, 4524: 4525, 4525: 4526, 4526: 4527, 4527: 4528, 4528: 4529, 4529: 4530, 4530: 4531, 4531: 4532, 4532: 4533, 4533: 4534, 4534: 4535, 4535: 4536, 4536: 4537, 4537: 4538, 4538: 4539, 4539: 4540, 4540: 4541, 4541: 4542, 4542: 4543, 4543: 4544, 4544: 4545, 4545: 4546, 4546: 4547, 4547: 4548, 4548: 4549, 4549: 4550, 4550: 4551, 4551: 4552, 4552: 4553, 4553: 4554, 4554: 4555, 4555: 4556, 4556: 4557, 4557: 4558, 4558: 4559, 4559: 4560, 4560: 4561, 4561: 4562, 4562: 4563, 4563: 4564, 4564: 4565, 4565: 4566, 4566: 4567, 4567: 4568, 4568: 4569, 4569: 4570, 4570: 4571, 4571: 4572, 4572: 4573, 4573: 4574, 4574: 4575, 4575: 4576, 4576: 4577, 4577: 4578, 4578: 4579, 4579: 4580, 4580: 4581, 4581: 4582, 4582: 4583, 4583: 4584, 4584: 4585, 4585: 4586, 4586: 4587, 4587: 4588, 4588: 4589, 4589: 4590, 4590: 4591, 4591: 4592, 4592: 4593, 4593: 4594, 4594: 4595, 4595: 4596, 4596: 4597, 4597: 4598, 4598: 4599, 4599: 4600, 4600: 4601, 4601: 4602, 4602: 4603, 4603: 4604, 4604: 4605, 4605: 4606, 4606: 4607, 4607: 4608, 4608: 4609, 4609: 4610, 4610: 4611, 4611: 4612, 4612: 4613, 4613: 4614, 4614: 4615, 4615: 4616, 4616: 4617, 4617: 4618, 4618: 4619, 4619: 4620, 4620: 4621, 4621: 4622, 4622: 4623, 4623: 4624, 4624: 4625, 4625: 4626, 4626: 4627, 4627: 4628, 4628: 4629, 4629: 4630, 4630: 4631, 4631: 4632, 4632: 4633, 4633: 4634, 4634: 4635, 4635: 4636, 4636: 4637, 4637: 4638, 4638: 4639, 4639: 4640, 4640: 4641, 4641: 4642, 4642: 4643, 4643: 4644, 4644: 4645, 4645: 4646, 4646: 4647, 4647: 4648, 4648: 4649, 4649: 4650, 4650: 4651, 4651: 4652, 4652: 4653, 4653: 4654, 4654: 4655, 4655: 4656, 4656: 4657, 4657: 4658, 4658: 4659, 4659: 4660, 4660: 4661, 4661: 4662, 4662: 4663, 4663: 4664, 4664: 4665, 4665: 4666, 4666: 4667, 4667: 4668, 4668: 4669, 4669: 4670, 4670: 4671, 4671: 4672, 4672: 4673, 4673: 4674, 4674: 4675, 4675: 4676, 4676: 4677, 4677: 4678, 4678: 4679, 4679: 4680, 4680: 4681, 4681: 4682, 4682: 4683, 4683: 4684, 4684: 4685, 4685: 4686, 4686: 4687, 4687: 4688, 4688: 4689, 4689: 4690, 4690: 4691, 4691: 4692, 4692: 4693, 4693: 4694, 4694: 4695, 4695: 4696, 4696: 4697, 4697: 4698, 4698: 4699, 4699: 4700, 4700: 4701, 4701: 4702, 4702: 4703, 4703: 4704, 4704: 4705, 4705: 4706, 4706: 4707, 4707: 4708, 4708: 4709, 4709: 4710, 4710: 4711, 4711: 4712, 4712: 4713, 4713: 4714, 4714: 4715, 4715: 4716, 4716: 4717, 4717: 4718, 4718: 4719, 4719: 4720, 4720: 4721, 4721: 4722, 4722: 4723, 4723: 4724, 4724: 4725, 4725: 4726, 4726: 4727, 4727: 4728, 4728: 4729, 4729: 4730, 4730: 4731, 4731: 4732, 4732: 4733, 4733: 4734, 4734: 4735, 4735: 4736, 4736: 4737, 4737: 4738, 4738: 4739, 4739: 4740, 4740: 4741, 4741: 4742, 4742: 4743, 4743: 4744, 4744: 4745, 4745: 4746, 4746: 4747, 4747: 4748, 4748: 4749, 4749: 4750, 4750: 4751, 4751: 4752, 4752: 4753, 4753: 4754, 4754: 4755, 4755: 4756, 4756: 4757, 4757: 4758, 4758: 4759, 4759: 4760, 4760: 4761, 4761: 4762, 4762: 4763, 4763: 4764, 4764: 4765, 4765: 4766, 4766: 4767, 4767: 4768, 4768: 4769, 4769: 4770, 4770: 4771, 4771: 4772, 4772: 4773, 4773: 4774, 4774: 4775, 4775: 4776, 4776: 4777, 4777: 4778, 4778: 4779, 4779: 4780, 4780: 4781, 4781: 4782, 4782: 4783, 4783: 4784, 4784: 4785, 4785: 4786, 4786: 4787, 4787: 4788, 4788: 4789, 4789: 4790, 4790: 4791, 4791: 4792, 4792: 4793, 4793: 4794, 4794: 4795, 4795: 4796, 4796: 4797, 4797: 4798, 4798: 4799, 4799: 4800, 4800: 4801, 4801: 4802, 4802: 4803, 4803: 4804, 4804: 4805, 4805: 4806, 4806: 4807, 4807: 4808, 4808: 4809, 4809: 4810, 4810: 4811, 4811: 4812, 4812: 4813, 4813: 4814, 4814: 4815, 4815: 4816, 4816: 4817, 4817: 4818, 4818: 4819, 4819: 4820, 4820: 4821, 4821: 4822, 4822: 4823, 4823: 4824, 4824: 4825, 4825: 4826, 4826: 4827, 4827: 4828, 4828: 4829, 4829: 4830, 4830: 4831, 4831: 4832, 4832: 4833, 4833: 4834, 4834: 4835, 4835: 4836, 4836: 4837, 4837: 4838, 4838: 4839, 4839: 4840, 4840: 4841, 4841: 4842, 4842: 4843, 4843: 4844, 4844: 4845, 4845: 4846, 4846: 4847, 4847: 4848, 4848: 4849, 4849: 4850, 4850: 4851, 4851: 4852, 4852: 4853, 4853: 4854, 4854: 4855, 4855: 4856, 4856: 4857, 4857: 4858, 4858: 4859, 4859: 4860, 4860: 4861, 4861: 4862, 4862: 4863, 4863: 4864, 4864: 4865, 4865: 4866, 4866: 4867, 4867: 4868, 4868: 4869, 4869: 4870, 4870: 4871, 4871: 4872, 4872: 4873, 4873: 4874, 4874: 4875, 4875: 4876, 4876: 4877, 4877: 4878, 4878: 4879, 4879: 4880, 4880: 4881, 4881: 4882, 4882: 4883, 4883: 4884, 4884: 4885, 4885: 4886, 4886: 4887, 4887: 4888, 4888: 4889, 4889: 4890, 4890: 4891, 4891: 4892, 4892: 4893, 4893: 4894, 4894: 4895, 4895: 4896, 4896: 4897, 4897: 4898, 4898: 4899, 4899: 4900, 4900: 4901, 4901: 4902, 4902: 4903, 4903: 4904, 4904: 4905, 4905: 4906, 4906: 4907, 4907: 4908, 4908: 4909, 4909: 4910, 4910: 4911, 4911: 4912, 4912: 4913, 4913: 4914, 4914: 4915, 4915: 4916, 4916: 4917, 4917: 4918, 4918: 4919, 4919: 4920, 4920: 4921, 4921: 4922, 4922: 4923, 4923: 4924, 4924: 4925, 4925: 4926, 4926: 4927, 4927: 4928, 4928: 4929, 4929: 4930, 4930: 4931, 4931: 4932, 4932: 4933, 4933: 4934, 4934: 4935, 4935: 4936, 4936: 4937, 4937: 4938, 4938: 4939, 4939: 4940, 4940: 4941, 4941: 4942, 4942: 4943, 4943: 4944, 4944: 4945, 4945: 4946, 4946: 4947, 4947: 4948, 4948: 4949, 4949: 4950, 4950: 4951, 4951: 4952, 4952: 4953, 4953: 4954, 4954: 4955, 4955: 4956, 4956: 4957, 4957: 4958, 4958: 4959, 4959: 4960, 4960: 4961, 4961: 4962, 4962: 4963, 4963: 4964, 4964: 4965, 4965: 4966, 4966: 4967, 4967: 4968, 4968: 4969, 4969: 4970, 4970: 4971, 4971: 4972, 4972: 4973, 4973: 4974, 4974: 4975, 4975: 4976, 4976: 4977, 4977: 4978, 4978: 4979, 4979: 4980, 4980: 4981, 4981: 4982, 4982: 4983, 4983: 4984, 4984: 4985, 4985: 4986, 4986: 4987, 4987: 4988, 4988: 4989, 4989: 4990, 4990: 4991, 4991: 4992, 4992: 4993, 4993: 4994, 4994: 4995, 4995: 4996, 4996: 4997, 4997: 4998, 4998: 4999, 4999: 5000, 5000: 5001, 5001: 5002, 5002: 5003, 5003: 5004, 5004: 5005, 5005: 5006, 5006: 5007, 5007: 5008, 5008: 5009, 5009: 5010, 5010: 5011, 5011: 5012, 5012: 5013, 5013: 5014, 5014: 5015, 5015: 5016, 5016: 5017, 5017: 5018, 5018: 5019, 5019: 5020, 5020: 5021, 5021: 5022, 5022: 5023, 5023: 5024, 5024: 5025, 5025: 5026, 5026: 5027, 5027: 5028, 5028: 5029, 5029: 5030, 5030: 5031, 5031: 5032, 5032: 5033, 5033: 5034, 5034: 5035, 5035: 5036, 5036: 5037, 5037: 5038, 5038: 5039, 5039: 5040, 5040: 5041, 5041: 5042, 5042: 5043, 5043: 5044, 5044: 5045, 5045: 5046, 5046: 5047, 5047: 5048, 5048: 5049, 5049: 5050, 5050: 5051, 5051: 5052, 5052: 5053, 5053: 5054, 5054: 5055, 5055: 5056, 5056: 5057, 5057: 5058, 5058: 5059, 5059: 5060, 5060: 5061, 5061: 5062, 5062: 5063, 5063: 5064, 5064: 5065, 5065: 5066, 5066: 5067, 5067: 5068, 5068: 5069, 5069: 5070, 5070: 5071, 5071: 5072, 5072: 5073, 5073: 5074, 5074: 5075, 5075: 5076, 5076: 5077, 5077: 5078, 5078: 5079, 5079: 5080, 5080: 5081, 5081: 5082, 5082: 5083, 5083: 5084, 5084: 5085, 5085: 5086, 5086: 5087, 5087: 5088, 5088: 5089, 5089: 5090, 5090: 5091, 5091: 5092, 5092: 5093, 5093: 5094, 5094: 5095, 5095: 5096, 5096: 5097, 5097: 5098, 5098: 5099, 5099: 5100, 5100: 5101, 5101: 5102, 5102: 5103, 5103: 5104, 5104: 5105, 5105: 5106, 5106: 5107, 5107: 5108, 5108: 5109, 5109: 5110, 5110: 5111, 5111: 5112, 5112: 5113, 5113: 5114, 5114: 5115, 5115: 5116, 5116: 5117, 5117: 5118, 5118: 5119, 5119: 5120, 5120: 5121, 5121: 5122, 5122: 5123, 5123: 5124, 5124: 5125, 5125: 5126, 5126: 5127, 5127: 5128, 5128: 5129, 5129: 5130, 5130: 5131, 5131: 5132, 5132: 5133, 5133: 5134, 5134: 5135, 5135: 5136, 5136: 5137, 5137: 5138, 5138: 5139, 5139: 5140, 5140: 5141, 5141: 5142, 5142: 5143, 5143: 5144, 5144: 5145, 5145: 5146, 5146: 5147, 5147: 5148, 5148: 5149, 5149: 5150, 5150: 5151, 5151: 5152, 5152: 5153, 5153: 5154, 5154: 5155, 5155: 5156, 5156: 5157, 5157: 5158, 5158: 5159, 5159: 5160, 5160: 5161, 5161: 5162, 5162: 5163, 5163: 5164, 5164: 5165, 5165: 5166, 5166: 5167, 5167: 5168, 5168: 5169, 5169: 5170, 5170: 5171, 5171: 5172, 5172: 5173, 5173: 5174, 5174: 5175, 5175: 5176, 5176: 5177, 5177: 5178, 5178: 5179, 5179: 5180, 5180: 5181, 5181: 5182, 5182: 5183, 5183: 5184, 5184: 5185, 5185: 5186, 5186: 5187, 5187: 5188, 5188: 5189, 5189: 5190, 5190: 5191, 5191: 5192, 5192: 5193, 5193: 5194, 5194: 5195, 5195: 5196, 5196: 5197, 5197: 5198, 5198: 5199, 5199: 5200, 5200: 5201, 5201: 5202, 5202: 5203, 5203: 5204, 5204: 5205, 5205: 5206, 5206: 5207, 5207: 5208, 5208: 5209, 5209: 5210, 5210: 5211, 5211: 5212, 5212: 5213, 5213: 5214, 5214: 5215, 5215: 5216, 5216: 5217, 5217: 5218, 5218: 5219, 5219: 5220, 5220: 5221, 5221: 5222, 5222: 5223, 5223: 5224, 5224: 5225, 5225: 5226, 5226: 5227, 5227: 5228, 5228: 5229, 5229: 5230, 5230: 5231, 5231: 5232, 5232: 5233, 5233: 5234, 5234: 5235, 5235: 5236, 5236: 5237, 5237: 5238, 5238: 5239, 5239: 5240, 5240: 5241, 5241: 5242, 5242: 5243, 5243: 5244, 5244: 5245, 5245: 5246, 5246: 5247, 5247: 5248, 5248: 5249, 5249: 5250, 5250: 5251, 5251: 5252, 5252: 5253, 5253: 5254, 5254: 5255, 5255: 5256, 5256: 5257, 5257: 5258, 5258: 5259, 5259: 5260, 5260: 5261, 5261: 5262, 5262: 5263, 5263: 5264, 5264: 5265, 5265: 5266, 5266: 5267, 5267: 5268, 5268: 5269, 5269: 5270, 5270: 5271, 5271: 5272, 5272: 5273, 5273: 5274, 5274: 5275, 5275: 5276, 5276: 5277, 5277: 5278, 5278: 5279, 5279: 5280, 5280: 5281, 5281: 5282, 5282: 5283, 5283: 5284, 5284: 5285, 5285: 5286, 5286: 5287, 5287: 5288, 5288: 5289, 5289: 5290, 5290: 5291, 5291: 5292, 5292: 5293, 5293: 5294, 5294: 5295, 5295: 5296, 5296: 5297, 5297: 5298, 5298: 5299, 5299: 5300, 5300: 5301, 5301: 5302, 5302: 5303, 5303: 5304, 5304: 5305, 5305: 5306, 5306: 5307, 5307: 5308, 5308: 5309, 5309: 5310, 5310: 5311, 5311: 5312, 5312: 5313, 5313: 5314, 5314: 5315, 5315: 5316, 5316: 5317, 5317: 5318, 5318: 5319, 5319: 5320, 5320: 5321, 5321: 5322, 5322: 5323, 5323: 5324, 5324: 5325, 5325: 5326, 5326: 5327, 5327: 5328, 5328: 5329, 5329: 5330, 5330: 5331, 5331: 5332, 5332: 5333, 5333: 5334, 5334: 5335, 5335: 5336, 5336: 5337, 5337: 5338, 5338: 5339, 5339: 5340, 5340: 5341, 5341: 5342, 5342: 5343, 5343: 5344, 5344: 5345, 5345: 5346, 5346: 5347, 5347: 5348, 5348: 5349, 5349: 5350, 5350: 5351, 5351: 5352, 5352: 5353, 5353: 5354, 5354: 5355, 5355: 5356, 5356: 5357, 5357: 5358, 5358: 5359, 5359: 5360, 5360: 5361, 5361: 5362, 5362: 5363, 5363: 5364, 5364: 5365, 5365: 5366, 5366: 5367, 5367: 5368, 5368: 5369, 5369: 5370, 5370: 5371, 5371: 5372, 5372: 5373, 5373: 5374, 5374: 5375, 5375: 5376, 5376: 5377, 5377: 5378, 5378: 5379, 5379: 5380, 5380: 5381, 5381: 5382, 5382: 5383, 5383: 5384, 5384: 5385, 5385: 5386, 5386: 5387, 5387: 5388, 5388: 5389, 5389: 5390, 5390: 5391, 5391: 5392, 5392: 5393, 5393: 5394, 5394: 5395, 5395: 5396, 5396: 5397, 5397: 5398, 5398: 5399, 5399: 5400, 5400: 5401, 5401: 5402, 5402: 5403, 5403: 5404, 5404: 5405, 5405: 5406, 5406: 5407, 5407: 5408, 5408: 5409, 5409: 5410, 5410: 5411, 5411: 5412, 5412: 5413, 5413: 5414, 5414: 5415, 5415: 5416, 5416: 5417, 5417: 5418, 5418: 5419, 5419: 5420, 5420: 5421, 5421: 5422, 5422: 5423, 5423: 5424, 5424: 5425, 5425: 5426, 5426: 5427, 5427: 5428, 5428: 5429, 5429: 5430, 5430: 5431, 5431: 5432, 5432: 5433, 5433: 5434, 5434: 5435, 5435: 5436, 5436: 5437, 5437: 5438, 5438: 5439, 5439: 5440, 5440: 5441, 5441: 5442, 5442: 5443, 5443: 5444, 5444: 5445, 5445: 5446, 5446: 5447, 5447: 5448, 5448: 5449, 5449: 5450, 5450: 5451, 5451: 5452, 5452: 5453, 5453: 5454, 5454: 5455, 5455: 5456, 5456: 5457, 5457: 5458, 5458: 5459, 5459: 5460, 5460: 5461, 5461: 5462, 5462: 5463, 5463: 5464, 5464: 5465, 5465: 5466, 5466: 5467, 5467: 5468, 5468: 5469, 5469: 5470, 5470: 5471, 5471: 5472, 5472: 5473, 5473: 5474, 5474: 5475, 5475: 5476, 5476: 5477, 5477: 5478, 5478: 5479, 5479: 5480, 5480: 5481, 5481: 5482, 5482: 5483, 5483: 5484, 5484: 5485, 5485: 5486, 5486: 5487, 5487: 5488, 5488: 5489, 5489: 5490, 5490: 5491, 5491: 5492, 5492: 5493, 5493: 5494, 5494: 5495, 5495: 5496, 5496: 5497, 5497: 5498, 5498: 5499, 5499: 5500, 5500: 5501, 5501: 5502, 5502: 5503, 5503: 5504, 5504: 5505, 5505: 5506, 5506: 5507, 5507: 5508, 5508: 5509, 5509: 5510, 5510: 5511, 5511: 5512, 5512: 5513, 5513: 5514, 5514: 5515, 5515: 5516, 5516: 5517, 5517: 5518, 5518: 5519, 5519: 5520, 5520: 5521, 5521: 5522, 5522: 5523, 5523: 5524, 5524: 5525, 5525: 5526, 5526: 5527, 5527: 5528, 5528: 5529, 5529: 5530, 5530: 5531, 5531: 5532, 5532: 5533, 5533: 5534, 5534: 5535, 5535: 5536, 5536: 5537, 5537: 5538, 5538: 5539, 5539: 5540, 5540: 5541, 5541: 5542, 5542: 5543, 5543: 5544, 5544: 5545, 5545: 5546, 5546: 5547, 5547: 5548, 5548: 5549, 5549: 5550, 5550: 5551, 5551: 5552, 5552: 5553, 5553: 5554, 5554: 5555, 5555: 5556, 5556: 5557, 5557: 5558, 5558: 5559, 5559: 5560, 5560: 5561, 5561: 5562, 5562: 5563, 5563: 5564, 5564: 5565, 5565: 5566, 5566: 5567, 5567: 5568, 5568: 5569, 5569: 5570, 5570: 5571, 5571: 5572, 5572: 5573, 5573: 5574, 5574: 5575, 5575: 5576, 5576: 5577, 5577: 5578, 5578: 5579, 5579: 5580, 5580: 5581, 5581: 5582, 5582: 5583, 5583: 5584, 5584: 5585, 5585: 5586, 5586: 5587, 5587: 5588, 5588: 5589, 5589: 5590, 5590: 5591, 5591: 5592, 5592: 5593, 5593: 5594, 5594: 5595, 5595: 5596, 5596: 5597, 5597: 5598, 5598: 5599, 5599: 5600, 5600: 5601, 5601: 5602, 5602: 5603, 5603: 5604, 5604: 5605, 5605: 5606, 5606: 5607, 5607: 5608, 5608: 5609, 5609: 5610, 5610: 5611, 5611: 5612, 5612: 5613, 5613: 5614, 5614: 5615, 5615: 5616, 5616: 5617, 5617: 5618, 5618: 5619, 5619: 5620, 5620: 5621, 5621: 5622, 5622: 5623, 5623: 5624, 5624: 5625, 5625: 5626, 5626: 5627, 5627: 5628, 5628: 5629, 5629: 5630, 5630: 5631, 5631: 5632, 5632: 5633, 5633: 5634, 5634: 5635, 5635: 5636, 5636: 5637, 5637: 5638, 5638: 5639, 5639: 5640, 5640: 5641, 5641: 5642, 5642: 5643, 5643: 5644, 5644: 5645, 5645: 5646, 5646: 5647, 5647: 5648, 5648: 5649, 5649: 5650, 5650: 5651, 5651: 5652, 5652: 5653, 5653: 5654, 5654: 5655, 5655: 5656, 5656: 5657, 5657: 5658, 5658: 5659, 5659: 5660, 5660: 5661, 5661: 5662, 5662: 5663, 5663: 5664, 5664: 5665, 5665: 5666, 5666: 5667, 5667: 5668, 5668: 5669, 5669: 5670, 5670: 5671, 5671: 5672, 5672: 5673, 5673: 5674, 5674: 5675, 5675: 5676, 5676: 5677, 5677: 5678, 5678: 5679, 5679: 5680, 5680: 5681, 5681: 5682, 5682: 5683, 5683: 5684, 5684: 5685, 5685: 5686, 5686: 5687, 5687: 5688, 5688: 5689, 5689: 5690, 5690: 5691, 5691: 5692, 5692: 5693, 5693: 5694, 5694: 5695, 5695: 5696, 5696: 5697, 5697: 5698, 5698: 5699, 5699: 5700, 5700: 5701, 5701: 5702, 5702: 5703, 5703: 5704, 5704: 5705, 5705: 5706, 5706: 5707, 5707: 5708, 5708: 5709, 5709: 5710, 5710: 5711, 5711: 5712, 5712: 5713, 5713: 5714, 5714: 5715, 5715: 5716, 5716: 5717, 5717: 5718, 5718: 5719, 5719: 5720, 5720: 5721, 5721: 5722, 5722: 5723, 5723: 5724, 5724: 5725, 5725: 5726, 5726: 5727, 5727: 5728, 5728: 5729, 5729: 5730, 5730: 5731, 5731: 5732, 5732: 5733, 5733: 5734, 5734: 5735, 5735: 5736, 5736: 5737, 5737: 5738, 5738: 5739, 5739: 5740, 5740: 5741, 5741: 5742, 5742: 5743, 5743: 5744, 5744: 5745, 5745: 5746, 5746: 5747, 5747: 5748, 5748: 5749, 5749: 5750, 5750: 5751, 5751: 5752, 5752: 5753, 5753: 5754, 5754: 5755, 5755: 5756, 5756: 5757, 5757: 5758, 5758: 5759, 5759: 5760, 5760: 5761, 5761: 5762, 5762: 5763, 5763: 5764, 5764: 5765, 5765: 5766, 5766: 5767, 5767: 5768, 5768: 5769, 5769: 5770, 5770: 5771, 5771: 5772, 5772: 5773, 5773: 5774, 5774: 5775, 5775: 5776, 5776: 5777, 5777: 5778, 5778: 5779, 5779: 5780, 5780: 5781, 5781: 5782, 5782: 5783, 5783: 5784, 5784: 5785, 5785: 5786, 5786: 5787, 5787: 5788, 5788: 5789, 5789: 5790, 5790: 5791, 5791: 5792, 5792: 5793, 5793: 5794, 5794: 5795, 5795: 5796, 5796: 5797, 5797: 5798, 5798: 5799, 5799: 5800, 5800: 5801, 5801: 5802, 5802: 5803, 5803: 5804, 5804: 5805, 5805: 5806, 5806: 5807, 5807: 5808, 5808: 5809, 5809: 5810, 5810: 5811, 5811: 5812, 5812: 5813, 5813: 5814, 5814: 5815, 5815: 5816, 5816: 5817, 5817: 5818, 5818: 5819, 5819: 5820, 5820: 5821, 5821: 5822, 5822: 5823, 5823: 5824, 5824: 5825, 5825: 5826, 5826: 5827, 5827: 5828, 5828: 5829, 5829: 5830, 5830: 5831, 5831: 5832, 5832: 5833, 5833: 5834, 5834: 5835, 5835: 5836, 5836: 5837, 5837: 5838, 5838: 5839, 5839: 5840, 5840: 5841, 5841: 5842, 5842: 5843, 5843: 5844, 5844: 5845, 5845: 5846, 5846: 5847, 5847: 5848, 5848: 5849, 5849: 5850, 5850: 5851, 5851: 5852, 5852: 5853, 5853: 5854, 5854: 5855, 5855: 5856, 5856: 5857, 5857: 5858, 5858: 5859, 5859: 5860, 5860: 5861, 5861: 5862, 5862: 5863, 5863: 5864, 5864: 5865, 5865: 5866, 5866: 5867, 5867: 5868, 5868: 5869, 5869: 5870, 5870: 5871, 5871: 5872, 5872: 5873, 5873: 5874, 5874: 5875, 5875: 5876, 5876: 5877, 5877: 5878, 5878: 5879, 5879: 5880, 5880: 5881, 5881: 5882, 5882: 5883, 5883: 5884, 5884: 5885, 5885: 5886, 5886: 5887, 5887: 5888, 5888: 5889, 5889: 5890, 5890: 5891, 5891: 5892, 5892: 5893, 5893: 5894, 5894: 5895, 5895: 5896, 5896: 5897, 5897: 5898, 5898: 5899, 5899: 5900, 5900: 5901, 5901: 5902, 5902: 5903, 5903: 5904, 5904: 5905, 5905: 5906, 5906: 5907, 5907: 5908, 5908: 5909, 5909: 5910, 5910: 5911, 5911: 5912, 5912: 5913, 5913: 5914, 5914: 5915, 5915: 5916, 5916: 5917, 5917: 5918, 5918: 5919, 5919: 5920, 5920: 5921, 5921: 5922, 5922: 5923, 5923: 5924, 5924: 5925, 5925: 5926, 5926: 5927, 5927: 5928, 5928: 5929, 5929: 5930, 5930: 5931, 5931: 5932, 5932: 5933, 5933: 5934, 5934: 5935, 5935: 5936, 5936: 5937, 5937: 5938, 5938: 5939, 5939: 5940, 5940: 5941, 5941: 5942, 5942: 5943, 5943: 5944, 5944: 5945, 5945: 5946, 5946: 5947, 5947: 5948, 5948: 5949, 5949: 5950, 5950: 5951, 5951: 5952, 5952: 5953, 5953: 5954, 5954: 5955, 5955: 5956, 5956: 5957, 5957: 5958, 5958: 5959, 5959: 5960, 5960: 5961, 5961: 5962, 5962: 5963, 5963: 5964, 5964: 5965, 5965: 5966, 5966: 5967, 5967: 5968, 5968: 5969, 5969: 5970, 5970: 5971, 5971: 5972, 5972: 5973, 5973: 5974, 5974: 5975, 5975: 5976, 5976: 5977, 5977: 5978, 5978: 5979, 5979: 5980, 5980: 5981, 5981: 5982, 5982: 5983, 5983: 5984, 5984: 5985, 5985: 5986, 5986: 5987, 5987: 5988, 5988: 5989, 5989: 5990, 5990: 5991, 5991: 5992, 5992: 5993, 5993: 5994, 5994: 5995, 5995: 5996, 5996: 5997, 5997: 5998, 5998: 5999, 5999: 6000, 6000: 6001, 6001: 6002, 6002: 6003, 6003: 6004, 6004: 6005, 6005: 6006, 6006: 6007, 6007: 6008, 6008: 6009, 6009: 6010, 6010: 6011, 6011: 6012, 6012: 6013, 6013: 6014, 6014: 6015, 6015: 6016, 6016: 6017, 6017: 6018, 6018: 6019, 6019: 6020, 6020: 6021, 6021: 6022, 6022: 6023, 6023: 6024, 6024: 6025, 6025: 6026, 6026: 6027, 6027: 6028, 6028: 6029, 6029: 6030, 6030: 6031, 6031: 6032, 6032: 6033, 6033: 6034, 6034: 6035, 6035: 6036, 6036: 6037, 6037: 6038, 6038: 6039, 6039: 6040}}\n", + "{'item_id': {1: 0, 2: 1, 3: 2, 4: 3, 5: 4, 6: 5, 7: 6, 8: 7, 9: 8, 10: 9, 11: 10, 12: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16, 18: 17, 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24, 26: 25, 27: 26, 28: 27, 29: 28, 30: 29, 31: 30, 32: 31, 33: 32, 34: 33, 35: 34, 36: 35, 37: 36, 38: 37, 39: 38, 40: 39, 41: 40, 42: 41, 43: 42, 44: 43, 45: 44, 46: 45, 47: 46, 48: 47, 49: 48, 50: 49, 51: 50, 52: 51, 53: 52, 54: 53, 55: 54, 56: 55, 57: 56, 58: 57, 59: 58, 60: 59, 61: 60, 62: 61, 63: 62, 64: 63, 65: 64, 66: 65, 67: 66, 68: 67, 69: 68, 70: 69, 71: 70, 72: 71, 73: 72, 74: 73, 75: 74, 76: 75, 77: 76, 78: 77, 79: 78, 80: 79, 81: 80, 82: 81, 83: 82, 84: 83, 85: 84, 86: 85, 87: 86, 88: 87, 89: 88, 90: 89, 92: 90, 93: 91, 94: 92, 95: 93, 96: 94, 97: 95, 98: 96, 99: 97, 100: 98, 101: 99, 102: 100, 103: 101, 104: 102, 105: 103, 106: 104, 107: 105, 108: 106, 109: 107, 110: 108, 111: 109, 112: 110, 113: 111, 114: 112, 115: 113, 116: 114, 117: 115, 118: 116, 119: 117, 120: 118, 121: 119, 122: 120, 123: 121, 124: 122, 125: 123, 126: 124, 127: 125, 128: 126, 129: 127, 130: 128, 131: 129, 132: 130, 133: 131, 134: 132, 135: 133, 136: 134, 137: 135, 138: 136, 139: 137, 140: 138, 141: 139, 142: 140, 143: 141, 144: 142, 145: 143, 146: 144, 147: 145, 148: 146, 149: 147, 150: 148, 151: 149, 152: 150, 153: 151, 154: 152, 155: 153, 156: 154, 157: 155, 158: 156, 159: 157, 160: 158, 161: 159, 162: 160, 163: 161, 164: 162, 165: 163, 166: 164, 167: 165, 168: 166, 169: 167, 170: 168, 171: 169, 172: 170, 173: 171, 174: 172, 175: 173, 176: 174, 177: 175, 178: 176, 179: 177, 180: 178, 181: 179, 182: 180, 183: 181, 184: 182, 185: 183, 186: 184, 187: 185, 188: 186, 189: 187, 190: 188, 191: 189, 192: 190, 193: 191, 194: 192, 195: 193, 196: 194, 197: 195, 198: 196, 199: 197, 200: 198, 201: 199, 202: 200, 203: 201, 204: 202, 205: 203, 206: 204, 207: 205, 208: 206, 209: 207, 210: 208, 211: 209, 212: 210, 213: 211, 214: 212, 215: 213, 216: 214, 217: 215, 218: 216, 219: 217, 220: 218, 222: 219, 223: 220, 224: 221, 225: 222, 226: 223, 227: 224, 228: 225, 229: 226, 230: 227, 231: 228, 232: 229, 233: 230, 234: 231, 235: 232, 236: 233, 237: 234, 238: 235, 239: 236, 240: 237, 241: 238, 242: 239, 243: 240, 244: 241, 245: 242, 246: 243, 247: 244, 248: 245, 249: 246, 250: 247, 251: 248, 252: 249, 253: 250, 254: 251, 255: 252, 256: 253, 257: 254, 258: 255, 259: 256, 260: 257, 261: 258, 262: 259, 263: 260, 264: 261, 265: 262, 266: 263, 267: 264, 268: 265, 269: 266, 270: 267, 271: 268, 272: 269, 273: 270, 274: 271, 275: 272, 276: 273, 277: 274, 278: 275, 279: 276, 280: 277, 281: 278, 282: 279, 283: 280, 284: 281, 285: 282, 286: 283, 287: 284, 288: 285, 289: 286, 290: 287, 291: 288, 292: 289, 293: 290, 294: 291, 295: 292, 296: 293, 297: 294, 298: 295, 299: 296, 300: 297, 301: 298, 302: 299, 303: 300, 304: 301, 305: 302, 306: 303, 307: 304, 308: 305, 309: 306, 310: 307, 311: 308, 312: 309, 313: 310, 314: 311, 315: 312, 316: 313, 317: 314, 318: 315, 319: 316, 320: 317, 321: 318, 322: 319, 324: 320, 325: 321, 326: 322, 327: 323, 328: 324, 329: 325, 330: 326, 331: 327, 332: 328, 333: 329, 334: 330, 335: 331, 336: 332, 337: 333, 338: 334, 339: 335, 340: 336, 341: 337, 342: 338, 343: 339, 344: 340, 345: 341, 346: 342, 347: 343, 348: 344, 349: 345, 350: 346, 351: 347, 352: 348, 353: 349, 354: 350, 355: 351, 356: 352, 357: 353, 358: 354, 359: 355, 360: 356, 361: 357, 362: 358, 363: 359, 364: 360, 365: 361, 366: 362, 367: 363, 368: 364, 369: 365, 370: 366, 371: 367, 372: 368, 373: 369, 374: 370, 375: 371, 376: 372, 377: 373, 378: 374, 379: 375, 380: 376, 381: 377, 382: 378, 383: 379, 384: 380, 385: 381, 386: 382, 387: 383, 388: 384, 389: 385, 390: 386, 391: 387, 392: 388, 393: 389, 394: 390, 395: 391, 396: 392, 397: 393, 398: 394, 399: 395, 400: 396, 401: 397, 402: 398, 403: 399, 404: 400, 405: 401, 406: 402, 407: 403, 408: 404, 409: 405, 410: 406, 411: 407, 412: 408, 413: 409, 414: 410, 415: 411, 416: 412, 417: 413, 418: 414, 419: 415, 420: 416, 421: 417, 422: 418, 423: 419, 424: 420, 425: 421, 426: 422, 427: 423, 428: 424, 429: 425, 430: 426, 431: 427, 432: 428, 433: 429, 434: 430, 435: 431, 436: 432, 437: 433, 438: 434, 439: 435, 440: 436, 441: 437, 442: 438, 443: 439, 444: 440, 445: 441, 446: 442, 447: 443, 448: 444, 449: 445, 450: 446, 451: 447, 452: 448, 453: 449, 454: 450, 455: 451, 456: 452, 457: 453, 458: 454, 459: 455, 460: 456, 461: 457, 462: 458, 463: 459, 464: 460, 465: 461, 466: 462, 467: 463, 468: 464, 469: 465, 470: 466, 471: 467, 472: 468, 473: 469, 474: 470, 475: 471, 476: 472, 477: 473, 478: 474, 479: 475, 480: 476, 481: 477, 482: 478, 483: 479, 484: 480, 485: 481, 486: 482, 487: 483, 488: 484, 489: 485, 490: 486, 491: 487, 492: 488, 493: 489, 494: 490, 495: 491, 496: 492, 497: 493, 498: 494, 499: 495, 500: 496, 501: 497, 502: 498, 503: 499, 504: 500, 505: 501, 506: 502, 507: 503, 508: 504, 509: 505, 510: 506, 511: 507, 512: 508, 513: 509, 514: 510, 515: 511, 516: 512, 517: 513, 518: 514, 519: 515, 520: 516, 521: 517, 522: 518, 523: 519, 524: 520, 525: 521, 526: 522, 527: 523, 528: 524, 529: 525, 530: 526, 531: 527, 532: 528, 533: 529, 534: 530, 535: 531, 536: 532, 537: 533, 538: 534, 539: 535, 540: 536, 541: 537, 542: 538, 543: 539, 544: 540, 545: 541, 546: 542, 547: 543, 548: 544, 549: 545, 550: 546, 551: 547, 552: 548, 553: 549, 554: 550, 555: 551, 556: 552, 557: 553, 558: 554, 559: 555, 560: 556, 561: 557, 562: 558, 563: 559, 564: 560, 565: 561, 566: 562, 567: 563, 568: 564, 569: 565, 570: 566, 571: 567, 572: 568, 573: 569, 574: 570, 575: 571, 576: 572, 577: 573, 578: 574, 579: 575, 580: 576, 581: 577, 582: 578, 583: 579, 584: 580, 585: 581, 586: 582, 587: 583, 588: 584, 589: 585, 590: 586, 591: 587, 592: 588, 593: 589, 594: 590, 595: 591, 596: 592, 597: 593, 598: 594, 599: 595, 600: 596, 601: 597, 602: 598, 603: 599, 604: 600, 605: 601, 606: 602, 607: 603, 608: 604, 609: 605, 610: 606, 611: 607, 612: 608, 613: 609, 614: 610, 615: 611, 616: 612, 617: 613, 618: 614, 619: 615, 620: 616, 621: 617, 623: 618, 624: 619, 625: 620, 626: 621, 627: 622, 628: 623, 629: 624, 630: 625, 631: 626, 632: 627, 633: 628, 634: 629, 635: 630, 636: 631, 637: 632, 638: 633, 639: 634, 640: 635, 641: 636, 642: 637, 643: 638, 644: 639, 645: 640, 647: 641, 648: 642, 649: 643, 650: 644, 651: 645, 652: 646, 653: 647, 654: 648, 655: 649, 656: 650, 657: 651, 658: 652, 659: 653, 660: 654, 661: 655, 662: 656, 663: 657, 664: 658, 665: 659, 666: 660, 667: 661, 668: 662, 669: 663, 670: 664, 671: 665, 672: 666, 673: 667, 674: 668, 675: 669, 676: 670, 678: 671, 679: 672, 680: 673, 681: 674, 682: 675, 683: 676, 684: 677, 685: 678, 687: 679, 688: 680, 690: 681, 691: 682, 692: 683, 693: 684, 694: 685, 695: 686, 696: 687, 697: 688, 698: 689, 699: 690, 700: 691, 701: 692, 702: 693, 703: 694, 704: 695, 705: 696, 706: 697, 707: 698, 708: 699, 709: 700, 710: 701, 711: 702, 712: 703, 713: 704, 714: 705, 715: 706, 716: 707, 717: 708, 718: 709, 719: 710, 720: 711, 721: 712, 722: 713, 723: 714, 724: 715, 725: 716, 726: 717, 727: 718, 728: 719, 729: 720, 730: 721, 731: 722, 732: 723, 733: 724, 734: 725, 735: 726, 736: 727, 737: 728, 738: 729, 739: 730, 741: 731, 742: 732, 743: 733, 744: 734, 745: 735, 746: 736, 747: 737, 748: 738, 749: 739, 750: 740, 751: 741, 752: 742, 753: 743, 754: 744, 755: 745, 756: 746, 757: 747, 758: 748, 759: 749, 760: 750, 761: 751, 762: 752, 763: 753, 764: 754, 765: 755, 766: 756, 767: 757, 768: 758, 769: 759, 770: 760, 771: 761, 772: 762, 773: 763, 774: 764, 775: 765, 776: 766, 777: 767, 778: 768, 779: 769, 780: 770, 781: 771, 782: 772, 783: 773, 784: 774, 785: 775, 786: 776, 787: 777, 788: 778, 789: 779, 790: 780, 791: 781, 792: 782, 793: 783, 794: 784, 795: 785, 796: 786, 797: 787, 798: 788, 799: 789, 800: 790, 801: 791, 802: 792, 803: 793, 804: 794, 805: 795, 806: 796, 807: 797, 808: 798, 809: 799, 810: 800, 811: 801, 812: 802, 813: 803, 814: 804, 815: 805, 816: 806, 818: 807, 819: 808, 820: 809, 821: 810, 822: 811, 823: 812, 824: 813, 825: 814, 826: 815, 827: 816, 828: 817, 829: 818, 830: 819, 831: 820, 832: 821, 833: 822, 834: 823, 835: 824, 836: 825, 837: 826, 838: 827, 839: 828, 840: 829, 841: 830, 842: 831, 843: 832, 844: 833, 845: 834, 846: 835, 847: 836, 848: 837, 849: 838, 850: 839, 851: 840, 852: 841, 853: 842, 854: 843, 855: 844, 856: 845, 857: 846, 858: 847, 859: 848, 860: 849, 861: 850, 862: 851, 863: 852, 864: 853, 865: 854, 866: 855, 867: 856, 868: 857, 869: 858, 870: 859, 871: 860, 872: 861, 873: 862, 874: 863, 875: 864, 876: 865, 877: 866, 878: 867, 879: 868, 880: 869, 881: 870, 882: 871, 884: 872, 885: 873, 886: 874, 887: 875, 888: 876, 889: 877, 890: 878, 891: 879, 892: 880, 893: 881, 894: 882, 895: 883, 896: 884, 897: 885, 898: 886, 899: 887, 900: 888, 901: 889, 902: 890, 903: 891, 904: 892, 905: 893, 906: 894, 907: 895, 908: 896, 909: 897, 910: 898, 911: 899, 912: 900, 913: 901, 914: 902, 915: 903, 916: 904, 917: 905, 918: 906, 919: 907, 920: 908, 921: 909, 922: 910, 923: 911, 924: 912, 925: 913, 926: 914, 927: 915, 928: 916, 929: 917, 930: 918, 931: 919, 932: 920, 933: 921, 934: 922, 935: 923, 936: 924, 937: 925, 938: 926, 939: 927, 940: 928, 941: 929, 942: 930, 943: 931, 944: 932, 945: 933, 946: 934, 947: 935, 948: 936, 949: 937, 950: 938, 951: 939, 952: 940, 953: 941, 954: 942, 955: 943, 956: 944, 957: 945, 958: 946, 959: 947, 960: 948, 961: 949, 962: 950, 963: 951, 964: 952, 965: 953, 966: 954, 967: 955, 968: 956, 969: 957, 970: 958, 971: 959, 972: 960, 973: 961, 974: 962, 975: 963, 976: 964, 977: 965, 978: 966, 979: 967, 980: 968, 981: 969, 982: 970, 983: 971, 984: 972, 985: 973, 986: 974, 987: 975, 988: 976, 989: 977, 990: 978, 991: 979, 992: 980, 993: 981, 994: 982, 996: 983, 997: 984, 998: 985, 999: 986, 1000: 987, 1001: 988, 1002: 989, 1003: 990, 1004: 991, 1005: 992, 1006: 993, 1007: 994, 1008: 995, 1009: 996, 1010: 997, 1011: 998, 1012: 999, 1013: 1000, 1014: 1001, 1015: 1002, 1016: 1003, 1017: 1004, 1018: 1005, 1019: 1006, 1020: 1007, 1021: 1008, 1022: 1009, 1023: 1010, 1024: 1011, 1025: 1012, 1026: 1013, 1027: 1014, 1028: 1015, 1029: 1016, 1030: 1017, 1031: 1018, 1032: 1019, 1033: 1020, 1034: 1021, 1035: 1022, 1036: 1023, 1037: 1024, 1038: 1025, 1039: 1026, 1040: 1027, 1041: 1028, 1042: 1029, 1043: 1030, 1044: 1031, 1045: 1032, 1046: 1033, 1047: 1034, 1049: 1035, 1050: 1036, 1051: 1037, 1052: 1038, 1053: 1039, 1054: 1040, 1055: 1041, 1056: 1042, 1057: 1043, 1058: 1044, 1059: 1045, 1060: 1046, 1061: 1047, 1062: 1048, 1063: 1049, 1064: 1050, 1065: 1051, 1066: 1052, 1067: 1053, 1068: 1054, 1069: 1055, 1070: 1056, 1071: 1057, 1073: 1058, 1075: 1059, 1076: 1060, 1077: 1061, 1078: 1062, 1079: 1063, 1080: 1064, 1081: 1065, 1082: 1066, 1083: 1067, 1084: 1068, 1085: 1069, 1086: 1070, 1087: 1071, 1088: 1072, 1089: 1073, 1090: 1074, 1091: 1075, 1092: 1076, 1093: 1077, 1094: 1078, 1095: 1079, 1096: 1080, 1097: 1081, 1098: 1082, 1099: 1083, 1100: 1084, 1101: 1085, 1102: 1086, 1103: 1087, 1104: 1088, 1105: 1089, 1106: 1090, 1107: 1091, 1108: 1092, 1109: 1093, 1110: 1094, 1111: 1095, 1112: 1096, 1113: 1097, 1114: 1098, 1115: 1099, 1116: 1100, 1117: 1101, 1118: 1102, 1119: 1103, 1120: 1104, 1121: 1105, 1122: 1106, 1123: 1107, 1124: 1108, 1125: 1109, 1126: 1110, 1127: 1111, 1128: 1112, 1129: 1113, 1130: 1114, 1131: 1115, 1132: 1116, 1133: 1117, 1134: 1118, 1135: 1119, 1136: 1120, 1137: 1121, 1138: 1122, 1139: 1123, 1140: 1124, 1141: 1125, 1142: 1126, 1143: 1127, 1144: 1128, 1145: 1129, 1146: 1130, 1147: 1131, 1148: 1132, 1149: 1133, 1150: 1134, 1151: 1135, 1152: 1136, 1153: 1137, 1154: 1138, 1155: 1139, 1156: 1140, 1157: 1141, 1158: 1142, 1159: 1143, 1160: 1144, 1161: 1145, 1162: 1146, 1163: 1147, 1164: 1148, 1165: 1149, 1166: 1150, 1167: 1151, 1168: 1152, 1169: 1153, 1170: 1154, 1171: 1155, 1172: 1156, 1173: 1157, 1174: 1158, 1175: 1159, 1176: 1160, 1177: 1161, 1178: 1162, 1179: 1163, 1180: 1164, 1181: 1165, 1183: 1166, 1184: 1167, 1185: 1168, 1186: 1169, 1187: 1170, 1188: 1171, 1189: 1172, 1190: 1173, 1191: 1174, 1192: 1175, 1193: 1176, 1194: 1177, 1196: 1178, 1197: 1179, 1198: 1180, 1199: 1181, 1200: 1182, 1201: 1183, 1202: 1184, 1203: 1185, 1204: 1186, 1205: 1187, 1206: 1188, 1207: 1189, 1208: 1190, 1209: 1191, 1210: 1192, 1211: 1193, 1212: 1194, 1213: 1195, 1214: 1196, 1215: 1197, 1216: 1198, 1217: 1199, 1218: 1200, 1219: 1201, 1220: 1202, 1221: 1203, 1222: 1204, 1223: 1205, 1224: 1206, 1225: 1207, 1226: 1208, 1227: 1209, 1228: 1210, 1230: 1211, 1231: 1212, 1232: 1213, 1233: 1214, 1234: 1215, 1235: 1216, 1236: 1217, 1237: 1218, 1238: 1219, 1240: 1220, 1241: 1221, 1242: 1222, 1243: 1223, 1244: 1224, 1245: 1225, 1246: 1226, 1247: 1227, 1248: 1228, 1249: 1229, 1250: 1230, 1251: 1231, 1252: 1232, 1253: 1233, 1254: 1234, 1255: 1235, 1256: 1236, 1257: 1237, 1258: 1238, 1259: 1239, 1260: 1240, 1261: 1241, 1262: 1242, 1263: 1243, 1264: 1244, 1265: 1245, 1266: 1246, 1267: 1247, 1268: 1248, 1269: 1249, 1270: 1250, 1271: 1251, 1272: 1252, 1273: 1253, 1274: 1254, 1275: 1255, 1276: 1256, 1277: 1257, 1278: 1258, 1279: 1259, 1280: 1260, 1281: 1261, 1282: 1262, 1283: 1263, 1284: 1264, 1285: 1265, 1286: 1266, 1287: 1267, 1288: 1268, 1289: 1269, 1290: 1270, 1291: 1271, 1292: 1272, 1293: 1273, 1294: 1274, 1295: 1275, 1296: 1276, 1297: 1277, 1298: 1278, 1299: 1279, 1300: 1280, 1301: 1281, 1302: 1282, 1303: 1283, 1304: 1284, 1305: 1285, 1306: 1286, 1307: 1287, 1308: 1288, 1309: 1289, 1310: 1290, 1311: 1291, 1312: 1292, 1313: 1293, 1314: 1294, 1315: 1295, 1316: 1296, 1317: 1297, 1318: 1298, 1319: 1299, 1320: 1300, 1321: 1301, 1322: 1302, 1323: 1303, 1324: 1304, 1325: 1305, 1326: 1306, 1327: 1307, 1328: 1308, 1329: 1309, 1330: 1310, 1331: 1311, 1332: 1312, 1333: 1313, 1334: 1314, 1335: 1315, 1336: 1316, 1337: 1317, 1339: 1318, 1340: 1319, 1341: 1320, 1342: 1321, 1343: 1322, 1344: 1323, 1345: 1324, 1346: 1325, 1347: 1326, 1348: 1327, 1349: 1328, 1350: 1329, 1351: 1330, 1352: 1331, 1353: 1332, 1354: 1333, 1355: 1334, 1356: 1335, 1357: 1336, 1358: 1337, 1359: 1338, 1360: 1339, 1361: 1340, 1362: 1341, 1363: 1342, 1364: 1343, 1365: 1344, 1366: 1345, 1367: 1346, 1368: 1347, 1369: 1348, 1370: 1349, 1371: 1350, 1372: 1351, 1373: 1352, 1374: 1353, 1375: 1354, 1376: 1355, 1377: 1356, 1378: 1357, 1379: 1358, 1380: 1359, 1381: 1360, 1382: 1361, 1383: 1362, 1384: 1363, 1385: 1364, 1386: 1365, 1387: 1366, 1388: 1367, 1389: 1368, 1390: 1369, 1391: 1370, 1392: 1371, 1393: 1372, 1394: 1373, 1395: 1374, 1396: 1375, 1397: 1376, 1398: 1377, 1399: 1378, 1400: 1379, 1401: 1380, 1404: 1381, 1405: 1382, 1406: 1383, 1407: 1384, 1408: 1385, 1409: 1386, 1410: 1387, 1411: 1388, 1412: 1389, 1413: 1390, 1414: 1391, 1415: 1392, 1416: 1393, 1417: 1394, 1419: 1395, 1420: 1396, 1421: 1397, 1422: 1398, 1423: 1399, 1424: 1400, 1425: 1401, 1426: 1402, 1427: 1403, 1428: 1404, 1429: 1405, 1430: 1406, 1431: 1407, 1432: 1408, 1433: 1409, 1434: 1410, 1436: 1411, 1437: 1412, 1438: 1413, 1439: 1414, 1440: 1415, 1441: 1416, 1442: 1417, 1443: 1418, 1444: 1419, 1445: 1420, 1446: 1421, 1447: 1422, 1448: 1423, 1449: 1424, 1450: 1425, 1453: 1426, 1454: 1427, 1455: 1428, 1456: 1429, 1457: 1430, 1458: 1431, 1459: 1432, 1460: 1433, 1461: 1434, 1462: 1435, 1463: 1436, 1464: 1437, 1465: 1438, 1466: 1439, 1467: 1440, 1468: 1441, 1470: 1442, 1471: 1443, 1472: 1444, 1473: 1445, 1474: 1446, 1475: 1447, 1476: 1448, 1477: 1449, 1479: 1450, 1480: 1451, 1482: 1452, 1483: 1453, 1484: 1454, 1485: 1455, 1486: 1456, 1487: 1457, 1488: 1458, 1489: 1459, 1490: 1460, 1493: 1461, 1494: 1462, 1495: 1463, 1496: 1464, 1497: 1465, 1498: 1466, 1499: 1467, 1500: 1468, 1501: 1469, 1502: 1470, 1503: 1471, 1504: 1472, 1507: 1473, 1508: 1474, 1509: 1475, 1510: 1476, 1511: 1477, 1513: 1478, 1514: 1479, 1515: 1480, 1516: 1481, 1517: 1482, 1518: 1483, 1519: 1484, 1520: 1485, 1522: 1486, 1523: 1487, 1524: 1488, 1525: 1489, 1526: 1490, 1527: 1491, 1528: 1492, 1529: 1493, 1531: 1494, 1532: 1495, 1533: 1496, 1534: 1497, 1535: 1498, 1537: 1499, 1538: 1500, 1539: 1501, 1541: 1502, 1542: 1503, 1543: 1504, 1544: 1505, 1545: 1506, 1546: 1507, 1547: 1508, 1548: 1509, 1549: 1510, 1550: 1511, 1551: 1512, 1552: 1513, 1553: 1514, 1554: 1515, 1555: 1516, 1556: 1517, 1557: 1518, 1558: 1519, 1559: 1520, 1561: 1521, 1562: 1522, 1563: 1523, 1564: 1524, 1565: 1525, 1566: 1526, 1567: 1527, 1568: 1528, 1569: 1529, 1570: 1530, 1571: 1531, 1572: 1532, 1573: 1533, 1574: 1534, 1575: 1535, 1577: 1536, 1578: 1537, 1579: 1538, 1580: 1539, 1581: 1540, 1582: 1541, 1583: 1542, 1584: 1543, 1585: 1544, 1586: 1545, 1587: 1546, 1588: 1547, 1589: 1548, 1590: 1549, 1591: 1550, 1592: 1551, 1593: 1552, 1594: 1553, 1595: 1554, 1596: 1555, 1597: 1556, 1598: 1557, 1599: 1558, 1600: 1559, 1601: 1560, 1602: 1561, 1603: 1562, 1604: 1563, 1605: 1564, 1606: 1565, 1608: 1566, 1609: 1567, 1610: 1568, 1611: 1569, 1612: 1570, 1613: 1571, 1614: 1572, 1615: 1573, 1616: 1574, 1617: 1575, 1619: 1576, 1620: 1577, 1621: 1578, 1622: 1579, 1623: 1580, 1624: 1581, 1625: 1582, 1626: 1583, 1627: 1584, 1628: 1585, 1629: 1586, 1630: 1587, 1631: 1588, 1632: 1589, 1633: 1590, 1635: 1591, 1636: 1592, 1639: 1593, 1640: 1594, 1641: 1595, 1642: 1596, 1643: 1597, 1644: 1598, 1645: 1599, 1646: 1600, 1647: 1601, 1648: 1602, 1649: 1603, 1650: 1604, 1651: 1605, 1652: 1606, 1653: 1607, 1654: 1608, 1655: 1609, 1656: 1610, 1657: 1611, 1658: 1612, 1659: 1613, 1660: 1614, 1661: 1615, 1662: 1616, 1663: 1617, 1664: 1618, 1665: 1619, 1666: 1620, 1667: 1621, 1668: 1622, 1669: 1623, 1670: 1624, 1671: 1625, 1672: 1626, 1673: 1627, 1674: 1628, 1675: 1629, 1676: 1630, 1677: 1631, 1678: 1632, 1679: 1633, 1680: 1634, 1681: 1635, 1682: 1636, 1683: 1637, 1684: 1638, 1685: 1639, 1686: 1640, 1687: 1641, 1688: 1642, 1689: 1643, 1690: 1644, 1692: 1645, 1693: 1646, 1694: 1647, 1695: 1648, 1696: 1649, 1697: 1650, 1698: 1651, 1699: 1652, 1701: 1653, 1702: 1654, 1703: 1655, 1704: 1656, 1705: 1657, 1706: 1658, 1707: 1659, 1708: 1660, 1709: 1661, 1710: 1662, 1711: 1663, 1713: 1664, 1714: 1665, 1715: 1666, 1716: 1667, 1717: 1668, 1718: 1669, 1719: 1670, 1720: 1671, 1721: 1672, 1722: 1673, 1723: 1674, 1724: 1675, 1725: 1676, 1726: 1677, 1727: 1678, 1728: 1679, 1729: 1680, 1730: 1681, 1731: 1682, 1732: 1683, 1733: 1684, 1734: 1685, 1735: 1686, 1738: 1687, 1739: 1688, 1740: 1689, 1741: 1690, 1742: 1691, 1743: 1692, 1744: 1693, 1746: 1694, 1747: 1695, 1748: 1696, 1749: 1697, 1750: 1698, 1752: 1699, 1753: 1700, 1754: 1701, 1755: 1702, 1756: 1703, 1757: 1704, 1758: 1705, 1759: 1706, 1760: 1707, 1762: 1708, 1764: 1709, 1765: 1710, 1767: 1711, 1768: 1712, 1769: 1713, 1770: 1714, 1771: 1715, 1772: 1716, 1773: 1717, 1774: 1718, 1776: 1719, 1777: 1720, 1779: 1721, 1780: 1722, 1781: 1723, 1782: 1724, 1783: 1725, 1784: 1726, 1785: 1727, 1787: 1728, 1788: 1729, 1789: 1730, 1791: 1731, 1792: 1732, 1793: 1733, 1794: 1734, 1795: 1735, 1796: 1736, 1797: 1737, 1798: 1738, 1799: 1739, 1801: 1740, 1804: 1741, 1805: 1742, 1806: 1743, 1807: 1744, 1809: 1745, 1810: 1746, 1811: 1747, 1812: 1748, 1814: 1749, 1815: 1750, 1816: 1751, 1817: 1752, 1819: 1753, 1820: 1754, 1821: 1755, 1822: 1756, 1824: 1757, 1825: 1758, 1826: 1759, 1827: 1760, 1829: 1761, 1830: 1762, 1831: 1763, 1832: 1764, 1833: 1765, 1834: 1766, 1835: 1767, 1836: 1768, 1837: 1769, 1839: 1770, 1840: 1771, 1841: 1772, 1842: 1773, 1843: 1774, 1844: 1775, 1845: 1776, 1846: 1777, 1847: 1778, 1848: 1779, 1849: 1780, 1850: 1781, 1851: 1782, 1852: 1783, 1853: 1784, 1854: 1785, 1855: 1786, 1856: 1787, 1857: 1788, 1858: 1789, 1859: 1790, 1860: 1791, 1861: 1792, 1862: 1793, 1863: 1794, 1864: 1795, 1865: 1796, 1866: 1797, 1867: 1798, 1868: 1799, 1869: 1800, 1870: 1801, 1871: 1802, 1872: 1803, 1873: 1804, 1874: 1805, 1875: 1806, 1876: 1807, 1877: 1808, 1878: 1809, 1879: 1810, 1880: 1811, 1881: 1812, 1882: 1813, 1883: 1814, 1884: 1815, 1885: 1816, 1886: 1817, 1887: 1818, 1888: 1819, 1889: 1820, 1890: 1821, 1891: 1822, 1892: 1823, 1893: 1824, 1894: 1825, 1895: 1826, 1896: 1827, 1897: 1828, 1898: 1829, 1899: 1830, 1900: 1831, 1901: 1832, 1902: 1833, 1903: 1834, 1904: 1835, 1905: 1836, 1906: 1837, 1907: 1838, 1908: 1839, 1909: 1840, 1910: 1841, 1911: 1842, 1912: 1843, 1913: 1844, 1914: 1845, 1915: 1846, 1916: 1847, 1917: 1848, 1918: 1849, 1919: 1850, 1920: 1851, 1921: 1852, 1922: 1853, 1923: 1854, 1924: 1855, 1925: 1856, 1926: 1857, 1927: 1858, 1928: 1859, 1929: 1860, 1930: 1861, 1931: 1862, 1932: 1863, 1933: 1864, 1934: 1865, 1935: 1866, 1936: 1867, 1937: 1868, 1938: 1869, 1939: 1870, 1940: 1871, 1941: 1872, 1942: 1873, 1943: 1874, 1944: 1875, 1945: 1876, 1946: 1877, 1947: 1878, 1948: 1879, 1949: 1880, 1950: 1881, 1951: 1882, 1952: 1883, 1953: 1884, 1954: 1885, 1955: 1886, 1956: 1887, 1957: 1888, 1958: 1889, 1959: 1890, 1960: 1891, 1961: 1892, 1962: 1893, 1963: 1894, 1964: 1895, 1965: 1896, 1966: 1897, 1967: 1898, 1968: 1899, 1969: 1900, 1970: 1901, 1971: 1902, 1972: 1903, 1973: 1904, 1974: 1905, 1975: 1906, 1976: 1907, 1977: 1908, 1978: 1909, 1979: 1910, 1980: 1911, 1981: 1912, 1982: 1913, 1983: 1914, 1984: 1915, 1985: 1916, 1986: 1917, 1987: 1918, 1988: 1919, 1989: 1920, 1990: 1921, 1991: 1922, 1992: 1923, 1993: 1924, 1994: 1925, 1995: 1926, 1996: 1927, 1997: 1928, 1998: 1929, 1999: 1930, 2000: 1931, 2001: 1932, 2002: 1933, 2003: 1934, 2004: 1935, 2005: 1936, 2006: 1937, 2007: 1938, 2008: 1939, 2009: 1940, 2010: 1941, 2011: 1942, 2012: 1943, 2013: 1944, 2014: 1945, 2015: 1946, 2016: 1947, 2017: 1948, 2018: 1949, 2019: 1950, 2020: 1951, 2021: 1952, 2022: 1953, 2023: 1954, 2024: 1955, 2025: 1956, 2026: 1957, 2027: 1958, 2028: 1959, 2029: 1960, 2030: 1961, 2031: 1962, 2032: 1963, 2033: 1964, 2034: 1965, 2035: 1966, 2036: 1967, 2037: 1968, 2038: 1969, 2039: 1970, 2040: 1971, 2041: 1972, 2042: 1973, 2043: 1974, 2044: 1975, 2045: 1976, 2046: 1977, 2047: 1978, 2048: 1979, 2049: 1980, 2050: 1981, 2051: 1982, 2052: 1983, 2053: 1984, 2054: 1985, 2055: 1986, 2056: 1987, 2057: 1988, 2058: 1989, 2059: 1990, 2060: 1991, 2061: 1992, 2062: 1993, 2063: 1994, 2064: 1995, 2065: 1996, 2066: 1997, 2067: 1998, 2068: 1999, 2069: 2000, 2070: 2001, 2071: 2002, 2072: 2003, 2073: 2004, 2074: 2005, 2075: 2006, 2076: 2007, 2077: 2008, 2078: 2009, 2079: 2010, 2080: 2011, 2081: 2012, 2082: 2013, 2083: 2014, 2084: 2015, 2085: 2016, 2086: 2017, 2087: 2018, 2088: 2019, 2089: 2020, 2090: 2021, 2091: 2022, 2092: 2023, 2093: 2024, 2094: 2025, 2095: 2026, 2096: 2027, 2097: 2028, 2098: 2029, 2099: 2030, 2100: 2031, 2101: 2032, 2102: 2033, 2103: 2034, 2104: 2035, 2105: 2036, 2106: 2037, 2107: 2038, 2108: 2039, 2109: 2040, 2110: 2041, 2111: 2042, 2112: 2043, 2113: 2044, 2114: 2045, 2115: 2046, 2116: 2047, 2117: 2048, 2118: 2049, 2119: 2050, 2120: 2051, 2121: 2052, 2122: 2053, 2123: 2054, 2124: 2055, 2125: 2056, 2126: 2057, 2127: 2058, 2128: 2059, 2129: 2060, 2130: 2061, 2131: 2062, 2132: 2063, 2133: 2064, 2134: 2065, 2135: 2066, 2136: 2067, 2137: 2068, 2138: 2069, 2139: 2070, 2140: 2071, 2141: 2072, 2142: 2073, 2143: 2074, 2144: 2075, 2145: 2076, 2146: 2077, 2147: 2078, 2148: 2079, 2149: 2080, 2150: 2081, 2151: 2082, 2152: 2083, 2153: 2084, 2154: 2085, 2155: 2086, 2156: 2087, 2157: 2088, 2158: 2089, 2159: 2090, 2160: 2091, 2161: 2092, 2162: 2093, 2163: 2094, 2164: 2095, 2165: 2096, 2166: 2097, 2167: 2098, 2168: 2099, 2169: 2100, 2170: 2101, 2171: 2102, 2172: 2103, 2173: 2104, 2174: 2105, 2175: 2106, 2176: 2107, 2177: 2108, 2178: 2109, 2179: 2110, 2180: 2111, 2181: 2112, 2182: 2113, 2183: 2114, 2184: 2115, 2185: 2116, 2186: 2117, 2187: 2118, 2188: 2119, 2189: 2120, 2190: 2121, 2191: 2122, 2192: 2123, 2193: 2124, 2194: 2125, 2195: 2126, 2196: 2127, 2197: 2128, 2198: 2129, 2199: 2130, 2200: 2131, 2201: 2132, 2202: 2133, 2203: 2134, 2204: 2135, 2205: 2136, 2206: 2137, 2207: 2138, 2208: 2139, 2209: 2140, 2210: 2141, 2211: 2142, 2212: 2143, 2213: 2144, 2214: 2145, 2215: 2146, 2216: 2147, 2217: 2148, 2218: 2149, 2219: 2150, 2220: 2151, 2221: 2152, 2222: 2153, 2223: 2154, 2224: 2155, 2225: 2156, 2226: 2157, 2227: 2158, 2228: 2159, 2229: 2160, 2230: 2161, 2231: 2162, 2232: 2163, 2233: 2164, 2234: 2165, 2235: 2166, 2236: 2167, 2237: 2168, 2238: 2169, 2239: 2170, 2240: 2171, 2241: 2172, 2242: 2173, 2243: 2174, 2244: 2175, 2245: 2176, 2246: 2177, 2247: 2178, 2248: 2179, 2249: 2180, 2250: 2181, 2251: 2182, 2252: 2183, 2253: 2184, 2254: 2185, 2255: 2186, 2256: 2187, 2257: 2188, 2258: 2189, 2259: 2190, 2260: 2191, 2261: 2192, 2262: 2193, 2263: 2194, 2264: 2195, 2265: 2196, 2266: 2197, 2267: 2198, 2268: 2199, 2269: 2200, 2270: 2201, 2271: 2202, 2272: 2203, 2273: 2204, 2274: 2205, 2275: 2206, 2276: 2207, 2277: 2208, 2278: 2209, 2279: 2210, 2280: 2211, 2281: 2212, 2282: 2213, 2283: 2214, 2284: 2215, 2285: 2216, 2286: 2217, 2287: 2218, 2288: 2219, 2289: 2220, 2290: 2221, 2291: 2222, 2292: 2223, 2293: 2224, 2294: 2225, 2295: 2226, 2296: 2227, 2297: 2228, 2298: 2229, 2299: 2230, 2300: 2231, 2301: 2232, 2302: 2233, 2303: 2234, 2304: 2235, 2305: 2236, 2306: 2237, 2307: 2238, 2308: 2239, 2309: 2240, 2310: 2241, 2311: 2242, 2312: 2243, 2313: 2244, 2314: 2245, 2315: 2246, 2316: 2247, 2317: 2248, 2318: 2249, 2319: 2250, 2320: 2251, 2321: 2252, 2322: 2253, 2323: 2254, 2324: 2255, 2325: 2256, 2326: 2257, 2327: 2258, 2328: 2259, 2329: 2260, 2330: 2261, 2331: 2262, 2332: 2263, 2333: 2264, 2334: 2265, 2335: 2266, 2336: 2267, 2337: 2268, 2338: 2269, 2339: 2270, 2340: 2271, 2341: 2272, 2342: 2273, 2343: 2274, 2344: 2275, 2345: 2276, 2346: 2277, 2347: 2278, 2348: 2279, 2349: 2280, 2350: 2281, 2351: 2282, 2352: 2283, 2353: 2284, 2354: 2285, 2355: 2286, 2356: 2287, 2357: 2288, 2358: 2289, 2359: 2290, 2360: 2291, 2361: 2292, 2362: 2293, 2363: 2294, 2364: 2295, 2365: 2296, 2366: 2297, 2367: 2298, 2368: 2299, 2369: 2300, 2370: 2301, 2371: 2302, 2372: 2303, 2373: 2304, 2374: 2305, 2375: 2306, 2376: 2307, 2377: 2308, 2378: 2309, 2379: 2310, 2380: 2311, 2381: 2312, 2382: 2313, 2383: 2314, 2384: 2315, 2385: 2316, 2386: 2317, 2387: 2318, 2388: 2319, 2389: 2320, 2390: 2321, 2391: 2322, 2392: 2323, 2393: 2324, 2394: 2325, 2395: 2326, 2396: 2327, 2397: 2328, 2398: 2329, 2399: 2330, 2400: 2331, 2401: 2332, 2402: 2333, 2403: 2334, 2404: 2335, 2405: 2336, 2406: 2337, 2407: 2338, 2408: 2339, 2409: 2340, 2410: 2341, 2411: 2342, 2412: 2343, 2413: 2344, 2414: 2345, 2415: 2346, 2416: 2347, 2417: 2348, 2418: 2349, 2419: 2350, 2420: 2351, 2421: 2352, 2422: 2353, 2423: 2354, 2424: 2355, 2425: 2356, 2426: 2357, 2427: 2358, 2428: 2359, 2429: 2360, 2430: 2361, 2431: 2362, 2432: 2363, 2433: 2364, 2434: 2365, 2435: 2366, 2436: 2367, 2437: 2368, 2438: 2369, 2439: 2370, 2440: 2371, 2441: 2372, 2442: 2373, 2443: 2374, 2444: 2375, 2445: 2376, 2446: 2377, 2447: 2378, 2448: 2379, 2449: 2380, 2450: 2381, 2451: 2382, 2452: 2383, 2453: 2384, 2454: 2385, 2455: 2386, 2456: 2387, 2457: 2388, 2458: 2389, 2459: 2390, 2460: 2391, 2461: 2392, 2462: 2393, 2463: 2394, 2464: 2395, 2465: 2396, 2466: 2397, 2467: 2398, 2468: 2399, 2469: 2400, 2470: 2401, 2471: 2402, 2472: 2403, 2473: 2404, 2474: 2405, 2475: 2406, 2476: 2407, 2477: 2408, 2478: 2409, 2479: 2410, 2480: 2411, 2481: 2412, 2482: 2413, 2483: 2414, 2484: 2415, 2485: 2416, 2486: 2417, 2487: 2418, 2488: 2419, 2489: 2420, 2490: 2421, 2491: 2422, 2492: 2423, 2493: 2424, 2494: 2425, 2495: 2426, 2496: 2427, 2497: 2428, 2498: 2429, 2499: 2430, 2500: 2431, 2501: 2432, 2502: 2433, 2503: 2434, 2504: 2435, 2505: 2436, 2506: 2437, 2507: 2438, 2508: 2439, 2509: 2440, 2510: 2441, 2511: 2442, 2512: 2443, 2513: 2444, 2514: 2445, 2515: 2446, 2516: 2447, 2517: 2448, 2518: 2449, 2519: 2450, 2520: 2451, 2521: 2452, 2522: 2453, 2523: 2454, 2524: 2455, 2525: 2456, 2526: 2457, 2527: 2458, 2528: 2459, 2529: 2460, 2530: 2461, 2531: 2462, 2532: 2463, 2533: 2464, 2534: 2465, 2535: 2466, 2536: 2467, 2537: 2468, 2538: 2469, 2539: 2470, 2540: 2471, 2541: 2472, 2542: 2473, 2543: 2474, 2544: 2475, 2545: 2476, 2546: 2477, 2547: 2478, 2548: 2479, 2549: 2480, 2550: 2481, 2551: 2482, 2552: 2483, 2553: 2484, 2554: 2485, 2555: 2486, 2556: 2487, 2557: 2488, 2558: 2489, 2559: 2490, 2560: 2491, 2561: 2492, 2562: 2493, 2563: 2494, 2564: 2495, 2565: 2496, 2566: 2497, 2567: 2498, 2568: 2499, 2569: 2500, 2570: 2501, 2571: 2502, 2572: 2503, 2573: 2504, 2574: 2505, 2575: 2506, 2576: 2507, 2577: 2508, 2578: 2509, 2579: 2510, 2580: 2511, 2581: 2512, 2582: 2513, 2583: 2514, 2584: 2515, 2585: 2516, 2586: 2517, 2587: 2518, 2588: 2519, 2589: 2520, 2590: 2521, 2591: 2522, 2592: 2523, 2593: 2524, 2594: 2525, 2595: 2526, 2596: 2527, 2597: 2528, 2598: 2529, 2599: 2530, 2600: 2531, 2601: 2532, 2602: 2533, 2603: 2534, 2604: 2535, 2605: 2536, 2606: 2537, 2607: 2538, 2608: 2539, 2609: 2540, 2610: 2541, 2611: 2542, 2612: 2543, 2613: 2544, 2614: 2545, 2615: 2546, 2616: 2547, 2617: 2548, 2618: 2549, 2619: 2550, 2620: 2551, 2621: 2552, 2622: 2553, 2623: 2554, 2624: 2555, 2625: 2556, 2626: 2557, 2627: 2558, 2628: 2559, 2629: 2560, 2630: 2561, 2631: 2562, 2632: 2563, 2633: 2564, 2634: 2565, 2635: 2566, 2636: 2567, 2637: 2568, 2638: 2569, 2639: 2570, 2640: 2571, 2641: 2572, 2642: 2573, 2643: 2574, 2644: 2575, 2645: 2576, 2646: 2577, 2647: 2578, 2648: 2579, 2649: 2580, 2650: 2581, 2651: 2582, 2652: 2583, 2653: 2584, 2654: 2585, 2655: 2586, 2656: 2587, 2657: 2588, 2658: 2589, 2659: 2590, 2660: 2591, 2661: 2592, 2662: 2593, 2663: 2594, 2664: 2595, 2665: 2596, 2666: 2597, 2667: 2598, 2668: 2599, 2669: 2600, 2670: 2601, 2671: 2602, 2672: 2603, 2673: 2604, 2674: 2605, 2675: 2606, 2676: 2607, 2677: 2608, 2678: 2609, 2679: 2610, 2680: 2611, 2681: 2612, 2682: 2613, 2683: 2614, 2684: 2615, 2685: 2616, 2686: 2617, 2687: 2618, 2688: 2619, 2689: 2620, 2690: 2621, 2691: 2622, 2692: 2623, 2693: 2624, 2694: 2625, 2695: 2626, 2696: 2627, 2697: 2628, 2698: 2629, 2699: 2630, 2700: 2631, 2701: 2632, 2702: 2633, 2703: 2634, 2704: 2635, 2705: 2636, 2706: 2637, 2707: 2638, 2708: 2639, 2709: 2640, 2710: 2641, 2711: 2642, 2712: 2643, 2713: 2644, 2714: 2645, 2715: 2646, 2716: 2647, 2717: 2648, 2718: 2649, 2719: 2650, 2720: 2651, 2721: 2652, 2722: 2653, 2723: 2654, 2724: 2655, 2725: 2656, 2726: 2657, 2727: 2658, 2728: 2659, 2729: 2660, 2730: 2661, 2731: 2662, 2732: 2663, 2733: 2664, 2734: 2665, 2735: 2666, 2736: 2667, 2737: 2668, 2738: 2669, 2739: 2670, 2740: 2671, 2741: 2672, 2742: 2673, 2743: 2674, 2744: 2675, 2745: 2676, 2746: 2677, 2747: 2678, 2748: 2679, 2749: 2680, 2750: 2681, 2751: 2682, 2752: 2683, 2753: 2684, 2754: 2685, 2755: 2686, 2756: 2687, 2757: 2688, 2758: 2689, 2759: 2690, 2760: 2691, 2761: 2692, 2762: 2693, 2763: 2694, 2764: 2695, 2765: 2696, 2766: 2697, 2767: 2698, 2768: 2699, 2769: 2700, 2770: 2701, 2771: 2702, 2772: 2703, 2773: 2704, 2774: 2705, 2775: 2706, 2776: 2707, 2777: 2708, 2778: 2709, 2779: 2710, 2780: 2711, 2781: 2712, 2782: 2713, 2783: 2714, 2784: 2715, 2785: 2716, 2786: 2717, 2787: 2718, 2788: 2719, 2789: 2720, 2790: 2721, 2791: 2722, 2792: 2723, 2793: 2724, 2794: 2725, 2795: 2726, 2796: 2727, 2797: 2728, 2798: 2729, 2799: 2730, 2800: 2731, 2801: 2732, 2802: 2733, 2803: 2734, 2804: 2735, 2805: 2736, 2806: 2737, 2807: 2738, 2808: 2739, 2809: 2740, 2810: 2741, 2811: 2742, 2812: 2743, 2813: 2744, 2814: 2745, 2815: 2746, 2816: 2747, 2817: 2748, 2818: 2749, 2819: 2750, 2820: 2751, 2821: 2752, 2822: 2753, 2823: 2754, 2824: 2755, 2825: 2756, 2826: 2757, 2827: 2758, 2828: 2759, 2829: 2760, 2830: 2761, 2831: 2762, 2832: 2763, 2833: 2764, 2834: 2765, 2835: 2766, 2836: 2767, 2837: 2768, 2838: 2769, 2839: 2770, 2840: 2771, 2841: 2772, 2842: 2773, 2843: 2774, 2844: 2775, 2845: 2776, 2846: 2777, 2847: 2778, 2848: 2779, 2849: 2780, 2850: 2781, 2851: 2782, 2852: 2783, 2853: 2784, 2854: 2785, 2855: 2786, 2856: 2787, 2857: 2788, 2858: 2789, 2859: 2790, 2860: 2791, 2861: 2792, 2862: 2793, 2863: 2794, 2864: 2795, 2865: 2796, 2866: 2797, 2867: 2798, 2868: 2799, 2869: 2800, 2870: 2801, 2871: 2802, 2872: 2803, 2873: 2804, 2874: 2805, 2875: 2806, 2876: 2807, 2877: 2808, 2878: 2809, 2879: 2810, 2880: 2811, 2881: 2812, 2882: 2813, 2883: 2814, 2884: 2815, 2885: 2816, 2886: 2817, 2887: 2818, 2888: 2819, 2889: 2820, 2890: 2821, 2891: 2822, 2892: 2823, 2893: 2824, 2894: 2825, 2895: 2826, 2896: 2827, 2897: 2828, 2898: 2829, 2899: 2830, 2900: 2831, 2901: 2832, 2902: 2833, 2903: 2834, 2904: 2835, 2905: 2836, 2906: 2837, 2907: 2838, 2908: 2839, 2909: 2840, 2910: 2841, 2911: 2842, 2912: 2843, 2913: 2844, 2914: 2845, 2915: 2846, 2916: 2847, 2917: 2848, 2918: 2849, 2919: 2850, 2920: 2851, 2921: 2852, 2922: 2853, 2923: 2854, 2924: 2855, 2925: 2856, 2926: 2857, 2927: 2858, 2928: 2859, 2929: 2860, 2930: 2861, 2931: 2862, 2932: 2863, 2933: 2864, 2934: 2865, 2935: 2866, 2936: 2867, 2937: 2868, 2938: 2869, 2939: 2870, 2940: 2871, 2941: 2872, 2942: 2873, 2943: 2874, 2944: 2875, 2945: 2876, 2946: 2877, 2947: 2878, 2948: 2879, 2949: 2880, 2950: 2881, 2951: 2882, 2952: 2883, 2953: 2884, 2954: 2885, 2955: 2886, 2956: 2887, 2957: 2888, 2958: 2889, 2959: 2890, 2960: 2891, 2961: 2892, 2962: 2893, 2963: 2894, 2964: 2895, 2965: 2896, 2966: 2897, 2967: 2898, 2968: 2899, 2969: 2900, 2970: 2901, 2971: 2902, 2972: 2903, 2973: 2904, 2974: 2905, 2975: 2906, 2976: 2907, 2977: 2908, 2978: 2909, 2979: 2910, 2980: 2911, 2981: 2912, 2982: 2913, 2983: 2914, 2984: 2915, 2985: 2916, 2986: 2917, 2987: 2918, 2988: 2919, 2989: 2920, 2990: 2921, 2991: 2922, 2992: 2923, 2993: 2924, 2994: 2925, 2995: 2926, 2996: 2927, 2997: 2928, 2998: 2929, 2999: 2930, 3000: 2931, 3001: 2932, 3002: 2933, 3003: 2934, 3004: 2935, 3005: 2936, 3006: 2937, 3007: 2938, 3008: 2939, 3009: 2940, 3010: 2941, 3011: 2942, 3012: 2943, 3013: 2944, 3014: 2945, 3015: 2946, 3016: 2947, 3017: 2948, 3018: 2949, 3019: 2950, 3020: 2951, 3021: 2952, 3022: 2953, 3023: 2954, 3024: 2955, 3025: 2956, 3026: 2957, 3027: 2958, 3028: 2959, 3029: 2960, 3030: 2961, 3031: 2962, 3032: 2963, 3033: 2964, 3034: 2965, 3035: 2966, 3036: 2967, 3037: 2968, 3038: 2969, 3039: 2970, 3040: 2971, 3041: 2972, 3042: 2973, 3043: 2974, 3044: 2975, 3045: 2976, 3046: 2977, 3047: 2978, 3048: 2979, 3049: 2980, 3050: 2981, 3051: 2982, 3052: 2983, 3053: 2984, 3054: 2985, 3055: 2986, 3056: 2987, 3057: 2988, 3058: 2989, 3059: 2990, 3060: 2991, 3061: 2992, 3062: 2993, 3063: 2994, 3064: 2995, 3065: 2996, 3066: 2997, 3067: 2998, 3068: 2999, 3069: 3000, 3070: 3001, 3071: 3002, 3072: 3003, 3073: 3004, 3074: 3005, 3075: 3006, 3076: 3007, 3077: 3008, 3078: 3009, 3079: 3010, 3080: 3011, 3081: 3012, 3082: 3013, 3083: 3014, 3084: 3015, 3085: 3016, 3086: 3017, 3087: 3018, 3088: 3019, 3089: 3020, 3090: 3021, 3091: 3022, 3092: 3023, 3093: 3024, 3094: 3025, 3095: 3026, 3096: 3027, 3097: 3028, 3098: 3029, 3099: 3030, 3100: 3031, 3101: 3032, 3102: 3033, 3103: 3034, 3104: 3035, 3105: 3036, 3106: 3037, 3107: 3038, 3108: 3039, 3109: 3040, 3110: 3041, 3111: 3042, 3112: 3043, 3113: 3044, 3114: 3045, 3115: 3046, 3116: 3047, 3117: 3048, 3118: 3049, 3119: 3050, 3120: 3051, 3121: 3052, 3122: 3053, 3123: 3054, 3124: 3055, 3125: 3056, 3126: 3057, 3127: 3058, 3128: 3059, 3129: 3060, 3130: 3061, 3131: 3062, 3132: 3063, 3133: 3064, 3134: 3065, 3135: 3066, 3136: 3067, 3137: 3068, 3138: 3069, 3139: 3070, 3140: 3071, 3141: 3072, 3142: 3073, 3143: 3074, 3144: 3075, 3145: 3076, 3146: 3077, 3147: 3078, 3148: 3079, 3149: 3080, 3150: 3081, 3151: 3082, 3152: 3083, 3153: 3084, 3154: 3085, 3155: 3086, 3156: 3087, 3157: 3088, 3158: 3089, 3159: 3090, 3160: 3091, 3161: 3092, 3162: 3093, 3163: 3094, 3164: 3095, 3165: 3096, 3166: 3097, 3167: 3098, 3168: 3099, 3169: 3100, 3170: 3101, 3171: 3102, 3172: 3103, 3173: 3104, 3174: 3105, 3175: 3106, 3176: 3107, 3177: 3108, 3178: 3109, 3179: 3110, 3180: 3111, 3181: 3112, 3182: 3113, 3183: 3114, 3184: 3115, 3185: 3116, 3186: 3117, 3187: 3118, 3188: 3119, 3189: 3120, 3190: 3121, 3191: 3122, 3192: 3123, 3193: 3124, 3194: 3125, 3195: 3126, 3196: 3127, 3197: 3128, 3198: 3129, 3199: 3130, 3200: 3131, 3201: 3132, 3202: 3133, 3203: 3134, 3204: 3135, 3205: 3136, 3206: 3137, 3207: 3138, 3208: 3139, 3209: 3140, 3210: 3141, 3211: 3142, 3212: 3143, 3213: 3144, 3214: 3145, 3215: 3146, 3216: 3147, 3217: 3148, 3218: 3149, 3219: 3150, 3220: 3151, 3221: 3152, 3222: 3153, 3223: 3154, 3224: 3155, 3225: 3156, 3226: 3157, 3227: 3158, 3228: 3159, 3229: 3160, 3230: 3161, 3231: 3162, 3232: 3163, 3233: 3164, 3234: 3165, 3235: 3166, 3236: 3167, 3237: 3168, 3238: 3169, 3239: 3170, 3240: 3171, 3241: 3172, 3242: 3173, 3243: 3174, 3244: 3175, 3245: 3176, 3246: 3177, 3247: 3178, 3248: 3179, 3249: 3180, 3250: 3181, 3251: 3182, 3252: 3183, 3253: 3184, 3254: 3185, 3255: 3186, 3256: 3187, 3257: 3188, 3258: 3189, 3259: 3190, 3260: 3191, 3261: 3192, 3262: 3193, 3263: 3194, 3264: 3195, 3265: 3196, 3266: 3197, 3267: 3198, 3268: 3199, 3269: 3200, 3270: 3201, 3271: 3202, 3272: 3203, 3273: 3204, 3274: 3205, 3275: 3206, 3276: 3207, 3277: 3208, 3278: 3209, 3279: 3210, 3280: 3211, 3281: 3212, 3282: 3213, 3283: 3214, 3284: 3215, 3285: 3216, 3286: 3217, 3287: 3218, 3288: 3219, 3289: 3220, 3290: 3221, 3291: 3222, 3292: 3223, 3293: 3224, 3294: 3225, 3295: 3226, 3296: 3227, 3297: 3228, 3298: 3229, 3299: 3230, 3300: 3231, 3301: 3232, 3302: 3233, 3303: 3234, 3304: 3235, 3305: 3236, 3306: 3237, 3307: 3238, 3308: 3239, 3309: 3240, 3310: 3241, 3311: 3242, 3312: 3243, 3313: 3244, 3314: 3245, 3315: 3246, 3316: 3247, 3317: 3248, 3318: 3249, 3319: 3250, 3320: 3251, 3321: 3252, 3322: 3253, 3323: 3254, 3324: 3255, 3325: 3256, 3326: 3257, 3327: 3258, 3328: 3259, 3329: 3260, 3330: 3261, 3331: 3262, 3332: 3263, 3333: 3264, 3334: 3265, 3335: 3266, 3336: 3267, 3337: 3268, 3338: 3269, 3339: 3270, 3340: 3271, 3341: 3272, 3342: 3273, 3343: 3274, 3344: 3275, 3345: 3276, 3346: 3277, 3347: 3278, 3348: 3279, 3349: 3280, 3350: 3281, 3351: 3282, 3352: 3283, 3353: 3284, 3354: 3285, 3355: 3286, 3356: 3287, 3357: 3288, 3358: 3289, 3359: 3290, 3360: 3291, 3361: 3292, 3362: 3293, 3363: 3294, 3364: 3295, 3365: 3296, 3366: 3297, 3367: 3298, 3368: 3299, 3369: 3300, 3370: 3301, 3371: 3302, 3372: 3303, 3373: 3304, 3374: 3305, 3375: 3306, 3376: 3307, 3377: 3308, 3378: 3309, 3379: 3310, 3380: 3311, 3381: 3312, 3382: 3313, 3383: 3314, 3384: 3315, 3385: 3316, 3386: 3317, 3387: 3318, 3388: 3319, 3389: 3320, 3390: 3321, 3391: 3322, 3392: 3323, 3393: 3324, 3394: 3325, 3395: 3326, 3396: 3327, 3397: 3328, 3398: 3329, 3399: 3330, 3400: 3331, 3401: 3332, 3402: 3333, 3403: 3334, 3404: 3335, 3405: 3336, 3406: 3337, 3407: 3338, 3408: 3339, 3409: 3340, 3410: 3341, 3411: 3342, 3412: 3343, 3413: 3344, 3414: 3345, 3415: 3346, 3416: 3347, 3417: 3348, 3418: 3349, 3419: 3350, 3420: 3351, 3421: 3352, 3422: 3353, 3423: 3354, 3424: 3355, 3425: 3356, 3426: 3357, 3427: 3358, 3428: 3359, 3429: 3360, 3430: 3361, 3431: 3362, 3432: 3363, 3433: 3364, 3434: 3365, 3435: 3366, 3436: 3367, 3437: 3368, 3438: 3369, 3439: 3370, 3440: 3371, 3441: 3372, 3442: 3373, 3443: 3374, 3444: 3375, 3445: 3376, 3446: 3377, 3447: 3378, 3448: 3379, 3449: 3380, 3450: 3381, 3451: 3382, 3452: 3383, 3453: 3384, 3454: 3385, 3455: 3386, 3456: 3387, 3457: 3388, 3458: 3389, 3459: 3390, 3460: 3391, 3461: 3392, 3462: 3393, 3463: 3394, 3464: 3395, 3465: 3396, 3466: 3397, 3467: 3398, 3468: 3399, 3469: 3400, 3470: 3401, 3471: 3402, 3472: 3403, 3473: 3404, 3474: 3405, 3475: 3406, 3476: 3407, 3477: 3408, 3478: 3409, 3479: 3410, 3480: 3411, 3481: 3412, 3482: 3413, 3483: 3414, 3484: 3415, 3485: 3416, 3486: 3417, 3487: 3418, 3488: 3419, 3489: 3420, 3490: 3421, 3491: 3422, 3492: 3423, 3493: 3424, 3494: 3425, 3495: 3426, 3496: 3427, 3497: 3428, 3498: 3429, 3499: 3430, 3500: 3431, 3501: 3432, 3502: 3433, 3503: 3434, 3504: 3435, 3505: 3436, 3506: 3437, 3507: 3438, 3508: 3439, 3509: 3440, 3510: 3441, 3511: 3442, 3512: 3443, 3513: 3444, 3514: 3445, 3515: 3446, 3516: 3447, 3517: 3448, 3518: 3449, 3519: 3450, 3520: 3451, 3521: 3452, 3522: 3453, 3523: 3454, 3524: 3455, 3525: 3456, 3526: 3457, 3527: 3458, 3528: 3459, 3529: 3460, 3530: 3461, 3531: 3462, 3532: 3463, 3533: 3464, 3534: 3465, 3535: 3466, 3536: 3467, 3537: 3468, 3538: 3469, 3539: 3470, 3540: 3471, 3541: 3472, 3542: 3473, 3543: 3474, 3544: 3475, 3545: 3476, 3546: 3477, 3547: 3478, 3548: 3479, 3549: 3480, 3550: 3481, 3551: 3482, 3552: 3483, 3553: 3484, 3554: 3485, 3555: 3486, 3556: 3487, 3557: 3488, 3558: 3489, 3559: 3490, 3560: 3491, 3561: 3492, 3562: 3493, 3563: 3494, 3564: 3495, 3565: 3496, 3566: 3497, 3567: 3498, 3568: 3499, 3569: 3500, 3570: 3501, 3571: 3502, 3572: 3503, 3573: 3504, 3574: 3505, 3575: 3506, 3576: 3507, 3577: 3508, 3578: 3509, 3579: 3510, 3580: 3511, 3581: 3512, 3582: 3513, 3583: 3514, 3584: 3515, 3585: 3516, 3586: 3517, 3587: 3518, 3588: 3519, 3589: 3520, 3590: 3521, 3591: 3522, 3592: 3523, 3593: 3524, 3594: 3525, 3595: 3526, 3596: 3527, 3597: 3528, 3598: 3529, 3599: 3530, 3600: 3531, 3601: 3532, 3602: 3533, 3603: 3534, 3604: 3535, 3605: 3536, 3606: 3537, 3607: 3538, 3608: 3539, 3609: 3540, 3610: 3541, 3611: 3542, 3612: 3543, 3613: 3544, 3614: 3545, 3615: 3546, 3616: 3547, 3617: 3548, 3618: 3549, 3619: 3550, 3620: 3551, 3621: 3552, 3622: 3553, 3623: 3554, 3624: 3555, 3625: 3556, 3626: 3557, 3627: 3558, 3628: 3559, 3629: 3560, 3630: 3561, 3631: 3562, 3632: 3563, 3633: 3564, 3634: 3565, 3635: 3566, 3636: 3567, 3637: 3568, 3638: 3569, 3639: 3570, 3640: 3571, 3641: 3572, 3642: 3573, 3643: 3574, 3644: 3575, 3645: 3576, 3646: 3577, 3647: 3578, 3648: 3579, 3649: 3580, 3650: 3581, 3651: 3582, 3652: 3583, 3653: 3584, 3654: 3585, 3655: 3586, 3656: 3587, 3657: 3588, 3658: 3589, 3659: 3590, 3660: 3591, 3661: 3592, 3662: 3593, 3663: 3594, 3664: 3595, 3665: 3596, 3666: 3597, 3667: 3598, 3668: 3599, 3669: 3600, 3670: 3601, 3671: 3602, 3672: 3603, 3673: 3604, 3674: 3605, 3675: 3606, 3676: 3607, 3677: 3608, 3678: 3609, 3679: 3610, 3680: 3611, 3681: 3612, 3682: 3613, 3683: 3614, 3684: 3615, 3685: 3616, 3686: 3617, 3687: 3618, 3688: 3619, 3689: 3620, 3690: 3621, 3691: 3622, 3692: 3623, 3693: 3624, 3694: 3625, 3695: 3626, 3696: 3627, 3697: 3628, 3698: 3629, 3699: 3630, 3700: 3631, 3701: 3632, 3702: 3633, 3703: 3634, 3704: 3635, 3705: 3636, 3706: 3637, 3707: 3638, 3708: 3639, 3709: 3640, 3710: 3641, 3711: 3642, 3712: 3643, 3713: 3644, 3714: 3645, 3715: 3646, 3716: 3647, 3717: 3648, 3718: 3649, 3719: 3650, 3720: 3651, 3721: 3652, 3722: 3653, 3723: 3654, 3724: 3655, 3725: 3656, 3726: 3657, 3727: 3658, 3728: 3659, 3729: 3660, 3730: 3661, 3731: 3662, 3732: 3663, 3733: 3664, 3734: 3665, 3735: 3666, 3736: 3667, 3737: 3668, 3738: 3669, 3739: 3670, 3740: 3671, 3741: 3672, 3742: 3673, 3743: 3674, 3744: 3675, 3745: 3676, 3746: 3677, 3747: 3678, 3748: 3679, 3749: 3680, 3750: 3681, 3751: 3682, 3752: 3683, 3753: 3684, 3754: 3685, 3755: 3686, 3756: 3687, 3757: 3688, 3758: 3689, 3759: 3690, 3760: 3691, 3761: 3692, 3762: 3693, 3763: 3694, 3764: 3695, 3765: 3696, 3766: 3697, 3767: 3698, 3768: 3699, 3769: 3700, 3770: 3701, 3771: 3702, 3772: 3703, 3773: 3704, 3774: 3705, 3775: 3706, 3776: 3707, 3777: 3708, 3778: 3709, 3779: 3710, 3780: 3711, 3781: 3712, 3782: 3713, 3783: 3714, 3784: 3715, 3785: 3716, 3786: 3717, 3787: 3718, 3788: 3719, 3789: 3720, 3790: 3721, 3791: 3722, 3792: 3723, 3793: 3724, 3794: 3725, 3795: 3726, 3796: 3727, 3797: 3728, 3798: 3729, 3799: 3730, 3800: 3731, 3801: 3732, 3802: 3733, 3803: 3734, 3804: 3735, 3805: 3736, 3806: 3737, 3807: 3738, 3808: 3739, 3809: 3740, 3810: 3741, 3811: 3742, 3812: 3743, 3813: 3744, 3814: 3745, 3816: 3746, 3817: 3747, 3818: 3748, 3819: 3749, 3820: 3750, 3821: 3751, 3822: 3752, 3823: 3753, 3824: 3754, 3825: 3755, 3826: 3756, 3827: 3757, 3828: 3758, 3829: 3759, 3830: 3760, 3831: 3761, 3832: 3762, 3833: 3763, 3834: 3764, 3835: 3765, 3836: 3766, 3837: 3767, 3838: 3768, 3839: 3769, 3840: 3770, 3841: 3771, 3842: 3772, 3843: 3773, 3844: 3774, 3845: 3775, 3846: 3776, 3847: 3777, 3848: 3778, 3849: 3779, 3850: 3780, 3851: 3781, 3852: 3782, 3853: 3783, 3854: 3784, 3855: 3785, 3856: 3786, 3857: 3787, 3858: 3788, 3859: 3789, 3860: 3790, 3861: 3791, 3862: 3792, 3863: 3793, 3864: 3794, 3865: 3795, 3866: 3796, 3867: 3797, 3868: 3798, 3869: 3799, 3870: 3800, 3871: 3801, 3872: 3802, 3873: 3803, 3874: 3804, 3875: 3805, 3876: 3806, 3877: 3807, 3878: 3808, 3879: 3809, 3880: 3810, 3881: 3811, 3882: 3812, 3883: 3813, 3884: 3814, 3885: 3815, 3886: 3816, 3887: 3817, 3888: 3818, 3889: 3819, 3890: 3820, 3891: 3821, 3892: 3822, 3893: 3823, 3894: 3824, 3895: 3825, 3896: 3826, 3897: 3827, 3898: 3828, 3899: 3829, 3900: 3830, 3901: 3831, 3902: 3832, 3903: 3833, 3904: 3834, 3905: 3835, 3906: 3836, 3907: 3837, 3908: 3838, 3909: 3839, 3910: 3840, 3911: 3841, 3912: 3842, 3913: 3843, 3914: 3844, 3915: 3845, 3916: 3846, 3917: 3847, 3918: 3848, 3919: 3849, 3920: 3850, 3921: 3851, 3922: 3852, 3923: 3853, 3924: 3854, 3925: 3855, 3926: 3856, 3927: 3857, 3928: 3858, 3929: 3859, 3930: 3860, 3931: 3861, 3932: 3862, 3933: 3863, 3934: 3864, 3935: 3865, 3936: 3866, 3937: 3867, 3938: 3868, 3939: 3869, 3940: 3870, 3941: 3871, 3942: 3872, 3943: 3873, 3944: 3874, 3945: 3875, 3946: 3876, 3947: 3877, 3948: 3878, 3949: 3879, 3950: 3880, 3951: 3881, 3952: 3882}} {'item_id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 30: 31, 31: 32, 32: 33, 33: 34, 34: 35, 35: 36, 36: 37, 37: 38, 38: 39, 39: 40, 40: 41, 41: 42, 42: 43, 43: 44, 44: 45, 45: 46, 46: 47, 47: 48, 48: 49, 49: 50, 50: 51, 51: 52, 52: 53, 53: 54, 54: 55, 55: 56, 56: 57, 57: 58, 58: 59, 59: 60, 60: 61, 61: 62, 62: 63, 63: 64, 64: 65, 65: 66, 66: 67, 67: 68, 68: 69, 69: 70, 70: 71, 71: 72, 72: 73, 73: 74, 74: 75, 75: 76, 76: 77, 77: 78, 78: 79, 79: 80, 80: 81, 81: 82, 82: 83, 83: 84, 84: 85, 85: 86, 86: 87, 87: 88, 88: 89, 89: 90, 90: 92, 91: 93, 92: 94, 93: 95, 94: 96, 95: 97, 96: 98, 97: 99, 98: 100, 99: 101, 100: 102, 101: 103, 102: 104, 103: 105, 104: 106, 105: 107, 106: 108, 107: 109, 108: 110, 109: 111, 110: 112, 111: 113, 112: 114, 113: 115, 114: 116, 115: 117, 116: 118, 117: 119, 118: 120, 119: 121, 120: 122, 121: 123, 122: 124, 123: 125, 124: 126, 125: 127, 126: 128, 127: 129, 128: 130, 129: 131, 130: 132, 131: 133, 132: 134, 133: 135, 134: 136, 135: 137, 136: 138, 137: 139, 138: 140, 139: 141, 140: 142, 141: 143, 142: 144, 143: 145, 144: 146, 145: 147, 146: 148, 147: 149, 148: 150, 149: 151, 150: 152, 151: 153, 152: 154, 153: 155, 154: 156, 155: 157, 156: 158, 157: 159, 158: 160, 159: 161, 160: 162, 161: 163, 162: 164, 163: 165, 164: 166, 165: 167, 166: 168, 167: 169, 168: 170, 169: 171, 170: 172, 171: 173, 172: 174, 173: 175, 174: 176, 175: 177, 176: 178, 177: 179, 178: 180, 179: 181, 180: 182, 181: 183, 182: 184, 183: 185, 184: 186, 185: 187, 186: 188, 187: 189, 188: 190, 189: 191, 190: 192, 191: 193, 192: 194, 193: 195, 194: 196, 195: 197, 196: 198, 197: 199, 198: 200, 199: 201, 200: 202, 201: 203, 202: 204, 203: 205, 204: 206, 205: 207, 206: 208, 207: 209, 208: 210, 209: 211, 210: 212, 211: 213, 212: 214, 213: 215, 214: 216, 215: 217, 216: 218, 217: 219, 218: 220, 219: 222, 220: 223, 221: 224, 222: 225, 223: 226, 224: 227, 225: 228, 226: 229, 227: 230, 228: 231, 229: 232, 230: 233, 231: 234, 232: 235, 233: 236, 234: 237, 235: 238, 236: 239, 237: 240, 238: 241, 239: 242, 240: 243, 241: 244, 242: 245, 243: 246, 244: 247, 245: 248, 246: 249, 247: 250, 248: 251, 249: 252, 250: 253, 251: 254, 252: 255, 253: 256, 254: 257, 255: 258, 256: 259, 257: 260, 258: 261, 259: 262, 260: 263, 261: 264, 262: 265, 263: 266, 264: 267, 265: 268, 266: 269, 267: 270, 268: 271, 269: 272, 270: 273, 271: 274, 272: 275, 273: 276, 274: 277, 275: 278, 276: 279, 277: 280, 278: 281, 279: 282, 280: 283, 281: 284, 282: 285, 283: 286, 284: 287, 285: 288, 286: 289, 287: 290, 288: 291, 289: 292, 290: 293, 291: 294, 292: 295, 293: 296, 294: 297, 295: 298, 296: 299, 297: 300, 298: 301, 299: 302, 300: 303, 301: 304, 302: 305, 303: 306, 304: 307, 305: 308, 306: 309, 307: 310, 308: 311, 309: 312, 310: 313, 311: 314, 312: 315, 313: 316, 314: 317, 315: 318, 316: 319, 317: 320, 318: 321, 319: 322, 320: 324, 321: 325, 322: 326, 323: 327, 324: 328, 325: 329, 326: 330, 327: 331, 328: 332, 329: 333, 330: 334, 331: 335, 332: 336, 333: 337, 334: 338, 335: 339, 336: 340, 337: 341, 338: 342, 339: 343, 340: 344, 341: 345, 342: 346, 343: 347, 344: 348, 345: 349, 346: 350, 347: 351, 348: 352, 349: 353, 350: 354, 351: 355, 352: 356, 353: 357, 354: 358, 355: 359, 356: 360, 357: 361, 358: 362, 359: 363, 360: 364, 361: 365, 362: 366, 363: 367, 364: 368, 365: 369, 366: 370, 367: 371, 368: 372, 369: 373, 370: 374, 371: 375, 372: 376, 373: 377, 374: 378, 375: 379, 376: 380, 377: 381, 378: 382, 379: 383, 380: 384, 381: 385, 382: 386, 383: 387, 384: 388, 385: 389, 386: 390, 387: 391, 388: 392, 389: 393, 390: 394, 391: 395, 392: 396, 393: 397, 394: 398, 395: 399, 396: 400, 397: 401, 398: 402, 399: 403, 400: 404, 401: 405, 402: 406, 403: 407, 404: 408, 405: 409, 406: 410, 407: 411, 408: 412, 409: 413, 410: 414, 411: 415, 412: 416, 413: 417, 414: 418, 415: 419, 416: 420, 417: 421, 418: 422, 419: 423, 420: 424, 421: 425, 422: 426, 423: 427, 424: 428, 425: 429, 426: 430, 427: 431, 428: 432, 429: 433, 430: 434, 431: 435, 432: 436, 433: 437, 434: 438, 435: 439, 436: 440, 437: 441, 438: 442, 439: 443, 440: 444, 441: 445, 442: 446, 443: 447, 444: 448, 445: 449, 446: 450, 447: 451, 448: 452, 449: 453, 450: 454, 451: 455, 452: 456, 453: 457, 454: 458, 455: 459, 456: 460, 457: 461, 458: 462, 459: 463, 460: 464, 461: 465, 462: 466, 463: 467, 464: 468, 465: 469, 466: 470, 467: 471, 468: 472, 469: 473, 470: 474, 471: 475, 472: 476, 473: 477, 474: 478, 475: 479, 476: 480, 477: 481, 478: 482, 479: 483, 480: 484, 481: 485, 482: 486, 483: 487, 484: 488, 485: 489, 486: 490, 487: 491, 488: 492, 489: 493, 490: 494, 491: 495, 492: 496, 493: 497, 494: 498, 495: 499, 496: 500, 497: 501, 498: 502, 499: 503, 500: 504, 501: 505, 502: 506, 503: 507, 504: 508, 505: 509, 506: 510, 507: 511, 508: 512, 509: 513, 510: 514, 511: 515, 512: 516, 513: 517, 514: 518, 515: 519, 516: 520, 517: 521, 518: 522, 519: 523, 520: 524, 521: 525, 522: 526, 523: 527, 524: 528, 525: 529, 526: 530, 527: 531, 528: 532, 529: 533, 530: 534, 531: 535, 532: 536, 533: 537, 534: 538, 535: 539, 536: 540, 537: 541, 538: 542, 539: 543, 540: 544, 541: 545, 542: 546, 543: 547, 544: 548, 545: 549, 546: 550, 547: 551, 548: 552, 549: 553, 550: 554, 551: 555, 552: 556, 553: 557, 554: 558, 555: 559, 556: 560, 557: 561, 558: 562, 559: 563, 560: 564, 561: 565, 562: 566, 563: 567, 564: 568, 565: 569, 566: 570, 567: 571, 568: 572, 569: 573, 570: 574, 571: 575, 572: 576, 573: 577, 574: 578, 575: 579, 576: 580, 577: 581, 578: 582, 579: 583, 580: 584, 581: 585, 582: 586, 583: 587, 584: 588, 585: 589, 586: 590, 587: 591, 588: 592, 589: 593, 590: 594, 591: 595, 592: 596, 593: 597, 594: 598, 595: 599, 596: 600, 597: 601, 598: 602, 599: 603, 600: 604, 601: 605, 602: 606, 603: 607, 604: 608, 605: 609, 606: 610, 607: 611, 608: 612, 609: 613, 610: 614, 611: 615, 612: 616, 613: 617, 614: 618, 615: 619, 616: 620, 617: 621, 618: 623, 619: 624, 620: 625, 621: 626, 622: 627, 623: 628, 624: 629, 625: 630, 626: 631, 627: 632, 628: 633, 629: 634, 630: 635, 631: 636, 632: 637, 633: 638, 634: 639, 635: 640, 636: 641, 637: 642, 638: 643, 639: 644, 640: 645, 641: 647, 642: 648, 643: 649, 644: 650, 645: 651, 646: 652, 647: 653, 648: 654, 649: 655, 650: 656, 651: 657, 652: 658, 653: 659, 654: 660, 655: 661, 656: 662, 657: 663, 658: 664, 659: 665, 660: 666, 661: 667, 662: 668, 663: 669, 664: 670, 665: 671, 666: 672, 667: 673, 668: 674, 669: 675, 670: 676, 671: 678, 672: 679, 673: 680, 674: 681, 675: 682, 676: 683, 677: 684, 678: 685, 679: 687, 680: 688, 681: 690, 682: 691, 683: 692, 684: 693, 685: 694, 686: 695, 687: 696, 688: 697, 689: 698, 690: 699, 691: 700, 692: 701, 693: 702, 694: 703, 695: 704, 696: 705, 697: 706, 698: 707, 699: 708, 700: 709, 701: 710, 702: 711, 703: 712, 704: 713, 705: 714, 706: 715, 707: 716, 708: 717, 709: 718, 710: 719, 711: 720, 712: 721, 713: 722, 714: 723, 715: 724, 716: 725, 717: 726, 718: 727, 719: 728, 720: 729, 721: 730, 722: 731, 723: 732, 724: 733, 725: 734, 726: 735, 727: 736, 728: 737, 729: 738, 730: 739, 731: 741, 732: 742, 733: 743, 734: 744, 735: 745, 736: 746, 737: 747, 738: 748, 739: 749, 740: 750, 741: 751, 742: 752, 743: 753, 744: 754, 745: 755, 746: 756, 747: 757, 748: 758, 749: 759, 750: 760, 751: 761, 752: 762, 753: 763, 754: 764, 755: 765, 756: 766, 757: 767, 758: 768, 759: 769, 760: 770, 761: 771, 762: 772, 763: 773, 764: 774, 765: 775, 766: 776, 767: 777, 768: 778, 769: 779, 770: 780, 771: 781, 772: 782, 773: 783, 774: 784, 775: 785, 776: 786, 777: 787, 778: 788, 779: 789, 780: 790, 781: 791, 782: 792, 783: 793, 784: 794, 785: 795, 786: 796, 787: 797, 788: 798, 789: 799, 790: 800, 791: 801, 792: 802, 793: 803, 794: 804, 795: 805, 796: 806, 797: 807, 798: 808, 799: 809, 800: 810, 801: 811, 802: 812, 803: 813, 804: 814, 805: 815, 806: 816, 807: 818, 808: 819, 809: 820, 810: 821, 811: 822, 812: 823, 813: 824, 814: 825, 815: 826, 816: 827, 817: 828, 818: 829, 819: 830, 820: 831, 821: 832, 822: 833, 823: 834, 824: 835, 825: 836, 826: 837, 827: 838, 828: 839, 829: 840, 830: 841, 831: 842, 832: 843, 833: 844, 834: 845, 835: 846, 836: 847, 837: 848, 838: 849, 839: 850, 840: 851, 841: 852, 842: 853, 843: 854, 844: 855, 845: 856, 846: 857, 847: 858, 848: 859, 849: 860, 850: 861, 851: 862, 852: 863, 853: 864, 854: 865, 855: 866, 856: 867, 857: 868, 858: 869, 859: 870, 860: 871, 861: 872, 862: 873, 863: 874, 864: 875, 865: 876, 866: 877, 867: 878, 868: 879, 869: 880, 870: 881, 871: 882, 872: 884, 873: 885, 874: 886, 875: 887, 876: 888, 877: 889, 878: 890, 879: 891, 880: 892, 881: 893, 882: 894, 883: 895, 884: 896, 885: 897, 886: 898, 887: 899, 888: 900, 889: 901, 890: 902, 891: 903, 892: 904, 893: 905, 894: 906, 895: 907, 896: 908, 897: 909, 898: 910, 899: 911, 900: 912, 901: 913, 902: 914, 903: 915, 904: 916, 905: 917, 906: 918, 907: 919, 908: 920, 909: 921, 910: 922, 911: 923, 912: 924, 913: 925, 914: 926, 915: 927, 916: 928, 917: 929, 918: 930, 919: 931, 920: 932, 921: 933, 922: 934, 923: 935, 924: 936, 925: 937, 926: 938, 927: 939, 928: 940, 929: 941, 930: 942, 931: 943, 932: 944, 933: 945, 934: 946, 935: 947, 936: 948, 937: 949, 938: 950, 939: 951, 940: 952, 941: 953, 942: 954, 943: 955, 944: 956, 945: 957, 946: 958, 947: 959, 948: 960, 949: 961, 950: 962, 951: 963, 952: 964, 953: 965, 954: 966, 955: 967, 956: 968, 957: 969, 958: 970, 959: 971, 960: 972, 961: 973, 962: 974, 963: 975, 964: 976, 965: 977, 966: 978, 967: 979, 968: 980, 969: 981, 970: 982, 971: 983, 972: 984, 973: 985, 974: 986, 975: 987, 976: 988, 977: 989, 978: 990, 979: 991, 980: 992, 981: 993, 982: 994, 983: 996, 984: 997, 985: 998, 986: 999, 987: 1000, 988: 1001, 989: 1002, 990: 1003, 991: 1004, 992: 1005, 993: 1006, 994: 1007, 995: 1008, 996: 1009, 997: 1010, 998: 1011, 999: 1012, 1000: 1013, 1001: 1014, 1002: 1015, 1003: 1016, 1004: 1017, 1005: 1018, 1006: 1019, 1007: 1020, 1008: 1021, 1009: 1022, 1010: 1023, 1011: 1024, 1012: 1025, 1013: 1026, 1014: 1027, 1015: 1028, 1016: 1029, 1017: 1030, 1018: 1031, 1019: 1032, 1020: 1033, 1021: 1034, 1022: 1035, 1023: 1036, 1024: 1037, 1025: 1038, 1026: 1039, 1027: 1040, 1028: 1041, 1029: 1042, 1030: 1043, 1031: 1044, 1032: 1045, 1033: 1046, 1034: 1047, 1035: 1049, 1036: 1050, 1037: 1051, 1038: 1052, 1039: 1053, 1040: 1054, 1041: 1055, 1042: 1056, 1043: 1057, 1044: 1058, 1045: 1059, 1046: 1060, 1047: 1061, 1048: 1062, 1049: 1063, 1050: 1064, 1051: 1065, 1052: 1066, 1053: 1067, 1054: 1068, 1055: 1069, 1056: 1070, 1057: 1071, 1058: 1073, 1059: 1075, 1060: 1076, 1061: 1077, 1062: 1078, 1063: 1079, 1064: 1080, 1065: 1081, 1066: 1082, 1067: 1083, 1068: 1084, 1069: 1085, 1070: 1086, 1071: 1087, 1072: 1088, 1073: 1089, 1074: 1090, 1075: 1091, 1076: 1092, 1077: 1093, 1078: 1094, 1079: 1095, 1080: 1096, 1081: 1097, 1082: 1098, 1083: 1099, 1084: 1100, 1085: 1101, 1086: 1102, 1087: 1103, 1088: 1104, 1089: 1105, 1090: 1106, 1091: 1107, 1092: 1108, 1093: 1109, 1094: 1110, 1095: 1111, 1096: 1112, 1097: 1113, 1098: 1114, 1099: 1115, 1100: 1116, 1101: 1117, 1102: 1118, 1103: 1119, 1104: 1120, 1105: 1121, 1106: 1122, 1107: 1123, 1108: 1124, 1109: 1125, 1110: 1126, 1111: 1127, 1112: 1128, 1113: 1129, 1114: 1130, 1115: 1131, 1116: 1132, 1117: 1133, 1118: 1134, 1119: 1135, 1120: 1136, 1121: 1137, 1122: 1138, 1123: 1139, 1124: 1140, 1125: 1141, 1126: 1142, 1127: 1143, 1128: 1144, 1129: 1145, 1130: 1146, 1131: 1147, 1132: 1148, 1133: 1149, 1134: 1150, 1135: 1151, 1136: 1152, 1137: 1153, 1138: 1154, 1139: 1155, 1140: 1156, 1141: 1157, 1142: 1158, 1143: 1159, 1144: 1160, 1145: 1161, 1146: 1162, 1147: 1163, 1148: 1164, 1149: 1165, 1150: 1166, 1151: 1167, 1152: 1168, 1153: 1169, 1154: 1170, 1155: 1171, 1156: 1172, 1157: 1173, 1158: 1174, 1159: 1175, 1160: 1176, 1161: 1177, 1162: 1178, 1163: 1179, 1164: 1180, 1165: 1181, 1166: 1183, 1167: 1184, 1168: 1185, 1169: 1186, 1170: 1187, 1171: 1188, 1172: 1189, 1173: 1190, 1174: 1191, 1175: 1192, 1176: 1193, 1177: 1194, 1178: 1196, 1179: 1197, 1180: 1198, 1181: 1199, 1182: 1200, 1183: 1201, 1184: 1202, 1185: 1203, 1186: 1204, 1187: 1205, 1188: 1206, 1189: 1207, 1190: 1208, 1191: 1209, 1192: 1210, 1193: 1211, 1194: 1212, 1195: 1213, 1196: 1214, 1197: 1215, 1198: 1216, 1199: 1217, 1200: 1218, 1201: 1219, 1202: 1220, 1203: 1221, 1204: 1222, 1205: 1223, 1206: 1224, 1207: 1225, 1208: 1226, 1209: 1227, 1210: 1228, 1211: 1230, 1212: 1231, 1213: 1232, 1214: 1233, 1215: 1234, 1216: 1235, 1217: 1236, 1218: 1237, 1219: 1238, 1220: 1240, 1221: 1241, 1222: 1242, 1223: 1243, 1224: 1244, 1225: 1245, 1226: 1246, 1227: 1247, 1228: 1248, 1229: 1249, 1230: 1250, 1231: 1251, 1232: 1252, 1233: 1253, 1234: 1254, 1235: 1255, 1236: 1256, 1237: 1257, 1238: 1258, 1239: 1259, 1240: 1260, 1241: 1261, 1242: 1262, 1243: 1263, 1244: 1264, 1245: 1265, 1246: 1266, 1247: 1267, 1248: 1268, 1249: 1269, 1250: 1270, 1251: 1271, 1252: 1272, 1253: 1273, 1254: 1274, 1255: 1275, 1256: 1276, 1257: 1277, 1258: 1278, 1259: 1279, 1260: 1280, 1261: 1281, 1262: 1282, 1263: 1283, 1264: 1284, 1265: 1285, 1266: 1286, 1267: 1287, 1268: 1288, 1269: 1289, 1270: 1290, 1271: 1291, 1272: 1292, 1273: 1293, 1274: 1294, 1275: 1295, 1276: 1296, 1277: 1297, 1278: 1298, 1279: 1299, 1280: 1300, 1281: 1301, 1282: 1302, 1283: 1303, 1284: 1304, 1285: 1305, 1286: 1306, 1287: 1307, 1288: 1308, 1289: 1309, 1290: 1310, 1291: 1311, 1292: 1312, 1293: 1313, 1294: 1314, 1295: 1315, 1296: 1316, 1297: 1317, 1298: 1318, 1299: 1319, 1300: 1320, 1301: 1321, 1302: 1322, 1303: 1323, 1304: 1324, 1305: 1325, 1306: 1326, 1307: 1327, 1308: 1328, 1309: 1329, 1310: 1330, 1311: 1331, 1312: 1332, 1313: 1333, 1314: 1334, 1315: 1335, 1316: 1336, 1317: 1337, 1318: 1339, 1319: 1340, 1320: 1341, 1321: 1342, 1322: 1343, 1323: 1344, 1324: 1345, 1325: 1346, 1326: 1347, 1327: 1348, 1328: 1349, 1329: 1350, 1330: 1351, 1331: 1352, 1332: 1353, 1333: 1354, 1334: 1355, 1335: 1356, 1336: 1357, 1337: 1358, 1338: 1359, 1339: 1360, 1340: 1361, 1341: 1362, 1342: 1363, 1343: 1364, 1344: 1365, 1345: 1366, 1346: 1367, 1347: 1368, 1348: 1369, 1349: 1370, 1350: 1371, 1351: 1372, 1352: 1373, 1353: 1374, 1354: 1375, 1355: 1376, 1356: 1377, 1357: 1378, 1358: 1379, 1359: 1380, 1360: 1381, 1361: 1382, 1362: 1383, 1363: 1384, 1364: 1385, 1365: 1386, 1366: 1387, 1367: 1388, 1368: 1389, 1369: 1390, 1370: 1391, 1371: 1392, 1372: 1393, 1373: 1394, 1374: 1395, 1375: 1396, 1376: 1397, 1377: 1398, 1378: 1399, 1379: 1400, 1380: 1401, 1381: 1404, 1382: 1405, 1383: 1406, 1384: 1407, 1385: 1408, 1386: 1409, 1387: 1410, 1388: 1411, 1389: 1412, 1390: 1413, 1391: 1414, 1392: 1415, 1393: 1416, 1394: 1417, 1395: 1419, 1396: 1420, 1397: 1421, 1398: 1422, 1399: 1423, 1400: 1424, 1401: 1425, 1402: 1426, 1403: 1427, 1404: 1428, 1405: 1429, 1406: 1430, 1407: 1431, 1408: 1432, 1409: 1433, 1410: 1434, 1411: 1436, 1412: 1437, 1413: 1438, 1414: 1439, 1415: 1440, 1416: 1441, 1417: 1442, 1418: 1443, 1419: 1444, 1420: 1445, 1421: 1446, 1422: 1447, 1423: 1448, 1424: 1449, 1425: 1450, 1426: 1453, 1427: 1454, 1428: 1455, 1429: 1456, 1430: 1457, 1431: 1458, 1432: 1459, 1433: 1460, 1434: 1461, 1435: 1462, 1436: 1463, 1437: 1464, 1438: 1465, 1439: 1466, 1440: 1467, 1441: 1468, 1442: 1470, 1443: 1471, 1444: 1472, 1445: 1473, 1446: 1474, 1447: 1475, 1448: 1476, 1449: 1477, 1450: 1479, 1451: 1480, 1452: 1482, 1453: 1483, 1454: 1484, 1455: 1485, 1456: 1486, 1457: 1487, 1458: 1488, 1459: 1489, 1460: 1490, 1461: 1493, 1462: 1494, 1463: 1495, 1464: 1496, 1465: 1497, 1466: 1498, 1467: 1499, 1468: 1500, 1469: 1501, 1470: 1502, 1471: 1503, 1472: 1504, 1473: 1507, 1474: 1508, 1475: 1509, 1476: 1510, 1477: 1511, 1478: 1513, 1479: 1514, 1480: 1515, 1481: 1516, 1482: 1517, 1483: 1518, 1484: 1519, 1485: 1520, 1486: 1522, 1487: 1523, 1488: 1524, 1489: 1525, 1490: 1526, 1491: 1527, 1492: 1528, 1493: 1529, 1494: 1531, 1495: 1532, 1496: 1533, 1497: 1534, 1498: 1535, 1499: 1537, 1500: 1538, 1501: 1539, 1502: 1541, 1503: 1542, 1504: 1543, 1505: 1544, 1506: 1545, 1507: 1546, 1508: 1547, 1509: 1548, 1510: 1549, 1511: 1550, 1512: 1551, 1513: 1552, 1514: 1553, 1515: 1554, 1516: 1555, 1517: 1556, 1518: 1557, 1519: 1558, 1520: 1559, 1521: 1561, 1522: 1562, 1523: 1563, 1524: 1564, 1525: 1565, 1526: 1566, 1527: 1567, 1528: 1568, 1529: 1569, 1530: 1570, 1531: 1571, 1532: 1572, 1533: 1573, 1534: 1574, 1535: 1575, 1536: 1577, 1537: 1578, 1538: 1579, 1539: 1580, 1540: 1581, 1541: 1582, 1542: 1583, 1543: 1584, 1544: 1585, 1545: 1586, 1546: 1587, 1547: 1588, 1548: 1589, 1549: 1590, 1550: 1591, 1551: 1592, 1552: 1593, 1553: 1594, 1554: 1595, 1555: 1596, 1556: 1597, 1557: 1598, 1558: 1599, 1559: 1600, 1560: 1601, 1561: 1602, 1562: 1603, 1563: 1604, 1564: 1605, 1565: 1606, 1566: 1608, 1567: 1609, 1568: 1610, 1569: 1611, 1570: 1612, 1571: 1613, 1572: 1614, 1573: 1615, 1574: 1616, 1575: 1617, 1576: 1619, 1577: 1620, 1578: 1621, 1579: 1622, 1580: 1623, 1581: 1624, 1582: 1625, 1583: 1626, 1584: 1627, 1585: 1628, 1586: 1629, 1587: 1630, 1588: 1631, 1589: 1632, 1590: 1633, 1591: 1635, 1592: 1636, 1593: 1639, 1594: 1640, 1595: 1641, 1596: 1642, 1597: 1643, 1598: 1644, 1599: 1645, 1600: 1646, 1601: 1647, 1602: 1648, 1603: 1649, 1604: 1650, 1605: 1651, 1606: 1652, 1607: 1653, 1608: 1654, 1609: 1655, 1610: 1656, 1611: 1657, 1612: 1658, 1613: 1659, 1614: 1660, 1615: 1661, 1616: 1662, 1617: 1663, 1618: 1664, 1619: 1665, 1620: 1666, 1621: 1667, 1622: 1668, 1623: 1669, 1624: 1670, 1625: 1671, 1626: 1672, 1627: 1673, 1628: 1674, 1629: 1675, 1630: 1676, 1631: 1677, 1632: 1678, 1633: 1679, 1634: 1680, 1635: 1681, 1636: 1682, 1637: 1683, 1638: 1684, 1639: 1685, 1640: 1686, 1641: 1687, 1642: 1688, 1643: 1689, 1644: 1690, 1645: 1692, 1646: 1693, 1647: 1694, 1648: 1695, 1649: 1696, 1650: 1697, 1651: 1698, 1652: 1699, 1653: 1701, 1654: 1702, 1655: 1703, 1656: 1704, 1657: 1705, 1658: 1706, 1659: 1707, 1660: 1708, 1661: 1709, 1662: 1710, 1663: 1711, 1664: 1713, 1665: 1714, 1666: 1715, 1667: 1716, 1668: 1717, 1669: 1718, 1670: 1719, 1671: 1720, 1672: 1721, 1673: 1722, 1674: 1723, 1675: 1724, 1676: 1725, 1677: 1726, 1678: 1727, 1679: 1728, 1680: 1729, 1681: 1730, 1682: 1731, 1683: 1732, 1684: 1733, 1685: 1734, 1686: 1735, 1687: 1738, 1688: 1739, 1689: 1740, 1690: 1741, 1691: 1742, 1692: 1743, 1693: 1744, 1694: 1746, 1695: 1747, 1696: 1748, 1697: 1749, 1698: 1750, 1699: 1752, 1700: 1753, 1701: 1754, 1702: 1755, 1703: 1756, 1704: 1757, 1705: 1758, 1706: 1759, 1707: 1760, 1708: 1762, 1709: 1764, 1710: 1765, 1711: 1767, 1712: 1768, 1713: 1769, 1714: 1770, 1715: 1771, 1716: 1772, 1717: 1773, 1718: 1774, 1719: 1776, 1720: 1777, 1721: 1779, 1722: 1780, 1723: 1781, 1724: 1782, 1725: 1783, 1726: 1784, 1727: 1785, 1728: 1787, 1729: 1788, 1730: 1789, 1731: 1791, 1732: 1792, 1733: 1793, 1734: 1794, 1735: 1795, 1736: 1796, 1737: 1797, 1738: 1798, 1739: 1799, 1740: 1801, 1741: 1804, 1742: 1805, 1743: 1806, 1744: 1807, 1745: 1809, 1746: 1810, 1747: 1811, 1748: 1812, 1749: 1814, 1750: 1815, 1751: 1816, 1752: 1817, 1753: 1819, 1754: 1820, 1755: 1821, 1756: 1822, 1757: 1824, 1758: 1825, 1759: 1826, 1760: 1827, 1761: 1829, 1762: 1830, 1763: 1831, 1764: 1832, 1765: 1833, 1766: 1834, 1767: 1835, 1768: 1836, 1769: 1837, 1770: 1839, 1771: 1840, 1772: 1841, 1773: 1842, 1774: 1843, 1775: 1844, 1776: 1845, 1777: 1846, 1778: 1847, 1779: 1848, 1780: 1849, 1781: 1850, 1782: 1851, 1783: 1852, 1784: 1853, 1785: 1854, 1786: 1855, 1787: 1856, 1788: 1857, 1789: 1858, 1790: 1859, 1791: 1860, 1792: 1861, 1793: 1862, 1794: 1863, 1795: 1864, 1796: 1865, 1797: 1866, 1798: 1867, 1799: 1868, 1800: 1869, 1801: 1870, 1802: 1871, 1803: 1872, 1804: 1873, 1805: 1874, 1806: 1875, 1807: 1876, 1808: 1877, 1809: 1878, 1810: 1879, 1811: 1880, 1812: 1881, 1813: 1882, 1814: 1883, 1815: 1884, 1816: 1885, 1817: 1886, 1818: 1887, 1819: 1888, 1820: 1889, 1821: 1890, 1822: 1891, 1823: 1892, 1824: 1893, 1825: 1894, 1826: 1895, 1827: 1896, 1828: 1897, 1829: 1898, 1830: 1899, 1831: 1900, 1832: 1901, 1833: 1902, 1834: 1903, 1835: 1904, 1836: 1905, 1837: 1906, 1838: 1907, 1839: 1908, 1840: 1909, 1841: 1910, 1842: 1911, 1843: 1912, 1844: 1913, 1845: 1914, 1846: 1915, 1847: 1916, 1848: 1917, 1849: 1918, 1850: 1919, 1851: 1920, 1852: 1921, 1853: 1922, 1854: 1923, 1855: 1924, 1856: 1925, 1857: 1926, 1858: 1927, 1859: 1928, 1860: 1929, 1861: 1930, 1862: 1931, 1863: 1932, 1864: 1933, 1865: 1934, 1866: 1935, 1867: 1936, 1868: 1937, 1869: 1938, 1870: 1939, 1871: 1940, 1872: 1941, 1873: 1942, 1874: 1943, 1875: 1944, 1876: 1945, 1877: 1946, 1878: 1947, 1879: 1948, 1880: 1949, 1881: 1950, 1882: 1951, 1883: 1952, 1884: 1953, 1885: 1954, 1886: 1955, 1887: 1956, 1888: 1957, 1889: 1958, 1890: 1959, 1891: 1960, 1892: 1961, 1893: 1962, 1894: 1963, 1895: 1964, 1896: 1965, 1897: 1966, 1898: 1967, 1899: 1968, 1900: 1969, 1901: 1970, 1902: 1971, 1903: 1972, 1904: 1973, 1905: 1974, 1906: 1975, 1907: 1976, 1908: 1977, 1909: 1978, 1910: 1979, 1911: 1980, 1912: 1981, 1913: 1982, 1914: 1983, 1915: 1984, 1916: 1985, 1917: 1986, 1918: 1987, 1919: 1988, 1920: 1989, 1921: 1990, 1922: 1991, 1923: 1992, 1924: 1993, 1925: 1994, 1926: 1995, 1927: 1996, 1928: 1997, 1929: 1998, 1930: 1999, 1931: 2000, 1932: 2001, 1933: 2002, 1934: 2003, 1935: 2004, 1936: 2005, 1937: 2006, 1938: 2007, 1939: 2008, 1940: 2009, 1941: 2010, 1942: 2011, 1943: 2012, 1944: 2013, 1945: 2014, 1946: 2015, 1947: 2016, 1948: 2017, 1949: 2018, 1950: 2019, 1951: 2020, 1952: 2021, 1953: 2022, 1954: 2023, 1955: 2024, 1956: 2025, 1957: 2026, 1958: 2027, 1959: 2028, 1960: 2029, 1961: 2030, 1962: 2031, 1963: 2032, 1964: 2033, 1965: 2034, 1966: 2035, 1967: 2036, 1968: 2037, 1969: 2038, 1970: 2039, 1971: 2040, 1972: 2041, 1973: 2042, 1974: 2043, 1975: 2044, 1976: 2045, 1977: 2046, 1978: 2047, 1979: 2048, 1980: 2049, 1981: 2050, 1982: 2051, 1983: 2052, 1984: 2053, 1985: 2054, 1986: 2055, 1987: 2056, 1988: 2057, 1989: 2058, 1990: 2059, 1991: 2060, 1992: 2061, 1993: 2062, 1994: 2063, 1995: 2064, 1996: 2065, 1997: 2066, 1998: 2067, 1999: 2068, 2000: 2069, 2001: 2070, 2002: 2071, 2003: 2072, 2004: 2073, 2005: 2074, 2006: 2075, 2007: 2076, 2008: 2077, 2009: 2078, 2010: 2079, 2011: 2080, 2012: 2081, 2013: 2082, 2014: 2083, 2015: 2084, 2016: 2085, 2017: 2086, 2018: 2087, 2019: 2088, 2020: 2089, 2021: 2090, 2022: 2091, 2023: 2092, 2024: 2093, 2025: 2094, 2026: 2095, 2027: 2096, 2028: 2097, 2029: 2098, 2030: 2099, 2031: 2100, 2032: 2101, 2033: 2102, 2034: 2103, 2035: 2104, 2036: 2105, 2037: 2106, 2038: 2107, 2039: 2108, 2040: 2109, 2041: 2110, 2042: 2111, 2043: 2112, 2044: 2113, 2045: 2114, 2046: 2115, 2047: 2116, 2048: 2117, 2049: 2118, 2050: 2119, 2051: 2120, 2052: 2121, 2053: 2122, 2054: 2123, 2055: 2124, 2056: 2125, 2057: 2126, 2058: 2127, 2059: 2128, 2060: 2129, 2061: 2130, 2062: 2131, 2063: 2132, 2064: 2133, 2065: 2134, 2066: 2135, 2067: 2136, 2068: 2137, 2069: 2138, 2070: 2139, 2071: 2140, 2072: 2141, 2073: 2142, 2074: 2143, 2075: 2144, 2076: 2145, 2077: 2146, 2078: 2147, 2079: 2148, 2080: 2149, 2081: 2150, 2082: 2151, 2083: 2152, 2084: 2153, 2085: 2154, 2086: 2155, 2087: 2156, 2088: 2157, 2089: 2158, 2090: 2159, 2091: 2160, 2092: 2161, 2093: 2162, 2094: 2163, 2095: 2164, 2096: 2165, 2097: 2166, 2098: 2167, 2099: 2168, 2100: 2169, 2101: 2170, 2102: 2171, 2103: 2172, 2104: 2173, 2105: 2174, 2106: 2175, 2107: 2176, 2108: 2177, 2109: 2178, 2110: 2179, 2111: 2180, 2112: 2181, 2113: 2182, 2114: 2183, 2115: 2184, 2116: 2185, 2117: 2186, 2118: 2187, 2119: 2188, 2120: 2189, 2121: 2190, 2122: 2191, 2123: 2192, 2124: 2193, 2125: 2194, 2126: 2195, 2127: 2196, 2128: 2197, 2129: 2198, 2130: 2199, 2131: 2200, 2132: 2201, 2133: 2202, 2134: 2203, 2135: 2204, 2136: 2205, 2137: 2206, 2138: 2207, 2139: 2208, 2140: 2209, 2141: 2210, 2142: 2211, 2143: 2212, 2144: 2213, 2145: 2214, 2146: 2215, 2147: 2216, 2148: 2217, 2149: 2218, 2150: 2219, 2151: 2220, 2152: 2221, 2153: 2222, 2154: 2223, 2155: 2224, 2156: 2225, 2157: 2226, 2158: 2227, 2159: 2228, 2160: 2229, 2161: 2230, 2162: 2231, 2163: 2232, 2164: 2233, 2165: 2234, 2166: 2235, 2167: 2236, 2168: 2237, 2169: 2238, 2170: 2239, 2171: 2240, 2172: 2241, 2173: 2242, 2174: 2243, 2175: 2244, 2176: 2245, 2177: 2246, 2178: 2247, 2179: 2248, 2180: 2249, 2181: 2250, 2182: 2251, 2183: 2252, 2184: 2253, 2185: 2254, 2186: 2255, 2187: 2256, 2188: 2257, 2189: 2258, 2190: 2259, 2191: 2260, 2192: 2261, 2193: 2262, 2194: 2263, 2195: 2264, 2196: 2265, 2197: 2266, 2198: 2267, 2199: 2268, 2200: 2269, 2201: 2270, 2202: 2271, 2203: 2272, 2204: 2273, 2205: 2274, 2206: 2275, 2207: 2276, 2208: 2277, 2209: 2278, 2210: 2279, 2211: 2280, 2212: 2281, 2213: 2282, 2214: 2283, 2215: 2284, 2216: 2285, 2217: 2286, 2218: 2287, 2219: 2288, 2220: 2289, 2221: 2290, 2222: 2291, 2223: 2292, 2224: 2293, 2225: 2294, 2226: 2295, 2227: 2296, 2228: 2297, 2229: 2298, 2230: 2299, 2231: 2300, 2232: 2301, 2233: 2302, 2234: 2303, 2235: 2304, 2236: 2305, 2237: 2306, 2238: 2307, 2239: 2308, 2240: 2309, 2241: 2310, 2242: 2311, 2243: 2312, 2244: 2313, 2245: 2314, 2246: 2315, 2247: 2316, 2248: 2317, 2249: 2318, 2250: 2319, 2251: 2320, 2252: 2321, 2253: 2322, 2254: 2323, 2255: 2324, 2256: 2325, 2257: 2326, 2258: 2327, 2259: 2328, 2260: 2329, 2261: 2330, 2262: 2331, 2263: 2332, 2264: 2333, 2265: 2334, 2266: 2335, 2267: 2336, 2268: 2337, 2269: 2338, 2270: 2339, 2271: 2340, 2272: 2341, 2273: 2342, 2274: 2343, 2275: 2344, 2276: 2345, 2277: 2346, 2278: 2347, 2279: 2348, 2280: 2349, 2281: 2350, 2282: 2351, 2283: 2352, 2284: 2353, 2285: 2354, 2286: 2355, 2287: 2356, 2288: 2357, 2289: 2358, 2290: 2359, 2291: 2360, 2292: 2361, 2293: 2362, 2294: 2363, 2295: 2364, 2296: 2365, 2297: 2366, 2298: 2367, 2299: 2368, 2300: 2369, 2301: 2370, 2302: 2371, 2303: 2372, 2304: 2373, 2305: 2374, 2306: 2375, 2307: 2376, 2308: 2377, 2309: 2378, 2310: 2379, 2311: 2380, 2312: 2381, 2313: 2382, 2314: 2383, 2315: 2384, 2316: 2385, 2317: 2386, 2318: 2387, 2319: 2388, 2320: 2389, 2321: 2390, 2322: 2391, 2323: 2392, 2324: 2393, 2325: 2394, 2326: 2395, 2327: 2396, 2328: 2397, 2329: 2398, 2330: 2399, 2331: 2400, 2332: 2401, 2333: 2402, 2334: 2403, 2335: 2404, 2336: 2405, 2337: 2406, 2338: 2407, 2339: 2408, 2340: 2409, 2341: 2410, 2342: 2411, 2343: 2412, 2344: 2413, 2345: 2414, 2346: 2415, 2347: 2416, 2348: 2417, 2349: 2418, 2350: 2419, 2351: 2420, 2352: 2421, 2353: 2422, 2354: 2423, 2355: 2424, 2356: 2425, 2357: 2426, 2358: 2427, 2359: 2428, 2360: 2429, 2361: 2430, 2362: 2431, 2363: 2432, 2364: 2433, 2365: 2434, 2366: 2435, 2367: 2436, 2368: 2437, 2369: 2438, 2370: 2439, 2371: 2440, 2372: 2441, 2373: 2442, 2374: 2443, 2375: 2444, 2376: 2445, 2377: 2446, 2378: 2447, 2379: 2448, 2380: 2449, 2381: 2450, 2382: 2451, 2383: 2452, 2384: 2453, 2385: 2454, 2386: 2455, 2387: 2456, 2388: 2457, 2389: 2458, 2390: 2459, 2391: 2460, 2392: 2461, 2393: 2462, 2394: 2463, 2395: 2464, 2396: 2465, 2397: 2466, 2398: 2467, 2399: 2468, 2400: 2469, 2401: 2470, 2402: 2471, 2403: 2472, 2404: 2473, 2405: 2474, 2406: 2475, 2407: 2476, 2408: 2477, 2409: 2478, 2410: 2479, 2411: 2480, 2412: 2481, 2413: 2482, 2414: 2483, 2415: 2484, 2416: 2485, 2417: 2486, 2418: 2487, 2419: 2488, 2420: 2489, 2421: 2490, 2422: 2491, 2423: 2492, 2424: 2493, 2425: 2494, 2426: 2495, 2427: 2496, 2428: 2497, 2429: 2498, 2430: 2499, 2431: 2500, 2432: 2501, 2433: 2502, 2434: 2503, 2435: 2504, 2436: 2505, 2437: 2506, 2438: 2507, 2439: 2508, 2440: 2509, 2441: 2510, 2442: 2511, 2443: 2512, 2444: 2513, 2445: 2514, 2446: 2515, 2447: 2516, 2448: 2517, 2449: 2518, 2450: 2519, 2451: 2520, 2452: 2521, 2453: 2522, 2454: 2523, 2455: 2524, 2456: 2525, 2457: 2526, 2458: 2527, 2459: 2528, 2460: 2529, 2461: 2530, 2462: 2531, 2463: 2532, 2464: 2533, 2465: 2534, 2466: 2535, 2467: 2536, 2468: 2537, 2469: 2538, 2470: 2539, 2471: 2540, 2472: 2541, 2473: 2542, 2474: 2543, 2475: 2544, 2476: 2545, 2477: 2546, 2478: 2547, 2479: 2548, 2480: 2549, 2481: 2550, 2482: 2551, 2483: 2552, 2484: 2553, 2485: 2554, 2486: 2555, 2487: 2556, 2488: 2557, 2489: 2558, 2490: 2559, 2491: 2560, 2492: 2561, 2493: 2562, 2494: 2563, 2495: 2564, 2496: 2565, 2497: 2566, 2498: 2567, 2499: 2568, 2500: 2569, 2501: 2570, 2502: 2571, 2503: 2572, 2504: 2573, 2505: 2574, 2506: 2575, 2507: 2576, 2508: 2577, 2509: 2578, 2510: 2579, 2511: 2580, 2512: 2581, 2513: 2582, 2514: 2583, 2515: 2584, 2516: 2585, 2517: 2586, 2518: 2587, 2519: 2588, 2520: 2589, 2521: 2590, 2522: 2591, 2523: 2592, 2524: 2593, 2525: 2594, 2526: 2595, 2527: 2596, 2528: 2597, 2529: 2598, 2530: 2599, 2531: 2600, 2532: 2601, 2533: 2602, 2534: 2603, 2535: 2604, 2536: 2605, 2537: 2606, 2538: 2607, 2539: 2608, 2540: 2609, 2541: 2610, 2542: 2611, 2543: 2612, 2544: 2613, 2545: 2614, 2546: 2615, 2547: 2616, 2548: 2617, 2549: 2618, 2550: 2619, 2551: 2620, 2552: 2621, 2553: 2622, 2554: 2623, 2555: 2624, 2556: 2625, 2557: 2626, 2558: 2627, 2559: 2628, 2560: 2629, 2561: 2630, 2562: 2631, 2563: 2632, 2564: 2633, 2565: 2634, 2566: 2635, 2567: 2636, 2568: 2637, 2569: 2638, 2570: 2639, 2571: 2640, 2572: 2641, 2573: 2642, 2574: 2643, 2575: 2644, 2576: 2645, 2577: 2646, 2578: 2647, 2579: 2648, 2580: 2649, 2581: 2650, 2582: 2651, 2583: 2652, 2584: 2653, 2585: 2654, 2586: 2655, 2587: 2656, 2588: 2657, 2589: 2658, 2590: 2659, 2591: 2660, 2592: 2661, 2593: 2662, 2594: 2663, 2595: 2664, 2596: 2665, 2597: 2666, 2598: 2667, 2599: 2668, 2600: 2669, 2601: 2670, 2602: 2671, 2603: 2672, 2604: 2673, 2605: 2674, 2606: 2675, 2607: 2676, 2608: 2677, 2609: 2678, 2610: 2679, 2611: 2680, 2612: 2681, 2613: 2682, 2614: 2683, 2615: 2684, 2616: 2685, 2617: 2686, 2618: 2687, 2619: 2688, 2620: 2689, 2621: 2690, 2622: 2691, 2623: 2692, 2624: 2693, 2625: 2694, 2626: 2695, 2627: 2696, 2628: 2697, 2629: 2698, 2630: 2699, 2631: 2700, 2632: 2701, 2633: 2702, 2634: 2703, 2635: 2704, 2636: 2705, 2637: 2706, 2638: 2707, 2639: 2708, 2640: 2709, 2641: 2710, 2642: 2711, 2643: 2712, 2644: 2713, 2645: 2714, 2646: 2715, 2647: 2716, 2648: 2717, 2649: 2718, 2650: 2719, 2651: 2720, 2652: 2721, 2653: 2722, 2654: 2723, 2655: 2724, 2656: 2725, 2657: 2726, 2658: 2727, 2659: 2728, 2660: 2729, 2661: 2730, 2662: 2731, 2663: 2732, 2664: 2733, 2665: 2734, 2666: 2735, 2667: 2736, 2668: 2737, 2669: 2738, 2670: 2739, 2671: 2740, 2672: 2741, 2673: 2742, 2674: 2743, 2675: 2744, 2676: 2745, 2677: 2746, 2678: 2747, 2679: 2748, 2680: 2749, 2681: 2750, 2682: 2751, 2683: 2752, 2684: 2753, 2685: 2754, 2686: 2755, 2687: 2756, 2688: 2757, 2689: 2758, 2690: 2759, 2691: 2760, 2692: 2761, 2693: 2762, 2694: 2763, 2695: 2764, 2696: 2765, 2697: 2766, 2698: 2767, 2699: 2768, 2700: 2769, 2701: 2770, 2702: 2771, 2703: 2772, 2704: 2773, 2705: 2774, 2706: 2775, 2707: 2776, 2708: 2777, 2709: 2778, 2710: 2779, 2711: 2780, 2712: 2781, 2713: 2782, 2714: 2783, 2715: 2784, 2716: 2785, 2717: 2786, 2718: 2787, 2719: 2788, 2720: 2789, 2721: 2790, 2722: 2791, 2723: 2792, 2724: 2793, 2725: 2794, 2726: 2795, 2727: 2796, 2728: 2797, 2729: 2798, 2730: 2799, 2731: 2800, 2732: 2801, 2733: 2802, 2734: 2803, 2735: 2804, 2736: 2805, 2737: 2806, 2738: 2807, 2739: 2808, 2740: 2809, 2741: 2810, 2742: 2811, 2743: 2812, 2744: 2813, 2745: 2814, 2746: 2815, 2747: 2816, 2748: 2817, 2749: 2818, 2750: 2819, 2751: 2820, 2752: 2821, 2753: 2822, 2754: 2823, 2755: 2824, 2756: 2825, 2757: 2826, 2758: 2827, 2759: 2828, 2760: 2829, 2761: 2830, 2762: 2831, 2763: 2832, 2764: 2833, 2765: 2834, 2766: 2835, 2767: 2836, 2768: 2837, 2769: 2838, 2770: 2839, 2771: 2840, 2772: 2841, 2773: 2842, 2774: 2843, 2775: 2844, 2776: 2845, 2777: 2846, 2778: 2847, 2779: 2848, 2780: 2849, 2781: 2850, 2782: 2851, 2783: 2852, 2784: 2853, 2785: 2854, 2786: 2855, 2787: 2856, 2788: 2857, 2789: 2858, 2790: 2859, 2791: 2860, 2792: 2861, 2793: 2862, 2794: 2863, 2795: 2864, 2796: 2865, 2797: 2866, 2798: 2867, 2799: 2868, 2800: 2869, 2801: 2870, 2802: 2871, 2803: 2872, 2804: 2873, 2805: 2874, 2806: 2875, 2807: 2876, 2808: 2877, 2809: 2878, 2810: 2879, 2811: 2880, 2812: 2881, 2813: 2882, 2814: 2883, 2815: 2884, 2816: 2885, 2817: 2886, 2818: 2887, 2819: 2888, 2820: 2889, 2821: 2890, 2822: 2891, 2823: 2892, 2824: 2893, 2825: 2894, 2826: 2895, 2827: 2896, 2828: 2897, 2829: 2898, 2830: 2899, 2831: 2900, 2832: 2901, 2833: 2902, 2834: 2903, 2835: 2904, 2836: 2905, 2837: 2906, 2838: 2907, 2839: 2908, 2840: 2909, 2841: 2910, 2842: 2911, 2843: 2912, 2844: 2913, 2845: 2914, 2846: 2915, 2847: 2916, 2848: 2917, 2849: 2918, 2850: 2919, 2851: 2920, 2852: 2921, 2853: 2922, 2854: 2923, 2855: 2924, 2856: 2925, 2857: 2926, 2858: 2927, 2859: 2928, 2860: 2929, 2861: 2930, 2862: 2931, 2863: 2932, 2864: 2933, 2865: 2934, 2866: 2935, 2867: 2936, 2868: 2937, 2869: 2938, 2870: 2939, 2871: 2940, 2872: 2941, 2873: 2942, 2874: 2943, 2875: 2944, 2876: 2945, 2877: 2946, 2878: 2947, 2879: 2948, 2880: 2949, 2881: 2950, 2882: 2951, 2883: 2952, 2884: 2953, 2885: 2954, 2886: 2955, 2887: 2956, 2888: 2957, 2889: 2958, 2890: 2959, 2891: 2960, 2892: 2961, 2893: 2962, 2894: 2963, 2895: 2964, 2896: 2965, 2897: 2966, 2898: 2967, 2899: 2968, 2900: 2969, 2901: 2970, 2902: 2971, 2903: 2972, 2904: 2973, 2905: 2974, 2906: 2975, 2907: 2976, 2908: 2977, 2909: 2978, 2910: 2979, 2911: 2980, 2912: 2981, 2913: 2982, 2914: 2983, 2915: 2984, 2916: 2985, 2917: 2986, 2918: 2987, 2919: 2988, 2920: 2989, 2921: 2990, 2922: 2991, 2923: 2992, 2924: 2993, 2925: 2994, 2926: 2995, 2927: 2996, 2928: 2997, 2929: 2998, 2930: 2999, 2931: 3000, 2932: 3001, 2933: 3002, 2934: 3003, 2935: 3004, 2936: 3005, 2937: 3006, 2938: 3007, 2939: 3008, 2940: 3009, 2941: 3010, 2942: 3011, 2943: 3012, 2944: 3013, 2945: 3014, 2946: 3015, 2947: 3016, 2948: 3017, 2949: 3018, 2950: 3019, 2951: 3020, 2952: 3021, 2953: 3022, 2954: 3023, 2955: 3024, 2956: 3025, 2957: 3026, 2958: 3027, 2959: 3028, 2960: 3029, 2961: 3030, 2962: 3031, 2963: 3032, 2964: 3033, 2965: 3034, 2966: 3035, 2967: 3036, 2968: 3037, 2969: 3038, 2970: 3039, 2971: 3040, 2972: 3041, 2973: 3042, 2974: 3043, 2975: 3044, 2976: 3045, 2977: 3046, 2978: 3047, 2979: 3048, 2980: 3049, 2981: 3050, 2982: 3051, 2983: 3052, 2984: 3053, 2985: 3054, 2986: 3055, 2987: 3056, 2988: 3057, 2989: 3058, 2990: 3059, 2991: 3060, 2992: 3061, 2993: 3062, 2994: 3063, 2995: 3064, 2996: 3065, 2997: 3066, 2998: 3067, 2999: 3068, 3000: 3069, 3001: 3070, 3002: 3071, 3003: 3072, 3004: 3073, 3005: 3074, 3006: 3075, 3007: 3076, 3008: 3077, 3009: 3078, 3010: 3079, 3011: 3080, 3012: 3081, 3013: 3082, 3014: 3083, 3015: 3084, 3016: 3085, 3017: 3086, 3018: 3087, 3019: 3088, 3020: 3089, 3021: 3090, 3022: 3091, 3023: 3092, 3024: 3093, 3025: 3094, 3026: 3095, 3027: 3096, 3028: 3097, 3029: 3098, 3030: 3099, 3031: 3100, 3032: 3101, 3033: 3102, 3034: 3103, 3035: 3104, 3036: 3105, 3037: 3106, 3038: 3107, 3039: 3108, 3040: 3109, 3041: 3110, 3042: 3111, 3043: 3112, 3044: 3113, 3045: 3114, 3046: 3115, 3047: 3116, 3048: 3117, 3049: 3118, 3050: 3119, 3051: 3120, 3052: 3121, 3053: 3122, 3054: 3123, 3055: 3124, 3056: 3125, 3057: 3126, 3058: 3127, 3059: 3128, 3060: 3129, 3061: 3130, 3062: 3131, 3063: 3132, 3064: 3133, 3065: 3134, 3066: 3135, 3067: 3136, 3068: 3137, 3069: 3138, 3070: 3139, 3071: 3140, 3072: 3141, 3073: 3142, 3074: 3143, 3075: 3144, 3076: 3145, 3077: 3146, 3078: 3147, 3079: 3148, 3080: 3149, 3081: 3150, 3082: 3151, 3083: 3152, 3084: 3153, 3085: 3154, 3086: 3155, 3087: 3156, 3088: 3157, 3089: 3158, 3090: 3159, 3091: 3160, 3092: 3161, 3093: 3162, 3094: 3163, 3095: 3164, 3096: 3165, 3097: 3166, 3098: 3167, 3099: 3168, 3100: 3169, 3101: 3170, 3102: 3171, 3103: 3172, 3104: 3173, 3105: 3174, 3106: 3175, 3107: 3176, 3108: 3177, 3109: 3178, 3110: 3179, 3111: 3180, 3112: 3181, 3113: 3182, 3114: 3183, 3115: 3184, 3116: 3185, 3117: 3186, 3118: 3187, 3119: 3188, 3120: 3189, 3121: 3190, 3122: 3191, 3123: 3192, 3124: 3193, 3125: 3194, 3126: 3195, 3127: 3196, 3128: 3197, 3129: 3198, 3130: 3199, 3131: 3200, 3132: 3201, 3133: 3202, 3134: 3203, 3135: 3204, 3136: 3205, 3137: 3206, 3138: 3207, 3139: 3208, 3140: 3209, 3141: 3210, 3142: 3211, 3143: 3212, 3144: 3213, 3145: 3214, 3146: 3215, 3147: 3216, 3148: 3217, 3149: 3218, 3150: 3219, 3151: 3220, 3152: 3221, 3153: 3222, 3154: 3223, 3155: 3224, 3156: 3225, 3157: 3226, 3158: 3227, 3159: 3228, 3160: 3229, 3161: 3230, 3162: 3231, 3163: 3232, 3164: 3233, 3165: 3234, 3166: 3235, 3167: 3236, 3168: 3237, 3169: 3238, 3170: 3239, 3171: 3240, 3172: 3241, 3173: 3242, 3174: 3243, 3175: 3244, 3176: 3245, 3177: 3246, 3178: 3247, 3179: 3248, 3180: 3249, 3181: 3250, 3182: 3251, 3183: 3252, 3184: 3253, 3185: 3254, 3186: 3255, 3187: 3256, 3188: 3257, 3189: 3258, 3190: 3259, 3191: 3260, 3192: 3261, 3193: 3262, 3194: 3263, 3195: 3264, 3196: 3265, 3197: 3266, 3198: 3267, 3199: 3268, 3200: 3269, 3201: 3270, 3202: 3271, 3203: 3272, 3204: 3273, 3205: 3274, 3206: 3275, 3207: 3276, 3208: 3277, 3209: 3278, 3210: 3279, 3211: 3280, 3212: 3281, 3213: 3282, 3214: 3283, 3215: 3284, 3216: 3285, 3217: 3286, 3218: 3287, 3219: 3288, 3220: 3289, 3221: 3290, 3222: 3291, 3223: 3292, 3224: 3293, 3225: 3294, 3226: 3295, 3227: 3296, 3228: 3297, 3229: 3298, 3230: 3299, 3231: 3300, 3232: 3301, 3233: 3302, 3234: 3303, 3235: 3304, 3236: 3305, 3237: 3306, 3238: 3307, 3239: 3308, 3240: 3309, 3241: 3310, 3242: 3311, 3243: 3312, 3244: 3313, 3245: 3314, 3246: 3315, 3247: 3316, 3248: 3317, 3249: 3318, 3250: 3319, 3251: 3320, 3252: 3321, 3253: 3322, 3254: 3323, 3255: 3324, 3256: 3325, 3257: 3326, 3258: 3327, 3259: 3328, 3260: 3329, 3261: 3330, 3262: 3331, 3263: 3332, 3264: 3333, 3265: 3334, 3266: 3335, 3267: 3336, 3268: 3337, 3269: 3338, 3270: 3339, 3271: 3340, 3272: 3341, 3273: 3342, 3274: 3343, 3275: 3344, 3276: 3345, 3277: 3346, 3278: 3347, 3279: 3348, 3280: 3349, 3281: 3350, 3282: 3351, 3283: 3352, 3284: 3353, 3285: 3354, 3286: 3355, 3287: 3356, 3288: 3357, 3289: 3358, 3290: 3359, 3291: 3360, 3292: 3361, 3293: 3362, 3294: 3363, 3295: 3364, 3296: 3365, 3297: 3366, 3298: 3367, 3299: 3368, 3300: 3369, 3301: 3370, 3302: 3371, 3303: 3372, 3304: 3373, 3305: 3374, 3306: 3375, 3307: 3376, 3308: 3377, 3309: 3378, 3310: 3379, 3311: 3380, 3312: 3381, 3313: 3382, 3314: 3383, 3315: 3384, 3316: 3385, 3317: 3386, 3318: 3387, 3319: 3388, 3320: 3389, 3321: 3390, 3322: 3391, 3323: 3392, 3324: 3393, 3325: 3394, 3326: 3395, 3327: 3396, 3328: 3397, 3329: 3398, 3330: 3399, 3331: 3400, 3332: 3401, 3333: 3402, 3334: 3403, 3335: 3404, 3336: 3405, 3337: 3406, 3338: 3407, 3339: 3408, 3340: 3409, 3341: 3410, 3342: 3411, 3343: 3412, 3344: 3413, 3345: 3414, 3346: 3415, 3347: 3416, 3348: 3417, 3349: 3418, 3350: 3419, 3351: 3420, 3352: 3421, 3353: 3422, 3354: 3423, 3355: 3424, 3356: 3425, 3357: 3426, 3358: 3427, 3359: 3428, 3360: 3429, 3361: 3430, 3362: 3431, 3363: 3432, 3364: 3433, 3365: 3434, 3366: 3435, 3367: 3436, 3368: 3437, 3369: 3438, 3370: 3439, 3371: 3440, 3372: 3441, 3373: 3442, 3374: 3443, 3375: 3444, 3376: 3445, 3377: 3446, 3378: 3447, 3379: 3448, 3380: 3449, 3381: 3450, 3382: 3451, 3383: 3452, 3384: 3453, 3385: 3454, 3386: 3455, 3387: 3456, 3388: 3457, 3389: 3458, 3390: 3459, 3391: 3460, 3392: 3461, 3393: 3462, 3394: 3463, 3395: 3464, 3396: 3465, 3397: 3466, 3398: 3467, 3399: 3468, 3400: 3469, 3401: 3470, 3402: 3471, 3403: 3472, 3404: 3473, 3405: 3474, 3406: 3475, 3407: 3476, 3408: 3477, 3409: 3478, 3410: 3479, 3411: 3480, 3412: 3481, 3413: 3482, 3414: 3483, 3415: 3484, 3416: 3485, 3417: 3486, 3418: 3487, 3419: 3488, 3420: 3489, 3421: 3490, 3422: 3491, 3423: 3492, 3424: 3493, 3425: 3494, 3426: 3495, 3427: 3496, 3428: 3497, 3429: 3498, 3430: 3499, 3431: 3500, 3432: 3501, 3433: 3502, 3434: 3503, 3435: 3504, 3436: 3505, 3437: 3506, 3438: 3507, 3439: 3508, 3440: 3509, 3441: 3510, 3442: 3511, 3443: 3512, 3444: 3513, 3445: 3514, 3446: 3515, 3447: 3516, 3448: 3517, 3449: 3518, 3450: 3519, 3451: 3520, 3452: 3521, 3453: 3522, 3454: 3523, 3455: 3524, 3456: 3525, 3457: 3526, 3458: 3527, 3459: 3528, 3460: 3529, 3461: 3530, 3462: 3531, 3463: 3532, 3464: 3533, 3465: 3534, 3466: 3535, 3467: 3536, 3468: 3537, 3469: 3538, 3470: 3539, 3471: 3540, 3472: 3541, 3473: 3542, 3474: 3543, 3475: 3544, 3476: 3545, 3477: 3546, 3478: 3547, 3479: 3548, 3480: 3549, 3481: 3550, 3482: 3551, 3483: 3552, 3484: 3553, 3485: 3554, 3486: 3555, 3487: 3556, 3488: 3557, 3489: 3558, 3490: 3559, 3491: 3560, 3492: 3561, 3493: 3562, 3494: 3563, 3495: 3564, 3496: 3565, 3497: 3566, 3498: 3567, 3499: 3568, 3500: 3569, 3501: 3570, 3502: 3571, 3503: 3572, 3504: 3573, 3505: 3574, 3506: 3575, 3507: 3576, 3508: 3577, 3509: 3578, 3510: 3579, 3511: 3580, 3512: 3581, 3513: 3582, 3514: 3583, 3515: 3584, 3516: 3585, 3517: 3586, 3518: 3587, 3519: 3588, 3520: 3589, 3521: 3590, 3522: 3591, 3523: 3592, 3524: 3593, 3525: 3594, 3526: 3595, 3527: 3596, 3528: 3597, 3529: 3598, 3530: 3599, 3531: 3600, 3532: 3601, 3533: 3602, 3534: 3603, 3535: 3604, 3536: 3605, 3537: 3606, 3538: 3607, 3539: 3608, 3540: 3609, 3541: 3610, 3542: 3611, 3543: 3612, 3544: 3613, 3545: 3614, 3546: 3615, 3547: 3616, 3548: 3617, 3549: 3618, 3550: 3619, 3551: 3620, 3552: 3621, 3553: 3622, 3554: 3623, 3555: 3624, 3556: 3625, 3557: 3626, 3558: 3627, 3559: 3628, 3560: 3629, 3561: 3630, 3562: 3631, 3563: 3632, 3564: 3633, 3565: 3634, 3566: 3635, 3567: 3636, 3568: 3637, 3569: 3638, 3570: 3639, 3571: 3640, 3572: 3641, 3573: 3642, 3574: 3643, 3575: 3644, 3576: 3645, 3577: 3646, 3578: 3647, 3579: 3648, 3580: 3649, 3581: 3650, 3582: 3651, 3583: 3652, 3584: 3653, 3585: 3654, 3586: 3655, 3587: 3656, 3588: 3657, 3589: 3658, 3590: 3659, 3591: 3660, 3592: 3661, 3593: 3662, 3594: 3663, 3595: 3664, 3596: 3665, 3597: 3666, 3598: 3667, 3599: 3668, 3600: 3669, 3601: 3670, 3602: 3671, 3603: 3672, 3604: 3673, 3605: 3674, 3606: 3675, 3607: 3676, 3608: 3677, 3609: 3678, 3610: 3679, 3611: 3680, 3612: 3681, 3613: 3682, 3614: 3683, 3615: 3684, 3616: 3685, 3617: 3686, 3618: 3687, 3619: 3688, 3620: 3689, 3621: 3690, 3622: 3691, 3623: 3692, 3624: 3693, 3625: 3694, 3626: 3695, 3627: 3696, 3628: 3697, 3629: 3698, 3630: 3699, 3631: 3700, 3632: 3701, 3633: 3702, 3634: 3703, 3635: 3704, 3636: 3705, 3637: 3706, 3638: 3707, 3639: 3708, 3640: 3709, 3641: 3710, 3642: 3711, 3643: 3712, 3644: 3713, 3645: 3714, 3646: 3715, 3647: 3716, 3648: 3717, 3649: 3718, 3650: 3719, 3651: 3720, 3652: 3721, 3653: 3722, 3654: 3723, 3655: 3724, 3656: 3725, 3657: 3726, 3658: 3727, 3659: 3728, 3660: 3729, 3661: 3730, 3662: 3731, 3663: 3732, 3664: 3733, 3665: 3734, 3666: 3735, 3667: 3736, 3668: 3737, 3669: 3738, 3670: 3739, 3671: 3740, 3672: 3741, 3673: 3742, 3674: 3743, 3675: 3744, 3676: 3745, 3677: 3746, 3678: 3747, 3679: 3748, 3680: 3749, 3681: 3750, 3682: 3751, 3683: 3752, 3684: 3753, 3685: 3754, 3686: 3755, 3687: 3756, 3688: 3757, 3689: 3758, 3690: 3759, 3691: 3760, 3692: 3761, 3693: 3762, 3694: 3763, 3695: 3764, 3696: 3765, 3697: 3766, 3698: 3767, 3699: 3768, 3700: 3769, 3701: 3770, 3702: 3771, 3703: 3772, 3704: 3773, 3705: 3774, 3706: 3775, 3707: 3776, 3708: 3777, 3709: 3778, 3710: 3779, 3711: 3780, 3712: 3781, 3713: 3782, 3714: 3783, 3715: 3784, 3716: 3785, 3717: 3786, 3718: 3787, 3719: 3788, 3720: 3789, 3721: 3790, 3722: 3791, 3723: 3792, 3724: 3793, 3725: 3794, 3726: 3795, 3727: 3796, 3728: 3797, 3729: 3798, 3730: 3799, 3731: 3800, 3732: 3801, 3733: 3802, 3734: 3803, 3735: 3804, 3736: 3805, 3737: 3806, 3738: 3807, 3739: 3808, 3740: 3809, 3741: 3810, 3742: 3811, 3743: 3812, 3744: 3813, 3745: 3814, 3746: 3816, 3747: 3817, 3748: 3818, 3749: 3819, 3750: 3820, 3751: 3821, 3752: 3822, 3753: 3823, 3754: 3824, 3755: 3825, 3756: 3826, 3757: 3827, 3758: 3828, 3759: 3829, 3760: 3830, 3761: 3831, 3762: 3832, 3763: 3833, 3764: 3834, 3765: 3835, 3766: 3836, 3767: 3837, 3768: 3838, 3769: 3839, 3770: 3840, 3771: 3841, 3772: 3842, 3773: 3843, 3774: 3844, 3775: 3845, 3776: 3846, 3777: 3847, 3778: 3848, 3779: 3849, 3780: 3850, 3781: 3851, 3782: 3852, 3783: 3853, 3784: 3854, 3785: 3855, 3786: 3856, 3787: 3857, 3788: 3858, 3789: 3859, 3790: 3860, 3791: 3861, 3792: 3862, 3793: 3863, 3794: 3864, 3795: 3865, 3796: 3866, 3797: 3867, 3798: 3868, 3799: 3869, 3800: 3870, 3801: 3871, 3802: 3872, 3803: 3873, 3804: 3874, 3805: 3875, 3806: 3876, 3807: 3877, 3808: 3878, 3809: 3879, 3810: 3880, 3811: 3881, 3812: 3882, 3813: 3883, 3814: 3884, 3815: 3885, 3816: 3886, 3817: 3887, 3818: 3888, 3819: 3889, 3820: 3890, 3821: 3891, 3822: 3892, 3823: 3893, 3824: 3894, 3825: 3895, 3826: 3896, 3827: 3897, 3828: 3898, 3829: 3899, 3830: 3900, 3831: 3901, 3832: 3902, 3833: 3903, 3834: 3904, 3835: 3905, 3836: 3906, 3837: 3907, 3838: 3908, 3839: 3909, 3840: 3910, 3841: 3911, 3842: 3912, 3843: 3913, 3844: 3914, 3845: 3915, 3846: 3916, 3847: 3917, 3848: 3918, 3849: 3919, 3850: 3920, 3851: 3921, 3852: 3922, 3853: 3923, 3854: 3924, 3855: 3925, 3856: 3926, 3857: 3927, 3858: 3928, 3859: 3929, 3860: 3930, 3861: 3931, 3862: 3932, 3863: 3933, 3864: 3934, 3865: 3935, 3866: 3936, 3867: 3937, 3868: 3938, 3869: 3939, 3870: 3940, 3871: 3941, 3872: 3942, 3873: 3943, 3874: 3944, 3875: 3945, 3876: 3946, 3877: 3947, 3878: 3948, 3879: 3949, 3880: 3950, 3881: 3951, 3882: 3952}}\n" + ] + } + ], + "source": [ + "print(tokenizer.query_id_encoder.mapping, tokenizer.query_id_encoder.inverse_mapping)\n", + "print(tokenizer.item_id_encoder.mapping, tokenizer.item_id_encoder.inverse_mapping)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model\n", + "### Create SASRec model instance and run the training stage using lightning\n", + "After each epoch validation metrics are shown. You can change the list of validation metrics in ValidationMetricsCallback\n", + "The model is determined to be the best and is saved if the metric updates its maximum during validation (see the ModelCheckpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Trainer will use only 1 of 2 GPUs because it is running inside an interactive / notebook environment. You may try to set `Trainer(devices=2)` but please note that multi-GPU inside interactive / notebook environments is considered experimental and unstable. Your mileage may vary.\n", + "GPU available: True (cuda), used: True\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "You are using a CUDA device ('NVIDIA L40') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('medium' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision\n", + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:653: Checkpoint directory /root/RePlay-Accelerated/.checkpoints exists and is not empty.\n", + "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n", + "\n", + " | Name | Type | Params\n", + "--------------------------------------------\n", + "0 | _model | SasRecModel | 2.3 M \n", + "1 | _loss | CrossEntropyLoss | 0 \n", + "--------------------------------------------\n", + "2.3 M Trainable params\n", + "0 Non-trainable params\n", + "2.3 M Total params\n", + "9.247 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8643943c1caa43e1b8066806edf039d6", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | | 0/? [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idscore
0020128.138867
0016428.094225
003608.087744
0023257.976056
00477.485192
............
6039603912513.320609
6039603921743.301445
6039603931973.286182
6039603931413.280689
6039603928493.2665
\n", + "

604000 rows × 3 columns

\n", + "" + ], + "text/plain": [ + " user_id item_id score\n", + "0 0 2012 8.138867\n", + "0 0 1642 8.094225\n", + "0 0 360 8.087744\n", + "0 0 2325 7.976056\n", + "0 0 47 7.485192\n", + "... ... ... ...\n", + "6039 6039 1251 3.320609\n", + "6039 6039 2174 3.301445\n", + "6039 6039 3197 3.286182\n", + "6039 6039 3141 3.280689\n", + "6039 6039 2849 3.2665\n", + "\n", + "[604000 rows x 3 columns]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pandas_res" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(0) tensor([2012, 1642, 360, 2325, 47, 2020, 2016, 2009, 1020, 2014, 12, 1382,\n", + " 612, 2027, 3088, 2018, 1012, 1019, 3090, 2965, 547, 2068, 2021, 1990,\n", + " 2073, 2315, 2072, 700, 105, 1050, 582, 1346, 2011, 2918, 310, 1743,\n", + " 1977, 314, 3546, 1058, 974, 1010, 1850, 2023, 358, 1979, 259, 2631,\n", + " 667, 33, 2030, 2070, 2013, 1002, 2640, 3328, 2807, 592, 1964, 3144,\n", + " 2830, 2985, 3327, 3329, 1262, 1017, 1547, 476, 1, 2285, 1459, 1664,\n", + " 1018, 59, 2692, 1000, 1936, 1851, 3218, 3414, 1539, 826, 1011, 3106,\n", + " 999, 791, 2092, 1004, 2047, 236, 2731, 3676, 2677, 3682, 156, 2071,\n", + " 1008, 363, 1945, 2777]) tensor([8.1389, 8.0942, 8.0877, 7.9761, 7.4852, 7.3621, 7.1054, 7.0903, 7.0875,\n", + " 6.9929, 6.8924, 6.8650, 6.8604, 6.7333, 6.7214, 6.6113, 6.6022, 6.5607,\n", + " 6.4482, 6.4093, 6.3793, 6.3753, 6.2767, 6.2201, 6.2057, 6.1955, 6.1510,\n", + " 6.1112, 6.0373, 6.0356, 5.9954, 5.9927, 5.9892, 5.9694, 5.9151, 5.8761,\n", + " 5.8475, 5.8284, 5.7449, 5.7310, 5.7161, 5.6727, 5.6549, 5.6495, 5.6186,\n", + " 5.6085, 5.6031, 5.5880, 5.5866, 5.5690, 5.5257, 5.4499, 5.3953, 5.3695,\n", + " 5.3578, 5.3515, 5.3228, 5.3165, 5.3163, 5.3155, 5.2968, 5.2931, 5.2828,\n", + " 5.2674, 5.2641, 5.2480, 5.2354, 5.2027, 5.1985, 5.1930, 5.1861, 5.1736,\n", + " 5.1604, 5.1566, 5.1563, 5.1207, 5.0993, 5.0964, 5.0871, 5.0869, 5.0672,\n", + " 5.0649, 5.0559, 5.0418, 5.0282, 5.0174, 4.9985, 4.9898, 4.9881, 4.8736,\n", + " 4.8252, 4.7583, 4.7408, 4.7300, 4.6881, 4.6835, 4.6771, 4.6612, 4.6486,\n", + " 4.5319])\n" + ] + } + ], + "source": [ + "print(torch_user_ids[0], torch_item_ids[0], torch_scores[0])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we want to get the recomendations in PySpark format. \n", + "Let's get the inverse representation of labels using inverse_transform method.\n", + "\n", + "Note that the reverse representation can only be obtained for PySpark and Pandas formats. When working with PyTorch tensors, the reverse representation must be done manually" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "recommendations = tokenizer.query_and_item_id_encoder.inverse_transform(spark_res)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------------------+-------+-------+\n", + "| score|user_id|item_id|\n", + "+------------------+-------+-------+\n", + "| 8.138867378234863| 1| 2081|\n", + "| 8.09422492980957| 1| 1688|\n", + "| 8.087743759155273| 1| 364|\n", + "| 7.976056098937988| 1| 2394|\n", + "| 7.48519229888916| 1| 48|\n", + "| 7.362086296081543| 1| 2089|\n", + "| 7.105367660522461| 1| 2085|\n", + "| 7.090343475341797| 1| 2078|\n", + "| 7.08748197555542| 1| 1033|\n", + "| 6.992861747741699| 1| 2083|\n", + "| 6.892394542694092| 1| 13|\n", + "| 6.864995956420898| 1| 1405|\n", + "| 6.860413074493408| 1| 616|\n", + "| 6.73327112197876| 1| 2096|\n", + "| 6.721376419067383| 1| 3157|\n", + "| 6.611262321472168| 1| 2087|\n", + "| 6.602219581604004| 1| 1025|\n", + "|6.5607428550720215| 1| 1032|\n", + "| 6.448214530944824| 1| 3159|\n", + "| 6.409302711486816| 1| 3034|\n", + "+------------------+-------+-------+\n", + "only showing top 20 rows\n", + "\n" + ] + } + ], + "source": [ + "recommendations.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Calculating metrics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "init_args = {\"query_column\": \"user_id\", \"rating_column\": \"score\"}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + } + ], + "source": [ + "result_metrics = OfflineMetrics(\n", + " [Recall(TOPK), Precision(TOPK), MAP(TOPK), NDCG(TOPK), MRR(TOPK), HitRate(TOPK)], **init_args\n", + ")(recommendations.toPandas(), raw_test_gt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
k11020100
HitRate0.069040.2960260.4153970.680464
MAP0.069040.1264830.1346440.141227
MRR0.069040.1264830.1346440.141227
NDCG0.069040.1659980.1960250.244784
Precision0.069040.0296030.0207700.006805
Recall0.069040.2960260.4153970.680464
\n", + "
" + ], + "text/plain": [ + "k 1 10 20 100\n", + "HitRate 0.06904 0.296026 0.415397 0.680464\n", + "MAP 0.06904 0.126483 0.134644 0.141227\n", + "MRR 0.06904 0.126483 0.134644 0.141227\n", + "NDCG 0.06904 0.165998 0.196025 0.244784\n", + "Precision 0.06904 0.029603 0.020770 0.006805\n", + "Recall 0.06904 0.296026 0.415397 0.680464" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metrics_to_df(result_metrics)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### User embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Got 6040 x 300 user embeddings, because among all 12 batches: \n", + "\n", + "11 batches contains 512 samples\n", + "\n", + "1 batch contains 408 left samples\n", + "\n", + "11 * 512 + 408 == 6040" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 0.3704, 1.9303, 1.9161, ..., -0.1143, 1.5672, -0.9027],\n", + " [-1.8589, -2.6053, 0.1639, ..., -0.4250, -2.5378, -0.8178],\n", + " [-0.0877, 0.3147, 2.4707, ..., -0.7766, -0.8095, -1.2838],\n", + " ...,\n", + " [-0.5727, 0.1162, 1.5556, ..., -1.8936, 1.4968, -1.3920],\n", + " [-0.3458, -1.6828, -0.5697, ..., -1.6742, 3.2049, 0.6597],\n", + " [-1.2831, 0.7636, 1.0783, ..., -1.1996, -0.0189, 1.4718]],\n", + " device='cuda:0')" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_embeddings" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([6040, 300])" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_embeddings.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can access user embeddings directly with `SasRecModel` class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[-4.3240e-01, -1.0684e-01, -8.1389e-02, ..., 6.6867e-01,\n", + " 4.7710e-01, -1.7522e+00],\n", + " [ 7.8765e-02, 8.0354e-01, -9.5730e-01, ..., -1.9753e+00,\n", + " 1.4708e+00, -7.7084e-01],\n", + " [ 1.0037e+00, 6.5928e-01, -1.4148e+00, ..., 1.0593e+00,\n", + " -7.4484e-01, -2.7631e-01],\n", + " ...,\n", + " [-1.4800e+00, -1.9950e-01, -3.6084e-01, ..., 1.5323e+00,\n", + " 2.6428e-01, -8.7467e-01],\n", + " [ 1.1612e+00, -6.3325e-04, 4.0772e-01, ..., 2.5503e-01,\n", + " -3.4220e-01, 5.4465e-01],\n", + " [-6.3809e-01, 1.0407e+00, -2.1736e+00, ..., 8.7484e-01,\n", + " 1.4989e+00, -1.1730e+00]], device='cuda:0', grad_fn=)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "core_model = SasRecModel(\n", + " tensor_schema,\n", + " num_blocks=2,\n", + " num_heads=2,\n", + " max_len=MAX_SEQ_LEN,\n", + " hidden_size=300,\n", + " dropout=0.5\n", + ")\n", + "core_model.eval()\n", + "core_model = core_model.to(device)\n", + "\n", + "# Get first batch of data \n", + "data = next(iter(prediction_dataloader))\n", + "tensor_map, padding_mask = data.features, data.padding_mask\n", + "\n", + "# Ensure everything is on the same device\n", + "padding_mask = padding_mask.to(device)\n", + "tensor_map[\"item_id_seq\"] = tensor_map[\"item_id_seq\"].to(device)\n", + "\n", + "# Get user embeddings\n", + "user_embeddings_batch = core_model.get_query_embeddings(tensor_map, padding_mask)\n", + "user_embeddings_batch" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([512, 300])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_embeddings_batch.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Item embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`get_all_embeddings()` method in transformers can be used to get copies of all embeddings that are presented in model as a dict." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'item_embedding': tensor([[-0.0238, 0.0208, -0.0037, ..., 0.0340, 0.0224, -0.0369],\n", + " [-0.0103, 0.0099, 0.0112, ..., 0.0112, 0.0255, -0.0349],\n", + " [ 0.0090, -0.0228, -0.0544, ..., 0.0024, 0.0438, 0.0060],\n", + " ...,\n", + " [-0.0220, 0.0150, -0.0027, ..., 0.0562, 0.0170, -0.0025],\n", + " [ 0.0147, -0.0004, 0.0214, ..., -0.0098, -0.0017, 0.0299],\n", + " [-0.0095, 0.0142, -0.0030, ..., 0.0435, -0.0034, 0.0077]]),\n", + " 'positional_embedding': tensor([[ 0.1256, 0.0453, -0.0112, ..., -0.1254, 0.0047, -0.0691],\n", + " [-0.0208, -0.0014, 0.0146, ..., 0.0680, -0.0909, -0.0365],\n", + " [-0.0839, 0.0381, 0.0081, ..., -0.0139, -0.0645, -0.0350],\n", + " ...,\n", + " [ 0.0322, 0.0308, -0.0525, ..., 0.0426, 0.0454, 0.0101],\n", + " [-0.0335, -0.0006, 0.0082, ..., -0.0202, -0.0435, -0.0786],\n", + " [-0.0537, -0.0550, 0.1043, ..., 0.0992, 0.0194, 0.0321]])}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_embeddings = best_model.get_all_embeddings()\n", + "all_embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can access item embeddings from this dictionary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[-0.0238, 0.0208, -0.0037, ..., 0.0340, 0.0224, -0.0369],\n", + " [-0.0103, 0.0099, 0.0112, ..., 0.0112, 0.0255, -0.0349],\n", + " [ 0.0090, -0.0228, -0.0544, ..., 0.0024, 0.0438, 0.0060],\n", + " ...,\n", + " [-0.0220, 0.0150, -0.0027, ..., 0.0562, 0.0170, -0.0025],\n", + " [ 0.0147, -0.0004, 0.0214, ..., -0.0098, -0.0017, 0.0299],\n", + " [-0.0095, 0.0142, -0.0030, ..., 0.0435, -0.0034, 0.0077]])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item_embeddings = all_embeddings[\"item_embedding\"]\n", + "item_embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Item embeddings shape is (N_ITEMS, HIDDEN_SIZE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([3883, 300])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item_embeddings.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ensure we got correct dimension and ensure we got the copy of tensor" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "assert item_embeddings.shape[0] == len(tokenizer.item_id_encoder.mapping[\"item_id\"])\n", + "assert id(item_embeddings) != id(best_model._model.item_embedder.item_emb.weight.data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For example we observe one new item id in our training data. We can easily expand our item embedder by one element" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to expand item embeddings by new size `set_item_embeddings_by_size` method is applied" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "best_model.set_item_embeddings_by_size(item_embeddings.shape[0] + 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now our new item embeddings have one extra embedding" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_size = best_model.get_all_embeddings()[\"item_embedding\"].shape[0]\n", + "old_size = item_embeddings.shape[0]\n", + "\n", + "assert new_size == old_size + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can pass our item embeddings that replace the existing ones by calling `set_item_embeddings_by_tensor`.\n", + "\n", + "If tensor contains new items, they will be added to item embedder." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_embeddings_weights = torch.rand((new_size + 1, 300)) # randint used for example only\n", + "\n", + "best_model.set_item_embeddings_by_tensor(new_embeddings_weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At the moment we expanded our item embeddings by one more item and replace weights by passing `new_embeddings_weights`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "old_size = new_size\n", + "new_size = best_model.get_all_embeddings()[\"item_embedding\"].shape[0]\n", + "\n", + "assert new_size == old_size + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we can append tensor for only new items with no replace for existing by calling `append_item_embeddings`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_item_weights = torch.rand((1, 300)) # randint used for example only\n", + "\n", + "best_model.append_item_embeddings(new_item_weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We passed one new example and its weights to item embeddings, thus expanded our vocabulary by one item again" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "old_size = new_size\n", + "new_size = best_model.get_all_embeddings()[\"item_embedding\"].shape[0]\n", + "\n", + "assert new_size == old_size + 1" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example of launching an inference for a single user without using a trainer (in order to speed up)\n", + "An example for the production of an online script\n", + "\n", + "Let's assume that the user's sequence consisted of a sequence of items [1, 2, 3, 4, 5]. \n", + "Сreate a padding mask corresponding to the sequence of items.\n", + "\n", + "It is important to take only the latest MAX_SEQ_LEN or less items." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "item_sequence = torch.arange(1, 5).unsqueeze(0)[:, -MAX_SEQ_LEN:]\n", + "padding_mask = torch.ones_like(item_sequence, dtype=torch.bool)\n", + "sequence_item_count = item_sequence.shape[1]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Wrapping created tensors in the SasRecPredictionBatch entity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "batch = SasRecPredictionBatch(\n", + " query_id=torch.arange(0, item_sequence.shape[0], 1).long(),\n", + " padding_mask=padding_mask.bool(),\n", + " features={ITEM_FEATURE_NAME: item_sequence.long()}\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run predict step of the SasRec and get scores from the model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 2.7048, 2.2736, 2.1556, ..., -0.2144, -1.3674, 1.9593]])" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with torch.no_grad():\n", + " scores = best_model.predict_step(batch, 0)\n", + "scores" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Getting three items with the highest score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 4, 2013, 3032]])" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.topk(scores, k=3).indices" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "0857f111b041889635bea848a6a183706c3f1c18c9dafdb447caa5e8bea01452" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 7011c28ad650a2e9371b1f6a6d82bf5223ff72da Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Wed, 27 Nov 2024 20:32:10 +0000 Subject: [PATCH 12/27] update notebooks --- .../09_sasrec_example_like_pipeline.ipynb | 2527 +---------------- replay_benchmarks/benchmark_test.ipynb | 387 ++- 2 files changed, 428 insertions(+), 2486 deletions(-) diff --git a/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb index 97189977b..98bfe9254 100644 --- a/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb +++ b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb @@ -29,6 +29,19 @@ "execution_count": 2, "metadata": {}, "outputs": [], + "source": [ + "os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" \n", + "os.environ[\"OMP_NUM_THREADS\"] = \"4\"\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\"\n", + "os.environ[\"KAGGLE_USERNAME\"] = \"recsysaccelerate\"\n", + "os.environ[\"KAGGLE_KEY\"] = \"6363e91b656fea576c39e4f55dcc1d00\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], "source": [ "import lightning as L\n", "from lightning.pytorch.loggers import CSVLogger\n", @@ -79,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -106,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -116,11 +129,12 @@ "/usr/local/lib/python3.11/site-packages/pyspark/bin/load-spark-env.sh: line 68: ps: command not found\n", "Setting default log level to \"WARN\".\n", "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", - "24/11/27 20:06:54 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", - "24/11/27 20:06:54 WARN SparkConf: Note that spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone/kubernetes and LOCAL_DIRS in YARN).\n", - "24/11/27 20:06:54 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n", - "24/11/27 20:06:54 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.\n", - "24/11/27 20:06:54 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.\n" + "24/11/27 20:21:34 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", + "24/11/27 20:21:34 WARN SparkConf: Note that spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone/kubernetes and LOCAL_DIRS in YARN).\n", + "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n", + "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.\n", + "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.\n", + "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4043. Attempting port 4044.\n" ] } ], @@ -140,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -198,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -240,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -252,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -331,7 +345,7 @@ "4 1 2355 5 978824291" ] }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -342,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -427,7 +441,7 @@ "4 5 M 25 20 55455" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -438,7 +452,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -511,7 +525,7 @@ "4 5 Father of the Bride Part II (1995) Comedy" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -522,7 +536,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -547,7 +561,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -677,7 +691,7 @@ "[999611 rows x 4 columns]" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -699,7 +713,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -746,7 +760,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -790,7 +804,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -814,7 +828,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -844,7 +858,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -875,7 +889,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -904,7 +918,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -923,7 +937,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -942,7 +956,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -979,14 +993,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "Trainer will use only 1 of 2 GPUs because it is running inside an interactive / notebook environment. You may try to set `Trainer(devices=2)` but please note that multi-GPU inside interactive / notebook environments is considered experimental and unstable. Your mileage may vary.\n", "GPU available: True (cuda), used: True\n", "TPU available: False, using: 0 TPU cores\n", "IPU available: False, using: 0 IPUs\n", "HPU available: False, using: 0 HPUs\n", "You are using a CUDA device ('NVIDIA L40') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('medium' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision\n", "/usr/local/lib/python3.11/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:653: Checkpoint directory /root/RePlay-Accelerated/.checkpoints exists and is not empty.\n", - "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1]\n", + "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", "\n", " | Name | Type | Params\n", "--------------------------------------------\n", @@ -1002,7 +1015,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8643943c1caa43e1b8066806edf039d6", + "model_id": "092bc9756d2146b7aba52b2a8f5e3e5c", "version_major": 2, "version_minor": 0 }, @@ -1034,7 +1047,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d39655e52c9047c0b0010567a14e2c25", + "model_id": "83d98f0e2271493c89eec99dc81f3e94", "version_major": 2, "version_minor": 0 }, @@ -1048,7 +1061,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "0e6f03a8b7e34b5f94d6dec877cdcc10", + "model_id": "081201ffd9e645cc8c6f706f1436a9b5", "version_major": 2, "version_minor": 0 }, @@ -1080,7 +1093,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "916b875ef10a487995665b61f1115f1a", + "model_id": "bfb1d30747e1485ea2c0ef5a08f8f619", "version_major": 2, "version_minor": 0 }, @@ -1112,7 +1125,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "cc213a0bd734427bb0da8d080b4272ea", + "model_id": "f2f266b6e456471781567a5cf45297e3", "version_major": 2, "version_minor": 0 }, @@ -1144,7 +1157,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "0cddb57fae8d495f9ec614826730b563", + "model_id": "2bde52773eb243c3960a0154073e2899", "version_major": 2, "version_minor": 0 }, @@ -1176,7 +1189,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f4ebe96d306242c38b769336dcb23acc", + "model_id": "86fa26c9f7254503bf56e62cd6f1e400", "version_major": 2, "version_minor": 0 }, @@ -1208,7 +1221,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8f2012ca9c0d46b1b40b4ebfa2b444a5", + "model_id": "2124135bdc9e4ea8ac9433a8e6368f15", "version_major": 2, "version_minor": 0 }, @@ -1240,7 +1253,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f8ef5e3965f447ab838552c58143f008", + "model_id": "3d25e1f7f1464899856179b2266c307d", "version_major": 2, "version_minor": 0 }, @@ -1272,7 +1285,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ba40417382f7487185b1cecf5c7562a1", + "model_id": "8afa9ba10d5e4b0891d718d366f47e82", "version_major": 2, "version_minor": 0 }, @@ -1304,7 +1317,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "70f6804f55fe4874889299c583f34efc", + "model_id": "dc569519087d4f57b510bba4c40d02ae", "version_major": 2, "version_minor": 0 }, @@ -1332,2438 +1345,6 @@ "recall 0.003870 0.032830 0.056333 0.018847\n", "\n" ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "5f66cce5258d4c248723e3dbc324c120", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Validation: | | 0/? [00:00" + "" ] }, "execution_count": 5, @@ -759,18 +788,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/root/RePlay-Accelerated/replay/data/nn/sequence_tokenizer.py:396: UserWarning: The specified cardinality of item_id_seq will be replaced by item_id from Dataset\n", - " warnings.warn(\n" - ] - } - ], + "outputs": [], "source": [ "tokenizer = SequenceTokenizer(\n", " tensor_schema, allow_collect_to_master=True, handle_unknown_rule=\"drop\"\n", @@ -804,7 +824,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -862,6 +882,347 @@ ")\n" ] }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "model_config = {\n", + " \"tensor_schema\": tensor_schema,\n", + " \"optimizer_factory\": FatOptimizerFactory(\n", + " learning_rate=model_cfg[\"training_params\"][\"learning_rate\"]\n", + " ),\n", + "}\n", + "model_config.update(model_cfg[\"model_params\"])\n", + "\n", + "if model_name.lower() == \"sasrec\":\n", + " model = SasRec(**model_config)\n", + "elif model_name.lower() == \"bert4rec\":\n", + " model = Bert4Rec(**model_config)\n", + "else:\n", + " raise ValueError(f\"Unsupported model type: {model_name}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2, 2, 300, 200, 0.5)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model._model.num_blocks, model._model.num_heads, model._model.hidden_size, model._model.max_len, model._model.dropout," + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (cuda), used: True\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/trainer/connectors/logger_connector/logger_connector.py:75: Starting from v1.9.0, `tensorboardX` has been removed as a dependency of the `lightning.pytorch` package, due to potential conflicts with other packages in the ML ecosystem. For this reason, `logger=True` will use `CSVLogger` as the default logger, unless the `tensorboard` or `tensorboardX` packages are found. Please `pip install lightning[extra]` or one of them to enable TensorBoard support by default\n", + "You are using a CUDA device ('NVIDIA L40') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('medium' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision\n", + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:653: Checkpoint directory /root/RePlay-Accelerated/replay_benchmarks/artifacts/checkpoints exists and is not empty.\n", + "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", + "\n", + " | Name | Type | Params\n", + "--------------------------------------------\n", + "0 | _model | SasRecModel | 2.1 M \n", + "1 | _loss | CrossEntropyLoss | 0 \n", + "--------------------------------------------\n", + "2.1 M Trainable params\n", + "0 Non-trainable params\n", + "2.1 M Total params\n", + "8.333 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9a1abdbf900c4a1ea07bad82328ede65", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | | 0/? [00:00 Date: Thu, 28 Nov 2024 07:42:46 +0000 Subject: [PATCH 13/27] update test notebooks --- .../09_sasrec_example_like_pipeline.ipynb | 681 +++++++----------- replay_benchmarks/benchmark_test.ipynb | 427 ++++++----- 2 files changed, 516 insertions(+), 592 deletions(-) diff --git a/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb index 98bfe9254..794e21e15 100644 --- a/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb +++ b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb @@ -129,12 +129,19 @@ "/usr/local/lib/python3.11/site-packages/pyspark/bin/load-spark-env.sh: line 68: ps: command not found\n", "Setting default log level to \"WARN\".\n", "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", - "24/11/27 20:21:34 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", - "24/11/27 20:21:34 WARN SparkConf: Note that spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone/kubernetes and LOCAL_DIRS in YARN).\n", - "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n", - "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.\n", - "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.\n", - "24/11/27 20:21:35 WARN Utils: Service 'SparkUI' could not bind on port 4043. Attempting port 4044.\n" + "24/11/28 07:39:42 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", + "24/11/28 07:39:42 WARN SparkConf: Note that spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone/kubernetes and LOCAL_DIRS in YARN).\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4043. Attempting port 4044.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4044. Attempting port 4045.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4045. Attempting port 4046.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4046. Attempting port 4047.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4047. Attempting port 4048.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4048. Attempting port 4049.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4049. Attempting port 4050.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4050. Attempting port 4051.\n" ] } ], @@ -538,6 +545,120 @@ "cell_type": "code", "execution_count": 12, "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
count1.000209e+061.000209e+061.000209e+061.000209e+06
mean3.024512e+031.865540e+033.581564e+009.722437e+08
std1.728413e+031.096041e+031.117102e+001.215256e+07
min1.000000e+001.000000e+001.000000e+009.567039e+08
25%1.506000e+031.030000e+033.000000e+009.653026e+08
50%3.070000e+031.835000e+034.000000e+009.730180e+08
75%4.476000e+032.770000e+034.000000e+009.752209e+08
max6.040000e+033.952000e+035.000000e+001.046455e+09
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "count 1.000209e+06 1.000209e+06 1.000209e+06 1.000209e+06\n", + "mean 3.024512e+03 1.865540e+03 3.581564e+00 9.722437e+08\n", + "std 1.728413e+03 1.096041e+03 1.117102e+00 1.215256e+07\n", + "min 1.000000e+00 1.000000e+00 1.000000e+00 9.567039e+08\n", + "25% 1.506000e+03 1.030000e+03 3.000000e+00 9.653026e+08\n", + "50% 3.070000e+03 1.835000e+03 4.000000e+00 9.730180e+08\n", + "75% 4.476000e+03 2.770000e+03 4.000000e+00 9.752209e+08\n", + "max 6.040000e+03 3.952000e+03 5.000000e+00 1.046455e+09" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, "outputs": [], "source": [ "interactions = MinCountFilter(\n", @@ -551,17 +672,9 @@ ").transform(interactions)" ] }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Removing duplicates in the timestamp column without changing the original items order where timestamp is the same" - ] - }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -593,114 +706,104 @@ " \n", " \n", " \n", - " 1000138\n", - " 6040\n", - " 858\n", - " 4\n", - " 0\n", - " \n", - " \n", - " 999873\n", - " 6040\n", - " 593\n", - " 5\n", - " 1\n", + " count\n", + " 999611.000000\n", + " 999611.000000\n", + " 999611.000000\n", + " 9.996110e+05\n", " \n", " \n", - " 1000153\n", - " 6040\n", - " 2384\n", - " 4\n", - " 2\n", + " mean\n", + " 3024.576537\n", + " 1865.439428\n", + " 3.581974\n", + " 9.722409e+08\n", " \n", " \n", - " 1000192\n", - " 6040\n", - " 2019\n", - " 5\n", - " 3\n", + " std\n", + " 1728.436705\n", + " 1095.976336\n", + " 1.116894\n", + " 1.214827e+07\n", " \n", " \n", - " 1000007\n", - " 6040\n", - " 1961\n", - " 4\n", - " 4\n", + " min\n", + " 1.000000\n", + " 1.000000\n", + " 1.000000\n", + " 9.567039e+08\n", " \n", " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 825793\n", - " 4958\n", - " 2399\n", - " 1\n", - " 446\n", - " \n", - " \n", - " 825438\n", - " 4958\n", - " 1407\n", - " 5\n", - " 447\n", + " 25%\n", + " 1506.000000\n", + " 1030.000000\n", + " 3.000000\n", + " 9.653025e+08\n", " \n", " \n", - " 825724\n", - " 4958\n", - " 3264\n", - " 4\n", - " 448\n", + " 50%\n", + " 3070.000000\n", + " 1835.000000\n", + " 4.000000\n", + " 9.730170e+08\n", " \n", " \n", - " 825731\n", - " 4958\n", - " 2634\n", - " 3\n", - " 449\n", + " 75%\n", + " 4477.000000\n", + " 2770.000000\n", + " 4.000000\n", + " 9.752208e+08\n", " \n", " \n", - " 825603\n", - " 4958\n", - " 1924\n", - " 4\n", - " 450\n", + " max\n", + " 6040.000000\n", + " 3952.000000\n", + " 5.000000\n", + " 1.046455e+09\n", " \n", " \n", "\n", - "

999611 rows × 4 columns

\n", "" ], "text/plain": [ - " user_id item_id rating timestamp\n", - "1000138 6040 858 4 0\n", - "999873 6040 593 5 1\n", - "1000153 6040 2384 4 2\n", - "1000192 6040 2019 5 3\n", - "1000007 6040 1961 4 4\n", - "... ... ... ... ...\n", - "825793 4958 2399 1 446\n", - "825438 4958 1407 5 447\n", - "825724 4958 3264 4 448\n", - "825731 4958 2634 3 449\n", - "825603 4958 1924 4 450\n", - "\n", - "[999611 rows x 4 columns]" + " user_id item_id rating timestamp\n", + "count 999611.000000 999611.000000 999611.000000 9.996110e+05\n", + "mean 3024.576537 1865.439428 3.581974 9.722409e+08\n", + "std 1728.436705 1095.976336 1.116894 1.214827e+07\n", + "min 1.000000 1.000000 1.000000 9.567039e+08\n", + "25% 1506.000000 1030.000000 3.000000 9.653025e+08\n", + "50% 3070.000000 1835.000000 4.000000 9.730170e+08\n", + "75% 4477.000000 2770.000000 4.000000 9.752208e+08\n", + "max 6040.000000 3952.000000 5.000000 1.046455e+09" ] }, - "execution_count": 13, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "interactions[\"timestamp\"] = interactions[\"timestamp\"].astype(\"int64\")\n", - "interactions = interactions.sort_values(by=\"timestamp\")\n", - "interactions[\"timestamp\"] = interactions.groupby(\"user_id\").cumcount()\n", - "interactions" + "interactions.describe()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Removing duplicates in the timestamp column without changing the original items order where timestamp is the same" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# interactions[\"timestamp\"] = interactions[\"timestamp\"].astype(\"int64\")\n", + "# interactions = interactions.sort_values(by=\"timestamp\")\n", + "# interactions[\"timestamp\"] = interactions.groupby(\"user_id\").cumcount()\n", + "# interactions" ] }, { @@ -713,7 +816,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -750,6 +853,25 @@ "raw_test_gt = raw_test_gt[raw_test_gt['user_id'].isin(raw_train_events['user_id'])]" ] }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def test_splitting(events, gt, name=''):\n", + " if events['timestamp'].max() > gt['timestamp'].min():\n", + " print(\"Problem with time points in\", name)\n", + " if len(set(gt['user_id'].unique().tolist()) - set(events['user_id'].unique().tolist())) > 0:\n", + " print(\"Problem with cold users in\", name)\n", + " if len(set(gt['item_id'].unique().tolist()) - set(events['item_id'].unique().tolist())) > 0:\n", + " print(\"Problem with cold items in\", name)\n", + "\n", + "\n", + "test_splitting(raw_train_events, raw_test_gt, \"train events, test gt\")\n", + "test_splitting(raw_train_events, raw_validation_gt, \"train events, valid gt\")" + ] + }, { "attachments": {}, "cell_type": "markdown", @@ -760,7 +882,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -804,7 +926,17 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "user_features = None\n", + "item_features = None" + ] + }, + { + "cell_type": "code", + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -828,7 +960,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -858,7 +990,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -889,7 +1021,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -918,11 +1050,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ - "tokenizer = SequenceTokenizer(tensor_schema, allow_collect_to_master=True)\n", + "tokenizer = SequenceTokenizer(tensor_schema, allow_collect_to_master=True, handle_unknown_rule=\"drop\")\n", "tokenizer.fit(train_dataset)\n", "\n", "sequential_train_dataset = tokenizer.transform(train_dataset)\n", @@ -937,7 +1069,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -956,21 +1088,44 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'user_id': {1: 0, 2: 1, 3: 2, 4: 3, 5: 4, 6: 5, 7: 6, 8: 7, 9: 8, 10: 9, 11: 10, 12: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16, 18: 17, 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24, 26: 25, 27: 26, 28: 27, 29: 28, 30: 29, 31: 30, 32: 31, 33: 32, 34: 33, 35: 34, 36: 35, 37: 36, 38: 37, 39: 38, 40: 39, 41: 40, 42: 41, 43: 42, 44: 43, 45: 44, 46: 45, 47: 46, 48: 47, 49: 48, 50: 49, 51: 50, 52: 51, 53: 52, 54: 53, 55: 54, 56: 55, 57: 56, 58: 57, 59: 58, 60: 59, 61: 60, 62: 61, 63: 62, 64: 63, 65: 64, 66: 65, 67: 66, 68: 67, 69: 68, 70: 69, 71: 70, 72: 71, 73: 72, 74: 73, 75: 74, 76: 75, 77: 76, 78: 77, 79: 78, 80: 79, 81: 80, 82: 81, 83: 82, 84: 83, 85: 84, 86: 85, 87: 86, 88: 87, 89: 88, 90: 89, 91: 90, 92: 91, 93: 92, 94: 93, 95: 94, 96: 95, 97: 96, 98: 97, 99: 98, 100: 99, 101: 100, 102: 101, 103: 102, 104: 103, 105: 104, 106: 105, 107: 106, 108: 107, 109: 108, 110: 109, 111: 110, 112: 111, 113: 112, 114: 113, 115: 114, 116: 115, 117: 116, 118: 117, 119: 118, 120: 119, 121: 120, 122: 121, 123: 122, 124: 123, 125: 124, 126: 125, 127: 126, 128: 127, 129: 128, 130: 129, 131: 130, 132: 131, 133: 132, 134: 133, 135: 134, 136: 135, 137: 136, 138: 137, 139: 138, 140: 139, 141: 140, 142: 141, 143: 142, 144: 143, 145: 144, 146: 145, 147: 146, 148: 147, 149: 148, 150: 149, 151: 150, 152: 151, 153: 152, 154: 153, 155: 154, 156: 155, 157: 156, 158: 157, 159: 158, 160: 159, 161: 160, 162: 161, 163: 162, 164: 163, 165: 164, 166: 165, 167: 166, 168: 167, 169: 168, 170: 169, 171: 170, 172: 171, 173: 172, 174: 173, 175: 174, 176: 175, 177: 176, 178: 177, 179: 178, 180: 179, 181: 180, 182: 181, 183: 182, 184: 183, 185: 184, 186: 185, 187: 186, 188: 187, 189: 188, 190: 189, 191: 190, 192: 191, 193: 192, 194: 193, 195: 194, 196: 195, 197: 196, 198: 197, 199: 198, 200: 199, 201: 200, 202: 201, 203: 202, 204: 203, 205: 204, 206: 205, 207: 206, 208: 207, 209: 208, 210: 209, 211: 210, 212: 211, 213: 212, 214: 213, 215: 214, 216: 215, 217: 216, 218: 217, 219: 218, 220: 219, 221: 220, 222: 221, 223: 222, 224: 223, 225: 224, 226: 225, 227: 226, 228: 227, 229: 228, 230: 229, 231: 230, 232: 231, 233: 232, 234: 233, 235: 234, 236: 235, 237: 236, 238: 237, 239: 238, 240: 239, 241: 240, 242: 241, 243: 242, 244: 243, 245: 244, 246: 245, 247: 246, 248: 247, 249: 248, 250: 249, 251: 250, 252: 251, 253: 252, 254: 253, 255: 254, 256: 255, 257: 256, 258: 257, 259: 258, 260: 259, 261: 260, 262: 261, 263: 262, 264: 263, 265: 264, 266: 265, 267: 266, 268: 267, 269: 268, 270: 269, 271: 270, 272: 271, 273: 272, 274: 273, 275: 274, 276: 275, 277: 276, 278: 277, 279: 278, 280: 279, 281: 280, 282: 281, 283: 282, 284: 283, 285: 284, 286: 285, 287: 286, 288: 287, 289: 288, 290: 289, 291: 290, 292: 291, 293: 292, 294: 293, 295: 294, 296: 295, 297: 296, 298: 297, 299: 298, 300: 299, 301: 300, 302: 301, 303: 302, 304: 303, 305: 304, 306: 305, 307: 306, 308: 307, 309: 308, 310: 309, 311: 310, 312: 311, 313: 312, 314: 313, 315: 314, 316: 315, 317: 316, 318: 317, 319: 318, 320: 319, 321: 320, 322: 321, 323: 322, 324: 323, 325: 324, 326: 325, 327: 326, 328: 327, 329: 328, 330: 329, 331: 330, 332: 331, 333: 332, 334: 333, 335: 334, 336: 335, 337: 336, 338: 337, 339: 338, 340: 339, 341: 340, 342: 341, 343: 342, 344: 343, 345: 344, 346: 345, 347: 346, 348: 347, 349: 348, 350: 349, 351: 350, 352: 351, 353: 352, 354: 353, 355: 354, 356: 355, 357: 356, 358: 357, 359: 358, 360: 359, 361: 360, 362: 361, 363: 362, 364: 363, 365: 364, 366: 365, 367: 366, 368: 367, 369: 368, 370: 369, 371: 370, 372: 371, 373: 372, 374: 373, 375: 374, 376: 375, 377: 376, 378: 377, 379: 378, 380: 379, 381: 380, 382: 381, 383: 382, 384: 383, 385: 384, 386: 385, 387: 386, 388: 387, 389: 388, 390: 389, 391: 390, 392: 391, 393: 392, 394: 393, 395: 394, 396: 395, 397: 396, 398: 397, 399: 398, 400: 399, 401: 400, 402: 401, 403: 402, 404: 403, 405: 404, 406: 405, 407: 406, 408: 407, 409: 408, 410: 409, 411: 410, 412: 411, 413: 412, 414: 413, 415: 414, 416: 415, 417: 416, 418: 417, 419: 418, 420: 419, 421: 420, 422: 421, 423: 422, 424: 423, 425: 424, 426: 425, 427: 426, 428: 427, 429: 428, 430: 429, 431: 430, 432: 431, 433: 432, 434: 433, 435: 434, 436: 435, 437: 436, 438: 437, 439: 438, 440: 439, 441: 440, 442: 441, 443: 442, 444: 443, 445: 444, 446: 445, 447: 446, 448: 447, 449: 448, 450: 449, 451: 450, 452: 451, 453: 452, 454: 453, 455: 454, 456: 455, 457: 456, 458: 457, 459: 458, 460: 459, 461: 460, 462: 461, 463: 462, 464: 463, 465: 464, 466: 465, 467: 466, 468: 467, 469: 468, 470: 469, 471: 470, 472: 471, 473: 472, 474: 473, 475: 474, 476: 475, 477: 476, 478: 477, 479: 478, 480: 479, 481: 480, 482: 481, 483: 482, 484: 483, 485: 484, 486: 485, 487: 486, 488: 487, 489: 488, 490: 489, 491: 490, 492: 491, 493: 492, 494: 493, 495: 494, 496: 495, 497: 496, 498: 497, 499: 498, 500: 499, 501: 500, 502: 501, 503: 502, 504: 503, 505: 504, 506: 505, 507: 506, 508: 507, 509: 508, 510: 509, 511: 510, 512: 511, 513: 512, 514: 513, 515: 514, 516: 515, 517: 516, 518: 517, 519: 518, 520: 519, 521: 520, 522: 521, 523: 522, 524: 523, 525: 524, 526: 525, 527: 526, 528: 527, 529: 528, 530: 529, 531: 530, 532: 531, 533: 532, 534: 533, 535: 534, 536: 535, 537: 536, 538: 537, 539: 538, 540: 539, 541: 540, 542: 541, 543: 542, 544: 543, 545: 544, 546: 545, 547: 546, 548: 547, 549: 548, 550: 549, 551: 550, 552: 551, 553: 552, 554: 553, 555: 554, 556: 555, 557: 556, 558: 557, 559: 558, 560: 559, 561: 560, 562: 561, 563: 562, 564: 563, 565: 564, 566: 565, 567: 566, 568: 567, 569: 568, 570: 569, 571: 570, 572: 571, 573: 572, 574: 573, 575: 574, 576: 575, 577: 576, 578: 577, 579: 578, 580: 579, 581: 580, 582: 581, 583: 582, 584: 583, 585: 584, 586: 585, 587: 586, 588: 587, 589: 588, 590: 589, 591: 590, 592: 591, 593: 592, 594: 593, 595: 594, 596: 595, 597: 596, 598: 597, 599: 598, 600: 599, 601: 600, 602: 601, 603: 602, 604: 603, 605: 604, 606: 605, 607: 606, 608: 607, 609: 608, 610: 609, 611: 610, 612: 611, 613: 612, 614: 613, 615: 614, 616: 615, 617: 616, 618: 617, 619: 618, 620: 619, 621: 620, 622: 621, 623: 622, 624: 623, 625: 624, 626: 625, 627: 626, 628: 627, 629: 628, 630: 629, 631: 630, 632: 631, 633: 632, 634: 633, 635: 634, 636: 635, 637: 636, 638: 637, 639: 638, 640: 639, 641: 640, 642: 641, 643: 642, 644: 643, 645: 644, 646: 645, 647: 646, 648: 647, 649: 648, 650: 649, 651: 650, 652: 651, 653: 652, 654: 653, 655: 654, 656: 655, 657: 656, 658: 657, 659: 658, 660: 659, 661: 660, 662: 661, 663: 662, 664: 663, 665: 664, 666: 665, 667: 666, 668: 667, 669: 668, 670: 669, 671: 670, 672: 671, 673: 672, 674: 673, 675: 674, 676: 675, 677: 676, 678: 677, 679: 678, 680: 679, 681: 680, 682: 681, 683: 682, 684: 683, 685: 684, 686: 685, 687: 686, 688: 687, 689: 688, 690: 689, 691: 690, 692: 691, 693: 692, 694: 693, 695: 694, 696: 695, 697: 696, 698: 697, 699: 698, 700: 699, 701: 700, 702: 701, 703: 702, 704: 703, 705: 704, 706: 705, 707: 706, 708: 707, 709: 708, 710: 709, 711: 710, 712: 711, 713: 712, 714: 713, 715: 714, 716: 715, 717: 716, 718: 717, 719: 718, 720: 719, 721: 720, 722: 721, 723: 722, 724: 723, 725: 724, 726: 725, 727: 726, 728: 727, 729: 728, 730: 729, 731: 730, 732: 731, 733: 732, 734: 733, 735: 734, 736: 735, 737: 736, 738: 737, 739: 738, 740: 739, 741: 740, 742: 741, 743: 742, 744: 743, 745: 744, 746: 745, 747: 746, 748: 747, 749: 748, 750: 749, 751: 750, 752: 751, 753: 752, 754: 753, 755: 754, 756: 755, 757: 756, 758: 757, 759: 758, 760: 759, 761: 760, 762: 761, 763: 762, 764: 763, 765: 764, 766: 765, 767: 766, 768: 767, 769: 768, 770: 769, 771: 770, 772: 771, 773: 772, 774: 773, 775: 774, 776: 775, 777: 776, 778: 777, 779: 778, 780: 779, 781: 780, 782: 781, 783: 782, 784: 783, 785: 784, 786: 785, 787: 786, 788: 787, 789: 788, 790: 789, 791: 790, 792: 791, 793: 792, 794: 793, 795: 794, 796: 795, 797: 796, 798: 797, 799: 798, 800: 799, 801: 800, 802: 801, 803: 802, 804: 803, 805: 804, 806: 805, 807: 806, 808: 807, 809: 808, 810: 809, 811: 810, 812: 811, 813: 812, 814: 813, 815: 814, 816: 815, 817: 816, 818: 817, 819: 818, 820: 819, 821: 820, 822: 821, 823: 822, 824: 823, 825: 824, 826: 825, 827: 826, 828: 827, 829: 828, 830: 829, 831: 830, 832: 831, 833: 832, 834: 833, 835: 834, 836: 835, 837: 836, 838: 837, 839: 838, 840: 839, 841: 840, 842: 841, 843: 842, 844: 843, 845: 844, 846: 845, 847: 846, 848: 847, 849: 848, 850: 849, 851: 850, 852: 851, 853: 852, 854: 853, 855: 854, 856: 855, 857: 856, 858: 857, 859: 858, 860: 859, 861: 860, 862: 861, 863: 862, 864: 863, 865: 864, 866: 865, 867: 866, 868: 867, 869: 868, 870: 869, 871: 870, 872: 871, 873: 872, 874: 873, 875: 874, 876: 875, 877: 876, 878: 877, 879: 878, 880: 879, 881: 880, 882: 881, 883: 882, 884: 883, 885: 884, 886: 885, 887: 886, 888: 887, 889: 888, 890: 889, 891: 890, 892: 891, 893: 892, 894: 893, 895: 894, 896: 895, 897: 896, 898: 897, 899: 898, 900: 899, 901: 900, 902: 901, 903: 902, 904: 903, 905: 904, 906: 905, 907: 906, 908: 907, 909: 908, 910: 909, 911: 910, 912: 911, 913: 912, 914: 913, 915: 914, 916: 915, 917: 916, 918: 917, 919: 918, 920: 919, 921: 920, 922: 921, 923: 922, 924: 923, 925: 924, 926: 925, 927: 926, 928: 927, 929: 928, 930: 929, 931: 930, 932: 931, 933: 932, 934: 933, 935: 934, 936: 935, 937: 936, 938: 937, 939: 938, 940: 939, 941: 940, 942: 941, 943: 942, 944: 943, 945: 944, 946: 945, 947: 946, 948: 947, 949: 948, 950: 949, 951: 950, 952: 951, 953: 952, 954: 953, 955: 954, 956: 955, 957: 956, 958: 957, 959: 958, 960: 959, 961: 960, 962: 961, 963: 962, 964: 963, 965: 964, 966: 965, 967: 966, 968: 967, 969: 968, 970: 969, 971: 970, 972: 971, 973: 972, 974: 973, 975: 974, 976: 975, 977: 976, 978: 977, 979: 978, 980: 979, 981: 980, 982: 981, 983: 982, 984: 983, 985: 984, 986: 985, 987: 986, 988: 987, 989: 988, 990: 989, 991: 990, 992: 991, 993: 992, 994: 993, 995: 994, 996: 995, 997: 996, 998: 997, 999: 998, 1000: 999, 1001: 1000, 1002: 1001, 1003: 1002, 1004: 1003, 1005: 1004, 1006: 1005, 1007: 1006, 1008: 1007, 1009: 1008, 1010: 1009, 1011: 1010, 1012: 1011, 1013: 1012, 1014: 1013, 1015: 1014, 1016: 1015, 1017: 1016, 1018: 1017, 1019: 1018, 1020: 1019, 1021: 1020, 1022: 1021, 1023: 1022, 1024: 1023, 1025: 1024, 1026: 1025, 1027: 1026, 1028: 1027, 1029: 1028, 1030: 1029, 1031: 1030, 1032: 1031, 1033: 1032, 1034: 1033, 1035: 1034, 1036: 1035, 1037: 1036, 1038: 1037, 1039: 1038, 1040: 1039, 1041: 1040, 1042: 1041, 1043: 1042, 1044: 1043, 1045: 1044, 1046: 1045, 1047: 1046, 1048: 1047, 1049: 1048, 1050: 1049, 1051: 1050, 1052: 1051, 1053: 1052, 1054: 1053, 1055: 1054, 1056: 1055, 1057: 1056, 1058: 1057, 1059: 1058, 1060: 1059, 1061: 1060, 1062: 1061, 1063: 1062, 1064: 1063, 1065: 1064, 1066: 1065, 1067: 1066, 1068: 1067, 1069: 1068, 1070: 1069, 1071: 1070, 1072: 1071, 1073: 1072, 1074: 1073, 1075: 1074, 1076: 1075, 1077: 1076, 1078: 1077, 1079: 1078, 1080: 1079, 1081: 1080, 1082: 1081, 1083: 1082, 1084: 1083, 1085: 1084, 1086: 1085, 1087: 1086, 1088: 1087, 1089: 1088, 1090: 1089, 1091: 1090, 1092: 1091, 1093: 1092, 1094: 1093, 1095: 1094, 1096: 1095, 1097: 1096, 1098: 1097, 1099: 1098, 1100: 1099, 1101: 1100, 1102: 1101, 1103: 1102, 1104: 1103, 1105: 1104, 1106: 1105, 1107: 1106, 1108: 1107, 1109: 1108, 1110: 1109, 1111: 1110, 1112: 1111, 1113: 1112, 1114: 1113, 1115: 1114, 1116: 1115, 1117: 1116, 1118: 1117, 1119: 1118, 1120: 1119, 1121: 1120, 1122: 1121, 1123: 1122, 1124: 1123, 1125: 1124, 1126: 1125, 1127: 1126, 1128: 1127, 1129: 1128, 1130: 1129, 1131: 1130, 1132: 1131, 1133: 1132, 1134: 1133, 1135: 1134, 1136: 1135, 1137: 1136, 1138: 1137, 1139: 1138, 1140: 1139, 1141: 1140, 1142: 1141, 1143: 1142, 1144: 1143, 1145: 1144, 1146: 1145, 1147: 1146, 1148: 1147, 1149: 1148, 1150: 1149, 1151: 1150, 1152: 1151, 1153: 1152, 1154: 1153, 1155: 1154, 1156: 1155, 1157: 1156, 1158: 1157, 1159: 1158, 1160: 1159, 1161: 1160, 1162: 1161, 1163: 1162, 1164: 1163, 1165: 1164, 1166: 1165, 1167: 1166, 1168: 1167, 1169: 1168, 1170: 1169, 1171: 1170, 1172: 1171, 1173: 1172, 1174: 1173, 1175: 1174, 1176: 1175, 1177: 1176, 1178: 1177, 1179: 1178, 1180: 1179, 1181: 1180, 1182: 1181, 1183: 1182, 1184: 1183, 1185: 1184, 1186: 1185, 1187: 1186, 1188: 1187, 1189: 1188, 1190: 1189, 1191: 1190, 1192: 1191, 1193: 1192, 1194: 1193, 1195: 1194, 1196: 1195, 1197: 1196, 1198: 1197, 1199: 1198, 1200: 1199, 1201: 1200, 1202: 1201, 1203: 1202, 1204: 1203, 1205: 1204, 1206: 1205, 1207: 1206, 1208: 1207, 1209: 1208, 1210: 1209, 1211: 1210, 1212: 1211, 1213: 1212, 1214: 1213, 1215: 1214, 1216: 1215, 1217: 1216, 1218: 1217, 1219: 1218, 1220: 1219, 1221: 1220, 1222: 1221, 1223: 1222, 1224: 1223, 1225: 1224, 1226: 1225, 1227: 1226, 1228: 1227, 1229: 1228, 1230: 1229, 1231: 1230, 1232: 1231, 1233: 1232, 1234: 1233, 1235: 1234, 1236: 1235, 1237: 1236, 1238: 1237, 1239: 1238, 1240: 1239, 1241: 1240, 1242: 1241, 1243: 1242, 1244: 1243, 1245: 1244, 1246: 1245, 1247: 1246, 1248: 1247, 1249: 1248, 1250: 1249, 1251: 1250, 1252: 1251, 1253: 1252, 1254: 1253, 1255: 1254, 1256: 1255, 1257: 1256, 1258: 1257, 1259: 1258, 1260: 1259, 1261: 1260, 1262: 1261, 1263: 1262, 1264: 1263, 1265: 1264, 1266: 1265, 1267: 1266, 1268: 1267, 1269: 1268, 1270: 1269, 1271: 1270, 1272: 1271, 1273: 1272, 1274: 1273, 1275: 1274, 1276: 1275, 1277: 1276, 1278: 1277, 1279: 1278, 1280: 1279, 1281: 1280, 1282: 1281, 1283: 1282, 1284: 1283, 1285: 1284, 1286: 1285, 1287: 1286, 1288: 1287, 1289: 1288, 1290: 1289, 1291: 1290, 1292: 1291, 1293: 1292, 1294: 1293, 1295: 1294, 1296: 1295, 1297: 1296, 1298: 1297, 1299: 1298, 1300: 1299, 1301: 1300, 1302: 1301, 1303: 1302, 1304: 1303, 1305: 1304, 1306: 1305, 1307: 1306, 1308: 1307, 1309: 1308, 1310: 1309, 1311: 1310, 1312: 1311, 1313: 1312, 1314: 1313, 1315: 1314, 1316: 1315, 1317: 1316, 1318: 1317, 1319: 1318, 1320: 1319, 1321: 1320, 1322: 1321, 1323: 1322, 1324: 1323, 1325: 1324, 1326: 1325, 1327: 1326, 1328: 1327, 1329: 1328, 1330: 1329, 1331: 1330, 1332: 1331, 1333: 1332, 1334: 1333, 1335: 1334, 1336: 1335, 1337: 1336, 1338: 1337, 1339: 1338, 1340: 1339, 1341: 1340, 1342: 1341, 1343: 1342, 1344: 1343, 1345: 1344, 1346: 1345, 1347: 1346, 1348: 1347, 1349: 1348, 1350: 1349, 1351: 1350, 1352: 1351, 1353: 1352, 1354: 1353, 1355: 1354, 1356: 1355, 1357: 1356, 1358: 1357, 1359: 1358, 1360: 1359, 1361: 1360, 1362: 1361, 1363: 1362, 1364: 1363, 1365: 1364, 1366: 1365, 1367: 1366, 1368: 1367, 1369: 1368, 1370: 1369, 1371: 1370, 1372: 1371, 1373: 1372, 1374: 1373, 1375: 1374, 1376: 1375, 1377: 1376, 1378: 1377, 1379: 1378, 1380: 1379, 1381: 1380, 1382: 1381, 1383: 1382, 1384: 1383, 1385: 1384, 1386: 1385, 1387: 1386, 1388: 1387, 1389: 1388, 1390: 1389, 1391: 1390, 1392: 1391, 1393: 1392, 1394: 1393, 1395: 1394, 1396: 1395, 1397: 1396, 1398: 1397, 1399: 1398, 1400: 1399, 1401: 1400, 1402: 1401, 1403: 1402, 1404: 1403, 1405: 1404, 1406: 1405, 1407: 1406, 1408: 1407, 1409: 1408, 1410: 1409, 1411: 1410, 1412: 1411, 1413: 1412, 1414: 1413, 1415: 1414, 1416: 1415, 1417: 1416, 1418: 1417, 1419: 1418, 1420: 1419, 1421: 1420, 1422: 1421, 1423: 1422, 1424: 1423, 1425: 1424, 1426: 1425, 1427: 1426, 1428: 1427, 1429: 1428, 1430: 1429, 1431: 1430, 1432: 1431, 1433: 1432, 1434: 1433, 1435: 1434, 1436: 1435, 1437: 1436, 1438: 1437, 1439: 1438, 1440: 1439, 1441: 1440, 1442: 1441, 1443: 1442, 1444: 1443, 1445: 1444, 1446: 1445, 1447: 1446, 1448: 1447, 1449: 1448, 1450: 1449, 1451: 1450, 1452: 1451, 1453: 1452, 1454: 1453, 1455: 1454, 1456: 1455, 1457: 1456, 1458: 1457, 1459: 1458, 1460: 1459, 1461: 1460, 1462: 1461, 1463: 1462, 1464: 1463, 1465: 1464, 1466: 1465, 1467: 1466, 1468: 1467, 1469: 1468, 1470: 1469, 1471: 1470, 1472: 1471, 1473: 1472, 1474: 1473, 1475: 1474, 1476: 1475, 1477: 1476, 1478: 1477, 1479: 1478, 1480: 1479, 1481: 1480, 1482: 1481, 1483: 1482, 1484: 1483, 1485: 1484, 1486: 1485, 1487: 1486, 1488: 1487, 1489: 1488, 1490: 1489, 1491: 1490, 1492: 1491, 1493: 1492, 1494: 1493, 1495: 1494, 1496: 1495, 1497: 1496, 1498: 1497, 1499: 1498, 1500: 1499, 1501: 1500, 1502: 1501, 1503: 1502, 1504: 1503, 1505: 1504, 1506: 1505, 1507: 1506, 1508: 1507, 1509: 1508, 1510: 1509, 1511: 1510, 1512: 1511, 1513: 1512, 1514: 1513, 1515: 1514, 1516: 1515, 1517: 1516, 1518: 1517, 1519: 1518, 1520: 1519, 1521: 1520, 1522: 1521, 1523: 1522, 1524: 1523, 1525: 1524, 1526: 1525, 1527: 1526, 1528: 1527, 1529: 1528, 1530: 1529, 1531: 1530, 1532: 1531, 1533: 1532, 1534: 1533, 1535: 1534, 1536: 1535, 1537: 1536, 1538: 1537, 1539: 1538, 1540: 1539, 1541: 1540, 1542: 1541, 1543: 1542, 1544: 1543, 1545: 1544, 1546: 1545, 1547: 1546, 1548: 1547, 1549: 1548, 1550: 1549, 1551: 1550, 1552: 1551, 1553: 1552, 1554: 1553, 1555: 1554, 1556: 1555, 1557: 1556, 1558: 1557, 1559: 1558, 1560: 1559, 1561: 1560, 1562: 1561, 1563: 1562, 1564: 1563, 1565: 1564, 1566: 1565, 1567: 1566, 1568: 1567, 1569: 1568, 1570: 1569, 1571: 1570, 1572: 1571, 1573: 1572, 1574: 1573, 1575: 1574, 1576: 1575, 1577: 1576, 1578: 1577, 1579: 1578, 1580: 1579, 1581: 1580, 1582: 1581, 1583: 1582, 1584: 1583, 1585: 1584, 1586: 1585, 1587: 1586, 1588: 1587, 1589: 1588, 1590: 1589, 1591: 1590, 1592: 1591, 1593: 1592, 1594: 1593, 1595: 1594, 1596: 1595, 1597: 1596, 1598: 1597, 1599: 1598, 1600: 1599, 1601: 1600, 1602: 1601, 1603: 1602, 1604: 1603, 1605: 1604, 1606: 1605, 1607: 1606, 1608: 1607, 1609: 1608, 1610: 1609, 1611: 1610, 1612: 1611, 1613: 1612, 1614: 1613, 1615: 1614, 1616: 1615, 1617: 1616, 1618: 1617, 1619: 1618, 1620: 1619, 1621: 1620, 1622: 1621, 1623: 1622, 1624: 1623, 1625: 1624, 1626: 1625, 1627: 1626, 1628: 1627, 1629: 1628, 1630: 1629, 1631: 1630, 1632: 1631, 1633: 1632, 1634: 1633, 1635: 1634, 1636: 1635, 1637: 1636, 1638: 1637, 1639: 1638, 1640: 1639, 1641: 1640, 1642: 1641, 1643: 1642, 1644: 1643, 1645: 1644, 1646: 1645, 1647: 1646, 1648: 1647, 1649: 1648, 1650: 1649, 1651: 1650, 1652: 1651, 1653: 1652, 1654: 1653, 1655: 1654, 1656: 1655, 1657: 1656, 1658: 1657, 1659: 1658, 1660: 1659, 1661: 1660, 1662: 1661, 1663: 1662, 1664: 1663, 1665: 1664, 1666: 1665, 1667: 1666, 1668: 1667, 1669: 1668, 1670: 1669, 1671: 1670, 1672: 1671, 1673: 1672, 1674: 1673, 1675: 1674, 1676: 1675, 1677: 1676, 1678: 1677, 1679: 1678, 1680: 1679, 1681: 1680, 1682: 1681, 1683: 1682, 1684: 1683, 1685: 1684, 1686: 1685, 1687: 1686, 1688: 1687, 1689: 1688, 1690: 1689, 1691: 1690, 1692: 1691, 1693: 1692, 1694: 1693, 1695: 1694, 1696: 1695, 1697: 1696, 1698: 1697, 1699: 1698, 1700: 1699, 1701: 1700, 1702: 1701, 1703: 1702, 1704: 1703, 1705: 1704, 1706: 1705, 1707: 1706, 1708: 1707, 1709: 1708, 1710: 1709, 1711: 1710, 1712: 1711, 1713: 1712, 1714: 1713, 1715: 1714, 1716: 1715, 1717: 1716, 1718: 1717, 1719: 1718, 1720: 1719, 1721: 1720, 1722: 1721, 1723: 1722, 1724: 1723, 1725: 1724, 1726: 1725, 1727: 1726, 1728: 1727, 1729: 1728, 1730: 1729, 1731: 1730, 1732: 1731, 1733: 1732, 1734: 1733, 1735: 1734, 1736: 1735, 1737: 1736, 1738: 1737, 1739: 1738, 1740: 1739, 1741: 1740, 1742: 1741, 1743: 1742, 1744: 1743, 1745: 1744, 1746: 1745, 1747: 1746, 1748: 1747, 1749: 1748, 1750: 1749, 1751: 1750, 1752: 1751, 1753: 1752, 1754: 1753, 1755: 1754, 1756: 1755, 1757: 1756, 1758: 1757, 1759: 1758, 1760: 1759, 1761: 1760, 1762: 1761, 1763: 1762, 1764: 1763, 1765: 1764, 1766: 1765, 1767: 1766, 1768: 1767, 1769: 1768, 1770: 1769, 1771: 1770, 1772: 1771, 1773: 1772, 1774: 1773, 1775: 1774, 1776: 1775, 1777: 1776, 1778: 1777, 1779: 1778, 1780: 1779, 1781: 1780, 1782: 1781, 1783: 1782, 1784: 1783, 1785: 1784, 1786: 1785, 1787: 1786, 1788: 1787, 1789: 1788, 1790: 1789, 1791: 1790, 1792: 1791, 1793: 1792, 1794: 1793, 1795: 1794, 1796: 1795, 1797: 1796, 1798: 1797, 1799: 1798, 1800: 1799, 1801: 1800, 1802: 1801, 1803: 1802, 1804: 1803, 1805: 1804, 1806: 1805, 1807: 1806, 1808: 1807, 1809: 1808, 1810: 1809, 1811: 1810, 1812: 1811, 1813: 1812, 1814: 1813, 1815: 1814, 1816: 1815, 1817: 1816, 1818: 1817, 1819: 1818, 1820: 1819, 1821: 1820, 1822: 1821, 1823: 1822, 1824: 1823, 1825: 1824, 1826: 1825, 1827: 1826, 1828: 1827, 1829: 1828, 1830: 1829, 1831: 1830, 1832: 1831, 1833: 1832, 1834: 1833, 1835: 1834, 1836: 1835, 1837: 1836, 1838: 1837, 1839: 1838, 1840: 1839, 1841: 1840, 1842: 1841, 1843: 1842, 1844: 1843, 1845: 1844, 1846: 1845, 1847: 1846, 1848: 1847, 1849: 1848, 1850: 1849, 1851: 1850, 1852: 1851, 1853: 1852, 1854: 1853, 1855: 1854, 1856: 1855, 1857: 1856, 1858: 1857, 1859: 1858, 1860: 1859, 1861: 1860, 1862: 1861, 1863: 1862, 1864: 1863, 1865: 1864, 1866: 1865, 1867: 1866, 1868: 1867, 1869: 1868, 1870: 1869, 1871: 1870, 1872: 1871, 1873: 1872, 1874: 1873, 1875: 1874, 1876: 1875, 1877: 1876, 1878: 1877, 1879: 1878, 1880: 1879, 1881: 1880, 1882: 1881, 1883: 1882, 1884: 1883, 1885: 1884, 1886: 1885, 1887: 1886, 1888: 1887, 1889: 1888, 1890: 1889, 1891: 1890, 1892: 1891, 1893: 1892, 1894: 1893, 1895: 1894, 1896: 1895, 1897: 1896, 1898: 1897, 1899: 1898, 1900: 1899, 1901: 1900, 1902: 1901, 1903: 1902, 1904: 1903, 1905: 1904, 1906: 1905, 1907: 1906, 1908: 1907, 1909: 1908, 1910: 1909, 1911: 1910, 1912: 1911, 1913: 1912, 1914: 1913, 1915: 1914, 1916: 1915, 1917: 1916, 1918: 1917, 1919: 1918, 1920: 1919, 1921: 1920, 1922: 1921, 1923: 1922, 1924: 1923, 1925: 1924, 1926: 1925, 1927: 1926, 1928: 1927, 1929: 1928, 1930: 1929, 1931: 1930, 1932: 1931, 1933: 1932, 1934: 1933, 1935: 1934, 1936: 1935, 1937: 1936, 1938: 1937, 1939: 1938, 1940: 1939, 1941: 1940, 1942: 1941, 1943: 1942, 1944: 1943, 1945: 1944, 1946: 1945, 1947: 1946, 1948: 1947, 1949: 1948, 1950: 1949, 1951: 1950, 1952: 1951, 1953: 1952, 1954: 1953, 1955: 1954, 1956: 1955, 1957: 1956, 1958: 1957, 1959: 1958, 1960: 1959, 1961: 1960, 1962: 1961, 1963: 1962, 1964: 1963, 1965: 1964, 1966: 1965, 1967: 1966, 1968: 1967, 1969: 1968, 1970: 1969, 1971: 1970, 1972: 1971, 1973: 1972, 1974: 1973, 1975: 1974, 1976: 1975, 1977: 1976, 1978: 1977, 1979: 1978, 1980: 1979, 1981: 1980, 1982: 1981, 1983: 1982, 1984: 1983, 1985: 1984, 1986: 1985, 1987: 1986, 1988: 1987, 1989: 1988, 1990: 1989, 1991: 1990, 1992: 1991, 1993: 1992, 1994: 1993, 1995: 1994, 1996: 1995, 1997: 1996, 1998: 1997, 1999: 1998, 2000: 1999, 2001: 2000, 2002: 2001, 2003: 2002, 2004: 2003, 2005: 2004, 2006: 2005, 2007: 2006, 2008: 2007, 2009: 2008, 2010: 2009, 2011: 2010, 2012: 2011, 2013: 2012, 2014: 2013, 2015: 2014, 2016: 2015, 2017: 2016, 2018: 2017, 2019: 2018, 2020: 2019, 2021: 2020, 2022: 2021, 2023: 2022, 2024: 2023, 2025: 2024, 2026: 2025, 2027: 2026, 2028: 2027, 2029: 2028, 2030: 2029, 2031: 2030, 2032: 2031, 2033: 2032, 2034: 2033, 2035: 2034, 2036: 2035, 2037: 2036, 2038: 2037, 2039: 2038, 2040: 2039, 2041: 2040, 2042: 2041, 2043: 2042, 2044: 2043, 2045: 2044, 2046: 2045, 2047: 2046, 2048: 2047, 2049: 2048, 2050: 2049, 2051: 2050, 2052: 2051, 2053: 2052, 2054: 2053, 2055: 2054, 2056: 2055, 2057: 2056, 2058: 2057, 2059: 2058, 2060: 2059, 2061: 2060, 2062: 2061, 2063: 2062, 2064: 2063, 2065: 2064, 2066: 2065, 2067: 2066, 2068: 2067, 2069: 2068, 2070: 2069, 2071: 2070, 2072: 2071, 2073: 2072, 2074: 2073, 2075: 2074, 2076: 2075, 2077: 2076, 2078: 2077, 2079: 2078, 2080: 2079, 2081: 2080, 2082: 2081, 2083: 2082, 2084: 2083, 2085: 2084, 2086: 2085, 2087: 2086, 2088: 2087, 2089: 2088, 2090: 2089, 2091: 2090, 2092: 2091, 2093: 2092, 2094: 2093, 2095: 2094, 2096: 2095, 2097: 2096, 2098: 2097, 2099: 2098, 2100: 2099, 2101: 2100, 2102: 2101, 2103: 2102, 2104: 2103, 2105: 2104, 2106: 2105, 2107: 2106, 2108: 2107, 2109: 2108, 2110: 2109, 2111: 2110, 2112: 2111, 2113: 2112, 2114: 2113, 2115: 2114, 2116: 2115, 2117: 2116, 2118: 2117, 2119: 2118, 2120: 2119, 2121: 2120, 2122: 2121, 2123: 2122, 2124: 2123, 2125: 2124, 2126: 2125, 2127: 2126, 2128: 2127, 2129: 2128, 2130: 2129, 2131: 2130, 2132: 2131, 2133: 2132, 2134: 2133, 2135: 2134, 2136: 2135, 2137: 2136, 2138: 2137, 2139: 2138, 2140: 2139, 2141: 2140, 2142: 2141, 2143: 2142, 2144: 2143, 2145: 2144, 2146: 2145, 2147: 2146, 2148: 2147, 2149: 2148, 2150: 2149, 2151: 2150, 2152: 2151, 2153: 2152, 2154: 2153, 2155: 2154, 2156: 2155, 2157: 2156, 2158: 2157, 2159: 2158, 2160: 2159, 2161: 2160, 2162: 2161, 2163: 2162, 2164: 2163, 2165: 2164, 2166: 2165, 2167: 2166, 2168: 2167, 2169: 2168, 2170: 2169, 2171: 2170, 2172: 2171, 2173: 2172, 2174: 2173, 2175: 2174, 2176: 2175, 2177: 2176, 2178: 2177, 2179: 2178, 2180: 2179, 2181: 2180, 2182: 2181, 2183: 2182, 2184: 2183, 2185: 2184, 2186: 2185, 2187: 2186, 2188: 2187, 2189: 2188, 2190: 2189, 2191: 2190, 2192: 2191, 2193: 2192, 2194: 2193, 2195: 2194, 2196: 2195, 2197: 2196, 2198: 2197, 2199: 2198, 2200: 2199, 2201: 2200, 2202: 2201, 2203: 2202, 2204: 2203, 2205: 2204, 2206: 2205, 2207: 2206, 2208: 2207, 2209: 2208, 2210: 2209, 2211: 2210, 2212: 2211, 2213: 2212, 2214: 2213, 2215: 2214, 2216: 2215, 2217: 2216, 2218: 2217, 2219: 2218, 2220: 2219, 2221: 2220, 2222: 2221, 2223: 2222, 2224: 2223, 2225: 2224, 2226: 2225, 2227: 2226, 2228: 2227, 2229: 2228, 2230: 2229, 2231: 2230, 2232: 2231, 2233: 2232, 2234: 2233, 2235: 2234, 2236: 2235, 2237: 2236, 2238: 2237, 2239: 2238, 2240: 2239, 2241: 2240, 2242: 2241, 2243: 2242, 2244: 2243, 2245: 2244, 2246: 2245, 2247: 2246, 2248: 2247, 2249: 2248, 2250: 2249, 2251: 2250, 2252: 2251, 2253: 2252, 2254: 2253, 2255: 2254, 2256: 2255, 2257: 2256, 2258: 2257, 2259: 2258, 2260: 2259, 2261: 2260, 2262: 2261, 2263: 2262, 2264: 2263, 2265: 2264, 2266: 2265, 2267: 2266, 2268: 2267, 2269: 2268, 2270: 2269, 2271: 2270, 2272: 2271, 2273: 2272, 2274: 2273, 2275: 2274, 2276: 2275, 2277: 2276, 2278: 2277, 2279: 2278, 2280: 2279, 2281: 2280, 2282: 2281, 2283: 2282, 2284: 2283, 2285: 2284, 2286: 2285, 2287: 2286, 2288: 2287, 2289: 2288, 2290: 2289, 2291: 2290, 2292: 2291, 2293: 2292, 2294: 2293, 2295: 2294, 2296: 2295, 2297: 2296, 2298: 2297, 2299: 2298, 2300: 2299, 2301: 2300, 2302: 2301, 2303: 2302, 2304: 2303, 2305: 2304, 2306: 2305, 2307: 2306, 2308: 2307, 2309: 2308, 2310: 2309, 2311: 2310, 2312: 2311, 2313: 2312, 2314: 2313, 2315: 2314, 2316: 2315, 2317: 2316, 2318: 2317, 2319: 2318, 2320: 2319, 2321: 2320, 2322: 2321, 2323: 2322, 2324: 2323, 2325: 2324, 2326: 2325, 2327: 2326, 2328: 2327, 2329: 2328, 2330: 2329, 2331: 2330, 2332: 2331, 2333: 2332, 2334: 2333, 2335: 2334, 2336: 2335, 2337: 2336, 2338: 2337, 2339: 2338, 2340: 2339, 2341: 2340, 2342: 2341, 2343: 2342, 2344: 2343, 2345: 2344, 2346: 2345, 2347: 2346, 2348: 2347, 2349: 2348, 2350: 2349, 2351: 2350, 2352: 2351, 2353: 2352, 2354: 2353, 2355: 2354, 2356: 2355, 2357: 2356, 2358: 2357, 2359: 2358, 2360: 2359, 2361: 2360, 2362: 2361, 2363: 2362, 2364: 2363, 2365: 2364, 2366: 2365, 2367: 2366, 2368: 2367, 2369: 2368, 2370: 2369, 2371: 2370, 2372: 2371, 2373: 2372, 2374: 2373, 2375: 2374, 2376: 2375, 2377: 2376, 2378: 2377, 2379: 2378, 2380: 2379, 2381: 2380, 2382: 2381, 2383: 2382, 2384: 2383, 2385: 2384, 2386: 2385, 2387: 2386, 2388: 2387, 2389: 2388, 2390: 2389, 2391: 2390, 2392: 2391, 2393: 2392, 2394: 2393, 2395: 2394, 2396: 2395, 2397: 2396, 2398: 2397, 2399: 2398, 2400: 2399, 2401: 2400, 2402: 2401, 2403: 2402, 2404: 2403, 2405: 2404, 2406: 2405, 2407: 2406, 2408: 2407, 2409: 2408, 2410: 2409, 2411: 2410, 2412: 2411, 2413: 2412, 2414: 2413, 2415: 2414, 2416: 2415, 2417: 2416, 2418: 2417, 2419: 2418, 2420: 2419, 2421: 2420, 2422: 2421, 2423: 2422, 2424: 2423, 2425: 2424, 2426: 2425, 2427: 2426, 2428: 2427, 2429: 2428, 2430: 2429, 2431: 2430, 2432: 2431, 2433: 2432, 2434: 2433, 2435: 2434, 2436: 2435, 2437: 2436, 2438: 2437, 2439: 2438, 2440: 2439, 2441: 2440, 2442: 2441, 2443: 2442, 2444: 2443, 2445: 2444, 2446: 2445, 2447: 2446, 2448: 2447, 2449: 2448, 2450: 2449, 2451: 2450, 2452: 2451, 2453: 2452, 2454: 2453, 2455: 2454, 2456: 2455, 2457: 2456, 2458: 2457, 2459: 2458, 2460: 2459, 2461: 2460, 2462: 2461, 2463: 2462, 2464: 2463, 2465: 2464, 2466: 2465, 2467: 2466, 2468: 2467, 2469: 2468, 2470: 2469, 2471: 2470, 2472: 2471, 2473: 2472, 2474: 2473, 2475: 2474, 2476: 2475, 2477: 2476, 2478: 2477, 2479: 2478, 2480: 2479, 2481: 2480, 2482: 2481, 2483: 2482, 2484: 2483, 2485: 2484, 2486: 2485, 2487: 2486, 2488: 2487, 2489: 2488, 2490: 2489, 2491: 2490, 2492: 2491, 2493: 2492, 2494: 2493, 2495: 2494, 2496: 2495, 2497: 2496, 2498: 2497, 2499: 2498, 2500: 2499, 2501: 2500, 2502: 2501, 2503: 2502, 2504: 2503, 2505: 2504, 2506: 2505, 2507: 2506, 2508: 2507, 2509: 2508, 2510: 2509, 2511: 2510, 2512: 2511, 2513: 2512, 2514: 2513, 2515: 2514, 2516: 2515, 2517: 2516, 2518: 2517, 2519: 2518, 2520: 2519, 2521: 2520, 2522: 2521, 2523: 2522, 2524: 2523, 2525: 2524, 2526: 2525, 2527: 2526, 2528: 2527, 2529: 2528, 2530: 2529, 2531: 2530, 2532: 2531, 2533: 2532, 2534: 2533, 2535: 2534, 2536: 2535, 2537: 2536, 2538: 2537, 2539: 2538, 2540: 2539, 2541: 2540, 2542: 2541, 2543: 2542, 2544: 2543, 2545: 2544, 2546: 2545, 2547: 2546, 2548: 2547, 2549: 2548, 2550: 2549, 2551: 2550, 2552: 2551, 2553: 2552, 2554: 2553, 2555: 2554, 2556: 2555, 2557: 2556, 2558: 2557, 2559: 2558, 2560: 2559, 2561: 2560, 2562: 2561, 2563: 2562, 2564: 2563, 2565: 2564, 2566: 2565, 2567: 2566, 2568: 2567, 2569: 2568, 2570: 2569, 2571: 2570, 2572: 2571, 2573: 2572, 2574: 2573, 2575: 2574, 2576: 2575, 2577: 2576, 2578: 2577, 2579: 2578, 2580: 2579, 2581: 2580, 2582: 2581, 2583: 2582, 2584: 2583, 2585: 2584, 2586: 2585, 2587: 2586, 2588: 2587, 2589: 2588, 2590: 2589, 2591: 2590, 2592: 2591, 2593: 2592, 2594: 2593, 2595: 2594, 2596: 2595, 2597: 2596, 2598: 2597, 2599: 2598, 2600: 2599, 2601: 2600, 2602: 2601, 2603: 2602, 2604: 2603, 2605: 2604, 2606: 2605, 2607: 2606, 2608: 2607, 2609: 2608, 2610: 2609, 2611: 2610, 2612: 2611, 2613: 2612, 2614: 2613, 2615: 2614, 2616: 2615, 2617: 2616, 2618: 2617, 2619: 2618, 2620: 2619, 2621: 2620, 2622: 2621, 2623: 2622, 2624: 2623, 2625: 2624, 2626: 2625, 2627: 2626, 2628: 2627, 2629: 2628, 2630: 2629, 2631: 2630, 2632: 2631, 2633: 2632, 2634: 2633, 2635: 2634, 2636: 2635, 2637: 2636, 2638: 2637, 2639: 2638, 2640: 2639, 2641: 2640, 2642: 2641, 2643: 2642, 2644: 2643, 2645: 2644, 2646: 2645, 2647: 2646, 2648: 2647, 2649: 2648, 2650: 2649, 2651: 2650, 2652: 2651, 2653: 2652, 2654: 2653, 2655: 2654, 2656: 2655, 2657: 2656, 2658: 2657, 2659: 2658, 2660: 2659, 2661: 2660, 2662: 2661, 2663: 2662, 2664: 2663, 2665: 2664, 2666: 2665, 2667: 2666, 2668: 2667, 2669: 2668, 2670: 2669, 2671: 2670, 2672: 2671, 2673: 2672, 2674: 2673, 2675: 2674, 2676: 2675, 2677: 2676, 2678: 2677, 2679: 2678, 2680: 2679, 2681: 2680, 2682: 2681, 2683: 2682, 2684: 2683, 2685: 2684, 2686: 2685, 2687: 2686, 2688: 2687, 2689: 2688, 2690: 2689, 2691: 2690, 2692: 2691, 2693: 2692, 2694: 2693, 2695: 2694, 2696: 2695, 2697: 2696, 2698: 2697, 2699: 2698, 2700: 2699, 2701: 2700, 2702: 2701, 2703: 2702, 2704: 2703, 2705: 2704, 2706: 2705, 2707: 2706, 2708: 2707, 2709: 2708, 2710: 2709, 2711: 2710, 2712: 2711, 2713: 2712, 2714: 2713, 2715: 2714, 2716: 2715, 2717: 2716, 2718: 2717, 2719: 2718, 2720: 2719, 2721: 2720, 2722: 2721, 2723: 2722, 2724: 2723, 2725: 2724, 2726: 2725, 2727: 2726, 2728: 2727, 2729: 2728, 2730: 2729, 2731: 2730, 2732: 2731, 2733: 2732, 2734: 2733, 2735: 2734, 2736: 2735, 2737: 2736, 2738: 2737, 2739: 2738, 2740: 2739, 2741: 2740, 2742: 2741, 2743: 2742, 2744: 2743, 2745: 2744, 2746: 2745, 2747: 2746, 2748: 2747, 2749: 2748, 2750: 2749, 2751: 2750, 2752: 2751, 2753: 2752, 2754: 2753, 2755: 2754, 2756: 2755, 2757: 2756, 2758: 2757, 2759: 2758, 2760: 2759, 2761: 2760, 2762: 2761, 2763: 2762, 2764: 2763, 2765: 2764, 2766: 2765, 2767: 2766, 2768: 2767, 2769: 2768, 2770: 2769, 2771: 2770, 2772: 2771, 2773: 2772, 2774: 2773, 2775: 2774, 2776: 2775, 2777: 2776, 2778: 2777, 2779: 2778, 2780: 2779, 2781: 2780, 2782: 2781, 2783: 2782, 2784: 2783, 2785: 2784, 2786: 2785, 2787: 2786, 2788: 2787, 2789: 2788, 2790: 2789, 2791: 2790, 2792: 2791, 2793: 2792, 2794: 2793, 2795: 2794, 2796: 2795, 2797: 2796, 2798: 2797, 2799: 2798, 2800: 2799, 2801: 2800, 2802: 2801, 2803: 2802, 2804: 2803, 2805: 2804, 2806: 2805, 2807: 2806, 2808: 2807, 2809: 2808, 2810: 2809, 2811: 2810, 2812: 2811, 2813: 2812, 2814: 2813, 2815: 2814, 2816: 2815, 2817: 2816, 2818: 2817, 2819: 2818, 2820: 2819, 2821: 2820, 2822: 2821, 2823: 2822, 2824: 2823, 2825: 2824, 2826: 2825, 2827: 2826, 2828: 2827, 2829: 2828, 2830: 2829, 2831: 2830, 2832: 2831, 2833: 2832, 2834: 2833, 2835: 2834, 2836: 2835, 2837: 2836, 2838: 2837, 2839: 2838, 2840: 2839, 2841: 2840, 2842: 2841, 2843: 2842, 2844: 2843, 2845: 2844, 2846: 2845, 2847: 2846, 2848: 2847, 2849: 2848, 2850: 2849, 2851: 2850, 2852: 2851, 2853: 2852, 2854: 2853, 2855: 2854, 2856: 2855, 2857: 2856, 2858: 2857, 2859: 2858, 2860: 2859, 2861: 2860, 2862: 2861, 2863: 2862, 2864: 2863, 2865: 2864, 2866: 2865, 2867: 2866, 2868: 2867, 2869: 2868, 2870: 2869, 2871: 2870, 2872: 2871, 2873: 2872, 2874: 2873, 2875: 2874, 2876: 2875, 2877: 2876, 2878: 2877, 2879: 2878, 2880: 2879, 2881: 2880, 2882: 2881, 2883: 2882, 2884: 2883, 2885: 2884, 2886: 2885, 2887: 2886, 2888: 2887, 2889: 2888, 2890: 2889, 2891: 2890, 2892: 2891, 2893: 2892, 2894: 2893, 2895: 2894, 2896: 2895, 2897: 2896, 2898: 2897, 2899: 2898, 2900: 2899, 2901: 2900, 2902: 2901, 2903: 2902, 2904: 2903, 2905: 2904, 2906: 2905, 2907: 2906, 2908: 2907, 2909: 2908, 2910: 2909, 2911: 2910, 2912: 2911, 2913: 2912, 2914: 2913, 2915: 2914, 2916: 2915, 2917: 2916, 2918: 2917, 2919: 2918, 2920: 2919, 2921: 2920, 2922: 2921, 2923: 2922, 2924: 2923, 2925: 2924, 2926: 2925, 2927: 2926, 2928: 2927, 2929: 2928, 2930: 2929, 2931: 2930, 2932: 2931, 2933: 2932, 2934: 2933, 2935: 2934, 2936: 2935, 2937: 2936, 2938: 2937, 2939: 2938, 2940: 2939, 2941: 2940, 2942: 2941, 2943: 2942, 2944: 2943, 2945: 2944, 2946: 2945, 2947: 2946, 2948: 2947, 2949: 2948, 2950: 2949, 2951: 2950, 2952: 2951, 2953: 2952, 2954: 2953, 2955: 2954, 2956: 2955, 2957: 2956, 2958: 2957, 2959: 2958, 2960: 2959, 2961: 2960, 2962: 2961, 2963: 2962, 2964: 2963, 2965: 2964, 2966: 2965, 2967: 2966, 2968: 2967, 2969: 2968, 2970: 2969, 2971: 2970, 2972: 2971, 2973: 2972, 2974: 2973, 2975: 2974, 2976: 2975, 2977: 2976, 2978: 2977, 2979: 2978, 2980: 2979, 2981: 2980, 2982: 2981, 2983: 2982, 2984: 2983, 2985: 2984, 2986: 2985, 2987: 2986, 2988: 2987, 2989: 2988, 2990: 2989, 2991: 2990, 2992: 2991, 2993: 2992, 2994: 2993, 2995: 2994, 2996: 2995, 2997: 2996, 2998: 2997, 2999: 2998, 3000: 2999, 3001: 3000, 3002: 3001, 3003: 3002, 3004: 3003, 3005: 3004, 3006: 3005, 3007: 3006, 3008: 3007, 3009: 3008, 3010: 3009, 3011: 3010, 3012: 3011, 3013: 3012, 3014: 3013, 3015: 3014, 3016: 3015, 3017: 3016, 3018: 3017, 3019: 3018, 3020: 3019, 3021: 3020, 3022: 3021, 3023: 3022, 3024: 3023, 3025: 3024, 3026: 3025, 3027: 3026, 3028: 3027, 3029: 3028, 3030: 3029, 3031: 3030, 3032: 3031, 3033: 3032, 3034: 3033, 3035: 3034, 3036: 3035, 3037: 3036, 3038: 3037, 3039: 3038, 3040: 3039, 3041: 3040, 3042: 3041, 3043: 3042, 3044: 3043, 3045: 3044, 3046: 3045, 3047: 3046, 3048: 3047, 3049: 3048, 3050: 3049, 3051: 3050, 3052: 3051, 3053: 3052, 3054: 3053, 3055: 3054, 3056: 3055, 3057: 3056, 3058: 3057, 3059: 3058, 3060: 3059, 3061: 3060, 3062: 3061, 3063: 3062, 3064: 3063, 3065: 3064, 3066: 3065, 3067: 3066, 3068: 3067, 3069: 3068, 3070: 3069, 3071: 3070, 3072: 3071, 3073: 3072, 3074: 3073, 3075: 3074, 3076: 3075, 3077: 3076, 3078: 3077, 3079: 3078, 3080: 3079, 3081: 3080, 3082: 3081, 3083: 3082, 3084: 3083, 3085: 3084, 3086: 3085, 3087: 3086, 3088: 3087, 3089: 3088, 3090: 3089, 3091: 3090, 3092: 3091, 3093: 3092, 3094: 3093, 3095: 3094, 3096: 3095, 3097: 3096, 3098: 3097, 3099: 3098, 3100: 3099, 3101: 3100, 3102: 3101, 3103: 3102, 3104: 3103, 3105: 3104, 3106: 3105, 3107: 3106, 3108: 3107, 3109: 3108, 3110: 3109, 3111: 3110, 3112: 3111, 3113: 3112, 3114: 3113, 3115: 3114, 3116: 3115, 3117: 3116, 3118: 3117, 3119: 3118, 3120: 3119, 3121: 3120, 3122: 3121, 3123: 3122, 3124: 3123, 3125: 3124, 3126: 3125, 3127: 3126, 3128: 3127, 3129: 3128, 3130: 3129, 3131: 3130, 3132: 3131, 3133: 3132, 3134: 3133, 3135: 3134, 3136: 3135, 3137: 3136, 3138: 3137, 3139: 3138, 3140: 3139, 3141: 3140, 3142: 3141, 3143: 3142, 3144: 3143, 3145: 3144, 3146: 3145, 3147: 3146, 3148: 3147, 3149: 3148, 3150: 3149, 3151: 3150, 3152: 3151, 3153: 3152, 3154: 3153, 3155: 3154, 3156: 3155, 3157: 3156, 3158: 3157, 3159: 3158, 3160: 3159, 3161: 3160, 3162: 3161, 3163: 3162, 3164: 3163, 3165: 3164, 3166: 3165, 3167: 3166, 3168: 3167, 3169: 3168, 3170: 3169, 3171: 3170, 3172: 3171, 3173: 3172, 3174: 3173, 3175: 3174, 3176: 3175, 3177: 3176, 3178: 3177, 3179: 3178, 3180: 3179, 3181: 3180, 3182: 3181, 3183: 3182, 3184: 3183, 3185: 3184, 3186: 3185, 3187: 3186, 3188: 3187, 3189: 3188, 3190: 3189, 3191: 3190, 3192: 3191, 3193: 3192, 3194: 3193, 3195: 3194, 3196: 3195, 3197: 3196, 3198: 3197, 3199: 3198, 3200: 3199, 3201: 3200, 3202: 3201, 3203: 3202, 3204: 3203, 3205: 3204, 3206: 3205, 3207: 3206, 3208: 3207, 3209: 3208, 3210: 3209, 3211: 3210, 3212: 3211, 3213: 3212, 3214: 3213, 3215: 3214, 3216: 3215, 3217: 3216, 3218: 3217, 3219: 3218, 3220: 3219, 3221: 3220, 3222: 3221, 3223: 3222, 3224: 3223, 3225: 3224, 3226: 3225, 3227: 3226, 3228: 3227, 3229: 3228, 3230: 3229, 3231: 3230, 3232: 3231, 3233: 3232, 3234: 3233, 3235: 3234, 3236: 3235, 3237: 3236, 3238: 3237, 3239: 3238, 3240: 3239, 3241: 3240, 3242: 3241, 3243: 3242, 3244: 3243, 3245: 3244, 3246: 3245, 3247: 3246, 3248: 3247, 3249: 3248, 3250: 3249, 3251: 3250, 3252: 3251, 3253: 3252, 3254: 3253, 3255: 3254, 3256: 3255, 3257: 3256, 3258: 3257, 3259: 3258, 3260: 3259, 3261: 3260, 3262: 3261, 3263: 3262, 3264: 3263, 3265: 3264, 3266: 3265, 3267: 3266, 3268: 3267, 3269: 3268, 3270: 3269, 3271: 3270, 3272: 3271, 3273: 3272, 3274: 3273, 3275: 3274, 3276: 3275, 3277: 3276, 3278: 3277, 3279: 3278, 3280: 3279, 3281: 3280, 3282: 3281, 3283: 3282, 3284: 3283, 3285: 3284, 3286: 3285, 3287: 3286, 3288: 3287, 3289: 3288, 3290: 3289, 3291: 3290, 3292: 3291, 3293: 3292, 3294: 3293, 3295: 3294, 3296: 3295, 3297: 3296, 3298: 3297, 3299: 3298, 3300: 3299, 3301: 3300, 3302: 3301, 3303: 3302, 3304: 3303, 3305: 3304, 3306: 3305, 3307: 3306, 3308: 3307, 3309: 3308, 3310: 3309, 3311: 3310, 3312: 3311, 3313: 3312, 3314: 3313, 3315: 3314, 3316: 3315, 3317: 3316, 3318: 3317, 3319: 3318, 3320: 3319, 3321: 3320, 3322: 3321, 3323: 3322, 3324: 3323, 3325: 3324, 3326: 3325, 3327: 3326, 3328: 3327, 3329: 3328, 3330: 3329, 3331: 3330, 3332: 3331, 3333: 3332, 3334: 3333, 3335: 3334, 3336: 3335, 3337: 3336, 3338: 3337, 3339: 3338, 3340: 3339, 3341: 3340, 3342: 3341, 3343: 3342, 3344: 3343, 3345: 3344, 3346: 3345, 3347: 3346, 3348: 3347, 3349: 3348, 3350: 3349, 3351: 3350, 3352: 3351, 3353: 3352, 3354: 3353, 3355: 3354, 3356: 3355, 3357: 3356, 3358: 3357, 3359: 3358, 3360: 3359, 3361: 3360, 3362: 3361, 3363: 3362, 3364: 3363, 3365: 3364, 3366: 3365, 3367: 3366, 3368: 3367, 3369: 3368, 3370: 3369, 3371: 3370, 3372: 3371, 3373: 3372, 3374: 3373, 3375: 3374, 3376: 3375, 3377: 3376, 3378: 3377, 3379: 3378, 3380: 3379, 3381: 3380, 3382: 3381, 3383: 3382, 3384: 3383, 3385: 3384, 3386: 3385, 3387: 3386, 3388: 3387, 3389: 3388, 3390: 3389, 3391: 3390, 3392: 3391, 3393: 3392, 3394: 3393, 3395: 3394, 3396: 3395, 3397: 3396, 3398: 3397, 3399: 3398, 3400: 3399, 3401: 3400, 3402: 3401, 3403: 3402, 3404: 3403, 3405: 3404, 3406: 3405, 3407: 3406, 3408: 3407, 3409: 3408, 3410: 3409, 3411: 3410, 3412: 3411, 3413: 3412, 3414: 3413, 3415: 3414, 3416: 3415, 3417: 3416, 3418: 3417, 3419: 3418, 3420: 3419, 3421: 3420, 3422: 3421, 3423: 3422, 3424: 3423, 3425: 3424, 3426: 3425, 3427: 3426, 3428: 3427, 3429: 3428, 3430: 3429, 3431: 3430, 3432: 3431, 3433: 3432, 3434: 3433, 3435: 3434, 3436: 3435, 3437: 3436, 3438: 3437, 3439: 3438, 3440: 3439, 3441: 3440, 3442: 3441, 3443: 3442, 3444: 3443, 3445: 3444, 3446: 3445, 3447: 3446, 3448: 3447, 3449: 3448, 3450: 3449, 3451: 3450, 3452: 3451, 3453: 3452, 3454: 3453, 3455: 3454, 3456: 3455, 3457: 3456, 3458: 3457, 3459: 3458, 3460: 3459, 3461: 3460, 3462: 3461, 3463: 3462, 3464: 3463, 3465: 3464, 3466: 3465, 3467: 3466, 3468: 3467, 3469: 3468, 3470: 3469, 3471: 3470, 3472: 3471, 3473: 3472, 3474: 3473, 3475: 3474, 3476: 3475, 3477: 3476, 3478: 3477, 3479: 3478, 3480: 3479, 3481: 3480, 3482: 3481, 3483: 3482, 3484: 3483, 3485: 3484, 3486: 3485, 3487: 3486, 3488: 3487, 3489: 3488, 3490: 3489, 3491: 3490, 3492: 3491, 3493: 3492, 3494: 3493, 3495: 3494, 3496: 3495, 3497: 3496, 3498: 3497, 3499: 3498, 3500: 3499, 3501: 3500, 3502: 3501, 3503: 3502, 3504: 3503, 3505: 3504, 3506: 3505, 3507: 3506, 3508: 3507, 3509: 3508, 3510: 3509, 3511: 3510, 3512: 3511, 3513: 3512, 3514: 3513, 3515: 3514, 3516: 3515, 3517: 3516, 3518: 3517, 3519: 3518, 3520: 3519, 3521: 3520, 3522: 3521, 3523: 3522, 3524: 3523, 3525: 3524, 3526: 3525, 3527: 3526, 3528: 3527, 3529: 3528, 3530: 3529, 3531: 3530, 3532: 3531, 3533: 3532, 3534: 3533, 3535: 3534, 3536: 3535, 3537: 3536, 3538: 3537, 3539: 3538, 3540: 3539, 3541: 3540, 3542: 3541, 3543: 3542, 3544: 3543, 3545: 3544, 3546: 3545, 3547: 3546, 3548: 3547, 3549: 3548, 3550: 3549, 3551: 3550, 3552: 3551, 3553: 3552, 3554: 3553, 3555: 3554, 3556: 3555, 3557: 3556, 3558: 3557, 3559: 3558, 3560: 3559, 3561: 3560, 3562: 3561, 3563: 3562, 3564: 3563, 3565: 3564, 3566: 3565, 3567: 3566, 3568: 3567, 3569: 3568, 3570: 3569, 3571: 3570, 3572: 3571, 3573: 3572, 3574: 3573, 3575: 3574, 3576: 3575, 3577: 3576, 3578: 3577, 3579: 3578, 3580: 3579, 3581: 3580, 3582: 3581, 3583: 3582, 3584: 3583, 3585: 3584, 3586: 3585, 3587: 3586, 3588: 3587, 3589: 3588, 3590: 3589, 3591: 3590, 3592: 3591, 3593: 3592, 3594: 3593, 3595: 3594, 3596: 3595, 3597: 3596, 3598: 3597, 3599: 3598, 3600: 3599, 3601: 3600, 3602: 3601, 3603: 3602, 3604: 3603, 3605: 3604, 3606: 3605, 3607: 3606, 3608: 3607, 3609: 3608, 3610: 3609, 3611: 3610, 3612: 3611, 3613: 3612, 3614: 3613, 3615: 3614, 3616: 3615, 3617: 3616, 3618: 3617, 3619: 3618, 3620: 3619, 3621: 3620, 3622: 3621, 3623: 3622, 3624: 3623, 3625: 3624, 3626: 3625, 3627: 3626, 3628: 3627, 3629: 3628, 3630: 3629, 3631: 3630, 3632: 3631, 3633: 3632, 3634: 3633, 3635: 3634, 3636: 3635, 3637: 3636, 3638: 3637, 3639: 3638, 3640: 3639, 3641: 3640, 3642: 3641, 3643: 3642, 3644: 3643, 3645: 3644, 3646: 3645, 3647: 3646, 3648: 3647, 3649: 3648, 3650: 3649, 3651: 3650, 3652: 3651, 3653: 3652, 3654: 3653, 3655: 3654, 3656: 3655, 3657: 3656, 3658: 3657, 3659: 3658, 3660: 3659, 3661: 3660, 3662: 3661, 3663: 3662, 3664: 3663, 3665: 3664, 3666: 3665, 3667: 3666, 3668: 3667, 3669: 3668, 3670: 3669, 3671: 3670, 3672: 3671, 3673: 3672, 3674: 3673, 3675: 3674, 3676: 3675, 3677: 3676, 3678: 3677, 3679: 3678, 3680: 3679, 3681: 3680, 3682: 3681, 3683: 3682, 3684: 3683, 3685: 3684, 3686: 3685, 3687: 3686, 3688: 3687, 3689: 3688, 3690: 3689, 3691: 3690, 3692: 3691, 3693: 3692, 3694: 3693, 3695: 3694, 3696: 3695, 3697: 3696, 3698: 3697, 3699: 3698, 3700: 3699, 3701: 3700, 3702: 3701, 3703: 3702, 3704: 3703, 3705: 3704, 3706: 3705, 3707: 3706, 3708: 3707, 3709: 3708, 3710: 3709, 3711: 3710, 3712: 3711, 3713: 3712, 3714: 3713, 3715: 3714, 3716: 3715, 3717: 3716, 3718: 3717, 3719: 3718, 3720: 3719, 3721: 3720, 3722: 3721, 3723: 3722, 3724: 3723, 3725: 3724, 3726: 3725, 3727: 3726, 3728: 3727, 3729: 3728, 3730: 3729, 3731: 3730, 3732: 3731, 3733: 3732, 3734: 3733, 3735: 3734, 3736: 3735, 3737: 3736, 3738: 3737, 3739: 3738, 3740: 3739, 3741: 3740, 3742: 3741, 3743: 3742, 3744: 3743, 3745: 3744, 3746: 3745, 3747: 3746, 3748: 3747, 3749: 3748, 3750: 3749, 3751: 3750, 3752: 3751, 3753: 3752, 3754: 3753, 3755: 3754, 3756: 3755, 3757: 3756, 3758: 3757, 3759: 3758, 3760: 3759, 3761: 3760, 3762: 3761, 3763: 3762, 3764: 3763, 3765: 3764, 3766: 3765, 3767: 3766, 3768: 3767, 3769: 3768, 3770: 3769, 3771: 3770, 3772: 3771, 3773: 3772, 3774: 3773, 3775: 3774, 3776: 3775, 3777: 3776, 3778: 3777, 3779: 3778, 3780: 3779, 3781: 3780, 3782: 3781, 3783: 3782, 3784: 3783, 3785: 3784, 3786: 3785, 3787: 3786, 3788: 3787, 3789: 3788, 3790: 3789, 3791: 3790, 3792: 3791, 3793: 3792, 3794: 3793, 3795: 3794, 3796: 3795, 3797: 3796, 3798: 3797, 3799: 3798, 3800: 3799, 3801: 3800, 3802: 3801, 3803: 3802, 3804: 3803, 3805: 3804, 3806: 3805, 3807: 3806, 3808: 3807, 3809: 3808, 3810: 3809, 3811: 3810, 3812: 3811, 3813: 3812, 3814: 3813, 3815: 3814, 3816: 3815, 3817: 3816, 3818: 3817, 3819: 3818, 3820: 3819, 3821: 3820, 3822: 3821, 3823: 3822, 3824: 3823, 3825: 3824, 3826: 3825, 3827: 3826, 3828: 3827, 3829: 3828, 3830: 3829, 3831: 3830, 3832: 3831, 3833: 3832, 3834: 3833, 3835: 3834, 3836: 3835, 3837: 3836, 3838: 3837, 3839: 3838, 3840: 3839, 3841: 3840, 3842: 3841, 3843: 3842, 3844: 3843, 3845: 3844, 3846: 3845, 3847: 3846, 3848: 3847, 3849: 3848, 3850: 3849, 3851: 3850, 3852: 3851, 3853: 3852, 3854: 3853, 3855: 3854, 3856: 3855, 3857: 3856, 3858: 3857, 3859: 3858, 3860: 3859, 3861: 3860, 3862: 3861, 3863: 3862, 3864: 3863, 3865: 3864, 3866: 3865, 3867: 3866, 3868: 3867, 3869: 3868, 3870: 3869, 3871: 3870, 3872: 3871, 3873: 3872, 3874: 3873, 3875: 3874, 3876: 3875, 3877: 3876, 3878: 3877, 3879: 3878, 3880: 3879, 3881: 3880, 3882: 3881, 3883: 3882, 3884: 3883, 3885: 3884, 3886: 3885, 3887: 3886, 3888: 3887, 3889: 3888, 3890: 3889, 3891: 3890, 3892: 3891, 3893: 3892, 3894: 3893, 3895: 3894, 3896: 3895, 3897: 3896, 3898: 3897, 3899: 3898, 3900: 3899, 3901: 3900, 3902: 3901, 3903: 3902, 3904: 3903, 3905: 3904, 3906: 3905, 3907: 3906, 3908: 3907, 3909: 3908, 3910: 3909, 3911: 3910, 3912: 3911, 3913: 3912, 3914: 3913, 3915: 3914, 3916: 3915, 3917: 3916, 3918: 3917, 3919: 3918, 3920: 3919, 3921: 3920, 3922: 3921, 3923: 3922, 3924: 3923, 3925: 3924, 3926: 3925, 3927: 3926, 3928: 3927, 3929: 3928, 3930: 3929, 3931: 3930, 3932: 3931, 3933: 3932, 3934: 3933, 3935: 3934, 3936: 3935, 3937: 3936, 3938: 3937, 3939: 3938, 3940: 3939, 3941: 3940, 3942: 3941, 3943: 3942, 3944: 3943, 3945: 3944, 3946: 3945, 3947: 3946, 3948: 3947, 3949: 3948, 3950: 3949, 3951: 3950, 3952: 3951, 3953: 3952, 3954: 3953, 3955: 3954, 3956: 3955, 3957: 3956, 3958: 3957, 3959: 3958, 3960: 3959, 3961: 3960, 3962: 3961, 3963: 3962, 3964: 3963, 3965: 3964, 3966: 3965, 3967: 3966, 3968: 3967, 3969: 3968, 3970: 3969, 3971: 3970, 3972: 3971, 3973: 3972, 3974: 3973, 3975: 3974, 3976: 3975, 3977: 3976, 3978: 3977, 3979: 3978, 3980: 3979, 3981: 3980, 3982: 3981, 3983: 3982, 3984: 3983, 3985: 3984, 3986: 3985, 3987: 3986, 3988: 3987, 3989: 3988, 3990: 3989, 3991: 3990, 3992: 3991, 3993: 3992, 3994: 3993, 3995: 3994, 3996: 3995, 3997: 3996, 3998: 3997, 3999: 3998, 4000: 3999, 4001: 4000, 4002: 4001, 4003: 4002, 4004: 4003, 4005: 4004, 4006: 4005, 4007: 4006, 4008: 4007, 4009: 4008, 4010: 4009, 4011: 4010, 4012: 4011, 4013: 4012, 4014: 4013, 4015: 4014, 4016: 4015, 4017: 4016, 4018: 4017, 4019: 4018, 4020: 4019, 4021: 4020, 4022: 4021, 4023: 4022, 4024: 4023, 4025: 4024, 4026: 4025, 4027: 4026, 4028: 4027, 4029: 4028, 4030: 4029, 4031: 4030, 4032: 4031, 4033: 4032, 4034: 4033, 4035: 4034, 4036: 4035, 4037: 4036, 4038: 4037, 4039: 4038, 4040: 4039, 4041: 4040, 4042: 4041, 4043: 4042, 4044: 4043, 4045: 4044, 4046: 4045, 4047: 4046, 4048: 4047, 4049: 4048, 4050: 4049, 4051: 4050, 4052: 4051, 4053: 4052, 4054: 4053, 4055: 4054, 4056: 4055, 4057: 4056, 4058: 4057, 4059: 4058, 4060: 4059, 4061: 4060, 4062: 4061, 4063: 4062, 4064: 4063, 4065: 4064, 4066: 4065, 4067: 4066, 4068: 4067, 4069: 4068, 4070: 4069, 4071: 4070, 4072: 4071, 4073: 4072, 4074: 4073, 4075: 4074, 4076: 4075, 4077: 4076, 4078: 4077, 4079: 4078, 4080: 4079, 4081: 4080, 4082: 4081, 4083: 4082, 4084: 4083, 4085: 4084, 4086: 4085, 4087: 4086, 4088: 4087, 4089: 4088, 4090: 4089, 4091: 4090, 4092: 4091, 4093: 4092, 4094: 4093, 4095: 4094, 4096: 4095, 4097: 4096, 4098: 4097, 4099: 4098, 4100: 4099, 4101: 4100, 4102: 4101, 4103: 4102, 4104: 4103, 4105: 4104, 4106: 4105, 4107: 4106, 4108: 4107, 4109: 4108, 4110: 4109, 4111: 4110, 4112: 4111, 4113: 4112, 4114: 4113, 4115: 4114, 4116: 4115, 4117: 4116, 4118: 4117, 4119: 4118, 4120: 4119, 4121: 4120, 4122: 4121, 4123: 4122, 4124: 4123, 4125: 4124, 4126: 4125, 4127: 4126, 4128: 4127, 4129: 4128, 4130: 4129, 4131: 4130, 4132: 4131, 4133: 4132, 4134: 4133, 4135: 4134, 4136: 4135, 4137: 4136, 4138: 4137, 4139: 4138, 4140: 4139, 4141: 4140, 4142: 4141, 4143: 4142, 4144: 4143, 4145: 4144, 4146: 4145, 4147: 4146, 4148: 4147, 4149: 4148, 4150: 4149, 4151: 4150, 4152: 4151, 4153: 4152, 4154: 4153, 4155: 4154, 4156: 4155, 4157: 4156, 4158: 4157, 4159: 4158, 4160: 4159, 4161: 4160, 4162: 4161, 4163: 4162, 4164: 4163, 4165: 4164, 4166: 4165, 4167: 4166, 4168: 4167, 4169: 4168, 4170: 4169, 4171: 4170, 4172: 4171, 4173: 4172, 4174: 4173, 4175: 4174, 4176: 4175, 4177: 4176, 4178: 4177, 4179: 4178, 4180: 4179, 4181: 4180, 4182: 4181, 4183: 4182, 4184: 4183, 4185: 4184, 4186: 4185, 4187: 4186, 4188: 4187, 4189: 4188, 4190: 4189, 4191: 4190, 4192: 4191, 4193: 4192, 4194: 4193, 4195: 4194, 4196: 4195, 4197: 4196, 4198: 4197, 4199: 4198, 4200: 4199, 4201: 4200, 4202: 4201, 4203: 4202, 4204: 4203, 4205: 4204, 4206: 4205, 4207: 4206, 4208: 4207, 4209: 4208, 4210: 4209, 4211: 4210, 4212: 4211, 4213: 4212, 4214: 4213, 4215: 4214, 4216: 4215, 4217: 4216, 4218: 4217, 4219: 4218, 4220: 4219, 4221: 4220, 4222: 4221, 4223: 4222, 4224: 4223, 4225: 4224, 4226: 4225, 4227: 4226, 4228: 4227, 4229: 4228, 4230: 4229, 4231: 4230, 4232: 4231, 4233: 4232, 4234: 4233, 4235: 4234, 4236: 4235, 4237: 4236, 4238: 4237, 4239: 4238, 4240: 4239, 4241: 4240, 4242: 4241, 4243: 4242, 4244: 4243, 4245: 4244, 4246: 4245, 4247: 4246, 4248: 4247, 4249: 4248, 4250: 4249, 4251: 4250, 4252: 4251, 4253: 4252, 4254: 4253, 4255: 4254, 4256: 4255, 4257: 4256, 4258: 4257, 4259: 4258, 4260: 4259, 4261: 4260, 4262: 4261, 4263: 4262, 4264: 4263, 4265: 4264, 4266: 4265, 4267: 4266, 4268: 4267, 4269: 4268, 4270: 4269, 4271: 4270, 4272: 4271, 4273: 4272, 4274: 4273, 4275: 4274, 4276: 4275, 4277: 4276, 4278: 4277, 4279: 4278, 4280: 4279, 4281: 4280, 4282: 4281, 4283: 4282, 4284: 4283, 4285: 4284, 4286: 4285, 4287: 4286, 4288: 4287, 4289: 4288, 4290: 4289, 4291: 4290, 4292: 4291, 4293: 4292, 4294: 4293, 4295: 4294, 4296: 4295, 4297: 4296, 4298: 4297, 4299: 4298, 4300: 4299, 4301: 4300, 4302: 4301, 4303: 4302, 4304: 4303, 4305: 4304, 4306: 4305, 4307: 4306, 4308: 4307, 4309: 4308, 4310: 4309, 4311: 4310, 4312: 4311, 4313: 4312, 4314: 4313, 4315: 4314, 4316: 4315, 4317: 4316, 4318: 4317, 4319: 4318, 4320: 4319, 4321: 4320, 4322: 4321, 4323: 4322, 4324: 4323, 4325: 4324, 4326: 4325, 4327: 4326, 4328: 4327, 4329: 4328, 4330: 4329, 4331: 4330, 4332: 4331, 4333: 4332, 4334: 4333, 4335: 4334, 4336: 4335, 4337: 4336, 4338: 4337, 4339: 4338, 4340: 4339, 4341: 4340, 4342: 4341, 4343: 4342, 4344: 4343, 4345: 4344, 4346: 4345, 4347: 4346, 4348: 4347, 4349: 4348, 4350: 4349, 4351: 4350, 4352: 4351, 4353: 4352, 4354: 4353, 4355: 4354, 4356: 4355, 4357: 4356, 4358: 4357, 4359: 4358, 4360: 4359, 4361: 4360, 4362: 4361, 4363: 4362, 4364: 4363, 4365: 4364, 4366: 4365, 4367: 4366, 4368: 4367, 4369: 4368, 4370: 4369, 4371: 4370, 4372: 4371, 4373: 4372, 4374: 4373, 4375: 4374, 4376: 4375, 4377: 4376, 4378: 4377, 4379: 4378, 4380: 4379, 4381: 4380, 4382: 4381, 4383: 4382, 4384: 4383, 4385: 4384, 4386: 4385, 4387: 4386, 4388: 4387, 4389: 4388, 4390: 4389, 4391: 4390, 4392: 4391, 4393: 4392, 4394: 4393, 4395: 4394, 4396: 4395, 4397: 4396, 4398: 4397, 4399: 4398, 4400: 4399, 4401: 4400, 4402: 4401, 4403: 4402, 4404: 4403, 4405: 4404, 4406: 4405, 4407: 4406, 4408: 4407, 4409: 4408, 4410: 4409, 4411: 4410, 4412: 4411, 4413: 4412, 4414: 4413, 4415: 4414, 4416: 4415, 4417: 4416, 4418: 4417, 4419: 4418, 4420: 4419, 4421: 4420, 4422: 4421, 4423: 4422, 4424: 4423, 4425: 4424, 4426: 4425, 4427: 4426, 4428: 4427, 4429: 4428, 4430: 4429, 4431: 4430, 4432: 4431, 4433: 4432, 4434: 4433, 4435: 4434, 4436: 4435, 4437: 4436, 4438: 4437, 4439: 4438, 4440: 4439, 4441: 4440, 4442: 4441, 4443: 4442, 4444: 4443, 4445: 4444, 4446: 4445, 4447: 4446, 4448: 4447, 4449: 4448, 4450: 4449, 4451: 4450, 4452: 4451, 4453: 4452, 4454: 4453, 4455: 4454, 4456: 4455, 4457: 4456, 4458: 4457, 4459: 4458, 4460: 4459, 4461: 4460, 4462: 4461, 4463: 4462, 4464: 4463, 4465: 4464, 4466: 4465, 4467: 4466, 4468: 4467, 4469: 4468, 4470: 4469, 4471: 4470, 4472: 4471, 4473: 4472, 4474: 4473, 4475: 4474, 4476: 4475, 4477: 4476, 4478: 4477, 4479: 4478, 4480: 4479, 4481: 4480, 4482: 4481, 4483: 4482, 4484: 4483, 4485: 4484, 4486: 4485, 4487: 4486, 4488: 4487, 4489: 4488, 4490: 4489, 4491: 4490, 4492: 4491, 4493: 4492, 4494: 4493, 4495: 4494, 4496: 4495, 4497: 4496, 4498: 4497, 4499: 4498, 4500: 4499, 4501: 4500, 4502: 4501, 4503: 4502, 4504: 4503, 4505: 4504, 4506: 4505, 4507: 4506, 4508: 4507, 4509: 4508, 4510: 4509, 4511: 4510, 4512: 4511, 4513: 4512, 4514: 4513, 4515: 4514, 4516: 4515, 4517: 4516, 4518: 4517, 4519: 4518, 4520: 4519, 4521: 4520, 4522: 4521, 4523: 4522, 4524: 4523, 4525: 4524, 4526: 4525, 4527: 4526, 4528: 4527, 4529: 4528, 4530: 4529, 4531: 4530, 4532: 4531, 4533: 4532, 4534: 4533, 4535: 4534, 4536: 4535, 4537: 4536, 4538: 4537, 4539: 4538, 4540: 4539, 4541: 4540, 4542: 4541, 4543: 4542, 4544: 4543, 4545: 4544, 4546: 4545, 4547: 4546, 4548: 4547, 4549: 4548, 4550: 4549, 4551: 4550, 4552: 4551, 4553: 4552, 4554: 4553, 4555: 4554, 4556: 4555, 4557: 4556, 4558: 4557, 4559: 4558, 4560: 4559, 4561: 4560, 4562: 4561, 4563: 4562, 4564: 4563, 4565: 4564, 4566: 4565, 4567: 4566, 4568: 4567, 4569: 4568, 4570: 4569, 4571: 4570, 4572: 4571, 4573: 4572, 4574: 4573, 4575: 4574, 4576: 4575, 4577: 4576, 4578: 4577, 4579: 4578, 4580: 4579, 4581: 4580, 4582: 4581, 4583: 4582, 4584: 4583, 4585: 4584, 4586: 4585, 4587: 4586, 4588: 4587, 4589: 4588, 4590: 4589, 4591: 4590, 4592: 4591, 4593: 4592, 4594: 4593, 4595: 4594, 4596: 4595, 4597: 4596, 4598: 4597, 4599: 4598, 4600: 4599, 4601: 4600, 4602: 4601, 4603: 4602, 4604: 4603, 4605: 4604, 4606: 4605, 4607: 4606, 4608: 4607, 4609: 4608, 4610: 4609, 4611: 4610, 4612: 4611, 4613: 4612, 4614: 4613, 4615: 4614, 4616: 4615, 4617: 4616, 4618: 4617, 4619: 4618, 4620: 4619, 4621: 4620, 4622: 4621, 4623: 4622, 4624: 4623, 4625: 4624, 4626: 4625, 4627: 4626, 4628: 4627, 4629: 4628, 4630: 4629, 4631: 4630, 4632: 4631, 4633: 4632, 4634: 4633, 4635: 4634, 4636: 4635, 4637: 4636, 4638: 4637, 4639: 4638, 4640: 4639, 4641: 4640, 4642: 4641, 4643: 4642, 4644: 4643, 4645: 4644, 4646: 4645, 4647: 4646, 4648: 4647, 4649: 4648, 4650: 4649, 4651: 4650, 4652: 4651, 4653: 4652, 4654: 4653, 4655: 4654, 4656: 4655, 4657: 4656, 4658: 4657, 4659: 4658, 4660: 4659, 4661: 4660, 4662: 4661, 4663: 4662, 4664: 4663, 4665: 4664, 4666: 4665, 4667: 4666, 4668: 4667, 4669: 4668, 4670: 4669, 4671: 4670, 4672: 4671, 4673: 4672, 4674: 4673, 4675: 4674, 4676: 4675, 4677: 4676, 4678: 4677, 4679: 4678, 4680: 4679, 4681: 4680, 4682: 4681, 4683: 4682, 4684: 4683, 4685: 4684, 4686: 4685, 4687: 4686, 4688: 4687, 4689: 4688, 4690: 4689, 4691: 4690, 4692: 4691, 4693: 4692, 4694: 4693, 4695: 4694, 4696: 4695, 4697: 4696, 4698: 4697, 4699: 4698, 4700: 4699, 4701: 4700, 4702: 4701, 4703: 4702, 4704: 4703, 4705: 4704, 4706: 4705, 4707: 4706, 4708: 4707, 4709: 4708, 4710: 4709, 4711: 4710, 4712: 4711, 4713: 4712, 4714: 4713, 4715: 4714, 4716: 4715, 4717: 4716, 4718: 4717, 4719: 4718, 4720: 4719, 4721: 4720, 4722: 4721, 4723: 4722, 4724: 4723, 4725: 4724, 4726: 4725, 4727: 4726, 4728: 4727, 4729: 4728, 4730: 4729, 4731: 4730, 4732: 4731, 4733: 4732, 4734: 4733, 4735: 4734, 4736: 4735, 4737: 4736, 4738: 4737, 4739: 4738, 4740: 4739, 4741: 4740, 4742: 4741, 4743: 4742, 4744: 4743, 4745: 4744, 4746: 4745, 4747: 4746, 4748: 4747, 4749: 4748, 4750: 4749, 4751: 4750, 4752: 4751, 4753: 4752, 4754: 4753, 4755: 4754, 4756: 4755, 4757: 4756, 4758: 4757, 4759: 4758, 4760: 4759, 4761: 4760, 4762: 4761, 4763: 4762, 4764: 4763, 4765: 4764, 4766: 4765, 4767: 4766, 4768: 4767, 4769: 4768, 4770: 4769, 4771: 4770, 4772: 4771, 4773: 4772, 4774: 4773, 4775: 4774, 4776: 4775, 4777: 4776, 4778: 4777, 4779: 4778, 4780: 4779, 4781: 4780, 4782: 4781, 4783: 4782, 4784: 4783, 4785: 4784, 4786: 4785, 4787: 4786, 4788: 4787, 4789: 4788, 4790: 4789, 4791: 4790, 4792: 4791, 4793: 4792, 4794: 4793, 4795: 4794, 4796: 4795, 4797: 4796, 4798: 4797, 4799: 4798, 4800: 4799, 4801: 4800, 4802: 4801, 4803: 4802, 4804: 4803, 4805: 4804, 4806: 4805, 4807: 4806, 4808: 4807, 4809: 4808, 4810: 4809, 4811: 4810, 4812: 4811, 4813: 4812, 4814: 4813, 4815: 4814, 4816: 4815, 4817: 4816, 4818: 4817, 4819: 4818, 4820: 4819, 4821: 4820, 4822: 4821, 4823: 4822, 4824: 4823, 4825: 4824, 4826: 4825, 4827: 4826, 4828: 4827, 4829: 4828, 4830: 4829, 4831: 4830, 4832: 4831, 4833: 4832, 4834: 4833, 4835: 4834, 4836: 4835, 4837: 4836, 4838: 4837, 4839: 4838, 4840: 4839, 4841: 4840, 4842: 4841, 4843: 4842, 4844: 4843, 4845: 4844, 4846: 4845, 4847: 4846, 4848: 4847, 4849: 4848, 4850: 4849, 4851: 4850, 4852: 4851, 4853: 4852, 4854: 4853, 4855: 4854, 4856: 4855, 4857: 4856, 4858: 4857, 4859: 4858, 4860: 4859, 4861: 4860, 4862: 4861, 4863: 4862, 4864: 4863, 4865: 4864, 4866: 4865, 4867: 4866, 4868: 4867, 4869: 4868, 4870: 4869, 4871: 4870, 4872: 4871, 4873: 4872, 4874: 4873, 4875: 4874, 4876: 4875, 4877: 4876, 4878: 4877, 4879: 4878, 4880: 4879, 4881: 4880, 4882: 4881, 4883: 4882, 4884: 4883, 4885: 4884, 4886: 4885, 4887: 4886, 4888: 4887, 4889: 4888, 4890: 4889, 4891: 4890, 4892: 4891, 4893: 4892, 4894: 4893, 4895: 4894, 4896: 4895, 4897: 4896, 4898: 4897, 4899: 4898, 4900: 4899, 4901: 4900, 4902: 4901, 4903: 4902, 4904: 4903, 4905: 4904, 4906: 4905, 4907: 4906, 4908: 4907, 4909: 4908, 4910: 4909, 4911: 4910, 4912: 4911, 4913: 4912, 4914: 4913, 4915: 4914, 4916: 4915, 4917: 4916, 4918: 4917, 4919: 4918, 4920: 4919, 4921: 4920, 4922: 4921, 4923: 4922, 4924: 4923, 4925: 4924, 4926: 4925, 4927: 4926, 4928: 4927, 4929: 4928, 4930: 4929, 4931: 4930, 4932: 4931, 4933: 4932, 4934: 4933, 4935: 4934, 4936: 4935, 4937: 4936, 4938: 4937, 4939: 4938, 4940: 4939, 4941: 4940, 4942: 4941, 4943: 4942, 4944: 4943, 4945: 4944, 4946: 4945, 4947: 4946, 4948: 4947, 4949: 4948, 4950: 4949, 4951: 4950, 4952: 4951, 4953: 4952, 4954: 4953, 4955: 4954, 4956: 4955, 4957: 4956, 4958: 4957, 4959: 4958, 4960: 4959, 4961: 4960, 4962: 4961, 4963: 4962, 4964: 4963, 4965: 4964, 4966: 4965, 4967: 4966, 4968: 4967, 4969: 4968, 4970: 4969, 4971: 4970, 4972: 4971, 4973: 4972, 4974: 4973, 4975: 4974, 4976: 4975, 4977: 4976, 4978: 4977, 4979: 4978, 4980: 4979, 4981: 4980, 4982: 4981, 4983: 4982, 4984: 4983, 4985: 4984, 4986: 4985, 4987: 4986, 4988: 4987, 4989: 4988, 4990: 4989, 4991: 4990, 4992: 4991, 4993: 4992, 4994: 4993, 4995: 4994, 4996: 4995, 4997: 4996, 4998: 4997, 4999: 4998, 5000: 4999, 5001: 5000, 5002: 5001, 5003: 5002, 5004: 5003, 5005: 5004, 5006: 5005, 5007: 5006, 5008: 5007, 5009: 5008, 5010: 5009, 5011: 5010, 5012: 5011, 5013: 5012, 5014: 5013, 5015: 5014, 5016: 5015, 5017: 5016, 5018: 5017, 5019: 5018, 5020: 5019, 5021: 5020, 5022: 5021, 5023: 5022, 5024: 5023, 5025: 5024, 5026: 5025, 5027: 5026, 5028: 5027, 5029: 5028, 5030: 5029, 5031: 5030, 5032: 5031, 5033: 5032, 5034: 5033, 5035: 5034, 5036: 5035, 5037: 5036, 5038: 5037, 5039: 5038, 5040: 5039, 5041: 5040, 5042: 5041, 5043: 5042, 5044: 5043, 5045: 5044, 5046: 5045, 5047: 5046, 5048: 5047, 5049: 5048, 5050: 5049, 5051: 5050, 5052: 5051, 5053: 5052, 5054: 5053, 5055: 5054, 5056: 5055, 5057: 5056, 5058: 5057, 5059: 5058, 5060: 5059, 5061: 5060, 5062: 5061, 5063: 5062, 5064: 5063, 5065: 5064, 5066: 5065, 5067: 5066, 5068: 5067, 5069: 5068, 5070: 5069, 5071: 5070, 5072: 5071, 5073: 5072, 5074: 5073, 5075: 5074, 5076: 5075, 5077: 5076, 5078: 5077, 5079: 5078, 5080: 5079, 5081: 5080, 5082: 5081, 5083: 5082, 5084: 5083, 5085: 5084, 5086: 5085, 5087: 5086, 5088: 5087, 5089: 5088, 5090: 5089, 5091: 5090, 5092: 5091, 5093: 5092, 5094: 5093, 5095: 5094, 5096: 5095, 5097: 5096, 5098: 5097, 5099: 5098, 5100: 5099, 5101: 5100, 5102: 5101, 5103: 5102, 5104: 5103, 5105: 5104, 5106: 5105, 5107: 5106, 5108: 5107, 5109: 5108, 5110: 5109, 5111: 5110, 5112: 5111, 5113: 5112, 5114: 5113, 5115: 5114, 5116: 5115, 5117: 5116, 5118: 5117, 5119: 5118, 5120: 5119, 5121: 5120, 5122: 5121, 5123: 5122, 5124: 5123, 5125: 5124, 5126: 5125, 5127: 5126, 5128: 5127, 5129: 5128, 5130: 5129, 5131: 5130, 5132: 5131, 5133: 5132, 5134: 5133, 5135: 5134, 5136: 5135, 5137: 5136, 5138: 5137, 5139: 5138, 5140: 5139, 5141: 5140, 5142: 5141, 5143: 5142, 5144: 5143, 5145: 5144, 5146: 5145, 5147: 5146, 5148: 5147, 5149: 5148, 5150: 5149, 5151: 5150, 5152: 5151, 5153: 5152, 5154: 5153, 5155: 5154, 5156: 5155, 5157: 5156, 5158: 5157, 5159: 5158, 5160: 5159, 5161: 5160, 5162: 5161, 5163: 5162, 5164: 5163, 5165: 5164, 5166: 5165, 5167: 5166, 5168: 5167, 5169: 5168, 5170: 5169, 5171: 5170, 5172: 5171, 5173: 5172, 5174: 5173, 5175: 5174, 5176: 5175, 5177: 5176, 5178: 5177, 5179: 5178, 5180: 5179, 5181: 5180, 5182: 5181, 5183: 5182, 5184: 5183, 5185: 5184, 5186: 5185, 5187: 5186, 5188: 5187, 5189: 5188, 5190: 5189, 5191: 5190, 5192: 5191, 5193: 5192, 5194: 5193, 5195: 5194, 5196: 5195, 5197: 5196, 5198: 5197, 5199: 5198, 5200: 5199, 5201: 5200, 5202: 5201, 5203: 5202, 5204: 5203, 5205: 5204, 5206: 5205, 5207: 5206, 5208: 5207, 5209: 5208, 5210: 5209, 5211: 5210, 5212: 5211, 5213: 5212, 5214: 5213, 5215: 5214, 5216: 5215, 5217: 5216, 5218: 5217, 5219: 5218, 5220: 5219, 5221: 5220, 5222: 5221, 5223: 5222, 5224: 5223, 5225: 5224, 5226: 5225, 5227: 5226, 5228: 5227, 5229: 5228, 5230: 5229, 5231: 5230, 5232: 5231, 5233: 5232, 5234: 5233, 5235: 5234, 5236: 5235, 5237: 5236, 5238: 5237, 5239: 5238, 5240: 5239, 5241: 5240, 5242: 5241, 5243: 5242, 5244: 5243, 5245: 5244, 5246: 5245, 5247: 5246, 5248: 5247, 5249: 5248, 5250: 5249, 5251: 5250, 5252: 5251, 5253: 5252, 5254: 5253, 5255: 5254, 5256: 5255, 5257: 5256, 5258: 5257, 5259: 5258, 5260: 5259, 5261: 5260, 5262: 5261, 5263: 5262, 5264: 5263, 5265: 5264, 5266: 5265, 5267: 5266, 5268: 5267, 5269: 5268, 5270: 5269, 5271: 5270, 5272: 5271, 5273: 5272, 5274: 5273, 5275: 5274, 5276: 5275, 5277: 5276, 5278: 5277, 5279: 5278, 5280: 5279, 5281: 5280, 5282: 5281, 5283: 5282, 5284: 5283, 5285: 5284, 5286: 5285, 5287: 5286, 5288: 5287, 5289: 5288, 5290: 5289, 5291: 5290, 5292: 5291, 5293: 5292, 5294: 5293, 5295: 5294, 5296: 5295, 5297: 5296, 5298: 5297, 5299: 5298, 5300: 5299, 5301: 5300, 5302: 5301, 5303: 5302, 5304: 5303, 5305: 5304, 5306: 5305, 5307: 5306, 5308: 5307, 5309: 5308, 5310: 5309, 5311: 5310, 5312: 5311, 5313: 5312, 5314: 5313, 5315: 5314, 5316: 5315, 5317: 5316, 5318: 5317, 5319: 5318, 5320: 5319, 5321: 5320, 5322: 5321, 5323: 5322, 5324: 5323, 5325: 5324, 5326: 5325, 5327: 5326, 5328: 5327, 5329: 5328, 5330: 5329, 5331: 5330, 5332: 5331, 5333: 5332, 5334: 5333, 5335: 5334, 5336: 5335, 5337: 5336, 5338: 5337, 5339: 5338, 5340: 5339, 5341: 5340, 5342: 5341, 5343: 5342, 5344: 5343, 5345: 5344, 5346: 5345, 5347: 5346, 5348: 5347, 5349: 5348, 5350: 5349, 5351: 5350, 5352: 5351, 5353: 5352, 5354: 5353, 5355: 5354, 5356: 5355, 5357: 5356, 5358: 5357, 5359: 5358, 5360: 5359, 5361: 5360, 5362: 5361, 5363: 5362, 5364: 5363, 5365: 5364, 5366: 5365, 5367: 5366, 5368: 5367, 5369: 5368, 5370: 5369, 5371: 5370, 5372: 5371, 5373: 5372, 5374: 5373, 5375: 5374, 5376: 5375, 5377: 5376, 5378: 5377, 5379: 5378, 5380: 5379, 5381: 5380, 5382: 5381, 5383: 5382, 5384: 5383, 5385: 5384, 5386: 5385, 5387: 5386, 5388: 5387, 5389: 5388, 5390: 5389, 5391: 5390, 5392: 5391, 5393: 5392, 5394: 5393, 5395: 5394, 5396: 5395, 5397: 5396, 5398: 5397, 5399: 5398, 5400: 5399, 5401: 5400, 5402: 5401, 5403: 5402, 5404: 5403, 5405: 5404, 5406: 5405, 5407: 5406, 5408: 5407, 5409: 5408, 5410: 5409, 5411: 5410, 5412: 5411, 5413: 5412, 5414: 5413, 5415: 5414, 5416: 5415, 5417: 5416, 5418: 5417, 5419: 5418, 5420: 5419, 5421: 5420, 5422: 5421, 5423: 5422, 5424: 5423, 5425: 5424, 5426: 5425, 5427: 5426, 5428: 5427, 5429: 5428, 5430: 5429, 5431: 5430, 5432: 5431, 5433: 5432, 5434: 5433, 5435: 5434, 5436: 5435, 5437: 5436, 5438: 5437, 5439: 5438, 5440: 5439, 5441: 5440, 5442: 5441, 5443: 5442, 5444: 5443, 5445: 5444, 5446: 5445, 5447: 5446, 5448: 5447, 5449: 5448, 5450: 5449, 5451: 5450, 5452: 5451, 5453: 5452, 5454: 5453, 5455: 5454, 5456: 5455, 5457: 5456, 5458: 5457, 5459: 5458, 5460: 5459, 5461: 5460, 5462: 5461, 5463: 5462, 5464: 5463, 5465: 5464, 5466: 5465, 5467: 5466, 5468: 5467, 5469: 5468, 5470: 5469, 5471: 5470, 5472: 5471, 5473: 5472, 5474: 5473, 5475: 5474, 5476: 5475, 5477: 5476, 5478: 5477, 5479: 5478, 5480: 5479, 5481: 5480, 5482: 5481, 5483: 5482, 5484: 5483, 5485: 5484, 5486: 5485, 5487: 5486, 5488: 5487, 5489: 5488, 5490: 5489, 5491: 5490, 5492: 5491, 5493: 5492, 5494: 5493, 5495: 5494, 5496: 5495, 5497: 5496, 5498: 5497, 5499: 5498, 5500: 5499, 5501: 5500, 5502: 5501, 5503: 5502, 5504: 5503, 5505: 5504, 5506: 5505, 5507: 5506, 5508: 5507, 5509: 5508, 5510: 5509, 5511: 5510, 5512: 5511, 5513: 5512, 5514: 5513, 5515: 5514, 5516: 5515, 5517: 5516, 5518: 5517, 5519: 5518, 5520: 5519, 5521: 5520, 5522: 5521, 5523: 5522, 5524: 5523, 5525: 5524, 5526: 5525, 5527: 5526, 5528: 5527, 5529: 5528, 5530: 5529, 5531: 5530, 5532: 5531, 5533: 5532, 5534: 5533, 5535: 5534, 5536: 5535, 5537: 5536, 5538: 5537, 5539: 5538, 5540: 5539, 5541: 5540, 5542: 5541, 5543: 5542, 5544: 5543, 5545: 5544, 5546: 5545, 5547: 5546, 5548: 5547, 5549: 5548, 5550: 5549, 5551: 5550, 5552: 5551, 5553: 5552, 5554: 5553, 5555: 5554, 5556: 5555, 5557: 5556, 5558: 5557, 5559: 5558, 5560: 5559, 5561: 5560, 5562: 5561, 5563: 5562, 5564: 5563, 5565: 5564, 5566: 5565, 5567: 5566, 5568: 5567, 5569: 5568, 5570: 5569, 5571: 5570, 5572: 5571, 5573: 5572, 5574: 5573, 5575: 5574, 5576: 5575, 5577: 5576, 5578: 5577, 5579: 5578, 5580: 5579, 5581: 5580, 5582: 5581, 5583: 5582, 5584: 5583, 5585: 5584, 5586: 5585, 5587: 5586, 5588: 5587, 5589: 5588, 5590: 5589, 5591: 5590, 5592: 5591, 5593: 5592, 5594: 5593, 5595: 5594, 5596: 5595, 5597: 5596, 5598: 5597, 5599: 5598, 5600: 5599, 5601: 5600, 5602: 5601, 5603: 5602, 5604: 5603, 5605: 5604, 5606: 5605, 5607: 5606, 5608: 5607, 5609: 5608, 5610: 5609, 5611: 5610, 5612: 5611, 5613: 5612, 5614: 5613, 5615: 5614, 5616: 5615, 5617: 5616, 5618: 5617, 5619: 5618, 5620: 5619, 5621: 5620, 5622: 5621, 5623: 5622, 5624: 5623, 5625: 5624, 5626: 5625, 5627: 5626, 5628: 5627, 5629: 5628, 5630: 5629, 5631: 5630, 5632: 5631, 5633: 5632, 5634: 5633, 5635: 5634, 5636: 5635, 5637: 5636, 5638: 5637, 5639: 5638, 5640: 5639, 5641: 5640, 5642: 5641, 5643: 5642, 5644: 5643, 5645: 5644, 5646: 5645, 5647: 5646, 5648: 5647, 5649: 5648, 5650: 5649, 5651: 5650, 5652: 5651, 5653: 5652, 5654: 5653, 5655: 5654, 5656: 5655, 5657: 5656, 5658: 5657, 5659: 5658, 5660: 5659, 5661: 5660, 5662: 5661, 5663: 5662, 5664: 5663, 5665: 5664, 5666: 5665, 5667: 5666, 5668: 5667, 5669: 5668, 5670: 5669, 5671: 5670, 5672: 5671, 5673: 5672, 5674: 5673, 5675: 5674, 5676: 5675, 5677: 5676, 5678: 5677, 5679: 5678, 5680: 5679, 5681: 5680, 5682: 5681, 5683: 5682, 5684: 5683, 5685: 5684, 5686: 5685, 5687: 5686, 5688: 5687, 5689: 5688, 5690: 5689, 5691: 5690, 5692: 5691, 5693: 5692, 5694: 5693, 5695: 5694, 5696: 5695, 5697: 5696, 5698: 5697, 5699: 5698, 5700: 5699, 5701: 5700, 5702: 5701, 5703: 5702, 5704: 5703, 5705: 5704, 5706: 5705, 5707: 5706, 5708: 5707, 5709: 5708, 5710: 5709, 5711: 5710, 5712: 5711, 5713: 5712, 5714: 5713, 5715: 5714, 5716: 5715, 5717: 5716, 5718: 5717, 5719: 5718, 5720: 5719, 5721: 5720, 5722: 5721, 5723: 5722, 5724: 5723, 5725: 5724, 5726: 5725, 5727: 5726, 5728: 5727, 5729: 5728, 5730: 5729, 5731: 5730, 5732: 5731, 5733: 5732, 5734: 5733, 5735: 5734, 5736: 5735, 5737: 5736, 5738: 5737, 5739: 5738, 5740: 5739, 5741: 5740, 5742: 5741, 5743: 5742, 5744: 5743, 5745: 5744, 5746: 5745, 5747: 5746, 5748: 5747, 5749: 5748, 5750: 5749, 5751: 5750, 5752: 5751, 5753: 5752, 5754: 5753, 5755: 5754, 5756: 5755, 5757: 5756, 5758: 5757, 5759: 5758, 5760: 5759, 5761: 5760, 5762: 5761, 5763: 5762, 5764: 5763, 5765: 5764, 5766: 5765, 5767: 5766, 5768: 5767, 5769: 5768, 5770: 5769, 5771: 5770, 5772: 5771, 5773: 5772, 5774: 5773, 5775: 5774, 5776: 5775, 5777: 5776, 5778: 5777, 5779: 5778, 5780: 5779, 5781: 5780, 5782: 5781, 5783: 5782, 5784: 5783, 5785: 5784, 5786: 5785, 5787: 5786, 5788: 5787, 5789: 5788, 5790: 5789, 5791: 5790, 5792: 5791, 5793: 5792, 5794: 5793, 5795: 5794, 5796: 5795, 5797: 5796, 5798: 5797, 5799: 5798, 5800: 5799, 5801: 5800, 5802: 5801, 5803: 5802, 5804: 5803, 5805: 5804, 5806: 5805, 5807: 5806, 5808: 5807, 5809: 5808, 5810: 5809, 5811: 5810, 5812: 5811, 5813: 5812, 5814: 5813, 5815: 5814, 5816: 5815, 5817: 5816, 5818: 5817, 5819: 5818, 5820: 5819, 5821: 5820, 5822: 5821, 5823: 5822, 5824: 5823, 5825: 5824, 5826: 5825, 5827: 5826, 5828: 5827, 5829: 5828, 5830: 5829, 5831: 5830, 5832: 5831, 5833: 5832, 5834: 5833, 5835: 5834, 5836: 5835, 5837: 5836, 5838: 5837, 5839: 5838, 5840: 5839, 5841: 5840, 5842: 5841, 5843: 5842, 5844: 5843, 5845: 5844, 5846: 5845, 5847: 5846, 5848: 5847, 5849: 5848, 5850: 5849, 5851: 5850, 5852: 5851, 5853: 5852, 5854: 5853, 5855: 5854, 5856: 5855, 5857: 5856, 5858: 5857, 5859: 5858, 5860: 5859, 5861: 5860, 5862: 5861, 5863: 5862, 5864: 5863, 5865: 5864, 5866: 5865, 5867: 5866, 5868: 5867, 5869: 5868, 5870: 5869, 5871: 5870, 5872: 5871, 5873: 5872, 5874: 5873, 5875: 5874, 5876: 5875, 5877: 5876, 5878: 5877, 5879: 5878, 5880: 5879, 5881: 5880, 5882: 5881, 5883: 5882, 5884: 5883, 5885: 5884, 5886: 5885, 5887: 5886, 5888: 5887, 5889: 5888, 5890: 5889, 5891: 5890, 5892: 5891, 5893: 5892, 5894: 5893, 5895: 5894, 5896: 5895, 5897: 5896, 5898: 5897, 5899: 5898, 5900: 5899, 5901: 5900, 5902: 5901, 5903: 5902, 5904: 5903, 5905: 5904, 5906: 5905, 5907: 5906, 5908: 5907, 5909: 5908, 5910: 5909, 5911: 5910, 5912: 5911, 5913: 5912, 5914: 5913, 5915: 5914, 5916: 5915, 5917: 5916, 5918: 5917, 5919: 5918, 5920: 5919, 5921: 5920, 5922: 5921, 5923: 5922, 5924: 5923, 5925: 5924, 5926: 5925, 5927: 5926, 5928: 5927, 5929: 5928, 5930: 5929, 5931: 5930, 5932: 5931, 5933: 5932, 5934: 5933, 5935: 5934, 5936: 5935, 5937: 5936, 5938: 5937, 5939: 5938, 5940: 5939, 5941: 5940, 5942: 5941, 5943: 5942, 5944: 5943, 5945: 5944, 5946: 5945, 5947: 5946, 5948: 5947, 5949: 5948, 5950: 5949, 5951: 5950, 5952: 5951, 5953: 5952, 5954: 5953, 5955: 5954, 5956: 5955, 5957: 5956, 5958: 5957, 5959: 5958, 5960: 5959, 5961: 5960, 5962: 5961, 5963: 5962, 5964: 5963, 5965: 5964, 5966: 5965, 5967: 5966, 5968: 5967, 5969: 5968, 5970: 5969, 5971: 5970, 5972: 5971, 5973: 5972, 5974: 5973, 5975: 5974, 5976: 5975, 5977: 5976, 5978: 5977, 5979: 5978, 5980: 5979, 5981: 5980, 5982: 5981, 5983: 5982, 5984: 5983, 5985: 5984, 5986: 5985, 5987: 5986, 5988: 5987, 5989: 5988, 5990: 5989, 5991: 5990, 5992: 5991, 5993: 5992, 5994: 5993, 5995: 5994, 5996: 5995, 5997: 5996, 5998: 5997, 5999: 5998, 6000: 5999, 6001: 6000, 6002: 6001, 6003: 6002, 6004: 6003, 6005: 6004, 6006: 6005, 6007: 6006, 6008: 6007, 6009: 6008, 6010: 6009, 6011: 6010, 6012: 6011, 6013: 6012, 6014: 6013, 6015: 6014, 6016: 6015, 6017: 6016, 6018: 6017, 6019: 6018, 6020: 6019, 6021: 6020, 6022: 6021, 6023: 6022, 6024: 6023, 6025: 6024, 6026: 6025, 6027: 6026, 6028: 6027, 6029: 6028, 6030: 6029, 6031: 6030, 6032: 6031, 6033: 6032, 6034: 6033, 6035: 6034, 6036: 6035, 6037: 6036, 6038: 6037, 6039: 6038, 6040: 6039}} {'user_id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 30: 31, 31: 32, 32: 33, 33: 34, 34: 35, 35: 36, 36: 37, 37: 38, 38: 39, 39: 40, 40: 41, 41: 42, 42: 43, 43: 44, 44: 45, 45: 46, 46: 47, 47: 48, 48: 49, 49: 50, 50: 51, 51: 52, 52: 53, 53: 54, 54: 55, 55: 56, 56: 57, 57: 58, 58: 59, 59: 60, 60: 61, 61: 62, 62: 63, 63: 64, 64: 65, 65: 66, 66: 67, 67: 68, 68: 69, 69: 70, 70: 71, 71: 72, 72: 73, 73: 74, 74: 75, 75: 76, 76: 77, 77: 78, 78: 79, 79: 80, 80: 81, 81: 82, 82: 83, 83: 84, 84: 85, 85: 86, 86: 87, 87: 88, 88: 89, 89: 90, 90: 91, 91: 92, 92: 93, 93: 94, 94: 95, 95: 96, 96: 97, 97: 98, 98: 99, 99: 100, 100: 101, 101: 102, 102: 103, 103: 104, 104: 105, 105: 106, 106: 107, 107: 108, 108: 109, 109: 110, 110: 111, 111: 112, 112: 113, 113: 114, 114: 115, 115: 116, 116: 117, 117: 118, 118: 119, 119: 120, 120: 121, 121: 122, 122: 123, 123: 124, 124: 125, 125: 126, 126: 127, 127: 128, 128: 129, 129: 130, 130: 131, 131: 132, 132: 133, 133: 134, 134: 135, 135: 136, 136: 137, 137: 138, 138: 139, 139: 140, 140: 141, 141: 142, 142: 143, 143: 144, 144: 145, 145: 146, 146: 147, 147: 148, 148: 149, 149: 150, 150: 151, 151: 152, 152: 153, 153: 154, 154: 155, 155: 156, 156: 157, 157: 158, 158: 159, 159: 160, 160: 161, 161: 162, 162: 163, 163: 164, 164: 165, 165: 166, 166: 167, 167: 168, 168: 169, 169: 170, 170: 171, 171: 172, 172: 173, 173: 174, 174: 175, 175: 176, 176: 177, 177: 178, 178: 179, 179: 180, 180: 181, 181: 182, 182: 183, 183: 184, 184: 185, 185: 186, 186: 187, 187: 188, 188: 189, 189: 190, 190: 191, 191: 192, 192: 193, 193: 194, 194: 195, 195: 196, 196: 197, 197: 198, 198: 199, 199: 200, 200: 201, 201: 202, 202: 203, 203: 204, 204: 205, 205: 206, 206: 207, 207: 208, 208: 209, 209: 210, 210: 211, 211: 212, 212: 213, 213: 214, 214: 215, 215: 216, 216: 217, 217: 218, 218: 219, 219: 220, 220: 221, 221: 222, 222: 223, 223: 224, 224: 225, 225: 226, 226: 227, 227: 228, 228: 229, 229: 230, 230: 231, 231: 232, 232: 233, 233: 234, 234: 235, 235: 236, 236: 237, 237: 238, 238: 239, 239: 240, 240: 241, 241: 242, 242: 243, 243: 244, 244: 245, 245: 246, 246: 247, 247: 248, 248: 249, 249: 250, 250: 251, 251: 252, 252: 253, 253: 254, 254: 255, 255: 256, 256: 257, 257: 258, 258: 259, 259: 260, 260: 261, 261: 262, 262: 263, 263: 264, 264: 265, 265: 266, 266: 267, 267: 268, 268: 269, 269: 270, 270: 271, 271: 272, 272: 273, 273: 274, 274: 275, 275: 276, 276: 277, 277: 278, 278: 279, 279: 280, 280: 281, 281: 282, 282: 283, 283: 284, 284: 285, 285: 286, 286: 287, 287: 288, 288: 289, 289: 290, 290: 291, 291: 292, 292: 293, 293: 294, 294: 295, 295: 296, 296: 297, 297: 298, 298: 299, 299: 300, 300: 301, 301: 302, 302: 303, 303: 304, 304: 305, 305: 306, 306: 307, 307: 308, 308: 309, 309: 310, 310: 311, 311: 312, 312: 313, 313: 314, 314: 315, 315: 316, 316: 317, 317: 318, 318: 319, 319: 320, 320: 321, 321: 322, 322: 323, 323: 324, 324: 325, 325: 326, 326: 327, 327: 328, 328: 329, 329: 330, 330: 331, 331: 332, 332: 333, 333: 334, 334: 335, 335: 336, 336: 337, 337: 338, 338: 339, 339: 340, 340: 341, 341: 342, 342: 343, 343: 344, 344: 345, 345: 346, 346: 347, 347: 348, 348: 349, 349: 350, 350: 351, 351: 352, 352: 353, 353: 354, 354: 355, 355: 356, 356: 357, 357: 358, 358: 359, 359: 360, 360: 361, 361: 362, 362: 363, 363: 364, 364: 365, 365: 366, 366: 367, 367: 368, 368: 369, 369: 370, 370: 371, 371: 372, 372: 373, 373: 374, 374: 375, 375: 376, 376: 377, 377: 378, 378: 379, 379: 380, 380: 381, 381: 382, 382: 383, 383: 384, 384: 385, 385: 386, 386: 387, 387: 388, 388: 389, 389: 390, 390: 391, 391: 392, 392: 393, 393: 394, 394: 395, 395: 396, 396: 397, 397: 398, 398: 399, 399: 400, 400: 401, 401: 402, 402: 403, 403: 404, 404: 405, 405: 406, 406: 407, 407: 408, 408: 409, 409: 410, 410: 411, 411: 412, 412: 413, 413: 414, 414: 415, 415: 416, 416: 417, 417: 418, 418: 419, 419: 420, 420: 421, 421: 422, 422: 423, 423: 424, 424: 425, 425: 426, 426: 427, 427: 428, 428: 429, 429: 430, 430: 431, 431: 432, 432: 433, 433: 434, 434: 435, 435: 436, 436: 437, 437: 438, 438: 439, 439: 440, 440: 441, 441: 442, 442: 443, 443: 444, 444: 445, 445: 446, 446: 447, 447: 448, 448: 449, 449: 450, 450: 451, 451: 452, 452: 453, 453: 454, 454: 455, 455: 456, 456: 457, 457: 458, 458: 459, 459: 460, 460: 461, 461: 462, 462: 463, 463: 464, 464: 465, 465: 466, 466: 467, 467: 468, 468: 469, 469: 470, 470: 471, 471: 472, 472: 473, 473: 474, 474: 475, 475: 476, 476: 477, 477: 478, 478: 479, 479: 480, 480: 481, 481: 482, 482: 483, 483: 484, 484: 485, 485: 486, 486: 487, 487: 488, 488: 489, 489: 490, 490: 491, 491: 492, 492: 493, 493: 494, 494: 495, 495: 496, 496: 497, 497: 498, 498: 499, 499: 500, 500: 501, 501: 502, 502: 503, 503: 504, 504: 505, 505: 506, 506: 507, 507: 508, 508: 509, 509: 510, 510: 511, 511: 512, 512: 513, 513: 514, 514: 515, 515: 516, 516: 517, 517: 518, 518: 519, 519: 520, 520: 521, 521: 522, 522: 523, 523: 524, 524: 525, 525: 526, 526: 527, 527: 528, 528: 529, 529: 530, 530: 531, 531: 532, 532: 533, 533: 534, 534: 535, 535: 536, 536: 537, 537: 538, 538: 539, 539: 540, 540: 541, 541: 542, 542: 543, 543: 544, 544: 545, 545: 546, 546: 547, 547: 548, 548: 549, 549: 550, 550: 551, 551: 552, 552: 553, 553: 554, 554: 555, 555: 556, 556: 557, 557: 558, 558: 559, 559: 560, 560: 561, 561: 562, 562: 563, 563: 564, 564: 565, 565: 566, 566: 567, 567: 568, 568: 569, 569: 570, 570: 571, 571: 572, 572: 573, 573: 574, 574: 575, 575: 576, 576: 577, 577: 578, 578: 579, 579: 580, 580: 581, 581: 582, 582: 583, 583: 584, 584: 585, 585: 586, 586: 587, 587: 588, 588: 589, 589: 590, 590: 591, 591: 592, 592: 593, 593: 594, 594: 595, 595: 596, 596: 597, 597: 598, 598: 599, 599: 600, 600: 601, 601: 602, 602: 603, 603: 604, 604: 605, 605: 606, 606: 607, 607: 608, 608: 609, 609: 610, 610: 611, 611: 612, 612: 613, 613: 614, 614: 615, 615: 616, 616: 617, 617: 618, 618: 619, 619: 620, 620: 621, 621: 622, 622: 623, 623: 624, 624: 625, 625: 626, 626: 627, 627: 628, 628: 629, 629: 630, 630: 631, 631: 632, 632: 633, 633: 634, 634: 635, 635: 636, 636: 637, 637: 638, 638: 639, 639: 640, 640: 641, 641: 642, 642: 643, 643: 644, 644: 645, 645: 646, 646: 647, 647: 648, 648: 649, 649: 650, 650: 651, 651: 652, 652: 653, 653: 654, 654: 655, 655: 656, 656: 657, 657: 658, 658: 659, 659: 660, 660: 661, 661: 662, 662: 663, 663: 664, 664: 665, 665: 666, 666: 667, 667: 668, 668: 669, 669: 670, 670: 671, 671: 672, 672: 673, 673: 674, 674: 675, 675: 676, 676: 677, 677: 678, 678: 679, 679: 680, 680: 681, 681: 682, 682: 683, 683: 684, 684: 685, 685: 686, 686: 687, 687: 688, 688: 689, 689: 690, 690: 691, 691: 692, 692: 693, 693: 694, 694: 695, 695: 696, 696: 697, 697: 698, 698: 699, 699: 700, 700: 701, 701: 702, 702: 703, 703: 704, 704: 705, 705: 706, 706: 707, 707: 708, 708: 709, 709: 710, 710: 711, 711: 712, 712: 713, 713: 714, 714: 715, 715: 716, 716: 717, 717: 718, 718: 719, 719: 720, 720: 721, 721: 722, 722: 723, 723: 724, 724: 725, 725: 726, 726: 727, 727: 728, 728: 729, 729: 730, 730: 731, 731: 732, 732: 733, 733: 734, 734: 735, 735: 736, 736: 737, 737: 738, 738: 739, 739: 740, 740: 741, 741: 742, 742: 743, 743: 744, 744: 745, 745: 746, 746: 747, 747: 748, 748: 749, 749: 750, 750: 751, 751: 752, 752: 753, 753: 754, 754: 755, 755: 756, 756: 757, 757: 758, 758: 759, 759: 760, 760: 761, 761: 762, 762: 763, 763: 764, 764: 765, 765: 766, 766: 767, 767: 768, 768: 769, 769: 770, 770: 771, 771: 772, 772: 773, 773: 774, 774: 775, 775: 776, 776: 777, 777: 778, 778: 779, 779: 780, 780: 781, 781: 782, 782: 783, 783: 784, 784: 785, 785: 786, 786: 787, 787: 788, 788: 789, 789: 790, 790: 791, 791: 792, 792: 793, 793: 794, 794: 795, 795: 796, 796: 797, 797: 798, 798: 799, 799: 800, 800: 801, 801: 802, 802: 803, 803: 804, 804: 805, 805: 806, 806: 807, 807: 808, 808: 809, 809: 810, 810: 811, 811: 812, 812: 813, 813: 814, 814: 815, 815: 816, 816: 817, 817: 818, 818: 819, 819: 820, 820: 821, 821: 822, 822: 823, 823: 824, 824: 825, 825: 826, 826: 827, 827: 828, 828: 829, 829: 830, 830: 831, 831: 832, 832: 833, 833: 834, 834: 835, 835: 836, 836: 837, 837: 838, 838: 839, 839: 840, 840: 841, 841: 842, 842: 843, 843: 844, 844: 845, 845: 846, 846: 847, 847: 848, 848: 849, 849: 850, 850: 851, 851: 852, 852: 853, 853: 854, 854: 855, 855: 856, 856: 857, 857: 858, 858: 859, 859: 860, 860: 861, 861: 862, 862: 863, 863: 864, 864: 865, 865: 866, 866: 867, 867: 868, 868: 869, 869: 870, 870: 871, 871: 872, 872: 873, 873: 874, 874: 875, 875: 876, 876: 877, 877: 878, 878: 879, 879: 880, 880: 881, 881: 882, 882: 883, 883: 884, 884: 885, 885: 886, 886: 887, 887: 888, 888: 889, 889: 890, 890: 891, 891: 892, 892: 893, 893: 894, 894: 895, 895: 896, 896: 897, 897: 898, 898: 899, 899: 900, 900: 901, 901: 902, 902: 903, 903: 904, 904: 905, 905: 906, 906: 907, 907: 908, 908: 909, 909: 910, 910: 911, 911: 912, 912: 913, 913: 914, 914: 915, 915: 916, 916: 917, 917: 918, 918: 919, 919: 920, 920: 921, 921: 922, 922: 923, 923: 924, 924: 925, 925: 926, 926: 927, 927: 928, 928: 929, 929: 930, 930: 931, 931: 932, 932: 933, 933: 934, 934: 935, 935: 936, 936: 937, 937: 938, 938: 939, 939: 940, 940: 941, 941: 942, 942: 943, 943: 944, 944: 945, 945: 946, 946: 947, 947: 948, 948: 949, 949: 950, 950: 951, 951: 952, 952: 953, 953: 954, 954: 955, 955: 956, 956: 957, 957: 958, 958: 959, 959: 960, 960: 961, 961: 962, 962: 963, 963: 964, 964: 965, 965: 966, 966: 967, 967: 968, 968: 969, 969: 970, 970: 971, 971: 972, 972: 973, 973: 974, 974: 975, 975: 976, 976: 977, 977: 978, 978: 979, 979: 980, 980: 981, 981: 982, 982: 983, 983: 984, 984: 985, 985: 986, 986: 987, 987: 988, 988: 989, 989: 990, 990: 991, 991: 992, 992: 993, 993: 994, 994: 995, 995: 996, 996: 997, 997: 998, 998: 999, 999: 1000, 1000: 1001, 1001: 1002, 1002: 1003, 1003: 1004, 1004: 1005, 1005: 1006, 1006: 1007, 1007: 1008, 1008: 1009, 1009: 1010, 1010: 1011, 1011: 1012, 1012: 1013, 1013: 1014, 1014: 1015, 1015: 1016, 1016: 1017, 1017: 1018, 1018: 1019, 1019: 1020, 1020: 1021, 1021: 1022, 1022: 1023, 1023: 1024, 1024: 1025, 1025: 1026, 1026: 1027, 1027: 1028, 1028: 1029, 1029: 1030, 1030: 1031, 1031: 1032, 1032: 1033, 1033: 1034, 1034: 1035, 1035: 1036, 1036: 1037, 1037: 1038, 1038: 1039, 1039: 1040, 1040: 1041, 1041: 1042, 1042: 1043, 1043: 1044, 1044: 1045, 1045: 1046, 1046: 1047, 1047: 1048, 1048: 1049, 1049: 1050, 1050: 1051, 1051: 1052, 1052: 1053, 1053: 1054, 1054: 1055, 1055: 1056, 1056: 1057, 1057: 1058, 1058: 1059, 1059: 1060, 1060: 1061, 1061: 1062, 1062: 1063, 1063: 1064, 1064: 1065, 1065: 1066, 1066: 1067, 1067: 1068, 1068: 1069, 1069: 1070, 1070: 1071, 1071: 1072, 1072: 1073, 1073: 1074, 1074: 1075, 1075: 1076, 1076: 1077, 1077: 1078, 1078: 1079, 1079: 1080, 1080: 1081, 1081: 1082, 1082: 1083, 1083: 1084, 1084: 1085, 1085: 1086, 1086: 1087, 1087: 1088, 1088: 1089, 1089: 1090, 1090: 1091, 1091: 1092, 1092: 1093, 1093: 1094, 1094: 1095, 1095: 1096, 1096: 1097, 1097: 1098, 1098: 1099, 1099: 1100, 1100: 1101, 1101: 1102, 1102: 1103, 1103: 1104, 1104: 1105, 1105: 1106, 1106: 1107, 1107: 1108, 1108: 1109, 1109: 1110, 1110: 1111, 1111: 1112, 1112: 1113, 1113: 1114, 1114: 1115, 1115: 1116, 1116: 1117, 1117: 1118, 1118: 1119, 1119: 1120, 1120: 1121, 1121: 1122, 1122: 1123, 1123: 1124, 1124: 1125, 1125: 1126, 1126: 1127, 1127: 1128, 1128: 1129, 1129: 1130, 1130: 1131, 1131: 1132, 1132: 1133, 1133: 1134, 1134: 1135, 1135: 1136, 1136: 1137, 1137: 1138, 1138: 1139, 1139: 1140, 1140: 1141, 1141: 1142, 1142: 1143, 1143: 1144, 1144: 1145, 1145: 1146, 1146: 1147, 1147: 1148, 1148: 1149, 1149: 1150, 1150: 1151, 1151: 1152, 1152: 1153, 1153: 1154, 1154: 1155, 1155: 1156, 1156: 1157, 1157: 1158, 1158: 1159, 1159: 1160, 1160: 1161, 1161: 1162, 1162: 1163, 1163: 1164, 1164: 1165, 1165: 1166, 1166: 1167, 1167: 1168, 1168: 1169, 1169: 1170, 1170: 1171, 1171: 1172, 1172: 1173, 1173: 1174, 1174: 1175, 1175: 1176, 1176: 1177, 1177: 1178, 1178: 1179, 1179: 1180, 1180: 1181, 1181: 1182, 1182: 1183, 1183: 1184, 1184: 1185, 1185: 1186, 1186: 1187, 1187: 1188, 1188: 1189, 1189: 1190, 1190: 1191, 1191: 1192, 1192: 1193, 1193: 1194, 1194: 1195, 1195: 1196, 1196: 1197, 1197: 1198, 1198: 1199, 1199: 1200, 1200: 1201, 1201: 1202, 1202: 1203, 1203: 1204, 1204: 1205, 1205: 1206, 1206: 1207, 1207: 1208, 1208: 1209, 1209: 1210, 1210: 1211, 1211: 1212, 1212: 1213, 1213: 1214, 1214: 1215, 1215: 1216, 1216: 1217, 1217: 1218, 1218: 1219, 1219: 1220, 1220: 1221, 1221: 1222, 1222: 1223, 1223: 1224, 1224: 1225, 1225: 1226, 1226: 1227, 1227: 1228, 1228: 1229, 1229: 1230, 1230: 1231, 1231: 1232, 1232: 1233, 1233: 1234, 1234: 1235, 1235: 1236, 1236: 1237, 1237: 1238, 1238: 1239, 1239: 1240, 1240: 1241, 1241: 1242, 1242: 1243, 1243: 1244, 1244: 1245, 1245: 1246, 1246: 1247, 1247: 1248, 1248: 1249, 1249: 1250, 1250: 1251, 1251: 1252, 1252: 1253, 1253: 1254, 1254: 1255, 1255: 1256, 1256: 1257, 1257: 1258, 1258: 1259, 1259: 1260, 1260: 1261, 1261: 1262, 1262: 1263, 1263: 1264, 1264: 1265, 1265: 1266, 1266: 1267, 1267: 1268, 1268: 1269, 1269: 1270, 1270: 1271, 1271: 1272, 1272: 1273, 1273: 1274, 1274: 1275, 1275: 1276, 1276: 1277, 1277: 1278, 1278: 1279, 1279: 1280, 1280: 1281, 1281: 1282, 1282: 1283, 1283: 1284, 1284: 1285, 1285: 1286, 1286: 1287, 1287: 1288, 1288: 1289, 1289: 1290, 1290: 1291, 1291: 1292, 1292: 1293, 1293: 1294, 1294: 1295, 1295: 1296, 1296: 1297, 1297: 1298, 1298: 1299, 1299: 1300, 1300: 1301, 1301: 1302, 1302: 1303, 1303: 1304, 1304: 1305, 1305: 1306, 1306: 1307, 1307: 1308, 1308: 1309, 1309: 1310, 1310: 1311, 1311: 1312, 1312: 1313, 1313: 1314, 1314: 1315, 1315: 1316, 1316: 1317, 1317: 1318, 1318: 1319, 1319: 1320, 1320: 1321, 1321: 1322, 1322: 1323, 1323: 1324, 1324: 1325, 1325: 1326, 1326: 1327, 1327: 1328, 1328: 1329, 1329: 1330, 1330: 1331, 1331: 1332, 1332: 1333, 1333: 1334, 1334: 1335, 1335: 1336, 1336: 1337, 1337: 1338, 1338: 1339, 1339: 1340, 1340: 1341, 1341: 1342, 1342: 1343, 1343: 1344, 1344: 1345, 1345: 1346, 1346: 1347, 1347: 1348, 1348: 1349, 1349: 1350, 1350: 1351, 1351: 1352, 1352: 1353, 1353: 1354, 1354: 1355, 1355: 1356, 1356: 1357, 1357: 1358, 1358: 1359, 1359: 1360, 1360: 1361, 1361: 1362, 1362: 1363, 1363: 1364, 1364: 1365, 1365: 1366, 1366: 1367, 1367: 1368, 1368: 1369, 1369: 1370, 1370: 1371, 1371: 1372, 1372: 1373, 1373: 1374, 1374: 1375, 1375: 1376, 1376: 1377, 1377: 1378, 1378: 1379, 1379: 1380, 1380: 1381, 1381: 1382, 1382: 1383, 1383: 1384, 1384: 1385, 1385: 1386, 1386: 1387, 1387: 1388, 1388: 1389, 1389: 1390, 1390: 1391, 1391: 1392, 1392: 1393, 1393: 1394, 1394: 1395, 1395: 1396, 1396: 1397, 1397: 1398, 1398: 1399, 1399: 1400, 1400: 1401, 1401: 1402, 1402: 1403, 1403: 1404, 1404: 1405, 1405: 1406, 1406: 1407, 1407: 1408, 1408: 1409, 1409: 1410, 1410: 1411, 1411: 1412, 1412: 1413, 1413: 1414, 1414: 1415, 1415: 1416, 1416: 1417, 1417: 1418, 1418: 1419, 1419: 1420, 1420: 1421, 1421: 1422, 1422: 1423, 1423: 1424, 1424: 1425, 1425: 1426, 1426: 1427, 1427: 1428, 1428: 1429, 1429: 1430, 1430: 1431, 1431: 1432, 1432: 1433, 1433: 1434, 1434: 1435, 1435: 1436, 1436: 1437, 1437: 1438, 1438: 1439, 1439: 1440, 1440: 1441, 1441: 1442, 1442: 1443, 1443: 1444, 1444: 1445, 1445: 1446, 1446: 1447, 1447: 1448, 1448: 1449, 1449: 1450, 1450: 1451, 1451: 1452, 1452: 1453, 1453: 1454, 1454: 1455, 1455: 1456, 1456: 1457, 1457: 1458, 1458: 1459, 1459: 1460, 1460: 1461, 1461: 1462, 1462: 1463, 1463: 1464, 1464: 1465, 1465: 1466, 1466: 1467, 1467: 1468, 1468: 1469, 1469: 1470, 1470: 1471, 1471: 1472, 1472: 1473, 1473: 1474, 1474: 1475, 1475: 1476, 1476: 1477, 1477: 1478, 1478: 1479, 1479: 1480, 1480: 1481, 1481: 1482, 1482: 1483, 1483: 1484, 1484: 1485, 1485: 1486, 1486: 1487, 1487: 1488, 1488: 1489, 1489: 1490, 1490: 1491, 1491: 1492, 1492: 1493, 1493: 1494, 1494: 1495, 1495: 1496, 1496: 1497, 1497: 1498, 1498: 1499, 1499: 1500, 1500: 1501, 1501: 1502, 1502: 1503, 1503: 1504, 1504: 1505, 1505: 1506, 1506: 1507, 1507: 1508, 1508: 1509, 1509: 1510, 1510: 1511, 1511: 1512, 1512: 1513, 1513: 1514, 1514: 1515, 1515: 1516, 1516: 1517, 1517: 1518, 1518: 1519, 1519: 1520, 1520: 1521, 1521: 1522, 1522: 1523, 1523: 1524, 1524: 1525, 1525: 1526, 1526: 1527, 1527: 1528, 1528: 1529, 1529: 1530, 1530: 1531, 1531: 1532, 1532: 1533, 1533: 1534, 1534: 1535, 1535: 1536, 1536: 1537, 1537: 1538, 1538: 1539, 1539: 1540, 1540: 1541, 1541: 1542, 1542: 1543, 1543: 1544, 1544: 1545, 1545: 1546, 1546: 1547, 1547: 1548, 1548: 1549, 1549: 1550, 1550: 1551, 1551: 1552, 1552: 1553, 1553: 1554, 1554: 1555, 1555: 1556, 1556: 1557, 1557: 1558, 1558: 1559, 1559: 1560, 1560: 1561, 1561: 1562, 1562: 1563, 1563: 1564, 1564: 1565, 1565: 1566, 1566: 1567, 1567: 1568, 1568: 1569, 1569: 1570, 1570: 1571, 1571: 1572, 1572: 1573, 1573: 1574, 1574: 1575, 1575: 1576, 1576: 1577, 1577: 1578, 1578: 1579, 1579: 1580, 1580: 1581, 1581: 1582, 1582: 1583, 1583: 1584, 1584: 1585, 1585: 1586, 1586: 1587, 1587: 1588, 1588: 1589, 1589: 1590, 1590: 1591, 1591: 1592, 1592: 1593, 1593: 1594, 1594: 1595, 1595: 1596, 1596: 1597, 1597: 1598, 1598: 1599, 1599: 1600, 1600: 1601, 1601: 1602, 1602: 1603, 1603: 1604, 1604: 1605, 1605: 1606, 1606: 1607, 1607: 1608, 1608: 1609, 1609: 1610, 1610: 1611, 1611: 1612, 1612: 1613, 1613: 1614, 1614: 1615, 1615: 1616, 1616: 1617, 1617: 1618, 1618: 1619, 1619: 1620, 1620: 1621, 1621: 1622, 1622: 1623, 1623: 1624, 1624: 1625, 1625: 1626, 1626: 1627, 1627: 1628, 1628: 1629, 1629: 1630, 1630: 1631, 1631: 1632, 1632: 1633, 1633: 1634, 1634: 1635, 1635: 1636, 1636: 1637, 1637: 1638, 1638: 1639, 1639: 1640, 1640: 1641, 1641: 1642, 1642: 1643, 1643: 1644, 1644: 1645, 1645: 1646, 1646: 1647, 1647: 1648, 1648: 1649, 1649: 1650, 1650: 1651, 1651: 1652, 1652: 1653, 1653: 1654, 1654: 1655, 1655: 1656, 1656: 1657, 1657: 1658, 1658: 1659, 1659: 1660, 1660: 1661, 1661: 1662, 1662: 1663, 1663: 1664, 1664: 1665, 1665: 1666, 1666: 1667, 1667: 1668, 1668: 1669, 1669: 1670, 1670: 1671, 1671: 1672, 1672: 1673, 1673: 1674, 1674: 1675, 1675: 1676, 1676: 1677, 1677: 1678, 1678: 1679, 1679: 1680, 1680: 1681, 1681: 1682, 1682: 1683, 1683: 1684, 1684: 1685, 1685: 1686, 1686: 1687, 1687: 1688, 1688: 1689, 1689: 1690, 1690: 1691, 1691: 1692, 1692: 1693, 1693: 1694, 1694: 1695, 1695: 1696, 1696: 1697, 1697: 1698, 1698: 1699, 1699: 1700, 1700: 1701, 1701: 1702, 1702: 1703, 1703: 1704, 1704: 1705, 1705: 1706, 1706: 1707, 1707: 1708, 1708: 1709, 1709: 1710, 1710: 1711, 1711: 1712, 1712: 1713, 1713: 1714, 1714: 1715, 1715: 1716, 1716: 1717, 1717: 1718, 1718: 1719, 1719: 1720, 1720: 1721, 1721: 1722, 1722: 1723, 1723: 1724, 1724: 1725, 1725: 1726, 1726: 1727, 1727: 1728, 1728: 1729, 1729: 1730, 1730: 1731, 1731: 1732, 1732: 1733, 1733: 1734, 1734: 1735, 1735: 1736, 1736: 1737, 1737: 1738, 1738: 1739, 1739: 1740, 1740: 1741, 1741: 1742, 1742: 1743, 1743: 1744, 1744: 1745, 1745: 1746, 1746: 1747, 1747: 1748, 1748: 1749, 1749: 1750, 1750: 1751, 1751: 1752, 1752: 1753, 1753: 1754, 1754: 1755, 1755: 1756, 1756: 1757, 1757: 1758, 1758: 1759, 1759: 1760, 1760: 1761, 1761: 1762, 1762: 1763, 1763: 1764, 1764: 1765, 1765: 1766, 1766: 1767, 1767: 1768, 1768: 1769, 1769: 1770, 1770: 1771, 1771: 1772, 1772: 1773, 1773: 1774, 1774: 1775, 1775: 1776, 1776: 1777, 1777: 1778, 1778: 1779, 1779: 1780, 1780: 1781, 1781: 1782, 1782: 1783, 1783: 1784, 1784: 1785, 1785: 1786, 1786: 1787, 1787: 1788, 1788: 1789, 1789: 1790, 1790: 1791, 1791: 1792, 1792: 1793, 1793: 1794, 1794: 1795, 1795: 1796, 1796: 1797, 1797: 1798, 1798: 1799, 1799: 1800, 1800: 1801, 1801: 1802, 1802: 1803, 1803: 1804, 1804: 1805, 1805: 1806, 1806: 1807, 1807: 1808, 1808: 1809, 1809: 1810, 1810: 1811, 1811: 1812, 1812: 1813, 1813: 1814, 1814: 1815, 1815: 1816, 1816: 1817, 1817: 1818, 1818: 1819, 1819: 1820, 1820: 1821, 1821: 1822, 1822: 1823, 1823: 1824, 1824: 1825, 1825: 1826, 1826: 1827, 1827: 1828, 1828: 1829, 1829: 1830, 1830: 1831, 1831: 1832, 1832: 1833, 1833: 1834, 1834: 1835, 1835: 1836, 1836: 1837, 1837: 1838, 1838: 1839, 1839: 1840, 1840: 1841, 1841: 1842, 1842: 1843, 1843: 1844, 1844: 1845, 1845: 1846, 1846: 1847, 1847: 1848, 1848: 1849, 1849: 1850, 1850: 1851, 1851: 1852, 1852: 1853, 1853: 1854, 1854: 1855, 1855: 1856, 1856: 1857, 1857: 1858, 1858: 1859, 1859: 1860, 1860: 1861, 1861: 1862, 1862: 1863, 1863: 1864, 1864: 1865, 1865: 1866, 1866: 1867, 1867: 1868, 1868: 1869, 1869: 1870, 1870: 1871, 1871: 1872, 1872: 1873, 1873: 1874, 1874: 1875, 1875: 1876, 1876: 1877, 1877: 1878, 1878: 1879, 1879: 1880, 1880: 1881, 1881: 1882, 1882: 1883, 1883: 1884, 1884: 1885, 1885: 1886, 1886: 1887, 1887: 1888, 1888: 1889, 1889: 1890, 1890: 1891, 1891: 1892, 1892: 1893, 1893: 1894, 1894: 1895, 1895: 1896, 1896: 1897, 1897: 1898, 1898: 1899, 1899: 1900, 1900: 1901, 1901: 1902, 1902: 1903, 1903: 1904, 1904: 1905, 1905: 1906, 1906: 1907, 1907: 1908, 1908: 1909, 1909: 1910, 1910: 1911, 1911: 1912, 1912: 1913, 1913: 1914, 1914: 1915, 1915: 1916, 1916: 1917, 1917: 1918, 1918: 1919, 1919: 1920, 1920: 1921, 1921: 1922, 1922: 1923, 1923: 1924, 1924: 1925, 1925: 1926, 1926: 1927, 1927: 1928, 1928: 1929, 1929: 1930, 1930: 1931, 1931: 1932, 1932: 1933, 1933: 1934, 1934: 1935, 1935: 1936, 1936: 1937, 1937: 1938, 1938: 1939, 1939: 1940, 1940: 1941, 1941: 1942, 1942: 1943, 1943: 1944, 1944: 1945, 1945: 1946, 1946: 1947, 1947: 1948, 1948: 1949, 1949: 1950, 1950: 1951, 1951: 1952, 1952: 1953, 1953: 1954, 1954: 1955, 1955: 1956, 1956: 1957, 1957: 1958, 1958: 1959, 1959: 1960, 1960: 1961, 1961: 1962, 1962: 1963, 1963: 1964, 1964: 1965, 1965: 1966, 1966: 1967, 1967: 1968, 1968: 1969, 1969: 1970, 1970: 1971, 1971: 1972, 1972: 1973, 1973: 1974, 1974: 1975, 1975: 1976, 1976: 1977, 1977: 1978, 1978: 1979, 1979: 1980, 1980: 1981, 1981: 1982, 1982: 1983, 1983: 1984, 1984: 1985, 1985: 1986, 1986: 1987, 1987: 1988, 1988: 1989, 1989: 1990, 1990: 1991, 1991: 1992, 1992: 1993, 1993: 1994, 1994: 1995, 1995: 1996, 1996: 1997, 1997: 1998, 1998: 1999, 1999: 2000, 2000: 2001, 2001: 2002, 2002: 2003, 2003: 2004, 2004: 2005, 2005: 2006, 2006: 2007, 2007: 2008, 2008: 2009, 2009: 2010, 2010: 2011, 2011: 2012, 2012: 2013, 2013: 2014, 2014: 2015, 2015: 2016, 2016: 2017, 2017: 2018, 2018: 2019, 2019: 2020, 2020: 2021, 2021: 2022, 2022: 2023, 2023: 2024, 2024: 2025, 2025: 2026, 2026: 2027, 2027: 2028, 2028: 2029, 2029: 2030, 2030: 2031, 2031: 2032, 2032: 2033, 2033: 2034, 2034: 2035, 2035: 2036, 2036: 2037, 2037: 2038, 2038: 2039, 2039: 2040, 2040: 2041, 2041: 2042, 2042: 2043, 2043: 2044, 2044: 2045, 2045: 2046, 2046: 2047, 2047: 2048, 2048: 2049, 2049: 2050, 2050: 2051, 2051: 2052, 2052: 2053, 2053: 2054, 2054: 2055, 2055: 2056, 2056: 2057, 2057: 2058, 2058: 2059, 2059: 2060, 2060: 2061, 2061: 2062, 2062: 2063, 2063: 2064, 2064: 2065, 2065: 2066, 2066: 2067, 2067: 2068, 2068: 2069, 2069: 2070, 2070: 2071, 2071: 2072, 2072: 2073, 2073: 2074, 2074: 2075, 2075: 2076, 2076: 2077, 2077: 2078, 2078: 2079, 2079: 2080, 2080: 2081, 2081: 2082, 2082: 2083, 2083: 2084, 2084: 2085, 2085: 2086, 2086: 2087, 2087: 2088, 2088: 2089, 2089: 2090, 2090: 2091, 2091: 2092, 2092: 2093, 2093: 2094, 2094: 2095, 2095: 2096, 2096: 2097, 2097: 2098, 2098: 2099, 2099: 2100, 2100: 2101, 2101: 2102, 2102: 2103, 2103: 2104, 2104: 2105, 2105: 2106, 2106: 2107, 2107: 2108, 2108: 2109, 2109: 2110, 2110: 2111, 2111: 2112, 2112: 2113, 2113: 2114, 2114: 2115, 2115: 2116, 2116: 2117, 2117: 2118, 2118: 2119, 2119: 2120, 2120: 2121, 2121: 2122, 2122: 2123, 2123: 2124, 2124: 2125, 2125: 2126, 2126: 2127, 2127: 2128, 2128: 2129, 2129: 2130, 2130: 2131, 2131: 2132, 2132: 2133, 2133: 2134, 2134: 2135, 2135: 2136, 2136: 2137, 2137: 2138, 2138: 2139, 2139: 2140, 2140: 2141, 2141: 2142, 2142: 2143, 2143: 2144, 2144: 2145, 2145: 2146, 2146: 2147, 2147: 2148, 2148: 2149, 2149: 2150, 2150: 2151, 2151: 2152, 2152: 2153, 2153: 2154, 2154: 2155, 2155: 2156, 2156: 2157, 2157: 2158, 2158: 2159, 2159: 2160, 2160: 2161, 2161: 2162, 2162: 2163, 2163: 2164, 2164: 2165, 2165: 2166, 2166: 2167, 2167: 2168, 2168: 2169, 2169: 2170, 2170: 2171, 2171: 2172, 2172: 2173, 2173: 2174, 2174: 2175, 2175: 2176, 2176: 2177, 2177: 2178, 2178: 2179, 2179: 2180, 2180: 2181, 2181: 2182, 2182: 2183, 2183: 2184, 2184: 2185, 2185: 2186, 2186: 2187, 2187: 2188, 2188: 2189, 2189: 2190, 2190: 2191, 2191: 2192, 2192: 2193, 2193: 2194, 2194: 2195, 2195: 2196, 2196: 2197, 2197: 2198, 2198: 2199, 2199: 2200, 2200: 2201, 2201: 2202, 2202: 2203, 2203: 2204, 2204: 2205, 2205: 2206, 2206: 2207, 2207: 2208, 2208: 2209, 2209: 2210, 2210: 2211, 2211: 2212, 2212: 2213, 2213: 2214, 2214: 2215, 2215: 2216, 2216: 2217, 2217: 2218, 2218: 2219, 2219: 2220, 2220: 2221, 2221: 2222, 2222: 2223, 2223: 2224, 2224: 2225, 2225: 2226, 2226: 2227, 2227: 2228, 2228: 2229, 2229: 2230, 2230: 2231, 2231: 2232, 2232: 2233, 2233: 2234, 2234: 2235, 2235: 2236, 2236: 2237, 2237: 2238, 2238: 2239, 2239: 2240, 2240: 2241, 2241: 2242, 2242: 2243, 2243: 2244, 2244: 2245, 2245: 2246, 2246: 2247, 2247: 2248, 2248: 2249, 2249: 2250, 2250: 2251, 2251: 2252, 2252: 2253, 2253: 2254, 2254: 2255, 2255: 2256, 2256: 2257, 2257: 2258, 2258: 2259, 2259: 2260, 2260: 2261, 2261: 2262, 2262: 2263, 2263: 2264, 2264: 2265, 2265: 2266, 2266: 2267, 2267: 2268, 2268: 2269, 2269: 2270, 2270: 2271, 2271: 2272, 2272: 2273, 2273: 2274, 2274: 2275, 2275: 2276, 2276: 2277, 2277: 2278, 2278: 2279, 2279: 2280, 2280: 2281, 2281: 2282, 2282: 2283, 2283: 2284, 2284: 2285, 2285: 2286, 2286: 2287, 2287: 2288, 2288: 2289, 2289: 2290, 2290: 2291, 2291: 2292, 2292: 2293, 2293: 2294, 2294: 2295, 2295: 2296, 2296: 2297, 2297: 2298, 2298: 2299, 2299: 2300, 2300: 2301, 2301: 2302, 2302: 2303, 2303: 2304, 2304: 2305, 2305: 2306, 2306: 2307, 2307: 2308, 2308: 2309, 2309: 2310, 2310: 2311, 2311: 2312, 2312: 2313, 2313: 2314, 2314: 2315, 2315: 2316, 2316: 2317, 2317: 2318, 2318: 2319, 2319: 2320, 2320: 2321, 2321: 2322, 2322: 2323, 2323: 2324, 2324: 2325, 2325: 2326, 2326: 2327, 2327: 2328, 2328: 2329, 2329: 2330, 2330: 2331, 2331: 2332, 2332: 2333, 2333: 2334, 2334: 2335, 2335: 2336, 2336: 2337, 2337: 2338, 2338: 2339, 2339: 2340, 2340: 2341, 2341: 2342, 2342: 2343, 2343: 2344, 2344: 2345, 2345: 2346, 2346: 2347, 2347: 2348, 2348: 2349, 2349: 2350, 2350: 2351, 2351: 2352, 2352: 2353, 2353: 2354, 2354: 2355, 2355: 2356, 2356: 2357, 2357: 2358, 2358: 2359, 2359: 2360, 2360: 2361, 2361: 2362, 2362: 2363, 2363: 2364, 2364: 2365, 2365: 2366, 2366: 2367, 2367: 2368, 2368: 2369, 2369: 2370, 2370: 2371, 2371: 2372, 2372: 2373, 2373: 2374, 2374: 2375, 2375: 2376, 2376: 2377, 2377: 2378, 2378: 2379, 2379: 2380, 2380: 2381, 2381: 2382, 2382: 2383, 2383: 2384, 2384: 2385, 2385: 2386, 2386: 2387, 2387: 2388, 2388: 2389, 2389: 2390, 2390: 2391, 2391: 2392, 2392: 2393, 2393: 2394, 2394: 2395, 2395: 2396, 2396: 2397, 2397: 2398, 2398: 2399, 2399: 2400, 2400: 2401, 2401: 2402, 2402: 2403, 2403: 2404, 2404: 2405, 2405: 2406, 2406: 2407, 2407: 2408, 2408: 2409, 2409: 2410, 2410: 2411, 2411: 2412, 2412: 2413, 2413: 2414, 2414: 2415, 2415: 2416, 2416: 2417, 2417: 2418, 2418: 2419, 2419: 2420, 2420: 2421, 2421: 2422, 2422: 2423, 2423: 2424, 2424: 2425, 2425: 2426, 2426: 2427, 2427: 2428, 2428: 2429, 2429: 2430, 2430: 2431, 2431: 2432, 2432: 2433, 2433: 2434, 2434: 2435, 2435: 2436, 2436: 2437, 2437: 2438, 2438: 2439, 2439: 2440, 2440: 2441, 2441: 2442, 2442: 2443, 2443: 2444, 2444: 2445, 2445: 2446, 2446: 2447, 2447: 2448, 2448: 2449, 2449: 2450, 2450: 2451, 2451: 2452, 2452: 2453, 2453: 2454, 2454: 2455, 2455: 2456, 2456: 2457, 2457: 2458, 2458: 2459, 2459: 2460, 2460: 2461, 2461: 2462, 2462: 2463, 2463: 2464, 2464: 2465, 2465: 2466, 2466: 2467, 2467: 2468, 2468: 2469, 2469: 2470, 2470: 2471, 2471: 2472, 2472: 2473, 2473: 2474, 2474: 2475, 2475: 2476, 2476: 2477, 2477: 2478, 2478: 2479, 2479: 2480, 2480: 2481, 2481: 2482, 2482: 2483, 2483: 2484, 2484: 2485, 2485: 2486, 2486: 2487, 2487: 2488, 2488: 2489, 2489: 2490, 2490: 2491, 2491: 2492, 2492: 2493, 2493: 2494, 2494: 2495, 2495: 2496, 2496: 2497, 2497: 2498, 2498: 2499, 2499: 2500, 2500: 2501, 2501: 2502, 2502: 2503, 2503: 2504, 2504: 2505, 2505: 2506, 2506: 2507, 2507: 2508, 2508: 2509, 2509: 2510, 2510: 2511, 2511: 2512, 2512: 2513, 2513: 2514, 2514: 2515, 2515: 2516, 2516: 2517, 2517: 2518, 2518: 2519, 2519: 2520, 2520: 2521, 2521: 2522, 2522: 2523, 2523: 2524, 2524: 2525, 2525: 2526, 2526: 2527, 2527: 2528, 2528: 2529, 2529: 2530, 2530: 2531, 2531: 2532, 2532: 2533, 2533: 2534, 2534: 2535, 2535: 2536, 2536: 2537, 2537: 2538, 2538: 2539, 2539: 2540, 2540: 2541, 2541: 2542, 2542: 2543, 2543: 2544, 2544: 2545, 2545: 2546, 2546: 2547, 2547: 2548, 2548: 2549, 2549: 2550, 2550: 2551, 2551: 2552, 2552: 2553, 2553: 2554, 2554: 2555, 2555: 2556, 2556: 2557, 2557: 2558, 2558: 2559, 2559: 2560, 2560: 2561, 2561: 2562, 2562: 2563, 2563: 2564, 2564: 2565, 2565: 2566, 2566: 2567, 2567: 2568, 2568: 2569, 2569: 2570, 2570: 2571, 2571: 2572, 2572: 2573, 2573: 2574, 2574: 2575, 2575: 2576, 2576: 2577, 2577: 2578, 2578: 2579, 2579: 2580, 2580: 2581, 2581: 2582, 2582: 2583, 2583: 2584, 2584: 2585, 2585: 2586, 2586: 2587, 2587: 2588, 2588: 2589, 2589: 2590, 2590: 2591, 2591: 2592, 2592: 2593, 2593: 2594, 2594: 2595, 2595: 2596, 2596: 2597, 2597: 2598, 2598: 2599, 2599: 2600, 2600: 2601, 2601: 2602, 2602: 2603, 2603: 2604, 2604: 2605, 2605: 2606, 2606: 2607, 2607: 2608, 2608: 2609, 2609: 2610, 2610: 2611, 2611: 2612, 2612: 2613, 2613: 2614, 2614: 2615, 2615: 2616, 2616: 2617, 2617: 2618, 2618: 2619, 2619: 2620, 2620: 2621, 2621: 2622, 2622: 2623, 2623: 2624, 2624: 2625, 2625: 2626, 2626: 2627, 2627: 2628, 2628: 2629, 2629: 2630, 2630: 2631, 2631: 2632, 2632: 2633, 2633: 2634, 2634: 2635, 2635: 2636, 2636: 2637, 2637: 2638, 2638: 2639, 2639: 2640, 2640: 2641, 2641: 2642, 2642: 2643, 2643: 2644, 2644: 2645, 2645: 2646, 2646: 2647, 2647: 2648, 2648: 2649, 2649: 2650, 2650: 2651, 2651: 2652, 2652: 2653, 2653: 2654, 2654: 2655, 2655: 2656, 2656: 2657, 2657: 2658, 2658: 2659, 2659: 2660, 2660: 2661, 2661: 2662, 2662: 2663, 2663: 2664, 2664: 2665, 2665: 2666, 2666: 2667, 2667: 2668, 2668: 2669, 2669: 2670, 2670: 2671, 2671: 2672, 2672: 2673, 2673: 2674, 2674: 2675, 2675: 2676, 2676: 2677, 2677: 2678, 2678: 2679, 2679: 2680, 2680: 2681, 2681: 2682, 2682: 2683, 2683: 2684, 2684: 2685, 2685: 2686, 2686: 2687, 2687: 2688, 2688: 2689, 2689: 2690, 2690: 2691, 2691: 2692, 2692: 2693, 2693: 2694, 2694: 2695, 2695: 2696, 2696: 2697, 2697: 2698, 2698: 2699, 2699: 2700, 2700: 2701, 2701: 2702, 2702: 2703, 2703: 2704, 2704: 2705, 2705: 2706, 2706: 2707, 2707: 2708, 2708: 2709, 2709: 2710, 2710: 2711, 2711: 2712, 2712: 2713, 2713: 2714, 2714: 2715, 2715: 2716, 2716: 2717, 2717: 2718, 2718: 2719, 2719: 2720, 2720: 2721, 2721: 2722, 2722: 2723, 2723: 2724, 2724: 2725, 2725: 2726, 2726: 2727, 2727: 2728, 2728: 2729, 2729: 2730, 2730: 2731, 2731: 2732, 2732: 2733, 2733: 2734, 2734: 2735, 2735: 2736, 2736: 2737, 2737: 2738, 2738: 2739, 2739: 2740, 2740: 2741, 2741: 2742, 2742: 2743, 2743: 2744, 2744: 2745, 2745: 2746, 2746: 2747, 2747: 2748, 2748: 2749, 2749: 2750, 2750: 2751, 2751: 2752, 2752: 2753, 2753: 2754, 2754: 2755, 2755: 2756, 2756: 2757, 2757: 2758, 2758: 2759, 2759: 2760, 2760: 2761, 2761: 2762, 2762: 2763, 2763: 2764, 2764: 2765, 2765: 2766, 2766: 2767, 2767: 2768, 2768: 2769, 2769: 2770, 2770: 2771, 2771: 2772, 2772: 2773, 2773: 2774, 2774: 2775, 2775: 2776, 2776: 2777, 2777: 2778, 2778: 2779, 2779: 2780, 2780: 2781, 2781: 2782, 2782: 2783, 2783: 2784, 2784: 2785, 2785: 2786, 2786: 2787, 2787: 2788, 2788: 2789, 2789: 2790, 2790: 2791, 2791: 2792, 2792: 2793, 2793: 2794, 2794: 2795, 2795: 2796, 2796: 2797, 2797: 2798, 2798: 2799, 2799: 2800, 2800: 2801, 2801: 2802, 2802: 2803, 2803: 2804, 2804: 2805, 2805: 2806, 2806: 2807, 2807: 2808, 2808: 2809, 2809: 2810, 2810: 2811, 2811: 2812, 2812: 2813, 2813: 2814, 2814: 2815, 2815: 2816, 2816: 2817, 2817: 2818, 2818: 2819, 2819: 2820, 2820: 2821, 2821: 2822, 2822: 2823, 2823: 2824, 2824: 2825, 2825: 2826, 2826: 2827, 2827: 2828, 2828: 2829, 2829: 2830, 2830: 2831, 2831: 2832, 2832: 2833, 2833: 2834, 2834: 2835, 2835: 2836, 2836: 2837, 2837: 2838, 2838: 2839, 2839: 2840, 2840: 2841, 2841: 2842, 2842: 2843, 2843: 2844, 2844: 2845, 2845: 2846, 2846: 2847, 2847: 2848, 2848: 2849, 2849: 2850, 2850: 2851, 2851: 2852, 2852: 2853, 2853: 2854, 2854: 2855, 2855: 2856, 2856: 2857, 2857: 2858, 2858: 2859, 2859: 2860, 2860: 2861, 2861: 2862, 2862: 2863, 2863: 2864, 2864: 2865, 2865: 2866, 2866: 2867, 2867: 2868, 2868: 2869, 2869: 2870, 2870: 2871, 2871: 2872, 2872: 2873, 2873: 2874, 2874: 2875, 2875: 2876, 2876: 2877, 2877: 2878, 2878: 2879, 2879: 2880, 2880: 2881, 2881: 2882, 2882: 2883, 2883: 2884, 2884: 2885, 2885: 2886, 2886: 2887, 2887: 2888, 2888: 2889, 2889: 2890, 2890: 2891, 2891: 2892, 2892: 2893, 2893: 2894, 2894: 2895, 2895: 2896, 2896: 2897, 2897: 2898, 2898: 2899, 2899: 2900, 2900: 2901, 2901: 2902, 2902: 2903, 2903: 2904, 2904: 2905, 2905: 2906, 2906: 2907, 2907: 2908, 2908: 2909, 2909: 2910, 2910: 2911, 2911: 2912, 2912: 2913, 2913: 2914, 2914: 2915, 2915: 2916, 2916: 2917, 2917: 2918, 2918: 2919, 2919: 2920, 2920: 2921, 2921: 2922, 2922: 2923, 2923: 2924, 2924: 2925, 2925: 2926, 2926: 2927, 2927: 2928, 2928: 2929, 2929: 2930, 2930: 2931, 2931: 2932, 2932: 2933, 2933: 2934, 2934: 2935, 2935: 2936, 2936: 2937, 2937: 2938, 2938: 2939, 2939: 2940, 2940: 2941, 2941: 2942, 2942: 2943, 2943: 2944, 2944: 2945, 2945: 2946, 2946: 2947, 2947: 2948, 2948: 2949, 2949: 2950, 2950: 2951, 2951: 2952, 2952: 2953, 2953: 2954, 2954: 2955, 2955: 2956, 2956: 2957, 2957: 2958, 2958: 2959, 2959: 2960, 2960: 2961, 2961: 2962, 2962: 2963, 2963: 2964, 2964: 2965, 2965: 2966, 2966: 2967, 2967: 2968, 2968: 2969, 2969: 2970, 2970: 2971, 2971: 2972, 2972: 2973, 2973: 2974, 2974: 2975, 2975: 2976, 2976: 2977, 2977: 2978, 2978: 2979, 2979: 2980, 2980: 2981, 2981: 2982, 2982: 2983, 2983: 2984, 2984: 2985, 2985: 2986, 2986: 2987, 2987: 2988, 2988: 2989, 2989: 2990, 2990: 2991, 2991: 2992, 2992: 2993, 2993: 2994, 2994: 2995, 2995: 2996, 2996: 2997, 2997: 2998, 2998: 2999, 2999: 3000, 3000: 3001, 3001: 3002, 3002: 3003, 3003: 3004, 3004: 3005, 3005: 3006, 3006: 3007, 3007: 3008, 3008: 3009, 3009: 3010, 3010: 3011, 3011: 3012, 3012: 3013, 3013: 3014, 3014: 3015, 3015: 3016, 3016: 3017, 3017: 3018, 3018: 3019, 3019: 3020, 3020: 3021, 3021: 3022, 3022: 3023, 3023: 3024, 3024: 3025, 3025: 3026, 3026: 3027, 3027: 3028, 3028: 3029, 3029: 3030, 3030: 3031, 3031: 3032, 3032: 3033, 3033: 3034, 3034: 3035, 3035: 3036, 3036: 3037, 3037: 3038, 3038: 3039, 3039: 3040, 3040: 3041, 3041: 3042, 3042: 3043, 3043: 3044, 3044: 3045, 3045: 3046, 3046: 3047, 3047: 3048, 3048: 3049, 3049: 3050, 3050: 3051, 3051: 3052, 3052: 3053, 3053: 3054, 3054: 3055, 3055: 3056, 3056: 3057, 3057: 3058, 3058: 3059, 3059: 3060, 3060: 3061, 3061: 3062, 3062: 3063, 3063: 3064, 3064: 3065, 3065: 3066, 3066: 3067, 3067: 3068, 3068: 3069, 3069: 3070, 3070: 3071, 3071: 3072, 3072: 3073, 3073: 3074, 3074: 3075, 3075: 3076, 3076: 3077, 3077: 3078, 3078: 3079, 3079: 3080, 3080: 3081, 3081: 3082, 3082: 3083, 3083: 3084, 3084: 3085, 3085: 3086, 3086: 3087, 3087: 3088, 3088: 3089, 3089: 3090, 3090: 3091, 3091: 3092, 3092: 3093, 3093: 3094, 3094: 3095, 3095: 3096, 3096: 3097, 3097: 3098, 3098: 3099, 3099: 3100, 3100: 3101, 3101: 3102, 3102: 3103, 3103: 3104, 3104: 3105, 3105: 3106, 3106: 3107, 3107: 3108, 3108: 3109, 3109: 3110, 3110: 3111, 3111: 3112, 3112: 3113, 3113: 3114, 3114: 3115, 3115: 3116, 3116: 3117, 3117: 3118, 3118: 3119, 3119: 3120, 3120: 3121, 3121: 3122, 3122: 3123, 3123: 3124, 3124: 3125, 3125: 3126, 3126: 3127, 3127: 3128, 3128: 3129, 3129: 3130, 3130: 3131, 3131: 3132, 3132: 3133, 3133: 3134, 3134: 3135, 3135: 3136, 3136: 3137, 3137: 3138, 3138: 3139, 3139: 3140, 3140: 3141, 3141: 3142, 3142: 3143, 3143: 3144, 3144: 3145, 3145: 3146, 3146: 3147, 3147: 3148, 3148: 3149, 3149: 3150, 3150: 3151, 3151: 3152, 3152: 3153, 3153: 3154, 3154: 3155, 3155: 3156, 3156: 3157, 3157: 3158, 3158: 3159, 3159: 3160, 3160: 3161, 3161: 3162, 3162: 3163, 3163: 3164, 3164: 3165, 3165: 3166, 3166: 3167, 3167: 3168, 3168: 3169, 3169: 3170, 3170: 3171, 3171: 3172, 3172: 3173, 3173: 3174, 3174: 3175, 3175: 3176, 3176: 3177, 3177: 3178, 3178: 3179, 3179: 3180, 3180: 3181, 3181: 3182, 3182: 3183, 3183: 3184, 3184: 3185, 3185: 3186, 3186: 3187, 3187: 3188, 3188: 3189, 3189: 3190, 3190: 3191, 3191: 3192, 3192: 3193, 3193: 3194, 3194: 3195, 3195: 3196, 3196: 3197, 3197: 3198, 3198: 3199, 3199: 3200, 3200: 3201, 3201: 3202, 3202: 3203, 3203: 3204, 3204: 3205, 3205: 3206, 3206: 3207, 3207: 3208, 3208: 3209, 3209: 3210, 3210: 3211, 3211: 3212, 3212: 3213, 3213: 3214, 3214: 3215, 3215: 3216, 3216: 3217, 3217: 3218, 3218: 3219, 3219: 3220, 3220: 3221, 3221: 3222, 3222: 3223, 3223: 3224, 3224: 3225, 3225: 3226, 3226: 3227, 3227: 3228, 3228: 3229, 3229: 3230, 3230: 3231, 3231: 3232, 3232: 3233, 3233: 3234, 3234: 3235, 3235: 3236, 3236: 3237, 3237: 3238, 3238: 3239, 3239: 3240, 3240: 3241, 3241: 3242, 3242: 3243, 3243: 3244, 3244: 3245, 3245: 3246, 3246: 3247, 3247: 3248, 3248: 3249, 3249: 3250, 3250: 3251, 3251: 3252, 3252: 3253, 3253: 3254, 3254: 3255, 3255: 3256, 3256: 3257, 3257: 3258, 3258: 3259, 3259: 3260, 3260: 3261, 3261: 3262, 3262: 3263, 3263: 3264, 3264: 3265, 3265: 3266, 3266: 3267, 3267: 3268, 3268: 3269, 3269: 3270, 3270: 3271, 3271: 3272, 3272: 3273, 3273: 3274, 3274: 3275, 3275: 3276, 3276: 3277, 3277: 3278, 3278: 3279, 3279: 3280, 3280: 3281, 3281: 3282, 3282: 3283, 3283: 3284, 3284: 3285, 3285: 3286, 3286: 3287, 3287: 3288, 3288: 3289, 3289: 3290, 3290: 3291, 3291: 3292, 3292: 3293, 3293: 3294, 3294: 3295, 3295: 3296, 3296: 3297, 3297: 3298, 3298: 3299, 3299: 3300, 3300: 3301, 3301: 3302, 3302: 3303, 3303: 3304, 3304: 3305, 3305: 3306, 3306: 3307, 3307: 3308, 3308: 3309, 3309: 3310, 3310: 3311, 3311: 3312, 3312: 3313, 3313: 3314, 3314: 3315, 3315: 3316, 3316: 3317, 3317: 3318, 3318: 3319, 3319: 3320, 3320: 3321, 3321: 3322, 3322: 3323, 3323: 3324, 3324: 3325, 3325: 3326, 3326: 3327, 3327: 3328, 3328: 3329, 3329: 3330, 3330: 3331, 3331: 3332, 3332: 3333, 3333: 3334, 3334: 3335, 3335: 3336, 3336: 3337, 3337: 3338, 3338: 3339, 3339: 3340, 3340: 3341, 3341: 3342, 3342: 3343, 3343: 3344, 3344: 3345, 3345: 3346, 3346: 3347, 3347: 3348, 3348: 3349, 3349: 3350, 3350: 3351, 3351: 3352, 3352: 3353, 3353: 3354, 3354: 3355, 3355: 3356, 3356: 3357, 3357: 3358, 3358: 3359, 3359: 3360, 3360: 3361, 3361: 3362, 3362: 3363, 3363: 3364, 3364: 3365, 3365: 3366, 3366: 3367, 3367: 3368, 3368: 3369, 3369: 3370, 3370: 3371, 3371: 3372, 3372: 3373, 3373: 3374, 3374: 3375, 3375: 3376, 3376: 3377, 3377: 3378, 3378: 3379, 3379: 3380, 3380: 3381, 3381: 3382, 3382: 3383, 3383: 3384, 3384: 3385, 3385: 3386, 3386: 3387, 3387: 3388, 3388: 3389, 3389: 3390, 3390: 3391, 3391: 3392, 3392: 3393, 3393: 3394, 3394: 3395, 3395: 3396, 3396: 3397, 3397: 3398, 3398: 3399, 3399: 3400, 3400: 3401, 3401: 3402, 3402: 3403, 3403: 3404, 3404: 3405, 3405: 3406, 3406: 3407, 3407: 3408, 3408: 3409, 3409: 3410, 3410: 3411, 3411: 3412, 3412: 3413, 3413: 3414, 3414: 3415, 3415: 3416, 3416: 3417, 3417: 3418, 3418: 3419, 3419: 3420, 3420: 3421, 3421: 3422, 3422: 3423, 3423: 3424, 3424: 3425, 3425: 3426, 3426: 3427, 3427: 3428, 3428: 3429, 3429: 3430, 3430: 3431, 3431: 3432, 3432: 3433, 3433: 3434, 3434: 3435, 3435: 3436, 3436: 3437, 3437: 3438, 3438: 3439, 3439: 3440, 3440: 3441, 3441: 3442, 3442: 3443, 3443: 3444, 3444: 3445, 3445: 3446, 3446: 3447, 3447: 3448, 3448: 3449, 3449: 3450, 3450: 3451, 3451: 3452, 3452: 3453, 3453: 3454, 3454: 3455, 3455: 3456, 3456: 3457, 3457: 3458, 3458: 3459, 3459: 3460, 3460: 3461, 3461: 3462, 3462: 3463, 3463: 3464, 3464: 3465, 3465: 3466, 3466: 3467, 3467: 3468, 3468: 3469, 3469: 3470, 3470: 3471, 3471: 3472, 3472: 3473, 3473: 3474, 3474: 3475, 3475: 3476, 3476: 3477, 3477: 3478, 3478: 3479, 3479: 3480, 3480: 3481, 3481: 3482, 3482: 3483, 3483: 3484, 3484: 3485, 3485: 3486, 3486: 3487, 3487: 3488, 3488: 3489, 3489: 3490, 3490: 3491, 3491: 3492, 3492: 3493, 3493: 3494, 3494: 3495, 3495: 3496, 3496: 3497, 3497: 3498, 3498: 3499, 3499: 3500, 3500: 3501, 3501: 3502, 3502: 3503, 3503: 3504, 3504: 3505, 3505: 3506, 3506: 3507, 3507: 3508, 3508: 3509, 3509: 3510, 3510: 3511, 3511: 3512, 3512: 3513, 3513: 3514, 3514: 3515, 3515: 3516, 3516: 3517, 3517: 3518, 3518: 3519, 3519: 3520, 3520: 3521, 3521: 3522, 3522: 3523, 3523: 3524, 3524: 3525, 3525: 3526, 3526: 3527, 3527: 3528, 3528: 3529, 3529: 3530, 3530: 3531, 3531: 3532, 3532: 3533, 3533: 3534, 3534: 3535, 3535: 3536, 3536: 3537, 3537: 3538, 3538: 3539, 3539: 3540, 3540: 3541, 3541: 3542, 3542: 3543, 3543: 3544, 3544: 3545, 3545: 3546, 3546: 3547, 3547: 3548, 3548: 3549, 3549: 3550, 3550: 3551, 3551: 3552, 3552: 3553, 3553: 3554, 3554: 3555, 3555: 3556, 3556: 3557, 3557: 3558, 3558: 3559, 3559: 3560, 3560: 3561, 3561: 3562, 3562: 3563, 3563: 3564, 3564: 3565, 3565: 3566, 3566: 3567, 3567: 3568, 3568: 3569, 3569: 3570, 3570: 3571, 3571: 3572, 3572: 3573, 3573: 3574, 3574: 3575, 3575: 3576, 3576: 3577, 3577: 3578, 3578: 3579, 3579: 3580, 3580: 3581, 3581: 3582, 3582: 3583, 3583: 3584, 3584: 3585, 3585: 3586, 3586: 3587, 3587: 3588, 3588: 3589, 3589: 3590, 3590: 3591, 3591: 3592, 3592: 3593, 3593: 3594, 3594: 3595, 3595: 3596, 3596: 3597, 3597: 3598, 3598: 3599, 3599: 3600, 3600: 3601, 3601: 3602, 3602: 3603, 3603: 3604, 3604: 3605, 3605: 3606, 3606: 3607, 3607: 3608, 3608: 3609, 3609: 3610, 3610: 3611, 3611: 3612, 3612: 3613, 3613: 3614, 3614: 3615, 3615: 3616, 3616: 3617, 3617: 3618, 3618: 3619, 3619: 3620, 3620: 3621, 3621: 3622, 3622: 3623, 3623: 3624, 3624: 3625, 3625: 3626, 3626: 3627, 3627: 3628, 3628: 3629, 3629: 3630, 3630: 3631, 3631: 3632, 3632: 3633, 3633: 3634, 3634: 3635, 3635: 3636, 3636: 3637, 3637: 3638, 3638: 3639, 3639: 3640, 3640: 3641, 3641: 3642, 3642: 3643, 3643: 3644, 3644: 3645, 3645: 3646, 3646: 3647, 3647: 3648, 3648: 3649, 3649: 3650, 3650: 3651, 3651: 3652, 3652: 3653, 3653: 3654, 3654: 3655, 3655: 3656, 3656: 3657, 3657: 3658, 3658: 3659, 3659: 3660, 3660: 3661, 3661: 3662, 3662: 3663, 3663: 3664, 3664: 3665, 3665: 3666, 3666: 3667, 3667: 3668, 3668: 3669, 3669: 3670, 3670: 3671, 3671: 3672, 3672: 3673, 3673: 3674, 3674: 3675, 3675: 3676, 3676: 3677, 3677: 3678, 3678: 3679, 3679: 3680, 3680: 3681, 3681: 3682, 3682: 3683, 3683: 3684, 3684: 3685, 3685: 3686, 3686: 3687, 3687: 3688, 3688: 3689, 3689: 3690, 3690: 3691, 3691: 3692, 3692: 3693, 3693: 3694, 3694: 3695, 3695: 3696, 3696: 3697, 3697: 3698, 3698: 3699, 3699: 3700, 3700: 3701, 3701: 3702, 3702: 3703, 3703: 3704, 3704: 3705, 3705: 3706, 3706: 3707, 3707: 3708, 3708: 3709, 3709: 3710, 3710: 3711, 3711: 3712, 3712: 3713, 3713: 3714, 3714: 3715, 3715: 3716, 3716: 3717, 3717: 3718, 3718: 3719, 3719: 3720, 3720: 3721, 3721: 3722, 3722: 3723, 3723: 3724, 3724: 3725, 3725: 3726, 3726: 3727, 3727: 3728, 3728: 3729, 3729: 3730, 3730: 3731, 3731: 3732, 3732: 3733, 3733: 3734, 3734: 3735, 3735: 3736, 3736: 3737, 3737: 3738, 3738: 3739, 3739: 3740, 3740: 3741, 3741: 3742, 3742: 3743, 3743: 3744, 3744: 3745, 3745: 3746, 3746: 3747, 3747: 3748, 3748: 3749, 3749: 3750, 3750: 3751, 3751: 3752, 3752: 3753, 3753: 3754, 3754: 3755, 3755: 3756, 3756: 3757, 3757: 3758, 3758: 3759, 3759: 3760, 3760: 3761, 3761: 3762, 3762: 3763, 3763: 3764, 3764: 3765, 3765: 3766, 3766: 3767, 3767: 3768, 3768: 3769, 3769: 3770, 3770: 3771, 3771: 3772, 3772: 3773, 3773: 3774, 3774: 3775, 3775: 3776, 3776: 3777, 3777: 3778, 3778: 3779, 3779: 3780, 3780: 3781, 3781: 3782, 3782: 3783, 3783: 3784, 3784: 3785, 3785: 3786, 3786: 3787, 3787: 3788, 3788: 3789, 3789: 3790, 3790: 3791, 3791: 3792, 3792: 3793, 3793: 3794, 3794: 3795, 3795: 3796, 3796: 3797, 3797: 3798, 3798: 3799, 3799: 3800, 3800: 3801, 3801: 3802, 3802: 3803, 3803: 3804, 3804: 3805, 3805: 3806, 3806: 3807, 3807: 3808, 3808: 3809, 3809: 3810, 3810: 3811, 3811: 3812, 3812: 3813, 3813: 3814, 3814: 3815, 3815: 3816, 3816: 3817, 3817: 3818, 3818: 3819, 3819: 3820, 3820: 3821, 3821: 3822, 3822: 3823, 3823: 3824, 3824: 3825, 3825: 3826, 3826: 3827, 3827: 3828, 3828: 3829, 3829: 3830, 3830: 3831, 3831: 3832, 3832: 3833, 3833: 3834, 3834: 3835, 3835: 3836, 3836: 3837, 3837: 3838, 3838: 3839, 3839: 3840, 3840: 3841, 3841: 3842, 3842: 3843, 3843: 3844, 3844: 3845, 3845: 3846, 3846: 3847, 3847: 3848, 3848: 3849, 3849: 3850, 3850: 3851, 3851: 3852, 3852: 3853, 3853: 3854, 3854: 3855, 3855: 3856, 3856: 3857, 3857: 3858, 3858: 3859, 3859: 3860, 3860: 3861, 3861: 3862, 3862: 3863, 3863: 3864, 3864: 3865, 3865: 3866, 3866: 3867, 3867: 3868, 3868: 3869, 3869: 3870, 3870: 3871, 3871: 3872, 3872: 3873, 3873: 3874, 3874: 3875, 3875: 3876, 3876: 3877, 3877: 3878, 3878: 3879, 3879: 3880, 3880: 3881, 3881: 3882, 3882: 3883, 3883: 3884, 3884: 3885, 3885: 3886, 3886: 3887, 3887: 3888, 3888: 3889, 3889: 3890, 3890: 3891, 3891: 3892, 3892: 3893, 3893: 3894, 3894: 3895, 3895: 3896, 3896: 3897, 3897: 3898, 3898: 3899, 3899: 3900, 3900: 3901, 3901: 3902, 3902: 3903, 3903: 3904, 3904: 3905, 3905: 3906, 3906: 3907, 3907: 3908, 3908: 3909, 3909: 3910, 3910: 3911, 3911: 3912, 3912: 3913, 3913: 3914, 3914: 3915, 3915: 3916, 3916: 3917, 3917: 3918, 3918: 3919, 3919: 3920, 3920: 3921, 3921: 3922, 3922: 3923, 3923: 3924, 3924: 3925, 3925: 3926, 3926: 3927, 3927: 3928, 3928: 3929, 3929: 3930, 3930: 3931, 3931: 3932, 3932: 3933, 3933: 3934, 3934: 3935, 3935: 3936, 3936: 3937, 3937: 3938, 3938: 3939, 3939: 3940, 3940: 3941, 3941: 3942, 3942: 3943, 3943: 3944, 3944: 3945, 3945: 3946, 3946: 3947, 3947: 3948, 3948: 3949, 3949: 3950, 3950: 3951, 3951: 3952, 3952: 3953, 3953: 3954, 3954: 3955, 3955: 3956, 3956: 3957, 3957: 3958, 3958: 3959, 3959: 3960, 3960: 3961, 3961: 3962, 3962: 3963, 3963: 3964, 3964: 3965, 3965: 3966, 3966: 3967, 3967: 3968, 3968: 3969, 3969: 3970, 3970: 3971, 3971: 3972, 3972: 3973, 3973: 3974, 3974: 3975, 3975: 3976, 3976: 3977, 3977: 3978, 3978: 3979, 3979: 3980, 3980: 3981, 3981: 3982, 3982: 3983, 3983: 3984, 3984: 3985, 3985: 3986, 3986: 3987, 3987: 3988, 3988: 3989, 3989: 3990, 3990: 3991, 3991: 3992, 3992: 3993, 3993: 3994, 3994: 3995, 3995: 3996, 3996: 3997, 3997: 3998, 3998: 3999, 3999: 4000, 4000: 4001, 4001: 4002, 4002: 4003, 4003: 4004, 4004: 4005, 4005: 4006, 4006: 4007, 4007: 4008, 4008: 4009, 4009: 4010, 4010: 4011, 4011: 4012, 4012: 4013, 4013: 4014, 4014: 4015, 4015: 4016, 4016: 4017, 4017: 4018, 4018: 4019, 4019: 4020, 4020: 4021, 4021: 4022, 4022: 4023, 4023: 4024, 4024: 4025, 4025: 4026, 4026: 4027, 4027: 4028, 4028: 4029, 4029: 4030, 4030: 4031, 4031: 4032, 4032: 4033, 4033: 4034, 4034: 4035, 4035: 4036, 4036: 4037, 4037: 4038, 4038: 4039, 4039: 4040, 4040: 4041, 4041: 4042, 4042: 4043, 4043: 4044, 4044: 4045, 4045: 4046, 4046: 4047, 4047: 4048, 4048: 4049, 4049: 4050, 4050: 4051, 4051: 4052, 4052: 4053, 4053: 4054, 4054: 4055, 4055: 4056, 4056: 4057, 4057: 4058, 4058: 4059, 4059: 4060, 4060: 4061, 4061: 4062, 4062: 4063, 4063: 4064, 4064: 4065, 4065: 4066, 4066: 4067, 4067: 4068, 4068: 4069, 4069: 4070, 4070: 4071, 4071: 4072, 4072: 4073, 4073: 4074, 4074: 4075, 4075: 4076, 4076: 4077, 4077: 4078, 4078: 4079, 4079: 4080, 4080: 4081, 4081: 4082, 4082: 4083, 4083: 4084, 4084: 4085, 4085: 4086, 4086: 4087, 4087: 4088, 4088: 4089, 4089: 4090, 4090: 4091, 4091: 4092, 4092: 4093, 4093: 4094, 4094: 4095, 4095: 4096, 4096: 4097, 4097: 4098, 4098: 4099, 4099: 4100, 4100: 4101, 4101: 4102, 4102: 4103, 4103: 4104, 4104: 4105, 4105: 4106, 4106: 4107, 4107: 4108, 4108: 4109, 4109: 4110, 4110: 4111, 4111: 4112, 4112: 4113, 4113: 4114, 4114: 4115, 4115: 4116, 4116: 4117, 4117: 4118, 4118: 4119, 4119: 4120, 4120: 4121, 4121: 4122, 4122: 4123, 4123: 4124, 4124: 4125, 4125: 4126, 4126: 4127, 4127: 4128, 4128: 4129, 4129: 4130, 4130: 4131, 4131: 4132, 4132: 4133, 4133: 4134, 4134: 4135, 4135: 4136, 4136: 4137, 4137: 4138, 4138: 4139, 4139: 4140, 4140: 4141, 4141: 4142, 4142: 4143, 4143: 4144, 4144: 4145, 4145: 4146, 4146: 4147, 4147: 4148, 4148: 4149, 4149: 4150, 4150: 4151, 4151: 4152, 4152: 4153, 4153: 4154, 4154: 4155, 4155: 4156, 4156: 4157, 4157: 4158, 4158: 4159, 4159: 4160, 4160: 4161, 4161: 4162, 4162: 4163, 4163: 4164, 4164: 4165, 4165: 4166, 4166: 4167, 4167: 4168, 4168: 4169, 4169: 4170, 4170: 4171, 4171: 4172, 4172: 4173, 4173: 4174, 4174: 4175, 4175: 4176, 4176: 4177, 4177: 4178, 4178: 4179, 4179: 4180, 4180: 4181, 4181: 4182, 4182: 4183, 4183: 4184, 4184: 4185, 4185: 4186, 4186: 4187, 4187: 4188, 4188: 4189, 4189: 4190, 4190: 4191, 4191: 4192, 4192: 4193, 4193: 4194, 4194: 4195, 4195: 4196, 4196: 4197, 4197: 4198, 4198: 4199, 4199: 4200, 4200: 4201, 4201: 4202, 4202: 4203, 4203: 4204, 4204: 4205, 4205: 4206, 4206: 4207, 4207: 4208, 4208: 4209, 4209: 4210, 4210: 4211, 4211: 4212, 4212: 4213, 4213: 4214, 4214: 4215, 4215: 4216, 4216: 4217, 4217: 4218, 4218: 4219, 4219: 4220, 4220: 4221, 4221: 4222, 4222: 4223, 4223: 4224, 4224: 4225, 4225: 4226, 4226: 4227, 4227: 4228, 4228: 4229, 4229: 4230, 4230: 4231, 4231: 4232, 4232: 4233, 4233: 4234, 4234: 4235, 4235: 4236, 4236: 4237, 4237: 4238, 4238: 4239, 4239: 4240, 4240: 4241, 4241: 4242, 4242: 4243, 4243: 4244, 4244: 4245, 4245: 4246, 4246: 4247, 4247: 4248, 4248: 4249, 4249: 4250, 4250: 4251, 4251: 4252, 4252: 4253, 4253: 4254, 4254: 4255, 4255: 4256, 4256: 4257, 4257: 4258, 4258: 4259, 4259: 4260, 4260: 4261, 4261: 4262, 4262: 4263, 4263: 4264, 4264: 4265, 4265: 4266, 4266: 4267, 4267: 4268, 4268: 4269, 4269: 4270, 4270: 4271, 4271: 4272, 4272: 4273, 4273: 4274, 4274: 4275, 4275: 4276, 4276: 4277, 4277: 4278, 4278: 4279, 4279: 4280, 4280: 4281, 4281: 4282, 4282: 4283, 4283: 4284, 4284: 4285, 4285: 4286, 4286: 4287, 4287: 4288, 4288: 4289, 4289: 4290, 4290: 4291, 4291: 4292, 4292: 4293, 4293: 4294, 4294: 4295, 4295: 4296, 4296: 4297, 4297: 4298, 4298: 4299, 4299: 4300, 4300: 4301, 4301: 4302, 4302: 4303, 4303: 4304, 4304: 4305, 4305: 4306, 4306: 4307, 4307: 4308, 4308: 4309, 4309: 4310, 4310: 4311, 4311: 4312, 4312: 4313, 4313: 4314, 4314: 4315, 4315: 4316, 4316: 4317, 4317: 4318, 4318: 4319, 4319: 4320, 4320: 4321, 4321: 4322, 4322: 4323, 4323: 4324, 4324: 4325, 4325: 4326, 4326: 4327, 4327: 4328, 4328: 4329, 4329: 4330, 4330: 4331, 4331: 4332, 4332: 4333, 4333: 4334, 4334: 4335, 4335: 4336, 4336: 4337, 4337: 4338, 4338: 4339, 4339: 4340, 4340: 4341, 4341: 4342, 4342: 4343, 4343: 4344, 4344: 4345, 4345: 4346, 4346: 4347, 4347: 4348, 4348: 4349, 4349: 4350, 4350: 4351, 4351: 4352, 4352: 4353, 4353: 4354, 4354: 4355, 4355: 4356, 4356: 4357, 4357: 4358, 4358: 4359, 4359: 4360, 4360: 4361, 4361: 4362, 4362: 4363, 4363: 4364, 4364: 4365, 4365: 4366, 4366: 4367, 4367: 4368, 4368: 4369, 4369: 4370, 4370: 4371, 4371: 4372, 4372: 4373, 4373: 4374, 4374: 4375, 4375: 4376, 4376: 4377, 4377: 4378, 4378: 4379, 4379: 4380, 4380: 4381, 4381: 4382, 4382: 4383, 4383: 4384, 4384: 4385, 4385: 4386, 4386: 4387, 4387: 4388, 4388: 4389, 4389: 4390, 4390: 4391, 4391: 4392, 4392: 4393, 4393: 4394, 4394: 4395, 4395: 4396, 4396: 4397, 4397: 4398, 4398: 4399, 4399: 4400, 4400: 4401, 4401: 4402, 4402: 4403, 4403: 4404, 4404: 4405, 4405: 4406, 4406: 4407, 4407: 4408, 4408: 4409, 4409: 4410, 4410: 4411, 4411: 4412, 4412: 4413, 4413: 4414, 4414: 4415, 4415: 4416, 4416: 4417, 4417: 4418, 4418: 4419, 4419: 4420, 4420: 4421, 4421: 4422, 4422: 4423, 4423: 4424, 4424: 4425, 4425: 4426, 4426: 4427, 4427: 4428, 4428: 4429, 4429: 4430, 4430: 4431, 4431: 4432, 4432: 4433, 4433: 4434, 4434: 4435, 4435: 4436, 4436: 4437, 4437: 4438, 4438: 4439, 4439: 4440, 4440: 4441, 4441: 4442, 4442: 4443, 4443: 4444, 4444: 4445, 4445: 4446, 4446: 4447, 4447: 4448, 4448: 4449, 4449: 4450, 4450: 4451, 4451: 4452, 4452: 4453, 4453: 4454, 4454: 4455, 4455: 4456, 4456: 4457, 4457: 4458, 4458: 4459, 4459: 4460, 4460: 4461, 4461: 4462, 4462: 4463, 4463: 4464, 4464: 4465, 4465: 4466, 4466: 4467, 4467: 4468, 4468: 4469, 4469: 4470, 4470: 4471, 4471: 4472, 4472: 4473, 4473: 4474, 4474: 4475, 4475: 4476, 4476: 4477, 4477: 4478, 4478: 4479, 4479: 4480, 4480: 4481, 4481: 4482, 4482: 4483, 4483: 4484, 4484: 4485, 4485: 4486, 4486: 4487, 4487: 4488, 4488: 4489, 4489: 4490, 4490: 4491, 4491: 4492, 4492: 4493, 4493: 4494, 4494: 4495, 4495: 4496, 4496: 4497, 4497: 4498, 4498: 4499, 4499: 4500, 4500: 4501, 4501: 4502, 4502: 4503, 4503: 4504, 4504: 4505, 4505: 4506, 4506: 4507, 4507: 4508, 4508: 4509, 4509: 4510, 4510: 4511, 4511: 4512, 4512: 4513, 4513: 4514, 4514: 4515, 4515: 4516, 4516: 4517, 4517: 4518, 4518: 4519, 4519: 4520, 4520: 4521, 4521: 4522, 4522: 4523, 4523: 4524, 4524: 4525, 4525: 4526, 4526: 4527, 4527: 4528, 4528: 4529, 4529: 4530, 4530: 4531, 4531: 4532, 4532: 4533, 4533: 4534, 4534: 4535, 4535: 4536, 4536: 4537, 4537: 4538, 4538: 4539, 4539: 4540, 4540: 4541, 4541: 4542, 4542: 4543, 4543: 4544, 4544: 4545, 4545: 4546, 4546: 4547, 4547: 4548, 4548: 4549, 4549: 4550, 4550: 4551, 4551: 4552, 4552: 4553, 4553: 4554, 4554: 4555, 4555: 4556, 4556: 4557, 4557: 4558, 4558: 4559, 4559: 4560, 4560: 4561, 4561: 4562, 4562: 4563, 4563: 4564, 4564: 4565, 4565: 4566, 4566: 4567, 4567: 4568, 4568: 4569, 4569: 4570, 4570: 4571, 4571: 4572, 4572: 4573, 4573: 4574, 4574: 4575, 4575: 4576, 4576: 4577, 4577: 4578, 4578: 4579, 4579: 4580, 4580: 4581, 4581: 4582, 4582: 4583, 4583: 4584, 4584: 4585, 4585: 4586, 4586: 4587, 4587: 4588, 4588: 4589, 4589: 4590, 4590: 4591, 4591: 4592, 4592: 4593, 4593: 4594, 4594: 4595, 4595: 4596, 4596: 4597, 4597: 4598, 4598: 4599, 4599: 4600, 4600: 4601, 4601: 4602, 4602: 4603, 4603: 4604, 4604: 4605, 4605: 4606, 4606: 4607, 4607: 4608, 4608: 4609, 4609: 4610, 4610: 4611, 4611: 4612, 4612: 4613, 4613: 4614, 4614: 4615, 4615: 4616, 4616: 4617, 4617: 4618, 4618: 4619, 4619: 4620, 4620: 4621, 4621: 4622, 4622: 4623, 4623: 4624, 4624: 4625, 4625: 4626, 4626: 4627, 4627: 4628, 4628: 4629, 4629: 4630, 4630: 4631, 4631: 4632, 4632: 4633, 4633: 4634, 4634: 4635, 4635: 4636, 4636: 4637, 4637: 4638, 4638: 4639, 4639: 4640, 4640: 4641, 4641: 4642, 4642: 4643, 4643: 4644, 4644: 4645, 4645: 4646, 4646: 4647, 4647: 4648, 4648: 4649, 4649: 4650, 4650: 4651, 4651: 4652, 4652: 4653, 4653: 4654, 4654: 4655, 4655: 4656, 4656: 4657, 4657: 4658, 4658: 4659, 4659: 4660, 4660: 4661, 4661: 4662, 4662: 4663, 4663: 4664, 4664: 4665, 4665: 4666, 4666: 4667, 4667: 4668, 4668: 4669, 4669: 4670, 4670: 4671, 4671: 4672, 4672: 4673, 4673: 4674, 4674: 4675, 4675: 4676, 4676: 4677, 4677: 4678, 4678: 4679, 4679: 4680, 4680: 4681, 4681: 4682, 4682: 4683, 4683: 4684, 4684: 4685, 4685: 4686, 4686: 4687, 4687: 4688, 4688: 4689, 4689: 4690, 4690: 4691, 4691: 4692, 4692: 4693, 4693: 4694, 4694: 4695, 4695: 4696, 4696: 4697, 4697: 4698, 4698: 4699, 4699: 4700, 4700: 4701, 4701: 4702, 4702: 4703, 4703: 4704, 4704: 4705, 4705: 4706, 4706: 4707, 4707: 4708, 4708: 4709, 4709: 4710, 4710: 4711, 4711: 4712, 4712: 4713, 4713: 4714, 4714: 4715, 4715: 4716, 4716: 4717, 4717: 4718, 4718: 4719, 4719: 4720, 4720: 4721, 4721: 4722, 4722: 4723, 4723: 4724, 4724: 4725, 4725: 4726, 4726: 4727, 4727: 4728, 4728: 4729, 4729: 4730, 4730: 4731, 4731: 4732, 4732: 4733, 4733: 4734, 4734: 4735, 4735: 4736, 4736: 4737, 4737: 4738, 4738: 4739, 4739: 4740, 4740: 4741, 4741: 4742, 4742: 4743, 4743: 4744, 4744: 4745, 4745: 4746, 4746: 4747, 4747: 4748, 4748: 4749, 4749: 4750, 4750: 4751, 4751: 4752, 4752: 4753, 4753: 4754, 4754: 4755, 4755: 4756, 4756: 4757, 4757: 4758, 4758: 4759, 4759: 4760, 4760: 4761, 4761: 4762, 4762: 4763, 4763: 4764, 4764: 4765, 4765: 4766, 4766: 4767, 4767: 4768, 4768: 4769, 4769: 4770, 4770: 4771, 4771: 4772, 4772: 4773, 4773: 4774, 4774: 4775, 4775: 4776, 4776: 4777, 4777: 4778, 4778: 4779, 4779: 4780, 4780: 4781, 4781: 4782, 4782: 4783, 4783: 4784, 4784: 4785, 4785: 4786, 4786: 4787, 4787: 4788, 4788: 4789, 4789: 4790, 4790: 4791, 4791: 4792, 4792: 4793, 4793: 4794, 4794: 4795, 4795: 4796, 4796: 4797, 4797: 4798, 4798: 4799, 4799: 4800, 4800: 4801, 4801: 4802, 4802: 4803, 4803: 4804, 4804: 4805, 4805: 4806, 4806: 4807, 4807: 4808, 4808: 4809, 4809: 4810, 4810: 4811, 4811: 4812, 4812: 4813, 4813: 4814, 4814: 4815, 4815: 4816, 4816: 4817, 4817: 4818, 4818: 4819, 4819: 4820, 4820: 4821, 4821: 4822, 4822: 4823, 4823: 4824, 4824: 4825, 4825: 4826, 4826: 4827, 4827: 4828, 4828: 4829, 4829: 4830, 4830: 4831, 4831: 4832, 4832: 4833, 4833: 4834, 4834: 4835, 4835: 4836, 4836: 4837, 4837: 4838, 4838: 4839, 4839: 4840, 4840: 4841, 4841: 4842, 4842: 4843, 4843: 4844, 4844: 4845, 4845: 4846, 4846: 4847, 4847: 4848, 4848: 4849, 4849: 4850, 4850: 4851, 4851: 4852, 4852: 4853, 4853: 4854, 4854: 4855, 4855: 4856, 4856: 4857, 4857: 4858, 4858: 4859, 4859: 4860, 4860: 4861, 4861: 4862, 4862: 4863, 4863: 4864, 4864: 4865, 4865: 4866, 4866: 4867, 4867: 4868, 4868: 4869, 4869: 4870, 4870: 4871, 4871: 4872, 4872: 4873, 4873: 4874, 4874: 4875, 4875: 4876, 4876: 4877, 4877: 4878, 4878: 4879, 4879: 4880, 4880: 4881, 4881: 4882, 4882: 4883, 4883: 4884, 4884: 4885, 4885: 4886, 4886: 4887, 4887: 4888, 4888: 4889, 4889: 4890, 4890: 4891, 4891: 4892, 4892: 4893, 4893: 4894, 4894: 4895, 4895: 4896, 4896: 4897, 4897: 4898, 4898: 4899, 4899: 4900, 4900: 4901, 4901: 4902, 4902: 4903, 4903: 4904, 4904: 4905, 4905: 4906, 4906: 4907, 4907: 4908, 4908: 4909, 4909: 4910, 4910: 4911, 4911: 4912, 4912: 4913, 4913: 4914, 4914: 4915, 4915: 4916, 4916: 4917, 4917: 4918, 4918: 4919, 4919: 4920, 4920: 4921, 4921: 4922, 4922: 4923, 4923: 4924, 4924: 4925, 4925: 4926, 4926: 4927, 4927: 4928, 4928: 4929, 4929: 4930, 4930: 4931, 4931: 4932, 4932: 4933, 4933: 4934, 4934: 4935, 4935: 4936, 4936: 4937, 4937: 4938, 4938: 4939, 4939: 4940, 4940: 4941, 4941: 4942, 4942: 4943, 4943: 4944, 4944: 4945, 4945: 4946, 4946: 4947, 4947: 4948, 4948: 4949, 4949: 4950, 4950: 4951, 4951: 4952, 4952: 4953, 4953: 4954, 4954: 4955, 4955: 4956, 4956: 4957, 4957: 4958, 4958: 4959, 4959: 4960, 4960: 4961, 4961: 4962, 4962: 4963, 4963: 4964, 4964: 4965, 4965: 4966, 4966: 4967, 4967: 4968, 4968: 4969, 4969: 4970, 4970: 4971, 4971: 4972, 4972: 4973, 4973: 4974, 4974: 4975, 4975: 4976, 4976: 4977, 4977: 4978, 4978: 4979, 4979: 4980, 4980: 4981, 4981: 4982, 4982: 4983, 4983: 4984, 4984: 4985, 4985: 4986, 4986: 4987, 4987: 4988, 4988: 4989, 4989: 4990, 4990: 4991, 4991: 4992, 4992: 4993, 4993: 4994, 4994: 4995, 4995: 4996, 4996: 4997, 4997: 4998, 4998: 4999, 4999: 5000, 5000: 5001, 5001: 5002, 5002: 5003, 5003: 5004, 5004: 5005, 5005: 5006, 5006: 5007, 5007: 5008, 5008: 5009, 5009: 5010, 5010: 5011, 5011: 5012, 5012: 5013, 5013: 5014, 5014: 5015, 5015: 5016, 5016: 5017, 5017: 5018, 5018: 5019, 5019: 5020, 5020: 5021, 5021: 5022, 5022: 5023, 5023: 5024, 5024: 5025, 5025: 5026, 5026: 5027, 5027: 5028, 5028: 5029, 5029: 5030, 5030: 5031, 5031: 5032, 5032: 5033, 5033: 5034, 5034: 5035, 5035: 5036, 5036: 5037, 5037: 5038, 5038: 5039, 5039: 5040, 5040: 5041, 5041: 5042, 5042: 5043, 5043: 5044, 5044: 5045, 5045: 5046, 5046: 5047, 5047: 5048, 5048: 5049, 5049: 5050, 5050: 5051, 5051: 5052, 5052: 5053, 5053: 5054, 5054: 5055, 5055: 5056, 5056: 5057, 5057: 5058, 5058: 5059, 5059: 5060, 5060: 5061, 5061: 5062, 5062: 5063, 5063: 5064, 5064: 5065, 5065: 5066, 5066: 5067, 5067: 5068, 5068: 5069, 5069: 5070, 5070: 5071, 5071: 5072, 5072: 5073, 5073: 5074, 5074: 5075, 5075: 5076, 5076: 5077, 5077: 5078, 5078: 5079, 5079: 5080, 5080: 5081, 5081: 5082, 5082: 5083, 5083: 5084, 5084: 5085, 5085: 5086, 5086: 5087, 5087: 5088, 5088: 5089, 5089: 5090, 5090: 5091, 5091: 5092, 5092: 5093, 5093: 5094, 5094: 5095, 5095: 5096, 5096: 5097, 5097: 5098, 5098: 5099, 5099: 5100, 5100: 5101, 5101: 5102, 5102: 5103, 5103: 5104, 5104: 5105, 5105: 5106, 5106: 5107, 5107: 5108, 5108: 5109, 5109: 5110, 5110: 5111, 5111: 5112, 5112: 5113, 5113: 5114, 5114: 5115, 5115: 5116, 5116: 5117, 5117: 5118, 5118: 5119, 5119: 5120, 5120: 5121, 5121: 5122, 5122: 5123, 5123: 5124, 5124: 5125, 5125: 5126, 5126: 5127, 5127: 5128, 5128: 5129, 5129: 5130, 5130: 5131, 5131: 5132, 5132: 5133, 5133: 5134, 5134: 5135, 5135: 5136, 5136: 5137, 5137: 5138, 5138: 5139, 5139: 5140, 5140: 5141, 5141: 5142, 5142: 5143, 5143: 5144, 5144: 5145, 5145: 5146, 5146: 5147, 5147: 5148, 5148: 5149, 5149: 5150, 5150: 5151, 5151: 5152, 5152: 5153, 5153: 5154, 5154: 5155, 5155: 5156, 5156: 5157, 5157: 5158, 5158: 5159, 5159: 5160, 5160: 5161, 5161: 5162, 5162: 5163, 5163: 5164, 5164: 5165, 5165: 5166, 5166: 5167, 5167: 5168, 5168: 5169, 5169: 5170, 5170: 5171, 5171: 5172, 5172: 5173, 5173: 5174, 5174: 5175, 5175: 5176, 5176: 5177, 5177: 5178, 5178: 5179, 5179: 5180, 5180: 5181, 5181: 5182, 5182: 5183, 5183: 5184, 5184: 5185, 5185: 5186, 5186: 5187, 5187: 5188, 5188: 5189, 5189: 5190, 5190: 5191, 5191: 5192, 5192: 5193, 5193: 5194, 5194: 5195, 5195: 5196, 5196: 5197, 5197: 5198, 5198: 5199, 5199: 5200, 5200: 5201, 5201: 5202, 5202: 5203, 5203: 5204, 5204: 5205, 5205: 5206, 5206: 5207, 5207: 5208, 5208: 5209, 5209: 5210, 5210: 5211, 5211: 5212, 5212: 5213, 5213: 5214, 5214: 5215, 5215: 5216, 5216: 5217, 5217: 5218, 5218: 5219, 5219: 5220, 5220: 5221, 5221: 5222, 5222: 5223, 5223: 5224, 5224: 5225, 5225: 5226, 5226: 5227, 5227: 5228, 5228: 5229, 5229: 5230, 5230: 5231, 5231: 5232, 5232: 5233, 5233: 5234, 5234: 5235, 5235: 5236, 5236: 5237, 5237: 5238, 5238: 5239, 5239: 5240, 5240: 5241, 5241: 5242, 5242: 5243, 5243: 5244, 5244: 5245, 5245: 5246, 5246: 5247, 5247: 5248, 5248: 5249, 5249: 5250, 5250: 5251, 5251: 5252, 5252: 5253, 5253: 5254, 5254: 5255, 5255: 5256, 5256: 5257, 5257: 5258, 5258: 5259, 5259: 5260, 5260: 5261, 5261: 5262, 5262: 5263, 5263: 5264, 5264: 5265, 5265: 5266, 5266: 5267, 5267: 5268, 5268: 5269, 5269: 5270, 5270: 5271, 5271: 5272, 5272: 5273, 5273: 5274, 5274: 5275, 5275: 5276, 5276: 5277, 5277: 5278, 5278: 5279, 5279: 5280, 5280: 5281, 5281: 5282, 5282: 5283, 5283: 5284, 5284: 5285, 5285: 5286, 5286: 5287, 5287: 5288, 5288: 5289, 5289: 5290, 5290: 5291, 5291: 5292, 5292: 5293, 5293: 5294, 5294: 5295, 5295: 5296, 5296: 5297, 5297: 5298, 5298: 5299, 5299: 5300, 5300: 5301, 5301: 5302, 5302: 5303, 5303: 5304, 5304: 5305, 5305: 5306, 5306: 5307, 5307: 5308, 5308: 5309, 5309: 5310, 5310: 5311, 5311: 5312, 5312: 5313, 5313: 5314, 5314: 5315, 5315: 5316, 5316: 5317, 5317: 5318, 5318: 5319, 5319: 5320, 5320: 5321, 5321: 5322, 5322: 5323, 5323: 5324, 5324: 5325, 5325: 5326, 5326: 5327, 5327: 5328, 5328: 5329, 5329: 5330, 5330: 5331, 5331: 5332, 5332: 5333, 5333: 5334, 5334: 5335, 5335: 5336, 5336: 5337, 5337: 5338, 5338: 5339, 5339: 5340, 5340: 5341, 5341: 5342, 5342: 5343, 5343: 5344, 5344: 5345, 5345: 5346, 5346: 5347, 5347: 5348, 5348: 5349, 5349: 5350, 5350: 5351, 5351: 5352, 5352: 5353, 5353: 5354, 5354: 5355, 5355: 5356, 5356: 5357, 5357: 5358, 5358: 5359, 5359: 5360, 5360: 5361, 5361: 5362, 5362: 5363, 5363: 5364, 5364: 5365, 5365: 5366, 5366: 5367, 5367: 5368, 5368: 5369, 5369: 5370, 5370: 5371, 5371: 5372, 5372: 5373, 5373: 5374, 5374: 5375, 5375: 5376, 5376: 5377, 5377: 5378, 5378: 5379, 5379: 5380, 5380: 5381, 5381: 5382, 5382: 5383, 5383: 5384, 5384: 5385, 5385: 5386, 5386: 5387, 5387: 5388, 5388: 5389, 5389: 5390, 5390: 5391, 5391: 5392, 5392: 5393, 5393: 5394, 5394: 5395, 5395: 5396, 5396: 5397, 5397: 5398, 5398: 5399, 5399: 5400, 5400: 5401, 5401: 5402, 5402: 5403, 5403: 5404, 5404: 5405, 5405: 5406, 5406: 5407, 5407: 5408, 5408: 5409, 5409: 5410, 5410: 5411, 5411: 5412, 5412: 5413, 5413: 5414, 5414: 5415, 5415: 5416, 5416: 5417, 5417: 5418, 5418: 5419, 5419: 5420, 5420: 5421, 5421: 5422, 5422: 5423, 5423: 5424, 5424: 5425, 5425: 5426, 5426: 5427, 5427: 5428, 5428: 5429, 5429: 5430, 5430: 5431, 5431: 5432, 5432: 5433, 5433: 5434, 5434: 5435, 5435: 5436, 5436: 5437, 5437: 5438, 5438: 5439, 5439: 5440, 5440: 5441, 5441: 5442, 5442: 5443, 5443: 5444, 5444: 5445, 5445: 5446, 5446: 5447, 5447: 5448, 5448: 5449, 5449: 5450, 5450: 5451, 5451: 5452, 5452: 5453, 5453: 5454, 5454: 5455, 5455: 5456, 5456: 5457, 5457: 5458, 5458: 5459, 5459: 5460, 5460: 5461, 5461: 5462, 5462: 5463, 5463: 5464, 5464: 5465, 5465: 5466, 5466: 5467, 5467: 5468, 5468: 5469, 5469: 5470, 5470: 5471, 5471: 5472, 5472: 5473, 5473: 5474, 5474: 5475, 5475: 5476, 5476: 5477, 5477: 5478, 5478: 5479, 5479: 5480, 5480: 5481, 5481: 5482, 5482: 5483, 5483: 5484, 5484: 5485, 5485: 5486, 5486: 5487, 5487: 5488, 5488: 5489, 5489: 5490, 5490: 5491, 5491: 5492, 5492: 5493, 5493: 5494, 5494: 5495, 5495: 5496, 5496: 5497, 5497: 5498, 5498: 5499, 5499: 5500, 5500: 5501, 5501: 5502, 5502: 5503, 5503: 5504, 5504: 5505, 5505: 5506, 5506: 5507, 5507: 5508, 5508: 5509, 5509: 5510, 5510: 5511, 5511: 5512, 5512: 5513, 5513: 5514, 5514: 5515, 5515: 5516, 5516: 5517, 5517: 5518, 5518: 5519, 5519: 5520, 5520: 5521, 5521: 5522, 5522: 5523, 5523: 5524, 5524: 5525, 5525: 5526, 5526: 5527, 5527: 5528, 5528: 5529, 5529: 5530, 5530: 5531, 5531: 5532, 5532: 5533, 5533: 5534, 5534: 5535, 5535: 5536, 5536: 5537, 5537: 5538, 5538: 5539, 5539: 5540, 5540: 5541, 5541: 5542, 5542: 5543, 5543: 5544, 5544: 5545, 5545: 5546, 5546: 5547, 5547: 5548, 5548: 5549, 5549: 5550, 5550: 5551, 5551: 5552, 5552: 5553, 5553: 5554, 5554: 5555, 5555: 5556, 5556: 5557, 5557: 5558, 5558: 5559, 5559: 5560, 5560: 5561, 5561: 5562, 5562: 5563, 5563: 5564, 5564: 5565, 5565: 5566, 5566: 5567, 5567: 5568, 5568: 5569, 5569: 5570, 5570: 5571, 5571: 5572, 5572: 5573, 5573: 5574, 5574: 5575, 5575: 5576, 5576: 5577, 5577: 5578, 5578: 5579, 5579: 5580, 5580: 5581, 5581: 5582, 5582: 5583, 5583: 5584, 5584: 5585, 5585: 5586, 5586: 5587, 5587: 5588, 5588: 5589, 5589: 5590, 5590: 5591, 5591: 5592, 5592: 5593, 5593: 5594, 5594: 5595, 5595: 5596, 5596: 5597, 5597: 5598, 5598: 5599, 5599: 5600, 5600: 5601, 5601: 5602, 5602: 5603, 5603: 5604, 5604: 5605, 5605: 5606, 5606: 5607, 5607: 5608, 5608: 5609, 5609: 5610, 5610: 5611, 5611: 5612, 5612: 5613, 5613: 5614, 5614: 5615, 5615: 5616, 5616: 5617, 5617: 5618, 5618: 5619, 5619: 5620, 5620: 5621, 5621: 5622, 5622: 5623, 5623: 5624, 5624: 5625, 5625: 5626, 5626: 5627, 5627: 5628, 5628: 5629, 5629: 5630, 5630: 5631, 5631: 5632, 5632: 5633, 5633: 5634, 5634: 5635, 5635: 5636, 5636: 5637, 5637: 5638, 5638: 5639, 5639: 5640, 5640: 5641, 5641: 5642, 5642: 5643, 5643: 5644, 5644: 5645, 5645: 5646, 5646: 5647, 5647: 5648, 5648: 5649, 5649: 5650, 5650: 5651, 5651: 5652, 5652: 5653, 5653: 5654, 5654: 5655, 5655: 5656, 5656: 5657, 5657: 5658, 5658: 5659, 5659: 5660, 5660: 5661, 5661: 5662, 5662: 5663, 5663: 5664, 5664: 5665, 5665: 5666, 5666: 5667, 5667: 5668, 5668: 5669, 5669: 5670, 5670: 5671, 5671: 5672, 5672: 5673, 5673: 5674, 5674: 5675, 5675: 5676, 5676: 5677, 5677: 5678, 5678: 5679, 5679: 5680, 5680: 5681, 5681: 5682, 5682: 5683, 5683: 5684, 5684: 5685, 5685: 5686, 5686: 5687, 5687: 5688, 5688: 5689, 5689: 5690, 5690: 5691, 5691: 5692, 5692: 5693, 5693: 5694, 5694: 5695, 5695: 5696, 5696: 5697, 5697: 5698, 5698: 5699, 5699: 5700, 5700: 5701, 5701: 5702, 5702: 5703, 5703: 5704, 5704: 5705, 5705: 5706, 5706: 5707, 5707: 5708, 5708: 5709, 5709: 5710, 5710: 5711, 5711: 5712, 5712: 5713, 5713: 5714, 5714: 5715, 5715: 5716, 5716: 5717, 5717: 5718, 5718: 5719, 5719: 5720, 5720: 5721, 5721: 5722, 5722: 5723, 5723: 5724, 5724: 5725, 5725: 5726, 5726: 5727, 5727: 5728, 5728: 5729, 5729: 5730, 5730: 5731, 5731: 5732, 5732: 5733, 5733: 5734, 5734: 5735, 5735: 5736, 5736: 5737, 5737: 5738, 5738: 5739, 5739: 5740, 5740: 5741, 5741: 5742, 5742: 5743, 5743: 5744, 5744: 5745, 5745: 5746, 5746: 5747, 5747: 5748, 5748: 5749, 5749: 5750, 5750: 5751, 5751: 5752, 5752: 5753, 5753: 5754, 5754: 5755, 5755: 5756, 5756: 5757, 5757: 5758, 5758: 5759, 5759: 5760, 5760: 5761, 5761: 5762, 5762: 5763, 5763: 5764, 5764: 5765, 5765: 5766, 5766: 5767, 5767: 5768, 5768: 5769, 5769: 5770, 5770: 5771, 5771: 5772, 5772: 5773, 5773: 5774, 5774: 5775, 5775: 5776, 5776: 5777, 5777: 5778, 5778: 5779, 5779: 5780, 5780: 5781, 5781: 5782, 5782: 5783, 5783: 5784, 5784: 5785, 5785: 5786, 5786: 5787, 5787: 5788, 5788: 5789, 5789: 5790, 5790: 5791, 5791: 5792, 5792: 5793, 5793: 5794, 5794: 5795, 5795: 5796, 5796: 5797, 5797: 5798, 5798: 5799, 5799: 5800, 5800: 5801, 5801: 5802, 5802: 5803, 5803: 5804, 5804: 5805, 5805: 5806, 5806: 5807, 5807: 5808, 5808: 5809, 5809: 5810, 5810: 5811, 5811: 5812, 5812: 5813, 5813: 5814, 5814: 5815, 5815: 5816, 5816: 5817, 5817: 5818, 5818: 5819, 5819: 5820, 5820: 5821, 5821: 5822, 5822: 5823, 5823: 5824, 5824: 5825, 5825: 5826, 5826: 5827, 5827: 5828, 5828: 5829, 5829: 5830, 5830: 5831, 5831: 5832, 5832: 5833, 5833: 5834, 5834: 5835, 5835: 5836, 5836: 5837, 5837: 5838, 5838: 5839, 5839: 5840, 5840: 5841, 5841: 5842, 5842: 5843, 5843: 5844, 5844: 5845, 5845: 5846, 5846: 5847, 5847: 5848, 5848: 5849, 5849: 5850, 5850: 5851, 5851: 5852, 5852: 5853, 5853: 5854, 5854: 5855, 5855: 5856, 5856: 5857, 5857: 5858, 5858: 5859, 5859: 5860, 5860: 5861, 5861: 5862, 5862: 5863, 5863: 5864, 5864: 5865, 5865: 5866, 5866: 5867, 5867: 5868, 5868: 5869, 5869: 5870, 5870: 5871, 5871: 5872, 5872: 5873, 5873: 5874, 5874: 5875, 5875: 5876, 5876: 5877, 5877: 5878, 5878: 5879, 5879: 5880, 5880: 5881, 5881: 5882, 5882: 5883, 5883: 5884, 5884: 5885, 5885: 5886, 5886: 5887, 5887: 5888, 5888: 5889, 5889: 5890, 5890: 5891, 5891: 5892, 5892: 5893, 5893: 5894, 5894: 5895, 5895: 5896, 5896: 5897, 5897: 5898, 5898: 5899, 5899: 5900, 5900: 5901, 5901: 5902, 5902: 5903, 5903: 5904, 5904: 5905, 5905: 5906, 5906: 5907, 5907: 5908, 5908: 5909, 5909: 5910, 5910: 5911, 5911: 5912, 5912: 5913, 5913: 5914, 5914: 5915, 5915: 5916, 5916: 5917, 5917: 5918, 5918: 5919, 5919: 5920, 5920: 5921, 5921: 5922, 5922: 5923, 5923: 5924, 5924: 5925, 5925: 5926, 5926: 5927, 5927: 5928, 5928: 5929, 5929: 5930, 5930: 5931, 5931: 5932, 5932: 5933, 5933: 5934, 5934: 5935, 5935: 5936, 5936: 5937, 5937: 5938, 5938: 5939, 5939: 5940, 5940: 5941, 5941: 5942, 5942: 5943, 5943: 5944, 5944: 5945, 5945: 5946, 5946: 5947, 5947: 5948, 5948: 5949, 5949: 5950, 5950: 5951, 5951: 5952, 5952: 5953, 5953: 5954, 5954: 5955, 5955: 5956, 5956: 5957, 5957: 5958, 5958: 5959, 5959: 5960, 5960: 5961, 5961: 5962, 5962: 5963, 5963: 5964, 5964: 5965, 5965: 5966, 5966: 5967, 5967: 5968, 5968: 5969, 5969: 5970, 5970: 5971, 5971: 5972, 5972: 5973, 5973: 5974, 5974: 5975, 5975: 5976, 5976: 5977, 5977: 5978, 5978: 5979, 5979: 5980, 5980: 5981, 5981: 5982, 5982: 5983, 5983: 5984, 5984: 5985, 5985: 5986, 5986: 5987, 5987: 5988, 5988: 5989, 5989: 5990, 5990: 5991, 5991: 5992, 5992: 5993, 5993: 5994, 5994: 5995, 5995: 5996, 5996: 5997, 5997: 5998, 5998: 5999, 5999: 6000, 6000: 6001, 6001: 6002, 6002: 6003, 6003: 6004, 6004: 6005, 6005: 6006, 6006: 6007, 6007: 6008, 6008: 6009, 6009: 6010, 6010: 6011, 6011: 6012, 6012: 6013, 6013: 6014, 6014: 6015, 6015: 6016, 6016: 6017, 6017: 6018, 6018: 6019, 6019: 6020, 6020: 6021, 6021: 6022, 6022: 6023, 6023: 6024, 6024: 6025, 6025: 6026, 6026: 6027, 6027: 6028, 6028: 6029, 6029: 6030, 6030: 6031, 6031: 6032, 6032: 6033, 6033: 6034, 6034: 6035, 6035: 6036, 6036: 6037, 6037: 6038, 6038: 6039, 6039: 6040}}\n", - "{'item_id': {1: 0, 2: 1, 3: 2, 4: 3, 5: 4, 6: 5, 7: 6, 8: 7, 9: 8, 10: 9, 11: 10, 12: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16, 18: 17, 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24, 26: 25, 27: 26, 28: 27, 29: 28, 30: 29, 31: 30, 32: 31, 33: 32, 34: 33, 35: 34, 36: 35, 37: 36, 38: 37, 39: 38, 40: 39, 41: 40, 42: 41, 43: 42, 44: 43, 45: 44, 46: 45, 47: 46, 48: 47, 49: 48, 50: 49, 51: 50, 52: 51, 53: 52, 54: 53, 55: 54, 56: 55, 57: 56, 58: 57, 59: 58, 60: 59, 61: 60, 62: 61, 63: 62, 64: 63, 65: 64, 66: 65, 67: 66, 68: 67, 69: 68, 70: 69, 71: 70, 72: 71, 73: 72, 74: 73, 75: 74, 76: 75, 77: 76, 78: 77, 79: 78, 80: 79, 81: 80, 82: 81, 83: 82, 84: 83, 85: 84, 86: 85, 87: 86, 88: 87, 89: 88, 90: 89, 92: 90, 93: 91, 94: 92, 95: 93, 96: 94, 97: 95, 98: 96, 99: 97, 100: 98, 101: 99, 102: 100, 103: 101, 104: 102, 105: 103, 106: 104, 107: 105, 108: 106, 109: 107, 110: 108, 111: 109, 112: 110, 113: 111, 114: 112, 115: 113, 116: 114, 117: 115, 118: 116, 119: 117, 120: 118, 121: 119, 122: 120, 123: 121, 124: 122, 125: 123, 126: 124, 127: 125, 128: 126, 129: 127, 130: 128, 131: 129, 132: 130, 133: 131, 134: 132, 135: 133, 136: 134, 137: 135, 138: 136, 139: 137, 140: 138, 141: 139, 142: 140, 143: 141, 144: 142, 145: 143, 146: 144, 147: 145, 148: 146, 149: 147, 150: 148, 151: 149, 152: 150, 153: 151, 154: 152, 155: 153, 156: 154, 157: 155, 158: 156, 159: 157, 160: 158, 161: 159, 162: 160, 163: 161, 164: 162, 165: 163, 166: 164, 167: 165, 168: 166, 169: 167, 170: 168, 171: 169, 172: 170, 173: 171, 174: 172, 175: 173, 176: 174, 177: 175, 178: 176, 179: 177, 180: 178, 181: 179, 182: 180, 183: 181, 184: 182, 185: 183, 186: 184, 187: 185, 188: 186, 189: 187, 190: 188, 191: 189, 192: 190, 193: 191, 194: 192, 195: 193, 196: 194, 197: 195, 198: 196, 199: 197, 200: 198, 201: 199, 202: 200, 203: 201, 204: 202, 205: 203, 206: 204, 207: 205, 208: 206, 209: 207, 210: 208, 211: 209, 212: 210, 213: 211, 214: 212, 215: 213, 216: 214, 217: 215, 218: 216, 219: 217, 220: 218, 222: 219, 223: 220, 224: 221, 225: 222, 226: 223, 227: 224, 228: 225, 229: 226, 230: 227, 231: 228, 232: 229, 233: 230, 234: 231, 235: 232, 236: 233, 237: 234, 238: 235, 239: 236, 240: 237, 241: 238, 242: 239, 243: 240, 244: 241, 245: 242, 246: 243, 247: 244, 248: 245, 249: 246, 250: 247, 251: 248, 252: 249, 253: 250, 254: 251, 255: 252, 256: 253, 257: 254, 258: 255, 259: 256, 260: 257, 261: 258, 262: 259, 263: 260, 264: 261, 265: 262, 266: 263, 267: 264, 268: 265, 269: 266, 270: 267, 271: 268, 272: 269, 273: 270, 274: 271, 275: 272, 276: 273, 277: 274, 278: 275, 279: 276, 280: 277, 281: 278, 282: 279, 283: 280, 284: 281, 285: 282, 286: 283, 287: 284, 288: 285, 289: 286, 290: 287, 291: 288, 292: 289, 293: 290, 294: 291, 295: 292, 296: 293, 297: 294, 298: 295, 299: 296, 300: 297, 301: 298, 302: 299, 303: 300, 304: 301, 305: 302, 306: 303, 307: 304, 308: 305, 309: 306, 310: 307, 311: 308, 312: 309, 313: 310, 314: 311, 315: 312, 316: 313, 317: 314, 318: 315, 319: 316, 320: 317, 321: 318, 322: 319, 324: 320, 325: 321, 326: 322, 327: 323, 328: 324, 329: 325, 330: 326, 331: 327, 332: 328, 333: 329, 334: 330, 335: 331, 336: 332, 337: 333, 338: 334, 339: 335, 340: 336, 341: 337, 342: 338, 343: 339, 344: 340, 345: 341, 346: 342, 347: 343, 348: 344, 349: 345, 350: 346, 351: 347, 352: 348, 353: 349, 354: 350, 355: 351, 356: 352, 357: 353, 358: 354, 359: 355, 360: 356, 361: 357, 362: 358, 363: 359, 364: 360, 365: 361, 366: 362, 367: 363, 368: 364, 369: 365, 370: 366, 371: 367, 372: 368, 373: 369, 374: 370, 375: 371, 376: 372, 377: 373, 378: 374, 379: 375, 380: 376, 381: 377, 382: 378, 383: 379, 384: 380, 385: 381, 386: 382, 387: 383, 388: 384, 389: 385, 390: 386, 391: 387, 392: 388, 393: 389, 394: 390, 395: 391, 396: 392, 397: 393, 398: 394, 399: 395, 400: 396, 401: 397, 402: 398, 403: 399, 404: 400, 405: 401, 406: 402, 407: 403, 408: 404, 409: 405, 410: 406, 411: 407, 412: 408, 413: 409, 414: 410, 415: 411, 416: 412, 417: 413, 418: 414, 419: 415, 420: 416, 421: 417, 422: 418, 423: 419, 424: 420, 425: 421, 426: 422, 427: 423, 428: 424, 429: 425, 430: 426, 431: 427, 432: 428, 433: 429, 434: 430, 435: 431, 436: 432, 437: 433, 438: 434, 439: 435, 440: 436, 441: 437, 442: 438, 443: 439, 444: 440, 445: 441, 446: 442, 447: 443, 448: 444, 449: 445, 450: 446, 451: 447, 452: 448, 453: 449, 454: 450, 455: 451, 456: 452, 457: 453, 458: 454, 459: 455, 460: 456, 461: 457, 462: 458, 463: 459, 464: 460, 465: 461, 466: 462, 467: 463, 468: 464, 469: 465, 470: 466, 471: 467, 472: 468, 473: 469, 474: 470, 475: 471, 476: 472, 477: 473, 478: 474, 479: 475, 480: 476, 481: 477, 482: 478, 483: 479, 484: 480, 485: 481, 486: 482, 487: 483, 488: 484, 489: 485, 490: 486, 491: 487, 492: 488, 493: 489, 494: 490, 495: 491, 496: 492, 497: 493, 498: 494, 499: 495, 500: 496, 501: 497, 502: 498, 503: 499, 504: 500, 505: 501, 506: 502, 507: 503, 508: 504, 509: 505, 510: 506, 511: 507, 512: 508, 513: 509, 514: 510, 515: 511, 516: 512, 517: 513, 518: 514, 519: 515, 520: 516, 521: 517, 522: 518, 523: 519, 524: 520, 525: 521, 526: 522, 527: 523, 528: 524, 529: 525, 530: 526, 531: 527, 532: 528, 533: 529, 534: 530, 535: 531, 536: 532, 537: 533, 538: 534, 539: 535, 540: 536, 541: 537, 542: 538, 543: 539, 544: 540, 545: 541, 546: 542, 547: 543, 548: 544, 549: 545, 550: 546, 551: 547, 552: 548, 553: 549, 554: 550, 555: 551, 556: 552, 557: 553, 558: 554, 559: 555, 560: 556, 561: 557, 562: 558, 563: 559, 564: 560, 565: 561, 566: 562, 567: 563, 568: 564, 569: 565, 570: 566, 571: 567, 572: 568, 573: 569, 574: 570, 575: 571, 576: 572, 577: 573, 578: 574, 579: 575, 580: 576, 581: 577, 582: 578, 583: 579, 584: 580, 585: 581, 586: 582, 587: 583, 588: 584, 589: 585, 590: 586, 591: 587, 592: 588, 593: 589, 594: 590, 595: 591, 596: 592, 597: 593, 598: 594, 599: 595, 600: 596, 601: 597, 602: 598, 603: 599, 604: 600, 605: 601, 606: 602, 607: 603, 608: 604, 609: 605, 610: 606, 611: 607, 612: 608, 613: 609, 614: 610, 615: 611, 616: 612, 617: 613, 618: 614, 619: 615, 620: 616, 621: 617, 623: 618, 624: 619, 625: 620, 626: 621, 627: 622, 628: 623, 629: 624, 630: 625, 631: 626, 632: 627, 633: 628, 634: 629, 635: 630, 636: 631, 637: 632, 638: 633, 639: 634, 640: 635, 641: 636, 642: 637, 643: 638, 644: 639, 645: 640, 647: 641, 648: 642, 649: 643, 650: 644, 651: 645, 652: 646, 653: 647, 654: 648, 655: 649, 656: 650, 657: 651, 658: 652, 659: 653, 660: 654, 661: 655, 662: 656, 663: 657, 664: 658, 665: 659, 666: 660, 667: 661, 668: 662, 669: 663, 670: 664, 671: 665, 672: 666, 673: 667, 674: 668, 675: 669, 676: 670, 678: 671, 679: 672, 680: 673, 681: 674, 682: 675, 683: 676, 684: 677, 685: 678, 687: 679, 688: 680, 690: 681, 691: 682, 692: 683, 693: 684, 694: 685, 695: 686, 696: 687, 697: 688, 698: 689, 699: 690, 700: 691, 701: 692, 702: 693, 703: 694, 704: 695, 705: 696, 706: 697, 707: 698, 708: 699, 709: 700, 710: 701, 711: 702, 712: 703, 713: 704, 714: 705, 715: 706, 716: 707, 717: 708, 718: 709, 719: 710, 720: 711, 721: 712, 722: 713, 723: 714, 724: 715, 725: 716, 726: 717, 727: 718, 728: 719, 729: 720, 730: 721, 731: 722, 732: 723, 733: 724, 734: 725, 735: 726, 736: 727, 737: 728, 738: 729, 739: 730, 741: 731, 742: 732, 743: 733, 744: 734, 745: 735, 746: 736, 747: 737, 748: 738, 749: 739, 750: 740, 751: 741, 752: 742, 753: 743, 754: 744, 755: 745, 756: 746, 757: 747, 758: 748, 759: 749, 760: 750, 761: 751, 762: 752, 763: 753, 764: 754, 765: 755, 766: 756, 767: 757, 768: 758, 769: 759, 770: 760, 771: 761, 772: 762, 773: 763, 774: 764, 775: 765, 776: 766, 777: 767, 778: 768, 779: 769, 780: 770, 781: 771, 782: 772, 783: 773, 784: 774, 785: 775, 786: 776, 787: 777, 788: 778, 789: 779, 790: 780, 791: 781, 792: 782, 793: 783, 794: 784, 795: 785, 796: 786, 797: 787, 798: 788, 799: 789, 800: 790, 801: 791, 802: 792, 803: 793, 804: 794, 805: 795, 806: 796, 807: 797, 808: 798, 809: 799, 810: 800, 811: 801, 812: 802, 813: 803, 814: 804, 815: 805, 816: 806, 818: 807, 819: 808, 820: 809, 821: 810, 822: 811, 823: 812, 824: 813, 825: 814, 826: 815, 827: 816, 828: 817, 829: 818, 830: 819, 831: 820, 832: 821, 833: 822, 834: 823, 835: 824, 836: 825, 837: 826, 838: 827, 839: 828, 840: 829, 841: 830, 842: 831, 843: 832, 844: 833, 845: 834, 846: 835, 847: 836, 848: 837, 849: 838, 850: 839, 851: 840, 852: 841, 853: 842, 854: 843, 855: 844, 856: 845, 857: 846, 858: 847, 859: 848, 860: 849, 861: 850, 862: 851, 863: 852, 864: 853, 865: 854, 866: 855, 867: 856, 868: 857, 869: 858, 870: 859, 871: 860, 872: 861, 873: 862, 874: 863, 875: 864, 876: 865, 877: 866, 878: 867, 879: 868, 880: 869, 881: 870, 882: 871, 884: 872, 885: 873, 886: 874, 887: 875, 888: 876, 889: 877, 890: 878, 891: 879, 892: 880, 893: 881, 894: 882, 895: 883, 896: 884, 897: 885, 898: 886, 899: 887, 900: 888, 901: 889, 902: 890, 903: 891, 904: 892, 905: 893, 906: 894, 907: 895, 908: 896, 909: 897, 910: 898, 911: 899, 912: 900, 913: 901, 914: 902, 915: 903, 916: 904, 917: 905, 918: 906, 919: 907, 920: 908, 921: 909, 922: 910, 923: 911, 924: 912, 925: 913, 926: 914, 927: 915, 928: 916, 929: 917, 930: 918, 931: 919, 932: 920, 933: 921, 934: 922, 935: 923, 936: 924, 937: 925, 938: 926, 939: 927, 940: 928, 941: 929, 942: 930, 943: 931, 944: 932, 945: 933, 946: 934, 947: 935, 948: 936, 949: 937, 950: 938, 951: 939, 952: 940, 953: 941, 954: 942, 955: 943, 956: 944, 957: 945, 958: 946, 959: 947, 960: 948, 961: 949, 962: 950, 963: 951, 964: 952, 965: 953, 966: 954, 967: 955, 968: 956, 969: 957, 970: 958, 971: 959, 972: 960, 973: 961, 974: 962, 975: 963, 976: 964, 977: 965, 978: 966, 979: 967, 980: 968, 981: 969, 982: 970, 983: 971, 984: 972, 985: 973, 986: 974, 987: 975, 988: 976, 989: 977, 990: 978, 991: 979, 992: 980, 993: 981, 994: 982, 996: 983, 997: 984, 998: 985, 999: 986, 1000: 987, 1001: 988, 1002: 989, 1003: 990, 1004: 991, 1005: 992, 1006: 993, 1007: 994, 1008: 995, 1009: 996, 1010: 997, 1011: 998, 1012: 999, 1013: 1000, 1014: 1001, 1015: 1002, 1016: 1003, 1017: 1004, 1018: 1005, 1019: 1006, 1020: 1007, 1021: 1008, 1022: 1009, 1023: 1010, 1024: 1011, 1025: 1012, 1026: 1013, 1027: 1014, 1028: 1015, 1029: 1016, 1030: 1017, 1031: 1018, 1032: 1019, 1033: 1020, 1034: 1021, 1035: 1022, 1036: 1023, 1037: 1024, 1038: 1025, 1039: 1026, 1040: 1027, 1041: 1028, 1042: 1029, 1043: 1030, 1044: 1031, 1045: 1032, 1046: 1033, 1047: 1034, 1049: 1035, 1050: 1036, 1051: 1037, 1052: 1038, 1053: 1039, 1054: 1040, 1055: 1041, 1056: 1042, 1057: 1043, 1058: 1044, 1059: 1045, 1060: 1046, 1061: 1047, 1062: 1048, 1063: 1049, 1064: 1050, 1065: 1051, 1066: 1052, 1067: 1053, 1068: 1054, 1069: 1055, 1070: 1056, 1071: 1057, 1073: 1058, 1075: 1059, 1076: 1060, 1077: 1061, 1078: 1062, 1079: 1063, 1080: 1064, 1081: 1065, 1082: 1066, 1083: 1067, 1084: 1068, 1085: 1069, 1086: 1070, 1087: 1071, 1088: 1072, 1089: 1073, 1090: 1074, 1091: 1075, 1092: 1076, 1093: 1077, 1094: 1078, 1095: 1079, 1096: 1080, 1097: 1081, 1098: 1082, 1099: 1083, 1100: 1084, 1101: 1085, 1102: 1086, 1103: 1087, 1104: 1088, 1105: 1089, 1106: 1090, 1107: 1091, 1108: 1092, 1109: 1093, 1110: 1094, 1111: 1095, 1112: 1096, 1113: 1097, 1114: 1098, 1115: 1099, 1116: 1100, 1117: 1101, 1118: 1102, 1119: 1103, 1120: 1104, 1121: 1105, 1122: 1106, 1123: 1107, 1124: 1108, 1125: 1109, 1126: 1110, 1127: 1111, 1128: 1112, 1129: 1113, 1130: 1114, 1131: 1115, 1132: 1116, 1133: 1117, 1134: 1118, 1135: 1119, 1136: 1120, 1137: 1121, 1138: 1122, 1139: 1123, 1140: 1124, 1141: 1125, 1142: 1126, 1143: 1127, 1144: 1128, 1145: 1129, 1146: 1130, 1147: 1131, 1148: 1132, 1149: 1133, 1150: 1134, 1151: 1135, 1152: 1136, 1153: 1137, 1154: 1138, 1155: 1139, 1156: 1140, 1157: 1141, 1158: 1142, 1159: 1143, 1160: 1144, 1161: 1145, 1162: 1146, 1163: 1147, 1164: 1148, 1165: 1149, 1166: 1150, 1167: 1151, 1168: 1152, 1169: 1153, 1170: 1154, 1171: 1155, 1172: 1156, 1173: 1157, 1174: 1158, 1175: 1159, 1176: 1160, 1177: 1161, 1178: 1162, 1179: 1163, 1180: 1164, 1181: 1165, 1183: 1166, 1184: 1167, 1185: 1168, 1186: 1169, 1187: 1170, 1188: 1171, 1189: 1172, 1190: 1173, 1191: 1174, 1192: 1175, 1193: 1176, 1194: 1177, 1196: 1178, 1197: 1179, 1198: 1180, 1199: 1181, 1200: 1182, 1201: 1183, 1202: 1184, 1203: 1185, 1204: 1186, 1205: 1187, 1206: 1188, 1207: 1189, 1208: 1190, 1209: 1191, 1210: 1192, 1211: 1193, 1212: 1194, 1213: 1195, 1214: 1196, 1215: 1197, 1216: 1198, 1217: 1199, 1218: 1200, 1219: 1201, 1220: 1202, 1221: 1203, 1222: 1204, 1223: 1205, 1224: 1206, 1225: 1207, 1226: 1208, 1227: 1209, 1228: 1210, 1230: 1211, 1231: 1212, 1232: 1213, 1233: 1214, 1234: 1215, 1235: 1216, 1236: 1217, 1237: 1218, 1238: 1219, 1240: 1220, 1241: 1221, 1242: 1222, 1243: 1223, 1244: 1224, 1245: 1225, 1246: 1226, 1247: 1227, 1248: 1228, 1249: 1229, 1250: 1230, 1251: 1231, 1252: 1232, 1253: 1233, 1254: 1234, 1255: 1235, 1256: 1236, 1257: 1237, 1258: 1238, 1259: 1239, 1260: 1240, 1261: 1241, 1262: 1242, 1263: 1243, 1264: 1244, 1265: 1245, 1266: 1246, 1267: 1247, 1268: 1248, 1269: 1249, 1270: 1250, 1271: 1251, 1272: 1252, 1273: 1253, 1274: 1254, 1275: 1255, 1276: 1256, 1277: 1257, 1278: 1258, 1279: 1259, 1280: 1260, 1281: 1261, 1282: 1262, 1283: 1263, 1284: 1264, 1285: 1265, 1286: 1266, 1287: 1267, 1288: 1268, 1289: 1269, 1290: 1270, 1291: 1271, 1292: 1272, 1293: 1273, 1294: 1274, 1295: 1275, 1296: 1276, 1297: 1277, 1298: 1278, 1299: 1279, 1300: 1280, 1301: 1281, 1302: 1282, 1303: 1283, 1304: 1284, 1305: 1285, 1306: 1286, 1307: 1287, 1308: 1288, 1309: 1289, 1310: 1290, 1311: 1291, 1312: 1292, 1313: 1293, 1314: 1294, 1315: 1295, 1316: 1296, 1317: 1297, 1318: 1298, 1319: 1299, 1320: 1300, 1321: 1301, 1322: 1302, 1323: 1303, 1324: 1304, 1325: 1305, 1326: 1306, 1327: 1307, 1328: 1308, 1329: 1309, 1330: 1310, 1331: 1311, 1332: 1312, 1333: 1313, 1334: 1314, 1335: 1315, 1336: 1316, 1337: 1317, 1339: 1318, 1340: 1319, 1341: 1320, 1342: 1321, 1343: 1322, 1344: 1323, 1345: 1324, 1346: 1325, 1347: 1326, 1348: 1327, 1349: 1328, 1350: 1329, 1351: 1330, 1352: 1331, 1353: 1332, 1354: 1333, 1355: 1334, 1356: 1335, 1357: 1336, 1358: 1337, 1359: 1338, 1360: 1339, 1361: 1340, 1362: 1341, 1363: 1342, 1364: 1343, 1365: 1344, 1366: 1345, 1367: 1346, 1368: 1347, 1369: 1348, 1370: 1349, 1371: 1350, 1372: 1351, 1373: 1352, 1374: 1353, 1375: 1354, 1376: 1355, 1377: 1356, 1378: 1357, 1379: 1358, 1380: 1359, 1381: 1360, 1382: 1361, 1383: 1362, 1384: 1363, 1385: 1364, 1386: 1365, 1387: 1366, 1388: 1367, 1389: 1368, 1390: 1369, 1391: 1370, 1392: 1371, 1393: 1372, 1394: 1373, 1395: 1374, 1396: 1375, 1397: 1376, 1398: 1377, 1399: 1378, 1400: 1379, 1401: 1380, 1404: 1381, 1405: 1382, 1406: 1383, 1407: 1384, 1408: 1385, 1409: 1386, 1410: 1387, 1411: 1388, 1412: 1389, 1413: 1390, 1414: 1391, 1415: 1392, 1416: 1393, 1417: 1394, 1419: 1395, 1420: 1396, 1421: 1397, 1422: 1398, 1423: 1399, 1424: 1400, 1425: 1401, 1426: 1402, 1427: 1403, 1428: 1404, 1429: 1405, 1430: 1406, 1431: 1407, 1432: 1408, 1433: 1409, 1434: 1410, 1436: 1411, 1437: 1412, 1438: 1413, 1439: 1414, 1440: 1415, 1441: 1416, 1442: 1417, 1443: 1418, 1444: 1419, 1445: 1420, 1446: 1421, 1447: 1422, 1448: 1423, 1449: 1424, 1450: 1425, 1453: 1426, 1454: 1427, 1455: 1428, 1456: 1429, 1457: 1430, 1458: 1431, 1459: 1432, 1460: 1433, 1461: 1434, 1462: 1435, 1463: 1436, 1464: 1437, 1465: 1438, 1466: 1439, 1467: 1440, 1468: 1441, 1470: 1442, 1471: 1443, 1472: 1444, 1473: 1445, 1474: 1446, 1475: 1447, 1476: 1448, 1477: 1449, 1479: 1450, 1480: 1451, 1482: 1452, 1483: 1453, 1484: 1454, 1485: 1455, 1486: 1456, 1487: 1457, 1488: 1458, 1489: 1459, 1490: 1460, 1493: 1461, 1494: 1462, 1495: 1463, 1496: 1464, 1497: 1465, 1498: 1466, 1499: 1467, 1500: 1468, 1501: 1469, 1502: 1470, 1503: 1471, 1504: 1472, 1507: 1473, 1508: 1474, 1509: 1475, 1510: 1476, 1511: 1477, 1513: 1478, 1514: 1479, 1515: 1480, 1516: 1481, 1517: 1482, 1518: 1483, 1519: 1484, 1520: 1485, 1522: 1486, 1523: 1487, 1524: 1488, 1525: 1489, 1526: 1490, 1527: 1491, 1528: 1492, 1529: 1493, 1531: 1494, 1532: 1495, 1533: 1496, 1534: 1497, 1535: 1498, 1537: 1499, 1538: 1500, 1539: 1501, 1541: 1502, 1542: 1503, 1543: 1504, 1544: 1505, 1545: 1506, 1546: 1507, 1547: 1508, 1548: 1509, 1549: 1510, 1550: 1511, 1551: 1512, 1552: 1513, 1553: 1514, 1554: 1515, 1555: 1516, 1556: 1517, 1557: 1518, 1558: 1519, 1559: 1520, 1561: 1521, 1562: 1522, 1563: 1523, 1564: 1524, 1565: 1525, 1566: 1526, 1567: 1527, 1568: 1528, 1569: 1529, 1570: 1530, 1571: 1531, 1572: 1532, 1573: 1533, 1574: 1534, 1575: 1535, 1577: 1536, 1578: 1537, 1579: 1538, 1580: 1539, 1581: 1540, 1582: 1541, 1583: 1542, 1584: 1543, 1585: 1544, 1586: 1545, 1587: 1546, 1588: 1547, 1589: 1548, 1590: 1549, 1591: 1550, 1592: 1551, 1593: 1552, 1594: 1553, 1595: 1554, 1596: 1555, 1597: 1556, 1598: 1557, 1599: 1558, 1600: 1559, 1601: 1560, 1602: 1561, 1603: 1562, 1604: 1563, 1605: 1564, 1606: 1565, 1608: 1566, 1609: 1567, 1610: 1568, 1611: 1569, 1612: 1570, 1613: 1571, 1614: 1572, 1615: 1573, 1616: 1574, 1617: 1575, 1619: 1576, 1620: 1577, 1621: 1578, 1622: 1579, 1623: 1580, 1624: 1581, 1625: 1582, 1626: 1583, 1627: 1584, 1628: 1585, 1629: 1586, 1630: 1587, 1631: 1588, 1632: 1589, 1633: 1590, 1635: 1591, 1636: 1592, 1639: 1593, 1640: 1594, 1641: 1595, 1642: 1596, 1643: 1597, 1644: 1598, 1645: 1599, 1646: 1600, 1647: 1601, 1648: 1602, 1649: 1603, 1650: 1604, 1651: 1605, 1652: 1606, 1653: 1607, 1654: 1608, 1655: 1609, 1656: 1610, 1657: 1611, 1658: 1612, 1659: 1613, 1660: 1614, 1661: 1615, 1662: 1616, 1663: 1617, 1664: 1618, 1665: 1619, 1666: 1620, 1667: 1621, 1668: 1622, 1669: 1623, 1670: 1624, 1671: 1625, 1672: 1626, 1673: 1627, 1674: 1628, 1675: 1629, 1676: 1630, 1677: 1631, 1678: 1632, 1679: 1633, 1680: 1634, 1681: 1635, 1682: 1636, 1683: 1637, 1684: 1638, 1685: 1639, 1686: 1640, 1687: 1641, 1688: 1642, 1689: 1643, 1690: 1644, 1692: 1645, 1693: 1646, 1694: 1647, 1695: 1648, 1696: 1649, 1697: 1650, 1698: 1651, 1699: 1652, 1701: 1653, 1702: 1654, 1703: 1655, 1704: 1656, 1705: 1657, 1706: 1658, 1707: 1659, 1708: 1660, 1709: 1661, 1710: 1662, 1711: 1663, 1713: 1664, 1714: 1665, 1715: 1666, 1716: 1667, 1717: 1668, 1718: 1669, 1719: 1670, 1720: 1671, 1721: 1672, 1722: 1673, 1723: 1674, 1724: 1675, 1725: 1676, 1726: 1677, 1727: 1678, 1728: 1679, 1729: 1680, 1730: 1681, 1731: 1682, 1732: 1683, 1733: 1684, 1734: 1685, 1735: 1686, 1738: 1687, 1739: 1688, 1740: 1689, 1741: 1690, 1742: 1691, 1743: 1692, 1744: 1693, 1746: 1694, 1747: 1695, 1748: 1696, 1749: 1697, 1750: 1698, 1752: 1699, 1753: 1700, 1754: 1701, 1755: 1702, 1756: 1703, 1757: 1704, 1758: 1705, 1759: 1706, 1760: 1707, 1762: 1708, 1764: 1709, 1765: 1710, 1767: 1711, 1768: 1712, 1769: 1713, 1770: 1714, 1771: 1715, 1772: 1716, 1773: 1717, 1774: 1718, 1776: 1719, 1777: 1720, 1779: 1721, 1780: 1722, 1781: 1723, 1782: 1724, 1783: 1725, 1784: 1726, 1785: 1727, 1787: 1728, 1788: 1729, 1789: 1730, 1791: 1731, 1792: 1732, 1793: 1733, 1794: 1734, 1795: 1735, 1796: 1736, 1797: 1737, 1798: 1738, 1799: 1739, 1801: 1740, 1804: 1741, 1805: 1742, 1806: 1743, 1807: 1744, 1809: 1745, 1810: 1746, 1811: 1747, 1812: 1748, 1814: 1749, 1815: 1750, 1816: 1751, 1817: 1752, 1819: 1753, 1820: 1754, 1821: 1755, 1822: 1756, 1824: 1757, 1825: 1758, 1826: 1759, 1827: 1760, 1829: 1761, 1830: 1762, 1831: 1763, 1832: 1764, 1833: 1765, 1834: 1766, 1835: 1767, 1836: 1768, 1837: 1769, 1839: 1770, 1840: 1771, 1841: 1772, 1842: 1773, 1843: 1774, 1844: 1775, 1845: 1776, 1846: 1777, 1847: 1778, 1848: 1779, 1849: 1780, 1850: 1781, 1851: 1782, 1852: 1783, 1853: 1784, 1854: 1785, 1855: 1786, 1856: 1787, 1857: 1788, 1858: 1789, 1859: 1790, 1860: 1791, 1861: 1792, 1862: 1793, 1863: 1794, 1864: 1795, 1865: 1796, 1866: 1797, 1867: 1798, 1868: 1799, 1869: 1800, 1870: 1801, 1871: 1802, 1872: 1803, 1873: 1804, 1874: 1805, 1875: 1806, 1876: 1807, 1877: 1808, 1878: 1809, 1879: 1810, 1880: 1811, 1881: 1812, 1882: 1813, 1883: 1814, 1884: 1815, 1885: 1816, 1886: 1817, 1887: 1818, 1888: 1819, 1889: 1820, 1890: 1821, 1891: 1822, 1892: 1823, 1893: 1824, 1894: 1825, 1895: 1826, 1896: 1827, 1897: 1828, 1898: 1829, 1899: 1830, 1900: 1831, 1901: 1832, 1902: 1833, 1903: 1834, 1904: 1835, 1905: 1836, 1906: 1837, 1907: 1838, 1908: 1839, 1909: 1840, 1910: 1841, 1911: 1842, 1912: 1843, 1913: 1844, 1914: 1845, 1915: 1846, 1916: 1847, 1917: 1848, 1918: 1849, 1919: 1850, 1920: 1851, 1921: 1852, 1922: 1853, 1923: 1854, 1924: 1855, 1925: 1856, 1926: 1857, 1927: 1858, 1928: 1859, 1929: 1860, 1930: 1861, 1931: 1862, 1932: 1863, 1933: 1864, 1934: 1865, 1935: 1866, 1936: 1867, 1937: 1868, 1938: 1869, 1939: 1870, 1940: 1871, 1941: 1872, 1942: 1873, 1943: 1874, 1944: 1875, 1945: 1876, 1946: 1877, 1947: 1878, 1948: 1879, 1949: 1880, 1950: 1881, 1951: 1882, 1952: 1883, 1953: 1884, 1954: 1885, 1955: 1886, 1956: 1887, 1957: 1888, 1958: 1889, 1959: 1890, 1960: 1891, 1961: 1892, 1962: 1893, 1963: 1894, 1964: 1895, 1965: 1896, 1966: 1897, 1967: 1898, 1968: 1899, 1969: 1900, 1970: 1901, 1971: 1902, 1972: 1903, 1973: 1904, 1974: 1905, 1975: 1906, 1976: 1907, 1977: 1908, 1978: 1909, 1979: 1910, 1980: 1911, 1981: 1912, 1982: 1913, 1983: 1914, 1984: 1915, 1985: 1916, 1986: 1917, 1987: 1918, 1988: 1919, 1989: 1920, 1990: 1921, 1991: 1922, 1992: 1923, 1993: 1924, 1994: 1925, 1995: 1926, 1996: 1927, 1997: 1928, 1998: 1929, 1999: 1930, 2000: 1931, 2001: 1932, 2002: 1933, 2003: 1934, 2004: 1935, 2005: 1936, 2006: 1937, 2007: 1938, 2008: 1939, 2009: 1940, 2010: 1941, 2011: 1942, 2012: 1943, 2013: 1944, 2014: 1945, 2015: 1946, 2016: 1947, 2017: 1948, 2018: 1949, 2019: 1950, 2020: 1951, 2021: 1952, 2022: 1953, 2023: 1954, 2024: 1955, 2025: 1956, 2026: 1957, 2027: 1958, 2028: 1959, 2029: 1960, 2030: 1961, 2031: 1962, 2032: 1963, 2033: 1964, 2034: 1965, 2035: 1966, 2036: 1967, 2037: 1968, 2038: 1969, 2039: 1970, 2040: 1971, 2041: 1972, 2042: 1973, 2043: 1974, 2044: 1975, 2045: 1976, 2046: 1977, 2047: 1978, 2048: 1979, 2049: 1980, 2050: 1981, 2051: 1982, 2052: 1983, 2053: 1984, 2054: 1985, 2055: 1986, 2056: 1987, 2057: 1988, 2058: 1989, 2059: 1990, 2060: 1991, 2061: 1992, 2062: 1993, 2063: 1994, 2064: 1995, 2065: 1996, 2066: 1997, 2067: 1998, 2068: 1999, 2069: 2000, 2070: 2001, 2071: 2002, 2072: 2003, 2073: 2004, 2074: 2005, 2075: 2006, 2076: 2007, 2077: 2008, 2078: 2009, 2079: 2010, 2080: 2011, 2081: 2012, 2082: 2013, 2083: 2014, 2084: 2015, 2085: 2016, 2086: 2017, 2087: 2018, 2088: 2019, 2089: 2020, 2090: 2021, 2091: 2022, 2092: 2023, 2093: 2024, 2094: 2025, 2095: 2026, 2096: 2027, 2097: 2028, 2098: 2029, 2099: 2030, 2100: 2031, 2101: 2032, 2102: 2033, 2103: 2034, 2104: 2035, 2105: 2036, 2106: 2037, 2107: 2038, 2108: 2039, 2109: 2040, 2110: 2041, 2111: 2042, 2112: 2043, 2113: 2044, 2114: 2045, 2115: 2046, 2116: 2047, 2117: 2048, 2118: 2049, 2119: 2050, 2120: 2051, 2121: 2052, 2122: 2053, 2123: 2054, 2124: 2055, 2125: 2056, 2126: 2057, 2127: 2058, 2128: 2059, 2129: 2060, 2130: 2061, 2131: 2062, 2132: 2063, 2133: 2064, 2134: 2065, 2135: 2066, 2136: 2067, 2137: 2068, 2138: 2069, 2139: 2070, 2140: 2071, 2141: 2072, 2142: 2073, 2143: 2074, 2144: 2075, 2145: 2076, 2146: 2077, 2147: 2078, 2148: 2079, 2149: 2080, 2150: 2081, 2151: 2082, 2152: 2083, 2153: 2084, 2154: 2085, 2155: 2086, 2156: 2087, 2157: 2088, 2158: 2089, 2159: 2090, 2160: 2091, 2161: 2092, 2162: 2093, 2163: 2094, 2164: 2095, 2165: 2096, 2166: 2097, 2167: 2098, 2168: 2099, 2169: 2100, 2170: 2101, 2171: 2102, 2172: 2103, 2173: 2104, 2174: 2105, 2175: 2106, 2176: 2107, 2177: 2108, 2178: 2109, 2179: 2110, 2180: 2111, 2181: 2112, 2182: 2113, 2183: 2114, 2184: 2115, 2185: 2116, 2186: 2117, 2187: 2118, 2188: 2119, 2189: 2120, 2190: 2121, 2191: 2122, 2192: 2123, 2193: 2124, 2194: 2125, 2195: 2126, 2196: 2127, 2197: 2128, 2198: 2129, 2199: 2130, 2200: 2131, 2201: 2132, 2202: 2133, 2203: 2134, 2204: 2135, 2205: 2136, 2206: 2137, 2207: 2138, 2208: 2139, 2209: 2140, 2210: 2141, 2211: 2142, 2212: 2143, 2213: 2144, 2214: 2145, 2215: 2146, 2216: 2147, 2217: 2148, 2218: 2149, 2219: 2150, 2220: 2151, 2221: 2152, 2222: 2153, 2223: 2154, 2224: 2155, 2225: 2156, 2226: 2157, 2227: 2158, 2228: 2159, 2229: 2160, 2230: 2161, 2231: 2162, 2232: 2163, 2233: 2164, 2234: 2165, 2235: 2166, 2236: 2167, 2237: 2168, 2238: 2169, 2239: 2170, 2240: 2171, 2241: 2172, 2242: 2173, 2243: 2174, 2244: 2175, 2245: 2176, 2246: 2177, 2247: 2178, 2248: 2179, 2249: 2180, 2250: 2181, 2251: 2182, 2252: 2183, 2253: 2184, 2254: 2185, 2255: 2186, 2256: 2187, 2257: 2188, 2258: 2189, 2259: 2190, 2260: 2191, 2261: 2192, 2262: 2193, 2263: 2194, 2264: 2195, 2265: 2196, 2266: 2197, 2267: 2198, 2268: 2199, 2269: 2200, 2270: 2201, 2271: 2202, 2272: 2203, 2273: 2204, 2274: 2205, 2275: 2206, 2276: 2207, 2277: 2208, 2278: 2209, 2279: 2210, 2280: 2211, 2281: 2212, 2282: 2213, 2283: 2214, 2284: 2215, 2285: 2216, 2286: 2217, 2287: 2218, 2288: 2219, 2289: 2220, 2290: 2221, 2291: 2222, 2292: 2223, 2293: 2224, 2294: 2225, 2295: 2226, 2296: 2227, 2297: 2228, 2298: 2229, 2299: 2230, 2300: 2231, 2301: 2232, 2302: 2233, 2303: 2234, 2304: 2235, 2305: 2236, 2306: 2237, 2307: 2238, 2308: 2239, 2309: 2240, 2310: 2241, 2311: 2242, 2312: 2243, 2313: 2244, 2314: 2245, 2315: 2246, 2316: 2247, 2317: 2248, 2318: 2249, 2319: 2250, 2320: 2251, 2321: 2252, 2322: 2253, 2323: 2254, 2324: 2255, 2325: 2256, 2326: 2257, 2327: 2258, 2328: 2259, 2329: 2260, 2330: 2261, 2331: 2262, 2332: 2263, 2333: 2264, 2334: 2265, 2335: 2266, 2336: 2267, 2337: 2268, 2338: 2269, 2339: 2270, 2340: 2271, 2341: 2272, 2342: 2273, 2343: 2274, 2344: 2275, 2345: 2276, 2346: 2277, 2347: 2278, 2348: 2279, 2349: 2280, 2350: 2281, 2351: 2282, 2352: 2283, 2353: 2284, 2354: 2285, 2355: 2286, 2356: 2287, 2357: 2288, 2358: 2289, 2359: 2290, 2360: 2291, 2361: 2292, 2362: 2293, 2363: 2294, 2364: 2295, 2365: 2296, 2366: 2297, 2367: 2298, 2368: 2299, 2369: 2300, 2370: 2301, 2371: 2302, 2372: 2303, 2373: 2304, 2374: 2305, 2375: 2306, 2376: 2307, 2377: 2308, 2378: 2309, 2379: 2310, 2380: 2311, 2381: 2312, 2382: 2313, 2383: 2314, 2384: 2315, 2385: 2316, 2386: 2317, 2387: 2318, 2388: 2319, 2389: 2320, 2390: 2321, 2391: 2322, 2392: 2323, 2393: 2324, 2394: 2325, 2395: 2326, 2396: 2327, 2397: 2328, 2398: 2329, 2399: 2330, 2400: 2331, 2401: 2332, 2402: 2333, 2403: 2334, 2404: 2335, 2405: 2336, 2406: 2337, 2407: 2338, 2408: 2339, 2409: 2340, 2410: 2341, 2411: 2342, 2412: 2343, 2413: 2344, 2414: 2345, 2415: 2346, 2416: 2347, 2417: 2348, 2418: 2349, 2419: 2350, 2420: 2351, 2421: 2352, 2422: 2353, 2423: 2354, 2424: 2355, 2425: 2356, 2426: 2357, 2427: 2358, 2428: 2359, 2429: 2360, 2430: 2361, 2431: 2362, 2432: 2363, 2433: 2364, 2434: 2365, 2435: 2366, 2436: 2367, 2437: 2368, 2438: 2369, 2439: 2370, 2440: 2371, 2441: 2372, 2442: 2373, 2443: 2374, 2444: 2375, 2445: 2376, 2446: 2377, 2447: 2378, 2448: 2379, 2449: 2380, 2450: 2381, 2451: 2382, 2452: 2383, 2453: 2384, 2454: 2385, 2455: 2386, 2456: 2387, 2457: 2388, 2458: 2389, 2459: 2390, 2460: 2391, 2461: 2392, 2462: 2393, 2463: 2394, 2464: 2395, 2465: 2396, 2466: 2397, 2467: 2398, 2468: 2399, 2469: 2400, 2470: 2401, 2471: 2402, 2472: 2403, 2473: 2404, 2474: 2405, 2475: 2406, 2476: 2407, 2477: 2408, 2478: 2409, 2479: 2410, 2480: 2411, 2481: 2412, 2482: 2413, 2483: 2414, 2484: 2415, 2485: 2416, 2486: 2417, 2487: 2418, 2488: 2419, 2489: 2420, 2490: 2421, 2491: 2422, 2492: 2423, 2493: 2424, 2494: 2425, 2495: 2426, 2496: 2427, 2497: 2428, 2498: 2429, 2499: 2430, 2500: 2431, 2501: 2432, 2502: 2433, 2503: 2434, 2504: 2435, 2505: 2436, 2506: 2437, 2507: 2438, 2508: 2439, 2509: 2440, 2510: 2441, 2511: 2442, 2512: 2443, 2513: 2444, 2514: 2445, 2515: 2446, 2516: 2447, 2517: 2448, 2518: 2449, 2519: 2450, 2520: 2451, 2521: 2452, 2522: 2453, 2523: 2454, 2524: 2455, 2525: 2456, 2526: 2457, 2527: 2458, 2528: 2459, 2529: 2460, 2530: 2461, 2531: 2462, 2532: 2463, 2533: 2464, 2534: 2465, 2535: 2466, 2536: 2467, 2537: 2468, 2538: 2469, 2539: 2470, 2540: 2471, 2541: 2472, 2542: 2473, 2543: 2474, 2544: 2475, 2545: 2476, 2546: 2477, 2547: 2478, 2548: 2479, 2549: 2480, 2550: 2481, 2551: 2482, 2552: 2483, 2553: 2484, 2554: 2485, 2555: 2486, 2556: 2487, 2557: 2488, 2558: 2489, 2559: 2490, 2560: 2491, 2561: 2492, 2562: 2493, 2563: 2494, 2564: 2495, 2565: 2496, 2566: 2497, 2567: 2498, 2568: 2499, 2569: 2500, 2570: 2501, 2571: 2502, 2572: 2503, 2573: 2504, 2574: 2505, 2575: 2506, 2576: 2507, 2577: 2508, 2578: 2509, 2579: 2510, 2580: 2511, 2581: 2512, 2582: 2513, 2583: 2514, 2584: 2515, 2585: 2516, 2586: 2517, 2587: 2518, 2588: 2519, 2589: 2520, 2590: 2521, 2591: 2522, 2592: 2523, 2593: 2524, 2594: 2525, 2595: 2526, 2596: 2527, 2597: 2528, 2598: 2529, 2599: 2530, 2600: 2531, 2601: 2532, 2602: 2533, 2603: 2534, 2604: 2535, 2605: 2536, 2606: 2537, 2607: 2538, 2608: 2539, 2609: 2540, 2610: 2541, 2611: 2542, 2612: 2543, 2613: 2544, 2614: 2545, 2615: 2546, 2616: 2547, 2617: 2548, 2618: 2549, 2619: 2550, 2620: 2551, 2621: 2552, 2622: 2553, 2623: 2554, 2624: 2555, 2625: 2556, 2626: 2557, 2627: 2558, 2628: 2559, 2629: 2560, 2630: 2561, 2631: 2562, 2632: 2563, 2633: 2564, 2634: 2565, 2635: 2566, 2636: 2567, 2637: 2568, 2638: 2569, 2639: 2570, 2640: 2571, 2641: 2572, 2642: 2573, 2643: 2574, 2644: 2575, 2645: 2576, 2646: 2577, 2647: 2578, 2648: 2579, 2649: 2580, 2650: 2581, 2651: 2582, 2652: 2583, 2653: 2584, 2654: 2585, 2655: 2586, 2656: 2587, 2657: 2588, 2658: 2589, 2659: 2590, 2660: 2591, 2661: 2592, 2662: 2593, 2663: 2594, 2664: 2595, 2665: 2596, 2666: 2597, 2667: 2598, 2668: 2599, 2669: 2600, 2670: 2601, 2671: 2602, 2672: 2603, 2673: 2604, 2674: 2605, 2675: 2606, 2676: 2607, 2677: 2608, 2678: 2609, 2679: 2610, 2680: 2611, 2681: 2612, 2682: 2613, 2683: 2614, 2684: 2615, 2685: 2616, 2686: 2617, 2687: 2618, 2688: 2619, 2689: 2620, 2690: 2621, 2691: 2622, 2692: 2623, 2693: 2624, 2694: 2625, 2695: 2626, 2696: 2627, 2697: 2628, 2698: 2629, 2699: 2630, 2700: 2631, 2701: 2632, 2702: 2633, 2703: 2634, 2704: 2635, 2705: 2636, 2706: 2637, 2707: 2638, 2708: 2639, 2709: 2640, 2710: 2641, 2711: 2642, 2712: 2643, 2713: 2644, 2714: 2645, 2715: 2646, 2716: 2647, 2717: 2648, 2718: 2649, 2719: 2650, 2720: 2651, 2721: 2652, 2722: 2653, 2723: 2654, 2724: 2655, 2725: 2656, 2726: 2657, 2727: 2658, 2728: 2659, 2729: 2660, 2730: 2661, 2731: 2662, 2732: 2663, 2733: 2664, 2734: 2665, 2735: 2666, 2736: 2667, 2737: 2668, 2738: 2669, 2739: 2670, 2740: 2671, 2741: 2672, 2742: 2673, 2743: 2674, 2744: 2675, 2745: 2676, 2746: 2677, 2747: 2678, 2748: 2679, 2749: 2680, 2750: 2681, 2751: 2682, 2752: 2683, 2753: 2684, 2754: 2685, 2755: 2686, 2756: 2687, 2757: 2688, 2758: 2689, 2759: 2690, 2760: 2691, 2761: 2692, 2762: 2693, 2763: 2694, 2764: 2695, 2765: 2696, 2766: 2697, 2767: 2698, 2768: 2699, 2769: 2700, 2770: 2701, 2771: 2702, 2772: 2703, 2773: 2704, 2774: 2705, 2775: 2706, 2776: 2707, 2777: 2708, 2778: 2709, 2779: 2710, 2780: 2711, 2781: 2712, 2782: 2713, 2783: 2714, 2784: 2715, 2785: 2716, 2786: 2717, 2787: 2718, 2788: 2719, 2789: 2720, 2790: 2721, 2791: 2722, 2792: 2723, 2793: 2724, 2794: 2725, 2795: 2726, 2796: 2727, 2797: 2728, 2798: 2729, 2799: 2730, 2800: 2731, 2801: 2732, 2802: 2733, 2803: 2734, 2804: 2735, 2805: 2736, 2806: 2737, 2807: 2738, 2808: 2739, 2809: 2740, 2810: 2741, 2811: 2742, 2812: 2743, 2813: 2744, 2814: 2745, 2815: 2746, 2816: 2747, 2817: 2748, 2818: 2749, 2819: 2750, 2820: 2751, 2821: 2752, 2822: 2753, 2823: 2754, 2824: 2755, 2825: 2756, 2826: 2757, 2827: 2758, 2828: 2759, 2829: 2760, 2830: 2761, 2831: 2762, 2832: 2763, 2833: 2764, 2834: 2765, 2835: 2766, 2836: 2767, 2837: 2768, 2838: 2769, 2839: 2770, 2840: 2771, 2841: 2772, 2842: 2773, 2843: 2774, 2844: 2775, 2845: 2776, 2846: 2777, 2847: 2778, 2848: 2779, 2849: 2780, 2850: 2781, 2851: 2782, 2852: 2783, 2853: 2784, 2854: 2785, 2855: 2786, 2856: 2787, 2857: 2788, 2858: 2789, 2859: 2790, 2860: 2791, 2861: 2792, 2862: 2793, 2863: 2794, 2864: 2795, 2865: 2796, 2866: 2797, 2867: 2798, 2868: 2799, 2869: 2800, 2870: 2801, 2871: 2802, 2872: 2803, 2873: 2804, 2874: 2805, 2875: 2806, 2876: 2807, 2877: 2808, 2878: 2809, 2879: 2810, 2880: 2811, 2881: 2812, 2882: 2813, 2883: 2814, 2884: 2815, 2885: 2816, 2886: 2817, 2887: 2818, 2888: 2819, 2889: 2820, 2890: 2821, 2891: 2822, 2892: 2823, 2893: 2824, 2894: 2825, 2895: 2826, 2896: 2827, 2897: 2828, 2898: 2829, 2899: 2830, 2900: 2831, 2901: 2832, 2902: 2833, 2903: 2834, 2904: 2835, 2905: 2836, 2906: 2837, 2907: 2838, 2908: 2839, 2909: 2840, 2910: 2841, 2911: 2842, 2912: 2843, 2913: 2844, 2914: 2845, 2915: 2846, 2916: 2847, 2917: 2848, 2918: 2849, 2919: 2850, 2920: 2851, 2921: 2852, 2922: 2853, 2923: 2854, 2924: 2855, 2925: 2856, 2926: 2857, 2927: 2858, 2928: 2859, 2929: 2860, 2930: 2861, 2931: 2862, 2932: 2863, 2933: 2864, 2934: 2865, 2935: 2866, 2936: 2867, 2937: 2868, 2938: 2869, 2939: 2870, 2940: 2871, 2941: 2872, 2942: 2873, 2943: 2874, 2944: 2875, 2945: 2876, 2946: 2877, 2947: 2878, 2948: 2879, 2949: 2880, 2950: 2881, 2951: 2882, 2952: 2883, 2953: 2884, 2954: 2885, 2955: 2886, 2956: 2887, 2957: 2888, 2958: 2889, 2959: 2890, 2960: 2891, 2961: 2892, 2962: 2893, 2963: 2894, 2964: 2895, 2965: 2896, 2966: 2897, 2967: 2898, 2968: 2899, 2969: 2900, 2970: 2901, 2971: 2902, 2972: 2903, 2973: 2904, 2974: 2905, 2975: 2906, 2976: 2907, 2977: 2908, 2978: 2909, 2979: 2910, 2980: 2911, 2981: 2912, 2982: 2913, 2983: 2914, 2984: 2915, 2985: 2916, 2986: 2917, 2987: 2918, 2988: 2919, 2989: 2920, 2990: 2921, 2991: 2922, 2992: 2923, 2993: 2924, 2994: 2925, 2995: 2926, 2996: 2927, 2997: 2928, 2998: 2929, 2999: 2930, 3000: 2931, 3001: 2932, 3002: 2933, 3003: 2934, 3004: 2935, 3005: 2936, 3006: 2937, 3007: 2938, 3008: 2939, 3009: 2940, 3010: 2941, 3011: 2942, 3012: 2943, 3013: 2944, 3014: 2945, 3015: 2946, 3016: 2947, 3017: 2948, 3018: 2949, 3019: 2950, 3020: 2951, 3021: 2952, 3022: 2953, 3023: 2954, 3024: 2955, 3025: 2956, 3026: 2957, 3027: 2958, 3028: 2959, 3029: 2960, 3030: 2961, 3031: 2962, 3032: 2963, 3033: 2964, 3034: 2965, 3035: 2966, 3036: 2967, 3037: 2968, 3038: 2969, 3039: 2970, 3040: 2971, 3041: 2972, 3042: 2973, 3043: 2974, 3044: 2975, 3045: 2976, 3046: 2977, 3047: 2978, 3048: 2979, 3049: 2980, 3050: 2981, 3051: 2982, 3052: 2983, 3053: 2984, 3054: 2985, 3055: 2986, 3056: 2987, 3057: 2988, 3058: 2989, 3059: 2990, 3060: 2991, 3061: 2992, 3062: 2993, 3063: 2994, 3064: 2995, 3065: 2996, 3066: 2997, 3067: 2998, 3068: 2999, 3069: 3000, 3070: 3001, 3071: 3002, 3072: 3003, 3073: 3004, 3074: 3005, 3075: 3006, 3076: 3007, 3077: 3008, 3078: 3009, 3079: 3010, 3080: 3011, 3081: 3012, 3082: 3013, 3083: 3014, 3084: 3015, 3085: 3016, 3086: 3017, 3087: 3018, 3088: 3019, 3089: 3020, 3090: 3021, 3091: 3022, 3092: 3023, 3093: 3024, 3094: 3025, 3095: 3026, 3096: 3027, 3097: 3028, 3098: 3029, 3099: 3030, 3100: 3031, 3101: 3032, 3102: 3033, 3103: 3034, 3104: 3035, 3105: 3036, 3106: 3037, 3107: 3038, 3108: 3039, 3109: 3040, 3110: 3041, 3111: 3042, 3112: 3043, 3113: 3044, 3114: 3045, 3115: 3046, 3116: 3047, 3117: 3048, 3118: 3049, 3119: 3050, 3120: 3051, 3121: 3052, 3122: 3053, 3123: 3054, 3124: 3055, 3125: 3056, 3126: 3057, 3127: 3058, 3128: 3059, 3129: 3060, 3130: 3061, 3131: 3062, 3132: 3063, 3133: 3064, 3134: 3065, 3135: 3066, 3136: 3067, 3137: 3068, 3138: 3069, 3139: 3070, 3140: 3071, 3141: 3072, 3142: 3073, 3143: 3074, 3144: 3075, 3145: 3076, 3146: 3077, 3147: 3078, 3148: 3079, 3149: 3080, 3150: 3081, 3151: 3082, 3152: 3083, 3153: 3084, 3154: 3085, 3155: 3086, 3156: 3087, 3157: 3088, 3158: 3089, 3159: 3090, 3160: 3091, 3161: 3092, 3162: 3093, 3163: 3094, 3164: 3095, 3165: 3096, 3166: 3097, 3167: 3098, 3168: 3099, 3169: 3100, 3170: 3101, 3171: 3102, 3172: 3103, 3173: 3104, 3174: 3105, 3175: 3106, 3176: 3107, 3177: 3108, 3178: 3109, 3179: 3110, 3180: 3111, 3181: 3112, 3182: 3113, 3183: 3114, 3184: 3115, 3185: 3116, 3186: 3117, 3187: 3118, 3188: 3119, 3189: 3120, 3190: 3121, 3191: 3122, 3192: 3123, 3193: 3124, 3194: 3125, 3195: 3126, 3196: 3127, 3197: 3128, 3198: 3129, 3199: 3130, 3200: 3131, 3201: 3132, 3202: 3133, 3203: 3134, 3204: 3135, 3205: 3136, 3206: 3137, 3207: 3138, 3208: 3139, 3209: 3140, 3210: 3141, 3211: 3142, 3212: 3143, 3213: 3144, 3214: 3145, 3215: 3146, 3216: 3147, 3217: 3148, 3218: 3149, 3219: 3150, 3220: 3151, 3221: 3152, 3222: 3153, 3223: 3154, 3224: 3155, 3225: 3156, 3226: 3157, 3227: 3158, 3228: 3159, 3229: 3160, 3230: 3161, 3231: 3162, 3232: 3163, 3233: 3164, 3234: 3165, 3235: 3166, 3236: 3167, 3237: 3168, 3238: 3169, 3239: 3170, 3240: 3171, 3241: 3172, 3242: 3173, 3243: 3174, 3244: 3175, 3245: 3176, 3246: 3177, 3247: 3178, 3248: 3179, 3249: 3180, 3250: 3181, 3251: 3182, 3252: 3183, 3253: 3184, 3254: 3185, 3255: 3186, 3256: 3187, 3257: 3188, 3258: 3189, 3259: 3190, 3260: 3191, 3261: 3192, 3262: 3193, 3263: 3194, 3264: 3195, 3265: 3196, 3266: 3197, 3267: 3198, 3268: 3199, 3269: 3200, 3270: 3201, 3271: 3202, 3272: 3203, 3273: 3204, 3274: 3205, 3275: 3206, 3276: 3207, 3277: 3208, 3278: 3209, 3279: 3210, 3280: 3211, 3281: 3212, 3282: 3213, 3283: 3214, 3284: 3215, 3285: 3216, 3286: 3217, 3287: 3218, 3288: 3219, 3289: 3220, 3290: 3221, 3291: 3222, 3292: 3223, 3293: 3224, 3294: 3225, 3295: 3226, 3296: 3227, 3297: 3228, 3298: 3229, 3299: 3230, 3300: 3231, 3301: 3232, 3302: 3233, 3303: 3234, 3304: 3235, 3305: 3236, 3306: 3237, 3307: 3238, 3308: 3239, 3309: 3240, 3310: 3241, 3311: 3242, 3312: 3243, 3313: 3244, 3314: 3245, 3315: 3246, 3316: 3247, 3317: 3248, 3318: 3249, 3319: 3250, 3320: 3251, 3321: 3252, 3322: 3253, 3323: 3254, 3324: 3255, 3325: 3256, 3326: 3257, 3327: 3258, 3328: 3259, 3329: 3260, 3330: 3261, 3331: 3262, 3332: 3263, 3333: 3264, 3334: 3265, 3335: 3266, 3336: 3267, 3337: 3268, 3338: 3269, 3339: 3270, 3340: 3271, 3341: 3272, 3342: 3273, 3343: 3274, 3344: 3275, 3345: 3276, 3346: 3277, 3347: 3278, 3348: 3279, 3349: 3280, 3350: 3281, 3351: 3282, 3352: 3283, 3353: 3284, 3354: 3285, 3355: 3286, 3356: 3287, 3357: 3288, 3358: 3289, 3359: 3290, 3360: 3291, 3361: 3292, 3362: 3293, 3363: 3294, 3364: 3295, 3365: 3296, 3366: 3297, 3367: 3298, 3368: 3299, 3369: 3300, 3370: 3301, 3371: 3302, 3372: 3303, 3373: 3304, 3374: 3305, 3375: 3306, 3376: 3307, 3377: 3308, 3378: 3309, 3379: 3310, 3380: 3311, 3381: 3312, 3382: 3313, 3383: 3314, 3384: 3315, 3385: 3316, 3386: 3317, 3387: 3318, 3388: 3319, 3389: 3320, 3390: 3321, 3391: 3322, 3392: 3323, 3393: 3324, 3394: 3325, 3395: 3326, 3396: 3327, 3397: 3328, 3398: 3329, 3399: 3330, 3400: 3331, 3401: 3332, 3402: 3333, 3403: 3334, 3404: 3335, 3405: 3336, 3406: 3337, 3407: 3338, 3408: 3339, 3409: 3340, 3410: 3341, 3411: 3342, 3412: 3343, 3413: 3344, 3414: 3345, 3415: 3346, 3416: 3347, 3417: 3348, 3418: 3349, 3419: 3350, 3420: 3351, 3421: 3352, 3422: 3353, 3423: 3354, 3424: 3355, 3425: 3356, 3426: 3357, 3427: 3358, 3428: 3359, 3429: 3360, 3430: 3361, 3431: 3362, 3432: 3363, 3433: 3364, 3434: 3365, 3435: 3366, 3436: 3367, 3437: 3368, 3438: 3369, 3439: 3370, 3440: 3371, 3441: 3372, 3442: 3373, 3443: 3374, 3444: 3375, 3445: 3376, 3446: 3377, 3447: 3378, 3448: 3379, 3449: 3380, 3450: 3381, 3451: 3382, 3452: 3383, 3453: 3384, 3454: 3385, 3455: 3386, 3456: 3387, 3457: 3388, 3458: 3389, 3459: 3390, 3460: 3391, 3461: 3392, 3462: 3393, 3463: 3394, 3464: 3395, 3465: 3396, 3466: 3397, 3467: 3398, 3468: 3399, 3469: 3400, 3470: 3401, 3471: 3402, 3472: 3403, 3473: 3404, 3474: 3405, 3475: 3406, 3476: 3407, 3477: 3408, 3478: 3409, 3479: 3410, 3480: 3411, 3481: 3412, 3482: 3413, 3483: 3414, 3484: 3415, 3485: 3416, 3486: 3417, 3487: 3418, 3488: 3419, 3489: 3420, 3490: 3421, 3491: 3422, 3492: 3423, 3493: 3424, 3494: 3425, 3495: 3426, 3496: 3427, 3497: 3428, 3498: 3429, 3499: 3430, 3500: 3431, 3501: 3432, 3502: 3433, 3503: 3434, 3504: 3435, 3505: 3436, 3506: 3437, 3507: 3438, 3508: 3439, 3509: 3440, 3510: 3441, 3511: 3442, 3512: 3443, 3513: 3444, 3514: 3445, 3515: 3446, 3516: 3447, 3517: 3448, 3518: 3449, 3519: 3450, 3520: 3451, 3521: 3452, 3522: 3453, 3523: 3454, 3524: 3455, 3525: 3456, 3526: 3457, 3527: 3458, 3528: 3459, 3529: 3460, 3530: 3461, 3531: 3462, 3532: 3463, 3533: 3464, 3534: 3465, 3535: 3466, 3536: 3467, 3537: 3468, 3538: 3469, 3539: 3470, 3540: 3471, 3541: 3472, 3542: 3473, 3543: 3474, 3544: 3475, 3545: 3476, 3546: 3477, 3547: 3478, 3548: 3479, 3549: 3480, 3550: 3481, 3551: 3482, 3552: 3483, 3553: 3484, 3554: 3485, 3555: 3486, 3556: 3487, 3557: 3488, 3558: 3489, 3559: 3490, 3560: 3491, 3561: 3492, 3562: 3493, 3563: 3494, 3564: 3495, 3565: 3496, 3566: 3497, 3567: 3498, 3568: 3499, 3569: 3500, 3570: 3501, 3571: 3502, 3572: 3503, 3573: 3504, 3574: 3505, 3575: 3506, 3576: 3507, 3577: 3508, 3578: 3509, 3579: 3510, 3580: 3511, 3581: 3512, 3582: 3513, 3583: 3514, 3584: 3515, 3585: 3516, 3586: 3517, 3587: 3518, 3588: 3519, 3589: 3520, 3590: 3521, 3591: 3522, 3592: 3523, 3593: 3524, 3594: 3525, 3595: 3526, 3596: 3527, 3597: 3528, 3598: 3529, 3599: 3530, 3600: 3531, 3601: 3532, 3602: 3533, 3603: 3534, 3604: 3535, 3605: 3536, 3606: 3537, 3607: 3538, 3608: 3539, 3609: 3540, 3610: 3541, 3611: 3542, 3612: 3543, 3613: 3544, 3614: 3545, 3615: 3546, 3616: 3547, 3617: 3548, 3618: 3549, 3619: 3550, 3620: 3551, 3621: 3552, 3622: 3553, 3623: 3554, 3624: 3555, 3625: 3556, 3626: 3557, 3627: 3558, 3628: 3559, 3629: 3560, 3630: 3561, 3631: 3562, 3632: 3563, 3633: 3564, 3634: 3565, 3635: 3566, 3636: 3567, 3637: 3568, 3638: 3569, 3639: 3570, 3640: 3571, 3641: 3572, 3642: 3573, 3643: 3574, 3644: 3575, 3645: 3576, 3646: 3577, 3647: 3578, 3648: 3579, 3649: 3580, 3650: 3581, 3651: 3582, 3652: 3583, 3653: 3584, 3654: 3585, 3655: 3586, 3656: 3587, 3657: 3588, 3658: 3589, 3659: 3590, 3660: 3591, 3661: 3592, 3662: 3593, 3663: 3594, 3664: 3595, 3665: 3596, 3666: 3597, 3667: 3598, 3668: 3599, 3669: 3600, 3670: 3601, 3671: 3602, 3672: 3603, 3673: 3604, 3674: 3605, 3675: 3606, 3676: 3607, 3677: 3608, 3678: 3609, 3679: 3610, 3680: 3611, 3681: 3612, 3682: 3613, 3683: 3614, 3684: 3615, 3685: 3616, 3686: 3617, 3687: 3618, 3688: 3619, 3689: 3620, 3690: 3621, 3691: 3622, 3692: 3623, 3693: 3624, 3694: 3625, 3695: 3626, 3696: 3627, 3697: 3628, 3698: 3629, 3699: 3630, 3700: 3631, 3701: 3632, 3702: 3633, 3703: 3634, 3704: 3635, 3705: 3636, 3706: 3637, 3707: 3638, 3708: 3639, 3709: 3640, 3710: 3641, 3711: 3642, 3712: 3643, 3713: 3644, 3714: 3645, 3715: 3646, 3716: 3647, 3717: 3648, 3718: 3649, 3719: 3650, 3720: 3651, 3721: 3652, 3722: 3653, 3723: 3654, 3724: 3655, 3725: 3656, 3726: 3657, 3727: 3658, 3728: 3659, 3729: 3660, 3730: 3661, 3731: 3662, 3732: 3663, 3733: 3664, 3734: 3665, 3735: 3666, 3736: 3667, 3737: 3668, 3738: 3669, 3739: 3670, 3740: 3671, 3741: 3672, 3742: 3673, 3743: 3674, 3744: 3675, 3745: 3676, 3746: 3677, 3747: 3678, 3748: 3679, 3749: 3680, 3750: 3681, 3751: 3682, 3752: 3683, 3753: 3684, 3754: 3685, 3755: 3686, 3756: 3687, 3757: 3688, 3758: 3689, 3759: 3690, 3760: 3691, 3761: 3692, 3762: 3693, 3763: 3694, 3764: 3695, 3765: 3696, 3766: 3697, 3767: 3698, 3768: 3699, 3769: 3700, 3770: 3701, 3771: 3702, 3772: 3703, 3773: 3704, 3774: 3705, 3775: 3706, 3776: 3707, 3777: 3708, 3778: 3709, 3779: 3710, 3780: 3711, 3781: 3712, 3782: 3713, 3783: 3714, 3784: 3715, 3785: 3716, 3786: 3717, 3787: 3718, 3788: 3719, 3789: 3720, 3790: 3721, 3791: 3722, 3792: 3723, 3793: 3724, 3794: 3725, 3795: 3726, 3796: 3727, 3797: 3728, 3798: 3729, 3799: 3730, 3800: 3731, 3801: 3732, 3802: 3733, 3803: 3734, 3804: 3735, 3805: 3736, 3806: 3737, 3807: 3738, 3808: 3739, 3809: 3740, 3810: 3741, 3811: 3742, 3812: 3743, 3813: 3744, 3814: 3745, 3816: 3746, 3817: 3747, 3818: 3748, 3819: 3749, 3820: 3750, 3821: 3751, 3822: 3752, 3823: 3753, 3824: 3754, 3825: 3755, 3826: 3756, 3827: 3757, 3828: 3758, 3829: 3759, 3830: 3760, 3831: 3761, 3832: 3762, 3833: 3763, 3834: 3764, 3835: 3765, 3836: 3766, 3837: 3767, 3838: 3768, 3839: 3769, 3840: 3770, 3841: 3771, 3842: 3772, 3843: 3773, 3844: 3774, 3845: 3775, 3846: 3776, 3847: 3777, 3848: 3778, 3849: 3779, 3850: 3780, 3851: 3781, 3852: 3782, 3853: 3783, 3854: 3784, 3855: 3785, 3856: 3786, 3857: 3787, 3858: 3788, 3859: 3789, 3860: 3790, 3861: 3791, 3862: 3792, 3863: 3793, 3864: 3794, 3865: 3795, 3866: 3796, 3867: 3797, 3868: 3798, 3869: 3799, 3870: 3800, 3871: 3801, 3872: 3802, 3873: 3803, 3874: 3804, 3875: 3805, 3876: 3806, 3877: 3807, 3878: 3808, 3879: 3809, 3880: 3810, 3881: 3811, 3882: 3812, 3883: 3813, 3884: 3814, 3885: 3815, 3886: 3816, 3887: 3817, 3888: 3818, 3889: 3819, 3890: 3820, 3891: 3821, 3892: 3822, 3893: 3823, 3894: 3824, 3895: 3825, 3896: 3826, 3897: 3827, 3898: 3828, 3899: 3829, 3900: 3830, 3901: 3831, 3902: 3832, 3903: 3833, 3904: 3834, 3905: 3835, 3906: 3836, 3907: 3837, 3908: 3838, 3909: 3839, 3910: 3840, 3911: 3841, 3912: 3842, 3913: 3843, 3914: 3844, 3915: 3845, 3916: 3846, 3917: 3847, 3918: 3848, 3919: 3849, 3920: 3850, 3921: 3851, 3922: 3852, 3923: 3853, 3924: 3854, 3925: 3855, 3926: 3856, 3927: 3857, 3928: 3858, 3929: 3859, 3930: 3860, 3931: 3861, 3932: 3862, 3933: 3863, 3934: 3864, 3935: 3865, 3936: 3866, 3937: 3867, 3938: 3868, 3939: 3869, 3940: 3870, 3941: 3871, 3942: 3872, 3943: 3873, 3944: 3874, 3945: 3875, 3946: 3876, 3947: 3877, 3948: 3878, 3949: 3879, 3950: 3880, 3951: 3881, 3952: 3882}} {'item_id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 30: 31, 31: 32, 32: 33, 33: 34, 34: 35, 35: 36, 36: 37, 37: 38, 38: 39, 39: 40, 40: 41, 41: 42, 42: 43, 43: 44, 44: 45, 45: 46, 46: 47, 47: 48, 48: 49, 49: 50, 50: 51, 51: 52, 52: 53, 53: 54, 54: 55, 55: 56, 56: 57, 57: 58, 58: 59, 59: 60, 60: 61, 61: 62, 62: 63, 63: 64, 64: 65, 65: 66, 66: 67, 67: 68, 68: 69, 69: 70, 70: 71, 71: 72, 72: 73, 73: 74, 74: 75, 75: 76, 76: 77, 77: 78, 78: 79, 79: 80, 80: 81, 81: 82, 82: 83, 83: 84, 84: 85, 85: 86, 86: 87, 87: 88, 88: 89, 89: 90, 90: 92, 91: 93, 92: 94, 93: 95, 94: 96, 95: 97, 96: 98, 97: 99, 98: 100, 99: 101, 100: 102, 101: 103, 102: 104, 103: 105, 104: 106, 105: 107, 106: 108, 107: 109, 108: 110, 109: 111, 110: 112, 111: 113, 112: 114, 113: 115, 114: 116, 115: 117, 116: 118, 117: 119, 118: 120, 119: 121, 120: 122, 121: 123, 122: 124, 123: 125, 124: 126, 125: 127, 126: 128, 127: 129, 128: 130, 129: 131, 130: 132, 131: 133, 132: 134, 133: 135, 134: 136, 135: 137, 136: 138, 137: 139, 138: 140, 139: 141, 140: 142, 141: 143, 142: 144, 143: 145, 144: 146, 145: 147, 146: 148, 147: 149, 148: 150, 149: 151, 150: 152, 151: 153, 152: 154, 153: 155, 154: 156, 155: 157, 156: 158, 157: 159, 158: 160, 159: 161, 160: 162, 161: 163, 162: 164, 163: 165, 164: 166, 165: 167, 166: 168, 167: 169, 168: 170, 169: 171, 170: 172, 171: 173, 172: 174, 173: 175, 174: 176, 175: 177, 176: 178, 177: 179, 178: 180, 179: 181, 180: 182, 181: 183, 182: 184, 183: 185, 184: 186, 185: 187, 186: 188, 187: 189, 188: 190, 189: 191, 190: 192, 191: 193, 192: 194, 193: 195, 194: 196, 195: 197, 196: 198, 197: 199, 198: 200, 199: 201, 200: 202, 201: 203, 202: 204, 203: 205, 204: 206, 205: 207, 206: 208, 207: 209, 208: 210, 209: 211, 210: 212, 211: 213, 212: 214, 213: 215, 214: 216, 215: 217, 216: 218, 217: 219, 218: 220, 219: 222, 220: 223, 221: 224, 222: 225, 223: 226, 224: 227, 225: 228, 226: 229, 227: 230, 228: 231, 229: 232, 230: 233, 231: 234, 232: 235, 233: 236, 234: 237, 235: 238, 236: 239, 237: 240, 238: 241, 239: 242, 240: 243, 241: 244, 242: 245, 243: 246, 244: 247, 245: 248, 246: 249, 247: 250, 248: 251, 249: 252, 250: 253, 251: 254, 252: 255, 253: 256, 254: 257, 255: 258, 256: 259, 257: 260, 258: 261, 259: 262, 260: 263, 261: 264, 262: 265, 263: 266, 264: 267, 265: 268, 266: 269, 267: 270, 268: 271, 269: 272, 270: 273, 271: 274, 272: 275, 273: 276, 274: 277, 275: 278, 276: 279, 277: 280, 278: 281, 279: 282, 280: 283, 281: 284, 282: 285, 283: 286, 284: 287, 285: 288, 286: 289, 287: 290, 288: 291, 289: 292, 290: 293, 291: 294, 292: 295, 293: 296, 294: 297, 295: 298, 296: 299, 297: 300, 298: 301, 299: 302, 300: 303, 301: 304, 302: 305, 303: 306, 304: 307, 305: 308, 306: 309, 307: 310, 308: 311, 309: 312, 310: 313, 311: 314, 312: 315, 313: 316, 314: 317, 315: 318, 316: 319, 317: 320, 318: 321, 319: 322, 320: 324, 321: 325, 322: 326, 323: 327, 324: 328, 325: 329, 326: 330, 327: 331, 328: 332, 329: 333, 330: 334, 331: 335, 332: 336, 333: 337, 334: 338, 335: 339, 336: 340, 337: 341, 338: 342, 339: 343, 340: 344, 341: 345, 342: 346, 343: 347, 344: 348, 345: 349, 346: 350, 347: 351, 348: 352, 349: 353, 350: 354, 351: 355, 352: 356, 353: 357, 354: 358, 355: 359, 356: 360, 357: 361, 358: 362, 359: 363, 360: 364, 361: 365, 362: 366, 363: 367, 364: 368, 365: 369, 366: 370, 367: 371, 368: 372, 369: 373, 370: 374, 371: 375, 372: 376, 373: 377, 374: 378, 375: 379, 376: 380, 377: 381, 378: 382, 379: 383, 380: 384, 381: 385, 382: 386, 383: 387, 384: 388, 385: 389, 386: 390, 387: 391, 388: 392, 389: 393, 390: 394, 391: 395, 392: 396, 393: 397, 394: 398, 395: 399, 396: 400, 397: 401, 398: 402, 399: 403, 400: 404, 401: 405, 402: 406, 403: 407, 404: 408, 405: 409, 406: 410, 407: 411, 408: 412, 409: 413, 410: 414, 411: 415, 412: 416, 413: 417, 414: 418, 415: 419, 416: 420, 417: 421, 418: 422, 419: 423, 420: 424, 421: 425, 422: 426, 423: 427, 424: 428, 425: 429, 426: 430, 427: 431, 428: 432, 429: 433, 430: 434, 431: 435, 432: 436, 433: 437, 434: 438, 435: 439, 436: 440, 437: 441, 438: 442, 439: 443, 440: 444, 441: 445, 442: 446, 443: 447, 444: 448, 445: 449, 446: 450, 447: 451, 448: 452, 449: 453, 450: 454, 451: 455, 452: 456, 453: 457, 454: 458, 455: 459, 456: 460, 457: 461, 458: 462, 459: 463, 460: 464, 461: 465, 462: 466, 463: 467, 464: 468, 465: 469, 466: 470, 467: 471, 468: 472, 469: 473, 470: 474, 471: 475, 472: 476, 473: 477, 474: 478, 475: 479, 476: 480, 477: 481, 478: 482, 479: 483, 480: 484, 481: 485, 482: 486, 483: 487, 484: 488, 485: 489, 486: 490, 487: 491, 488: 492, 489: 493, 490: 494, 491: 495, 492: 496, 493: 497, 494: 498, 495: 499, 496: 500, 497: 501, 498: 502, 499: 503, 500: 504, 501: 505, 502: 506, 503: 507, 504: 508, 505: 509, 506: 510, 507: 511, 508: 512, 509: 513, 510: 514, 511: 515, 512: 516, 513: 517, 514: 518, 515: 519, 516: 520, 517: 521, 518: 522, 519: 523, 520: 524, 521: 525, 522: 526, 523: 527, 524: 528, 525: 529, 526: 530, 527: 531, 528: 532, 529: 533, 530: 534, 531: 535, 532: 536, 533: 537, 534: 538, 535: 539, 536: 540, 537: 541, 538: 542, 539: 543, 540: 544, 541: 545, 542: 546, 543: 547, 544: 548, 545: 549, 546: 550, 547: 551, 548: 552, 549: 553, 550: 554, 551: 555, 552: 556, 553: 557, 554: 558, 555: 559, 556: 560, 557: 561, 558: 562, 559: 563, 560: 564, 561: 565, 562: 566, 563: 567, 564: 568, 565: 569, 566: 570, 567: 571, 568: 572, 569: 573, 570: 574, 571: 575, 572: 576, 573: 577, 574: 578, 575: 579, 576: 580, 577: 581, 578: 582, 579: 583, 580: 584, 581: 585, 582: 586, 583: 587, 584: 588, 585: 589, 586: 590, 587: 591, 588: 592, 589: 593, 590: 594, 591: 595, 592: 596, 593: 597, 594: 598, 595: 599, 596: 600, 597: 601, 598: 602, 599: 603, 600: 604, 601: 605, 602: 606, 603: 607, 604: 608, 605: 609, 606: 610, 607: 611, 608: 612, 609: 613, 610: 614, 611: 615, 612: 616, 613: 617, 614: 618, 615: 619, 616: 620, 617: 621, 618: 623, 619: 624, 620: 625, 621: 626, 622: 627, 623: 628, 624: 629, 625: 630, 626: 631, 627: 632, 628: 633, 629: 634, 630: 635, 631: 636, 632: 637, 633: 638, 634: 639, 635: 640, 636: 641, 637: 642, 638: 643, 639: 644, 640: 645, 641: 647, 642: 648, 643: 649, 644: 650, 645: 651, 646: 652, 647: 653, 648: 654, 649: 655, 650: 656, 651: 657, 652: 658, 653: 659, 654: 660, 655: 661, 656: 662, 657: 663, 658: 664, 659: 665, 660: 666, 661: 667, 662: 668, 663: 669, 664: 670, 665: 671, 666: 672, 667: 673, 668: 674, 669: 675, 670: 676, 671: 678, 672: 679, 673: 680, 674: 681, 675: 682, 676: 683, 677: 684, 678: 685, 679: 687, 680: 688, 681: 690, 682: 691, 683: 692, 684: 693, 685: 694, 686: 695, 687: 696, 688: 697, 689: 698, 690: 699, 691: 700, 692: 701, 693: 702, 694: 703, 695: 704, 696: 705, 697: 706, 698: 707, 699: 708, 700: 709, 701: 710, 702: 711, 703: 712, 704: 713, 705: 714, 706: 715, 707: 716, 708: 717, 709: 718, 710: 719, 711: 720, 712: 721, 713: 722, 714: 723, 715: 724, 716: 725, 717: 726, 718: 727, 719: 728, 720: 729, 721: 730, 722: 731, 723: 732, 724: 733, 725: 734, 726: 735, 727: 736, 728: 737, 729: 738, 730: 739, 731: 741, 732: 742, 733: 743, 734: 744, 735: 745, 736: 746, 737: 747, 738: 748, 739: 749, 740: 750, 741: 751, 742: 752, 743: 753, 744: 754, 745: 755, 746: 756, 747: 757, 748: 758, 749: 759, 750: 760, 751: 761, 752: 762, 753: 763, 754: 764, 755: 765, 756: 766, 757: 767, 758: 768, 759: 769, 760: 770, 761: 771, 762: 772, 763: 773, 764: 774, 765: 775, 766: 776, 767: 777, 768: 778, 769: 779, 770: 780, 771: 781, 772: 782, 773: 783, 774: 784, 775: 785, 776: 786, 777: 787, 778: 788, 779: 789, 780: 790, 781: 791, 782: 792, 783: 793, 784: 794, 785: 795, 786: 796, 787: 797, 788: 798, 789: 799, 790: 800, 791: 801, 792: 802, 793: 803, 794: 804, 795: 805, 796: 806, 797: 807, 798: 808, 799: 809, 800: 810, 801: 811, 802: 812, 803: 813, 804: 814, 805: 815, 806: 816, 807: 818, 808: 819, 809: 820, 810: 821, 811: 822, 812: 823, 813: 824, 814: 825, 815: 826, 816: 827, 817: 828, 818: 829, 819: 830, 820: 831, 821: 832, 822: 833, 823: 834, 824: 835, 825: 836, 826: 837, 827: 838, 828: 839, 829: 840, 830: 841, 831: 842, 832: 843, 833: 844, 834: 845, 835: 846, 836: 847, 837: 848, 838: 849, 839: 850, 840: 851, 841: 852, 842: 853, 843: 854, 844: 855, 845: 856, 846: 857, 847: 858, 848: 859, 849: 860, 850: 861, 851: 862, 852: 863, 853: 864, 854: 865, 855: 866, 856: 867, 857: 868, 858: 869, 859: 870, 860: 871, 861: 872, 862: 873, 863: 874, 864: 875, 865: 876, 866: 877, 867: 878, 868: 879, 869: 880, 870: 881, 871: 882, 872: 884, 873: 885, 874: 886, 875: 887, 876: 888, 877: 889, 878: 890, 879: 891, 880: 892, 881: 893, 882: 894, 883: 895, 884: 896, 885: 897, 886: 898, 887: 899, 888: 900, 889: 901, 890: 902, 891: 903, 892: 904, 893: 905, 894: 906, 895: 907, 896: 908, 897: 909, 898: 910, 899: 911, 900: 912, 901: 913, 902: 914, 903: 915, 904: 916, 905: 917, 906: 918, 907: 919, 908: 920, 909: 921, 910: 922, 911: 923, 912: 924, 913: 925, 914: 926, 915: 927, 916: 928, 917: 929, 918: 930, 919: 931, 920: 932, 921: 933, 922: 934, 923: 935, 924: 936, 925: 937, 926: 938, 927: 939, 928: 940, 929: 941, 930: 942, 931: 943, 932: 944, 933: 945, 934: 946, 935: 947, 936: 948, 937: 949, 938: 950, 939: 951, 940: 952, 941: 953, 942: 954, 943: 955, 944: 956, 945: 957, 946: 958, 947: 959, 948: 960, 949: 961, 950: 962, 951: 963, 952: 964, 953: 965, 954: 966, 955: 967, 956: 968, 957: 969, 958: 970, 959: 971, 960: 972, 961: 973, 962: 974, 963: 975, 964: 976, 965: 977, 966: 978, 967: 979, 968: 980, 969: 981, 970: 982, 971: 983, 972: 984, 973: 985, 974: 986, 975: 987, 976: 988, 977: 989, 978: 990, 979: 991, 980: 992, 981: 993, 982: 994, 983: 996, 984: 997, 985: 998, 986: 999, 987: 1000, 988: 1001, 989: 1002, 990: 1003, 991: 1004, 992: 1005, 993: 1006, 994: 1007, 995: 1008, 996: 1009, 997: 1010, 998: 1011, 999: 1012, 1000: 1013, 1001: 1014, 1002: 1015, 1003: 1016, 1004: 1017, 1005: 1018, 1006: 1019, 1007: 1020, 1008: 1021, 1009: 1022, 1010: 1023, 1011: 1024, 1012: 1025, 1013: 1026, 1014: 1027, 1015: 1028, 1016: 1029, 1017: 1030, 1018: 1031, 1019: 1032, 1020: 1033, 1021: 1034, 1022: 1035, 1023: 1036, 1024: 1037, 1025: 1038, 1026: 1039, 1027: 1040, 1028: 1041, 1029: 1042, 1030: 1043, 1031: 1044, 1032: 1045, 1033: 1046, 1034: 1047, 1035: 1049, 1036: 1050, 1037: 1051, 1038: 1052, 1039: 1053, 1040: 1054, 1041: 1055, 1042: 1056, 1043: 1057, 1044: 1058, 1045: 1059, 1046: 1060, 1047: 1061, 1048: 1062, 1049: 1063, 1050: 1064, 1051: 1065, 1052: 1066, 1053: 1067, 1054: 1068, 1055: 1069, 1056: 1070, 1057: 1071, 1058: 1073, 1059: 1075, 1060: 1076, 1061: 1077, 1062: 1078, 1063: 1079, 1064: 1080, 1065: 1081, 1066: 1082, 1067: 1083, 1068: 1084, 1069: 1085, 1070: 1086, 1071: 1087, 1072: 1088, 1073: 1089, 1074: 1090, 1075: 1091, 1076: 1092, 1077: 1093, 1078: 1094, 1079: 1095, 1080: 1096, 1081: 1097, 1082: 1098, 1083: 1099, 1084: 1100, 1085: 1101, 1086: 1102, 1087: 1103, 1088: 1104, 1089: 1105, 1090: 1106, 1091: 1107, 1092: 1108, 1093: 1109, 1094: 1110, 1095: 1111, 1096: 1112, 1097: 1113, 1098: 1114, 1099: 1115, 1100: 1116, 1101: 1117, 1102: 1118, 1103: 1119, 1104: 1120, 1105: 1121, 1106: 1122, 1107: 1123, 1108: 1124, 1109: 1125, 1110: 1126, 1111: 1127, 1112: 1128, 1113: 1129, 1114: 1130, 1115: 1131, 1116: 1132, 1117: 1133, 1118: 1134, 1119: 1135, 1120: 1136, 1121: 1137, 1122: 1138, 1123: 1139, 1124: 1140, 1125: 1141, 1126: 1142, 1127: 1143, 1128: 1144, 1129: 1145, 1130: 1146, 1131: 1147, 1132: 1148, 1133: 1149, 1134: 1150, 1135: 1151, 1136: 1152, 1137: 1153, 1138: 1154, 1139: 1155, 1140: 1156, 1141: 1157, 1142: 1158, 1143: 1159, 1144: 1160, 1145: 1161, 1146: 1162, 1147: 1163, 1148: 1164, 1149: 1165, 1150: 1166, 1151: 1167, 1152: 1168, 1153: 1169, 1154: 1170, 1155: 1171, 1156: 1172, 1157: 1173, 1158: 1174, 1159: 1175, 1160: 1176, 1161: 1177, 1162: 1178, 1163: 1179, 1164: 1180, 1165: 1181, 1166: 1183, 1167: 1184, 1168: 1185, 1169: 1186, 1170: 1187, 1171: 1188, 1172: 1189, 1173: 1190, 1174: 1191, 1175: 1192, 1176: 1193, 1177: 1194, 1178: 1196, 1179: 1197, 1180: 1198, 1181: 1199, 1182: 1200, 1183: 1201, 1184: 1202, 1185: 1203, 1186: 1204, 1187: 1205, 1188: 1206, 1189: 1207, 1190: 1208, 1191: 1209, 1192: 1210, 1193: 1211, 1194: 1212, 1195: 1213, 1196: 1214, 1197: 1215, 1198: 1216, 1199: 1217, 1200: 1218, 1201: 1219, 1202: 1220, 1203: 1221, 1204: 1222, 1205: 1223, 1206: 1224, 1207: 1225, 1208: 1226, 1209: 1227, 1210: 1228, 1211: 1230, 1212: 1231, 1213: 1232, 1214: 1233, 1215: 1234, 1216: 1235, 1217: 1236, 1218: 1237, 1219: 1238, 1220: 1240, 1221: 1241, 1222: 1242, 1223: 1243, 1224: 1244, 1225: 1245, 1226: 1246, 1227: 1247, 1228: 1248, 1229: 1249, 1230: 1250, 1231: 1251, 1232: 1252, 1233: 1253, 1234: 1254, 1235: 1255, 1236: 1256, 1237: 1257, 1238: 1258, 1239: 1259, 1240: 1260, 1241: 1261, 1242: 1262, 1243: 1263, 1244: 1264, 1245: 1265, 1246: 1266, 1247: 1267, 1248: 1268, 1249: 1269, 1250: 1270, 1251: 1271, 1252: 1272, 1253: 1273, 1254: 1274, 1255: 1275, 1256: 1276, 1257: 1277, 1258: 1278, 1259: 1279, 1260: 1280, 1261: 1281, 1262: 1282, 1263: 1283, 1264: 1284, 1265: 1285, 1266: 1286, 1267: 1287, 1268: 1288, 1269: 1289, 1270: 1290, 1271: 1291, 1272: 1292, 1273: 1293, 1274: 1294, 1275: 1295, 1276: 1296, 1277: 1297, 1278: 1298, 1279: 1299, 1280: 1300, 1281: 1301, 1282: 1302, 1283: 1303, 1284: 1304, 1285: 1305, 1286: 1306, 1287: 1307, 1288: 1308, 1289: 1309, 1290: 1310, 1291: 1311, 1292: 1312, 1293: 1313, 1294: 1314, 1295: 1315, 1296: 1316, 1297: 1317, 1298: 1318, 1299: 1319, 1300: 1320, 1301: 1321, 1302: 1322, 1303: 1323, 1304: 1324, 1305: 1325, 1306: 1326, 1307: 1327, 1308: 1328, 1309: 1329, 1310: 1330, 1311: 1331, 1312: 1332, 1313: 1333, 1314: 1334, 1315: 1335, 1316: 1336, 1317: 1337, 1318: 1339, 1319: 1340, 1320: 1341, 1321: 1342, 1322: 1343, 1323: 1344, 1324: 1345, 1325: 1346, 1326: 1347, 1327: 1348, 1328: 1349, 1329: 1350, 1330: 1351, 1331: 1352, 1332: 1353, 1333: 1354, 1334: 1355, 1335: 1356, 1336: 1357, 1337: 1358, 1338: 1359, 1339: 1360, 1340: 1361, 1341: 1362, 1342: 1363, 1343: 1364, 1344: 1365, 1345: 1366, 1346: 1367, 1347: 1368, 1348: 1369, 1349: 1370, 1350: 1371, 1351: 1372, 1352: 1373, 1353: 1374, 1354: 1375, 1355: 1376, 1356: 1377, 1357: 1378, 1358: 1379, 1359: 1380, 1360: 1381, 1361: 1382, 1362: 1383, 1363: 1384, 1364: 1385, 1365: 1386, 1366: 1387, 1367: 1388, 1368: 1389, 1369: 1390, 1370: 1391, 1371: 1392, 1372: 1393, 1373: 1394, 1374: 1395, 1375: 1396, 1376: 1397, 1377: 1398, 1378: 1399, 1379: 1400, 1380: 1401, 1381: 1404, 1382: 1405, 1383: 1406, 1384: 1407, 1385: 1408, 1386: 1409, 1387: 1410, 1388: 1411, 1389: 1412, 1390: 1413, 1391: 1414, 1392: 1415, 1393: 1416, 1394: 1417, 1395: 1419, 1396: 1420, 1397: 1421, 1398: 1422, 1399: 1423, 1400: 1424, 1401: 1425, 1402: 1426, 1403: 1427, 1404: 1428, 1405: 1429, 1406: 1430, 1407: 1431, 1408: 1432, 1409: 1433, 1410: 1434, 1411: 1436, 1412: 1437, 1413: 1438, 1414: 1439, 1415: 1440, 1416: 1441, 1417: 1442, 1418: 1443, 1419: 1444, 1420: 1445, 1421: 1446, 1422: 1447, 1423: 1448, 1424: 1449, 1425: 1450, 1426: 1453, 1427: 1454, 1428: 1455, 1429: 1456, 1430: 1457, 1431: 1458, 1432: 1459, 1433: 1460, 1434: 1461, 1435: 1462, 1436: 1463, 1437: 1464, 1438: 1465, 1439: 1466, 1440: 1467, 1441: 1468, 1442: 1470, 1443: 1471, 1444: 1472, 1445: 1473, 1446: 1474, 1447: 1475, 1448: 1476, 1449: 1477, 1450: 1479, 1451: 1480, 1452: 1482, 1453: 1483, 1454: 1484, 1455: 1485, 1456: 1486, 1457: 1487, 1458: 1488, 1459: 1489, 1460: 1490, 1461: 1493, 1462: 1494, 1463: 1495, 1464: 1496, 1465: 1497, 1466: 1498, 1467: 1499, 1468: 1500, 1469: 1501, 1470: 1502, 1471: 1503, 1472: 1504, 1473: 1507, 1474: 1508, 1475: 1509, 1476: 1510, 1477: 1511, 1478: 1513, 1479: 1514, 1480: 1515, 1481: 1516, 1482: 1517, 1483: 1518, 1484: 1519, 1485: 1520, 1486: 1522, 1487: 1523, 1488: 1524, 1489: 1525, 1490: 1526, 1491: 1527, 1492: 1528, 1493: 1529, 1494: 1531, 1495: 1532, 1496: 1533, 1497: 1534, 1498: 1535, 1499: 1537, 1500: 1538, 1501: 1539, 1502: 1541, 1503: 1542, 1504: 1543, 1505: 1544, 1506: 1545, 1507: 1546, 1508: 1547, 1509: 1548, 1510: 1549, 1511: 1550, 1512: 1551, 1513: 1552, 1514: 1553, 1515: 1554, 1516: 1555, 1517: 1556, 1518: 1557, 1519: 1558, 1520: 1559, 1521: 1561, 1522: 1562, 1523: 1563, 1524: 1564, 1525: 1565, 1526: 1566, 1527: 1567, 1528: 1568, 1529: 1569, 1530: 1570, 1531: 1571, 1532: 1572, 1533: 1573, 1534: 1574, 1535: 1575, 1536: 1577, 1537: 1578, 1538: 1579, 1539: 1580, 1540: 1581, 1541: 1582, 1542: 1583, 1543: 1584, 1544: 1585, 1545: 1586, 1546: 1587, 1547: 1588, 1548: 1589, 1549: 1590, 1550: 1591, 1551: 1592, 1552: 1593, 1553: 1594, 1554: 1595, 1555: 1596, 1556: 1597, 1557: 1598, 1558: 1599, 1559: 1600, 1560: 1601, 1561: 1602, 1562: 1603, 1563: 1604, 1564: 1605, 1565: 1606, 1566: 1608, 1567: 1609, 1568: 1610, 1569: 1611, 1570: 1612, 1571: 1613, 1572: 1614, 1573: 1615, 1574: 1616, 1575: 1617, 1576: 1619, 1577: 1620, 1578: 1621, 1579: 1622, 1580: 1623, 1581: 1624, 1582: 1625, 1583: 1626, 1584: 1627, 1585: 1628, 1586: 1629, 1587: 1630, 1588: 1631, 1589: 1632, 1590: 1633, 1591: 1635, 1592: 1636, 1593: 1639, 1594: 1640, 1595: 1641, 1596: 1642, 1597: 1643, 1598: 1644, 1599: 1645, 1600: 1646, 1601: 1647, 1602: 1648, 1603: 1649, 1604: 1650, 1605: 1651, 1606: 1652, 1607: 1653, 1608: 1654, 1609: 1655, 1610: 1656, 1611: 1657, 1612: 1658, 1613: 1659, 1614: 1660, 1615: 1661, 1616: 1662, 1617: 1663, 1618: 1664, 1619: 1665, 1620: 1666, 1621: 1667, 1622: 1668, 1623: 1669, 1624: 1670, 1625: 1671, 1626: 1672, 1627: 1673, 1628: 1674, 1629: 1675, 1630: 1676, 1631: 1677, 1632: 1678, 1633: 1679, 1634: 1680, 1635: 1681, 1636: 1682, 1637: 1683, 1638: 1684, 1639: 1685, 1640: 1686, 1641: 1687, 1642: 1688, 1643: 1689, 1644: 1690, 1645: 1692, 1646: 1693, 1647: 1694, 1648: 1695, 1649: 1696, 1650: 1697, 1651: 1698, 1652: 1699, 1653: 1701, 1654: 1702, 1655: 1703, 1656: 1704, 1657: 1705, 1658: 1706, 1659: 1707, 1660: 1708, 1661: 1709, 1662: 1710, 1663: 1711, 1664: 1713, 1665: 1714, 1666: 1715, 1667: 1716, 1668: 1717, 1669: 1718, 1670: 1719, 1671: 1720, 1672: 1721, 1673: 1722, 1674: 1723, 1675: 1724, 1676: 1725, 1677: 1726, 1678: 1727, 1679: 1728, 1680: 1729, 1681: 1730, 1682: 1731, 1683: 1732, 1684: 1733, 1685: 1734, 1686: 1735, 1687: 1738, 1688: 1739, 1689: 1740, 1690: 1741, 1691: 1742, 1692: 1743, 1693: 1744, 1694: 1746, 1695: 1747, 1696: 1748, 1697: 1749, 1698: 1750, 1699: 1752, 1700: 1753, 1701: 1754, 1702: 1755, 1703: 1756, 1704: 1757, 1705: 1758, 1706: 1759, 1707: 1760, 1708: 1762, 1709: 1764, 1710: 1765, 1711: 1767, 1712: 1768, 1713: 1769, 1714: 1770, 1715: 1771, 1716: 1772, 1717: 1773, 1718: 1774, 1719: 1776, 1720: 1777, 1721: 1779, 1722: 1780, 1723: 1781, 1724: 1782, 1725: 1783, 1726: 1784, 1727: 1785, 1728: 1787, 1729: 1788, 1730: 1789, 1731: 1791, 1732: 1792, 1733: 1793, 1734: 1794, 1735: 1795, 1736: 1796, 1737: 1797, 1738: 1798, 1739: 1799, 1740: 1801, 1741: 1804, 1742: 1805, 1743: 1806, 1744: 1807, 1745: 1809, 1746: 1810, 1747: 1811, 1748: 1812, 1749: 1814, 1750: 1815, 1751: 1816, 1752: 1817, 1753: 1819, 1754: 1820, 1755: 1821, 1756: 1822, 1757: 1824, 1758: 1825, 1759: 1826, 1760: 1827, 1761: 1829, 1762: 1830, 1763: 1831, 1764: 1832, 1765: 1833, 1766: 1834, 1767: 1835, 1768: 1836, 1769: 1837, 1770: 1839, 1771: 1840, 1772: 1841, 1773: 1842, 1774: 1843, 1775: 1844, 1776: 1845, 1777: 1846, 1778: 1847, 1779: 1848, 1780: 1849, 1781: 1850, 1782: 1851, 1783: 1852, 1784: 1853, 1785: 1854, 1786: 1855, 1787: 1856, 1788: 1857, 1789: 1858, 1790: 1859, 1791: 1860, 1792: 1861, 1793: 1862, 1794: 1863, 1795: 1864, 1796: 1865, 1797: 1866, 1798: 1867, 1799: 1868, 1800: 1869, 1801: 1870, 1802: 1871, 1803: 1872, 1804: 1873, 1805: 1874, 1806: 1875, 1807: 1876, 1808: 1877, 1809: 1878, 1810: 1879, 1811: 1880, 1812: 1881, 1813: 1882, 1814: 1883, 1815: 1884, 1816: 1885, 1817: 1886, 1818: 1887, 1819: 1888, 1820: 1889, 1821: 1890, 1822: 1891, 1823: 1892, 1824: 1893, 1825: 1894, 1826: 1895, 1827: 1896, 1828: 1897, 1829: 1898, 1830: 1899, 1831: 1900, 1832: 1901, 1833: 1902, 1834: 1903, 1835: 1904, 1836: 1905, 1837: 1906, 1838: 1907, 1839: 1908, 1840: 1909, 1841: 1910, 1842: 1911, 1843: 1912, 1844: 1913, 1845: 1914, 1846: 1915, 1847: 1916, 1848: 1917, 1849: 1918, 1850: 1919, 1851: 1920, 1852: 1921, 1853: 1922, 1854: 1923, 1855: 1924, 1856: 1925, 1857: 1926, 1858: 1927, 1859: 1928, 1860: 1929, 1861: 1930, 1862: 1931, 1863: 1932, 1864: 1933, 1865: 1934, 1866: 1935, 1867: 1936, 1868: 1937, 1869: 1938, 1870: 1939, 1871: 1940, 1872: 1941, 1873: 1942, 1874: 1943, 1875: 1944, 1876: 1945, 1877: 1946, 1878: 1947, 1879: 1948, 1880: 1949, 1881: 1950, 1882: 1951, 1883: 1952, 1884: 1953, 1885: 1954, 1886: 1955, 1887: 1956, 1888: 1957, 1889: 1958, 1890: 1959, 1891: 1960, 1892: 1961, 1893: 1962, 1894: 1963, 1895: 1964, 1896: 1965, 1897: 1966, 1898: 1967, 1899: 1968, 1900: 1969, 1901: 1970, 1902: 1971, 1903: 1972, 1904: 1973, 1905: 1974, 1906: 1975, 1907: 1976, 1908: 1977, 1909: 1978, 1910: 1979, 1911: 1980, 1912: 1981, 1913: 1982, 1914: 1983, 1915: 1984, 1916: 1985, 1917: 1986, 1918: 1987, 1919: 1988, 1920: 1989, 1921: 1990, 1922: 1991, 1923: 1992, 1924: 1993, 1925: 1994, 1926: 1995, 1927: 1996, 1928: 1997, 1929: 1998, 1930: 1999, 1931: 2000, 1932: 2001, 1933: 2002, 1934: 2003, 1935: 2004, 1936: 2005, 1937: 2006, 1938: 2007, 1939: 2008, 1940: 2009, 1941: 2010, 1942: 2011, 1943: 2012, 1944: 2013, 1945: 2014, 1946: 2015, 1947: 2016, 1948: 2017, 1949: 2018, 1950: 2019, 1951: 2020, 1952: 2021, 1953: 2022, 1954: 2023, 1955: 2024, 1956: 2025, 1957: 2026, 1958: 2027, 1959: 2028, 1960: 2029, 1961: 2030, 1962: 2031, 1963: 2032, 1964: 2033, 1965: 2034, 1966: 2035, 1967: 2036, 1968: 2037, 1969: 2038, 1970: 2039, 1971: 2040, 1972: 2041, 1973: 2042, 1974: 2043, 1975: 2044, 1976: 2045, 1977: 2046, 1978: 2047, 1979: 2048, 1980: 2049, 1981: 2050, 1982: 2051, 1983: 2052, 1984: 2053, 1985: 2054, 1986: 2055, 1987: 2056, 1988: 2057, 1989: 2058, 1990: 2059, 1991: 2060, 1992: 2061, 1993: 2062, 1994: 2063, 1995: 2064, 1996: 2065, 1997: 2066, 1998: 2067, 1999: 2068, 2000: 2069, 2001: 2070, 2002: 2071, 2003: 2072, 2004: 2073, 2005: 2074, 2006: 2075, 2007: 2076, 2008: 2077, 2009: 2078, 2010: 2079, 2011: 2080, 2012: 2081, 2013: 2082, 2014: 2083, 2015: 2084, 2016: 2085, 2017: 2086, 2018: 2087, 2019: 2088, 2020: 2089, 2021: 2090, 2022: 2091, 2023: 2092, 2024: 2093, 2025: 2094, 2026: 2095, 2027: 2096, 2028: 2097, 2029: 2098, 2030: 2099, 2031: 2100, 2032: 2101, 2033: 2102, 2034: 2103, 2035: 2104, 2036: 2105, 2037: 2106, 2038: 2107, 2039: 2108, 2040: 2109, 2041: 2110, 2042: 2111, 2043: 2112, 2044: 2113, 2045: 2114, 2046: 2115, 2047: 2116, 2048: 2117, 2049: 2118, 2050: 2119, 2051: 2120, 2052: 2121, 2053: 2122, 2054: 2123, 2055: 2124, 2056: 2125, 2057: 2126, 2058: 2127, 2059: 2128, 2060: 2129, 2061: 2130, 2062: 2131, 2063: 2132, 2064: 2133, 2065: 2134, 2066: 2135, 2067: 2136, 2068: 2137, 2069: 2138, 2070: 2139, 2071: 2140, 2072: 2141, 2073: 2142, 2074: 2143, 2075: 2144, 2076: 2145, 2077: 2146, 2078: 2147, 2079: 2148, 2080: 2149, 2081: 2150, 2082: 2151, 2083: 2152, 2084: 2153, 2085: 2154, 2086: 2155, 2087: 2156, 2088: 2157, 2089: 2158, 2090: 2159, 2091: 2160, 2092: 2161, 2093: 2162, 2094: 2163, 2095: 2164, 2096: 2165, 2097: 2166, 2098: 2167, 2099: 2168, 2100: 2169, 2101: 2170, 2102: 2171, 2103: 2172, 2104: 2173, 2105: 2174, 2106: 2175, 2107: 2176, 2108: 2177, 2109: 2178, 2110: 2179, 2111: 2180, 2112: 2181, 2113: 2182, 2114: 2183, 2115: 2184, 2116: 2185, 2117: 2186, 2118: 2187, 2119: 2188, 2120: 2189, 2121: 2190, 2122: 2191, 2123: 2192, 2124: 2193, 2125: 2194, 2126: 2195, 2127: 2196, 2128: 2197, 2129: 2198, 2130: 2199, 2131: 2200, 2132: 2201, 2133: 2202, 2134: 2203, 2135: 2204, 2136: 2205, 2137: 2206, 2138: 2207, 2139: 2208, 2140: 2209, 2141: 2210, 2142: 2211, 2143: 2212, 2144: 2213, 2145: 2214, 2146: 2215, 2147: 2216, 2148: 2217, 2149: 2218, 2150: 2219, 2151: 2220, 2152: 2221, 2153: 2222, 2154: 2223, 2155: 2224, 2156: 2225, 2157: 2226, 2158: 2227, 2159: 2228, 2160: 2229, 2161: 2230, 2162: 2231, 2163: 2232, 2164: 2233, 2165: 2234, 2166: 2235, 2167: 2236, 2168: 2237, 2169: 2238, 2170: 2239, 2171: 2240, 2172: 2241, 2173: 2242, 2174: 2243, 2175: 2244, 2176: 2245, 2177: 2246, 2178: 2247, 2179: 2248, 2180: 2249, 2181: 2250, 2182: 2251, 2183: 2252, 2184: 2253, 2185: 2254, 2186: 2255, 2187: 2256, 2188: 2257, 2189: 2258, 2190: 2259, 2191: 2260, 2192: 2261, 2193: 2262, 2194: 2263, 2195: 2264, 2196: 2265, 2197: 2266, 2198: 2267, 2199: 2268, 2200: 2269, 2201: 2270, 2202: 2271, 2203: 2272, 2204: 2273, 2205: 2274, 2206: 2275, 2207: 2276, 2208: 2277, 2209: 2278, 2210: 2279, 2211: 2280, 2212: 2281, 2213: 2282, 2214: 2283, 2215: 2284, 2216: 2285, 2217: 2286, 2218: 2287, 2219: 2288, 2220: 2289, 2221: 2290, 2222: 2291, 2223: 2292, 2224: 2293, 2225: 2294, 2226: 2295, 2227: 2296, 2228: 2297, 2229: 2298, 2230: 2299, 2231: 2300, 2232: 2301, 2233: 2302, 2234: 2303, 2235: 2304, 2236: 2305, 2237: 2306, 2238: 2307, 2239: 2308, 2240: 2309, 2241: 2310, 2242: 2311, 2243: 2312, 2244: 2313, 2245: 2314, 2246: 2315, 2247: 2316, 2248: 2317, 2249: 2318, 2250: 2319, 2251: 2320, 2252: 2321, 2253: 2322, 2254: 2323, 2255: 2324, 2256: 2325, 2257: 2326, 2258: 2327, 2259: 2328, 2260: 2329, 2261: 2330, 2262: 2331, 2263: 2332, 2264: 2333, 2265: 2334, 2266: 2335, 2267: 2336, 2268: 2337, 2269: 2338, 2270: 2339, 2271: 2340, 2272: 2341, 2273: 2342, 2274: 2343, 2275: 2344, 2276: 2345, 2277: 2346, 2278: 2347, 2279: 2348, 2280: 2349, 2281: 2350, 2282: 2351, 2283: 2352, 2284: 2353, 2285: 2354, 2286: 2355, 2287: 2356, 2288: 2357, 2289: 2358, 2290: 2359, 2291: 2360, 2292: 2361, 2293: 2362, 2294: 2363, 2295: 2364, 2296: 2365, 2297: 2366, 2298: 2367, 2299: 2368, 2300: 2369, 2301: 2370, 2302: 2371, 2303: 2372, 2304: 2373, 2305: 2374, 2306: 2375, 2307: 2376, 2308: 2377, 2309: 2378, 2310: 2379, 2311: 2380, 2312: 2381, 2313: 2382, 2314: 2383, 2315: 2384, 2316: 2385, 2317: 2386, 2318: 2387, 2319: 2388, 2320: 2389, 2321: 2390, 2322: 2391, 2323: 2392, 2324: 2393, 2325: 2394, 2326: 2395, 2327: 2396, 2328: 2397, 2329: 2398, 2330: 2399, 2331: 2400, 2332: 2401, 2333: 2402, 2334: 2403, 2335: 2404, 2336: 2405, 2337: 2406, 2338: 2407, 2339: 2408, 2340: 2409, 2341: 2410, 2342: 2411, 2343: 2412, 2344: 2413, 2345: 2414, 2346: 2415, 2347: 2416, 2348: 2417, 2349: 2418, 2350: 2419, 2351: 2420, 2352: 2421, 2353: 2422, 2354: 2423, 2355: 2424, 2356: 2425, 2357: 2426, 2358: 2427, 2359: 2428, 2360: 2429, 2361: 2430, 2362: 2431, 2363: 2432, 2364: 2433, 2365: 2434, 2366: 2435, 2367: 2436, 2368: 2437, 2369: 2438, 2370: 2439, 2371: 2440, 2372: 2441, 2373: 2442, 2374: 2443, 2375: 2444, 2376: 2445, 2377: 2446, 2378: 2447, 2379: 2448, 2380: 2449, 2381: 2450, 2382: 2451, 2383: 2452, 2384: 2453, 2385: 2454, 2386: 2455, 2387: 2456, 2388: 2457, 2389: 2458, 2390: 2459, 2391: 2460, 2392: 2461, 2393: 2462, 2394: 2463, 2395: 2464, 2396: 2465, 2397: 2466, 2398: 2467, 2399: 2468, 2400: 2469, 2401: 2470, 2402: 2471, 2403: 2472, 2404: 2473, 2405: 2474, 2406: 2475, 2407: 2476, 2408: 2477, 2409: 2478, 2410: 2479, 2411: 2480, 2412: 2481, 2413: 2482, 2414: 2483, 2415: 2484, 2416: 2485, 2417: 2486, 2418: 2487, 2419: 2488, 2420: 2489, 2421: 2490, 2422: 2491, 2423: 2492, 2424: 2493, 2425: 2494, 2426: 2495, 2427: 2496, 2428: 2497, 2429: 2498, 2430: 2499, 2431: 2500, 2432: 2501, 2433: 2502, 2434: 2503, 2435: 2504, 2436: 2505, 2437: 2506, 2438: 2507, 2439: 2508, 2440: 2509, 2441: 2510, 2442: 2511, 2443: 2512, 2444: 2513, 2445: 2514, 2446: 2515, 2447: 2516, 2448: 2517, 2449: 2518, 2450: 2519, 2451: 2520, 2452: 2521, 2453: 2522, 2454: 2523, 2455: 2524, 2456: 2525, 2457: 2526, 2458: 2527, 2459: 2528, 2460: 2529, 2461: 2530, 2462: 2531, 2463: 2532, 2464: 2533, 2465: 2534, 2466: 2535, 2467: 2536, 2468: 2537, 2469: 2538, 2470: 2539, 2471: 2540, 2472: 2541, 2473: 2542, 2474: 2543, 2475: 2544, 2476: 2545, 2477: 2546, 2478: 2547, 2479: 2548, 2480: 2549, 2481: 2550, 2482: 2551, 2483: 2552, 2484: 2553, 2485: 2554, 2486: 2555, 2487: 2556, 2488: 2557, 2489: 2558, 2490: 2559, 2491: 2560, 2492: 2561, 2493: 2562, 2494: 2563, 2495: 2564, 2496: 2565, 2497: 2566, 2498: 2567, 2499: 2568, 2500: 2569, 2501: 2570, 2502: 2571, 2503: 2572, 2504: 2573, 2505: 2574, 2506: 2575, 2507: 2576, 2508: 2577, 2509: 2578, 2510: 2579, 2511: 2580, 2512: 2581, 2513: 2582, 2514: 2583, 2515: 2584, 2516: 2585, 2517: 2586, 2518: 2587, 2519: 2588, 2520: 2589, 2521: 2590, 2522: 2591, 2523: 2592, 2524: 2593, 2525: 2594, 2526: 2595, 2527: 2596, 2528: 2597, 2529: 2598, 2530: 2599, 2531: 2600, 2532: 2601, 2533: 2602, 2534: 2603, 2535: 2604, 2536: 2605, 2537: 2606, 2538: 2607, 2539: 2608, 2540: 2609, 2541: 2610, 2542: 2611, 2543: 2612, 2544: 2613, 2545: 2614, 2546: 2615, 2547: 2616, 2548: 2617, 2549: 2618, 2550: 2619, 2551: 2620, 2552: 2621, 2553: 2622, 2554: 2623, 2555: 2624, 2556: 2625, 2557: 2626, 2558: 2627, 2559: 2628, 2560: 2629, 2561: 2630, 2562: 2631, 2563: 2632, 2564: 2633, 2565: 2634, 2566: 2635, 2567: 2636, 2568: 2637, 2569: 2638, 2570: 2639, 2571: 2640, 2572: 2641, 2573: 2642, 2574: 2643, 2575: 2644, 2576: 2645, 2577: 2646, 2578: 2647, 2579: 2648, 2580: 2649, 2581: 2650, 2582: 2651, 2583: 2652, 2584: 2653, 2585: 2654, 2586: 2655, 2587: 2656, 2588: 2657, 2589: 2658, 2590: 2659, 2591: 2660, 2592: 2661, 2593: 2662, 2594: 2663, 2595: 2664, 2596: 2665, 2597: 2666, 2598: 2667, 2599: 2668, 2600: 2669, 2601: 2670, 2602: 2671, 2603: 2672, 2604: 2673, 2605: 2674, 2606: 2675, 2607: 2676, 2608: 2677, 2609: 2678, 2610: 2679, 2611: 2680, 2612: 2681, 2613: 2682, 2614: 2683, 2615: 2684, 2616: 2685, 2617: 2686, 2618: 2687, 2619: 2688, 2620: 2689, 2621: 2690, 2622: 2691, 2623: 2692, 2624: 2693, 2625: 2694, 2626: 2695, 2627: 2696, 2628: 2697, 2629: 2698, 2630: 2699, 2631: 2700, 2632: 2701, 2633: 2702, 2634: 2703, 2635: 2704, 2636: 2705, 2637: 2706, 2638: 2707, 2639: 2708, 2640: 2709, 2641: 2710, 2642: 2711, 2643: 2712, 2644: 2713, 2645: 2714, 2646: 2715, 2647: 2716, 2648: 2717, 2649: 2718, 2650: 2719, 2651: 2720, 2652: 2721, 2653: 2722, 2654: 2723, 2655: 2724, 2656: 2725, 2657: 2726, 2658: 2727, 2659: 2728, 2660: 2729, 2661: 2730, 2662: 2731, 2663: 2732, 2664: 2733, 2665: 2734, 2666: 2735, 2667: 2736, 2668: 2737, 2669: 2738, 2670: 2739, 2671: 2740, 2672: 2741, 2673: 2742, 2674: 2743, 2675: 2744, 2676: 2745, 2677: 2746, 2678: 2747, 2679: 2748, 2680: 2749, 2681: 2750, 2682: 2751, 2683: 2752, 2684: 2753, 2685: 2754, 2686: 2755, 2687: 2756, 2688: 2757, 2689: 2758, 2690: 2759, 2691: 2760, 2692: 2761, 2693: 2762, 2694: 2763, 2695: 2764, 2696: 2765, 2697: 2766, 2698: 2767, 2699: 2768, 2700: 2769, 2701: 2770, 2702: 2771, 2703: 2772, 2704: 2773, 2705: 2774, 2706: 2775, 2707: 2776, 2708: 2777, 2709: 2778, 2710: 2779, 2711: 2780, 2712: 2781, 2713: 2782, 2714: 2783, 2715: 2784, 2716: 2785, 2717: 2786, 2718: 2787, 2719: 2788, 2720: 2789, 2721: 2790, 2722: 2791, 2723: 2792, 2724: 2793, 2725: 2794, 2726: 2795, 2727: 2796, 2728: 2797, 2729: 2798, 2730: 2799, 2731: 2800, 2732: 2801, 2733: 2802, 2734: 2803, 2735: 2804, 2736: 2805, 2737: 2806, 2738: 2807, 2739: 2808, 2740: 2809, 2741: 2810, 2742: 2811, 2743: 2812, 2744: 2813, 2745: 2814, 2746: 2815, 2747: 2816, 2748: 2817, 2749: 2818, 2750: 2819, 2751: 2820, 2752: 2821, 2753: 2822, 2754: 2823, 2755: 2824, 2756: 2825, 2757: 2826, 2758: 2827, 2759: 2828, 2760: 2829, 2761: 2830, 2762: 2831, 2763: 2832, 2764: 2833, 2765: 2834, 2766: 2835, 2767: 2836, 2768: 2837, 2769: 2838, 2770: 2839, 2771: 2840, 2772: 2841, 2773: 2842, 2774: 2843, 2775: 2844, 2776: 2845, 2777: 2846, 2778: 2847, 2779: 2848, 2780: 2849, 2781: 2850, 2782: 2851, 2783: 2852, 2784: 2853, 2785: 2854, 2786: 2855, 2787: 2856, 2788: 2857, 2789: 2858, 2790: 2859, 2791: 2860, 2792: 2861, 2793: 2862, 2794: 2863, 2795: 2864, 2796: 2865, 2797: 2866, 2798: 2867, 2799: 2868, 2800: 2869, 2801: 2870, 2802: 2871, 2803: 2872, 2804: 2873, 2805: 2874, 2806: 2875, 2807: 2876, 2808: 2877, 2809: 2878, 2810: 2879, 2811: 2880, 2812: 2881, 2813: 2882, 2814: 2883, 2815: 2884, 2816: 2885, 2817: 2886, 2818: 2887, 2819: 2888, 2820: 2889, 2821: 2890, 2822: 2891, 2823: 2892, 2824: 2893, 2825: 2894, 2826: 2895, 2827: 2896, 2828: 2897, 2829: 2898, 2830: 2899, 2831: 2900, 2832: 2901, 2833: 2902, 2834: 2903, 2835: 2904, 2836: 2905, 2837: 2906, 2838: 2907, 2839: 2908, 2840: 2909, 2841: 2910, 2842: 2911, 2843: 2912, 2844: 2913, 2845: 2914, 2846: 2915, 2847: 2916, 2848: 2917, 2849: 2918, 2850: 2919, 2851: 2920, 2852: 2921, 2853: 2922, 2854: 2923, 2855: 2924, 2856: 2925, 2857: 2926, 2858: 2927, 2859: 2928, 2860: 2929, 2861: 2930, 2862: 2931, 2863: 2932, 2864: 2933, 2865: 2934, 2866: 2935, 2867: 2936, 2868: 2937, 2869: 2938, 2870: 2939, 2871: 2940, 2872: 2941, 2873: 2942, 2874: 2943, 2875: 2944, 2876: 2945, 2877: 2946, 2878: 2947, 2879: 2948, 2880: 2949, 2881: 2950, 2882: 2951, 2883: 2952, 2884: 2953, 2885: 2954, 2886: 2955, 2887: 2956, 2888: 2957, 2889: 2958, 2890: 2959, 2891: 2960, 2892: 2961, 2893: 2962, 2894: 2963, 2895: 2964, 2896: 2965, 2897: 2966, 2898: 2967, 2899: 2968, 2900: 2969, 2901: 2970, 2902: 2971, 2903: 2972, 2904: 2973, 2905: 2974, 2906: 2975, 2907: 2976, 2908: 2977, 2909: 2978, 2910: 2979, 2911: 2980, 2912: 2981, 2913: 2982, 2914: 2983, 2915: 2984, 2916: 2985, 2917: 2986, 2918: 2987, 2919: 2988, 2920: 2989, 2921: 2990, 2922: 2991, 2923: 2992, 2924: 2993, 2925: 2994, 2926: 2995, 2927: 2996, 2928: 2997, 2929: 2998, 2930: 2999, 2931: 3000, 2932: 3001, 2933: 3002, 2934: 3003, 2935: 3004, 2936: 3005, 2937: 3006, 2938: 3007, 2939: 3008, 2940: 3009, 2941: 3010, 2942: 3011, 2943: 3012, 2944: 3013, 2945: 3014, 2946: 3015, 2947: 3016, 2948: 3017, 2949: 3018, 2950: 3019, 2951: 3020, 2952: 3021, 2953: 3022, 2954: 3023, 2955: 3024, 2956: 3025, 2957: 3026, 2958: 3027, 2959: 3028, 2960: 3029, 2961: 3030, 2962: 3031, 2963: 3032, 2964: 3033, 2965: 3034, 2966: 3035, 2967: 3036, 2968: 3037, 2969: 3038, 2970: 3039, 2971: 3040, 2972: 3041, 2973: 3042, 2974: 3043, 2975: 3044, 2976: 3045, 2977: 3046, 2978: 3047, 2979: 3048, 2980: 3049, 2981: 3050, 2982: 3051, 2983: 3052, 2984: 3053, 2985: 3054, 2986: 3055, 2987: 3056, 2988: 3057, 2989: 3058, 2990: 3059, 2991: 3060, 2992: 3061, 2993: 3062, 2994: 3063, 2995: 3064, 2996: 3065, 2997: 3066, 2998: 3067, 2999: 3068, 3000: 3069, 3001: 3070, 3002: 3071, 3003: 3072, 3004: 3073, 3005: 3074, 3006: 3075, 3007: 3076, 3008: 3077, 3009: 3078, 3010: 3079, 3011: 3080, 3012: 3081, 3013: 3082, 3014: 3083, 3015: 3084, 3016: 3085, 3017: 3086, 3018: 3087, 3019: 3088, 3020: 3089, 3021: 3090, 3022: 3091, 3023: 3092, 3024: 3093, 3025: 3094, 3026: 3095, 3027: 3096, 3028: 3097, 3029: 3098, 3030: 3099, 3031: 3100, 3032: 3101, 3033: 3102, 3034: 3103, 3035: 3104, 3036: 3105, 3037: 3106, 3038: 3107, 3039: 3108, 3040: 3109, 3041: 3110, 3042: 3111, 3043: 3112, 3044: 3113, 3045: 3114, 3046: 3115, 3047: 3116, 3048: 3117, 3049: 3118, 3050: 3119, 3051: 3120, 3052: 3121, 3053: 3122, 3054: 3123, 3055: 3124, 3056: 3125, 3057: 3126, 3058: 3127, 3059: 3128, 3060: 3129, 3061: 3130, 3062: 3131, 3063: 3132, 3064: 3133, 3065: 3134, 3066: 3135, 3067: 3136, 3068: 3137, 3069: 3138, 3070: 3139, 3071: 3140, 3072: 3141, 3073: 3142, 3074: 3143, 3075: 3144, 3076: 3145, 3077: 3146, 3078: 3147, 3079: 3148, 3080: 3149, 3081: 3150, 3082: 3151, 3083: 3152, 3084: 3153, 3085: 3154, 3086: 3155, 3087: 3156, 3088: 3157, 3089: 3158, 3090: 3159, 3091: 3160, 3092: 3161, 3093: 3162, 3094: 3163, 3095: 3164, 3096: 3165, 3097: 3166, 3098: 3167, 3099: 3168, 3100: 3169, 3101: 3170, 3102: 3171, 3103: 3172, 3104: 3173, 3105: 3174, 3106: 3175, 3107: 3176, 3108: 3177, 3109: 3178, 3110: 3179, 3111: 3180, 3112: 3181, 3113: 3182, 3114: 3183, 3115: 3184, 3116: 3185, 3117: 3186, 3118: 3187, 3119: 3188, 3120: 3189, 3121: 3190, 3122: 3191, 3123: 3192, 3124: 3193, 3125: 3194, 3126: 3195, 3127: 3196, 3128: 3197, 3129: 3198, 3130: 3199, 3131: 3200, 3132: 3201, 3133: 3202, 3134: 3203, 3135: 3204, 3136: 3205, 3137: 3206, 3138: 3207, 3139: 3208, 3140: 3209, 3141: 3210, 3142: 3211, 3143: 3212, 3144: 3213, 3145: 3214, 3146: 3215, 3147: 3216, 3148: 3217, 3149: 3218, 3150: 3219, 3151: 3220, 3152: 3221, 3153: 3222, 3154: 3223, 3155: 3224, 3156: 3225, 3157: 3226, 3158: 3227, 3159: 3228, 3160: 3229, 3161: 3230, 3162: 3231, 3163: 3232, 3164: 3233, 3165: 3234, 3166: 3235, 3167: 3236, 3168: 3237, 3169: 3238, 3170: 3239, 3171: 3240, 3172: 3241, 3173: 3242, 3174: 3243, 3175: 3244, 3176: 3245, 3177: 3246, 3178: 3247, 3179: 3248, 3180: 3249, 3181: 3250, 3182: 3251, 3183: 3252, 3184: 3253, 3185: 3254, 3186: 3255, 3187: 3256, 3188: 3257, 3189: 3258, 3190: 3259, 3191: 3260, 3192: 3261, 3193: 3262, 3194: 3263, 3195: 3264, 3196: 3265, 3197: 3266, 3198: 3267, 3199: 3268, 3200: 3269, 3201: 3270, 3202: 3271, 3203: 3272, 3204: 3273, 3205: 3274, 3206: 3275, 3207: 3276, 3208: 3277, 3209: 3278, 3210: 3279, 3211: 3280, 3212: 3281, 3213: 3282, 3214: 3283, 3215: 3284, 3216: 3285, 3217: 3286, 3218: 3287, 3219: 3288, 3220: 3289, 3221: 3290, 3222: 3291, 3223: 3292, 3224: 3293, 3225: 3294, 3226: 3295, 3227: 3296, 3228: 3297, 3229: 3298, 3230: 3299, 3231: 3300, 3232: 3301, 3233: 3302, 3234: 3303, 3235: 3304, 3236: 3305, 3237: 3306, 3238: 3307, 3239: 3308, 3240: 3309, 3241: 3310, 3242: 3311, 3243: 3312, 3244: 3313, 3245: 3314, 3246: 3315, 3247: 3316, 3248: 3317, 3249: 3318, 3250: 3319, 3251: 3320, 3252: 3321, 3253: 3322, 3254: 3323, 3255: 3324, 3256: 3325, 3257: 3326, 3258: 3327, 3259: 3328, 3260: 3329, 3261: 3330, 3262: 3331, 3263: 3332, 3264: 3333, 3265: 3334, 3266: 3335, 3267: 3336, 3268: 3337, 3269: 3338, 3270: 3339, 3271: 3340, 3272: 3341, 3273: 3342, 3274: 3343, 3275: 3344, 3276: 3345, 3277: 3346, 3278: 3347, 3279: 3348, 3280: 3349, 3281: 3350, 3282: 3351, 3283: 3352, 3284: 3353, 3285: 3354, 3286: 3355, 3287: 3356, 3288: 3357, 3289: 3358, 3290: 3359, 3291: 3360, 3292: 3361, 3293: 3362, 3294: 3363, 3295: 3364, 3296: 3365, 3297: 3366, 3298: 3367, 3299: 3368, 3300: 3369, 3301: 3370, 3302: 3371, 3303: 3372, 3304: 3373, 3305: 3374, 3306: 3375, 3307: 3376, 3308: 3377, 3309: 3378, 3310: 3379, 3311: 3380, 3312: 3381, 3313: 3382, 3314: 3383, 3315: 3384, 3316: 3385, 3317: 3386, 3318: 3387, 3319: 3388, 3320: 3389, 3321: 3390, 3322: 3391, 3323: 3392, 3324: 3393, 3325: 3394, 3326: 3395, 3327: 3396, 3328: 3397, 3329: 3398, 3330: 3399, 3331: 3400, 3332: 3401, 3333: 3402, 3334: 3403, 3335: 3404, 3336: 3405, 3337: 3406, 3338: 3407, 3339: 3408, 3340: 3409, 3341: 3410, 3342: 3411, 3343: 3412, 3344: 3413, 3345: 3414, 3346: 3415, 3347: 3416, 3348: 3417, 3349: 3418, 3350: 3419, 3351: 3420, 3352: 3421, 3353: 3422, 3354: 3423, 3355: 3424, 3356: 3425, 3357: 3426, 3358: 3427, 3359: 3428, 3360: 3429, 3361: 3430, 3362: 3431, 3363: 3432, 3364: 3433, 3365: 3434, 3366: 3435, 3367: 3436, 3368: 3437, 3369: 3438, 3370: 3439, 3371: 3440, 3372: 3441, 3373: 3442, 3374: 3443, 3375: 3444, 3376: 3445, 3377: 3446, 3378: 3447, 3379: 3448, 3380: 3449, 3381: 3450, 3382: 3451, 3383: 3452, 3384: 3453, 3385: 3454, 3386: 3455, 3387: 3456, 3388: 3457, 3389: 3458, 3390: 3459, 3391: 3460, 3392: 3461, 3393: 3462, 3394: 3463, 3395: 3464, 3396: 3465, 3397: 3466, 3398: 3467, 3399: 3468, 3400: 3469, 3401: 3470, 3402: 3471, 3403: 3472, 3404: 3473, 3405: 3474, 3406: 3475, 3407: 3476, 3408: 3477, 3409: 3478, 3410: 3479, 3411: 3480, 3412: 3481, 3413: 3482, 3414: 3483, 3415: 3484, 3416: 3485, 3417: 3486, 3418: 3487, 3419: 3488, 3420: 3489, 3421: 3490, 3422: 3491, 3423: 3492, 3424: 3493, 3425: 3494, 3426: 3495, 3427: 3496, 3428: 3497, 3429: 3498, 3430: 3499, 3431: 3500, 3432: 3501, 3433: 3502, 3434: 3503, 3435: 3504, 3436: 3505, 3437: 3506, 3438: 3507, 3439: 3508, 3440: 3509, 3441: 3510, 3442: 3511, 3443: 3512, 3444: 3513, 3445: 3514, 3446: 3515, 3447: 3516, 3448: 3517, 3449: 3518, 3450: 3519, 3451: 3520, 3452: 3521, 3453: 3522, 3454: 3523, 3455: 3524, 3456: 3525, 3457: 3526, 3458: 3527, 3459: 3528, 3460: 3529, 3461: 3530, 3462: 3531, 3463: 3532, 3464: 3533, 3465: 3534, 3466: 3535, 3467: 3536, 3468: 3537, 3469: 3538, 3470: 3539, 3471: 3540, 3472: 3541, 3473: 3542, 3474: 3543, 3475: 3544, 3476: 3545, 3477: 3546, 3478: 3547, 3479: 3548, 3480: 3549, 3481: 3550, 3482: 3551, 3483: 3552, 3484: 3553, 3485: 3554, 3486: 3555, 3487: 3556, 3488: 3557, 3489: 3558, 3490: 3559, 3491: 3560, 3492: 3561, 3493: 3562, 3494: 3563, 3495: 3564, 3496: 3565, 3497: 3566, 3498: 3567, 3499: 3568, 3500: 3569, 3501: 3570, 3502: 3571, 3503: 3572, 3504: 3573, 3505: 3574, 3506: 3575, 3507: 3576, 3508: 3577, 3509: 3578, 3510: 3579, 3511: 3580, 3512: 3581, 3513: 3582, 3514: 3583, 3515: 3584, 3516: 3585, 3517: 3586, 3518: 3587, 3519: 3588, 3520: 3589, 3521: 3590, 3522: 3591, 3523: 3592, 3524: 3593, 3525: 3594, 3526: 3595, 3527: 3596, 3528: 3597, 3529: 3598, 3530: 3599, 3531: 3600, 3532: 3601, 3533: 3602, 3534: 3603, 3535: 3604, 3536: 3605, 3537: 3606, 3538: 3607, 3539: 3608, 3540: 3609, 3541: 3610, 3542: 3611, 3543: 3612, 3544: 3613, 3545: 3614, 3546: 3615, 3547: 3616, 3548: 3617, 3549: 3618, 3550: 3619, 3551: 3620, 3552: 3621, 3553: 3622, 3554: 3623, 3555: 3624, 3556: 3625, 3557: 3626, 3558: 3627, 3559: 3628, 3560: 3629, 3561: 3630, 3562: 3631, 3563: 3632, 3564: 3633, 3565: 3634, 3566: 3635, 3567: 3636, 3568: 3637, 3569: 3638, 3570: 3639, 3571: 3640, 3572: 3641, 3573: 3642, 3574: 3643, 3575: 3644, 3576: 3645, 3577: 3646, 3578: 3647, 3579: 3648, 3580: 3649, 3581: 3650, 3582: 3651, 3583: 3652, 3584: 3653, 3585: 3654, 3586: 3655, 3587: 3656, 3588: 3657, 3589: 3658, 3590: 3659, 3591: 3660, 3592: 3661, 3593: 3662, 3594: 3663, 3595: 3664, 3596: 3665, 3597: 3666, 3598: 3667, 3599: 3668, 3600: 3669, 3601: 3670, 3602: 3671, 3603: 3672, 3604: 3673, 3605: 3674, 3606: 3675, 3607: 3676, 3608: 3677, 3609: 3678, 3610: 3679, 3611: 3680, 3612: 3681, 3613: 3682, 3614: 3683, 3615: 3684, 3616: 3685, 3617: 3686, 3618: 3687, 3619: 3688, 3620: 3689, 3621: 3690, 3622: 3691, 3623: 3692, 3624: 3693, 3625: 3694, 3626: 3695, 3627: 3696, 3628: 3697, 3629: 3698, 3630: 3699, 3631: 3700, 3632: 3701, 3633: 3702, 3634: 3703, 3635: 3704, 3636: 3705, 3637: 3706, 3638: 3707, 3639: 3708, 3640: 3709, 3641: 3710, 3642: 3711, 3643: 3712, 3644: 3713, 3645: 3714, 3646: 3715, 3647: 3716, 3648: 3717, 3649: 3718, 3650: 3719, 3651: 3720, 3652: 3721, 3653: 3722, 3654: 3723, 3655: 3724, 3656: 3725, 3657: 3726, 3658: 3727, 3659: 3728, 3660: 3729, 3661: 3730, 3662: 3731, 3663: 3732, 3664: 3733, 3665: 3734, 3666: 3735, 3667: 3736, 3668: 3737, 3669: 3738, 3670: 3739, 3671: 3740, 3672: 3741, 3673: 3742, 3674: 3743, 3675: 3744, 3676: 3745, 3677: 3746, 3678: 3747, 3679: 3748, 3680: 3749, 3681: 3750, 3682: 3751, 3683: 3752, 3684: 3753, 3685: 3754, 3686: 3755, 3687: 3756, 3688: 3757, 3689: 3758, 3690: 3759, 3691: 3760, 3692: 3761, 3693: 3762, 3694: 3763, 3695: 3764, 3696: 3765, 3697: 3766, 3698: 3767, 3699: 3768, 3700: 3769, 3701: 3770, 3702: 3771, 3703: 3772, 3704: 3773, 3705: 3774, 3706: 3775, 3707: 3776, 3708: 3777, 3709: 3778, 3710: 3779, 3711: 3780, 3712: 3781, 3713: 3782, 3714: 3783, 3715: 3784, 3716: 3785, 3717: 3786, 3718: 3787, 3719: 3788, 3720: 3789, 3721: 3790, 3722: 3791, 3723: 3792, 3724: 3793, 3725: 3794, 3726: 3795, 3727: 3796, 3728: 3797, 3729: 3798, 3730: 3799, 3731: 3800, 3732: 3801, 3733: 3802, 3734: 3803, 3735: 3804, 3736: 3805, 3737: 3806, 3738: 3807, 3739: 3808, 3740: 3809, 3741: 3810, 3742: 3811, 3743: 3812, 3744: 3813, 3745: 3814, 3746: 3816, 3747: 3817, 3748: 3818, 3749: 3819, 3750: 3820, 3751: 3821, 3752: 3822, 3753: 3823, 3754: 3824, 3755: 3825, 3756: 3826, 3757: 3827, 3758: 3828, 3759: 3829, 3760: 3830, 3761: 3831, 3762: 3832, 3763: 3833, 3764: 3834, 3765: 3835, 3766: 3836, 3767: 3837, 3768: 3838, 3769: 3839, 3770: 3840, 3771: 3841, 3772: 3842, 3773: 3843, 3774: 3844, 3775: 3845, 3776: 3846, 3777: 3847, 3778: 3848, 3779: 3849, 3780: 3850, 3781: 3851, 3782: 3852, 3783: 3853, 3784: 3854, 3785: 3855, 3786: 3856, 3787: 3857, 3788: 3858, 3789: 3859, 3790: 3860, 3791: 3861, 3792: 3862, 3793: 3863, 3794: 3864, 3795: 3865, 3796: 3866, 3797: 3867, 3798: 3868, 3799: 3869, 3800: 3870, 3801: 3871, 3802: 3872, 3803: 3873, 3804: 3874, 3805: 3875, 3806: 3876, 3807: 3877, 3808: 3878, 3809: 3879, 3810: 3880, 3811: 3881, 3812: 3882, 3813: 3883, 3814: 3884, 3815: 3885, 3816: 3886, 3817: 3887, 3818: 3888, 3819: 3889, 3820: 3890, 3821: 3891, 3822: 3892, 3823: 3893, 3824: 3894, 3825: 3895, 3826: 3896, 3827: 3897, 3828: 3898, 3829: 3899, 3830: 3900, 3831: 3901, 3832: 3902, 3833: 3903, 3834: 3904, 3835: 3905, 3836: 3906, 3837: 3907, 3838: 3908, 3839: 3909, 3840: 3910, 3841: 3911, 3842: 3912, 3843: 3913, 3844: 3914, 3845: 3915, 3846: 3916, 3847: 3917, 3848: 3918, 3849: 3919, 3850: 3920, 3851: 3921, 3852: 3922, 3853: 3923, 3854: 3924, 3855: 3925, 3856: 3926, 3857: 3927, 3858: 3928, 3859: 3929, 3860: 3930, 3861: 3931, 3862: 3932, 3863: 3933, 3864: 3934, 3865: 3935, 3866: 3936, 3867: 3937, 3868: 3938, 3869: 3939, 3870: 3940, 3871: 3941, 3872: 3942, 3873: 3943, 3874: 3944, 3875: 3945, 3876: 3946, 3877: 3947, 3878: 3948, 3879: 3949, 3880: 3950, 3881: 3951, 3882: 3952}}\n" + "{'user_id': {6040: 0, 6039: 1, 6038: 2, 6037: 3, 6036: 4, 6035: 5, 6034: 6, 6033: 7, 6032: 8, 6031: 9, 6030: 10, 6029: 11, 6028: 12, 6027: 13, 6026: 14, 6025: 15, 6024: 16, 6023: 17, 6022: 18, 6021: 19, 6020: 20, 6019: 21, 6018: 22, 6017: 23, 6016: 24, 6015: 25, 6014: 26, 6013: 27, 6012: 28, 6011: 29, 6010: 30, 6009: 31, 6007: 32, 6008: 33, 6006: 34, 6005: 35, 6004: 36, 6003: 37, 6002: 38, 6001: 39, 6000: 40, 5999: 41, 5998: 42, 5997: 43, 5996: 44, 5995: 45, 5994: 46, 5993: 47, 5992: 48, 5991: 49, 5990: 50, 5989: 51, 5988: 52, 5987: 53, 5986: 54, 5984: 55, 5983: 56, 5982: 57, 5981: 58, 5979: 59, 5980: 60, 5978: 61, 5977: 62, 5976: 63, 5975: 64, 5974: 65, 5973: 66, 5972: 67, 5971: 68, 5970: 69, 5969: 70, 5968: 71, 5967: 72, 5966: 73, 5965: 74, 5964: 75, 5963: 76, 5962: 77, 5961: 78, 5960: 79, 5959: 80, 5958: 81, 5957: 82, 5956: 83, 5955: 84, 5954: 85, 5953: 86, 5952: 87, 5951: 88, 5950: 89, 5948: 90, 5947: 91, 5946: 92, 5945: 93, 5944: 94, 5943: 95, 5942: 96, 5941: 97, 5940: 98, 5939: 99, 5938: 100, 5937: 101, 5949: 102, 5936: 103, 5935: 104, 5934: 105, 5933: 106, 5932: 107, 5931: 108, 5930: 109, 5929: 110, 5928: 111, 5927: 112, 5926: 113, 5925: 114, 5924: 115, 5923: 116, 5922: 117, 5921: 118, 5920: 119, 5919: 120, 5918: 121, 5917: 122, 5916: 123, 5915: 124, 5914: 125, 5913: 126, 5912: 127, 5911: 128, 5910: 129, 5909: 130, 5908: 131, 5907: 132, 5906: 133, 5905: 134, 5904: 135, 5903: 136, 5902: 137, 5901: 138, 5900: 139, 5899: 140, 5898: 141, 5897: 142, 5896: 143, 5895: 144, 5894: 145, 5893: 146, 5892: 147, 5891: 148, 5890: 149, 5889: 150, 5888: 151, 5887: 152, 5886: 153, 5885: 154, 5884: 155, 5883: 156, 5881: 157, 5882: 158, 5880: 159, 5879: 160, 5878: 161, 5877: 162, 5876: 163, 5875: 164, 5874: 165, 5873: 166, 5872: 167, 5871: 168, 5870: 169, 5869: 170, 5868: 171, 5867: 172, 5866: 173, 5865: 174, 5864: 175, 5863: 176, 5862: 177, 5861: 178, 5860: 179, 5859: 180, 5858: 181, 5857: 182, 5856: 183, 5855: 184, 5854: 185, 5853: 186, 5852: 187, 5851: 188, 5850: 189, 5849: 190, 5848: 191, 5847: 192, 5846: 193, 5845: 194, 5844: 195, 5843: 196, 5842: 197, 5841: 198, 5840: 199, 5839: 200, 5838: 201, 5837: 202, 5836: 203, 5835: 204, 5834: 205, 5833: 206, 5832: 207, 5831: 208, 5830: 209, 5829: 210, 5828: 211, 5827: 212, 5826: 213, 5825: 214, 5824: 215, 5823: 216, 5822: 217, 5821: 218, 5820: 219, 5819: 220, 5818: 221, 5817: 222, 5816: 223, 5815: 224, 5814: 225, 5813: 226, 5812: 227, 5811: 228, 5810: 229, 5809: 230, 5808: 231, 5807: 232, 5806: 233, 5805: 234, 5804: 235, 5803: 236, 5802: 237, 5801: 238, 5800: 239, 5799: 240, 5798: 241, 5797: 242, 5796: 243, 5795: 244, 5794: 245, 5793: 246, 5792: 247, 5791: 248, 5790: 249, 5789: 250, 5788: 251, 5787: 252, 5786: 253, 5785: 254, 5784: 255, 5783: 256, 5782: 257, 5781: 258, 5780: 259, 5779: 260, 5778: 261, 5777: 262, 5776: 263, 5775: 264, 5774: 265, 5773: 266, 5772: 267, 5771: 268, 5770: 269, 5769: 270, 5768: 271, 5767: 272, 5766: 273, 5765: 274, 5764: 275, 5763: 276, 5762: 277, 5761: 278, 5760: 279, 5759: 280, 5758: 281, 5757: 282, 5756: 283, 5755: 284, 5754: 285, 5753: 286, 5752: 287, 5751: 288, 5750: 289, 5749: 290, 5748: 291, 5747: 292, 5746: 293, 5745: 294, 5744: 295, 5743: 296, 5742: 297, 5741: 298, 5740: 299, 5739: 300, 5738: 301, 5737: 302, 5736: 303, 5735: 304, 5734: 305, 5733: 306, 5732: 307, 5731: 308, 5730: 309, 5729: 310, 5728: 311, 5727: 312, 5726: 313, 5725: 314, 5724: 315, 5723: 316, 5722: 317, 5721: 318, 5720: 319, 5719: 320, 5718: 321, 5717: 322, 5716: 323, 5715: 324, 5714: 325, 5713: 326, 5712: 327, 5711: 328, 5710: 329, 5709: 330, 5708: 331, 5707: 332, 5706: 333, 5705: 334, 5704: 335, 5703: 336, 5702: 337, 5701: 338, 5700: 339, 5699: 340, 5698: 341, 5697: 342, 5696: 343, 5695: 344, 5694: 345, 5693: 346, 5692: 347, 5691: 348, 5689: 349, 5690: 350, 5688: 351, 5687: 352, 5686: 353, 5685: 354, 5684: 355, 5683: 356, 5682: 357, 5681: 358, 5680: 359, 5679: 360, 5678: 361, 5677: 362, 5676: 363, 5675: 364, 5674: 365, 5673: 366, 5672: 367, 5671: 368, 5670: 369, 5669: 370, 5668: 371, 5667: 372, 5666: 373, 5665: 374, 5664: 375, 5663: 376, 5662: 377, 5661: 378, 5660: 379, 5659: 380, 5658: 381, 5657: 382, 5656: 383, 5655: 384, 5654: 385, 5653: 386, 5652: 387, 5651: 388, 5650: 389, 5649: 390, 5648: 391, 5647: 392, 5646: 393, 5645: 394, 5644: 395, 5643: 396, 5642: 397, 5641: 398, 5640: 399, 5639: 400, 5638: 401, 5637: 402, 5636: 403, 5635: 404, 5634: 405, 5633: 406, 5632: 407, 5631: 408, 5630: 409, 5629: 410, 5628: 411, 5627: 412, 5626: 413, 5625: 414, 5624: 415, 5623: 416, 5622: 417, 5621: 418, 5620: 419, 5619: 420, 5618: 421, 5617: 422, 5616: 423, 5615: 424, 5614: 425, 5613: 426, 5612: 427, 5611: 428, 5610: 429, 5609: 430, 5608: 431, 5607: 432, 5606: 433, 5605: 434, 5604: 435, 5603: 436, 5602: 437, 5601: 438, 5600: 439, 5599: 440, 5598: 441, 5597: 442, 5596: 443, 5595: 444, 5594: 445, 5593: 446, 5592: 447, 5591: 448, 5590: 449, 5589: 450, 5588: 451, 5587: 452, 5586: 453, 5585: 454, 5584: 455, 5583: 456, 5582: 457, 5581: 458, 5580: 459, 5578: 460, 5579: 461, 5577: 462, 5576: 463, 5575: 464, 5574: 465, 5573: 466, 5572: 467, 5571: 468, 5570: 469, 5569: 470, 5568: 471, 5567: 472, 5566: 473, 5565: 474, 5564: 475, 5563: 476, 5562: 477, 5561: 478, 5560: 479, 5559: 480, 5558: 481, 5557: 482, 5556: 483, 5555: 484, 5554: 485, 5553: 486, 5552: 487, 5551: 488, 5550: 489, 5549: 490, 5548: 491, 5547: 492, 5546: 493, 5545: 494, 5544: 495, 5543: 496, 5542: 497, 5541: 498, 5540: 499, 5539: 500, 5538: 501, 5537: 502, 5536: 503, 5535: 504, 5534: 505, 5533: 506, 5532: 507, 5531: 508, 5530: 509, 5529: 510, 5528: 511, 5527: 512, 5526: 513, 5525: 514, 5524: 515, 5523: 516, 5522: 517, 5521: 518, 5520: 519, 5519: 520, 5518: 521, 5517: 522, 5516: 523, 5515: 524, 5514: 525, 5513: 526, 5512: 527, 5511: 528, 5510: 529, 5509: 530, 5508: 531, 5507: 532, 5506: 533, 5505: 534, 5504: 535, 5503: 536, 5502: 537, 5501: 538, 5500: 539, 5499: 540, 5498: 541, 5497: 542, 5496: 543, 5495: 544, 5494: 545, 5493: 546, 5491: 547, 5490: 548, 5492: 549, 5489: 550, 5488: 551, 5487: 552, 5486: 553, 5485: 554, 5484: 555, 5483: 556, 5482: 557, 5481: 558, 5480: 559, 5479: 560, 5478: 561, 5477: 562, 5476: 563, 5474: 564, 5475: 565, 5473: 566, 5472: 567, 5471: 568, 5470: 569, 5469: 570, 5468: 571, 5466: 572, 5467: 573, 5465: 574, 5464: 575, 5463: 576, 5462: 577, 5461: 578, 5460: 579, 5459: 580, 5458: 581, 5457: 582, 5456: 583, 5455: 584, 5454: 585, 5453: 586, 5452: 587, 5451: 588, 5450: 589, 5449: 590, 5448: 591, 5447: 592, 5446: 593, 5445: 594, 5444: 595, 5443: 596, 5442: 597, 5441: 598, 5440: 599, 5439: 600, 5438: 601, 5437: 602, 5436: 603, 5435: 604, 5434: 605, 5433: 606, 5432: 607, 5431: 608, 5430: 609, 5429: 610, 5428: 611, 5427: 612, 5426: 613, 5425: 614, 5424: 615, 5423: 616, 5422: 617, 5421: 618, 5420: 619, 5419: 620, 5418: 621, 5417: 622, 5416: 623, 5415: 624, 5414: 625, 5413: 626, 5412: 627, 5411: 628, 5410: 629, 5409: 630, 5408: 631, 5407: 632, 5406: 633, 5405: 634, 5404: 635, 5403: 636, 5402: 637, 5401: 638, 5400: 639, 5399: 640, 5398: 641, 5397: 642, 5396: 643, 5395: 644, 5394: 645, 5393: 646, 5392: 647, 5391: 648, 5390: 649, 5389: 650, 5388: 651, 5387: 652, 5386: 653, 5385: 654, 5384: 655, 5383: 656, 5382: 657, 5381: 658, 5380: 659, 5379: 660, 5378: 661, 5377: 662, 5376: 663, 5375: 664, 5374: 665, 5373: 666, 5372: 667, 5371: 668, 5370: 669, 5369: 670, 5368: 671, 5366: 672, 5367: 673, 5365: 674, 5364: 675, 5363: 676, 5362: 677, 5361: 678, 5360: 679, 5359: 680, 5358: 681, 5357: 682, 5355: 683, 5356: 684, 5354: 685, 5353: 686, 5352: 687, 5985: 688, 5351: 689, 5350: 690, 5349: 691, 5348: 692, 5347: 693, 5346: 694, 5345: 695, 5344: 696, 5343: 697, 5342: 698, 5341: 699, 5340: 700, 5339: 701, 5338: 702, 5337: 703, 5336: 704, 5335: 705, 5334: 706, 5333: 707, 5332: 708, 5331: 709, 5330: 710, 5329: 711, 5328: 712, 5327: 713, 5326: 714, 5325: 715, 5324: 716, 5323: 717, 5322: 718, 5321: 719, 5320: 720, 5319: 721, 5318: 722, 5317: 723, 5316: 724, 5315: 725, 5314: 726, 5313: 727, 5312: 728, 5311: 729, 5310: 730, 5309: 731, 5308: 732, 5307: 733, 5306: 734, 5305: 735, 5304: 736, 5303: 737, 5302: 738, 5301: 739, 5300: 740, 5299: 741, 5298: 742, 5297: 743, 5296: 744, 5295: 745, 5294: 746, 5293: 747, 5292: 748, 5291: 749, 5290: 750, 5289: 751, 5288: 752, 5287: 753, 5286: 754, 5285: 755, 5284: 756, 5283: 757, 5282: 758, 5281: 759, 5280: 760, 5279: 761, 5278: 762, 5277: 763, 5276: 764, 5275: 765, 5274: 766, 5273: 767, 5272: 768, 5271: 769, 5270: 770, 5269: 771, 5268: 772, 5267: 773, 5266: 774, 5265: 775, 5264: 776, 5263: 777, 5262: 778, 5261: 779, 5260: 780, 5259: 781, 5258: 782, 5257: 783, 5256: 784, 5255: 785, 5254: 786, 5253: 787, 5252: 788, 5251: 789, 5250: 790, 5249: 791, 5248: 792, 5247: 793, 5246: 794, 5245: 795, 5244: 796, 5243: 797, 5242: 798, 5241: 799, 5240: 800, 5239: 801, 5238: 802, 5237: 803, 5236: 804, 5235: 805, 5234: 806, 5233: 807, 5232: 808, 5231: 809, 5230: 810, 5229: 811, 5228: 812, 5227: 813, 5225: 814, 5224: 815, 5223: 816, 5222: 817, 5221: 818, 5220: 819, 5219: 820, 5218: 821, 5217: 822, 5216: 823, 5215: 824, 5214: 825, 5213: 826, 5226: 827, 5212: 828, 5211: 829, 5210: 830, 5209: 831, 5208: 832, 5207: 833, 5206: 834, 5205: 835, 5204: 836, 5203: 837, 5202: 838, 5201: 839, 5200: 840, 5199: 841, 5198: 842, 5197: 843, 5196: 844, 5195: 845, 5194: 846, 5193: 847, 5192: 848, 5191: 849, 5190: 850, 5189: 851, 5188: 852, 5187: 853, 5186: 854, 5185: 855, 5184: 856, 5183: 857, 5182: 858, 5181: 859, 5180: 860, 5179: 861, 5178: 862, 5177: 863, 5176: 864, 5175: 865, 5174: 866, 5173: 867, 5171: 868, 5170: 869, 5169: 870, 5168: 871, 5167: 872, 5165: 873, 5166: 874, 5164: 875, 5163: 876, 5162: 877, 5161: 878, 5160: 879, 5159: 880, 5158: 881, 5156: 882, 5157: 883, 5155: 884, 5154: 885, 5153: 886, 5152: 887, 5151: 888, 5150: 889, 5149: 890, 5148: 891, 5147: 892, 5146: 893, 5145: 894, 5144: 895, 5143: 896, 5142: 897, 5141: 898, 5140: 899, 5139: 900, 5138: 901, 5137: 902, 5136: 903, 5135: 904, 5134: 905, 5133: 906, 5132: 907, 5131: 908, 5130: 909, 5129: 910, 5128: 911, 5127: 912, 5126: 913, 5125: 914, 5124: 915, 5123: 916, 5122: 917, 5121: 918, 5120: 919, 5119: 920, 5118: 921, 5117: 922, 5116: 923, 5115: 924, 5114: 925, 5113: 926, 5112: 927, 5111: 928, 5110: 929, 5109: 930, 5108: 931, 5107: 932, 5106: 933, 5105: 934, 5104: 935, 5103: 936, 5102: 937, 5100: 938, 5101: 939, 5099: 940, 5098: 941, 5097: 942, 5096: 943, 5095: 944, 5094: 945, 5093: 946, 5092: 947, 5091: 948, 5089: 949, 5090: 950, 5088: 951, 5087: 952, 5086: 953, 5085: 954, 5084: 955, 5083: 956, 5082: 957, 5081: 958, 5080: 959, 5079: 960, 5078: 961, 5077: 962, 5076: 963, 5075: 964, 5074: 965, 5073: 966, 5072: 967, 5071: 968, 5070: 969, 5068: 970, 5067: 971, 5066: 972, 5065: 973, 5064: 974, 5063: 975, 5062: 976, 5061: 977, 5060: 978, 5058: 979, 5059: 980, 5057: 981, 5056: 982, 5055: 983, 5054: 984, 5053: 985, 5052: 986, 5051: 987, 5050: 988, 5049: 989, 5048: 990, 5047: 991, 5046: 992, 5045: 993, 5044: 994, 5043: 995, 5042: 996, 5041: 997, 5040: 998, 5039: 999, 5038: 1000, 5037: 1001, 5036: 1002, 5035: 1003, 5034: 1004, 5033: 1005, 5032: 1006, 5031: 1007, 5030: 1008, 5029: 1009, 5028: 1010, 5027: 1011, 5026: 1012, 5025: 1013, 5069: 1014, 5024: 1015, 5023: 1016, 5022: 1017, 5021: 1018, 5020: 1019, 5019: 1020, 5018: 1021, 5017: 1022, 5016: 1023, 5015: 1024, 5013: 1025, 5014: 1026, 5012: 1027, 5011: 1028, 5010: 1029, 5008: 1030, 5009: 1031, 5007: 1032, 5006: 1033, 5005: 1034, 5004: 1035, 5003: 1036, 5002: 1037, 5001: 1038, 5000: 1039, 4999: 1040, 4998: 1041, 4997: 1042, 4996: 1043, 4995: 1044, 4993: 1045, 4994: 1046, 4992: 1047, 4991: 1048, 4990: 1049, 4989: 1050, 4988: 1051, 4986: 1052, 4987: 1053, 4985: 1054, 4984: 1055, 4983: 1056, 4982: 1057, 4981: 1058, 4980: 1059, 4979: 1060, 4978: 1061, 4977: 1062, 4976: 1063, 4975: 1064, 4974: 1065, 4973: 1066, 4972: 1067, 4971: 1068, 4970: 1069, 4968: 1070, 4969: 1071, 4967: 1072, 4966: 1073, 4965: 1074, 4964: 1075, 4963: 1076, 4962: 1077, 4961: 1078, 4960: 1079, 4959: 1080, 4958: 1081, 4957: 1082, 4956: 1083, 4955: 1084, 4954: 1085, 4953: 1086, 4952: 1087, 4951: 1088, 4950: 1089, 4949: 1090, 4948: 1091, 4947: 1092, 4946: 1093, 4945: 1094, 4944: 1095, 4943: 1096, 4942: 1097, 4941: 1098, 4940: 1099, 4939: 1100, 4938: 1101, 4937: 1102, 4936: 1103, 4935: 1104, 4934: 1105, 4933: 1106, 4932: 1107, 4931: 1108, 4930: 1109, 4929: 1110, 4928: 1111, 4927: 1112, 4926: 1113, 4925: 1114, 4924: 1115, 4923: 1116, 4922: 1117, 4921: 1118, 4920: 1119, 4919: 1120, 4918: 1121, 4917: 1122, 4916: 1123, 4915: 1124, 4914: 1125, 4913: 1126, 4912: 1127, 4911: 1128, 4910: 1129, 4909: 1130, 4908: 1131, 4907: 1132, 4906: 1133, 4905: 1134, 4904: 1135, 4903: 1136, 4902: 1137, 4901: 1138, 4900: 1139, 4899: 1140, 4898: 1141, 4897: 1142, 5172: 1143, 4895: 1144, 4894: 1145, 4893: 1146, 4892: 1147, 4891: 1148, 4890: 1149, 4889: 1150, 4888: 1151, 4887: 1152, 4886: 1153, 4885: 1154, 4884: 1155, 4883: 1156, 4882: 1157, 4881: 1158, 4880: 1159, 4879: 1160, 4878: 1161, 4877: 1162, 4876: 1163, 4875: 1164, 4874: 1165, 4873: 1166, 4871: 1167, 4872: 1168, 4870: 1169, 4869: 1170, 4868: 1171, 4867: 1172, 4866: 1173, 4865: 1174, 4864: 1175, 4863: 1176, 4862: 1177, 4861: 1178, 4860: 1179, 4859: 1180, 4858: 1181, 4857: 1182, 4856: 1183, 4855: 1184, 4854: 1185, 4853: 1186, 4852: 1187, 4851: 1188, 4849: 1189, 4848: 1190, 4850: 1191, 4847: 1192, 4846: 1193, 4845: 1194, 4844: 1195, 4843: 1196, 4842: 1197, 4841: 1198, 4840: 1199, 4839: 1200, 4838: 1201, 4837: 1202, 4836: 1203, 4835: 1204, 4834: 1205, 4833: 1206, 4832: 1207, 4831: 1208, 4830: 1209, 4829: 1210, 4828: 1211, 4827: 1212, 4826: 1213, 4825: 1214, 4824: 1215, 4823: 1216, 4822: 1217, 4821: 1218, 4820: 1219, 4819: 1220, 4818: 1221, 4817: 1222, 4816: 1223, 4815: 1224, 4814: 1225, 4813: 1226, 4812: 1227, 4811: 1228, 4810: 1229, 4809: 1230, 4808: 1231, 4807: 1232, 4806: 1233, 4805: 1234, 4804: 1235, 4803: 1236, 4802: 1237, 4801: 1238, 4800: 1239, 4799: 1240, 4798: 1241, 4797: 1242, 4796: 1243, 4795: 1244, 4794: 1245, 4793: 1246, 4792: 1247, 4791: 1248, 4790: 1249, 4788: 1250, 4789: 1251, 4787: 1252, 4786: 1253, 4785: 1254, 4784: 1255, 4783: 1256, 4782: 1257, 4781: 1258, 4780: 1259, 4779: 1260, 4778: 1261, 4777: 1262, 4776: 1263, 4775: 1264, 4774: 1265, 4773: 1266, 4772: 1267, 4771: 1268, 4770: 1269, 4769: 1270, 4768: 1271, 4767: 1272, 4766: 1273, 4765: 1274, 4764: 1275, 4763: 1276, 4762: 1277, 4761: 1278, 4760: 1279, 4759: 1280, 4758: 1281, 4757: 1282, 4756: 1283, 4755: 1284, 4754: 1285, 4753: 1286, 4752: 1287, 4751: 1288, 4750: 1289, 4749: 1290, 4748: 1291, 4747: 1292, 4746: 1293, 4745: 1294, 4744: 1295, 4743: 1296, 4742: 1297, 4741: 1298, 4740: 1299, 4739: 1300, 4738: 1301, 4737: 1302, 4736: 1303, 4735: 1304, 4734: 1305, 4733: 1306, 4732: 1307, 4731: 1308, 4730: 1309, 4729: 1310, 4728: 1311, 4727: 1312, 4726: 1313, 4725: 1314, 4724: 1315, 4723: 1316, 4722: 1317, 4721: 1318, 4720: 1319, 4719: 1320, 4718: 1321, 4716: 1322, 4715: 1323, 4714: 1324, 4713: 1325, 4712: 1326, 4711: 1327, 4717: 1328, 4710: 1329, 4709: 1330, 4708: 1331, 4707: 1332, 4706: 1333, 4705: 1334, 4704: 1335, 4703: 1336, 4702: 1337, 4701: 1338, 4700: 1339, 4699: 1340, 4698: 1341, 4697: 1342, 4696: 1343, 4695: 1344, 4694: 1345, 4693: 1346, 4692: 1347, 4691: 1348, 4690: 1349, 4689: 1350, 4688: 1351, 4687: 1352, 4686: 1353, 4685: 1354, 4684: 1355, 4683: 1356, 4682: 1357, 4681: 1358, 4680: 1359, 4679: 1360, 4678: 1361, 4677: 1362, 4676: 1363, 4675: 1364, 4674: 1365, 4673: 1366, 4672: 1367, 4671: 1368, 4670: 1369, 4669: 1370, 4668: 1371, 4896: 1372, 4667: 1373, 4666: 1374, 4665: 1375, 4664: 1376, 4663: 1377, 4662: 1378, 4661: 1379, 4660: 1380, 4659: 1381, 4658: 1382, 4657: 1383, 4656: 1384, 4655: 1385, 4654: 1386, 4653: 1387, 4652: 1388, 4651: 1389, 4650: 1390, 4649: 1391, 4648: 1392, 4647: 1393, 4646: 1394, 4645: 1395, 4644: 1396, 4643: 1397, 4642: 1398, 4641: 1399, 4640: 1400, 4639: 1401, 4638: 1402, 4637: 1403, 4636: 1404, 4635: 1405, 4634: 1406, 4633: 1407, 4632: 1408, 4631: 1409, 4630: 1410, 4629: 1411, 4628: 1412, 4627: 1413, 4626: 1414, 4625: 1415, 4624: 1416, 4622: 1417, 4621: 1418, 4620: 1419, 4619: 1420, 4618: 1421, 4617: 1422, 4616: 1423, 4615: 1424, 4614: 1425, 4613: 1426, 4612: 1427, 4611: 1428, 4610: 1429, 4609: 1430, 4608: 1431, 4607: 1432, 4606: 1433, 4605: 1434, 4604: 1435, 4603: 1436, 4602: 1437, 4601: 1438, 4600: 1439, 4599: 1440, 4598: 1441, 4623: 1442, 4597: 1443, 4596: 1444, 4595: 1445, 4594: 1446, 4593: 1447, 4592: 1448, 4591: 1449, 4590: 1450, 4589: 1451, 4588: 1452, 4587: 1453, 4586: 1454, 4585: 1455, 4584: 1456, 4583: 1457, 4582: 1458, 4581: 1459, 4580: 1460, 4579: 1461, 4578: 1462, 4577: 1463, 4575: 1464, 4574: 1465, 4573: 1466, 4572: 1467, 4576: 1468, 4571: 1469, 4570: 1470, 4569: 1471, 4568: 1472, 4567: 1473, 4566: 1474, 4565: 1475, 4564: 1476, 4563: 1477, 4562: 1478, 4561: 1479, 4560: 1480, 4559: 1481, 4558: 1482, 4557: 1483, 4556: 1484, 4555: 1485, 4554: 1486, 4553: 1487, 4552: 1488, 4551: 1489, 4550: 1490, 4549: 1491, 4548: 1492, 4547: 1493, 4546: 1494, 4545: 1495, 4544: 1496, 4543: 1497, 4542: 1498, 4541: 1499, 4540: 1500, 4539: 1501, 4538: 1502, 4537: 1503, 4536: 1504, 4535: 1505, 4534: 1506, 4533: 1507, 4532: 1508, 4531: 1509, 4530: 1510, 4529: 1511, 4528: 1512, 4527: 1513, 4526: 1514, 4525: 1515, 4524: 1516, 4523: 1517, 4522: 1518, 4521: 1519, 4520: 1520, 4519: 1521, 4518: 1522, 4517: 1523, 4516: 1524, 4513: 1525, 4512: 1526, 4511: 1527, 4510: 1528, 4509: 1529, 4508: 1530, 4507: 1531, 4506: 1532, 4505: 1533, 4503: 1534, 4502: 1535, 4501: 1536, 4515: 1537, 4500: 1538, 4499: 1539, 4498: 1540, 4497: 1541, 4496: 1542, 4495: 1543, 4494: 1544, 4493: 1545, 4492: 1546, 4491: 1547, 4490: 1548, 4489: 1549, 4488: 1550, 4504: 1551, 4487: 1552, 4486: 1553, 4485: 1554, 4484: 1555, 4483: 1556, 4482: 1557, 4481: 1558, 4480: 1559, 4479: 1560, 4478: 1561, 4477: 1562, 4476: 1563, 4475: 1564, 4474: 1565, 4473: 1566, 4471: 1567, 4472: 1568, 4470: 1569, 4469: 1570, 4468: 1571, 4467: 1572, 4466: 1573, 4465: 1574, 4464: 1575, 4463: 1576, 4462: 1577, 4461: 1578, 4460: 1579, 4459: 1580, 4458: 1581, 4457: 1582, 4456: 1583, 4455: 1584, 4454: 1585, 4453: 1586, 4451: 1587, 4452: 1588, 4449: 1589, 4450: 1590, 4448: 1591, 4447: 1592, 4446: 1593, 4445: 1594, 4444: 1595, 4443: 1596, 4442: 1597, 4441: 1598, 4440: 1599, 4439: 1600, 4438: 1601, 4437: 1602, 4436: 1603, 4435: 1604, 4434: 1605, 4433: 1606, 4432: 1607, 4431: 1608, 4430: 1609, 4429: 1610, 4428: 1611, 4427: 1612, 4426: 1613, 4425: 1614, 4424: 1615, 4423: 1616, 4422: 1617, 4421: 1618, 4420: 1619, 4419: 1620, 4418: 1621, 4417: 1622, 4416: 1623, 4415: 1624, 4414: 1625, 4413: 1626, 4412: 1627, 4411: 1628, 4410: 1629, 4409: 1630, 4408: 1631, 4407: 1632, 4406: 1633, 4405: 1634, 4404: 1635, 4403: 1636, 4402: 1637, 4401: 1638, 4398: 1639, 4396: 1640, 4397: 1641, 4399: 1642, 4400: 1643, 4395: 1644, 4394: 1645, 4392: 1646, 4393: 1647, 4391: 1648, 4390: 1649, 4389: 1650, 4388: 1651, 4386: 1652, 4387: 1653, 4385: 1654, 4384: 1655, 4383: 1656, 4382: 1657, 4381: 1658, 4380: 1659, 4379: 1660, 4378: 1661, 4377: 1662, 4376: 1663, 4375: 1664, 4374: 1665, 4373: 1666, 4372: 1667, 4371: 1668, 4370: 1669, 4369: 1670, 4368: 1671, 4367: 1672, 4366: 1673, 4365: 1674, 4364: 1675, 4363: 1676, 4362: 1677, 4361: 1678, 4360: 1679, 4359: 1680, 4358: 1681, 4357: 1682, 4356: 1683, 4355: 1684, 4354: 1685, 4353: 1686, 4352: 1687, 4351: 1688, 4350: 1689, 4349: 1690, 4348: 1691, 4347: 1692, 4346: 1693, 4345: 1694, 4344: 1695, 4343: 1696, 4342: 1697, 4341: 1698, 4340: 1699, 4339: 1700, 4338: 1701, 4337: 1702, 4336: 1703, 4335: 1704, 4334: 1705, 4333: 1706, 4332: 1707, 4331: 1708, 4330: 1709, 4329: 1710, 4328: 1711, 4327: 1712, 4326: 1713, 4325: 1714, 4324: 1715, 4323: 1716, 4322: 1717, 4321: 1718, 4320: 1719, 4319: 1720, 4317: 1721, 4316: 1722, 4315: 1723, 4314: 1724, 4313: 1725, 4311: 1726, 4312: 1727, 4310: 1728, 4309: 1729, 4308: 1730, 4307: 1731, 4306: 1732, 4305: 1733, 4304: 1734, 4303: 1735, 4514: 1736, 4302: 1737, 4301: 1738, 4300: 1739, 4299: 1740, 4298: 1741, 4297: 1742, 4296: 1743, 4295: 1744, 4293: 1745, 4294: 1746, 4292: 1747, 4291: 1748, 4290: 1749, 4289: 1750, 4288: 1751, 4287: 1752, 4286: 1753, 4285: 1754, 4284: 1755, 4283: 1756, 4282: 1757, 4281: 1758, 4280: 1759, 4279: 1760, 4278: 1761, 4277: 1762, 4276: 1763, 4275: 1764, 4274: 1765, 4272: 1766, 4273: 1767, 4271: 1768, 4269: 1769, 4270: 1770, 4268: 1771, 4267: 1772, 4266: 1773, 4265: 1774, 4264: 1775, 4263: 1776, 4262: 1777, 4261: 1778, 4260: 1779, 4259: 1780, 4258: 1781, 4256: 1782, 4257: 1783, 4255: 1784, 4254: 1785, 4252: 1786, 4253: 1787, 4251: 1788, 4250: 1789, 4249: 1790, 4248: 1791, 4247: 1792, 4246: 1793, 4245: 1794, 4244: 1795, 4242: 1796, 4241: 1797, 4240: 1798, 4239: 1799, 4238: 1800, 4243: 1801, 4237: 1802, 4236: 1803, 4235: 1804, 4234: 1805, 4233: 1806, 4232: 1807, 4231: 1808, 4230: 1809, 4229: 1810, 4227: 1811, 4226: 1812, 4225: 1813, 4228: 1814, 4224: 1815, 4222: 1816, 4223: 1817, 4221: 1818, 4220: 1819, 4219: 1820, 4218: 1821, 4217: 1822, 4216: 1823, 4215: 1824, 4214: 1825, 4213: 1826, 4212: 1827, 4211: 1828, 4210: 1829, 4209: 1830, 4208: 1831, 4206: 1832, 4205: 1833, 4207: 1834, 4204: 1835, 4202: 1836, 4203: 1837, 4201: 1838, 4200: 1839, 4199: 1840, 4198: 1841, 4197: 1842, 4196: 1843, 4195: 1844, 4194: 1845, 4193: 1846, 4192: 1847, 4191: 1848, 4190: 1849, 4189: 1850, 4188: 1851, 4187: 1852, 4186: 1853, 4184: 1854, 4183: 1855, 4182: 1856, 4181: 1857, 4180: 1858, 4178: 1859, 4179: 1860, 4177: 1861, 4176: 1862, 4175: 1863, 4174: 1864, 4173: 1865, 4172: 1866, 4171: 1867, 4170: 1868, 4169: 1869, 4167: 1870, 4165: 1871, 4166: 1872, 4168: 1873, 4164: 1874, 4163: 1875, 4162: 1876, 4161: 1877, 4160: 1878, 4185: 1879, 4159: 1880, 4158: 1881, 4157: 1882, 4155: 1883, 4156: 1884, 4318: 1885, 4154: 1886, 4153: 1887, 4152: 1888, 4151: 1889, 4150: 1890, 4149: 1891, 4148: 1892, 4147: 1893, 4146: 1894, 4145: 1895, 4144: 1896, 4143: 1897, 4142: 1898, 4141: 1899, 4140: 1900, 4138: 1901, 4139: 1902, 4137: 1903, 4136: 1904, 4135: 1905, 4134: 1906, 4133: 1907, 4132: 1908, 4131: 1909, 4130: 1910, 4129: 1911, 4128: 1912, 4127: 1913, 4126: 1914, 4125: 1915, 4124: 1916, 4122: 1917, 4123: 1918, 4121: 1919, 4120: 1920, 4119: 1921, 4118: 1922, 4117: 1923, 4116: 1924, 4115: 1925, 4114: 1926, 4113: 1927, 4112: 1928, 4111: 1929, 4110: 1930, 4109: 1931, 4108: 1932, 4107: 1933, 4106: 1934, 4105: 1935, 4104: 1936, 4103: 1937, 4102: 1938, 4101: 1939, 4100: 1940, 4099: 1941, 4098: 1942, 4097: 1943, 4096: 1944, 4095: 1945, 4094: 1946, 4093: 1947, 4092: 1948, 4091: 1949, 4090: 1950, 4089: 1951, 4088: 1952, 4087: 1953, 4086: 1954, 4085: 1955, 4084: 1956, 4083: 1957, 4082: 1958, 4081: 1959, 4080: 1960, 4079: 1961, 4077: 1962, 4078: 1963, 4076: 1964, 4075: 1965, 4074: 1966, 4073: 1967, 4072: 1968, 4071: 1969, 4070: 1970, 4069: 1971, 4068: 1972, 4067: 1973, 4066: 1974, 4065: 1975, 4064: 1976, 4063: 1977, 4062: 1978, 4061: 1979, 4060: 1980, 4059: 1981, 4058: 1982, 4057: 1983, 4056: 1984, 4055: 1985, 4053: 1986, 4054: 1987, 4052: 1988, 4051: 1989, 4050: 1990, 4049: 1991, 4048: 1992, 4047: 1993, 4046: 1994, 4045: 1995, 4044: 1996, 4043: 1997, 4042: 1998, 4041: 1999, 4040: 2000, 4039: 2001, 4038: 2002, 4037: 2003, 4036: 2004, 4035: 2005, 4034: 2006, 4033: 2007, 4032: 2008, 4031: 2009, 4030: 2010, 4029: 2011, 4028: 2012, 4027: 2013, 4026: 2014, 4025: 2015, 4024: 2016, 4023: 2017, 4022: 2018, 4021: 2019, 4020: 2020, 4019: 2021, 4018: 2022, 4017: 2023, 4016: 2024, 4015: 2025, 4014: 2026, 4013: 2027, 4012: 2028, 4011: 2029, 4010: 2030, 4009: 2031, 4008: 2032, 4007: 2033, 4006: 2034, 4005: 2035, 4004: 2036, 4003: 2037, 4002: 2038, 4001: 2039, 4000: 2040, 3999: 2041, 3998: 2042, 3997: 2043, 3996: 2044, 3995: 2045, 3994: 2046, 3993: 2047, 3992: 2048, 3991: 2049, 3990: 2050, 3989: 2051, 3988: 2052, 3987: 2053, 3986: 2054, 3985: 2055, 3984: 2056, 3983: 2057, 3982: 2058, 3981: 2059, 3980: 2060, 3979: 2061, 3978: 2062, 3977: 2063, 3976: 2064, 3975: 2065, 3974: 2066, 3973: 2067, 3972: 2068, 3971: 2069, 3970: 2070, 3969: 2071, 3968: 2072, 3967: 2073, 3966: 2074, 3965: 2075, 3964: 2076, 3963: 2077, 3962: 2078, 3961: 2079, 3960: 2080, 3959: 2081, 3958: 2082, 3957: 2083, 3956: 2084, 3955: 2085, 3954: 2086, 3953: 2087, 3952: 2088, 3951: 2089, 3950: 2090, 3949: 2091, 3948: 2092, 3947: 2093, 3946: 2094, 3945: 2095, 3944: 2096, 3943: 2097, 3942: 2098, 3941: 2099, 3940: 2100, 3939: 2101, 3938: 2102, 3937: 2103, 3936: 2104, 3935: 2105, 3934: 2106, 3933: 2107, 3932: 2108, 3931: 2109, 3930: 2110, 3929: 2111, 3928: 2112, 3927: 2113, 3926: 2114, 3925: 2115, 3924: 2116, 3922: 2117, 3923: 2118, 3921: 2119, 3920: 2120, 3919: 2121, 3918: 2122, 3917: 2123, 3916: 2124, 3914: 2125, 3915: 2126, 3913: 2127, 3912: 2128, 3911: 2129, 3910: 2130, 3909: 2131, 3908: 2132, 3907: 2133, 3906: 2134, 3905: 2135, 3904: 2136, 3903: 2137, 3902: 2138, 3901: 2139, 3900: 2140, 3899: 2141, 3898: 2142, 3897: 2143, 3896: 2144, 3895: 2145, 3894: 2146, 3893: 2147, 3892: 2148, 3891: 2149, 3890: 2150, 3889: 2151, 3887: 2152, 3886: 2153, 3885: 2154, 3884: 2155, 3883: 2156, 3882: 2157, 3881: 2158, 3880: 2159, 3879: 2160, 3878: 2161, 3877: 2162, 3876: 2163, 3875: 2164, 3874: 2165, 3873: 2166, 3872: 2167, 3871: 2168, 3870: 2169, 3869: 2170, 3868: 2171, 3867: 2172, 3866: 2173, 3865: 2174, 3864: 2175, 3863: 2176, 3862: 2177, 3861: 2178, 3860: 2179, 3859: 2180, 3857: 2181, 3858: 2182, 3856: 2183, 3855: 2184, 3854: 2185, 3853: 2186, 3852: 2187, 3850: 2188, 3851: 2189, 3849: 2190, 3848: 2191, 3847: 2192, 3846: 2193, 3845: 2194, 3844: 2195, 3843: 2196, 3842: 2197, 3841: 2198, 3839: 2199, 3840: 2200, 3838: 2201, 3837: 2202, 3836: 2203, 3835: 2204, 3834: 2205, 3833: 2206, 3832: 2207, 3831: 2208, 3830: 2209, 3829: 2210, 3828: 2211, 3827: 2212, 3826: 2213, 3825: 2214, 3824: 2215, 3823: 2216, 3822: 2217, 3821: 2218, 3820: 2219, 3819: 2220, 3818: 2221, 3817: 2222, 3816: 2223, 3815: 2224, 3814: 2225, 3813: 2226, 3812: 2227, 3811: 2228, 3810: 2229, 3809: 2230, 3808: 2231, 3807: 2232, 3806: 2233, 3805: 2234, 3804: 2235, 3803: 2236, 3802: 2237, 3801: 2238, 3800: 2239, 3799: 2240, 3798: 2241, 3797: 2242, 3796: 2243, 3795: 2244, 3794: 2245, 3793: 2246, 3792: 2247, 3791: 2248, 3790: 2249, 3788: 2250, 3789: 2251, 3787: 2252, 3786: 2253, 3785: 2254, 3784: 2255, 3782: 2256, 3783: 2257, 3781: 2258, 3780: 2259, 3779: 2260, 3778: 2261, 3777: 2262, 3776: 2263, 3775: 2264, 3774: 2265, 3773: 2266, 3772: 2267, 3771: 2268, 3770: 2269, 3769: 2270, 3768: 2271, 3767: 2272, 3766: 2273, 3765: 2274, 3764: 2275, 3763: 2276, 3762: 2277, 3761: 2278, 3760: 2279, 3759: 2280, 3758: 2281, 3757: 2282, 3756: 2283, 3755: 2284, 3754: 2285, 3753: 2286, 3752: 2287, 3751: 2288, 3750: 2289, 3749: 2290, 3748: 2291, 3747: 2292, 3746: 2293, 3888: 2294, 3745: 2295, 3744: 2296, 3743: 2297, 3742: 2298, 3741: 2299, 3740: 2300, 3739: 2301, 3738: 2302, 3737: 2303, 3736: 2304, 3735: 2305, 3734: 2306, 3733: 2307, 3732: 2308, 3731: 2309, 3730: 2310, 3729: 2311, 3728: 2312, 3727: 2313, 3725: 2314, 3726: 2315, 3724: 2316, 3722: 2317, 3721: 2318, 3720: 2319, 3719: 2320, 3718: 2321, 3717: 2322, 3716: 2323, 3715: 2324, 3714: 2325, 3713: 2326, 3712: 2327, 3711: 2328, 3710: 2329, 3709: 2330, 3708: 2331, 3707: 2332, 3706: 2333, 3705: 2334, 3704: 2335, 3703: 2336, 3702: 2337, 3701: 2338, 3700: 2339, 3699: 2340, 3698: 2341, 3697: 2342, 3696: 2343, 3695: 2344, 3694: 2345, 3693: 2346, 3692: 2347, 3691: 2348, 3690: 2349, 3689: 2350, 3688: 2351, 3687: 2352, 3686: 2353, 3685: 2354, 3684: 2355, 3683: 2356, 3682: 2357, 3681: 2358, 3680: 2359, 3679: 2360, 3678: 2361, 3677: 2362, 3676: 2363, 3675: 2364, 3674: 2365, 3673: 2366, 3672: 2367, 3671: 2368, 3670: 2369, 3669: 2370, 3668: 2371, 3667: 2372, 3666: 2373, 3665: 2374, 3664: 2375, 3663: 2376, 3662: 2377, 3661: 2378, 3660: 2379, 3659: 2380, 3658: 2381, 3657: 2382, 3656: 2383, 3655: 2384, 3654: 2385, 3653: 2386, 3652: 2387, 3651: 2388, 3650: 2389, 3649: 2390, 3648: 2391, 3647: 2392, 3646: 2393, 3645: 2394, 3644: 2395, 3643: 2396, 3642: 2397, 3641: 2398, 3640: 2399, 3639: 2400, 3638: 2401, 3637: 2402, 3636: 2403, 3635: 2404, 3634: 2405, 3633: 2406, 3632: 2407, 3631: 2408, 3630: 2409, 3629: 2410, 3628: 2411, 3627: 2412, 3626: 2413, 3625: 2414, 3624: 2415, 3623: 2416, 3622: 2417, 3621: 2418, 3620: 2419, 3619: 2420, 3618: 2421, 3617: 2422, 3616: 2423, 3615: 2424, 3613: 2425, 3614: 2426, 3612: 2427, 3611: 2428, 3610: 2429, 3609: 2430, 3608: 2431, 3606: 2432, 3607: 2433, 3605: 2434, 3604: 2435, 3603: 2436, 3601: 2437, 3600: 2438, 3599: 2439, 3598: 2440, 3597: 2441, 3596: 2442, 3595: 2443, 3594: 2444, 3593: 2445, 3592: 2446, 3591: 2447, 3590: 2448, 3589: 2449, 3588: 2450, 3587: 2451, 3586: 2452, 3585: 2453, 3584: 2454, 3583: 2455, 3582: 2456, 3581: 2457, 3580: 2458, 3579: 2459, 3578: 2460, 3577: 2461, 3576: 2462, 3575: 2463, 3574: 2464, 3573: 2465, 3572: 2466, 3571: 2467, 3570: 2468, 3569: 2469, 3568: 2470, 3567: 2471, 3566: 2472, 3565: 2473, 3564: 2474, 3563: 2475, 3562: 2476, 3561: 2477, 3560: 2478, 3559: 2479, 3558: 2480, 3557: 2481, 3556: 2482, 3555: 2483, 3554: 2484, 3553: 2485, 3552: 2486, 3551: 2487, 3550: 2488, 3549: 2489, 3548: 2490, 3547: 2491, 3546: 2492, 3545: 2493, 3544: 2494, 3543: 2495, 3542: 2496, 3541: 2497, 3540: 2498, 3539: 2499, 3538: 2500, 3537: 2501, 3536: 2502, 3535: 2503, 3534: 2504, 3533: 2505, 3532: 2506, 3530: 2507, 3529: 2508, 3528: 2509, 3527: 2510, 3526: 2511, 3525: 2512, 3524: 2513, 3523: 2514, 3531: 2515, 3522: 2516, 3521: 2517, 3520: 2518, 3519: 2519, 3518: 2520, 3517: 2521, 3516: 2522, 3515: 2523, 3514: 2524, 3513: 2525, 3512: 2526, 3511: 2527, 3510: 2528, 3509: 2529, 3508: 2530, 3507: 2531, 3506: 2532, 3505: 2533, 3504: 2534, 3503: 2535, 3502: 2536, 3501: 2537, 3500: 2538, 3499: 2539, 3498: 2540, 3497: 2541, 3602: 2542, 3496: 2543, 3495: 2544, 3494: 2545, 3493: 2546, 3492: 2547, 3491: 2548, 3490: 2549, 3489: 2550, 3488: 2551, 3487: 2552, 3486: 2553, 3485: 2554, 3484: 2555, 3483: 2556, 3482: 2557, 3481: 2558, 3480: 2559, 3479: 2560, 3478: 2561, 3477: 2562, 3476: 2563, 3475: 2564, 3474: 2565, 3473: 2566, 3472: 2567, 3723: 2568, 3471: 2569, 3470: 2570, 3469: 2571, 3468: 2572, 3467: 2573, 3466: 2574, 3465: 2575, 3464: 2576, 3463: 2577, 3462: 2578, 3461: 2579, 3460: 2580, 3459: 2581, 3458: 2582, 3457: 2583, 3456: 2584, 3455: 2585, 3454: 2586, 3453: 2587, 3452: 2588, 3451: 2589, 3450: 2590, 3449: 2591, 3448: 2592, 3447: 2593, 3446: 2594, 3445: 2595, 3444: 2596, 3443: 2597, 3442: 2598, 3441: 2599, 3440: 2600, 3439: 2601, 3438: 2602, 3437: 2603, 3436: 2604, 3435: 2605, 3434: 2606, 3433: 2607, 3431: 2608, 3432: 2609, 3430: 2610, 3429: 2611, 3428: 2612, 3427: 2613, 3426: 2614, 3425: 2615, 3424: 2616, 3423: 2617, 3422: 2618, 3420: 2619, 3419: 2620, 3418: 2621, 3417: 2622, 3416: 2623, 3415: 2624, 3414: 2625, 3413: 2626, 3412: 2627, 3421: 2628, 3411: 2629, 3410: 2630, 3409: 2631, 3408: 2632, 3407: 2633, 3406: 2634, 3405: 2635, 3404: 2636, 3403: 2637, 3402: 2638, 3401: 2639, 3400: 2640, 3399: 2641, 3398: 2642, 3397: 2643, 3396: 2644, 3395: 2645, 3394: 2646, 3393: 2647, 3392: 2648, 3391: 2649, 3390: 2650, 3389: 2651, 3388: 2652, 3387: 2653, 3386: 2654, 3385: 2655, 3384: 2656, 3383: 2657, 3382: 2658, 3381: 2659, 3380: 2660, 3379: 2661, 3378: 2662, 3377: 2663, 3376: 2664, 3375: 2665, 3374: 2666, 3373: 2667, 3372: 2668, 3371: 2669, 3370: 2670, 3369: 2671, 3367: 2672, 3368: 2673, 3366: 2674, 3365: 2675, 3364: 2676, 3363: 2677, 3362: 2678, 3361: 2679, 3359: 2680, 3360: 2681, 3358: 2682, 3357: 2683, 3356: 2684, 3355: 2685, 3354: 2686, 3353: 2687, 3352: 2688, 3351: 2689, 3350: 2690, 3349: 2691, 3348: 2692, 3347: 2693, 3346: 2694, 3345: 2695, 3344: 2696, 3343: 2697, 3342: 2698, 3341: 2699, 3340: 2700, 3339: 2701, 3338: 2702, 3337: 2703, 3336: 2704, 3335: 2705, 3334: 2706, 3333: 2707, 3332: 2708, 3331: 2709, 3330: 2710, 3329: 2711, 3328: 2712, 3327: 2713, 3326: 2714, 3325: 2715, 3324: 2716, 3323: 2717, 3322: 2718, 3321: 2719, 3320: 2720, 3319: 2721, 3318: 2722, 3317: 2723, 3316: 2724, 3315: 2725, 3314: 2726, 3313: 2727, 3312: 2728, 3311: 2729, 3310: 2730, 3309: 2731, 3308: 2732, 3307: 2733, 3306: 2734, 3305: 2735, 3304: 2736, 3303: 2737, 3302: 2738, 3301: 2739, 3300: 2740, 3299: 2741, 3298: 2742, 3297: 2743, 3296: 2744, 3295: 2745, 3294: 2746, 3293: 2747, 3292: 2748, 3291: 2749, 3290: 2750, 3289: 2751, 3288: 2752, 3287: 2753, 3286: 2754, 3285: 2755, 3284: 2756, 3283: 2757, 3282: 2758, 3281: 2759, 3280: 2760, 3279: 2761, 3278: 2762, 3277: 2763, 3276: 2764, 3275: 2765, 3274: 2766, 3273: 2767, 3272: 2768, 3271: 2769, 3270: 2770, 3269: 2771, 3268: 2772, 3267: 2773, 3266: 2774, 3265: 2775, 3264: 2776, 3263: 2777, 3262: 2778, 3261: 2779, 3260: 2780, 3259: 2781, 3258: 2782, 3257: 2783, 3256: 2784, 3255: 2785, 3254: 2786, 3253: 2787, 3252: 2788, 3251: 2789, 3249: 2790, 3250: 2791, 3248: 2792, 3247: 2793, 3246: 2794, 3245: 2795, 3244: 2796, 3243: 2797, 3242: 2798, 3241: 2799, 3240: 2800, 3239: 2801, 3238: 2802, 3237: 2803, 3236: 2804, 3235: 2805, 3234: 2806, 3233: 2807, 3232: 2808, 3231: 2809, 3230: 2810, 3229: 2811, 3228: 2812, 3227: 2813, 3226: 2814, 3225: 2815, 3224: 2816, 3223: 2817, 3222: 2818, 3221: 2819, 3220: 2820, 3218: 2821, 3217: 2822, 3216: 2823, 3215: 2824, 3219: 2825, 3214: 2826, 3213: 2827, 3212: 2828, 3211: 2829, 3210: 2830, 3209: 2831, 3208: 2832, 3207: 2833, 3206: 2834, 3205: 2835, 3204: 2836, 3203: 2837, 3202: 2838, 3201: 2839, 3200: 2840, 3199: 2841, 3198: 2842, 3197: 2843, 3196: 2844, 3195: 2845, 3194: 2846, 3193: 2847, 3192: 2848, 3191: 2849, 3190: 2850, 3189: 2851, 3188: 2852, 3187: 2853, 3186: 2854, 3185: 2855, 3184: 2856, 3183: 2857, 3182: 2858, 3181: 2859, 3179: 2860, 3180: 2861, 3178: 2862, 3177: 2863, 3176: 2864, 3175: 2865, 3174: 2866, 3173: 2867, 3172: 2868, 3171: 2869, 3170: 2870, 3169: 2871, 3168: 2872, 3167: 2873, 3166: 2874, 3165: 2875, 3164: 2876, 3163: 2877, 3162: 2878, 3161: 2879, 3160: 2880, 3159: 2881, 3158: 2882, 3157: 2883, 3156: 2884, 3155: 2885, 3154: 2886, 3153: 2887, 3152: 2888, 3151: 2889, 3150: 2890, 3149: 2891, 3148: 2892, 3147: 2893, 3146: 2894, 3145: 2895, 3144: 2896, 3143: 2897, 3142: 2898, 3141: 2899, 3140: 2900, 3139: 2901, 3138: 2902, 3137: 2903, 3136: 2904, 3135: 2905, 3134: 2906, 3133: 2907, 3132: 2908, 3131: 2909, 3130: 2910, 3129: 2911, 3128: 2912, 3126: 2913, 3125: 2914, 3127: 2915, 3124: 2916, 3123: 2917, 3122: 2918, 3121: 2919, 3120: 2920, 3119: 2921, 3118: 2922, 3117: 2923, 3116: 2924, 3114: 2925, 3113: 2926, 3112: 2927, 3111: 2928, 3110: 2929, 3109: 2930, 3108: 2931, 3107: 2932, 3106: 2933, 3105: 2934, 3104: 2935, 3103: 2936, 3102: 2937, 3101: 2938, 3100: 2939, 3099: 2940, 3115: 2941, 3098: 2942, 3097: 2943, 3096: 2944, 3095: 2945, 3094: 2946, 3093: 2947, 3092: 2948, 3091: 2949, 3090: 2950, 3089: 2951, 3088: 2952, 3087: 2953, 3086: 2954, 3085: 2955, 3084: 2956, 3083: 2957, 3082: 2958, 3081: 2959, 3080: 2960, 3079: 2961, 3078: 2962, 3077: 2963, 3076: 2964, 3075: 2965, 3074: 2966, 3073: 2967, 3072: 2968, 3071: 2969, 3070: 2970, 3069: 2971, 3068: 2972, 3067: 2973, 3066: 2974, 3065: 2975, 3064: 2976, 3063: 2977, 3062: 2978, 3061: 2979, 3060: 2980, 3059: 2981, 3058: 2982, 3057: 2983, 3056: 2984, 3055: 2985, 3054: 2986, 3053: 2987, 3052: 2988, 3050: 2989, 3051: 2990, 3049: 2991, 3048: 2992, 3047: 2993, 3046: 2994, 3045: 2995, 3044: 2996, 3043: 2997, 3042: 2998, 3040: 2999, 3041: 3000, 3039: 3001, 3038: 3002, 3037: 3003, 3036: 3004, 3035: 3005, 3034: 3006, 3033: 3007, 3032: 3008, 3031: 3009, 3030: 3010, 3029: 3011, 3028: 3012, 3027: 3013, 3026: 3014, 3025: 3015, 3024: 3016, 3023: 3017, 3022: 3018, 3021: 3019, 3020: 3020, 3019: 3021, 3018: 3022, 3017: 3023, 3016: 3024, 3015: 3025, 3014: 3026, 3013: 3027, 3012: 3028, 3011: 3029, 3010: 3030, 3009: 3031, 3008: 3032, 3007: 3033, 3006: 3034, 3005: 3035, 3004: 3036, 3002: 3037, 3001: 3038, 3000: 3039, 2999: 3040, 2998: 3041, 2997: 3042, 2996: 3043, 2995: 3044, 2994: 3045, 2993: 3046, 2992: 3047, 2991: 3048, 2990: 3049, 2989: 3050, 3003: 3051, 2988: 3052, 2987: 3053, 2986: 3054, 2985: 3055, 2984: 3056, 2983: 3057, 2982: 3058, 2981: 3059, 2979: 3060, 2978: 3061, 2977: 3062, 2976: 3063, 2975: 3064, 2974: 3065, 2973: 3066, 2972: 3067, 2971: 3068, 2970: 3069, 2969: 3070, 2968: 3071, 2967: 3072, 2966: 3073, 2965: 3074, 2964: 3075, 2963: 3076, 2962: 3077, 2961: 3078, 2960: 3079, 2959: 3080, 2958: 3081, 2957: 3082, 2956: 3083, 2955: 3084, 2954: 3085, 2953: 3086, 2952: 3087, 2951: 3088, 2950: 3089, 2949: 3090, 2948: 3091, 2946: 3092, 2945: 3093, 2944: 3094, 2943: 3095, 2942: 3096, 2941: 3097, 2940: 3098, 2939: 3099, 2938: 3100, 2937: 3101, 2936: 3102, 2935: 3103, 2934: 3104, 2933: 3105, 2932: 3106, 2931: 3107, 2930: 3108, 2929: 3109, 2928: 3110, 2927: 3111, 2926: 3112, 2925: 3113, 2924: 3114, 2923: 3115, 2922: 3116, 2921: 3117, 2920: 3118, 2919: 3119, 2918: 3120, 2917: 3121, 2916: 3122, 2915: 3123, 2914: 3124, 2913: 3125, 2912: 3126, 2911: 3127, 2909: 3128, 2908: 3129, 2907: 3130, 2906: 3131, 2905: 3132, 2904: 3133, 2903: 3134, 2902: 3135, 2901: 3136, 2900: 3137, 2899: 3138, 2898: 3139, 2897: 3140, 2895: 3141, 2896: 3142, 2894: 3143, 2893: 3144, 2892: 3145, 2891: 3146, 2890: 3147, 2889: 3148, 2888: 3149, 2887: 3150, 2886: 3151, 2885: 3152, 2884: 3153, 2882: 3154, 2881: 3155, 2883: 3156, 2880: 3157, 2879: 3158, 2878: 3159, 2877: 3160, 2876: 3161, 2875: 3162, 2874: 3163, 2873: 3164, 2872: 3165, 2871: 3166, 2870: 3167, 2869: 3168, 2868: 3169, 2867: 3170, 2866: 3171, 2865: 3172, 2864: 3173, 2863: 3174, 2862: 3175, 2861: 3176, 2860: 3177, 2859: 3178, 2858: 3179, 2857: 3180, 2856: 3181, 2855: 3182, 2854: 3183, 2853: 3184, 2852: 3185, 2851: 3186, 2850: 3187, 2849: 3188, 2848: 3189, 2847: 3190, 2846: 3191, 2845: 3192, 2844: 3193, 2843: 3194, 2842: 3195, 2841: 3196, 2840: 3197, 2839: 3198, 2838: 3199, 2837: 3200, 2836: 3201, 2835: 3202, 2834: 3203, 2833: 3204, 2832: 3205, 2831: 3206, 2830: 3207, 2829: 3208, 2828: 3209, 2827: 3210, 2826: 3211, 2825: 3212, 2824: 3213, 2823: 3214, 2822: 3215, 2821: 3216, 2820: 3217, 2819: 3218, 2818: 3219, 2817: 3220, 2816: 3221, 2815: 3222, 2814: 3223, 2813: 3224, 2812: 3225, 2811: 3226, 2810: 3227, 2809: 3228, 2808: 3229, 2807: 3230, 2806: 3231, 2805: 3232, 2804: 3233, 2803: 3234, 2802: 3235, 2801: 3236, 2800: 3237, 2799: 3238, 2798: 3239, 2797: 3240, 2796: 3241, 2795: 3242, 2794: 3243, 2793: 3244, 2792: 3245, 2791: 3246, 2790: 3247, 2789: 3248, 2788: 3249, 2787: 3250, 2786: 3251, 2785: 3252, 2784: 3253, 2783: 3254, 2782: 3255, 2781: 3256, 2780: 3257, 2779: 3258, 2778: 3259, 2777: 3260, 2776: 3261, 2775: 3262, 2774: 3263, 2773: 3264, 2772: 3265, 2771: 3266, 2770: 3267, 2769: 3268, 2768: 3269, 2767: 3270, 2766: 3271, 2765: 3272, 2764: 3273, 2763: 3274, 2762: 3275, 2761: 3276, 2760: 3277, 2759: 3278, 2758: 3279, 2757: 3280, 2756: 3281, 2755: 3282, 2754: 3283, 2753: 3284, 2752: 3285, 2751: 3286, 2750: 3287, 2749: 3288, 2748: 3289, 2747: 3290, 2746: 3291, 2745: 3292, 2744: 3293, 2743: 3294, 2742: 3295, 2741: 3296, 2740: 3297, 2739: 3298, 2738: 3299, 2737: 3300, 2736: 3301, 2735: 3302, 2734: 3303, 2733: 3304, 2732: 3305, 2731: 3306, 2730: 3307, 2729: 3308, 2728: 3309, 2727: 3310, 2726: 3311, 2725: 3312, 2724: 3313, 2723: 3314, 2722: 3315, 2721: 3316, 2720: 3317, 2719: 3318, 2718: 3319, 2716: 3320, 2714: 3321, 2717: 3322, 2715: 3323, 2713: 3324, 2712: 3325, 2711: 3326, 2710: 3327, 2709: 3328, 2708: 3329, 2707: 3330, 2706: 3331, 2705: 3332, 2704: 3333, 2703: 3334, 2702: 3335, 2701: 3336, 2700: 3337, 2699: 3338, 2698: 3339, 2697: 3340, 2696: 3341, 2695: 3342, 2694: 3343, 2693: 3344, 2692: 3345, 2691: 3346, 2690: 3347, 2689: 3348, 2688: 3349, 2687: 3350, 2686: 3351, 2685: 3352, 2684: 3353, 2683: 3354, 2682: 3355, 2681: 3356, 2680: 3357, 2679: 3358, 2678: 3359, 2677: 3360, 2676: 3361, 2675: 3362, 2674: 3363, 2673: 3364, 2672: 3365, 2671: 3366, 2670: 3367, 2669: 3368, 2668: 3369, 2667: 3370, 2666: 3371, 2665: 3372, 2664: 3373, 2663: 3374, 2662: 3375, 2661: 3376, 2660: 3377, 2659: 3378, 2658: 3379, 2657: 3380, 2656: 3381, 2655: 3382, 2653: 3383, 2652: 3384, 2651: 3385, 2650: 3386, 2649: 3387, 2648: 3388, 2654: 3389, 2647: 3390, 2646: 3391, 2645: 3392, 2644: 3393, 2643: 3394, 2642: 3395, 2641: 3396, 2640: 3397, 2639: 3398, 2638: 3399, 2637: 3400, 2636: 3401, 2635: 3402, 2634: 3403, 2633: 3404, 2632: 3405, 2631: 3406, 2630: 3407, 2629: 3408, 2628: 3409, 2627: 3410, 2626: 3411, 2625: 3412, 2624: 3413, 2623: 3414, 2622: 3415, 2621: 3416, 2620: 3417, 2619: 3418, 2618: 3419, 2617: 3420, 2616: 3421, 2615: 3422, 2614: 3423, 2613: 3424, 2612: 3425, 2611: 3426, 2610: 3427, 2609: 3428, 2608: 3429, 2607: 3430, 2606: 3431, 2605: 3432, 2604: 3433, 2603: 3434, 2602: 3435, 2600: 3436, 2599: 3437, 2598: 3438, 2597: 3439, 2601: 3440, 2596: 3441, 2595: 3442, 2594: 3443, 2593: 3444, 2592: 3445, 2591: 3446, 2590: 3447, 2589: 3448, 2588: 3449, 2587: 3450, 2586: 3451, 2584: 3452, 2585: 3453, 2583: 3454, 2582: 3455, 2581: 3456, 2580: 3457, 2579: 3458, 2578: 3459, 2577: 3460, 2576: 3461, 2575: 3462, 2574: 3463, 2573: 3464, 2572: 3465, 2571: 3466, 2570: 3467, 2569: 3468, 2568: 3469, 2567: 3470, 2566: 3471, 2565: 3472, 2564: 3473, 2563: 3474, 2562: 3475, 2561: 3476, 2560: 3477, 2559: 3478, 2558: 3479, 2557: 3480, 2556: 3481, 2555: 3482, 2554: 3483, 2553: 3484, 2552: 3485, 2551: 3486, 2550: 3487, 2549: 3488, 2548: 3489, 2547: 3490, 2546: 3491, 2545: 3492, 2544: 3493, 2543: 3494, 2542: 3495, 2541: 3496, 2540: 3497, 2539: 3498, 2538: 3499, 2537: 3500, 2535: 3501, 2536: 3502, 2534: 3503, 2533: 3504, 2532: 3505, 2531: 3506, 2530: 3507, 2529: 3508, 2528: 3509, 2527: 3510, 2526: 3511, 2525: 3512, 2524: 3513, 2523: 3514, 2522: 3515, 2521: 3516, 2520: 3517, 2519: 3518, 2518: 3519, 2517: 3520, 2516: 3521, 2515: 3522, 2514: 3523, 2513: 3524, 2512: 3525, 2511: 3526, 2510: 3527, 2509: 3528, 2508: 3529, 2507: 3530, 2506: 3531, 2505: 3532, 2504: 3533, 2503: 3534, 2502: 3535, 2501: 3536, 2500: 3537, 2499: 3538, 2498: 3539, 2497: 3540, 2496: 3541, 2495: 3542, 2494: 3543, 2493: 3544, 2492: 3545, 2491: 3546, 2490: 3547, 2489: 3548, 2488: 3549, 2487: 3550, 2486: 3551, 2485: 3552, 2484: 3553, 2483: 3554, 2482: 3555, 2481: 3556, 2480: 3557, 2479: 3558, 2478: 3559, 2476: 3560, 2477: 3561, 2475: 3562, 2474: 3563, 2473: 3564, 2472: 3565, 2471: 3566, 2470: 3567, 2469: 3568, 2468: 3569, 2467: 3570, 2466: 3571, 2465: 3572, 2464: 3573, 2462: 3574, 2463: 3575, 2461: 3576, 2460: 3577, 2459: 3578, 2458: 3579, 2457: 3580, 2456: 3581, 2455: 3582, 2454: 3583, 2453: 3584, 2452: 3585, 2451: 3586, 2450: 3587, 2449: 3588, 2448: 3589, 2447: 3590, 2446: 3591, 2445: 3592, 2444: 3593, 2443: 3594, 2442: 3595, 2441: 3596, 2440: 3597, 2439: 3598, 2438: 3599, 2436: 3600, 2435: 3601, 2433: 3602, 2437: 3603, 2431: 3604, 2430: 3605, 2432: 3606, 2434: 3607, 2429: 3608, 2428: 3609, 2427: 3610, 2426: 3611, 2424: 3612, 2423: 3613, 2422: 3614, 2421: 3615, 2420: 3616, 2425: 3617, 2419: 3618, 2418: 3619, 2417: 3620, 2415: 3621, 2416: 3622, 2414: 3623, 2413: 3624, 2412: 3625, 2411: 3626, 2410: 3627, 2409: 3628, 2408: 3629, 2407: 3630, 2406: 3631, 2405: 3632, 2404: 3633, 2403: 3634, 2402: 3635, 2401: 3636, 2400: 3637, 2399: 3638, 2398: 3639, 2397: 3640, 2396: 3641, 2395: 3642, 2394: 3643, 2393: 3644, 2392: 3645, 2391: 3646, 2390: 3647, 2389: 3648, 2388: 3649, 2387: 3650, 2386: 3651, 2385: 3652, 2384: 3653, 2383: 3654, 2382: 3655, 2381: 3656, 2380: 3657, 2378: 3658, 2379: 3659, 2377: 3660, 2376: 3661, 2375: 3662, 2374: 3663, 2373: 3664, 2372: 3665, 2371: 3666, 2370: 3667, 2369: 3668, 2368: 3669, 2367: 3670, 2366: 3671, 2365: 3672, 2364: 3673, 2363: 3674, 2362: 3675, 2361: 3676, 2360: 3677, 2359: 3678, 2358: 3679, 2357: 3680, 2356: 3681, 2355: 3682, 2354: 3683, 2352: 3684, 2353: 3685, 2351: 3686, 2350: 3687, 2348: 3688, 2349: 3689, 2347: 3690, 2346: 3691, 2345: 3692, 2344: 3693, 2342: 3694, 2343: 3695, 2341: 3696, 2340: 3697, 2339: 3698, 2338: 3699, 2337: 3700, 2336: 3701, 2335: 3702, 2334: 3703, 2333: 3704, 2332: 3705, 2331: 3706, 2330: 3707, 2329: 3708, 2328: 3709, 2327: 3710, 2326: 3711, 2325: 3712, 2324: 3713, 2323: 3714, 2322: 3715, 2321: 3716, 2320: 3717, 2319: 3718, 2318: 3719, 2317: 3720, 2316: 3721, 2315: 3722, 2314: 3723, 2313: 3724, 2312: 3725, 2311: 3726, 2310: 3727, 2309: 3728, 2308: 3729, 2307: 3730, 2306: 3731, 2305: 3732, 2304: 3733, 2303: 3734, 2302: 3735, 2301: 3736, 2300: 3737, 2299: 3738, 2298: 3739, 2297: 3740, 2296: 3741, 2295: 3742, 2294: 3743, 2293: 3744, 2292: 3745, 2291: 3746, 2290: 3747, 2289: 3748, 2288: 3749, 2287: 3750, 2286: 3751, 2285: 3752, 2284: 3753, 2283: 3754, 2282: 3755, 2281: 3756, 2280: 3757, 2279: 3758, 2278: 3759, 2277: 3760, 2276: 3761, 2275: 3762, 2274: 3763, 2273: 3764, 2272: 3765, 2271: 3766, 2270: 3767, 2269: 3768, 2268: 3769, 2267: 3770, 2266: 3771, 2265: 3772, 2264: 3773, 2263: 3774, 2262: 3775, 2261: 3776, 2260: 3777, 2259: 3778, 2258: 3779, 2257: 3780, 2256: 3781, 2255: 3782, 2254: 3783, 2253: 3784, 2252: 3785, 2250: 3786, 2251: 3787, 2248: 3788, 2246: 3789, 2244: 3790, 2243: 3791, 2242: 3792, 2241: 3793, 2249: 3794, 2245: 3795, 2240: 3796, 2239: 3797, 2238: 3798, 2237: 3799, 2235: 3800, 2236: 3801, 2234: 3802, 2233: 3803, 2232: 3804, 2231: 3805, 2230: 3806, 2229: 3807, 2228: 3808, 2227: 3809, 2226: 3810, 2224: 3811, 2225: 3812, 2223: 3813, 2222: 3814, 2221: 3815, 2220: 3816, 2219: 3817, 2218: 3818, 2217: 3819, 2216: 3820, 2215: 3821, 2214: 3822, 2212: 3823, 2213: 3824, 2211: 3825, 2210: 3826, 2209: 3827, 2208: 3828, 2207: 3829, 2206: 3830, 2205: 3831, 2203: 3832, 2204: 3833, 2202: 3834, 2201: 3835, 2200: 3836, 2199: 3837, 2197: 3838, 2198: 3839, 2196: 3840, 2195: 3841, 2192: 3842, 2191: 3843, 2193: 3844, 2194: 3845, 2190: 3846, 2189: 3847, 2188: 3848, 2186: 3849, 2185: 3850, 2187: 3851, 2184: 3852, 2182: 3853, 2183: 3854, 2181: 3855, 2180: 3856, 2179: 3857, 2178: 3858, 2177: 3859, 2175: 3860, 2176: 3861, 2174: 3862, 2173: 3863, 2172: 3864, 2171: 3865, 2169: 3866, 2170: 3867, 2168: 3868, 2167: 3869, 2166: 3870, 2165: 3871, 2164: 3872, 2163: 3873, 2162: 3874, 2161: 3875, 2160: 3876, 2159: 3877, 2158: 3878, 2157: 3879, 2156: 3880, 2155: 3881, 2154: 3882, 2153: 3883, 2152: 3884, 2150: 3885, 2151: 3886, 2149: 3887, 2148: 3888, 2147: 3889, 2146: 3890, 2145: 3891, 2144: 3892, 2143: 3893, 2142: 3894, 2141: 3895, 2140: 3896, 2139: 3897, 2138: 3898, 2137: 3899, 2136: 3900, 2135: 3901, 2134: 3902, 2133: 3903, 2132: 3904, 2131: 3905, 2130: 3906, 2129: 3907, 2128: 3908, 2127: 3909, 2126: 3910, 2125: 3911, 2123: 3912, 2124: 3913, 2122: 3914, 2121: 3915, 2120: 3916, 2119: 3917, 2118: 3918, 2117: 3919, 2116: 3920, 2115: 3921, 2114: 3922, 2113: 3923, 2112: 3924, 2111: 3925, 2110: 3926, 2109: 3927, 2108: 3928, 2107: 3929, 2106: 3930, 2105: 3931, 2104: 3932, 2103: 3933, 2102: 3934, 2101: 3935, 2100: 3936, 2099: 3937, 2098: 3938, 2097: 3939, 2096: 3940, 2095: 3941, 2093: 3942, 2094: 3943, 2092: 3944, 2091: 3945, 2090: 3946, 2088: 3947, 2089: 3948, 2087: 3949, 2085: 3950, 2086: 3951, 2084: 3952, 2083: 3953, 2082: 3954, 2081: 3955, 2080: 3956, 2079: 3957, 2078: 3958, 2077: 3959, 2075: 3960, 2076: 3961, 2074: 3962, 2073: 3963, 2072: 3964, 2071: 3965, 2070: 3966, 2069: 3967, 2068: 3968, 2067: 3969, 2066: 3970, 2064: 3971, 2065: 3972, 2063: 3973, 2062: 3974, 2061: 3975, 2060: 3976, 2059: 3977, 2057: 3978, 2058: 3979, 2056: 3980, 2055: 3981, 2054: 3982, 2053: 3983, 2052: 3984, 2051: 3985, 2050: 3986, 2049: 3987, 2048: 3988, 2047: 3989, 2046: 3990, 2045: 3991, 2044: 3992, 2043: 3993, 2042: 3994, 2041: 3995, 2039: 3996, 2040: 3997, 2038: 3998, 2036: 3999, 2037: 4000, 2035: 4001, 2034: 4002, 2033: 4003, 2032: 4004, 2031: 4005, 2030: 4006, 2029: 4007, 2028: 4008, 2027: 4009, 2026: 4010, 2025: 4011, 2024: 4012, 2023: 4013, 2022: 4014, 2020: 4015, 2021: 4016, 2019: 4017, 2018: 4018, 2017: 4019, 2016: 4020, 2015: 4021, 2014: 4022, 2013: 4023, 2012: 4024, 2011: 4025, 2010: 4026, 2009: 4027, 2008: 4028, 2005: 4029, 2007: 4030, 2006: 4031, 2004: 4032, 2002: 4033, 2003: 4034, 2001: 4035, 2000: 4036, 1999: 4037, 1998: 4038, 1997: 4039, 1996: 4040, 1995: 4041, 1994: 4042, 1993: 4043, 1992: 4044, 1991: 4045, 1990: 4046, 1989: 4047, 1988: 4048, 1985: 4049, 1986: 4050, 1987: 4051, 1983: 4052, 1984: 4053, 1982: 4054, 1981: 4055, 1980: 4056, 1979: 4057, 1978: 4058, 1977: 4059, 1974: 4060, 1975: 4061, 1973: 4062, 1976: 4063, 1971: 4064, 1972: 4065, 1969: 4066, 1968: 4067, 1967: 4068, 1970: 4069, 1966: 4070, 1965: 4071, 1964: 4072, 1963: 4073, 1962: 4074, 1961: 4075, 1960: 4076, 1959: 4077, 1958: 4078, 1957: 4079, 1956: 4080, 1955: 4081, 1952: 4082, 1951: 4083, 1954: 4084, 1948: 4085, 1945: 4086, 1946: 4087, 1953: 4088, 1944: 4089, 1937: 4090, 1949: 4091, 1950: 4092, 1943: 4093, 1941: 4094, 1942: 4095, 1938: 4096, 1935: 4097, 1939: 4098, 1947: 4099, 1940: 4100, 1934: 4101, 1931: 4102, 1928: 4103, 1926: 4104, 1929: 4105, 1927: 4106, 1924: 4107, 1925: 4108, 1923: 4109, 1921: 4110, 1920: 4111, 1922: 4112, 1936: 4113, 1919: 4114, 1930: 4115, 1917: 4116, 1918: 4117, 1916: 4118, 1914: 4119, 1912: 4120, 1909: 4121, 1911: 4122, 1906: 4123, 1904: 4124, 1908: 4125, 1905: 4126, 1903: 4127, 1907: 4128, 1902: 4129, 1901: 4130, 1900: 4131, 1933: 4132, 1915: 4133, 1910: 4134, 1894: 4135, 1896: 4136, 1898: 4137, 1899: 4138, 1893: 4139, 1892: 4140, 1895: 4141, 1913: 4142, 1891: 4143, 1889: 4144, 1890: 4145, 1888: 4146, 1886: 4147, 1885: 4148, 1897: 4149, 1887: 4150, 1882: 4151, 1881: 4152, 1880: 4153, 1883: 4154, 1879: 4155, 1884: 4156, 1932: 4157, 1878: 4158, 1876: 4159, 1873: 4160, 1874: 4161, 1872: 4162, 1871: 4163, 1870: 4164, 1869: 4165, 1868: 4166, 1867: 4167, 1866: 4168, 1865: 4169, 1864: 4170, 1863: 4171, 1862: 4172, 1859: 4173, 1861: 4174, 1860: 4175, 1858: 4176, 1857: 4177, 1856: 4178, 1855: 4179, 1854: 4180, 1852: 4181, 1851: 4182, 1850: 4183, 1849: 4184, 1846: 4185, 1844: 4186, 1843: 4187, 1848: 4188, 1847: 4189, 1842: 4190, 1841: 4191, 1840: 4192, 1839: 4193, 1838: 4194, 1837: 4195, 1833: 4196, 1835: 4197, 1834: 4198, 1830: 4199, 1824: 4200, 1832: 4201, 1836: 4202, 1826: 4203, 1845: 4204, 1822: 4205, 1829: 4206, 1828: 4207, 1823: 4208, 1827: 4209, 1820: 4210, 1819: 4211, 1818: 4212, 1817: 4213, 1816: 4214, 1814: 4215, 1812: 4216, 1811: 4217, 1813: 4218, 1821: 4219, 1809: 4220, 1808: 4221, 1810: 4222, 1807: 4223, 1831: 4224, 1805: 4225, 1804: 4226, 1806: 4227, 1815: 4228, 1803: 4229, 1802: 4230, 1801: 4231, 1800: 4232, 1798: 4233, 1799: 4234, 1797: 4235, 1796: 4236, 1793: 4237, 1795: 4238, 1792: 4239, 1794: 4240, 1790: 4241, 1791: 4242, 1787: 4243, 1875: 4244, 1789: 4245, 1788: 4246, 1784: 4247, 1783: 4248, 1785: 4249, 1782: 4250, 1781: 4251, 1780: 4252, 1779: 4253, 1778: 4254, 1786: 4255, 1777: 4256, 1773: 4257, 1776: 4258, 1775: 4259, 1774: 4260, 1772: 4261, 1771: 4262, 1769: 4263, 1768: 4264, 1770: 4265, 1767: 4266, 1762: 4267, 1766: 4268, 1764: 4269, 1763: 4270, 1765: 4271, 1760: 4272, 1759: 4273, 1758: 4274, 1756: 4275, 1757: 4276, 1761: 4277, 1755: 4278, 1753: 4279, 1752: 4280, 1754: 4281, 1751: 4282, 1749: 4283, 1750: 4284, 1747: 4285, 1746: 4286, 1745: 4287, 1748: 4288, 1744: 4289, 1743: 4290, 1742: 4291, 1740: 4292, 1739: 4293, 1738: 4294, 1737: 4295, 1736: 4296, 1735: 4297, 1733: 4298, 1734: 4299, 1732: 4300, 1729: 4301, 1730: 4302, 1731: 4303, 1728: 4304, 1725: 4305, 1726: 4306, 1727: 4307, 1722: 4308, 1719: 4309, 1721: 4310, 1720: 4311, 1724: 4312, 1723: 4313, 1718: 4314, 1717: 4315, 1715: 4316, 1741: 4317, 1714: 4318, 1716: 4319, 1713: 4320, 1712: 4321, 1711: 4322, 1710: 4323, 1709: 4324, 1708: 4325, 1707: 4326, 1706: 4327, 1705: 4328, 1704: 4329, 1703: 4330, 1700: 4331, 1701: 4332, 1698: 4333, 1697: 4334, 1702: 4335, 1695: 4336, 1699: 4337, 1694: 4338, 1693: 4339, 1696: 4340, 1691: 4341, 1692: 4342, 1688: 4343, 1686: 4344, 1687: 4345, 1685: 4346, 1684: 4347, 1689: 4348, 1683: 4349, 1682: 4350, 1681: 4351, 1690: 4352, 1680: 4353, 1679: 4354, 1678: 4355, 1676: 4356, 1677: 4357, 1675: 4358, 1674: 4359, 1672: 4360, 1673: 4361, 1669: 4362, 1671: 4363, 1668: 4364, 1670: 4365, 1667: 4366, 1666: 4367, 1665: 4368, 1664: 4369, 1663: 4370, 1662: 4371, 1661: 4372, 1660: 4373, 1659: 4374, 1658: 4375, 1654: 4376, 1655: 4377, 1657: 4378, 1656: 4379, 1653: 4380, 1652: 4381, 1651: 4382, 1650: 4383, 1649: 4384, 1648: 4385, 1647: 4386, 1646: 4387, 1645: 4388, 1644: 4389, 1641: 4390, 1643: 4391, 1642: 4392, 1640: 4393, 1639: 4394, 1638: 4395, 1637: 4396, 1636: 4397, 1634: 4398, 1635: 4399, 1633: 4400, 1632: 4401, 1631: 4402, 1628: 4403, 1629: 4404, 1630: 4405, 1627: 4406, 1626: 4407, 1625: 4408, 1624: 4409, 1623: 4410, 1622: 4411, 1621: 4412, 1620: 4413, 1617: 4414, 1618: 4415, 1619: 4416, 1616: 4417, 1614: 4418, 1615: 4419, 1613: 4420, 1612: 4421, 1611: 4422, 1610: 4423, 1609: 4424, 1608: 4425, 1825: 4426, 1607: 4427, 1606: 4428, 1605: 4429, 1604: 4430, 1603: 4431, 1602: 4432, 1601: 4433, 1600: 4434, 1599: 4435, 1598: 4436, 1597: 4437, 1596: 4438, 1595: 4439, 1594: 4440, 1593: 4441, 1592: 4442, 1591: 4443, 1590: 4444, 1589: 4445, 1588: 4446, 1587: 4447, 1586: 4448, 1585: 4449, 1584: 4450, 1583: 4451, 1579: 4452, 1582: 4453, 1580: 4454, 1578: 4455, 1577: 4456, 1576: 4457, 1574: 4458, 1575: 4459, 1573: 4460, 1572: 4461, 1571: 4462, 1570: 4463, 1569: 4464, 1568: 4465, 1567: 4466, 1566: 4467, 1564: 4468, 1565: 4469, 1563: 4470, 1562: 4471, 1561: 4472, 1560: 4473, 1559: 4474, 1558: 4475, 1556: 4476, 1555: 4477, 1554: 4478, 1553: 4479, 1552: 4480, 1550: 4481, 1549: 4482, 1548: 4483, 1551: 4484, 1547: 4485, 1546: 4486, 1545: 4487, 1544: 4488, 1543: 4489, 1542: 4490, 1540: 4491, 1541: 4492, 1539: 4493, 1538: 4494, 1537: 4495, 1535: 4496, 1536: 4497, 1534: 4498, 1533: 4499, 1532: 4500, 1531: 4501, 1530: 4502, 1529: 4503, 1528: 4504, 1527: 4505, 1526: 4506, 1525: 4507, 1524: 4508, 1523: 4509, 1521: 4510, 1522: 4511, 1520: 4512, 1519: 4513, 1517: 4514, 1518: 4515, 1516: 4516, 1515: 4517, 1514: 4518, 1513: 4519, 1512: 4520, 1511: 4521, 1510: 4522, 1509: 4523, 1508: 4524, 1507: 4525, 1506: 4526, 1581: 4527, 1504: 4528, 1503: 4529, 1501: 4530, 1500: 4531, 1502: 4532, 1499: 4533, 1497: 4534, 1498: 4535, 1496: 4536, 1495: 4537, 1493: 4538, 1494: 4539, 1492: 4540, 1491: 4541, 1490: 4542, 1489: 4543, 1488: 4544, 1487: 4545, 1486: 4546, 1484: 4547, 1485: 4548, 1483: 4549, 1482: 4550, 1481: 4551, 1479: 4552, 1478: 4553, 1476: 4554, 1477: 4555, 1474: 4556, 1473: 4557, 1475: 4558, 1472: 4559, 1470: 4560, 1471: 4561, 1469: 4562, 1468: 4563, 1467: 4564, 1480: 4565, 1466: 4566, 1465: 4567, 1463: 4568, 1464: 4569, 1462: 4570, 1461: 4571, 1460: 4572, 1459: 4573, 1458: 4574, 1457: 4575, 1456: 4576, 1454: 4577, 1453: 4578, 1452: 4579, 1451: 4580, 1455: 4581, 1450: 4582, 1448: 4583, 1446: 4584, 1445: 4585, 1447: 4586, 1449: 4587, 1443: 4588, 1444: 4589, 1442: 4590, 1441: 4591, 1440: 4592, 1439: 4593, 1438: 4594, 1437: 4595, 1436: 4596, 1435: 4597, 1434: 4598, 1433: 4599, 1432: 4600, 1430: 4601, 1429: 4602, 1431: 4603, 1427: 4604, 1426: 4605, 1423: 4606, 1425: 4607, 1424: 4608, 1422: 4609, 1421: 4610, 1420: 4611, 1419: 4612, 1418: 4613, 1416: 4614, 1415: 4615, 1417: 4616, 1414: 4617, 1413: 4618, 1412: 4619, 1411: 4620, 1409: 4621, 1408: 4622, 1407: 4623, 1406: 4624, 1405: 4625, 1404: 4626, 1403: 4627, 1402: 4628, 1401: 4629, 1410: 4630, 1400: 4631, 1399: 4632, 1397: 4633, 1398: 4634, 1396: 4635, 1393: 4636, 1394: 4637, 1395: 4638, 1392: 4639, 1390: 4640, 1389: 4641, 1388: 4642, 1391: 4643, 1387: 4644, 1386: 4645, 1385: 4646, 1384: 4647, 1383: 4648, 1381: 4649, 1380: 4650, 1382: 4651, 1378: 4652, 1379: 4653, 1377: 4654, 1376: 4655, 1375: 4656, 1374: 4657, 1373: 4658, 1372: 4659, 1371: 4660, 1370: 4661, 1369: 4662, 1368: 4663, 1367: 4664, 1366: 4665, 1364: 4666, 1363: 4667, 1365: 4668, 1362: 4669, 1361: 4670, 1360: 4671, 1359: 4672, 1358: 4673, 1357: 4674, 1356: 4675, 1355: 4676, 1354: 4677, 1353: 4678, 1352: 4679, 1351: 4680, 1350: 4681, 1349: 4682, 1348: 4683, 1347: 4684, 1346: 4685, 1345: 4686, 1344: 4687, 1343: 4688, 1342: 4689, 1341: 4690, 1340: 4691, 1338: 4692, 1339: 4693, 1337: 4694, 1336: 4695, 1335: 4696, 1334: 4697, 1333: 4698, 1332: 4699, 1331: 4700, 1330: 4701, 1329: 4702, 1328: 4703, 1325: 4704, 1326: 4705, 1324: 4706, 1327: 4707, 1323: 4708, 1322: 4709, 1321: 4710, 1320: 4711, 1319: 4712, 1316: 4713, 1317: 4714, 1318: 4715, 1315: 4716, 1314: 4717, 1313: 4718, 1312: 4719, 1311: 4720, 1310: 4721, 1309: 4722, 1308: 4723, 1307: 4724, 1306: 4725, 1305: 4726, 1304: 4727, 1303: 4728, 1301: 4729, 1299: 4730, 1300: 4731, 1302: 4732, 1298: 4733, 1297: 4734, 1296: 4735, 1295: 4736, 1293: 4737, 1294: 4738, 1292: 4739, 1291: 4740, 1290: 4741, 1289: 4742, 1288: 4743, 1286: 4744, 1285: 4745, 1284: 4746, 1282: 4747, 1281: 4748, 1280: 4749, 1279: 4750, 1283: 4751, 1278: 4752, 1277: 4753, 1276: 4754, 1275: 4755, 1274: 4756, 1273: 4757, 1272: 4758, 1271: 4759, 1270: 4760, 1269: 4761, 1268: 4762, 1267: 4763, 1266: 4764, 1264: 4765, 1263: 4766, 1262: 4767, 1261: 4768, 1557: 4769, 1260: 4770, 1259: 4771, 1258: 4772, 1255: 4773, 1256: 4774, 1257: 4775, 1254: 4776, 1253: 4777, 1252: 4778, 1251: 4779, 1250: 4780, 1249: 4781, 1248: 4782, 1247: 4783, 1246: 4784, 1245: 4785, 1244: 4786, 1243: 4787, 1242: 4788, 1241: 4789, 1240: 4790, 1239: 4791, 1237: 4792, 1238: 4793, 1236: 4794, 1235: 4795, 1234: 4796, 1233: 4797, 1232: 4798, 1230: 4799, 1229: 4800, 1227: 4801, 1231: 4802, 1228: 4803, 1226: 4804, 1225: 4805, 1223: 4806, 1222: 4807, 1224: 4808, 1221: 4809, 1220: 4810, 1219: 4811, 1218: 4812, 1217: 4813, 1216: 4814, 1215: 4815, 1211: 4816, 1214: 4817, 1212: 4818, 1213: 4819, 1210: 4820, 1209: 4821, 1208: 4822, 1207: 4823, 1206: 4824, 1205: 4825, 1204: 4826, 1203: 4827, 1202: 4828, 1201: 4829, 1200: 4830, 1199: 4831, 1198: 4832, 1197: 4833, 1196: 4834, 1195: 4835, 1194: 4836, 1193: 4837, 1192: 4838, 1190: 4839, 1189: 4840, 1191: 4841, 1186: 4842, 1188: 4843, 1187: 4844, 1185: 4845, 1184: 4846, 1183: 4847, 1182: 4848, 1181: 4849, 1180: 4850, 1179: 4851, 1178: 4852, 1177: 4853, 1176: 4854, 1175: 4855, 1174: 4856, 1173: 4857, 1172: 4858, 1171: 4859, 1170: 4860, 1169: 4861, 1168: 4862, 1167: 4863, 1166: 4864, 1165: 4865, 1163: 4866, 1164: 4867, 1162: 4868, 1161: 4869, 1160: 4870, 1159: 4871, 1158: 4872, 1157: 4873, 1156: 4874, 1155: 4875, 1154: 4876, 1153: 4877, 1152: 4878, 1151: 4879, 1853: 4880, 1150: 4881, 1149: 4882, 1148: 4883, 1147: 4884, 1146: 4885, 1145: 4886, 1144: 4887, 1143: 4888, 1141: 4889, 1142: 4890, 1139: 4891, 1140: 4892, 1138: 4893, 1137: 4894, 1136: 4895, 1135: 4896, 1134: 4897, 1133: 4898, 1132: 4899, 1131: 4900, 1130: 4901, 1128: 4902, 1129: 4903, 1127: 4904, 1126: 4905, 1125: 4906, 1124: 4907, 1123: 4908, 1122: 4909, 1121: 4910, 1120: 4911, 1119: 4912, 1117: 4913, 1116: 4914, 1115: 4915, 1114: 4916, 1113: 4917, 1112: 4918, 1111: 4919, 1109: 4920, 1108: 4921, 1110: 4922, 1107: 4923, 1106: 4924, 1105: 4925, 1104: 4926, 1103: 4927, 1102: 4928, 1101: 4929, 1100: 4930, 1099: 4931, 1118: 4932, 1098: 4933, 1097: 4934, 1096: 4935, 1095: 4936, 1094: 4937, 1093: 4938, 1092: 4939, 1091: 4940, 1090: 4941, 1089: 4942, 1088: 4943, 1087: 4944, 1086: 4945, 1085: 4946, 1084: 4947, 1083: 4948, 1081: 4949, 1082: 4950, 1080: 4951, 1079: 4952, 1078: 4953, 1077: 4954, 1075: 4955, 1076: 4956, 1074: 4957, 1073: 4958, 1071: 4959, 1070: 4960, 1072: 4961, 1069: 4962, 1068: 4963, 1067: 4964, 1066: 4965, 1065: 4966, 1064: 4967, 1063: 4968, 1062: 4969, 1061: 4970, 1060: 4971, 1059: 4972, 1058: 4973, 1057: 4974, 1056: 4975, 1055: 4976, 1054: 4977, 1053: 4978, 1505: 4979, 1052: 4980, 1051: 4981, 1050: 4982, 1049: 4983, 1048: 4984, 1047: 4985, 1046: 4986, 1045: 4987, 1044: 4988, 1043: 4989, 1042: 4990, 1041: 4991, 1040: 4992, 1039: 4993, 1038: 4994, 1037: 4995, 1036: 4996, 1035: 4997, 1034: 4998, 1033: 4999, 1032: 5000, 1031: 5001, 1030: 5002, 1029: 5003, 1028: 5004, 1027: 5005, 1025: 5006, 1026: 5007, 1024: 5008, 1023: 5009, 1022: 5010, 1021: 5011, 1020: 5012, 1019: 5013, 1018: 5014, 1017: 5015, 1016: 5016, 1015: 5017, 1014: 5018, 1013: 5019, 1011: 5020, 1010: 5021, 1009: 5022, 1008: 5023, 1007: 5024, 1006: 5025, 1005: 5026, 1003: 5027, 1002: 5028, 1004: 5029, 1001: 5030, 1000: 5031, 999: 5032, 998: 5033, 997: 5034, 996: 5035, 995: 5036, 994: 5037, 993: 5038, 1012: 5039, 992: 5040, 991: 5041, 990: 5042, 989: 5043, 988: 5044, 987: 5045, 986: 5046, 985: 5047, 984: 5048, 983: 5049, 982: 5050, 981: 5051, 980: 5052, 979: 5053, 978: 5054, 977: 5055, 976: 5056, 975: 5057, 974: 5058, 973: 5059, 972: 5060, 971: 5061, 970: 5062, 969: 5063, 968: 5064, 966: 5065, 967: 5066, 964: 5067, 965: 5068, 963: 5069, 962: 5070, 961: 5071, 960: 5072, 959: 5073, 958: 5074, 957: 5075, 956: 5076, 955: 5077, 954: 5078, 953: 5079, 952: 5080, 950: 5081, 951: 5082, 949: 5083, 948: 5084, 947: 5085, 946: 5086, 945: 5087, 944: 5088, 1428: 5089, 943: 5090, 942: 5091, 941: 5092, 940: 5093, 938: 5094, 939: 5095, 937: 5096, 936: 5097, 935: 5098, 934: 5099, 933: 5100, 932: 5101, 931: 5102, 930: 5103, 929: 5104, 928: 5105, 927: 5106, 2247: 5107, 926: 5108, 925: 5109, 924: 5110, 923: 5111, 922: 5112, 921: 5113, 920: 5114, 919: 5115, 917: 5116, 916: 5117, 918: 5118, 915: 5119, 914: 5120, 913: 5121, 912: 5122, 911: 5123, 910: 5124, 909: 5125, 908: 5126, 907: 5127, 906: 5128, 905: 5129, 904: 5130, 903: 5131, 902: 5132, 901: 5133, 900: 5134, 899: 5135, 898: 5136, 897: 5137, 896: 5138, 895: 5139, 894: 5140, 893: 5141, 892: 5142, 891: 5143, 890: 5144, 889: 5145, 888: 5146, 887: 5147, 886: 5148, 885: 5149, 884: 5150, 883: 5151, 882: 5152, 881: 5153, 880: 5154, 879: 5155, 878: 5156, 877: 5157, 876: 5158, 875: 5159, 874: 5160, 873: 5161, 872: 5162, 871: 5163, 870: 5164, 869: 5165, 868: 5166, 867: 5167, 866: 5168, 865: 5169, 864: 5170, 863: 5171, 862: 5172, 861: 5173, 860: 5174, 859: 5175, 858: 5176, 857: 5177, 856: 5178, 854: 5179, 853: 5180, 852: 5181, 851: 5182, 850: 5183, 849: 5184, 848: 5185, 847: 5186, 846: 5187, 845: 5188, 844: 5189, 842: 5190, 841: 5191, 843: 5192, 840: 5193, 839: 5194, 838: 5195, 837: 5196, 836: 5197, 835: 5198, 834: 5199, 833: 5200, 832: 5201, 831: 5202, 830: 5203, 829: 5204, 828: 5205, 827: 5206, 826: 5207, 825: 5208, 824: 5209, 823: 5210, 822: 5211, 821: 5212, 820: 5213, 819: 5214, 818: 5215, 817: 5216, 816: 5217, 814: 5218, 815: 5219, 813: 5220, 811: 5221, 810: 5222, 809: 5223, 808: 5224, 807: 5225, 812: 5226, 806: 5227, 805: 5228, 804: 5229, 803: 5230, 802: 5231, 801: 5232, 800: 5233, 799: 5234, 798: 5235, 797: 5236, 796: 5237, 795: 5238, 794: 5239, 793: 5240, 792: 5241, 791: 5242, 790: 5243, 789: 5244, 788: 5245, 786: 5246, 787: 5247, 785: 5248, 784: 5249, 783: 5250, 782: 5251, 781: 5252, 780: 5253, 779: 5254, 778: 5255, 777: 5256, 775: 5257, 776: 5258, 774: 5259, 773: 5260, 772: 5261, 771: 5262, 770: 5263, 769: 5264, 768: 5265, 767: 5266, 766: 5267, 765: 5268, 764: 5269, 763: 5270, 762: 5271, 761: 5272, 760: 5273, 759: 5274, 758: 5275, 757: 5276, 756: 5277, 755: 5278, 754: 5279, 753: 5280, 752: 5281, 751: 5282, 750: 5283, 749: 5284, 748: 5285, 855: 5286, 747: 5287, 746: 5288, 745: 5289, 744: 5290, 743: 5291, 742: 5292, 741: 5293, 740: 5294, 739: 5295, 738: 5296, 737: 5297, 736: 5298, 735: 5299, 734: 5300, 733: 5301, 732: 5302, 731: 5303, 730: 5304, 729: 5305, 728: 5306, 727: 5307, 726: 5308, 725: 5309, 724: 5310, 723: 5311, 722: 5312, 721: 5313, 720: 5314, 719: 5315, 718: 5316, 717: 5317, 716: 5318, 715: 5319, 714: 5320, 713: 5321, 712: 5322, 711: 5323, 710: 5324, 709: 5325, 708: 5326, 707: 5327, 706: 5328, 705: 5329, 704: 5330, 703: 5331, 702: 5332, 701: 5333, 700: 5334, 699: 5335, 698: 5336, 697: 5337, 696: 5338, 695: 5339, 694: 5340, 693: 5341, 692: 5342, 691: 5343, 690: 5344, 689: 5345, 688: 5346, 687: 5347, 686: 5348, 685: 5349, 684: 5350, 682: 5351, 683: 5352, 681: 5353, 680: 5354, 679: 5355, 678: 5356, 677: 5357, 676: 5358, 675: 5359, 674: 5360, 673: 5361, 672: 5362, 671: 5363, 670: 5364, 669: 5365, 668: 5366, 667: 5367, 666: 5368, 665: 5369, 664: 5370, 663: 5371, 662: 5372, 661: 5373, 660: 5374, 659: 5375, 658: 5376, 657: 5377, 656: 5378, 655: 5379, 654: 5380, 653: 5381, 652: 5382, 651: 5383, 650: 5384, 649: 5385, 648: 5386, 647: 5387, 646: 5388, 645: 5389, 644: 5390, 643: 5391, 642: 5392, 641: 5393, 640: 5394, 639: 5395, 638: 5396, 637: 5397, 636: 5398, 635: 5399, 634: 5400, 633: 5401, 632: 5402, 631: 5403, 630: 5404, 628: 5405, 629: 5406, 627: 5407, 626: 5408, 625: 5409, 624: 5410, 623: 5411, 622: 5412, 621: 5413, 620: 5414, 619: 5415, 618: 5416, 617: 5417, 616: 5418, 615: 5419, 614: 5420, 613: 5421, 612: 5422, 611: 5423, 610: 5424, 609: 5425, 608: 5426, 607: 5427, 606: 5428, 605: 5429, 604: 5430, 603: 5431, 602: 5432, 601: 5433, 600: 5434, 599: 5435, 598: 5436, 597: 5437, 596: 5438, 595: 5439, 594: 5440, 593: 5441, 592: 5442, 591: 5443, 590: 5444, 589: 5445, 588: 5446, 587: 5447, 586: 5448, 585: 5449, 584: 5450, 583: 5451, 582: 5452}} {'user_id': {0: 6040, 1: 6039, 2: 6038, 3: 6037, 4: 6036, 5: 6035, 6: 6034, 7: 6033, 8: 6032, 9: 6031, 10: 6030, 11: 6029, 12: 6028, 13: 6027, 14: 6026, 15: 6025, 16: 6024, 17: 6023, 18: 6022, 19: 6021, 20: 6020, 21: 6019, 22: 6018, 23: 6017, 24: 6016, 25: 6015, 26: 6014, 27: 6013, 28: 6012, 29: 6011, 30: 6010, 31: 6009, 32: 6007, 33: 6008, 34: 6006, 35: 6005, 36: 6004, 37: 6003, 38: 6002, 39: 6001, 40: 6000, 41: 5999, 42: 5998, 43: 5997, 44: 5996, 45: 5995, 46: 5994, 47: 5993, 48: 5992, 49: 5991, 50: 5990, 51: 5989, 52: 5988, 53: 5987, 54: 5986, 55: 5984, 56: 5983, 57: 5982, 58: 5981, 59: 5979, 60: 5980, 61: 5978, 62: 5977, 63: 5976, 64: 5975, 65: 5974, 66: 5973, 67: 5972, 68: 5971, 69: 5970, 70: 5969, 71: 5968, 72: 5967, 73: 5966, 74: 5965, 75: 5964, 76: 5963, 77: 5962, 78: 5961, 79: 5960, 80: 5959, 81: 5958, 82: 5957, 83: 5956, 84: 5955, 85: 5954, 86: 5953, 87: 5952, 88: 5951, 89: 5950, 90: 5948, 91: 5947, 92: 5946, 93: 5945, 94: 5944, 95: 5943, 96: 5942, 97: 5941, 98: 5940, 99: 5939, 100: 5938, 101: 5937, 102: 5949, 103: 5936, 104: 5935, 105: 5934, 106: 5933, 107: 5932, 108: 5931, 109: 5930, 110: 5929, 111: 5928, 112: 5927, 113: 5926, 114: 5925, 115: 5924, 116: 5923, 117: 5922, 118: 5921, 119: 5920, 120: 5919, 121: 5918, 122: 5917, 123: 5916, 124: 5915, 125: 5914, 126: 5913, 127: 5912, 128: 5911, 129: 5910, 130: 5909, 131: 5908, 132: 5907, 133: 5906, 134: 5905, 135: 5904, 136: 5903, 137: 5902, 138: 5901, 139: 5900, 140: 5899, 141: 5898, 142: 5897, 143: 5896, 144: 5895, 145: 5894, 146: 5893, 147: 5892, 148: 5891, 149: 5890, 150: 5889, 151: 5888, 152: 5887, 153: 5886, 154: 5885, 155: 5884, 156: 5883, 157: 5881, 158: 5882, 159: 5880, 160: 5879, 161: 5878, 162: 5877, 163: 5876, 164: 5875, 165: 5874, 166: 5873, 167: 5872, 168: 5871, 169: 5870, 170: 5869, 171: 5868, 172: 5867, 173: 5866, 174: 5865, 175: 5864, 176: 5863, 177: 5862, 178: 5861, 179: 5860, 180: 5859, 181: 5858, 182: 5857, 183: 5856, 184: 5855, 185: 5854, 186: 5853, 187: 5852, 188: 5851, 189: 5850, 190: 5849, 191: 5848, 192: 5847, 193: 5846, 194: 5845, 195: 5844, 196: 5843, 197: 5842, 198: 5841, 199: 5840, 200: 5839, 201: 5838, 202: 5837, 203: 5836, 204: 5835, 205: 5834, 206: 5833, 207: 5832, 208: 5831, 209: 5830, 210: 5829, 211: 5828, 212: 5827, 213: 5826, 214: 5825, 215: 5824, 216: 5823, 217: 5822, 218: 5821, 219: 5820, 220: 5819, 221: 5818, 222: 5817, 223: 5816, 224: 5815, 225: 5814, 226: 5813, 227: 5812, 228: 5811, 229: 5810, 230: 5809, 231: 5808, 232: 5807, 233: 5806, 234: 5805, 235: 5804, 236: 5803, 237: 5802, 238: 5801, 239: 5800, 240: 5799, 241: 5798, 242: 5797, 243: 5796, 244: 5795, 245: 5794, 246: 5793, 247: 5792, 248: 5791, 249: 5790, 250: 5789, 251: 5788, 252: 5787, 253: 5786, 254: 5785, 255: 5784, 256: 5783, 257: 5782, 258: 5781, 259: 5780, 260: 5779, 261: 5778, 262: 5777, 263: 5776, 264: 5775, 265: 5774, 266: 5773, 267: 5772, 268: 5771, 269: 5770, 270: 5769, 271: 5768, 272: 5767, 273: 5766, 274: 5765, 275: 5764, 276: 5763, 277: 5762, 278: 5761, 279: 5760, 280: 5759, 281: 5758, 282: 5757, 283: 5756, 284: 5755, 285: 5754, 286: 5753, 287: 5752, 288: 5751, 289: 5750, 290: 5749, 291: 5748, 292: 5747, 293: 5746, 294: 5745, 295: 5744, 296: 5743, 297: 5742, 298: 5741, 299: 5740, 300: 5739, 301: 5738, 302: 5737, 303: 5736, 304: 5735, 305: 5734, 306: 5733, 307: 5732, 308: 5731, 309: 5730, 310: 5729, 311: 5728, 312: 5727, 313: 5726, 314: 5725, 315: 5724, 316: 5723, 317: 5722, 318: 5721, 319: 5720, 320: 5719, 321: 5718, 322: 5717, 323: 5716, 324: 5715, 325: 5714, 326: 5713, 327: 5712, 328: 5711, 329: 5710, 330: 5709, 331: 5708, 332: 5707, 333: 5706, 334: 5705, 335: 5704, 336: 5703, 337: 5702, 338: 5701, 339: 5700, 340: 5699, 341: 5698, 342: 5697, 343: 5696, 344: 5695, 345: 5694, 346: 5693, 347: 5692, 348: 5691, 349: 5689, 350: 5690, 351: 5688, 352: 5687, 353: 5686, 354: 5685, 355: 5684, 356: 5683, 357: 5682, 358: 5681, 359: 5680, 360: 5679, 361: 5678, 362: 5677, 363: 5676, 364: 5675, 365: 5674, 366: 5673, 367: 5672, 368: 5671, 369: 5670, 370: 5669, 371: 5668, 372: 5667, 373: 5666, 374: 5665, 375: 5664, 376: 5663, 377: 5662, 378: 5661, 379: 5660, 380: 5659, 381: 5658, 382: 5657, 383: 5656, 384: 5655, 385: 5654, 386: 5653, 387: 5652, 388: 5651, 389: 5650, 390: 5649, 391: 5648, 392: 5647, 393: 5646, 394: 5645, 395: 5644, 396: 5643, 397: 5642, 398: 5641, 399: 5640, 400: 5639, 401: 5638, 402: 5637, 403: 5636, 404: 5635, 405: 5634, 406: 5633, 407: 5632, 408: 5631, 409: 5630, 410: 5629, 411: 5628, 412: 5627, 413: 5626, 414: 5625, 415: 5624, 416: 5623, 417: 5622, 418: 5621, 419: 5620, 420: 5619, 421: 5618, 422: 5617, 423: 5616, 424: 5615, 425: 5614, 426: 5613, 427: 5612, 428: 5611, 429: 5610, 430: 5609, 431: 5608, 432: 5607, 433: 5606, 434: 5605, 435: 5604, 436: 5603, 437: 5602, 438: 5601, 439: 5600, 440: 5599, 441: 5598, 442: 5597, 443: 5596, 444: 5595, 445: 5594, 446: 5593, 447: 5592, 448: 5591, 449: 5590, 450: 5589, 451: 5588, 452: 5587, 453: 5586, 454: 5585, 455: 5584, 456: 5583, 457: 5582, 458: 5581, 459: 5580, 460: 5578, 461: 5579, 462: 5577, 463: 5576, 464: 5575, 465: 5574, 466: 5573, 467: 5572, 468: 5571, 469: 5570, 470: 5569, 471: 5568, 472: 5567, 473: 5566, 474: 5565, 475: 5564, 476: 5563, 477: 5562, 478: 5561, 479: 5560, 480: 5559, 481: 5558, 482: 5557, 483: 5556, 484: 5555, 485: 5554, 486: 5553, 487: 5552, 488: 5551, 489: 5550, 490: 5549, 491: 5548, 492: 5547, 493: 5546, 494: 5545, 495: 5544, 496: 5543, 497: 5542, 498: 5541, 499: 5540, 500: 5539, 501: 5538, 502: 5537, 503: 5536, 504: 5535, 505: 5534, 506: 5533, 507: 5532, 508: 5531, 509: 5530, 510: 5529, 511: 5528, 512: 5527, 513: 5526, 514: 5525, 515: 5524, 516: 5523, 517: 5522, 518: 5521, 519: 5520, 520: 5519, 521: 5518, 522: 5517, 523: 5516, 524: 5515, 525: 5514, 526: 5513, 527: 5512, 528: 5511, 529: 5510, 530: 5509, 531: 5508, 532: 5507, 533: 5506, 534: 5505, 535: 5504, 536: 5503, 537: 5502, 538: 5501, 539: 5500, 540: 5499, 541: 5498, 542: 5497, 543: 5496, 544: 5495, 545: 5494, 546: 5493, 547: 5491, 548: 5490, 549: 5492, 550: 5489, 551: 5488, 552: 5487, 553: 5486, 554: 5485, 555: 5484, 556: 5483, 557: 5482, 558: 5481, 559: 5480, 560: 5479, 561: 5478, 562: 5477, 563: 5476, 564: 5474, 565: 5475, 566: 5473, 567: 5472, 568: 5471, 569: 5470, 570: 5469, 571: 5468, 572: 5466, 573: 5467, 574: 5465, 575: 5464, 576: 5463, 577: 5462, 578: 5461, 579: 5460, 580: 5459, 581: 5458, 582: 5457, 583: 5456, 584: 5455, 585: 5454, 586: 5453, 587: 5452, 588: 5451, 589: 5450, 590: 5449, 591: 5448, 592: 5447, 593: 5446, 594: 5445, 595: 5444, 596: 5443, 597: 5442, 598: 5441, 599: 5440, 600: 5439, 601: 5438, 602: 5437, 603: 5436, 604: 5435, 605: 5434, 606: 5433, 607: 5432, 608: 5431, 609: 5430, 610: 5429, 611: 5428, 612: 5427, 613: 5426, 614: 5425, 615: 5424, 616: 5423, 617: 5422, 618: 5421, 619: 5420, 620: 5419, 621: 5418, 622: 5417, 623: 5416, 624: 5415, 625: 5414, 626: 5413, 627: 5412, 628: 5411, 629: 5410, 630: 5409, 631: 5408, 632: 5407, 633: 5406, 634: 5405, 635: 5404, 636: 5403, 637: 5402, 638: 5401, 639: 5400, 640: 5399, 641: 5398, 642: 5397, 643: 5396, 644: 5395, 645: 5394, 646: 5393, 647: 5392, 648: 5391, 649: 5390, 650: 5389, 651: 5388, 652: 5387, 653: 5386, 654: 5385, 655: 5384, 656: 5383, 657: 5382, 658: 5381, 659: 5380, 660: 5379, 661: 5378, 662: 5377, 663: 5376, 664: 5375, 665: 5374, 666: 5373, 667: 5372, 668: 5371, 669: 5370, 670: 5369, 671: 5368, 672: 5366, 673: 5367, 674: 5365, 675: 5364, 676: 5363, 677: 5362, 678: 5361, 679: 5360, 680: 5359, 681: 5358, 682: 5357, 683: 5355, 684: 5356, 685: 5354, 686: 5353, 687: 5352, 688: 5985, 689: 5351, 690: 5350, 691: 5349, 692: 5348, 693: 5347, 694: 5346, 695: 5345, 696: 5344, 697: 5343, 698: 5342, 699: 5341, 700: 5340, 701: 5339, 702: 5338, 703: 5337, 704: 5336, 705: 5335, 706: 5334, 707: 5333, 708: 5332, 709: 5331, 710: 5330, 711: 5329, 712: 5328, 713: 5327, 714: 5326, 715: 5325, 716: 5324, 717: 5323, 718: 5322, 719: 5321, 720: 5320, 721: 5319, 722: 5318, 723: 5317, 724: 5316, 725: 5315, 726: 5314, 727: 5313, 728: 5312, 729: 5311, 730: 5310, 731: 5309, 732: 5308, 733: 5307, 734: 5306, 735: 5305, 736: 5304, 737: 5303, 738: 5302, 739: 5301, 740: 5300, 741: 5299, 742: 5298, 743: 5297, 744: 5296, 745: 5295, 746: 5294, 747: 5293, 748: 5292, 749: 5291, 750: 5290, 751: 5289, 752: 5288, 753: 5287, 754: 5286, 755: 5285, 756: 5284, 757: 5283, 758: 5282, 759: 5281, 760: 5280, 761: 5279, 762: 5278, 763: 5277, 764: 5276, 765: 5275, 766: 5274, 767: 5273, 768: 5272, 769: 5271, 770: 5270, 771: 5269, 772: 5268, 773: 5267, 774: 5266, 775: 5265, 776: 5264, 777: 5263, 778: 5262, 779: 5261, 780: 5260, 781: 5259, 782: 5258, 783: 5257, 784: 5256, 785: 5255, 786: 5254, 787: 5253, 788: 5252, 789: 5251, 790: 5250, 791: 5249, 792: 5248, 793: 5247, 794: 5246, 795: 5245, 796: 5244, 797: 5243, 798: 5242, 799: 5241, 800: 5240, 801: 5239, 802: 5238, 803: 5237, 804: 5236, 805: 5235, 806: 5234, 807: 5233, 808: 5232, 809: 5231, 810: 5230, 811: 5229, 812: 5228, 813: 5227, 814: 5225, 815: 5224, 816: 5223, 817: 5222, 818: 5221, 819: 5220, 820: 5219, 821: 5218, 822: 5217, 823: 5216, 824: 5215, 825: 5214, 826: 5213, 827: 5226, 828: 5212, 829: 5211, 830: 5210, 831: 5209, 832: 5208, 833: 5207, 834: 5206, 835: 5205, 836: 5204, 837: 5203, 838: 5202, 839: 5201, 840: 5200, 841: 5199, 842: 5198, 843: 5197, 844: 5196, 845: 5195, 846: 5194, 847: 5193, 848: 5192, 849: 5191, 850: 5190, 851: 5189, 852: 5188, 853: 5187, 854: 5186, 855: 5185, 856: 5184, 857: 5183, 858: 5182, 859: 5181, 860: 5180, 861: 5179, 862: 5178, 863: 5177, 864: 5176, 865: 5175, 866: 5174, 867: 5173, 868: 5171, 869: 5170, 870: 5169, 871: 5168, 872: 5167, 873: 5165, 874: 5166, 875: 5164, 876: 5163, 877: 5162, 878: 5161, 879: 5160, 880: 5159, 881: 5158, 882: 5156, 883: 5157, 884: 5155, 885: 5154, 886: 5153, 887: 5152, 888: 5151, 889: 5150, 890: 5149, 891: 5148, 892: 5147, 893: 5146, 894: 5145, 895: 5144, 896: 5143, 897: 5142, 898: 5141, 899: 5140, 900: 5139, 901: 5138, 902: 5137, 903: 5136, 904: 5135, 905: 5134, 906: 5133, 907: 5132, 908: 5131, 909: 5130, 910: 5129, 911: 5128, 912: 5127, 913: 5126, 914: 5125, 915: 5124, 916: 5123, 917: 5122, 918: 5121, 919: 5120, 920: 5119, 921: 5118, 922: 5117, 923: 5116, 924: 5115, 925: 5114, 926: 5113, 927: 5112, 928: 5111, 929: 5110, 930: 5109, 931: 5108, 932: 5107, 933: 5106, 934: 5105, 935: 5104, 936: 5103, 937: 5102, 938: 5100, 939: 5101, 940: 5099, 941: 5098, 942: 5097, 943: 5096, 944: 5095, 945: 5094, 946: 5093, 947: 5092, 948: 5091, 949: 5089, 950: 5090, 951: 5088, 952: 5087, 953: 5086, 954: 5085, 955: 5084, 956: 5083, 957: 5082, 958: 5081, 959: 5080, 960: 5079, 961: 5078, 962: 5077, 963: 5076, 964: 5075, 965: 5074, 966: 5073, 967: 5072, 968: 5071, 969: 5070, 970: 5068, 971: 5067, 972: 5066, 973: 5065, 974: 5064, 975: 5063, 976: 5062, 977: 5061, 978: 5060, 979: 5058, 980: 5059, 981: 5057, 982: 5056, 983: 5055, 984: 5054, 985: 5053, 986: 5052, 987: 5051, 988: 5050, 989: 5049, 990: 5048, 991: 5047, 992: 5046, 993: 5045, 994: 5044, 995: 5043, 996: 5042, 997: 5041, 998: 5040, 999: 5039, 1000: 5038, 1001: 5037, 1002: 5036, 1003: 5035, 1004: 5034, 1005: 5033, 1006: 5032, 1007: 5031, 1008: 5030, 1009: 5029, 1010: 5028, 1011: 5027, 1012: 5026, 1013: 5025, 1014: 5069, 1015: 5024, 1016: 5023, 1017: 5022, 1018: 5021, 1019: 5020, 1020: 5019, 1021: 5018, 1022: 5017, 1023: 5016, 1024: 5015, 1025: 5013, 1026: 5014, 1027: 5012, 1028: 5011, 1029: 5010, 1030: 5008, 1031: 5009, 1032: 5007, 1033: 5006, 1034: 5005, 1035: 5004, 1036: 5003, 1037: 5002, 1038: 5001, 1039: 5000, 1040: 4999, 1041: 4998, 1042: 4997, 1043: 4996, 1044: 4995, 1045: 4993, 1046: 4994, 1047: 4992, 1048: 4991, 1049: 4990, 1050: 4989, 1051: 4988, 1052: 4986, 1053: 4987, 1054: 4985, 1055: 4984, 1056: 4983, 1057: 4982, 1058: 4981, 1059: 4980, 1060: 4979, 1061: 4978, 1062: 4977, 1063: 4976, 1064: 4975, 1065: 4974, 1066: 4973, 1067: 4972, 1068: 4971, 1069: 4970, 1070: 4968, 1071: 4969, 1072: 4967, 1073: 4966, 1074: 4965, 1075: 4964, 1076: 4963, 1077: 4962, 1078: 4961, 1079: 4960, 1080: 4959, 1081: 4958, 1082: 4957, 1083: 4956, 1084: 4955, 1085: 4954, 1086: 4953, 1087: 4952, 1088: 4951, 1089: 4950, 1090: 4949, 1091: 4948, 1092: 4947, 1093: 4946, 1094: 4945, 1095: 4944, 1096: 4943, 1097: 4942, 1098: 4941, 1099: 4940, 1100: 4939, 1101: 4938, 1102: 4937, 1103: 4936, 1104: 4935, 1105: 4934, 1106: 4933, 1107: 4932, 1108: 4931, 1109: 4930, 1110: 4929, 1111: 4928, 1112: 4927, 1113: 4926, 1114: 4925, 1115: 4924, 1116: 4923, 1117: 4922, 1118: 4921, 1119: 4920, 1120: 4919, 1121: 4918, 1122: 4917, 1123: 4916, 1124: 4915, 1125: 4914, 1126: 4913, 1127: 4912, 1128: 4911, 1129: 4910, 1130: 4909, 1131: 4908, 1132: 4907, 1133: 4906, 1134: 4905, 1135: 4904, 1136: 4903, 1137: 4902, 1138: 4901, 1139: 4900, 1140: 4899, 1141: 4898, 1142: 4897, 1143: 5172, 1144: 4895, 1145: 4894, 1146: 4893, 1147: 4892, 1148: 4891, 1149: 4890, 1150: 4889, 1151: 4888, 1152: 4887, 1153: 4886, 1154: 4885, 1155: 4884, 1156: 4883, 1157: 4882, 1158: 4881, 1159: 4880, 1160: 4879, 1161: 4878, 1162: 4877, 1163: 4876, 1164: 4875, 1165: 4874, 1166: 4873, 1167: 4871, 1168: 4872, 1169: 4870, 1170: 4869, 1171: 4868, 1172: 4867, 1173: 4866, 1174: 4865, 1175: 4864, 1176: 4863, 1177: 4862, 1178: 4861, 1179: 4860, 1180: 4859, 1181: 4858, 1182: 4857, 1183: 4856, 1184: 4855, 1185: 4854, 1186: 4853, 1187: 4852, 1188: 4851, 1189: 4849, 1190: 4848, 1191: 4850, 1192: 4847, 1193: 4846, 1194: 4845, 1195: 4844, 1196: 4843, 1197: 4842, 1198: 4841, 1199: 4840, 1200: 4839, 1201: 4838, 1202: 4837, 1203: 4836, 1204: 4835, 1205: 4834, 1206: 4833, 1207: 4832, 1208: 4831, 1209: 4830, 1210: 4829, 1211: 4828, 1212: 4827, 1213: 4826, 1214: 4825, 1215: 4824, 1216: 4823, 1217: 4822, 1218: 4821, 1219: 4820, 1220: 4819, 1221: 4818, 1222: 4817, 1223: 4816, 1224: 4815, 1225: 4814, 1226: 4813, 1227: 4812, 1228: 4811, 1229: 4810, 1230: 4809, 1231: 4808, 1232: 4807, 1233: 4806, 1234: 4805, 1235: 4804, 1236: 4803, 1237: 4802, 1238: 4801, 1239: 4800, 1240: 4799, 1241: 4798, 1242: 4797, 1243: 4796, 1244: 4795, 1245: 4794, 1246: 4793, 1247: 4792, 1248: 4791, 1249: 4790, 1250: 4788, 1251: 4789, 1252: 4787, 1253: 4786, 1254: 4785, 1255: 4784, 1256: 4783, 1257: 4782, 1258: 4781, 1259: 4780, 1260: 4779, 1261: 4778, 1262: 4777, 1263: 4776, 1264: 4775, 1265: 4774, 1266: 4773, 1267: 4772, 1268: 4771, 1269: 4770, 1270: 4769, 1271: 4768, 1272: 4767, 1273: 4766, 1274: 4765, 1275: 4764, 1276: 4763, 1277: 4762, 1278: 4761, 1279: 4760, 1280: 4759, 1281: 4758, 1282: 4757, 1283: 4756, 1284: 4755, 1285: 4754, 1286: 4753, 1287: 4752, 1288: 4751, 1289: 4750, 1290: 4749, 1291: 4748, 1292: 4747, 1293: 4746, 1294: 4745, 1295: 4744, 1296: 4743, 1297: 4742, 1298: 4741, 1299: 4740, 1300: 4739, 1301: 4738, 1302: 4737, 1303: 4736, 1304: 4735, 1305: 4734, 1306: 4733, 1307: 4732, 1308: 4731, 1309: 4730, 1310: 4729, 1311: 4728, 1312: 4727, 1313: 4726, 1314: 4725, 1315: 4724, 1316: 4723, 1317: 4722, 1318: 4721, 1319: 4720, 1320: 4719, 1321: 4718, 1322: 4716, 1323: 4715, 1324: 4714, 1325: 4713, 1326: 4712, 1327: 4711, 1328: 4717, 1329: 4710, 1330: 4709, 1331: 4708, 1332: 4707, 1333: 4706, 1334: 4705, 1335: 4704, 1336: 4703, 1337: 4702, 1338: 4701, 1339: 4700, 1340: 4699, 1341: 4698, 1342: 4697, 1343: 4696, 1344: 4695, 1345: 4694, 1346: 4693, 1347: 4692, 1348: 4691, 1349: 4690, 1350: 4689, 1351: 4688, 1352: 4687, 1353: 4686, 1354: 4685, 1355: 4684, 1356: 4683, 1357: 4682, 1358: 4681, 1359: 4680, 1360: 4679, 1361: 4678, 1362: 4677, 1363: 4676, 1364: 4675, 1365: 4674, 1366: 4673, 1367: 4672, 1368: 4671, 1369: 4670, 1370: 4669, 1371: 4668, 1372: 4896, 1373: 4667, 1374: 4666, 1375: 4665, 1376: 4664, 1377: 4663, 1378: 4662, 1379: 4661, 1380: 4660, 1381: 4659, 1382: 4658, 1383: 4657, 1384: 4656, 1385: 4655, 1386: 4654, 1387: 4653, 1388: 4652, 1389: 4651, 1390: 4650, 1391: 4649, 1392: 4648, 1393: 4647, 1394: 4646, 1395: 4645, 1396: 4644, 1397: 4643, 1398: 4642, 1399: 4641, 1400: 4640, 1401: 4639, 1402: 4638, 1403: 4637, 1404: 4636, 1405: 4635, 1406: 4634, 1407: 4633, 1408: 4632, 1409: 4631, 1410: 4630, 1411: 4629, 1412: 4628, 1413: 4627, 1414: 4626, 1415: 4625, 1416: 4624, 1417: 4622, 1418: 4621, 1419: 4620, 1420: 4619, 1421: 4618, 1422: 4617, 1423: 4616, 1424: 4615, 1425: 4614, 1426: 4613, 1427: 4612, 1428: 4611, 1429: 4610, 1430: 4609, 1431: 4608, 1432: 4607, 1433: 4606, 1434: 4605, 1435: 4604, 1436: 4603, 1437: 4602, 1438: 4601, 1439: 4600, 1440: 4599, 1441: 4598, 1442: 4623, 1443: 4597, 1444: 4596, 1445: 4595, 1446: 4594, 1447: 4593, 1448: 4592, 1449: 4591, 1450: 4590, 1451: 4589, 1452: 4588, 1453: 4587, 1454: 4586, 1455: 4585, 1456: 4584, 1457: 4583, 1458: 4582, 1459: 4581, 1460: 4580, 1461: 4579, 1462: 4578, 1463: 4577, 1464: 4575, 1465: 4574, 1466: 4573, 1467: 4572, 1468: 4576, 1469: 4571, 1470: 4570, 1471: 4569, 1472: 4568, 1473: 4567, 1474: 4566, 1475: 4565, 1476: 4564, 1477: 4563, 1478: 4562, 1479: 4561, 1480: 4560, 1481: 4559, 1482: 4558, 1483: 4557, 1484: 4556, 1485: 4555, 1486: 4554, 1487: 4553, 1488: 4552, 1489: 4551, 1490: 4550, 1491: 4549, 1492: 4548, 1493: 4547, 1494: 4546, 1495: 4545, 1496: 4544, 1497: 4543, 1498: 4542, 1499: 4541, 1500: 4540, 1501: 4539, 1502: 4538, 1503: 4537, 1504: 4536, 1505: 4535, 1506: 4534, 1507: 4533, 1508: 4532, 1509: 4531, 1510: 4530, 1511: 4529, 1512: 4528, 1513: 4527, 1514: 4526, 1515: 4525, 1516: 4524, 1517: 4523, 1518: 4522, 1519: 4521, 1520: 4520, 1521: 4519, 1522: 4518, 1523: 4517, 1524: 4516, 1525: 4513, 1526: 4512, 1527: 4511, 1528: 4510, 1529: 4509, 1530: 4508, 1531: 4507, 1532: 4506, 1533: 4505, 1534: 4503, 1535: 4502, 1536: 4501, 1537: 4515, 1538: 4500, 1539: 4499, 1540: 4498, 1541: 4497, 1542: 4496, 1543: 4495, 1544: 4494, 1545: 4493, 1546: 4492, 1547: 4491, 1548: 4490, 1549: 4489, 1550: 4488, 1551: 4504, 1552: 4487, 1553: 4486, 1554: 4485, 1555: 4484, 1556: 4483, 1557: 4482, 1558: 4481, 1559: 4480, 1560: 4479, 1561: 4478, 1562: 4477, 1563: 4476, 1564: 4475, 1565: 4474, 1566: 4473, 1567: 4471, 1568: 4472, 1569: 4470, 1570: 4469, 1571: 4468, 1572: 4467, 1573: 4466, 1574: 4465, 1575: 4464, 1576: 4463, 1577: 4462, 1578: 4461, 1579: 4460, 1580: 4459, 1581: 4458, 1582: 4457, 1583: 4456, 1584: 4455, 1585: 4454, 1586: 4453, 1587: 4451, 1588: 4452, 1589: 4449, 1590: 4450, 1591: 4448, 1592: 4447, 1593: 4446, 1594: 4445, 1595: 4444, 1596: 4443, 1597: 4442, 1598: 4441, 1599: 4440, 1600: 4439, 1601: 4438, 1602: 4437, 1603: 4436, 1604: 4435, 1605: 4434, 1606: 4433, 1607: 4432, 1608: 4431, 1609: 4430, 1610: 4429, 1611: 4428, 1612: 4427, 1613: 4426, 1614: 4425, 1615: 4424, 1616: 4423, 1617: 4422, 1618: 4421, 1619: 4420, 1620: 4419, 1621: 4418, 1622: 4417, 1623: 4416, 1624: 4415, 1625: 4414, 1626: 4413, 1627: 4412, 1628: 4411, 1629: 4410, 1630: 4409, 1631: 4408, 1632: 4407, 1633: 4406, 1634: 4405, 1635: 4404, 1636: 4403, 1637: 4402, 1638: 4401, 1639: 4398, 1640: 4396, 1641: 4397, 1642: 4399, 1643: 4400, 1644: 4395, 1645: 4394, 1646: 4392, 1647: 4393, 1648: 4391, 1649: 4390, 1650: 4389, 1651: 4388, 1652: 4386, 1653: 4387, 1654: 4385, 1655: 4384, 1656: 4383, 1657: 4382, 1658: 4381, 1659: 4380, 1660: 4379, 1661: 4378, 1662: 4377, 1663: 4376, 1664: 4375, 1665: 4374, 1666: 4373, 1667: 4372, 1668: 4371, 1669: 4370, 1670: 4369, 1671: 4368, 1672: 4367, 1673: 4366, 1674: 4365, 1675: 4364, 1676: 4363, 1677: 4362, 1678: 4361, 1679: 4360, 1680: 4359, 1681: 4358, 1682: 4357, 1683: 4356, 1684: 4355, 1685: 4354, 1686: 4353, 1687: 4352, 1688: 4351, 1689: 4350, 1690: 4349, 1691: 4348, 1692: 4347, 1693: 4346, 1694: 4345, 1695: 4344, 1696: 4343, 1697: 4342, 1698: 4341, 1699: 4340, 1700: 4339, 1701: 4338, 1702: 4337, 1703: 4336, 1704: 4335, 1705: 4334, 1706: 4333, 1707: 4332, 1708: 4331, 1709: 4330, 1710: 4329, 1711: 4328, 1712: 4327, 1713: 4326, 1714: 4325, 1715: 4324, 1716: 4323, 1717: 4322, 1718: 4321, 1719: 4320, 1720: 4319, 1721: 4317, 1722: 4316, 1723: 4315, 1724: 4314, 1725: 4313, 1726: 4311, 1727: 4312, 1728: 4310, 1729: 4309, 1730: 4308, 1731: 4307, 1732: 4306, 1733: 4305, 1734: 4304, 1735: 4303, 1736: 4514, 1737: 4302, 1738: 4301, 1739: 4300, 1740: 4299, 1741: 4298, 1742: 4297, 1743: 4296, 1744: 4295, 1745: 4293, 1746: 4294, 1747: 4292, 1748: 4291, 1749: 4290, 1750: 4289, 1751: 4288, 1752: 4287, 1753: 4286, 1754: 4285, 1755: 4284, 1756: 4283, 1757: 4282, 1758: 4281, 1759: 4280, 1760: 4279, 1761: 4278, 1762: 4277, 1763: 4276, 1764: 4275, 1765: 4274, 1766: 4272, 1767: 4273, 1768: 4271, 1769: 4269, 1770: 4270, 1771: 4268, 1772: 4267, 1773: 4266, 1774: 4265, 1775: 4264, 1776: 4263, 1777: 4262, 1778: 4261, 1779: 4260, 1780: 4259, 1781: 4258, 1782: 4256, 1783: 4257, 1784: 4255, 1785: 4254, 1786: 4252, 1787: 4253, 1788: 4251, 1789: 4250, 1790: 4249, 1791: 4248, 1792: 4247, 1793: 4246, 1794: 4245, 1795: 4244, 1796: 4242, 1797: 4241, 1798: 4240, 1799: 4239, 1800: 4238, 1801: 4243, 1802: 4237, 1803: 4236, 1804: 4235, 1805: 4234, 1806: 4233, 1807: 4232, 1808: 4231, 1809: 4230, 1810: 4229, 1811: 4227, 1812: 4226, 1813: 4225, 1814: 4228, 1815: 4224, 1816: 4222, 1817: 4223, 1818: 4221, 1819: 4220, 1820: 4219, 1821: 4218, 1822: 4217, 1823: 4216, 1824: 4215, 1825: 4214, 1826: 4213, 1827: 4212, 1828: 4211, 1829: 4210, 1830: 4209, 1831: 4208, 1832: 4206, 1833: 4205, 1834: 4207, 1835: 4204, 1836: 4202, 1837: 4203, 1838: 4201, 1839: 4200, 1840: 4199, 1841: 4198, 1842: 4197, 1843: 4196, 1844: 4195, 1845: 4194, 1846: 4193, 1847: 4192, 1848: 4191, 1849: 4190, 1850: 4189, 1851: 4188, 1852: 4187, 1853: 4186, 1854: 4184, 1855: 4183, 1856: 4182, 1857: 4181, 1858: 4180, 1859: 4178, 1860: 4179, 1861: 4177, 1862: 4176, 1863: 4175, 1864: 4174, 1865: 4173, 1866: 4172, 1867: 4171, 1868: 4170, 1869: 4169, 1870: 4167, 1871: 4165, 1872: 4166, 1873: 4168, 1874: 4164, 1875: 4163, 1876: 4162, 1877: 4161, 1878: 4160, 1879: 4185, 1880: 4159, 1881: 4158, 1882: 4157, 1883: 4155, 1884: 4156, 1885: 4318, 1886: 4154, 1887: 4153, 1888: 4152, 1889: 4151, 1890: 4150, 1891: 4149, 1892: 4148, 1893: 4147, 1894: 4146, 1895: 4145, 1896: 4144, 1897: 4143, 1898: 4142, 1899: 4141, 1900: 4140, 1901: 4138, 1902: 4139, 1903: 4137, 1904: 4136, 1905: 4135, 1906: 4134, 1907: 4133, 1908: 4132, 1909: 4131, 1910: 4130, 1911: 4129, 1912: 4128, 1913: 4127, 1914: 4126, 1915: 4125, 1916: 4124, 1917: 4122, 1918: 4123, 1919: 4121, 1920: 4120, 1921: 4119, 1922: 4118, 1923: 4117, 1924: 4116, 1925: 4115, 1926: 4114, 1927: 4113, 1928: 4112, 1929: 4111, 1930: 4110, 1931: 4109, 1932: 4108, 1933: 4107, 1934: 4106, 1935: 4105, 1936: 4104, 1937: 4103, 1938: 4102, 1939: 4101, 1940: 4100, 1941: 4099, 1942: 4098, 1943: 4097, 1944: 4096, 1945: 4095, 1946: 4094, 1947: 4093, 1948: 4092, 1949: 4091, 1950: 4090, 1951: 4089, 1952: 4088, 1953: 4087, 1954: 4086, 1955: 4085, 1956: 4084, 1957: 4083, 1958: 4082, 1959: 4081, 1960: 4080, 1961: 4079, 1962: 4077, 1963: 4078, 1964: 4076, 1965: 4075, 1966: 4074, 1967: 4073, 1968: 4072, 1969: 4071, 1970: 4070, 1971: 4069, 1972: 4068, 1973: 4067, 1974: 4066, 1975: 4065, 1976: 4064, 1977: 4063, 1978: 4062, 1979: 4061, 1980: 4060, 1981: 4059, 1982: 4058, 1983: 4057, 1984: 4056, 1985: 4055, 1986: 4053, 1987: 4054, 1988: 4052, 1989: 4051, 1990: 4050, 1991: 4049, 1992: 4048, 1993: 4047, 1994: 4046, 1995: 4045, 1996: 4044, 1997: 4043, 1998: 4042, 1999: 4041, 2000: 4040, 2001: 4039, 2002: 4038, 2003: 4037, 2004: 4036, 2005: 4035, 2006: 4034, 2007: 4033, 2008: 4032, 2009: 4031, 2010: 4030, 2011: 4029, 2012: 4028, 2013: 4027, 2014: 4026, 2015: 4025, 2016: 4024, 2017: 4023, 2018: 4022, 2019: 4021, 2020: 4020, 2021: 4019, 2022: 4018, 2023: 4017, 2024: 4016, 2025: 4015, 2026: 4014, 2027: 4013, 2028: 4012, 2029: 4011, 2030: 4010, 2031: 4009, 2032: 4008, 2033: 4007, 2034: 4006, 2035: 4005, 2036: 4004, 2037: 4003, 2038: 4002, 2039: 4001, 2040: 4000, 2041: 3999, 2042: 3998, 2043: 3997, 2044: 3996, 2045: 3995, 2046: 3994, 2047: 3993, 2048: 3992, 2049: 3991, 2050: 3990, 2051: 3989, 2052: 3988, 2053: 3987, 2054: 3986, 2055: 3985, 2056: 3984, 2057: 3983, 2058: 3982, 2059: 3981, 2060: 3980, 2061: 3979, 2062: 3978, 2063: 3977, 2064: 3976, 2065: 3975, 2066: 3974, 2067: 3973, 2068: 3972, 2069: 3971, 2070: 3970, 2071: 3969, 2072: 3968, 2073: 3967, 2074: 3966, 2075: 3965, 2076: 3964, 2077: 3963, 2078: 3962, 2079: 3961, 2080: 3960, 2081: 3959, 2082: 3958, 2083: 3957, 2084: 3956, 2085: 3955, 2086: 3954, 2087: 3953, 2088: 3952, 2089: 3951, 2090: 3950, 2091: 3949, 2092: 3948, 2093: 3947, 2094: 3946, 2095: 3945, 2096: 3944, 2097: 3943, 2098: 3942, 2099: 3941, 2100: 3940, 2101: 3939, 2102: 3938, 2103: 3937, 2104: 3936, 2105: 3935, 2106: 3934, 2107: 3933, 2108: 3932, 2109: 3931, 2110: 3930, 2111: 3929, 2112: 3928, 2113: 3927, 2114: 3926, 2115: 3925, 2116: 3924, 2117: 3922, 2118: 3923, 2119: 3921, 2120: 3920, 2121: 3919, 2122: 3918, 2123: 3917, 2124: 3916, 2125: 3914, 2126: 3915, 2127: 3913, 2128: 3912, 2129: 3911, 2130: 3910, 2131: 3909, 2132: 3908, 2133: 3907, 2134: 3906, 2135: 3905, 2136: 3904, 2137: 3903, 2138: 3902, 2139: 3901, 2140: 3900, 2141: 3899, 2142: 3898, 2143: 3897, 2144: 3896, 2145: 3895, 2146: 3894, 2147: 3893, 2148: 3892, 2149: 3891, 2150: 3890, 2151: 3889, 2152: 3887, 2153: 3886, 2154: 3885, 2155: 3884, 2156: 3883, 2157: 3882, 2158: 3881, 2159: 3880, 2160: 3879, 2161: 3878, 2162: 3877, 2163: 3876, 2164: 3875, 2165: 3874, 2166: 3873, 2167: 3872, 2168: 3871, 2169: 3870, 2170: 3869, 2171: 3868, 2172: 3867, 2173: 3866, 2174: 3865, 2175: 3864, 2176: 3863, 2177: 3862, 2178: 3861, 2179: 3860, 2180: 3859, 2181: 3857, 2182: 3858, 2183: 3856, 2184: 3855, 2185: 3854, 2186: 3853, 2187: 3852, 2188: 3850, 2189: 3851, 2190: 3849, 2191: 3848, 2192: 3847, 2193: 3846, 2194: 3845, 2195: 3844, 2196: 3843, 2197: 3842, 2198: 3841, 2199: 3839, 2200: 3840, 2201: 3838, 2202: 3837, 2203: 3836, 2204: 3835, 2205: 3834, 2206: 3833, 2207: 3832, 2208: 3831, 2209: 3830, 2210: 3829, 2211: 3828, 2212: 3827, 2213: 3826, 2214: 3825, 2215: 3824, 2216: 3823, 2217: 3822, 2218: 3821, 2219: 3820, 2220: 3819, 2221: 3818, 2222: 3817, 2223: 3816, 2224: 3815, 2225: 3814, 2226: 3813, 2227: 3812, 2228: 3811, 2229: 3810, 2230: 3809, 2231: 3808, 2232: 3807, 2233: 3806, 2234: 3805, 2235: 3804, 2236: 3803, 2237: 3802, 2238: 3801, 2239: 3800, 2240: 3799, 2241: 3798, 2242: 3797, 2243: 3796, 2244: 3795, 2245: 3794, 2246: 3793, 2247: 3792, 2248: 3791, 2249: 3790, 2250: 3788, 2251: 3789, 2252: 3787, 2253: 3786, 2254: 3785, 2255: 3784, 2256: 3782, 2257: 3783, 2258: 3781, 2259: 3780, 2260: 3779, 2261: 3778, 2262: 3777, 2263: 3776, 2264: 3775, 2265: 3774, 2266: 3773, 2267: 3772, 2268: 3771, 2269: 3770, 2270: 3769, 2271: 3768, 2272: 3767, 2273: 3766, 2274: 3765, 2275: 3764, 2276: 3763, 2277: 3762, 2278: 3761, 2279: 3760, 2280: 3759, 2281: 3758, 2282: 3757, 2283: 3756, 2284: 3755, 2285: 3754, 2286: 3753, 2287: 3752, 2288: 3751, 2289: 3750, 2290: 3749, 2291: 3748, 2292: 3747, 2293: 3746, 2294: 3888, 2295: 3745, 2296: 3744, 2297: 3743, 2298: 3742, 2299: 3741, 2300: 3740, 2301: 3739, 2302: 3738, 2303: 3737, 2304: 3736, 2305: 3735, 2306: 3734, 2307: 3733, 2308: 3732, 2309: 3731, 2310: 3730, 2311: 3729, 2312: 3728, 2313: 3727, 2314: 3725, 2315: 3726, 2316: 3724, 2317: 3722, 2318: 3721, 2319: 3720, 2320: 3719, 2321: 3718, 2322: 3717, 2323: 3716, 2324: 3715, 2325: 3714, 2326: 3713, 2327: 3712, 2328: 3711, 2329: 3710, 2330: 3709, 2331: 3708, 2332: 3707, 2333: 3706, 2334: 3705, 2335: 3704, 2336: 3703, 2337: 3702, 2338: 3701, 2339: 3700, 2340: 3699, 2341: 3698, 2342: 3697, 2343: 3696, 2344: 3695, 2345: 3694, 2346: 3693, 2347: 3692, 2348: 3691, 2349: 3690, 2350: 3689, 2351: 3688, 2352: 3687, 2353: 3686, 2354: 3685, 2355: 3684, 2356: 3683, 2357: 3682, 2358: 3681, 2359: 3680, 2360: 3679, 2361: 3678, 2362: 3677, 2363: 3676, 2364: 3675, 2365: 3674, 2366: 3673, 2367: 3672, 2368: 3671, 2369: 3670, 2370: 3669, 2371: 3668, 2372: 3667, 2373: 3666, 2374: 3665, 2375: 3664, 2376: 3663, 2377: 3662, 2378: 3661, 2379: 3660, 2380: 3659, 2381: 3658, 2382: 3657, 2383: 3656, 2384: 3655, 2385: 3654, 2386: 3653, 2387: 3652, 2388: 3651, 2389: 3650, 2390: 3649, 2391: 3648, 2392: 3647, 2393: 3646, 2394: 3645, 2395: 3644, 2396: 3643, 2397: 3642, 2398: 3641, 2399: 3640, 2400: 3639, 2401: 3638, 2402: 3637, 2403: 3636, 2404: 3635, 2405: 3634, 2406: 3633, 2407: 3632, 2408: 3631, 2409: 3630, 2410: 3629, 2411: 3628, 2412: 3627, 2413: 3626, 2414: 3625, 2415: 3624, 2416: 3623, 2417: 3622, 2418: 3621, 2419: 3620, 2420: 3619, 2421: 3618, 2422: 3617, 2423: 3616, 2424: 3615, 2425: 3613, 2426: 3614, 2427: 3612, 2428: 3611, 2429: 3610, 2430: 3609, 2431: 3608, 2432: 3606, 2433: 3607, 2434: 3605, 2435: 3604, 2436: 3603, 2437: 3601, 2438: 3600, 2439: 3599, 2440: 3598, 2441: 3597, 2442: 3596, 2443: 3595, 2444: 3594, 2445: 3593, 2446: 3592, 2447: 3591, 2448: 3590, 2449: 3589, 2450: 3588, 2451: 3587, 2452: 3586, 2453: 3585, 2454: 3584, 2455: 3583, 2456: 3582, 2457: 3581, 2458: 3580, 2459: 3579, 2460: 3578, 2461: 3577, 2462: 3576, 2463: 3575, 2464: 3574, 2465: 3573, 2466: 3572, 2467: 3571, 2468: 3570, 2469: 3569, 2470: 3568, 2471: 3567, 2472: 3566, 2473: 3565, 2474: 3564, 2475: 3563, 2476: 3562, 2477: 3561, 2478: 3560, 2479: 3559, 2480: 3558, 2481: 3557, 2482: 3556, 2483: 3555, 2484: 3554, 2485: 3553, 2486: 3552, 2487: 3551, 2488: 3550, 2489: 3549, 2490: 3548, 2491: 3547, 2492: 3546, 2493: 3545, 2494: 3544, 2495: 3543, 2496: 3542, 2497: 3541, 2498: 3540, 2499: 3539, 2500: 3538, 2501: 3537, 2502: 3536, 2503: 3535, 2504: 3534, 2505: 3533, 2506: 3532, 2507: 3530, 2508: 3529, 2509: 3528, 2510: 3527, 2511: 3526, 2512: 3525, 2513: 3524, 2514: 3523, 2515: 3531, 2516: 3522, 2517: 3521, 2518: 3520, 2519: 3519, 2520: 3518, 2521: 3517, 2522: 3516, 2523: 3515, 2524: 3514, 2525: 3513, 2526: 3512, 2527: 3511, 2528: 3510, 2529: 3509, 2530: 3508, 2531: 3507, 2532: 3506, 2533: 3505, 2534: 3504, 2535: 3503, 2536: 3502, 2537: 3501, 2538: 3500, 2539: 3499, 2540: 3498, 2541: 3497, 2542: 3602, 2543: 3496, 2544: 3495, 2545: 3494, 2546: 3493, 2547: 3492, 2548: 3491, 2549: 3490, 2550: 3489, 2551: 3488, 2552: 3487, 2553: 3486, 2554: 3485, 2555: 3484, 2556: 3483, 2557: 3482, 2558: 3481, 2559: 3480, 2560: 3479, 2561: 3478, 2562: 3477, 2563: 3476, 2564: 3475, 2565: 3474, 2566: 3473, 2567: 3472, 2568: 3723, 2569: 3471, 2570: 3470, 2571: 3469, 2572: 3468, 2573: 3467, 2574: 3466, 2575: 3465, 2576: 3464, 2577: 3463, 2578: 3462, 2579: 3461, 2580: 3460, 2581: 3459, 2582: 3458, 2583: 3457, 2584: 3456, 2585: 3455, 2586: 3454, 2587: 3453, 2588: 3452, 2589: 3451, 2590: 3450, 2591: 3449, 2592: 3448, 2593: 3447, 2594: 3446, 2595: 3445, 2596: 3444, 2597: 3443, 2598: 3442, 2599: 3441, 2600: 3440, 2601: 3439, 2602: 3438, 2603: 3437, 2604: 3436, 2605: 3435, 2606: 3434, 2607: 3433, 2608: 3431, 2609: 3432, 2610: 3430, 2611: 3429, 2612: 3428, 2613: 3427, 2614: 3426, 2615: 3425, 2616: 3424, 2617: 3423, 2618: 3422, 2619: 3420, 2620: 3419, 2621: 3418, 2622: 3417, 2623: 3416, 2624: 3415, 2625: 3414, 2626: 3413, 2627: 3412, 2628: 3421, 2629: 3411, 2630: 3410, 2631: 3409, 2632: 3408, 2633: 3407, 2634: 3406, 2635: 3405, 2636: 3404, 2637: 3403, 2638: 3402, 2639: 3401, 2640: 3400, 2641: 3399, 2642: 3398, 2643: 3397, 2644: 3396, 2645: 3395, 2646: 3394, 2647: 3393, 2648: 3392, 2649: 3391, 2650: 3390, 2651: 3389, 2652: 3388, 2653: 3387, 2654: 3386, 2655: 3385, 2656: 3384, 2657: 3383, 2658: 3382, 2659: 3381, 2660: 3380, 2661: 3379, 2662: 3378, 2663: 3377, 2664: 3376, 2665: 3375, 2666: 3374, 2667: 3373, 2668: 3372, 2669: 3371, 2670: 3370, 2671: 3369, 2672: 3367, 2673: 3368, 2674: 3366, 2675: 3365, 2676: 3364, 2677: 3363, 2678: 3362, 2679: 3361, 2680: 3359, 2681: 3360, 2682: 3358, 2683: 3357, 2684: 3356, 2685: 3355, 2686: 3354, 2687: 3353, 2688: 3352, 2689: 3351, 2690: 3350, 2691: 3349, 2692: 3348, 2693: 3347, 2694: 3346, 2695: 3345, 2696: 3344, 2697: 3343, 2698: 3342, 2699: 3341, 2700: 3340, 2701: 3339, 2702: 3338, 2703: 3337, 2704: 3336, 2705: 3335, 2706: 3334, 2707: 3333, 2708: 3332, 2709: 3331, 2710: 3330, 2711: 3329, 2712: 3328, 2713: 3327, 2714: 3326, 2715: 3325, 2716: 3324, 2717: 3323, 2718: 3322, 2719: 3321, 2720: 3320, 2721: 3319, 2722: 3318, 2723: 3317, 2724: 3316, 2725: 3315, 2726: 3314, 2727: 3313, 2728: 3312, 2729: 3311, 2730: 3310, 2731: 3309, 2732: 3308, 2733: 3307, 2734: 3306, 2735: 3305, 2736: 3304, 2737: 3303, 2738: 3302, 2739: 3301, 2740: 3300, 2741: 3299, 2742: 3298, 2743: 3297, 2744: 3296, 2745: 3295, 2746: 3294, 2747: 3293, 2748: 3292, 2749: 3291, 2750: 3290, 2751: 3289, 2752: 3288, 2753: 3287, 2754: 3286, 2755: 3285, 2756: 3284, 2757: 3283, 2758: 3282, 2759: 3281, 2760: 3280, 2761: 3279, 2762: 3278, 2763: 3277, 2764: 3276, 2765: 3275, 2766: 3274, 2767: 3273, 2768: 3272, 2769: 3271, 2770: 3270, 2771: 3269, 2772: 3268, 2773: 3267, 2774: 3266, 2775: 3265, 2776: 3264, 2777: 3263, 2778: 3262, 2779: 3261, 2780: 3260, 2781: 3259, 2782: 3258, 2783: 3257, 2784: 3256, 2785: 3255, 2786: 3254, 2787: 3253, 2788: 3252, 2789: 3251, 2790: 3249, 2791: 3250, 2792: 3248, 2793: 3247, 2794: 3246, 2795: 3245, 2796: 3244, 2797: 3243, 2798: 3242, 2799: 3241, 2800: 3240, 2801: 3239, 2802: 3238, 2803: 3237, 2804: 3236, 2805: 3235, 2806: 3234, 2807: 3233, 2808: 3232, 2809: 3231, 2810: 3230, 2811: 3229, 2812: 3228, 2813: 3227, 2814: 3226, 2815: 3225, 2816: 3224, 2817: 3223, 2818: 3222, 2819: 3221, 2820: 3220, 2821: 3218, 2822: 3217, 2823: 3216, 2824: 3215, 2825: 3219, 2826: 3214, 2827: 3213, 2828: 3212, 2829: 3211, 2830: 3210, 2831: 3209, 2832: 3208, 2833: 3207, 2834: 3206, 2835: 3205, 2836: 3204, 2837: 3203, 2838: 3202, 2839: 3201, 2840: 3200, 2841: 3199, 2842: 3198, 2843: 3197, 2844: 3196, 2845: 3195, 2846: 3194, 2847: 3193, 2848: 3192, 2849: 3191, 2850: 3190, 2851: 3189, 2852: 3188, 2853: 3187, 2854: 3186, 2855: 3185, 2856: 3184, 2857: 3183, 2858: 3182, 2859: 3181, 2860: 3179, 2861: 3180, 2862: 3178, 2863: 3177, 2864: 3176, 2865: 3175, 2866: 3174, 2867: 3173, 2868: 3172, 2869: 3171, 2870: 3170, 2871: 3169, 2872: 3168, 2873: 3167, 2874: 3166, 2875: 3165, 2876: 3164, 2877: 3163, 2878: 3162, 2879: 3161, 2880: 3160, 2881: 3159, 2882: 3158, 2883: 3157, 2884: 3156, 2885: 3155, 2886: 3154, 2887: 3153, 2888: 3152, 2889: 3151, 2890: 3150, 2891: 3149, 2892: 3148, 2893: 3147, 2894: 3146, 2895: 3145, 2896: 3144, 2897: 3143, 2898: 3142, 2899: 3141, 2900: 3140, 2901: 3139, 2902: 3138, 2903: 3137, 2904: 3136, 2905: 3135, 2906: 3134, 2907: 3133, 2908: 3132, 2909: 3131, 2910: 3130, 2911: 3129, 2912: 3128, 2913: 3126, 2914: 3125, 2915: 3127, 2916: 3124, 2917: 3123, 2918: 3122, 2919: 3121, 2920: 3120, 2921: 3119, 2922: 3118, 2923: 3117, 2924: 3116, 2925: 3114, 2926: 3113, 2927: 3112, 2928: 3111, 2929: 3110, 2930: 3109, 2931: 3108, 2932: 3107, 2933: 3106, 2934: 3105, 2935: 3104, 2936: 3103, 2937: 3102, 2938: 3101, 2939: 3100, 2940: 3099, 2941: 3115, 2942: 3098, 2943: 3097, 2944: 3096, 2945: 3095, 2946: 3094, 2947: 3093, 2948: 3092, 2949: 3091, 2950: 3090, 2951: 3089, 2952: 3088, 2953: 3087, 2954: 3086, 2955: 3085, 2956: 3084, 2957: 3083, 2958: 3082, 2959: 3081, 2960: 3080, 2961: 3079, 2962: 3078, 2963: 3077, 2964: 3076, 2965: 3075, 2966: 3074, 2967: 3073, 2968: 3072, 2969: 3071, 2970: 3070, 2971: 3069, 2972: 3068, 2973: 3067, 2974: 3066, 2975: 3065, 2976: 3064, 2977: 3063, 2978: 3062, 2979: 3061, 2980: 3060, 2981: 3059, 2982: 3058, 2983: 3057, 2984: 3056, 2985: 3055, 2986: 3054, 2987: 3053, 2988: 3052, 2989: 3050, 2990: 3051, 2991: 3049, 2992: 3048, 2993: 3047, 2994: 3046, 2995: 3045, 2996: 3044, 2997: 3043, 2998: 3042, 2999: 3040, 3000: 3041, 3001: 3039, 3002: 3038, 3003: 3037, 3004: 3036, 3005: 3035, 3006: 3034, 3007: 3033, 3008: 3032, 3009: 3031, 3010: 3030, 3011: 3029, 3012: 3028, 3013: 3027, 3014: 3026, 3015: 3025, 3016: 3024, 3017: 3023, 3018: 3022, 3019: 3021, 3020: 3020, 3021: 3019, 3022: 3018, 3023: 3017, 3024: 3016, 3025: 3015, 3026: 3014, 3027: 3013, 3028: 3012, 3029: 3011, 3030: 3010, 3031: 3009, 3032: 3008, 3033: 3007, 3034: 3006, 3035: 3005, 3036: 3004, 3037: 3002, 3038: 3001, 3039: 3000, 3040: 2999, 3041: 2998, 3042: 2997, 3043: 2996, 3044: 2995, 3045: 2994, 3046: 2993, 3047: 2992, 3048: 2991, 3049: 2990, 3050: 2989, 3051: 3003, 3052: 2988, 3053: 2987, 3054: 2986, 3055: 2985, 3056: 2984, 3057: 2983, 3058: 2982, 3059: 2981, 3060: 2979, 3061: 2978, 3062: 2977, 3063: 2976, 3064: 2975, 3065: 2974, 3066: 2973, 3067: 2972, 3068: 2971, 3069: 2970, 3070: 2969, 3071: 2968, 3072: 2967, 3073: 2966, 3074: 2965, 3075: 2964, 3076: 2963, 3077: 2962, 3078: 2961, 3079: 2960, 3080: 2959, 3081: 2958, 3082: 2957, 3083: 2956, 3084: 2955, 3085: 2954, 3086: 2953, 3087: 2952, 3088: 2951, 3089: 2950, 3090: 2949, 3091: 2948, 3092: 2946, 3093: 2945, 3094: 2944, 3095: 2943, 3096: 2942, 3097: 2941, 3098: 2940, 3099: 2939, 3100: 2938, 3101: 2937, 3102: 2936, 3103: 2935, 3104: 2934, 3105: 2933, 3106: 2932, 3107: 2931, 3108: 2930, 3109: 2929, 3110: 2928, 3111: 2927, 3112: 2926, 3113: 2925, 3114: 2924, 3115: 2923, 3116: 2922, 3117: 2921, 3118: 2920, 3119: 2919, 3120: 2918, 3121: 2917, 3122: 2916, 3123: 2915, 3124: 2914, 3125: 2913, 3126: 2912, 3127: 2911, 3128: 2909, 3129: 2908, 3130: 2907, 3131: 2906, 3132: 2905, 3133: 2904, 3134: 2903, 3135: 2902, 3136: 2901, 3137: 2900, 3138: 2899, 3139: 2898, 3140: 2897, 3141: 2895, 3142: 2896, 3143: 2894, 3144: 2893, 3145: 2892, 3146: 2891, 3147: 2890, 3148: 2889, 3149: 2888, 3150: 2887, 3151: 2886, 3152: 2885, 3153: 2884, 3154: 2882, 3155: 2881, 3156: 2883, 3157: 2880, 3158: 2879, 3159: 2878, 3160: 2877, 3161: 2876, 3162: 2875, 3163: 2874, 3164: 2873, 3165: 2872, 3166: 2871, 3167: 2870, 3168: 2869, 3169: 2868, 3170: 2867, 3171: 2866, 3172: 2865, 3173: 2864, 3174: 2863, 3175: 2862, 3176: 2861, 3177: 2860, 3178: 2859, 3179: 2858, 3180: 2857, 3181: 2856, 3182: 2855, 3183: 2854, 3184: 2853, 3185: 2852, 3186: 2851, 3187: 2850, 3188: 2849, 3189: 2848, 3190: 2847, 3191: 2846, 3192: 2845, 3193: 2844, 3194: 2843, 3195: 2842, 3196: 2841, 3197: 2840, 3198: 2839, 3199: 2838, 3200: 2837, 3201: 2836, 3202: 2835, 3203: 2834, 3204: 2833, 3205: 2832, 3206: 2831, 3207: 2830, 3208: 2829, 3209: 2828, 3210: 2827, 3211: 2826, 3212: 2825, 3213: 2824, 3214: 2823, 3215: 2822, 3216: 2821, 3217: 2820, 3218: 2819, 3219: 2818, 3220: 2817, 3221: 2816, 3222: 2815, 3223: 2814, 3224: 2813, 3225: 2812, 3226: 2811, 3227: 2810, 3228: 2809, 3229: 2808, 3230: 2807, 3231: 2806, 3232: 2805, 3233: 2804, 3234: 2803, 3235: 2802, 3236: 2801, 3237: 2800, 3238: 2799, 3239: 2798, 3240: 2797, 3241: 2796, 3242: 2795, 3243: 2794, 3244: 2793, 3245: 2792, 3246: 2791, 3247: 2790, 3248: 2789, 3249: 2788, 3250: 2787, 3251: 2786, 3252: 2785, 3253: 2784, 3254: 2783, 3255: 2782, 3256: 2781, 3257: 2780, 3258: 2779, 3259: 2778, 3260: 2777, 3261: 2776, 3262: 2775, 3263: 2774, 3264: 2773, 3265: 2772, 3266: 2771, 3267: 2770, 3268: 2769, 3269: 2768, 3270: 2767, 3271: 2766, 3272: 2765, 3273: 2764, 3274: 2763, 3275: 2762, 3276: 2761, 3277: 2760, 3278: 2759, 3279: 2758, 3280: 2757, 3281: 2756, 3282: 2755, 3283: 2754, 3284: 2753, 3285: 2752, 3286: 2751, 3287: 2750, 3288: 2749, 3289: 2748, 3290: 2747, 3291: 2746, 3292: 2745, 3293: 2744, 3294: 2743, 3295: 2742, 3296: 2741, 3297: 2740, 3298: 2739, 3299: 2738, 3300: 2737, 3301: 2736, 3302: 2735, 3303: 2734, 3304: 2733, 3305: 2732, 3306: 2731, 3307: 2730, 3308: 2729, 3309: 2728, 3310: 2727, 3311: 2726, 3312: 2725, 3313: 2724, 3314: 2723, 3315: 2722, 3316: 2721, 3317: 2720, 3318: 2719, 3319: 2718, 3320: 2716, 3321: 2714, 3322: 2717, 3323: 2715, 3324: 2713, 3325: 2712, 3326: 2711, 3327: 2710, 3328: 2709, 3329: 2708, 3330: 2707, 3331: 2706, 3332: 2705, 3333: 2704, 3334: 2703, 3335: 2702, 3336: 2701, 3337: 2700, 3338: 2699, 3339: 2698, 3340: 2697, 3341: 2696, 3342: 2695, 3343: 2694, 3344: 2693, 3345: 2692, 3346: 2691, 3347: 2690, 3348: 2689, 3349: 2688, 3350: 2687, 3351: 2686, 3352: 2685, 3353: 2684, 3354: 2683, 3355: 2682, 3356: 2681, 3357: 2680, 3358: 2679, 3359: 2678, 3360: 2677, 3361: 2676, 3362: 2675, 3363: 2674, 3364: 2673, 3365: 2672, 3366: 2671, 3367: 2670, 3368: 2669, 3369: 2668, 3370: 2667, 3371: 2666, 3372: 2665, 3373: 2664, 3374: 2663, 3375: 2662, 3376: 2661, 3377: 2660, 3378: 2659, 3379: 2658, 3380: 2657, 3381: 2656, 3382: 2655, 3383: 2653, 3384: 2652, 3385: 2651, 3386: 2650, 3387: 2649, 3388: 2648, 3389: 2654, 3390: 2647, 3391: 2646, 3392: 2645, 3393: 2644, 3394: 2643, 3395: 2642, 3396: 2641, 3397: 2640, 3398: 2639, 3399: 2638, 3400: 2637, 3401: 2636, 3402: 2635, 3403: 2634, 3404: 2633, 3405: 2632, 3406: 2631, 3407: 2630, 3408: 2629, 3409: 2628, 3410: 2627, 3411: 2626, 3412: 2625, 3413: 2624, 3414: 2623, 3415: 2622, 3416: 2621, 3417: 2620, 3418: 2619, 3419: 2618, 3420: 2617, 3421: 2616, 3422: 2615, 3423: 2614, 3424: 2613, 3425: 2612, 3426: 2611, 3427: 2610, 3428: 2609, 3429: 2608, 3430: 2607, 3431: 2606, 3432: 2605, 3433: 2604, 3434: 2603, 3435: 2602, 3436: 2600, 3437: 2599, 3438: 2598, 3439: 2597, 3440: 2601, 3441: 2596, 3442: 2595, 3443: 2594, 3444: 2593, 3445: 2592, 3446: 2591, 3447: 2590, 3448: 2589, 3449: 2588, 3450: 2587, 3451: 2586, 3452: 2584, 3453: 2585, 3454: 2583, 3455: 2582, 3456: 2581, 3457: 2580, 3458: 2579, 3459: 2578, 3460: 2577, 3461: 2576, 3462: 2575, 3463: 2574, 3464: 2573, 3465: 2572, 3466: 2571, 3467: 2570, 3468: 2569, 3469: 2568, 3470: 2567, 3471: 2566, 3472: 2565, 3473: 2564, 3474: 2563, 3475: 2562, 3476: 2561, 3477: 2560, 3478: 2559, 3479: 2558, 3480: 2557, 3481: 2556, 3482: 2555, 3483: 2554, 3484: 2553, 3485: 2552, 3486: 2551, 3487: 2550, 3488: 2549, 3489: 2548, 3490: 2547, 3491: 2546, 3492: 2545, 3493: 2544, 3494: 2543, 3495: 2542, 3496: 2541, 3497: 2540, 3498: 2539, 3499: 2538, 3500: 2537, 3501: 2535, 3502: 2536, 3503: 2534, 3504: 2533, 3505: 2532, 3506: 2531, 3507: 2530, 3508: 2529, 3509: 2528, 3510: 2527, 3511: 2526, 3512: 2525, 3513: 2524, 3514: 2523, 3515: 2522, 3516: 2521, 3517: 2520, 3518: 2519, 3519: 2518, 3520: 2517, 3521: 2516, 3522: 2515, 3523: 2514, 3524: 2513, 3525: 2512, 3526: 2511, 3527: 2510, 3528: 2509, 3529: 2508, 3530: 2507, 3531: 2506, 3532: 2505, 3533: 2504, 3534: 2503, 3535: 2502, 3536: 2501, 3537: 2500, 3538: 2499, 3539: 2498, 3540: 2497, 3541: 2496, 3542: 2495, 3543: 2494, 3544: 2493, 3545: 2492, 3546: 2491, 3547: 2490, 3548: 2489, 3549: 2488, 3550: 2487, 3551: 2486, 3552: 2485, 3553: 2484, 3554: 2483, 3555: 2482, 3556: 2481, 3557: 2480, 3558: 2479, 3559: 2478, 3560: 2476, 3561: 2477, 3562: 2475, 3563: 2474, 3564: 2473, 3565: 2472, 3566: 2471, 3567: 2470, 3568: 2469, 3569: 2468, 3570: 2467, 3571: 2466, 3572: 2465, 3573: 2464, 3574: 2462, 3575: 2463, 3576: 2461, 3577: 2460, 3578: 2459, 3579: 2458, 3580: 2457, 3581: 2456, 3582: 2455, 3583: 2454, 3584: 2453, 3585: 2452, 3586: 2451, 3587: 2450, 3588: 2449, 3589: 2448, 3590: 2447, 3591: 2446, 3592: 2445, 3593: 2444, 3594: 2443, 3595: 2442, 3596: 2441, 3597: 2440, 3598: 2439, 3599: 2438, 3600: 2436, 3601: 2435, 3602: 2433, 3603: 2437, 3604: 2431, 3605: 2430, 3606: 2432, 3607: 2434, 3608: 2429, 3609: 2428, 3610: 2427, 3611: 2426, 3612: 2424, 3613: 2423, 3614: 2422, 3615: 2421, 3616: 2420, 3617: 2425, 3618: 2419, 3619: 2418, 3620: 2417, 3621: 2415, 3622: 2416, 3623: 2414, 3624: 2413, 3625: 2412, 3626: 2411, 3627: 2410, 3628: 2409, 3629: 2408, 3630: 2407, 3631: 2406, 3632: 2405, 3633: 2404, 3634: 2403, 3635: 2402, 3636: 2401, 3637: 2400, 3638: 2399, 3639: 2398, 3640: 2397, 3641: 2396, 3642: 2395, 3643: 2394, 3644: 2393, 3645: 2392, 3646: 2391, 3647: 2390, 3648: 2389, 3649: 2388, 3650: 2387, 3651: 2386, 3652: 2385, 3653: 2384, 3654: 2383, 3655: 2382, 3656: 2381, 3657: 2380, 3658: 2378, 3659: 2379, 3660: 2377, 3661: 2376, 3662: 2375, 3663: 2374, 3664: 2373, 3665: 2372, 3666: 2371, 3667: 2370, 3668: 2369, 3669: 2368, 3670: 2367, 3671: 2366, 3672: 2365, 3673: 2364, 3674: 2363, 3675: 2362, 3676: 2361, 3677: 2360, 3678: 2359, 3679: 2358, 3680: 2357, 3681: 2356, 3682: 2355, 3683: 2354, 3684: 2352, 3685: 2353, 3686: 2351, 3687: 2350, 3688: 2348, 3689: 2349, 3690: 2347, 3691: 2346, 3692: 2345, 3693: 2344, 3694: 2342, 3695: 2343, 3696: 2341, 3697: 2340, 3698: 2339, 3699: 2338, 3700: 2337, 3701: 2336, 3702: 2335, 3703: 2334, 3704: 2333, 3705: 2332, 3706: 2331, 3707: 2330, 3708: 2329, 3709: 2328, 3710: 2327, 3711: 2326, 3712: 2325, 3713: 2324, 3714: 2323, 3715: 2322, 3716: 2321, 3717: 2320, 3718: 2319, 3719: 2318, 3720: 2317, 3721: 2316, 3722: 2315, 3723: 2314, 3724: 2313, 3725: 2312, 3726: 2311, 3727: 2310, 3728: 2309, 3729: 2308, 3730: 2307, 3731: 2306, 3732: 2305, 3733: 2304, 3734: 2303, 3735: 2302, 3736: 2301, 3737: 2300, 3738: 2299, 3739: 2298, 3740: 2297, 3741: 2296, 3742: 2295, 3743: 2294, 3744: 2293, 3745: 2292, 3746: 2291, 3747: 2290, 3748: 2289, 3749: 2288, 3750: 2287, 3751: 2286, 3752: 2285, 3753: 2284, 3754: 2283, 3755: 2282, 3756: 2281, 3757: 2280, 3758: 2279, 3759: 2278, 3760: 2277, 3761: 2276, 3762: 2275, 3763: 2274, 3764: 2273, 3765: 2272, 3766: 2271, 3767: 2270, 3768: 2269, 3769: 2268, 3770: 2267, 3771: 2266, 3772: 2265, 3773: 2264, 3774: 2263, 3775: 2262, 3776: 2261, 3777: 2260, 3778: 2259, 3779: 2258, 3780: 2257, 3781: 2256, 3782: 2255, 3783: 2254, 3784: 2253, 3785: 2252, 3786: 2250, 3787: 2251, 3788: 2248, 3789: 2246, 3790: 2244, 3791: 2243, 3792: 2242, 3793: 2241, 3794: 2249, 3795: 2245, 3796: 2240, 3797: 2239, 3798: 2238, 3799: 2237, 3800: 2235, 3801: 2236, 3802: 2234, 3803: 2233, 3804: 2232, 3805: 2231, 3806: 2230, 3807: 2229, 3808: 2228, 3809: 2227, 3810: 2226, 3811: 2224, 3812: 2225, 3813: 2223, 3814: 2222, 3815: 2221, 3816: 2220, 3817: 2219, 3818: 2218, 3819: 2217, 3820: 2216, 3821: 2215, 3822: 2214, 3823: 2212, 3824: 2213, 3825: 2211, 3826: 2210, 3827: 2209, 3828: 2208, 3829: 2207, 3830: 2206, 3831: 2205, 3832: 2203, 3833: 2204, 3834: 2202, 3835: 2201, 3836: 2200, 3837: 2199, 3838: 2197, 3839: 2198, 3840: 2196, 3841: 2195, 3842: 2192, 3843: 2191, 3844: 2193, 3845: 2194, 3846: 2190, 3847: 2189, 3848: 2188, 3849: 2186, 3850: 2185, 3851: 2187, 3852: 2184, 3853: 2182, 3854: 2183, 3855: 2181, 3856: 2180, 3857: 2179, 3858: 2178, 3859: 2177, 3860: 2175, 3861: 2176, 3862: 2174, 3863: 2173, 3864: 2172, 3865: 2171, 3866: 2169, 3867: 2170, 3868: 2168, 3869: 2167, 3870: 2166, 3871: 2165, 3872: 2164, 3873: 2163, 3874: 2162, 3875: 2161, 3876: 2160, 3877: 2159, 3878: 2158, 3879: 2157, 3880: 2156, 3881: 2155, 3882: 2154, 3883: 2153, 3884: 2152, 3885: 2150, 3886: 2151, 3887: 2149, 3888: 2148, 3889: 2147, 3890: 2146, 3891: 2145, 3892: 2144, 3893: 2143, 3894: 2142, 3895: 2141, 3896: 2140, 3897: 2139, 3898: 2138, 3899: 2137, 3900: 2136, 3901: 2135, 3902: 2134, 3903: 2133, 3904: 2132, 3905: 2131, 3906: 2130, 3907: 2129, 3908: 2128, 3909: 2127, 3910: 2126, 3911: 2125, 3912: 2123, 3913: 2124, 3914: 2122, 3915: 2121, 3916: 2120, 3917: 2119, 3918: 2118, 3919: 2117, 3920: 2116, 3921: 2115, 3922: 2114, 3923: 2113, 3924: 2112, 3925: 2111, 3926: 2110, 3927: 2109, 3928: 2108, 3929: 2107, 3930: 2106, 3931: 2105, 3932: 2104, 3933: 2103, 3934: 2102, 3935: 2101, 3936: 2100, 3937: 2099, 3938: 2098, 3939: 2097, 3940: 2096, 3941: 2095, 3942: 2093, 3943: 2094, 3944: 2092, 3945: 2091, 3946: 2090, 3947: 2088, 3948: 2089, 3949: 2087, 3950: 2085, 3951: 2086, 3952: 2084, 3953: 2083, 3954: 2082, 3955: 2081, 3956: 2080, 3957: 2079, 3958: 2078, 3959: 2077, 3960: 2075, 3961: 2076, 3962: 2074, 3963: 2073, 3964: 2072, 3965: 2071, 3966: 2070, 3967: 2069, 3968: 2068, 3969: 2067, 3970: 2066, 3971: 2064, 3972: 2065, 3973: 2063, 3974: 2062, 3975: 2061, 3976: 2060, 3977: 2059, 3978: 2057, 3979: 2058, 3980: 2056, 3981: 2055, 3982: 2054, 3983: 2053, 3984: 2052, 3985: 2051, 3986: 2050, 3987: 2049, 3988: 2048, 3989: 2047, 3990: 2046, 3991: 2045, 3992: 2044, 3993: 2043, 3994: 2042, 3995: 2041, 3996: 2039, 3997: 2040, 3998: 2038, 3999: 2036, 4000: 2037, 4001: 2035, 4002: 2034, 4003: 2033, 4004: 2032, 4005: 2031, 4006: 2030, 4007: 2029, 4008: 2028, 4009: 2027, 4010: 2026, 4011: 2025, 4012: 2024, 4013: 2023, 4014: 2022, 4015: 2020, 4016: 2021, 4017: 2019, 4018: 2018, 4019: 2017, 4020: 2016, 4021: 2015, 4022: 2014, 4023: 2013, 4024: 2012, 4025: 2011, 4026: 2010, 4027: 2009, 4028: 2008, 4029: 2005, 4030: 2007, 4031: 2006, 4032: 2004, 4033: 2002, 4034: 2003, 4035: 2001, 4036: 2000, 4037: 1999, 4038: 1998, 4039: 1997, 4040: 1996, 4041: 1995, 4042: 1994, 4043: 1993, 4044: 1992, 4045: 1991, 4046: 1990, 4047: 1989, 4048: 1988, 4049: 1985, 4050: 1986, 4051: 1987, 4052: 1983, 4053: 1984, 4054: 1982, 4055: 1981, 4056: 1980, 4057: 1979, 4058: 1978, 4059: 1977, 4060: 1974, 4061: 1975, 4062: 1973, 4063: 1976, 4064: 1971, 4065: 1972, 4066: 1969, 4067: 1968, 4068: 1967, 4069: 1970, 4070: 1966, 4071: 1965, 4072: 1964, 4073: 1963, 4074: 1962, 4075: 1961, 4076: 1960, 4077: 1959, 4078: 1958, 4079: 1957, 4080: 1956, 4081: 1955, 4082: 1952, 4083: 1951, 4084: 1954, 4085: 1948, 4086: 1945, 4087: 1946, 4088: 1953, 4089: 1944, 4090: 1937, 4091: 1949, 4092: 1950, 4093: 1943, 4094: 1941, 4095: 1942, 4096: 1938, 4097: 1935, 4098: 1939, 4099: 1947, 4100: 1940, 4101: 1934, 4102: 1931, 4103: 1928, 4104: 1926, 4105: 1929, 4106: 1927, 4107: 1924, 4108: 1925, 4109: 1923, 4110: 1921, 4111: 1920, 4112: 1922, 4113: 1936, 4114: 1919, 4115: 1930, 4116: 1917, 4117: 1918, 4118: 1916, 4119: 1914, 4120: 1912, 4121: 1909, 4122: 1911, 4123: 1906, 4124: 1904, 4125: 1908, 4126: 1905, 4127: 1903, 4128: 1907, 4129: 1902, 4130: 1901, 4131: 1900, 4132: 1933, 4133: 1915, 4134: 1910, 4135: 1894, 4136: 1896, 4137: 1898, 4138: 1899, 4139: 1893, 4140: 1892, 4141: 1895, 4142: 1913, 4143: 1891, 4144: 1889, 4145: 1890, 4146: 1888, 4147: 1886, 4148: 1885, 4149: 1897, 4150: 1887, 4151: 1882, 4152: 1881, 4153: 1880, 4154: 1883, 4155: 1879, 4156: 1884, 4157: 1932, 4158: 1878, 4159: 1876, 4160: 1873, 4161: 1874, 4162: 1872, 4163: 1871, 4164: 1870, 4165: 1869, 4166: 1868, 4167: 1867, 4168: 1866, 4169: 1865, 4170: 1864, 4171: 1863, 4172: 1862, 4173: 1859, 4174: 1861, 4175: 1860, 4176: 1858, 4177: 1857, 4178: 1856, 4179: 1855, 4180: 1854, 4181: 1852, 4182: 1851, 4183: 1850, 4184: 1849, 4185: 1846, 4186: 1844, 4187: 1843, 4188: 1848, 4189: 1847, 4190: 1842, 4191: 1841, 4192: 1840, 4193: 1839, 4194: 1838, 4195: 1837, 4196: 1833, 4197: 1835, 4198: 1834, 4199: 1830, 4200: 1824, 4201: 1832, 4202: 1836, 4203: 1826, 4204: 1845, 4205: 1822, 4206: 1829, 4207: 1828, 4208: 1823, 4209: 1827, 4210: 1820, 4211: 1819, 4212: 1818, 4213: 1817, 4214: 1816, 4215: 1814, 4216: 1812, 4217: 1811, 4218: 1813, 4219: 1821, 4220: 1809, 4221: 1808, 4222: 1810, 4223: 1807, 4224: 1831, 4225: 1805, 4226: 1804, 4227: 1806, 4228: 1815, 4229: 1803, 4230: 1802, 4231: 1801, 4232: 1800, 4233: 1798, 4234: 1799, 4235: 1797, 4236: 1796, 4237: 1793, 4238: 1795, 4239: 1792, 4240: 1794, 4241: 1790, 4242: 1791, 4243: 1787, 4244: 1875, 4245: 1789, 4246: 1788, 4247: 1784, 4248: 1783, 4249: 1785, 4250: 1782, 4251: 1781, 4252: 1780, 4253: 1779, 4254: 1778, 4255: 1786, 4256: 1777, 4257: 1773, 4258: 1776, 4259: 1775, 4260: 1774, 4261: 1772, 4262: 1771, 4263: 1769, 4264: 1768, 4265: 1770, 4266: 1767, 4267: 1762, 4268: 1766, 4269: 1764, 4270: 1763, 4271: 1765, 4272: 1760, 4273: 1759, 4274: 1758, 4275: 1756, 4276: 1757, 4277: 1761, 4278: 1755, 4279: 1753, 4280: 1752, 4281: 1754, 4282: 1751, 4283: 1749, 4284: 1750, 4285: 1747, 4286: 1746, 4287: 1745, 4288: 1748, 4289: 1744, 4290: 1743, 4291: 1742, 4292: 1740, 4293: 1739, 4294: 1738, 4295: 1737, 4296: 1736, 4297: 1735, 4298: 1733, 4299: 1734, 4300: 1732, 4301: 1729, 4302: 1730, 4303: 1731, 4304: 1728, 4305: 1725, 4306: 1726, 4307: 1727, 4308: 1722, 4309: 1719, 4310: 1721, 4311: 1720, 4312: 1724, 4313: 1723, 4314: 1718, 4315: 1717, 4316: 1715, 4317: 1741, 4318: 1714, 4319: 1716, 4320: 1713, 4321: 1712, 4322: 1711, 4323: 1710, 4324: 1709, 4325: 1708, 4326: 1707, 4327: 1706, 4328: 1705, 4329: 1704, 4330: 1703, 4331: 1700, 4332: 1701, 4333: 1698, 4334: 1697, 4335: 1702, 4336: 1695, 4337: 1699, 4338: 1694, 4339: 1693, 4340: 1696, 4341: 1691, 4342: 1692, 4343: 1688, 4344: 1686, 4345: 1687, 4346: 1685, 4347: 1684, 4348: 1689, 4349: 1683, 4350: 1682, 4351: 1681, 4352: 1690, 4353: 1680, 4354: 1679, 4355: 1678, 4356: 1676, 4357: 1677, 4358: 1675, 4359: 1674, 4360: 1672, 4361: 1673, 4362: 1669, 4363: 1671, 4364: 1668, 4365: 1670, 4366: 1667, 4367: 1666, 4368: 1665, 4369: 1664, 4370: 1663, 4371: 1662, 4372: 1661, 4373: 1660, 4374: 1659, 4375: 1658, 4376: 1654, 4377: 1655, 4378: 1657, 4379: 1656, 4380: 1653, 4381: 1652, 4382: 1651, 4383: 1650, 4384: 1649, 4385: 1648, 4386: 1647, 4387: 1646, 4388: 1645, 4389: 1644, 4390: 1641, 4391: 1643, 4392: 1642, 4393: 1640, 4394: 1639, 4395: 1638, 4396: 1637, 4397: 1636, 4398: 1634, 4399: 1635, 4400: 1633, 4401: 1632, 4402: 1631, 4403: 1628, 4404: 1629, 4405: 1630, 4406: 1627, 4407: 1626, 4408: 1625, 4409: 1624, 4410: 1623, 4411: 1622, 4412: 1621, 4413: 1620, 4414: 1617, 4415: 1618, 4416: 1619, 4417: 1616, 4418: 1614, 4419: 1615, 4420: 1613, 4421: 1612, 4422: 1611, 4423: 1610, 4424: 1609, 4425: 1608, 4426: 1825, 4427: 1607, 4428: 1606, 4429: 1605, 4430: 1604, 4431: 1603, 4432: 1602, 4433: 1601, 4434: 1600, 4435: 1599, 4436: 1598, 4437: 1597, 4438: 1596, 4439: 1595, 4440: 1594, 4441: 1593, 4442: 1592, 4443: 1591, 4444: 1590, 4445: 1589, 4446: 1588, 4447: 1587, 4448: 1586, 4449: 1585, 4450: 1584, 4451: 1583, 4452: 1579, 4453: 1582, 4454: 1580, 4455: 1578, 4456: 1577, 4457: 1576, 4458: 1574, 4459: 1575, 4460: 1573, 4461: 1572, 4462: 1571, 4463: 1570, 4464: 1569, 4465: 1568, 4466: 1567, 4467: 1566, 4468: 1564, 4469: 1565, 4470: 1563, 4471: 1562, 4472: 1561, 4473: 1560, 4474: 1559, 4475: 1558, 4476: 1556, 4477: 1555, 4478: 1554, 4479: 1553, 4480: 1552, 4481: 1550, 4482: 1549, 4483: 1548, 4484: 1551, 4485: 1547, 4486: 1546, 4487: 1545, 4488: 1544, 4489: 1543, 4490: 1542, 4491: 1540, 4492: 1541, 4493: 1539, 4494: 1538, 4495: 1537, 4496: 1535, 4497: 1536, 4498: 1534, 4499: 1533, 4500: 1532, 4501: 1531, 4502: 1530, 4503: 1529, 4504: 1528, 4505: 1527, 4506: 1526, 4507: 1525, 4508: 1524, 4509: 1523, 4510: 1521, 4511: 1522, 4512: 1520, 4513: 1519, 4514: 1517, 4515: 1518, 4516: 1516, 4517: 1515, 4518: 1514, 4519: 1513, 4520: 1512, 4521: 1511, 4522: 1510, 4523: 1509, 4524: 1508, 4525: 1507, 4526: 1506, 4527: 1581, 4528: 1504, 4529: 1503, 4530: 1501, 4531: 1500, 4532: 1502, 4533: 1499, 4534: 1497, 4535: 1498, 4536: 1496, 4537: 1495, 4538: 1493, 4539: 1494, 4540: 1492, 4541: 1491, 4542: 1490, 4543: 1489, 4544: 1488, 4545: 1487, 4546: 1486, 4547: 1484, 4548: 1485, 4549: 1483, 4550: 1482, 4551: 1481, 4552: 1479, 4553: 1478, 4554: 1476, 4555: 1477, 4556: 1474, 4557: 1473, 4558: 1475, 4559: 1472, 4560: 1470, 4561: 1471, 4562: 1469, 4563: 1468, 4564: 1467, 4565: 1480, 4566: 1466, 4567: 1465, 4568: 1463, 4569: 1464, 4570: 1462, 4571: 1461, 4572: 1460, 4573: 1459, 4574: 1458, 4575: 1457, 4576: 1456, 4577: 1454, 4578: 1453, 4579: 1452, 4580: 1451, 4581: 1455, 4582: 1450, 4583: 1448, 4584: 1446, 4585: 1445, 4586: 1447, 4587: 1449, 4588: 1443, 4589: 1444, 4590: 1442, 4591: 1441, 4592: 1440, 4593: 1439, 4594: 1438, 4595: 1437, 4596: 1436, 4597: 1435, 4598: 1434, 4599: 1433, 4600: 1432, 4601: 1430, 4602: 1429, 4603: 1431, 4604: 1427, 4605: 1426, 4606: 1423, 4607: 1425, 4608: 1424, 4609: 1422, 4610: 1421, 4611: 1420, 4612: 1419, 4613: 1418, 4614: 1416, 4615: 1415, 4616: 1417, 4617: 1414, 4618: 1413, 4619: 1412, 4620: 1411, 4621: 1409, 4622: 1408, 4623: 1407, 4624: 1406, 4625: 1405, 4626: 1404, 4627: 1403, 4628: 1402, 4629: 1401, 4630: 1410, 4631: 1400, 4632: 1399, 4633: 1397, 4634: 1398, 4635: 1396, 4636: 1393, 4637: 1394, 4638: 1395, 4639: 1392, 4640: 1390, 4641: 1389, 4642: 1388, 4643: 1391, 4644: 1387, 4645: 1386, 4646: 1385, 4647: 1384, 4648: 1383, 4649: 1381, 4650: 1380, 4651: 1382, 4652: 1378, 4653: 1379, 4654: 1377, 4655: 1376, 4656: 1375, 4657: 1374, 4658: 1373, 4659: 1372, 4660: 1371, 4661: 1370, 4662: 1369, 4663: 1368, 4664: 1367, 4665: 1366, 4666: 1364, 4667: 1363, 4668: 1365, 4669: 1362, 4670: 1361, 4671: 1360, 4672: 1359, 4673: 1358, 4674: 1357, 4675: 1356, 4676: 1355, 4677: 1354, 4678: 1353, 4679: 1352, 4680: 1351, 4681: 1350, 4682: 1349, 4683: 1348, 4684: 1347, 4685: 1346, 4686: 1345, 4687: 1344, 4688: 1343, 4689: 1342, 4690: 1341, 4691: 1340, 4692: 1338, 4693: 1339, 4694: 1337, 4695: 1336, 4696: 1335, 4697: 1334, 4698: 1333, 4699: 1332, 4700: 1331, 4701: 1330, 4702: 1329, 4703: 1328, 4704: 1325, 4705: 1326, 4706: 1324, 4707: 1327, 4708: 1323, 4709: 1322, 4710: 1321, 4711: 1320, 4712: 1319, 4713: 1316, 4714: 1317, 4715: 1318, 4716: 1315, 4717: 1314, 4718: 1313, 4719: 1312, 4720: 1311, 4721: 1310, 4722: 1309, 4723: 1308, 4724: 1307, 4725: 1306, 4726: 1305, 4727: 1304, 4728: 1303, 4729: 1301, 4730: 1299, 4731: 1300, 4732: 1302, 4733: 1298, 4734: 1297, 4735: 1296, 4736: 1295, 4737: 1293, 4738: 1294, 4739: 1292, 4740: 1291, 4741: 1290, 4742: 1289, 4743: 1288, 4744: 1286, 4745: 1285, 4746: 1284, 4747: 1282, 4748: 1281, 4749: 1280, 4750: 1279, 4751: 1283, 4752: 1278, 4753: 1277, 4754: 1276, 4755: 1275, 4756: 1274, 4757: 1273, 4758: 1272, 4759: 1271, 4760: 1270, 4761: 1269, 4762: 1268, 4763: 1267, 4764: 1266, 4765: 1264, 4766: 1263, 4767: 1262, 4768: 1261, 4769: 1557, 4770: 1260, 4771: 1259, 4772: 1258, 4773: 1255, 4774: 1256, 4775: 1257, 4776: 1254, 4777: 1253, 4778: 1252, 4779: 1251, 4780: 1250, 4781: 1249, 4782: 1248, 4783: 1247, 4784: 1246, 4785: 1245, 4786: 1244, 4787: 1243, 4788: 1242, 4789: 1241, 4790: 1240, 4791: 1239, 4792: 1237, 4793: 1238, 4794: 1236, 4795: 1235, 4796: 1234, 4797: 1233, 4798: 1232, 4799: 1230, 4800: 1229, 4801: 1227, 4802: 1231, 4803: 1228, 4804: 1226, 4805: 1225, 4806: 1223, 4807: 1222, 4808: 1224, 4809: 1221, 4810: 1220, 4811: 1219, 4812: 1218, 4813: 1217, 4814: 1216, 4815: 1215, 4816: 1211, 4817: 1214, 4818: 1212, 4819: 1213, 4820: 1210, 4821: 1209, 4822: 1208, 4823: 1207, 4824: 1206, 4825: 1205, 4826: 1204, 4827: 1203, 4828: 1202, 4829: 1201, 4830: 1200, 4831: 1199, 4832: 1198, 4833: 1197, 4834: 1196, 4835: 1195, 4836: 1194, 4837: 1193, 4838: 1192, 4839: 1190, 4840: 1189, 4841: 1191, 4842: 1186, 4843: 1188, 4844: 1187, 4845: 1185, 4846: 1184, 4847: 1183, 4848: 1182, 4849: 1181, 4850: 1180, 4851: 1179, 4852: 1178, 4853: 1177, 4854: 1176, 4855: 1175, 4856: 1174, 4857: 1173, 4858: 1172, 4859: 1171, 4860: 1170, 4861: 1169, 4862: 1168, 4863: 1167, 4864: 1166, 4865: 1165, 4866: 1163, 4867: 1164, 4868: 1162, 4869: 1161, 4870: 1160, 4871: 1159, 4872: 1158, 4873: 1157, 4874: 1156, 4875: 1155, 4876: 1154, 4877: 1153, 4878: 1152, 4879: 1151, 4880: 1853, 4881: 1150, 4882: 1149, 4883: 1148, 4884: 1147, 4885: 1146, 4886: 1145, 4887: 1144, 4888: 1143, 4889: 1141, 4890: 1142, 4891: 1139, 4892: 1140, 4893: 1138, 4894: 1137, 4895: 1136, 4896: 1135, 4897: 1134, 4898: 1133, 4899: 1132, 4900: 1131, 4901: 1130, 4902: 1128, 4903: 1129, 4904: 1127, 4905: 1126, 4906: 1125, 4907: 1124, 4908: 1123, 4909: 1122, 4910: 1121, 4911: 1120, 4912: 1119, 4913: 1117, 4914: 1116, 4915: 1115, 4916: 1114, 4917: 1113, 4918: 1112, 4919: 1111, 4920: 1109, 4921: 1108, 4922: 1110, 4923: 1107, 4924: 1106, 4925: 1105, 4926: 1104, 4927: 1103, 4928: 1102, 4929: 1101, 4930: 1100, 4931: 1099, 4932: 1118, 4933: 1098, 4934: 1097, 4935: 1096, 4936: 1095, 4937: 1094, 4938: 1093, 4939: 1092, 4940: 1091, 4941: 1090, 4942: 1089, 4943: 1088, 4944: 1087, 4945: 1086, 4946: 1085, 4947: 1084, 4948: 1083, 4949: 1081, 4950: 1082, 4951: 1080, 4952: 1079, 4953: 1078, 4954: 1077, 4955: 1075, 4956: 1076, 4957: 1074, 4958: 1073, 4959: 1071, 4960: 1070, 4961: 1072, 4962: 1069, 4963: 1068, 4964: 1067, 4965: 1066, 4966: 1065, 4967: 1064, 4968: 1063, 4969: 1062, 4970: 1061, 4971: 1060, 4972: 1059, 4973: 1058, 4974: 1057, 4975: 1056, 4976: 1055, 4977: 1054, 4978: 1053, 4979: 1505, 4980: 1052, 4981: 1051, 4982: 1050, 4983: 1049, 4984: 1048, 4985: 1047, 4986: 1046, 4987: 1045, 4988: 1044, 4989: 1043, 4990: 1042, 4991: 1041, 4992: 1040, 4993: 1039, 4994: 1038, 4995: 1037, 4996: 1036, 4997: 1035, 4998: 1034, 4999: 1033, 5000: 1032, 5001: 1031, 5002: 1030, 5003: 1029, 5004: 1028, 5005: 1027, 5006: 1025, 5007: 1026, 5008: 1024, 5009: 1023, 5010: 1022, 5011: 1021, 5012: 1020, 5013: 1019, 5014: 1018, 5015: 1017, 5016: 1016, 5017: 1015, 5018: 1014, 5019: 1013, 5020: 1011, 5021: 1010, 5022: 1009, 5023: 1008, 5024: 1007, 5025: 1006, 5026: 1005, 5027: 1003, 5028: 1002, 5029: 1004, 5030: 1001, 5031: 1000, 5032: 999, 5033: 998, 5034: 997, 5035: 996, 5036: 995, 5037: 994, 5038: 993, 5039: 1012, 5040: 992, 5041: 991, 5042: 990, 5043: 989, 5044: 988, 5045: 987, 5046: 986, 5047: 985, 5048: 984, 5049: 983, 5050: 982, 5051: 981, 5052: 980, 5053: 979, 5054: 978, 5055: 977, 5056: 976, 5057: 975, 5058: 974, 5059: 973, 5060: 972, 5061: 971, 5062: 970, 5063: 969, 5064: 968, 5065: 966, 5066: 967, 5067: 964, 5068: 965, 5069: 963, 5070: 962, 5071: 961, 5072: 960, 5073: 959, 5074: 958, 5075: 957, 5076: 956, 5077: 955, 5078: 954, 5079: 953, 5080: 952, 5081: 950, 5082: 951, 5083: 949, 5084: 948, 5085: 947, 5086: 946, 5087: 945, 5088: 944, 5089: 1428, 5090: 943, 5091: 942, 5092: 941, 5093: 940, 5094: 938, 5095: 939, 5096: 937, 5097: 936, 5098: 935, 5099: 934, 5100: 933, 5101: 932, 5102: 931, 5103: 930, 5104: 929, 5105: 928, 5106: 927, 5107: 2247, 5108: 926, 5109: 925, 5110: 924, 5111: 923, 5112: 922, 5113: 921, 5114: 920, 5115: 919, 5116: 917, 5117: 916, 5118: 918, 5119: 915, 5120: 914, 5121: 913, 5122: 912, 5123: 911, 5124: 910, 5125: 909, 5126: 908, 5127: 907, 5128: 906, 5129: 905, 5130: 904, 5131: 903, 5132: 902, 5133: 901, 5134: 900, 5135: 899, 5136: 898, 5137: 897, 5138: 896, 5139: 895, 5140: 894, 5141: 893, 5142: 892, 5143: 891, 5144: 890, 5145: 889, 5146: 888, 5147: 887, 5148: 886, 5149: 885, 5150: 884, 5151: 883, 5152: 882, 5153: 881, 5154: 880, 5155: 879, 5156: 878, 5157: 877, 5158: 876, 5159: 875, 5160: 874, 5161: 873, 5162: 872, 5163: 871, 5164: 870, 5165: 869, 5166: 868, 5167: 867, 5168: 866, 5169: 865, 5170: 864, 5171: 863, 5172: 862, 5173: 861, 5174: 860, 5175: 859, 5176: 858, 5177: 857, 5178: 856, 5179: 854, 5180: 853, 5181: 852, 5182: 851, 5183: 850, 5184: 849, 5185: 848, 5186: 847, 5187: 846, 5188: 845, 5189: 844, 5190: 842, 5191: 841, 5192: 843, 5193: 840, 5194: 839, 5195: 838, 5196: 837, 5197: 836, 5198: 835, 5199: 834, 5200: 833, 5201: 832, 5202: 831, 5203: 830, 5204: 829, 5205: 828, 5206: 827, 5207: 826, 5208: 825, 5209: 824, 5210: 823, 5211: 822, 5212: 821, 5213: 820, 5214: 819, 5215: 818, 5216: 817, 5217: 816, 5218: 814, 5219: 815, 5220: 813, 5221: 811, 5222: 810, 5223: 809, 5224: 808, 5225: 807, 5226: 812, 5227: 806, 5228: 805, 5229: 804, 5230: 803, 5231: 802, 5232: 801, 5233: 800, 5234: 799, 5235: 798, 5236: 797, 5237: 796, 5238: 795, 5239: 794, 5240: 793, 5241: 792, 5242: 791, 5243: 790, 5244: 789, 5245: 788, 5246: 786, 5247: 787, 5248: 785, 5249: 784, 5250: 783, 5251: 782, 5252: 781, 5253: 780, 5254: 779, 5255: 778, 5256: 777, 5257: 775, 5258: 776, 5259: 774, 5260: 773, 5261: 772, 5262: 771, 5263: 770, 5264: 769, 5265: 768, 5266: 767, 5267: 766, 5268: 765, 5269: 764, 5270: 763, 5271: 762, 5272: 761, 5273: 760, 5274: 759, 5275: 758, 5276: 757, 5277: 756, 5278: 755, 5279: 754, 5280: 753, 5281: 752, 5282: 751, 5283: 750, 5284: 749, 5285: 748, 5286: 855, 5287: 747, 5288: 746, 5289: 745, 5290: 744, 5291: 743, 5292: 742, 5293: 741, 5294: 740, 5295: 739, 5296: 738, 5297: 737, 5298: 736, 5299: 735, 5300: 734, 5301: 733, 5302: 732, 5303: 731, 5304: 730, 5305: 729, 5306: 728, 5307: 727, 5308: 726, 5309: 725, 5310: 724, 5311: 723, 5312: 722, 5313: 721, 5314: 720, 5315: 719, 5316: 718, 5317: 717, 5318: 716, 5319: 715, 5320: 714, 5321: 713, 5322: 712, 5323: 711, 5324: 710, 5325: 709, 5326: 708, 5327: 707, 5328: 706, 5329: 705, 5330: 704, 5331: 703, 5332: 702, 5333: 701, 5334: 700, 5335: 699, 5336: 698, 5337: 697, 5338: 696, 5339: 695, 5340: 694, 5341: 693, 5342: 692, 5343: 691, 5344: 690, 5345: 689, 5346: 688, 5347: 687, 5348: 686, 5349: 685, 5350: 684, 5351: 682, 5352: 683, 5353: 681, 5354: 680, 5355: 679, 5356: 678, 5357: 677, 5358: 676, 5359: 675, 5360: 674, 5361: 673, 5362: 672, 5363: 671, 5364: 670, 5365: 669, 5366: 668, 5367: 667, 5368: 666, 5369: 665, 5370: 664, 5371: 663, 5372: 662, 5373: 661, 5374: 660, 5375: 659, 5376: 658, 5377: 657, 5378: 656, 5379: 655, 5380: 654, 5381: 653, 5382: 652, 5383: 651, 5384: 650, 5385: 649, 5386: 648, 5387: 647, 5388: 646, 5389: 645, 5390: 644, 5391: 643, 5392: 642, 5393: 641, 5394: 640, 5395: 639, 5396: 638, 5397: 637, 5398: 636, 5399: 635, 5400: 634, 5401: 633, 5402: 632, 5403: 631, 5404: 630, 5405: 628, 5406: 629, 5407: 627, 5408: 626, 5409: 625, 5410: 624, 5411: 623, 5412: 622, 5413: 621, 5414: 620, 5415: 619, 5416: 618, 5417: 617, 5418: 616, 5419: 615, 5420: 614, 5421: 613, 5422: 612, 5423: 611, 5424: 610, 5425: 609, 5426: 608, 5427: 607, 5428: 606, 5429: 605, 5430: 604, 5431: 603, 5432: 602, 5433: 601, 5434: 600, 5435: 599, 5436: 598, 5437: 597, 5438: 596, 5439: 595, 5440: 594, 5441: 593, 5442: 592, 5443: 591, 5444: 590, 5445: 589, 5446: 588, 5447: 587, 5448: 586, 5449: 585, 5450: 584, 5451: 583, 5452: 582}}\n", + "{'item_id': {858: 0, 593: 1, 2384: 2, 2019: 3, 1961: 4, 1419: 5, 3111: 6, 573: 7, 213: 8, 3505: 9, 1734: 10, 2503: 11, 912: 12, 919: 13, 527: 14, 649: 15, 1252: 16, 318: 17, 3289: 18, 759: 19, 608: 20, 2396: 21, 2858: 22, 326: 23, 2028: 24, 1649: 25, 2762: 26, 17: 27, 34: 28, 246: 29, 2692: 30, 1617: 31, 300: 32, 1392: 33, 1111: 34, 150: 35, 562: 36, 549: 37, 1537: 38, 1554: 39, 448: 40, 265: 41, 866: 42, 1358: 43, 2324: 44, 235: 45, 446: 46, 247: 47, 1094: 48, 1704: 49, 50: 50, 162: 51, 45: 52, 348: 53, 508: 54, 1089: 55, 589: 56, 58: 57, 1694: 58, 2580: 59, 1834: 60, 2391: 61, 282: 62, 111: 63, 290: 64, 2067: 65, 1641: 66, 357: 67, 930: 68, 1230: 69, 947: 70, 3088: 71, 3133: 72, 3022: 73, 1294: 74, 3421: 75, 2804: 76, 1269: 77, 1276: 78, 1244: 79, 2622: 80, 955: 81, 2791: 82, 2300: 83, 1028: 84, 2863: 85, 3548: 86, 1197: 87, 951: 88, 1223: 89, 1211: 90, 933: 91, 1066: 92, 3072: 93, 907: 94, 2671: 95, 935: 96, 1304: 97, 3175: 98, 3035: 99, 1014: 100, 1078: 101, 3363: 102, 1270: 103, 1265: 104, 909: 105, 3396: 106, 1934: 107, 2174: 108, 911: 109, 945: 110, 2746: 111, 1188: 112, 471: 113, 3037: 114, 952: 115, 2289: 116, 916: 117, 1125: 118, 915: 119, 3028: 120, 3471: 121, 260: 122, 750: 123, 924: 124, 1210: 125, 1097: 126, 3545: 127, 2565: 128, 914: 129, 2087: 130, 918: 131, 899: 132, 1282: 133, 1022: 134, 900: 135, 364: 136, 1951: 137, 588: 138, 3549: 139, 963: 140, 1947: 141, 1081: 142, 2946: 143, 2083: 144, 1220: 145, 107: 146, 1380: 147, 2857: 148, 2096: 149, 1088: 150, 661: 151, 938: 152, 901: 153, 783: 154, 1083: 155, 2080: 156, 199: 157, 1416: 158, 48: 159, 903: 160, 1284: 161, 904: 162, 913: 163, 1212: 164, 2206: 165, 1086: 166, 950: 167, 1964: 168, 2208: 169, 906: 170, 942: 171, 2414: 172, 1680: 173, 926: 174, 1237: 175, 923: 176, 920: 177, 2146: 178, 1387: 179, 356: 180, 1079: 181, 2716: 182, 1148: 183, 232: 184, 1136: 185, 702: 186, 1882: 187, 1267: 188, 3508: 189, 3148: 190, 3543: 191, 1221: 192, 2132: 193, 1250: 194, 1193: 195, 1299: 196, 1225: 197, 3006: 198, 3196: 199, 908: 200, 1207: 201, 3469: 202, 1721: 203, 3438: 204, 2428: 205, 1883: 206, 2376: 207, 1945: 208, 3468: 209, 2728: 210, 3359: 211, 1938: 212, 1949: 213, 1231: 214, 2706: 215, 2707: 216, 2826: 217, 2492: 218, 2827: 219, 2572: 220, 2683: 221, 2699: 222, 3362: 223, 3504: 224, 1203: 225, 2501: 226, 2770: 227, 2842: 228, 3005: 229, 2555: 230, 3285: 231, 2710: 232, 2694: 233, 2975: 234, 2997: 235, 3270: 236, 3330: 237, 1233: 238, 2771: 239, 2147: 240, 3016: 241, 223: 242, 2433: 243, 2038: 244, 3068: 245, 3095: 246, 1208: 247, 1941: 248, 2919: 249, 2890: 250, 1293: 251, 1940: 252, 2678: 253, 1093: 254, 1911: 255, 2772: 256, 2546: 257, 2722: 258, 3203: 259, 2881: 260, 2759: 261, 2541: 262, 2336: 263, 2599: 264, 3113: 265, 2575: 266, 2828: 267, 2605: 268, 3408: 269, 2434: 270, 3051: 271, 1259: 272, 3467: 273, 1213: 274, 3159: 275, 2757: 276, 2712: 277, 1950: 278, 1939: 279, 1952: 280, 3526: 281, 2995: 282, 407: 283, 2676: 284, 2690: 285, 2333: 286, 2318: 287, 2719: 288, 3152: 289, 959: 290, 2303: 291, 1288: 292, 2629: 293, 2882: 294, 2713: 295, 3008: 296, 785: 297, 3160: 298, 2392: 299, 2390: 300, 2238: 301, 1953: 302, 3147: 303, 1674: 304, 3354: 305, 2900: 306, 3053: 307, 2734: 308, 2805: 309, 3379: 310, 2439: 311, 296: 312, 949: 313, 968: 314, 1959: 315, 2490: 316, 2574: 317, 2581: 318, 3325: 319, 2502: 320, 2723: 321, 3219: 322, 2901: 323, 3201: 324, 1956: 325, 3424: 326, 2906: 327, 2013: 328, 2598: 329, 299: 330, 3300: 331, 2758: 332, 24: 333, 43: 334, 2093: 335, 2395: 336, 2560: 337, 2686: 338, 1513: 339, 2485: 340, 3273: 341, 2491: 342, 2700: 343, 2841: 344, 3081: 345, 2840: 346, 2672: 347, 2070: 348, 2702: 349, 3176: 350, 2715: 351, 2693: 352, 3114: 353, 1623: 354, 2337: 355, 2701: 356, 2987: 357, 86: 358, 2600: 359, 3125: 360, 3179: 361, 3329: 362, 2010: 363, 461: 364, 1413: 365, 2024: 366, 1198: 367, 745: 368, 720: 369, 1196: 370, 1192: 371, 3149: 372, 1281: 373, 28: 374, 3307: 375, 3224: 376, 3265: 377, 1219: 378, 3128: 379, 2360: 380, 3462: 381, 3030: 382, 1348: 383, 1719: 384, 2075: 385, 541: 386, 2972: 387, 1248: 388, 1007: 389, 902: 390, 898: 391, 25: 392, 3067: 393, 922: 394, 1247: 395, 2859: 396, 2677: 397, 2186: 398, 2609: 399, 1303: 400, 1412: 401, 1104: 402, 2648: 403, 2357: 404, 2628: 405, 1228: 406, 3429: 407, 2732: 408, 1080: 409, 1584: 410, 480: 411, 32: 412, 2046: 413, 1748: 414, 2571: 415, 800: 416, 1214: 417, 3365: 418, 2664: 419, 1909: 420, 1372: 421, 1591: 422, 504: 423, 1653: 424, 2916: 425, 1356: 426, 1580: 427, 1527: 428, 1876: 429, 1396: 430, 971: 431, 2660: 432, 329: 433, 2012: 434, 788: 435, 3156: 436, 2393: 437, 512: 438, 1217: 439, 3075: 440, 3089: 441, 338: 442, 1573: 443, 1690: 444, 1150: 445, 2973: 446, 1603: 447, 1544: 448, 185: 449, 1391: 450, 1831: 451, 1320: 452, 2920: 453, 1885: 454, 1931: 455, 1240: 456, 514: 457, 1779: 458, 2808: 459, 2986: 460, 405: 461, 2053: 462, 1590: 463, 1041: 464, 2020: 465, 1056: 466, 1132: 467, 66: 468, 737: 469, 2448: 470, 256: 471, 1176: 472, 1199: 473, 3447: 474, 176: 475, 1200: 476, 1374: 477, 1657: 478, 3527: 479, 2968: 480, 1375: 481, 1274: 482, 2455: 483, 2985: 484, 1376: 485, 2011: 486, 2613: 487, 2021: 488, 2407: 489, 2105: 490, 2117: 491, 2311: 492, 2140: 493, 1253: 494, 3551: 495, 1234: 496, 3547: 497, 1965: 498, 2641: 499, 2054: 500, 1373: 501, 2364: 502, 2408: 503, 2456: 504, 2642: 505, 1254: 506, 1278: 507, 3090: 508, 3052: 509, 1397: 510, 2730: 511, 2848: 512, 1594: 513, 599: 514, 3361: 515, 3461: 516, 1077: 517, 306: 518, 1185: 519, 3418: 520, 1242: 521, 110: 522, 307: 523, 1874: 524, 1504: 525, 1258: 526, 1957: 527, 2971: 528, 2064: 529, 1243: 530, 1345: 531, 344: 532, 967: 533, 3130: 534, 249: 535, 1280: 536, 778: 537, 1784: 538, 293: 539, 590: 540, 475: 541, 1682: 542, 1179: 543, 2291: 544, 3108: 545, 1264: 546, 373: 547, 194: 548, 337: 549, 358: 550, 454: 551, 1366: 552, 1061: 553, 515: 554, 2366: 555, 961: 556, 3246: 557, 1466: 558, 62: 559, 3386: 560, 3342: 561, 3019: 562, 3426: 563, 1120: 564, 11: 565, 1268: 566, 4: 567, 1735: 568, 230: 569, 805: 570, 3255: 571, 2688: 572, 21: 573, 26: 574, 1727: 575, 280: 576, 3252: 577, 1729: 578, 3155: 579, 509: 580, 1747: 581, 224: 582, 1918: 583, 3435: 584, 2726: 585, 320: 586, 2361: 587, 3364: 588, 1442: 589, 1480: 590, 875: 591, 3334: 592, 1260: 593, 31: 594, 1711: 595, 2441: 596, 2966: 597, 1962: 598, 851: 599, 350: 600, 2002: 601, 695: 602, 1201: 603, 2059: 604, 1183: 605, 2875: 606, 1096: 607, 2288: 608, 921: 609, 1036: 610, 940: 611, 2644: 612, 253: 613, 1586: 614, 605: 615, 1027: 616, 30: 617, 42: 618, 457: 619, 1006: 620, 2908: 621, 766: 622, 1884: 623, 1801: 624, 3257: 625, 3521: 626, 3528: 627, 418: 628, 765: 629, 455: 630, 2431: 631, 1726: 632, 1340: 633, 1966: 634, 2313: 635, 3150: 636, 969: 637, 1797: 638, 3550: 639, 308: 640, 3498: 641, 92: 642, 2412: 643, 169: 644, 1595: 645, 2819: 646, 3198: 647, 2130: 648, 994: 649, 3499: 650, 2529: 651, 2102: 652, 1296: 653, 1: 654, 594: 655, 1301: 656, 1307: 657, 3132: 658, 1354: 659, 735: 660, 1954: 661, 388: 662, 1272: 663, 2302: 664, 2542: 665, 1500: 666, 2947: 667, 2355: 668, 3253: 669, 1923: 670, 1517: 671, 367: 672, 2662: 673, 3018: 674, 2739: 675, 1827: 676, 440: 677, 2124: 678, 500: 679, 1614: 680, 7: 681, 3450: 682, 2108: 683, 2926: 684, 597: 685, 1777: 686, 3263: 687, 708: 688, 236: 689, 539: 690, 216: 691, 1020: 692, 378: 693, 3208: 694, 333: 695, 1713: 696, 5: 697, 830: 698, 2004: 699, 1042: 700, 3098: 701, 3094: 702, 1409: 703, 231: 704, 372: 705, 157: 706, 1582: 707, 1944: 708, 1914: 709, 1367: 710, 2709: 711, 1377: 712, 252: 713, 784: 714, 585: 715, 1379: 716, 3086: 717, 3267: 718, 186: 719, 466: 720, 673: 721, 1702: 722, 1689: 723, 2266: 724, 1806: 725, 355: 726, 537: 727, 3: 728, 1494: 729, 1855: 730, 153: 731, 2387: 732, 1503: 733, 2335: 734, 1646: 735, 818: 736, 1581: 737, 520: 738, 1863: 739, 2016: 740, 1012: 741, 432: 742, 1602: 743, 637: 744, 2036: 745, 1431: 746, 2953: 747, 1760: 748, 1453: 749, 688: 750, 2042: 751, 374: 752, 1005: 753, 437: 754, 2720: 755, 2296: 756, 1839: 757, 429: 758, 1707: 759, 420: 760, 325: 761, 2152: 762, 870: 763, 1731: 764, 3146: 765, 2526: 766, 2670: 767, 2763: 768, 2000: 769, 3104: 770, 2729: 771, 123: 772, 1295: 773, 2329: 774, 2949: 775, 2951: 776, 1222: 777, 2944: 778, 2194: 779, 1127: 780, 733: 781, 3404: 782, 1408: 783, 592: 784, 2353: 785, 1608: 786, 349: 787, 780: 788, 3197: 789, 380: 790, 1676: 791, 292: 792, 2871: 793, 3105: 794, 1273: 795, 151: 796, 3210: 797, 339: 798, 1261: 799, 1171: 800, 1129: 801, 1189: 802, 2512: 803, 1300: 804, 2349: 805, 1090: 806, 1394: 807, 1975: 808, 1960: 809, 3039: 810, 1285: 811, 2348: 812, 2076: 813, 2312: 814, 3070: 815, 2872: 816, 2150: 817, 1246: 818, 3101: 819, 3422: 820, 2750: 821, 1321: 822, 1305: 823, 2852: 824, 2915: 825, 1291: 826, 3552: 827, 3449: 828, 2301: 829, 1663: 830, 2100: 831, 1124: 832, 2463: 833, 2989: 834, 2745: 835, 2286: 836, 2022: 837, 2369: 838, 2802: 839, 3524: 840, 1991: 841, 2134: 842, 2003: 843, 1173: 844, 1587: 845, 2111: 846, 3388: 847, 2089: 848, 680: 849, 2717: 850, 2751: 851, 2794: 852, 3169: 853, 2378: 854, 1289: 855, 1974: 856, 2411: 857, 2410: 858, 2948: 859, 1187: 860, 2553: 861, 2471: 862, 3017: 863, 1091: 864, 2241: 865, 2513: 866, 2402: 867, 2795: 868, 2321: 869, 1846: 870, 2421: 871, 999: 872, 555: 873, 272: 874, 3071: 875, 2160: 876, 2866: 877, 2065: 878, 529: 879, 2085: 880, 714: 881, 3204: 882, 731: 883, 862: 884, 1292: 885, 2467: 886, 1912: 887, 3097: 888, 1297: 889, 3011: 890, 2943: 891, 948: 892, 2104: 893, 596: 894, 628: 895, 441: 896, 1084: 897, 2014: 898, 2620: 899, 2159: 900, 892: 901, 2176: 902, 2687: 903, 3308: 904, 341: 905, 47: 906, 2797: 907, 2611: 908, 2018: 909, 2570: 910, 2427: 911, 2001: 912, 2401: 913, 1350: 914, 2377: 915, 1597: 916, 1673: 917, 551: 918, 840: 919, 2359: 920, 3350: 921, 2287: 922, 3060: 923, 188: 924, 3282: 925, 2118: 926, 1610: 927, 2874: 928, 3494: 929, 1029: 930, 1955: 931, 534: 932, 1907: 933, 1678: 934, 319: 935, 497: 936, 3044: 937, 428: 938, 1332: 939, 943: 940, 39: 941, 2071: 942, 3296: 943, 1921: 944, 1357: 945, 1968: 946, 3501: 947, 2157: 948, 3143: 949, 1013: 950, 1755: 951, 6: 952, 1611: 953, 1393: 954, 2362: 955, 2867: 956, 1082: 957, 2472: 958, 345: 959, 1355: 960, 2237: 961, 1395: 962, 1215: 963, 2048: 964, 3194: 965, 1263: 966, 3015: 967, 474: 968, 1730: 969, 3167: 970, 281: 971, 2109: 972, 2167: 973, 2155: 974, 1994: 975, 2524: 976, 2520: 977, 2877: 978, 3260: 979, 531: 980, 3546: 981, 558: 982, 1206: 983, 1010: 984, 1643: 985, 1546: 986, 728: 987, 342: 988, 3248: 989, 3157: 990, 910: 991, 1256: 992, 671: 993, 3448: 994, 1235: 995, 1238: 996, 1963: 997, 1275: 998, 8: 999, 1162: 1000, 1073: 1001, 361: 1002, 741: 1003, 553: 1004, 1648: 1005, 610: 1006, 29: 1007, 1204: 1008, 2640: 1009, 2116: 1010, 2528: 1011, 316: 1012, 965: 1013, 1249: 1014, 928: 1015, 1371: 1016, 196: 1017, 2183: 1018, 931: 1019, 1344: 1020, 3230: 1021, 3033: 1022, 2403: 1023, 2615: 1024, 2094: 1025, 1333: 1026, 1407: 1027, 2747: 1028, 1917: 1029, 442: 1030, 1037: 1031, 173: 1032, 2178: 1033, 2034: 1034, 1982: 1035, 1343: 1036, 2181: 1037, 1732: 1038, 377: 1039, 519: 1040, 2450: 1041, 546: 1042, 2781: 1043, 905: 1044, 327: 1045, 2517: 1046, 2643: 1047, 2138: 1048, 1032: 1049, 2193: 1050, 3479: 1051, 2: 1052, 2143: 1053, 1967: 1054, 2161: 1055, 2239: 1056, 2243: 1057, 653: 1058, 1126: 1059, 2253: 1060, 3489: 1061, 837: 1062, 3439: 1063, 1172: 1064, 1566: 1065, 2409: 1066, 3584: 1067, 3590: 1068, 3591: 1069, 3529: 1070, 2959: 1071, 2912: 1072, 2829: 1073, 1792: 1074, 2894: 1075, 2334: 1076, 165: 1077, 170: 1078, 1438: 1079, 227: 1080, 1287: 1081, 861: 1082, 465: 1083, 1429: 1084, 1101: 1085, 1370: 1086, 2133: 1087, 2533: 1088, 2363: 1089, 2454: 1090, 2527: 1091, 2657: 1092, 2009: 1093, 3340: 1094, 2346: 1095, 426: 1096, 1334: 1097, 3555: 1098, 1924: 1099, 674: 1100, 10: 1101, 2082: 1102, 1644: 1103, 1353: 1104, 1266: 1105, 2961: 1106, 2724: 1107, 1347: 1108, 2668: 1109, 1128: 1110, 2787: 1111, 2148: 1112, 1970: 1113, 1330: 1114, 1389: 1115, 1972: 1116, 1995: 1117, 1971: 1118, 1983: 1119, 1986: 1120, 1969: 1121, 1326: 1122, 2465: 1123, 2122: 1124, 1988: 1125, 2460: 1126, 1985: 1127, 1978: 1128, 1976: 1129, 1980: 1130, 1987: 1131, 1981: 1132, 1979: 1133, 1977: 1134, 70: 1135, 1645: 1136, 1241: 1137, 3476: 1138, 2617: 1139, 1339: 1140, 3264: 1141, 1717: 1142, 2279: 1143, 724: 1144, 1771: 1145, 2328: 1146, 273: 1147, 532: 1148, 2898: 1149, 2389: 1150, 152: 1151, 1999: 1152, 2107: 1153, 177: 1154, 1342: 1155, 2125: 1156, 3259: 1157, 2443: 1158, 2801: 1159, 1569: 1160, 1059: 1161, 3358: 1162, 543: 1163, 587: 1164, 802: 1165, 105: 1166, 1888: 1167, 2297: 1168, 1722: 1169, 852: 1170, 417: 1171, 468: 1172, 222: 1173, 3046: 1174, 353: 1175, 2424: 1176, 2496: 1177, 266: 1178, 1541: 1179, 1629: 1180, 140: 1181, 1441: 1182, 1821: 1183, 1593: 1184, 691: 1185, 1457: 1186, 237: 1187, 550: 1188, 3269: 1189, 1894: 1190, 736: 1191, 289: 1192, 207: 1193, 447: 1194, 182: 1195, 168: 1196, 195: 1197, 2316: 1198, 3261: 1199, 179: 1200, 499: 1201, 3436: 1202, 1479: 1203, 64: 1204, 2774: 1205, 258: 1206, 15: 1207, 1556: 1208, 427: 1209, 1483: 1210, 1799: 1211, 218: 1212, 3331: 1213, 3405: 1214, 2406: 1215, 2991: 1216, 3107: 1217, 2058: 1218, 648: 1219, 3082: 1220, 3443: 1221, 490: 1222, 3256: 1223, 1047: 1224, 2115: 1225, 3441: 1226, 1552: 1227, 3444: 1228, 2278: 1229, 2006: 1230, 145: 1231, 2990: 1232, 494: 1233, 2476: 1234, 303: 1235, 1385: 1236, 3274: 1237, 1687: 1238, 552: 1239, 434: 1240, 786: 1241, 1488: 1242, 459: 1243, 1833: 1244, 1100: 1245, 1769: 1246, 1616: 1247, 479: 1248, 379: 1249, 2126: 1250, 425: 1251, 1099: 1252, 986: 1253, 535: 1254, 2069: 1255, 1639: 1256, 2474: 1257, 2736: 1258, 3129: 1259, 1226: 1260, 1216: 1261, 803: 1262, 2245: 1263, 2442: 1264, 1625: 1265, 1194: 1266, 3496: 1267, 2025: 1268, 1785: 1269, 71: 1270, 464: 1271, 1810: 1272, 3029: 1273, 571: 1274, 1872: 1275, 2624: 1276, 298: 1277, 476: 1278, 1809: 1279, 2331: 1280, 2114: 1281, 3535: 1282, 3412: 1283, 993: 1284, 485: 1285, 315: 1286, 3397: 1287, 172: 1288, 204: 1289, 44: 1290, 205: 1291, 1642: 1292, 2282: 1293, 1004: 1294, 160: 1295, 694: 1296, 1497: 1297, 1681: 1298, 1794: 1299, 502: 1300, 1626: 1301, 2081: 1302, 2807: 1303, 1465: 1304, 3174: 1305, 183: 1306, 1060: 1307, 125: 1308, 3481: 1309, 2097: 1310, 2268: 1311, 1057: 1312, 2330: 1313, 2077: 1314, 1805: 1315, 493: 1316, 1620: 1317, 1399: 1318, 22: 1319, 1958: 1320, 2697: 1321, 2764: 1322, 3247: 1323, 2561: 1324, 1598: 1325, 762: 1326, 81: 1327, 2294: 1328, 3099: 1329, 3079: 1330, 3112: 1331, 3507: 1332, 3398: 1333, 1017: 1334, 198: 1335, 3518: 1336, 991: 1337, 1177: 1338, 2112: 1339, 2137: 1340, 1633: 1341, 262: 1342, 1897: 1343, 3370: 1344, 1236: 1345, 1788: 1346, 366: 1347, 2144: 1348, 3100: 1349, 3576: 1350, 1286: 1351, 1619: 1352, 1476: 1353, 1427: 1354, 1916: 1355, 574: 1356, 261: 1357, 190: 1358, 241: 1359, 2470: 1360, 1135: 1361, 2419: 1362, 269: 1363, 1650: 1364, 2941: 1365, 1298: 1366, 431: 1367, 1271: 1368, 340: 1369, 2420: 1370, 3251: 1371, 1092: 1372, 1019: 1373, 1858: 1374, 1405: 1375, 3014: 1376, 3281: 1377, 988: 1378, 2231: 1379, 616: 1380, 164: 1381, 2090: 1382, 3395: 1383, 1454: 1384, 1031: 1385, 1049: 1386, 187: 1387, 16: 1388, 2247: 1389, 1518: 1390, 1683: 1391, 1516: 1392, 1913: 1393, 492: 1394, 808: 1395, 1459: 1396, 1449: 1397, 2779: 1398, 2425: 1399, 2262: 1400, 2168: 1401, 1605: 1402, 2518: 1403, 2385: 1404, 3034: 1405, 3272: 1406, 1542: 1407, 1447: 1408, 2173: 1409, 450: 1410, 317: 1411, 410: 1412, 2625: 1413, 700: 1414, 3102: 1415, 3173: 1416, 1365: 1417, 2626: 1418, 2725: 1419, 488: 1420, 707: 1421, 1783: 1422, 748: 1423, 435: 1424, 3032: 1425, 849: 1426, 1306: 1427, 1762: 1428, 2530: 1429, 3024: 1430, 2532: 1431, 3572: 1432, 692: 1433, 2531: 1434, 611: 1435, 3573: 1436, 3401: 1437, 880: 1438, 2091: 1439, 1862: 1440, 3574: 1441, 1588: 1442, 3392: 1443, 2862: 1444, 59: 1445, 2921: 1446, 2032: 1447, 2918: 1448, 3360: 1449, 2371: 1450, 2352: 1451, 1175: 1452, 2203: 1453, 1069: 1454, 3406: 1455, 799: 1456, 524: 1457, 1562: 1458, 381: 1459, 2416: 1460, 3385: 1461, 2752: 1462, 36: 1463, 2860: 1464, 2880: 1465, 112: 1466, 1615: 1467, 577: 1468, 761: 1469, 2322: 1470, 836: 1471, 1744: 1472, 2153: 1473, 2645: 1474, 2761: 1475, 141: 1476, 2748: 1477, 2708: 1478, 3301: 1479, 3512: 1480, 3519: 1481, 954: 1482, 932: 1483, 3341: 1484, 2835: 1485, 3020: 1486, 288: 1487, 996: 1488, 3430: 1489, 95: 1490, 208: 1491, 1382: 1492, 1499: 1493, 60: 1494, 2522: 1495, 2883: 1496, 2711: 1497, 3093: 1498, 1283: 1499, 1209: 1500, 1008: 1501, 2922: 1502, 964: 1503, 368: 1504, 1378: 1505, 2478: 1506, 416: 1507, 3000: 1508, 2993: 1509, 163: 1510, 2344: 1511, 1772: 1512, 2367: 1513, 2475: 1514, 2735: 1515, 2616: 1516, 2468: 1517, 462: 1518, 1606: 1519, 1262: 1520, 2970: 1521, 314: 1522, 3168: 1523, 3153: 1524, 2135: 1525, 2822: 1526, 158: 1527, 1085: 1528, 2405: 1529, 2088: 1530, 2043: 1531, 2950: 1532, 595: 1533, 1526: 1534, 1033: 1535, 1025: 1536, 2936: 1537, 2015: 1538, 586: 1539, 2098: 1540, 1016: 1541, 3503: 1542, 2204: 1543, 3419: 1544, 2511: 1545, 2917: 1546, 2110: 1547, 1791: 1548, 2023: 1549, 3083: 1550, 3384: 1551, 1147: 1552, 2937: 1553, 2248: 1554, 495: 1555, 946: 1556, 2996: 1557, 1948: 1558, 2721: 1559, 2907: 1560, 978: 1561, 2057: 1562, 936: 1563, 1035: 1564, 52: 1565, 2283: 1566, 382: 1567, 481: 1568, 3061: 1569, 2618: 1570, 248: 1571, 2836: 1572, 2766: 1573, 489: 1574, 2718: 1575, 413: 1576, 3244: 1577, 2844: 1578, 2704: 1579, 937: 1580, 3118: 1581, 828: 1582, 1996: 1583, 953: 1584, 2383: 1585, 639: 1586, 3491: 1587, 1845: 1588, 2290: 1589, 2696: 1590, 2136: 1591, 156: 1592, 3451: 1593, 2261: 1594, 838: 1595, 2145: 1596, 2295: 1597, 3087: 1598, 1485: 1599, 3506: 1600, 3497: 1601, 2539: 1602, 2870: 1603, 2567: 1604, 2356: 1605, 3120: 1606, 371: 1607, 2558: 1608, 2469: 1609, 2780: 1610, 2372: 1611, 2072: 1612, 2793: 1613, 1440: 1614, 3045: 1615, 2796: 1616, 2374: 1617, 2375: 1618, 2413: 1619, 1474: 1620, 1461: 1621, 3343: 1622, 2891: 1623, 305: 1624, 2259: 1625, 2473: 1626, 19: 1627, 1381: 1628, 419: 1629, 3074: 1630, 2621: 1631, 2398: 1632, 1892: 1633, 73: 1634, 1545: 1635, 1997: 1636, 1873: 1637, 1693: 1638, 2154: 1639, 832: 1640, 114: 1641, 225: 1642, 2269: 1643, 89: 1644, 233: 1645, 1835: 1646, 1290: 1647, 2340: 1648, 3073: 1649, 1666: 1650, 1043: 1651, 2292: 1652, 565: 1653, 842: 1654, 2784: 1655, 879: 1656, 742: 1657, 1130: 1658, 2554: 1659, 2782: 1660, 1341: 1661, 328: 1662, 330: 1663, 1327: 1664, 2519: 1665, 2459: 1666, 220: 1667, 1346: 1668, 2121: 1669, 2149: 1670, 1388: 1671, 2451: 1672, 2338: 1673, 2113: 1674, 2163: 1675, 2119: 1676, 2430: 1677, 3036: 1678, 2370: 1679, 3345: 1680, 2537: 1681, 2851: 1682, 3062: 1683, 2273: 1684, 517: 1685, 3165: 1686, 1752: 1687, 2741: 1688, 20: 1689, 2276: 1690, 3442: 1691, 2506: 1692, 351: 1693, 46: 1694, 362: 1695, 2120: 1696, 2327: 1697, 2789: 1698, 2655: 1699, 1984: 1700, 2902: 1701, 1329: 1702, 2092: 1703, 2005: 1704, 2252: 1705, 2139: 1706, 2033: 1707, 2123: 1708, 1881: 1709, 1030: 1710, 1190: 1711, 678: 1712, 1635: 1713, 1095: 1714, 412: 1715, 1411: 1716, 1302: 1717, 3371: 1718, 1935: 1719, 2577: 1720, 1651: 1721, 1507: 1722, 2166: 1723, 1178: 1724, 2162: 1725, 3389: 1726, 2373: 1727, 501: 1728, 3317: 1729, 3262: 1730, 3538: 1731, 1227: 1732, 2792: 1733, 3206: 1734, 85: 1735, 2284: 1736, 2488: 1737, 662: 1738, 2551: 1739, 229: 1740, 2803: 1741, 259: 1742, 1184: 1743, 1425: 1744, 180: 1745, 104: 1746, 542: 1747, 719: 1748, 1410: 1749, 2423: 1750, 2066: 1751, 746: 1752, 2940: 1753, 1009: 1754, 2550: 1755, 2788: 1756, 2457: 1757, 386: 1758, 2525: 1759, 304: 1760, 3238: 1761, 3040: 1762, 1218: 1763, 3452: 1764, 69: 1765, 88: 1766, 433: 1767, 1390: 1768, 513: 1769, 2587: 1770, 3186: 1771, 376: 1772, 387: 1773, 886: 1774, 1672: 1775, 2815: 1776, 2404: 1777, 3225: 1778, 3440: 1779, 3416: 1780, 80: 1781, 668: 1782, 363: 1783, 2041: 1784, 2188: 1785, 2861: 1786, 3513: 1787, 1361: 1788, 3338: 1789, 3004: 1790, 3588: 1791, 2885: 1792, 3374: 1793, 55: 1794, 3459: 1795, 3534: 1796, 3502: 1797, 3500: 1798, 1224: 1799, 1202: 1800, 2397: 1801, 3138: 1802, 2738: 1803, 2749: 1804, 2417: 1805, 2418: 1806, 2942: 1807, 1251: 1808, 3076: 1809, 154: 1810, 1362: 1811, 2925: 1812, 3135: 1813, 3283: 1814, 3420: 1815, 2932: 1816, 2535: 1817, 3428: 1818, 2051: 1819, 2394: 1820, 3536: 1821, 3484: 1822, 1547: 1823, 1487: 1824, 3250: 1825, 2250: 1826, 3477: 1827, 1895: 1828, 3478: 1829, 3480: 1830, 3466: 1831, 2240: 1832, 1583: 1833, 1848: 1834, 1920: 1835, 1750: 1836, 491: 1837, 2432: 1838, 1515: 1839, 159: 1840, 1699: 1841, 2437: 1842, 507: 1843, 929: 1844, 506: 1845, 14: 1846, 3366: 1847, 1103: 1848, 3066: 1849, 2232: 1850, 2800: 1851, 1856: 1852, 161: 1853, 2078: 1854, 1279: 1855, 1401: 1856, 144: 1857, 518: 1858, 3284: 1859, 647: 1860, 2440: 1861, 848: 1862, 1186: 1863, 2399: 1864, 3189: 1865, 2170: 1866, 1359: 1867, 2665: 1868, 423: 1869, 2314: 1870, 1667: 1871, 2928: 1872, 1422: 1873, 2306: 1874, 2445: 1875, 2180: 1876, 743: 1877, 533: 1878, 445: 1879, 13: 1880, 2505: 1881, 801: 1882, 365: 1883, 1627: 1884, 2429: 1885, 540: 1886, 575: 1887, 2498: 1888, 370: 1889, 1417: 1890, 2052: 1891, 1665: 1892, 2977: 1893, 2354: 1894, 3387: 1895, 415: 1896, 191: 1897, 2521: 1898, 87: 1899, 2974: 1900, 2566: 1901, 1445: 1902, 3054: 1903, 747: 1904, 2386: 1905, 2612: 1906, 1942: 1907, 3347: 1908, 973: 1909, 917: 1910, 3163: 1911, 1946: 1912, 82: 1913, 2969: 1914, 444: 1915, 3327: 1916, 3182: 1917, 2846: 1918, 2905: 1919, 3134: 1920, 3091: 1921, 3096: 1922, 670: 1923, 2935: 1924, 2731: 1925, 681: 1926, 1927: 1927, 1131: 1928, 2210: 1929, 2202: 1930, 934: 1931, 976: 1932, 897: 1933, 3304: 1934, 1277: 1935, 2068: 1936, 1064: 1937, 2929: 1938, 2184: 1939, 2212: 1940, 941: 1941, 3047: 1942, 1840: 1943, 970: 1944, 2040: 1945, 2379: 1946, 3310: 1947, 12: 1948, 3368: 1949, 1609: 1950, 3475: 1951, 982: 1952, 1245: 1953, 1933: 1954, 944: 1955, 3110: 1956, 2495: 1957, 3585: 1958, 2633: 1959, 171: 1960, 3249: 1961, 2060: 1962, 309: 1963, 581: 1964, 1932: 1965, 277: 1966, 147: 1967, 564: 1968, 1589: 1969, 1034: 1970, 2927: 1971, 41: 1972, 523: 1973, 1660: 1974, 538: 1975, 2171: 1976, 846: 1977, 645: 1978, 1624: 1979, 322: 1980, 57: 1981, 271: 1982, 1836: 1983, 35: 1984, 1841: 1985, 1051: 1986, 1816: 1987, 408: 1988, 580: 1989, 94: 1990, 1943: 1991, 632: 1992, 718: 1993, 3115: 1994, 63: 1995, 2967: 1996, 3557: 1997, 3010: 1998, 1759: 1999, 2351: 2000, 2310: 2001, 1053: 2002, 2345: 2003, 621: 2004, 1023: 2005, 1844: 2006, 2820: 2007, 97: 2008, 3078: 2009, 1701: 2010, 2192: 2011, 72: 2012, 1829: 2013, 3211: 2014, 2976: 2015, 1596: 2016, 3158: 2017, 2479: 2018, 3298: 2019, 2285: 2020, 2590: 2021, 3188: 2022, 2661: 2023, 2422: 2024, 2884: 2025, 2106: 2026, 383: 2027, 1472: 2028, 2956: 2029, 1804: 2030, 521: 2031, 3409: 2032, 3266: 2033, 1523: 2034, 1743: 2035, 1310: 2036, 2689: 2037, 77: 2038, 297: 2039, 3178: 2040, 3335: 2041, 2265: 2042, 2141: 2043, 101: 2044, 1257: 2045, 663: 2046, 2500: 2047, 2249: 2048, 2447: 2049, 3243: 2050, 3254: 2051, 3544: 2052, 166: 2053, 65: 2054, 2381: 2055, 2380: 2056, 3391: 2057, 3495: 2058, 1112: 2059, 893: 2060, 1563: 2061, 175: 2062, 3437: 2063, 2435: 2064, 697: 2065, 2037: 2066, 2806: 2067, 1866: 2068, 925: 2069, 2101: 2070, 2267: 2071, 1464: 2072, 451: 2073, 2583: 2074, 335: 2075, 1754: 2076, 257: 2077, 360: 2078, 1498: 2079, 2062: 2080, 2497: 2081, 1463: 2082, 804: 2083, 1475: 2084, 2597: 2085, 270: 2086, 276: 2087, 2586: 2088, 1675: 2089, 482: 2090, 422: 2091, 2320: 2092, 554: 2093, 1003: 2094, 2326: 2095, 990: 2096, 132: 2097, 79: 2098, 640: 2099, 3516: 2100, 3600: 2101, 3564: 2102, 3602: 2103, 3604: 2104, 3520: 2105, 3605: 2106, 3608: 2107, 3610: 2108, 3457: 2109, 2156: 2110, 3200: 2111, 1937: 2112, 1414: 2113, 635: 2114, 2436: 2115, 516: 2116, 1021: 2117, 1113: 2118, 1621: 2119, 1688: 2120, 1919: 2121, 1018: 2122, 3355: 2123, 1161: 2124, 3399: 2125, 1205: 2126, 239: 2127, 2924: 2128, 2275: 2129, 704: 2130, 393: 2131, 3213: 2132, 2084: 2133, 1739: 2134, 1973: 2135, 126: 2136, 3433: 2137, 3434: 2138, 3258: 2139, 2733: 2140, 1167: 2141, 203: 2142, 234: 2143, 193: 2144, 3390: 2145, 3349: 2146, 76: 2147, 3614: 2148, 1746: 2149, 1936: 2150, 3587: 2151, 2073: 2152, 2669: 2153, 3525: 2154, 725: 2155, 3217: 2156, 2647: 2157, 3486: 2158, 2667: 2159, 3375: 2160, 242: 2161, 1925: 2162, 2939: 2163, 1684: 2164, 1468: 2165, 613: 2166, 84: 2167, 206: 2168, 1255: 2169, 2636: 2170, 2579: 2171, 511: 2172, 559: 2173, 2293: 2174, 556: 2175, 2536: 2176, 2649: 2177, 103: 2178, 2663: 2179, 332: 2180, 3488: 2181, 2656: 2182, 2637: 2183, 2638: 2184, 2634: 2185, 2646: 2186, 2814: 2187, 2652: 2188, 2654: 2189, 1337: 2190, 2651: 2191, 841: 2192, 2568: 2193, 2260: 2194, 3007: 2195, 3271: 2196, 1105: 2197, 3069: 2198, 1421: 2199, 2988: 2200, 835: 2201, 2573: 2202, 2493: 2203, 3565: 2204, 612: 2205, 1456: 2206, 122: 2207, 1599: 2208, 2582: 2209, 2368: 2210, 2783: 2211, 1331: 2212, 2740: 2213, 1655: 2214, 2868: 2215, 2790: 2216, 606: 2217, 3598: 2218, 3606: 2219, 3559: 2220, 3415: 2221, 3311: 2222, 3456: 2223, 1046: 2224, 1406: 2225, 214: 2226, 334: 2227, 1116: 2228, 1901: 2229, 3142: 2230, 1875: 2231, 2365: 2232, 2029: 2233, 2865: 2234, 1535: 2235, 414: 2236, 569: 2237, 3372: 2238, 2540: 2239, 547: 2240, 1067: 2241, 3324: 2242, 3103: 2243, 291: 2244, 3593: 2245, 421: 2246, 2453: 2247, 3145: 2248, 3038: 2249, 3533: 2250, 615: 2251, 3532: 2252, 240: 2253, 956: 2254, 2653: 2255, 2131: 2256, 2983: 2257, 1076: 2258, 2650: 2259, 927: 2260, 962: 2261, 775: 2262, 2847: 2263, 1160: 2264, 347: 2265, 2682: 2266, 1024: 2267, 2753: 2268, 3275: 2269, 2195: 2270, 456: 2271, 1511: 2272, 1446: 2273, 1733: 2274, 3106: 2275, 3328: 2276, 2246: 2277, 3221: 2278, 3571: 2279, 3570: 2280, 389: 2281, 1324: 2282, 2315: 2283, 2516: 2284, 352: 2285, 324: 2286, 1612: 2287, 1904: 2288, 2007: 2289, 570: 2290, 3049: 2291, 452: 2292, 2236: 2293, 829: 2294, 1613: 2295, 477: 2296, 268: 2297, 409: 2298, 215: 2299, 806: 2300, 2639: 2301, 1670: 2302, 1753: 2303, 3339: 2304, 2893: 2305, 2607: 2306, 3465: 2307, 2888: 2308, 184: 2309, 2978: 2310, 881: 2311, 1854: 2312, 135: 2313, 1000: 2314, 813: 2315, 312: 2316, 278: 2317, 3031: 2318, 833: 2319, 473: 2320, 472: 2321, 438: 2322, 2317: 2323, 2027: 2324, 275: 2325, 1604: 2326, 1550: 2327, 2992: 2328, 3013: 2329, 1998: 2330, 2903: 2331, 2878: 2332, 3021: 2333, 3490: 2334, 1989: 2335, 3487: 2336, 1068: 2337, 2187: 2338, 3316: 2339, 3445: 2340, 2242: 2341, 3577: 2342, 3510: 2343, 3041: 2344, 458: 2345, 3431: 2346, 3432: 2347, 2896: 2348, 487: 2349, 2055: 2350, 3427: 2351, 2458: 2352, 809: 2353, 2606: 2354, 3077: 2355, 121: 2356, 3402: 2357, 1865: 2358, 1123: 2359, 2659: 2360, 2182: 2361, 2017: 2362, 1571: 2363, 2099: 2364, 3199: 2365, 3414: 2366, 2263: 2367, 3235: 2368, 116: 2369, 2585: 2370, 709: 2371, 3393: 2372, 2151: 2373, 1647: 2374, 798: 2375, 2594: 2376, 2507: 2377, 781: 2378, 2281: 2379, 1352: 2380, 869: 2381, 210: 2382, 650: 2383, 2272: 2384, 9: 2385, 467: 2386, 189: 2387, 3425: 2388, 1703: 2389, 1900: 2390, 1812: 2391, 1585: 2392, 525: 2393, 1857: 2394, 505: 2395, 267: 2396, 2610: 2397, 2798: 2398, 449: 2399, 984: 2400, 3394: 2401, 2879: 2402, 711: 2403, 217: 2404, 3042: 2405, 1692: 2406, 2483: 2407, 1432: 2408, 3268: 2409, 2714: 2410, 1450: 2411, 2562: 2412, 2856: 2413, 2744: 2414, 1640: 2415, 957: 2416, 1152: 2417, 181: 2418, 1495: 2419, 1720: 2420, 667: 2421, 2817: 2422, 839: 2423, 2899: 2424, 1011: 2425, 2050: 2426, 2142: 2427, 631: 2428, 1654: 2429, 2079: 2430, 2035: 2431, 960: 2432, 2205: 2433, 2589: 2434, 255: 2435, 2549: 2436, 2952: 2437, 3423: 2438, 2264: 2439, 3141: 2440, 2515: 2441, 2982: 2442, 2452: 2443, 1992: 2444, 2462: 2445, 1993: 2446, 891: 2447, 3367: 2448, 2816: 2449, 627: 2450, 1929: 2451, 2938: 2452, 1477: 2453, 1460: 2454, 2962: 2455, 3292: 2456, 2773: 2457, 3622: 2458, 769: 2459, 1758: 2460, 484: 2461, 2045: 2462, 888: 2463, 3144: 2464, 2695: 2465, 3492: 2466, 238: 2467, 3578: 2468, 3509: 2469, 3286: 2470, 96: 2471, 3137: 2472, 1015: 2473, 1317: 2474, 1398: 2475, 2382: 2476, 1322: 2477, 2892: 2478, 2255: 2479, 2095: 2480, 3043: 2481, 807: 2482, 987: 2483, 1600: 2484, 3232: 2485, 2044: 2486, 1837: 2487, 710: 2488, 470: 2489, 102: 2490, 321: 2491, 1695: 2492, 3556: 2493, 3012: 2494, 1896: 2495, 3417: 2496, 2776: 2497, 2630: 2498, 1428: 2499, 3620: 2500, 2177: 2501, 2523: 2502, 1363: 2503, 1496: 2504, 3299: 2505, 1631: 2506, 1669: 2507, 302: 2508, 131: 2509, 1482: 2510, 3287: 2511, 3483: 2512, 544: 2513, 548: 2514, 2889: 2515, 1898: 2516, 201: 2517, 463: 2518, 2504: 2519, 3403: 2520, 3579: 2521, 3554: 2522, 3617: 2523, 3618: 2524, 3596: 2525, 3580: 2526, 3537: 2527, 3597: 2528, 3619: 2529, 3326: 2530, 2169: 2531, 1826: 2532, 1677: 2533, 2350: 2534, 2681: 2535, 2767: 2536, 2691: 2537, 3048: 2538, 2786: 2539, 2257: 2540, 2799: 2541, 2756: 2542, 3223: 2543, 83: 2544, 1484: 2545, 2853: 2546, 1860: 2547, 3214: 2548, 536: 2549, 3109: 2550, 23: 2551, 1906: 2552, 3218: 2553, 2965: 2554, 3613: 2555, 37: 2556, 1564: 2557, 638: 2558, 74: 2559, 301: 2560, 469: 2561, 1632: 2562, 779: 2563, 2165: 2564, 685: 2565, 2548: 2566, 1668: 2567, 2426: 2568, 3063: 2569, 3599: 2570, 61: 2571, 436: 2572, 1658: 2573, 18: 2574, 209: 2575, 93: 2576, 2809: 2577, 567: 2578, 2727: 2579, 1154: 2580, 854: 2581, 850: 2582, 669: 2583, 1351: 2584, 263: 2585, 3531: 2586, 2849: 2587, 1050: 2588, 563: 2589, 715: 2590, 343: 2591, 3539: 2592, 2305: 2593, 155: 2594, 3562: 2595, 782: 2596, 3586: 2597, 390: 2598, 3313: 2599, 211: 2600, 1404: 2601, 254: 2602, 78: 2603, 882: 2604, 424: 2605, 1044: 2606, 346: 2607, 1473: 2608, 2482: 2609, 3306: 2610, 2596: 2611, 528: 2612, 3309: 2613, 2196: 2614, 1869: 2615, 3563: 2616, 1867: 2617, 2307: 2618, 1853: 2619, 2128: 2620, 2325: 2621, 1592: 2622, 486: 2623, 656: 2624, 1679: 2625, 1439: 2626, 867: 2627, 453: 2628, 174: 2629, 2552: 2630, 810: 2631, 1798: 2632, 118: 2633, 331: 2634, 2190: 2635, 3127: 2636, 2449: 2637, 2876: 2638, 885: 2639, 2280: 2640, 716: 2641, 478: 2642, 1436: 2643, 626: 2644, 243: 2645, 3511: 2646, 2494: 2647, 618: 2648, 1661: 2649, 1686: 2650, 391: 2651, 998: 2652, 1662: 2653, 1824: 2654, 732: 2655, 2812: 2656, 1532: 2657, 283: 2658, 1601: 2659, 2271: 2660, 510: 2661, 2201: 2662, 100: 2663, 3553: 2664, 3566: 2665, 1870: 2666, 443: 2667, 3357: 2668, 3319: 2669, 3185: 2670, 1910: 2671, 2810: 2672, 2047: 2673, 336: 2674, 3639: 2675, 3634: 2676, 764: 2677, 197: 2678, 503: 2679, 633: 2680, 68: 2681, 1328: 2682, 1325: 2683, 2461: 2684, 1191: 2685, 294: 2686, 2341: 2687, 1767: 2688, 498: 2689, 703: 2690, 354: 2691, 167: 2692, 522: 2693, 27: 2694, 2400: 2695, 2256: 2696, 3344: 2697, 3026: 2698, 3638: 2699, 3633: 2700, 3635: 2701, 2614: 2702, 760: 2703, 1323: 2704, 202: 2705, 896: 2706, 2514: 2707, 1335: 2708, 2347: 2709, 2818: 2710, 3464: 2711, 1232: 2712, 2026: 2713, 3624: 2714, 2031: 2715, 3177: 2716, 3643: 2717, 3628: 2718, 3514: 2719, 1038: 2720, 3515: 2721, 3446: 2722, 3027: 2723, 3629: 2724, 3645: 2725, 1119: 2726, 483: 2727, 3594: 2728, 1525: 2729, 1756: 2730, 1990: 2731, 2754: 2732, 3453: 2733, 2049: 2734, 3181: 2735, 3470: 2736, 3636: 2737, 3644: 2738, 1822: 2739, 1426: 2740, 1164: 2741, 1902: 2742, 3240: 2743, 3623: 2744, 2323: 2745, 1349: 2746, 1336: 2747, 3241: 2748, 2833: 2749, 3117: 2750, 1151: 2751, 2008: 2752, 1087: 2753, 2886: 2754, 2737: 2755, 3474: 2756, 1180: 2757, 847: 2758, 997: 2759, 2679: 2760, 3122: 2761, 1928: 2762, 2981: 2763, 2984: 2764, 1849: 2765, 876: 2766, 1117: 2767, 1671: 2768, 1508: 2769, 1114: 2770, 1501: 2771, 53: 2772, 313: 2773, 3612: 2774, 2834: 2775, 38: 2776, 3190: 2777, 2499: 2778, 3668: 2779, 3615: 2780, 2674: 2781, 3684: 2782, 3671: 2783, 3683: 2784, 274: 2785, 117: 2786, 228: 2787, 99: 2788, 75: 2789, 3712: 2790, 3676: 2791, 128: 2792, 3704: 2793, 3702: 2794, 2446: 2795, 3649: 2796, 3697: 2797, 3706: 2798, 3681: 2799, 3654: 2800, 3686: 2801, 3708: 2802, 3703: 2803, 3688: 2804, 3685: 2805, 3698: 2806, 3700: 2807, 2342: 2808, 392: 2809, 3682: 2810, 3701: 2811, 3637: 2812, 3690: 2813, 3689: 2814, 2593: 2815, 583: 2816, 3699: 2817, 3707: 2818, 3675: 2819, 3693: 2820, 2843: 2821, 3320: 2822, 2897: 2823, 1889: 2824, 3711: 2825, 2086: 2826, 1121: 2827, 1169: 2828, 1313: 2829, 3567: 2830, 3581: 2831, 1770: 2832, 1782: 2833, 359: 2834, 1514: 2835, 3660: 2836, 3627: 2837, 3653: 2838, 3705: 2839, 3669: 2840, 3207: 2841, 753: 2842, 1415: 2843, 3632: 2844, 3713: 2845, 3678: 2846, 2831: 2847, 2945: 2848, 3677: 2849, 568: 2850, 3672: 2851, 369: 2852, 602: 2853, 219: 2854, 137: 2855, 136: 2856, 2103: 2857, 56: 2858, 146: 2859, 54: 2860, 2559: 2861, 90: 2862, 603: 2863, 877: 2864, 566: 2865, 771: 2866, 1749: 2867, 3473: 2868, 617: 2869, 406: 2870, 1420: 2871, 3680: 2872, 3674: 2873, 113: 2874, 3661: 2875, 3673: 2876, 2904: 2877, 3092: 2878, 2215: 2879, 1054: 2880, 3691: 2881, 250: 2882, 3055: 2883, 3679: 2884, 1656: 2885, 3692: 2886, 2339: 2887, 3715: 2888, 385: 2889, 2211: 2890, 974: 2891, 3139: 2892, 958: 2893, 3171: 2894, 755: 2895, 3215: 2896, 3670: 2897, 3710: 2898, 3740: 2899, 3730: 2900, 3724: 2901, 3731: 2902, 3732: 2903, 3716: 2904, 3733: 2905, 3734: 2906, 3735: 2907, 3729: 2908, 3738: 2909, 2209: 2910, 1903: 2911, 2227: 2912, 2221: 2913, 2185: 2914, 1728: 2915, 264: 2916, 1533: 2917, 3742: 2918, 3723: 2919, 3664: 2920, 3663: 2921, 3709: 2922, 106: 2923, 1696: 2924, 824: 2925, 3728: 2926, 619: 2927, 40: 2928, 2994: 2929, 3741: 2930, 1922: 2931, 1458: 2932, 3658: 2933, 384: 2934, 1423: 2935, 2627: 2936, 831: 2937, 3400: 2938, 2785: 2939, 3736: 2940, 1814: 2941, 2244: 2942, 1486: 2943, 375: 2944, 2755: 2945, 1715: 2946, 992: 2947, 2074: 2948, 2632: 2949, 1489: 2950, 3454: 2951, 1725: 2952, 1551: 2953, 3694: 2954, 3646: 2955, 609: 2956, 244: 2957, 722: 2958, 3714: 2959, 3665: 2960, 3662: 2961, 1063: 2962, 3648: 2963, 3659: 2964, 3696: 2965, 939: 2966, 3727: 2967, 3626: 2968, 1437: 2969, 811: 2970, 2778: 2971, 3725: 2972, 754: 2973, 2477: 2974, 1887: 2975, 411: 2976, 1055: 2977, 2191: 2978, 3717: 2979, 3667: 2980, 1534: 2981, 1817: 2982, 705: 2983, 3655: 2984, 1531: 2985, 3744: 2986, 2850: 2987, 2207: 2988, 2197: 2989, 2481: 2990, 1455: 2991, 1071: 2992, 1549: 2993, 2933: 2994, 3726: 2995, 2813: 2996, 3739: 2997, 1893: 2998, 2298: 2999, 1859: 3000, 1509: 3001, 3540: 3002, 3657: 3003, 3640: 3004, 863: 3005, 3719: 3006, 2837: 3007, 1879: 3008, 3124: 3009, 3302: 3010, 1567: 3011, 793: 3012, 3745: 3013, 1502: 3014, 3652: 3015, 119: 3016, 3754: 3017, 3763: 3018, 3746: 3019, 496: 3020, 310: 3021, 2824: 3022, 1864: 3023, 3751: 3024, 3303: 3025, 3753: 3026, 3764: 3027, 1170: 3028, 3782: 3029, 3781: 3030, 3771: 3031, 3766: 3032, 3773: 3033, 149: 3034, 3760: 3035, 665: 3036, 3770: 3037, 3758: 3038, 2855: 3039, 3743: 3040, 3769: 3041, 3183: 3042, 2158: 3043, 1793: 3044, 1153: 3045, 3642: 3046, 3737: 3047, 3025: 3048, 3768: 3049, 2534: 3050, 2332: 3051, 3780: 3052, 394: 3053, 2486: 3054, 1807: 3055, 2175: 3056, 2509: 3057, 3116: 3058, 600: 3059, 3774: 3060, 3463: 3061, 2864: 3062, 3752: 3063, 3791: 3064, 3784: 3065, 2914: 3066, 3788: 3067, 3767: 3068, 3695: 3069, 1538: 3070, 3789: 3071, 3755: 3072, 3792: 3073, 2200: 3074, 526: 3075, 1144: 3076, 3239: 3077, 1026: 3078, 1899: 3079, 2056: 3080, 1384: 3081, 3720: 3082, 1369: 3083, 3333: 3084, 698: 3085, 3718: 3086, 3765: 3087, 3747: 3088, 3775: 3089, 3778: 3090, 2179: 3091, 2964: 3092, 864: 3093, 3569: 3094, 1574: 3095, 430: 3096, 3064: 3097, 251: 3098, 2963: 3099, 598: 3100, 3783: 3101, 1718: 3102, 3759: 3103, 2979: 3104, 1490: 3105, 1311: 3106, 3050: 3107, 659: 3108, 1565: 3109, 2219: 3110, 2775: 3111, 3002: 3112, 3776: 3113, 178: 3114, 1002: 3115, 1850: 3116, 1493: 3117, 3058: 3118, 49: 3119, 3276: 3120, 3785: 3121, 3346: 3122, 2854: 3123, 3757: 3124, 3761: 3125, 2675: 3126, 3192: 3127, 2304: 3128, 1880: 3129, 2931: 3130, 3222: 3131, 2658: 3132, 561: 3133, 2544: 3134, 1926: 3135, 1539: 3136, 3180: 3137, 1575: 3138, 560: 3139, 2930: 3140, 1433: 3141, 200: 3142, 1741: 3143, 664: 3144, 2569: 3145, 966: 3146, 1890: 3147, 3721: 3148, 1825: 3149, 279: 3150, 2234: 3151, 2164: 3152, 1572: 3153, 1174: 3154, 1312: 3155, 1181: 3156, 2444: 3157, 726: 3158, 124: 3159, 3812: 3160, 3806: 3161, 3814: 3162, 3809: 3163, 3811: 3164, 3819: 3165, 108: 3166, 3813: 3167, 3802: 3168, 3799: 3169, 3121: 3170, 3801: 3171, 3810: 3172, 1878: 3173, 3807: 3174, 2873: 3175, 3804: 3176, 3818: 3177, 1163: 3178, 3817: 3179, 3793: 3180, 1520: 3181, 3790: 3182, 3787: 3183, 1664: 3184, 3795: 3185, 2129: 3186, 1519: 3187, 860: 3188, 3749: 3189, 2839: 3190, 287: 3191, 844: 3192, 2063: 3193, 3166: 3194, 3003: 3195, 3803: 3196, 3616: 3197, 3798: 3198, 751: 3199, 3318: 3200, 3808: 3201, 397: 3202, 2189: 3203, 3794: 3204, 3805: 3205, 3797: 3206, 1570: 3207, 3841: 3208, 3786: 3209, 3832: 3210, 3834: 3211, 3835: 3212, 3836: 3213, 3844: 3214, 3840: 3215, 3846: 3216, 1659: 3217, 3849: 3218, 2666: 3219, 3845: 3220, 3831: 3221, 3822: 3222, 3796: 3223, 3777: 3224, 2466: 3225, 3843: 3226, 3821: 3227, 3837: 3228, 3839: 3229, 3827: 3230, 3820: 3231, 2760: 3232, 2635: 3233, 2777: 3234, 3816: 3235, 3641: 3236, 3847: 3237, 3838: 3238, 2923: 3239, 3351: 3240, 3833: 3241, 3848: 3242, 2743: 3243, 1138: 3244, 1168: 3245, 1529: 3246, 3825: 3247, 874: 3248, 3850: 3249, 1811: 3250, 972: 3251, 2913: 3252, 1780: 3253, 767: 3254, 2487: 3255, 3611: 3256, 1891: 3257, 2608: 3258, 1522: 3259, 3826: 3260, 3161: 3261, 2998: 3262, 3293: 3263, 652: 3264, 148: 3265, 3824: 3266, 3864: 3267, 3859: 3268, 3861: 3269, 295: 3270, 3056: 3271, 3823: 3272, 3625: 3273, 980: 3274, 2934: 3275, 3866: 3276, 2673: 3277, 3140: 3278, 3592: 3279, 460: 3280, 1685: 3281, 3869: 3282, 3873: 3283, 3858: 3284, 3877: 3285, 3410: 3286, 2388: 3287, 3868: 3288, 3872: 3289, 2830: 3290, 1383: 3291, 3870: 3292, 1098: 3293, 3871: 3294, 3860: 3295, 2705: 3296, 3875: 3297, 3666: 3298, 2415: 3299, 3857: 3300, 2557: 3301, 3523: 3302, 3863: 3303, 815: 3304, 3830: 3305, 3884: 3306, 3852: 3307, 3880: 3308, 2233: 3309, 3874: 3310, 3878: 3311, 3886: 3312, 129: 3313, 2602: 3314, 3879: 3315, 3882: 3316, 630: 3317, 3001: 3318, 3851: 3319, 2911: 3320, 245: 3321, 3855: 3322, 3867: 3323, 3865: 3324, 3853: 3325, 2765: 3326, 2631: 3327, 1444: 3328, 3568: 3329, 614: 3330, 1058: 3331, 3897: 3332, 3893: 3333, 3889: 3334, 3925: 3335, 3936: 3336, 3942: 3337, 3941: 3338, 3940: 3339, 3939: 3340, 3938: 3341, 3937: 3342, 3927: 3343, 3926: 3344, 3908: 3345, 3917: 3346, 3918: 3347, 3921: 3348, 3922: 3349, 3919: 3350, 3930: 3351, 3901: 3352, 3920: 3353, 3903: 3354, 3895: 3355, 3910: 3356, 3915: 3357, 3932: 3358, 3929: 3359, 3896: 3360, 3898: 3361, 212: 3362, 3928: 3363, 3923: 3364, 3931: 3365, 3909: 3366, 3916: 3367, 2538: 3368, 3911: 3369, 3894: 3370, 3914: 3371, 3948: 3372, 3883: 3373, 3947: 3374, 3885: 3375, 3913: 3376, 2768: 3377, 3162: 3378, 3952: 3379, 2545: 3380, 3924: 3381, 3946: 3382, 1796: 3383, 3934: 3384, 3945: 3385, 3943: 3386, 3854: 3387, 3935: 3388, 3933: 3389, 2769: 3390, 3949: 3391, 2464: 3392, 3902: 3393, 3950: 3394, 3944: 3395, 3891: 3396, 3900: 3397, 3154: 3398, 3951: 3399, 3184: 3400, 2061: 3401, 98: 3402, 3912: 3403, 3906: 3404, 3892: 3405, 1040: 3406, 1543: 3407, 1622: 3408, 1636: 3409, 1471: 3410}} {'item_id': {0: 858, 1: 593, 2: 2384, 3: 2019, 4: 1961, 5: 1419, 6: 3111, 7: 573, 8: 213, 9: 3505, 10: 1734, 11: 2503, 12: 912, 13: 919, 14: 527, 15: 649, 16: 1252, 17: 318, 18: 3289, 19: 759, 20: 608, 21: 2396, 22: 2858, 23: 326, 24: 2028, 25: 1649, 26: 2762, 27: 17, 28: 34, 29: 246, 30: 2692, 31: 1617, 32: 300, 33: 1392, 34: 1111, 35: 150, 36: 562, 37: 549, 38: 1537, 39: 1554, 40: 448, 41: 265, 42: 866, 43: 1358, 44: 2324, 45: 235, 46: 446, 47: 247, 48: 1094, 49: 1704, 50: 50, 51: 162, 52: 45, 53: 348, 54: 508, 55: 1089, 56: 589, 57: 58, 58: 1694, 59: 2580, 60: 1834, 61: 2391, 62: 282, 63: 111, 64: 290, 65: 2067, 66: 1641, 67: 357, 68: 930, 69: 1230, 70: 947, 71: 3088, 72: 3133, 73: 3022, 74: 1294, 75: 3421, 76: 2804, 77: 1269, 78: 1276, 79: 1244, 80: 2622, 81: 955, 82: 2791, 83: 2300, 84: 1028, 85: 2863, 86: 3548, 87: 1197, 88: 951, 89: 1223, 90: 1211, 91: 933, 92: 1066, 93: 3072, 94: 907, 95: 2671, 96: 935, 97: 1304, 98: 3175, 99: 3035, 100: 1014, 101: 1078, 102: 3363, 103: 1270, 104: 1265, 105: 909, 106: 3396, 107: 1934, 108: 2174, 109: 911, 110: 945, 111: 2746, 112: 1188, 113: 471, 114: 3037, 115: 952, 116: 2289, 117: 916, 118: 1125, 119: 915, 120: 3028, 121: 3471, 122: 260, 123: 750, 124: 924, 125: 1210, 126: 1097, 127: 3545, 128: 2565, 129: 914, 130: 2087, 131: 918, 132: 899, 133: 1282, 134: 1022, 135: 900, 136: 364, 137: 1951, 138: 588, 139: 3549, 140: 963, 141: 1947, 142: 1081, 143: 2946, 144: 2083, 145: 1220, 146: 107, 147: 1380, 148: 2857, 149: 2096, 150: 1088, 151: 661, 152: 938, 153: 901, 154: 783, 155: 1083, 156: 2080, 157: 199, 158: 1416, 159: 48, 160: 903, 161: 1284, 162: 904, 163: 913, 164: 1212, 165: 2206, 166: 1086, 167: 950, 168: 1964, 169: 2208, 170: 906, 171: 942, 172: 2414, 173: 1680, 174: 926, 175: 1237, 176: 923, 177: 920, 178: 2146, 179: 1387, 180: 356, 181: 1079, 182: 2716, 183: 1148, 184: 232, 185: 1136, 186: 702, 187: 1882, 188: 1267, 189: 3508, 190: 3148, 191: 3543, 192: 1221, 193: 2132, 194: 1250, 195: 1193, 196: 1299, 197: 1225, 198: 3006, 199: 3196, 200: 908, 201: 1207, 202: 3469, 203: 1721, 204: 3438, 205: 2428, 206: 1883, 207: 2376, 208: 1945, 209: 3468, 210: 2728, 211: 3359, 212: 1938, 213: 1949, 214: 1231, 215: 2706, 216: 2707, 217: 2826, 218: 2492, 219: 2827, 220: 2572, 221: 2683, 222: 2699, 223: 3362, 224: 3504, 225: 1203, 226: 2501, 227: 2770, 228: 2842, 229: 3005, 230: 2555, 231: 3285, 232: 2710, 233: 2694, 234: 2975, 235: 2997, 236: 3270, 237: 3330, 238: 1233, 239: 2771, 240: 2147, 241: 3016, 242: 223, 243: 2433, 244: 2038, 245: 3068, 246: 3095, 247: 1208, 248: 1941, 249: 2919, 250: 2890, 251: 1293, 252: 1940, 253: 2678, 254: 1093, 255: 1911, 256: 2772, 257: 2546, 258: 2722, 259: 3203, 260: 2881, 261: 2759, 262: 2541, 263: 2336, 264: 2599, 265: 3113, 266: 2575, 267: 2828, 268: 2605, 269: 3408, 270: 2434, 271: 3051, 272: 1259, 273: 3467, 274: 1213, 275: 3159, 276: 2757, 277: 2712, 278: 1950, 279: 1939, 280: 1952, 281: 3526, 282: 2995, 283: 407, 284: 2676, 285: 2690, 286: 2333, 287: 2318, 288: 2719, 289: 3152, 290: 959, 291: 2303, 292: 1288, 293: 2629, 294: 2882, 295: 2713, 296: 3008, 297: 785, 298: 3160, 299: 2392, 300: 2390, 301: 2238, 302: 1953, 303: 3147, 304: 1674, 305: 3354, 306: 2900, 307: 3053, 308: 2734, 309: 2805, 310: 3379, 311: 2439, 312: 296, 313: 949, 314: 968, 315: 1959, 316: 2490, 317: 2574, 318: 2581, 319: 3325, 320: 2502, 321: 2723, 322: 3219, 323: 2901, 324: 3201, 325: 1956, 326: 3424, 327: 2906, 328: 2013, 329: 2598, 330: 299, 331: 3300, 332: 2758, 333: 24, 334: 43, 335: 2093, 336: 2395, 337: 2560, 338: 2686, 339: 1513, 340: 2485, 341: 3273, 342: 2491, 343: 2700, 344: 2841, 345: 3081, 346: 2840, 347: 2672, 348: 2070, 349: 2702, 350: 3176, 351: 2715, 352: 2693, 353: 3114, 354: 1623, 355: 2337, 356: 2701, 357: 2987, 358: 86, 359: 2600, 360: 3125, 361: 3179, 362: 3329, 363: 2010, 364: 461, 365: 1413, 366: 2024, 367: 1198, 368: 745, 369: 720, 370: 1196, 371: 1192, 372: 3149, 373: 1281, 374: 28, 375: 3307, 376: 3224, 377: 3265, 378: 1219, 379: 3128, 380: 2360, 381: 3462, 382: 3030, 383: 1348, 384: 1719, 385: 2075, 386: 541, 387: 2972, 388: 1248, 389: 1007, 390: 902, 391: 898, 392: 25, 393: 3067, 394: 922, 395: 1247, 396: 2859, 397: 2677, 398: 2186, 399: 2609, 400: 1303, 401: 1412, 402: 1104, 403: 2648, 404: 2357, 405: 2628, 406: 1228, 407: 3429, 408: 2732, 409: 1080, 410: 1584, 411: 480, 412: 32, 413: 2046, 414: 1748, 415: 2571, 416: 800, 417: 1214, 418: 3365, 419: 2664, 420: 1909, 421: 1372, 422: 1591, 423: 504, 424: 1653, 425: 2916, 426: 1356, 427: 1580, 428: 1527, 429: 1876, 430: 1396, 431: 971, 432: 2660, 433: 329, 434: 2012, 435: 788, 436: 3156, 437: 2393, 438: 512, 439: 1217, 440: 3075, 441: 3089, 442: 338, 443: 1573, 444: 1690, 445: 1150, 446: 2973, 447: 1603, 448: 1544, 449: 185, 450: 1391, 451: 1831, 452: 1320, 453: 2920, 454: 1885, 455: 1931, 456: 1240, 457: 514, 458: 1779, 459: 2808, 460: 2986, 461: 405, 462: 2053, 463: 1590, 464: 1041, 465: 2020, 466: 1056, 467: 1132, 468: 66, 469: 737, 470: 2448, 471: 256, 472: 1176, 473: 1199, 474: 3447, 475: 176, 476: 1200, 477: 1374, 478: 1657, 479: 3527, 480: 2968, 481: 1375, 482: 1274, 483: 2455, 484: 2985, 485: 1376, 486: 2011, 487: 2613, 488: 2021, 489: 2407, 490: 2105, 491: 2117, 492: 2311, 493: 2140, 494: 1253, 495: 3551, 496: 1234, 497: 3547, 498: 1965, 499: 2641, 500: 2054, 501: 1373, 502: 2364, 503: 2408, 504: 2456, 505: 2642, 506: 1254, 507: 1278, 508: 3090, 509: 3052, 510: 1397, 511: 2730, 512: 2848, 513: 1594, 514: 599, 515: 3361, 516: 3461, 517: 1077, 518: 306, 519: 1185, 520: 3418, 521: 1242, 522: 110, 523: 307, 524: 1874, 525: 1504, 526: 1258, 527: 1957, 528: 2971, 529: 2064, 530: 1243, 531: 1345, 532: 344, 533: 967, 534: 3130, 535: 249, 536: 1280, 537: 778, 538: 1784, 539: 293, 540: 590, 541: 475, 542: 1682, 543: 1179, 544: 2291, 545: 3108, 546: 1264, 547: 373, 548: 194, 549: 337, 550: 358, 551: 454, 552: 1366, 553: 1061, 554: 515, 555: 2366, 556: 961, 557: 3246, 558: 1466, 559: 62, 560: 3386, 561: 3342, 562: 3019, 563: 3426, 564: 1120, 565: 11, 566: 1268, 567: 4, 568: 1735, 569: 230, 570: 805, 571: 3255, 572: 2688, 573: 21, 574: 26, 575: 1727, 576: 280, 577: 3252, 578: 1729, 579: 3155, 580: 509, 581: 1747, 582: 224, 583: 1918, 584: 3435, 585: 2726, 586: 320, 587: 2361, 588: 3364, 589: 1442, 590: 1480, 591: 875, 592: 3334, 593: 1260, 594: 31, 595: 1711, 596: 2441, 597: 2966, 598: 1962, 599: 851, 600: 350, 601: 2002, 602: 695, 603: 1201, 604: 2059, 605: 1183, 606: 2875, 607: 1096, 608: 2288, 609: 921, 610: 1036, 611: 940, 612: 2644, 613: 253, 614: 1586, 615: 605, 616: 1027, 617: 30, 618: 42, 619: 457, 620: 1006, 621: 2908, 622: 766, 623: 1884, 624: 1801, 625: 3257, 626: 3521, 627: 3528, 628: 418, 629: 765, 630: 455, 631: 2431, 632: 1726, 633: 1340, 634: 1966, 635: 2313, 636: 3150, 637: 969, 638: 1797, 639: 3550, 640: 308, 641: 3498, 642: 92, 643: 2412, 644: 169, 645: 1595, 646: 2819, 647: 3198, 648: 2130, 649: 994, 650: 3499, 651: 2529, 652: 2102, 653: 1296, 654: 1, 655: 594, 656: 1301, 657: 1307, 658: 3132, 659: 1354, 660: 735, 661: 1954, 662: 388, 663: 1272, 664: 2302, 665: 2542, 666: 1500, 667: 2947, 668: 2355, 669: 3253, 670: 1923, 671: 1517, 672: 367, 673: 2662, 674: 3018, 675: 2739, 676: 1827, 677: 440, 678: 2124, 679: 500, 680: 1614, 681: 7, 682: 3450, 683: 2108, 684: 2926, 685: 597, 686: 1777, 687: 3263, 688: 708, 689: 236, 690: 539, 691: 216, 692: 1020, 693: 378, 694: 3208, 695: 333, 696: 1713, 697: 5, 698: 830, 699: 2004, 700: 1042, 701: 3098, 702: 3094, 703: 1409, 704: 231, 705: 372, 706: 157, 707: 1582, 708: 1944, 709: 1914, 710: 1367, 711: 2709, 712: 1377, 713: 252, 714: 784, 715: 585, 716: 1379, 717: 3086, 718: 3267, 719: 186, 720: 466, 721: 673, 722: 1702, 723: 1689, 724: 2266, 725: 1806, 726: 355, 727: 537, 728: 3, 729: 1494, 730: 1855, 731: 153, 732: 2387, 733: 1503, 734: 2335, 735: 1646, 736: 818, 737: 1581, 738: 520, 739: 1863, 740: 2016, 741: 1012, 742: 432, 743: 1602, 744: 637, 745: 2036, 746: 1431, 747: 2953, 748: 1760, 749: 1453, 750: 688, 751: 2042, 752: 374, 753: 1005, 754: 437, 755: 2720, 756: 2296, 757: 1839, 758: 429, 759: 1707, 760: 420, 761: 325, 762: 2152, 763: 870, 764: 1731, 765: 3146, 766: 2526, 767: 2670, 768: 2763, 769: 2000, 770: 3104, 771: 2729, 772: 123, 773: 1295, 774: 2329, 775: 2949, 776: 2951, 777: 1222, 778: 2944, 779: 2194, 780: 1127, 781: 733, 782: 3404, 783: 1408, 784: 592, 785: 2353, 786: 1608, 787: 349, 788: 780, 789: 3197, 790: 380, 791: 1676, 792: 292, 793: 2871, 794: 3105, 795: 1273, 796: 151, 797: 3210, 798: 339, 799: 1261, 800: 1171, 801: 1129, 802: 1189, 803: 2512, 804: 1300, 805: 2349, 806: 1090, 807: 1394, 808: 1975, 809: 1960, 810: 3039, 811: 1285, 812: 2348, 813: 2076, 814: 2312, 815: 3070, 816: 2872, 817: 2150, 818: 1246, 819: 3101, 820: 3422, 821: 2750, 822: 1321, 823: 1305, 824: 2852, 825: 2915, 826: 1291, 827: 3552, 828: 3449, 829: 2301, 830: 1663, 831: 2100, 832: 1124, 833: 2463, 834: 2989, 835: 2745, 836: 2286, 837: 2022, 838: 2369, 839: 2802, 840: 3524, 841: 1991, 842: 2134, 843: 2003, 844: 1173, 845: 1587, 846: 2111, 847: 3388, 848: 2089, 849: 680, 850: 2717, 851: 2751, 852: 2794, 853: 3169, 854: 2378, 855: 1289, 856: 1974, 857: 2411, 858: 2410, 859: 2948, 860: 1187, 861: 2553, 862: 2471, 863: 3017, 864: 1091, 865: 2241, 866: 2513, 867: 2402, 868: 2795, 869: 2321, 870: 1846, 871: 2421, 872: 999, 873: 555, 874: 272, 875: 3071, 876: 2160, 877: 2866, 878: 2065, 879: 529, 880: 2085, 881: 714, 882: 3204, 883: 731, 884: 862, 885: 1292, 886: 2467, 887: 1912, 888: 3097, 889: 1297, 890: 3011, 891: 2943, 892: 948, 893: 2104, 894: 596, 895: 628, 896: 441, 897: 1084, 898: 2014, 899: 2620, 900: 2159, 901: 892, 902: 2176, 903: 2687, 904: 3308, 905: 341, 906: 47, 907: 2797, 908: 2611, 909: 2018, 910: 2570, 911: 2427, 912: 2001, 913: 2401, 914: 1350, 915: 2377, 916: 1597, 917: 1673, 918: 551, 919: 840, 920: 2359, 921: 3350, 922: 2287, 923: 3060, 924: 188, 925: 3282, 926: 2118, 927: 1610, 928: 2874, 929: 3494, 930: 1029, 931: 1955, 932: 534, 933: 1907, 934: 1678, 935: 319, 936: 497, 937: 3044, 938: 428, 939: 1332, 940: 943, 941: 39, 942: 2071, 943: 3296, 944: 1921, 945: 1357, 946: 1968, 947: 3501, 948: 2157, 949: 3143, 950: 1013, 951: 1755, 952: 6, 953: 1611, 954: 1393, 955: 2362, 956: 2867, 957: 1082, 958: 2472, 959: 345, 960: 1355, 961: 2237, 962: 1395, 963: 1215, 964: 2048, 965: 3194, 966: 1263, 967: 3015, 968: 474, 969: 1730, 970: 3167, 971: 281, 972: 2109, 973: 2167, 974: 2155, 975: 1994, 976: 2524, 977: 2520, 978: 2877, 979: 3260, 980: 531, 981: 3546, 982: 558, 983: 1206, 984: 1010, 985: 1643, 986: 1546, 987: 728, 988: 342, 989: 3248, 990: 3157, 991: 910, 992: 1256, 993: 671, 994: 3448, 995: 1235, 996: 1238, 997: 1963, 998: 1275, 999: 8, 1000: 1162, 1001: 1073, 1002: 361, 1003: 741, 1004: 553, 1005: 1648, 1006: 610, 1007: 29, 1008: 1204, 1009: 2640, 1010: 2116, 1011: 2528, 1012: 316, 1013: 965, 1014: 1249, 1015: 928, 1016: 1371, 1017: 196, 1018: 2183, 1019: 931, 1020: 1344, 1021: 3230, 1022: 3033, 1023: 2403, 1024: 2615, 1025: 2094, 1026: 1333, 1027: 1407, 1028: 2747, 1029: 1917, 1030: 442, 1031: 1037, 1032: 173, 1033: 2178, 1034: 2034, 1035: 1982, 1036: 1343, 1037: 2181, 1038: 1732, 1039: 377, 1040: 519, 1041: 2450, 1042: 546, 1043: 2781, 1044: 905, 1045: 327, 1046: 2517, 1047: 2643, 1048: 2138, 1049: 1032, 1050: 2193, 1051: 3479, 1052: 2, 1053: 2143, 1054: 1967, 1055: 2161, 1056: 2239, 1057: 2243, 1058: 653, 1059: 1126, 1060: 2253, 1061: 3489, 1062: 837, 1063: 3439, 1064: 1172, 1065: 1566, 1066: 2409, 1067: 3584, 1068: 3590, 1069: 3591, 1070: 3529, 1071: 2959, 1072: 2912, 1073: 2829, 1074: 1792, 1075: 2894, 1076: 2334, 1077: 165, 1078: 170, 1079: 1438, 1080: 227, 1081: 1287, 1082: 861, 1083: 465, 1084: 1429, 1085: 1101, 1086: 1370, 1087: 2133, 1088: 2533, 1089: 2363, 1090: 2454, 1091: 2527, 1092: 2657, 1093: 2009, 1094: 3340, 1095: 2346, 1096: 426, 1097: 1334, 1098: 3555, 1099: 1924, 1100: 674, 1101: 10, 1102: 2082, 1103: 1644, 1104: 1353, 1105: 1266, 1106: 2961, 1107: 2724, 1108: 1347, 1109: 2668, 1110: 1128, 1111: 2787, 1112: 2148, 1113: 1970, 1114: 1330, 1115: 1389, 1116: 1972, 1117: 1995, 1118: 1971, 1119: 1983, 1120: 1986, 1121: 1969, 1122: 1326, 1123: 2465, 1124: 2122, 1125: 1988, 1126: 2460, 1127: 1985, 1128: 1978, 1129: 1976, 1130: 1980, 1131: 1987, 1132: 1981, 1133: 1979, 1134: 1977, 1135: 70, 1136: 1645, 1137: 1241, 1138: 3476, 1139: 2617, 1140: 1339, 1141: 3264, 1142: 1717, 1143: 2279, 1144: 724, 1145: 1771, 1146: 2328, 1147: 273, 1148: 532, 1149: 2898, 1150: 2389, 1151: 152, 1152: 1999, 1153: 2107, 1154: 177, 1155: 1342, 1156: 2125, 1157: 3259, 1158: 2443, 1159: 2801, 1160: 1569, 1161: 1059, 1162: 3358, 1163: 543, 1164: 587, 1165: 802, 1166: 105, 1167: 1888, 1168: 2297, 1169: 1722, 1170: 852, 1171: 417, 1172: 468, 1173: 222, 1174: 3046, 1175: 353, 1176: 2424, 1177: 2496, 1178: 266, 1179: 1541, 1180: 1629, 1181: 140, 1182: 1441, 1183: 1821, 1184: 1593, 1185: 691, 1186: 1457, 1187: 237, 1188: 550, 1189: 3269, 1190: 1894, 1191: 736, 1192: 289, 1193: 207, 1194: 447, 1195: 182, 1196: 168, 1197: 195, 1198: 2316, 1199: 3261, 1200: 179, 1201: 499, 1202: 3436, 1203: 1479, 1204: 64, 1205: 2774, 1206: 258, 1207: 15, 1208: 1556, 1209: 427, 1210: 1483, 1211: 1799, 1212: 218, 1213: 3331, 1214: 3405, 1215: 2406, 1216: 2991, 1217: 3107, 1218: 2058, 1219: 648, 1220: 3082, 1221: 3443, 1222: 490, 1223: 3256, 1224: 1047, 1225: 2115, 1226: 3441, 1227: 1552, 1228: 3444, 1229: 2278, 1230: 2006, 1231: 145, 1232: 2990, 1233: 494, 1234: 2476, 1235: 303, 1236: 1385, 1237: 3274, 1238: 1687, 1239: 552, 1240: 434, 1241: 786, 1242: 1488, 1243: 459, 1244: 1833, 1245: 1100, 1246: 1769, 1247: 1616, 1248: 479, 1249: 379, 1250: 2126, 1251: 425, 1252: 1099, 1253: 986, 1254: 535, 1255: 2069, 1256: 1639, 1257: 2474, 1258: 2736, 1259: 3129, 1260: 1226, 1261: 1216, 1262: 803, 1263: 2245, 1264: 2442, 1265: 1625, 1266: 1194, 1267: 3496, 1268: 2025, 1269: 1785, 1270: 71, 1271: 464, 1272: 1810, 1273: 3029, 1274: 571, 1275: 1872, 1276: 2624, 1277: 298, 1278: 476, 1279: 1809, 1280: 2331, 1281: 2114, 1282: 3535, 1283: 3412, 1284: 993, 1285: 485, 1286: 315, 1287: 3397, 1288: 172, 1289: 204, 1290: 44, 1291: 205, 1292: 1642, 1293: 2282, 1294: 1004, 1295: 160, 1296: 694, 1297: 1497, 1298: 1681, 1299: 1794, 1300: 502, 1301: 1626, 1302: 2081, 1303: 2807, 1304: 1465, 1305: 3174, 1306: 183, 1307: 1060, 1308: 125, 1309: 3481, 1310: 2097, 1311: 2268, 1312: 1057, 1313: 2330, 1314: 2077, 1315: 1805, 1316: 493, 1317: 1620, 1318: 1399, 1319: 22, 1320: 1958, 1321: 2697, 1322: 2764, 1323: 3247, 1324: 2561, 1325: 1598, 1326: 762, 1327: 81, 1328: 2294, 1329: 3099, 1330: 3079, 1331: 3112, 1332: 3507, 1333: 3398, 1334: 1017, 1335: 198, 1336: 3518, 1337: 991, 1338: 1177, 1339: 2112, 1340: 2137, 1341: 1633, 1342: 262, 1343: 1897, 1344: 3370, 1345: 1236, 1346: 1788, 1347: 366, 1348: 2144, 1349: 3100, 1350: 3576, 1351: 1286, 1352: 1619, 1353: 1476, 1354: 1427, 1355: 1916, 1356: 574, 1357: 261, 1358: 190, 1359: 241, 1360: 2470, 1361: 1135, 1362: 2419, 1363: 269, 1364: 1650, 1365: 2941, 1366: 1298, 1367: 431, 1368: 1271, 1369: 340, 1370: 2420, 1371: 3251, 1372: 1092, 1373: 1019, 1374: 1858, 1375: 1405, 1376: 3014, 1377: 3281, 1378: 988, 1379: 2231, 1380: 616, 1381: 164, 1382: 2090, 1383: 3395, 1384: 1454, 1385: 1031, 1386: 1049, 1387: 187, 1388: 16, 1389: 2247, 1390: 1518, 1391: 1683, 1392: 1516, 1393: 1913, 1394: 492, 1395: 808, 1396: 1459, 1397: 1449, 1398: 2779, 1399: 2425, 1400: 2262, 1401: 2168, 1402: 1605, 1403: 2518, 1404: 2385, 1405: 3034, 1406: 3272, 1407: 1542, 1408: 1447, 1409: 2173, 1410: 450, 1411: 317, 1412: 410, 1413: 2625, 1414: 700, 1415: 3102, 1416: 3173, 1417: 1365, 1418: 2626, 1419: 2725, 1420: 488, 1421: 707, 1422: 1783, 1423: 748, 1424: 435, 1425: 3032, 1426: 849, 1427: 1306, 1428: 1762, 1429: 2530, 1430: 3024, 1431: 2532, 1432: 3572, 1433: 692, 1434: 2531, 1435: 611, 1436: 3573, 1437: 3401, 1438: 880, 1439: 2091, 1440: 1862, 1441: 3574, 1442: 1588, 1443: 3392, 1444: 2862, 1445: 59, 1446: 2921, 1447: 2032, 1448: 2918, 1449: 3360, 1450: 2371, 1451: 2352, 1452: 1175, 1453: 2203, 1454: 1069, 1455: 3406, 1456: 799, 1457: 524, 1458: 1562, 1459: 381, 1460: 2416, 1461: 3385, 1462: 2752, 1463: 36, 1464: 2860, 1465: 2880, 1466: 112, 1467: 1615, 1468: 577, 1469: 761, 1470: 2322, 1471: 836, 1472: 1744, 1473: 2153, 1474: 2645, 1475: 2761, 1476: 141, 1477: 2748, 1478: 2708, 1479: 3301, 1480: 3512, 1481: 3519, 1482: 954, 1483: 932, 1484: 3341, 1485: 2835, 1486: 3020, 1487: 288, 1488: 996, 1489: 3430, 1490: 95, 1491: 208, 1492: 1382, 1493: 1499, 1494: 60, 1495: 2522, 1496: 2883, 1497: 2711, 1498: 3093, 1499: 1283, 1500: 1209, 1501: 1008, 1502: 2922, 1503: 964, 1504: 368, 1505: 1378, 1506: 2478, 1507: 416, 1508: 3000, 1509: 2993, 1510: 163, 1511: 2344, 1512: 1772, 1513: 2367, 1514: 2475, 1515: 2735, 1516: 2616, 1517: 2468, 1518: 462, 1519: 1606, 1520: 1262, 1521: 2970, 1522: 314, 1523: 3168, 1524: 3153, 1525: 2135, 1526: 2822, 1527: 158, 1528: 1085, 1529: 2405, 1530: 2088, 1531: 2043, 1532: 2950, 1533: 595, 1534: 1526, 1535: 1033, 1536: 1025, 1537: 2936, 1538: 2015, 1539: 586, 1540: 2098, 1541: 1016, 1542: 3503, 1543: 2204, 1544: 3419, 1545: 2511, 1546: 2917, 1547: 2110, 1548: 1791, 1549: 2023, 1550: 3083, 1551: 3384, 1552: 1147, 1553: 2937, 1554: 2248, 1555: 495, 1556: 946, 1557: 2996, 1558: 1948, 1559: 2721, 1560: 2907, 1561: 978, 1562: 2057, 1563: 936, 1564: 1035, 1565: 52, 1566: 2283, 1567: 382, 1568: 481, 1569: 3061, 1570: 2618, 1571: 248, 1572: 2836, 1573: 2766, 1574: 489, 1575: 2718, 1576: 413, 1577: 3244, 1578: 2844, 1579: 2704, 1580: 937, 1581: 3118, 1582: 828, 1583: 1996, 1584: 953, 1585: 2383, 1586: 639, 1587: 3491, 1588: 1845, 1589: 2290, 1590: 2696, 1591: 2136, 1592: 156, 1593: 3451, 1594: 2261, 1595: 838, 1596: 2145, 1597: 2295, 1598: 3087, 1599: 1485, 1600: 3506, 1601: 3497, 1602: 2539, 1603: 2870, 1604: 2567, 1605: 2356, 1606: 3120, 1607: 371, 1608: 2558, 1609: 2469, 1610: 2780, 1611: 2372, 1612: 2072, 1613: 2793, 1614: 1440, 1615: 3045, 1616: 2796, 1617: 2374, 1618: 2375, 1619: 2413, 1620: 1474, 1621: 1461, 1622: 3343, 1623: 2891, 1624: 305, 1625: 2259, 1626: 2473, 1627: 19, 1628: 1381, 1629: 419, 1630: 3074, 1631: 2621, 1632: 2398, 1633: 1892, 1634: 73, 1635: 1545, 1636: 1997, 1637: 1873, 1638: 1693, 1639: 2154, 1640: 832, 1641: 114, 1642: 225, 1643: 2269, 1644: 89, 1645: 233, 1646: 1835, 1647: 1290, 1648: 2340, 1649: 3073, 1650: 1666, 1651: 1043, 1652: 2292, 1653: 565, 1654: 842, 1655: 2784, 1656: 879, 1657: 742, 1658: 1130, 1659: 2554, 1660: 2782, 1661: 1341, 1662: 328, 1663: 330, 1664: 1327, 1665: 2519, 1666: 2459, 1667: 220, 1668: 1346, 1669: 2121, 1670: 2149, 1671: 1388, 1672: 2451, 1673: 2338, 1674: 2113, 1675: 2163, 1676: 2119, 1677: 2430, 1678: 3036, 1679: 2370, 1680: 3345, 1681: 2537, 1682: 2851, 1683: 3062, 1684: 2273, 1685: 517, 1686: 3165, 1687: 1752, 1688: 2741, 1689: 20, 1690: 2276, 1691: 3442, 1692: 2506, 1693: 351, 1694: 46, 1695: 362, 1696: 2120, 1697: 2327, 1698: 2789, 1699: 2655, 1700: 1984, 1701: 2902, 1702: 1329, 1703: 2092, 1704: 2005, 1705: 2252, 1706: 2139, 1707: 2033, 1708: 2123, 1709: 1881, 1710: 1030, 1711: 1190, 1712: 678, 1713: 1635, 1714: 1095, 1715: 412, 1716: 1411, 1717: 1302, 1718: 3371, 1719: 1935, 1720: 2577, 1721: 1651, 1722: 1507, 1723: 2166, 1724: 1178, 1725: 2162, 1726: 3389, 1727: 2373, 1728: 501, 1729: 3317, 1730: 3262, 1731: 3538, 1732: 1227, 1733: 2792, 1734: 3206, 1735: 85, 1736: 2284, 1737: 2488, 1738: 662, 1739: 2551, 1740: 229, 1741: 2803, 1742: 259, 1743: 1184, 1744: 1425, 1745: 180, 1746: 104, 1747: 542, 1748: 719, 1749: 1410, 1750: 2423, 1751: 2066, 1752: 746, 1753: 2940, 1754: 1009, 1755: 2550, 1756: 2788, 1757: 2457, 1758: 386, 1759: 2525, 1760: 304, 1761: 3238, 1762: 3040, 1763: 1218, 1764: 3452, 1765: 69, 1766: 88, 1767: 433, 1768: 1390, 1769: 513, 1770: 2587, 1771: 3186, 1772: 376, 1773: 387, 1774: 886, 1775: 1672, 1776: 2815, 1777: 2404, 1778: 3225, 1779: 3440, 1780: 3416, 1781: 80, 1782: 668, 1783: 363, 1784: 2041, 1785: 2188, 1786: 2861, 1787: 3513, 1788: 1361, 1789: 3338, 1790: 3004, 1791: 3588, 1792: 2885, 1793: 3374, 1794: 55, 1795: 3459, 1796: 3534, 1797: 3502, 1798: 3500, 1799: 1224, 1800: 1202, 1801: 2397, 1802: 3138, 1803: 2738, 1804: 2749, 1805: 2417, 1806: 2418, 1807: 2942, 1808: 1251, 1809: 3076, 1810: 154, 1811: 1362, 1812: 2925, 1813: 3135, 1814: 3283, 1815: 3420, 1816: 2932, 1817: 2535, 1818: 3428, 1819: 2051, 1820: 2394, 1821: 3536, 1822: 3484, 1823: 1547, 1824: 1487, 1825: 3250, 1826: 2250, 1827: 3477, 1828: 1895, 1829: 3478, 1830: 3480, 1831: 3466, 1832: 2240, 1833: 1583, 1834: 1848, 1835: 1920, 1836: 1750, 1837: 491, 1838: 2432, 1839: 1515, 1840: 159, 1841: 1699, 1842: 2437, 1843: 507, 1844: 929, 1845: 506, 1846: 14, 1847: 3366, 1848: 1103, 1849: 3066, 1850: 2232, 1851: 2800, 1852: 1856, 1853: 161, 1854: 2078, 1855: 1279, 1856: 1401, 1857: 144, 1858: 518, 1859: 3284, 1860: 647, 1861: 2440, 1862: 848, 1863: 1186, 1864: 2399, 1865: 3189, 1866: 2170, 1867: 1359, 1868: 2665, 1869: 423, 1870: 2314, 1871: 1667, 1872: 2928, 1873: 1422, 1874: 2306, 1875: 2445, 1876: 2180, 1877: 743, 1878: 533, 1879: 445, 1880: 13, 1881: 2505, 1882: 801, 1883: 365, 1884: 1627, 1885: 2429, 1886: 540, 1887: 575, 1888: 2498, 1889: 370, 1890: 1417, 1891: 2052, 1892: 1665, 1893: 2977, 1894: 2354, 1895: 3387, 1896: 415, 1897: 191, 1898: 2521, 1899: 87, 1900: 2974, 1901: 2566, 1902: 1445, 1903: 3054, 1904: 747, 1905: 2386, 1906: 2612, 1907: 1942, 1908: 3347, 1909: 973, 1910: 917, 1911: 3163, 1912: 1946, 1913: 82, 1914: 2969, 1915: 444, 1916: 3327, 1917: 3182, 1918: 2846, 1919: 2905, 1920: 3134, 1921: 3091, 1922: 3096, 1923: 670, 1924: 2935, 1925: 2731, 1926: 681, 1927: 1927, 1928: 1131, 1929: 2210, 1930: 2202, 1931: 934, 1932: 976, 1933: 897, 1934: 3304, 1935: 1277, 1936: 2068, 1937: 1064, 1938: 2929, 1939: 2184, 1940: 2212, 1941: 941, 1942: 3047, 1943: 1840, 1944: 970, 1945: 2040, 1946: 2379, 1947: 3310, 1948: 12, 1949: 3368, 1950: 1609, 1951: 3475, 1952: 982, 1953: 1245, 1954: 1933, 1955: 944, 1956: 3110, 1957: 2495, 1958: 3585, 1959: 2633, 1960: 171, 1961: 3249, 1962: 2060, 1963: 309, 1964: 581, 1965: 1932, 1966: 277, 1967: 147, 1968: 564, 1969: 1589, 1970: 1034, 1971: 2927, 1972: 41, 1973: 523, 1974: 1660, 1975: 538, 1976: 2171, 1977: 846, 1978: 645, 1979: 1624, 1980: 322, 1981: 57, 1982: 271, 1983: 1836, 1984: 35, 1985: 1841, 1986: 1051, 1987: 1816, 1988: 408, 1989: 580, 1990: 94, 1991: 1943, 1992: 632, 1993: 718, 1994: 3115, 1995: 63, 1996: 2967, 1997: 3557, 1998: 3010, 1999: 1759, 2000: 2351, 2001: 2310, 2002: 1053, 2003: 2345, 2004: 621, 2005: 1023, 2006: 1844, 2007: 2820, 2008: 97, 2009: 3078, 2010: 1701, 2011: 2192, 2012: 72, 2013: 1829, 2014: 3211, 2015: 2976, 2016: 1596, 2017: 3158, 2018: 2479, 2019: 3298, 2020: 2285, 2021: 2590, 2022: 3188, 2023: 2661, 2024: 2422, 2025: 2884, 2026: 2106, 2027: 383, 2028: 1472, 2029: 2956, 2030: 1804, 2031: 521, 2032: 3409, 2033: 3266, 2034: 1523, 2035: 1743, 2036: 1310, 2037: 2689, 2038: 77, 2039: 297, 2040: 3178, 2041: 3335, 2042: 2265, 2043: 2141, 2044: 101, 2045: 1257, 2046: 663, 2047: 2500, 2048: 2249, 2049: 2447, 2050: 3243, 2051: 3254, 2052: 3544, 2053: 166, 2054: 65, 2055: 2381, 2056: 2380, 2057: 3391, 2058: 3495, 2059: 1112, 2060: 893, 2061: 1563, 2062: 175, 2063: 3437, 2064: 2435, 2065: 697, 2066: 2037, 2067: 2806, 2068: 1866, 2069: 925, 2070: 2101, 2071: 2267, 2072: 1464, 2073: 451, 2074: 2583, 2075: 335, 2076: 1754, 2077: 257, 2078: 360, 2079: 1498, 2080: 2062, 2081: 2497, 2082: 1463, 2083: 804, 2084: 1475, 2085: 2597, 2086: 270, 2087: 276, 2088: 2586, 2089: 1675, 2090: 482, 2091: 422, 2092: 2320, 2093: 554, 2094: 1003, 2095: 2326, 2096: 990, 2097: 132, 2098: 79, 2099: 640, 2100: 3516, 2101: 3600, 2102: 3564, 2103: 3602, 2104: 3604, 2105: 3520, 2106: 3605, 2107: 3608, 2108: 3610, 2109: 3457, 2110: 2156, 2111: 3200, 2112: 1937, 2113: 1414, 2114: 635, 2115: 2436, 2116: 516, 2117: 1021, 2118: 1113, 2119: 1621, 2120: 1688, 2121: 1919, 2122: 1018, 2123: 3355, 2124: 1161, 2125: 3399, 2126: 1205, 2127: 239, 2128: 2924, 2129: 2275, 2130: 704, 2131: 393, 2132: 3213, 2133: 2084, 2134: 1739, 2135: 1973, 2136: 126, 2137: 3433, 2138: 3434, 2139: 3258, 2140: 2733, 2141: 1167, 2142: 203, 2143: 234, 2144: 193, 2145: 3390, 2146: 3349, 2147: 76, 2148: 3614, 2149: 1746, 2150: 1936, 2151: 3587, 2152: 2073, 2153: 2669, 2154: 3525, 2155: 725, 2156: 3217, 2157: 2647, 2158: 3486, 2159: 2667, 2160: 3375, 2161: 242, 2162: 1925, 2163: 2939, 2164: 1684, 2165: 1468, 2166: 613, 2167: 84, 2168: 206, 2169: 1255, 2170: 2636, 2171: 2579, 2172: 511, 2173: 559, 2174: 2293, 2175: 556, 2176: 2536, 2177: 2649, 2178: 103, 2179: 2663, 2180: 332, 2181: 3488, 2182: 2656, 2183: 2637, 2184: 2638, 2185: 2634, 2186: 2646, 2187: 2814, 2188: 2652, 2189: 2654, 2190: 1337, 2191: 2651, 2192: 841, 2193: 2568, 2194: 2260, 2195: 3007, 2196: 3271, 2197: 1105, 2198: 3069, 2199: 1421, 2200: 2988, 2201: 835, 2202: 2573, 2203: 2493, 2204: 3565, 2205: 612, 2206: 1456, 2207: 122, 2208: 1599, 2209: 2582, 2210: 2368, 2211: 2783, 2212: 1331, 2213: 2740, 2214: 1655, 2215: 2868, 2216: 2790, 2217: 606, 2218: 3598, 2219: 3606, 2220: 3559, 2221: 3415, 2222: 3311, 2223: 3456, 2224: 1046, 2225: 1406, 2226: 214, 2227: 334, 2228: 1116, 2229: 1901, 2230: 3142, 2231: 1875, 2232: 2365, 2233: 2029, 2234: 2865, 2235: 1535, 2236: 414, 2237: 569, 2238: 3372, 2239: 2540, 2240: 547, 2241: 1067, 2242: 3324, 2243: 3103, 2244: 291, 2245: 3593, 2246: 421, 2247: 2453, 2248: 3145, 2249: 3038, 2250: 3533, 2251: 615, 2252: 3532, 2253: 240, 2254: 956, 2255: 2653, 2256: 2131, 2257: 2983, 2258: 1076, 2259: 2650, 2260: 927, 2261: 962, 2262: 775, 2263: 2847, 2264: 1160, 2265: 347, 2266: 2682, 2267: 1024, 2268: 2753, 2269: 3275, 2270: 2195, 2271: 456, 2272: 1511, 2273: 1446, 2274: 1733, 2275: 3106, 2276: 3328, 2277: 2246, 2278: 3221, 2279: 3571, 2280: 3570, 2281: 389, 2282: 1324, 2283: 2315, 2284: 2516, 2285: 352, 2286: 324, 2287: 1612, 2288: 1904, 2289: 2007, 2290: 570, 2291: 3049, 2292: 452, 2293: 2236, 2294: 829, 2295: 1613, 2296: 477, 2297: 268, 2298: 409, 2299: 215, 2300: 806, 2301: 2639, 2302: 1670, 2303: 1753, 2304: 3339, 2305: 2893, 2306: 2607, 2307: 3465, 2308: 2888, 2309: 184, 2310: 2978, 2311: 881, 2312: 1854, 2313: 135, 2314: 1000, 2315: 813, 2316: 312, 2317: 278, 2318: 3031, 2319: 833, 2320: 473, 2321: 472, 2322: 438, 2323: 2317, 2324: 2027, 2325: 275, 2326: 1604, 2327: 1550, 2328: 2992, 2329: 3013, 2330: 1998, 2331: 2903, 2332: 2878, 2333: 3021, 2334: 3490, 2335: 1989, 2336: 3487, 2337: 1068, 2338: 2187, 2339: 3316, 2340: 3445, 2341: 2242, 2342: 3577, 2343: 3510, 2344: 3041, 2345: 458, 2346: 3431, 2347: 3432, 2348: 2896, 2349: 487, 2350: 2055, 2351: 3427, 2352: 2458, 2353: 809, 2354: 2606, 2355: 3077, 2356: 121, 2357: 3402, 2358: 1865, 2359: 1123, 2360: 2659, 2361: 2182, 2362: 2017, 2363: 1571, 2364: 2099, 2365: 3199, 2366: 3414, 2367: 2263, 2368: 3235, 2369: 116, 2370: 2585, 2371: 709, 2372: 3393, 2373: 2151, 2374: 1647, 2375: 798, 2376: 2594, 2377: 2507, 2378: 781, 2379: 2281, 2380: 1352, 2381: 869, 2382: 210, 2383: 650, 2384: 2272, 2385: 9, 2386: 467, 2387: 189, 2388: 3425, 2389: 1703, 2390: 1900, 2391: 1812, 2392: 1585, 2393: 525, 2394: 1857, 2395: 505, 2396: 267, 2397: 2610, 2398: 2798, 2399: 449, 2400: 984, 2401: 3394, 2402: 2879, 2403: 711, 2404: 217, 2405: 3042, 2406: 1692, 2407: 2483, 2408: 1432, 2409: 3268, 2410: 2714, 2411: 1450, 2412: 2562, 2413: 2856, 2414: 2744, 2415: 1640, 2416: 957, 2417: 1152, 2418: 181, 2419: 1495, 2420: 1720, 2421: 667, 2422: 2817, 2423: 839, 2424: 2899, 2425: 1011, 2426: 2050, 2427: 2142, 2428: 631, 2429: 1654, 2430: 2079, 2431: 2035, 2432: 960, 2433: 2205, 2434: 2589, 2435: 255, 2436: 2549, 2437: 2952, 2438: 3423, 2439: 2264, 2440: 3141, 2441: 2515, 2442: 2982, 2443: 2452, 2444: 1992, 2445: 2462, 2446: 1993, 2447: 891, 2448: 3367, 2449: 2816, 2450: 627, 2451: 1929, 2452: 2938, 2453: 1477, 2454: 1460, 2455: 2962, 2456: 3292, 2457: 2773, 2458: 3622, 2459: 769, 2460: 1758, 2461: 484, 2462: 2045, 2463: 888, 2464: 3144, 2465: 2695, 2466: 3492, 2467: 238, 2468: 3578, 2469: 3509, 2470: 3286, 2471: 96, 2472: 3137, 2473: 1015, 2474: 1317, 2475: 1398, 2476: 2382, 2477: 1322, 2478: 2892, 2479: 2255, 2480: 2095, 2481: 3043, 2482: 807, 2483: 987, 2484: 1600, 2485: 3232, 2486: 2044, 2487: 1837, 2488: 710, 2489: 470, 2490: 102, 2491: 321, 2492: 1695, 2493: 3556, 2494: 3012, 2495: 1896, 2496: 3417, 2497: 2776, 2498: 2630, 2499: 1428, 2500: 3620, 2501: 2177, 2502: 2523, 2503: 1363, 2504: 1496, 2505: 3299, 2506: 1631, 2507: 1669, 2508: 302, 2509: 131, 2510: 1482, 2511: 3287, 2512: 3483, 2513: 544, 2514: 548, 2515: 2889, 2516: 1898, 2517: 201, 2518: 463, 2519: 2504, 2520: 3403, 2521: 3579, 2522: 3554, 2523: 3617, 2524: 3618, 2525: 3596, 2526: 3580, 2527: 3537, 2528: 3597, 2529: 3619, 2530: 3326, 2531: 2169, 2532: 1826, 2533: 1677, 2534: 2350, 2535: 2681, 2536: 2767, 2537: 2691, 2538: 3048, 2539: 2786, 2540: 2257, 2541: 2799, 2542: 2756, 2543: 3223, 2544: 83, 2545: 1484, 2546: 2853, 2547: 1860, 2548: 3214, 2549: 536, 2550: 3109, 2551: 23, 2552: 1906, 2553: 3218, 2554: 2965, 2555: 3613, 2556: 37, 2557: 1564, 2558: 638, 2559: 74, 2560: 301, 2561: 469, 2562: 1632, 2563: 779, 2564: 2165, 2565: 685, 2566: 2548, 2567: 1668, 2568: 2426, 2569: 3063, 2570: 3599, 2571: 61, 2572: 436, 2573: 1658, 2574: 18, 2575: 209, 2576: 93, 2577: 2809, 2578: 567, 2579: 2727, 2580: 1154, 2581: 854, 2582: 850, 2583: 669, 2584: 1351, 2585: 263, 2586: 3531, 2587: 2849, 2588: 1050, 2589: 563, 2590: 715, 2591: 343, 2592: 3539, 2593: 2305, 2594: 155, 2595: 3562, 2596: 782, 2597: 3586, 2598: 390, 2599: 3313, 2600: 211, 2601: 1404, 2602: 254, 2603: 78, 2604: 882, 2605: 424, 2606: 1044, 2607: 346, 2608: 1473, 2609: 2482, 2610: 3306, 2611: 2596, 2612: 528, 2613: 3309, 2614: 2196, 2615: 1869, 2616: 3563, 2617: 1867, 2618: 2307, 2619: 1853, 2620: 2128, 2621: 2325, 2622: 1592, 2623: 486, 2624: 656, 2625: 1679, 2626: 1439, 2627: 867, 2628: 453, 2629: 174, 2630: 2552, 2631: 810, 2632: 1798, 2633: 118, 2634: 331, 2635: 2190, 2636: 3127, 2637: 2449, 2638: 2876, 2639: 885, 2640: 2280, 2641: 716, 2642: 478, 2643: 1436, 2644: 626, 2645: 243, 2646: 3511, 2647: 2494, 2648: 618, 2649: 1661, 2650: 1686, 2651: 391, 2652: 998, 2653: 1662, 2654: 1824, 2655: 732, 2656: 2812, 2657: 1532, 2658: 283, 2659: 1601, 2660: 2271, 2661: 510, 2662: 2201, 2663: 100, 2664: 3553, 2665: 3566, 2666: 1870, 2667: 443, 2668: 3357, 2669: 3319, 2670: 3185, 2671: 1910, 2672: 2810, 2673: 2047, 2674: 336, 2675: 3639, 2676: 3634, 2677: 764, 2678: 197, 2679: 503, 2680: 633, 2681: 68, 2682: 1328, 2683: 1325, 2684: 2461, 2685: 1191, 2686: 294, 2687: 2341, 2688: 1767, 2689: 498, 2690: 703, 2691: 354, 2692: 167, 2693: 522, 2694: 27, 2695: 2400, 2696: 2256, 2697: 3344, 2698: 3026, 2699: 3638, 2700: 3633, 2701: 3635, 2702: 2614, 2703: 760, 2704: 1323, 2705: 202, 2706: 896, 2707: 2514, 2708: 1335, 2709: 2347, 2710: 2818, 2711: 3464, 2712: 1232, 2713: 2026, 2714: 3624, 2715: 2031, 2716: 3177, 2717: 3643, 2718: 3628, 2719: 3514, 2720: 1038, 2721: 3515, 2722: 3446, 2723: 3027, 2724: 3629, 2725: 3645, 2726: 1119, 2727: 483, 2728: 3594, 2729: 1525, 2730: 1756, 2731: 1990, 2732: 2754, 2733: 3453, 2734: 2049, 2735: 3181, 2736: 3470, 2737: 3636, 2738: 3644, 2739: 1822, 2740: 1426, 2741: 1164, 2742: 1902, 2743: 3240, 2744: 3623, 2745: 2323, 2746: 1349, 2747: 1336, 2748: 3241, 2749: 2833, 2750: 3117, 2751: 1151, 2752: 2008, 2753: 1087, 2754: 2886, 2755: 2737, 2756: 3474, 2757: 1180, 2758: 847, 2759: 997, 2760: 2679, 2761: 3122, 2762: 1928, 2763: 2981, 2764: 2984, 2765: 1849, 2766: 876, 2767: 1117, 2768: 1671, 2769: 1508, 2770: 1114, 2771: 1501, 2772: 53, 2773: 313, 2774: 3612, 2775: 2834, 2776: 38, 2777: 3190, 2778: 2499, 2779: 3668, 2780: 3615, 2781: 2674, 2782: 3684, 2783: 3671, 2784: 3683, 2785: 274, 2786: 117, 2787: 228, 2788: 99, 2789: 75, 2790: 3712, 2791: 3676, 2792: 128, 2793: 3704, 2794: 3702, 2795: 2446, 2796: 3649, 2797: 3697, 2798: 3706, 2799: 3681, 2800: 3654, 2801: 3686, 2802: 3708, 2803: 3703, 2804: 3688, 2805: 3685, 2806: 3698, 2807: 3700, 2808: 2342, 2809: 392, 2810: 3682, 2811: 3701, 2812: 3637, 2813: 3690, 2814: 3689, 2815: 2593, 2816: 583, 2817: 3699, 2818: 3707, 2819: 3675, 2820: 3693, 2821: 2843, 2822: 3320, 2823: 2897, 2824: 1889, 2825: 3711, 2826: 2086, 2827: 1121, 2828: 1169, 2829: 1313, 2830: 3567, 2831: 3581, 2832: 1770, 2833: 1782, 2834: 359, 2835: 1514, 2836: 3660, 2837: 3627, 2838: 3653, 2839: 3705, 2840: 3669, 2841: 3207, 2842: 753, 2843: 1415, 2844: 3632, 2845: 3713, 2846: 3678, 2847: 2831, 2848: 2945, 2849: 3677, 2850: 568, 2851: 3672, 2852: 369, 2853: 602, 2854: 219, 2855: 137, 2856: 136, 2857: 2103, 2858: 56, 2859: 146, 2860: 54, 2861: 2559, 2862: 90, 2863: 603, 2864: 877, 2865: 566, 2866: 771, 2867: 1749, 2868: 3473, 2869: 617, 2870: 406, 2871: 1420, 2872: 3680, 2873: 3674, 2874: 113, 2875: 3661, 2876: 3673, 2877: 2904, 2878: 3092, 2879: 2215, 2880: 1054, 2881: 3691, 2882: 250, 2883: 3055, 2884: 3679, 2885: 1656, 2886: 3692, 2887: 2339, 2888: 3715, 2889: 385, 2890: 2211, 2891: 974, 2892: 3139, 2893: 958, 2894: 3171, 2895: 755, 2896: 3215, 2897: 3670, 2898: 3710, 2899: 3740, 2900: 3730, 2901: 3724, 2902: 3731, 2903: 3732, 2904: 3716, 2905: 3733, 2906: 3734, 2907: 3735, 2908: 3729, 2909: 3738, 2910: 2209, 2911: 1903, 2912: 2227, 2913: 2221, 2914: 2185, 2915: 1728, 2916: 264, 2917: 1533, 2918: 3742, 2919: 3723, 2920: 3664, 2921: 3663, 2922: 3709, 2923: 106, 2924: 1696, 2925: 824, 2926: 3728, 2927: 619, 2928: 40, 2929: 2994, 2930: 3741, 2931: 1922, 2932: 1458, 2933: 3658, 2934: 384, 2935: 1423, 2936: 2627, 2937: 831, 2938: 3400, 2939: 2785, 2940: 3736, 2941: 1814, 2942: 2244, 2943: 1486, 2944: 375, 2945: 2755, 2946: 1715, 2947: 992, 2948: 2074, 2949: 2632, 2950: 1489, 2951: 3454, 2952: 1725, 2953: 1551, 2954: 3694, 2955: 3646, 2956: 609, 2957: 244, 2958: 722, 2959: 3714, 2960: 3665, 2961: 3662, 2962: 1063, 2963: 3648, 2964: 3659, 2965: 3696, 2966: 939, 2967: 3727, 2968: 3626, 2969: 1437, 2970: 811, 2971: 2778, 2972: 3725, 2973: 754, 2974: 2477, 2975: 1887, 2976: 411, 2977: 1055, 2978: 2191, 2979: 3717, 2980: 3667, 2981: 1534, 2982: 1817, 2983: 705, 2984: 3655, 2985: 1531, 2986: 3744, 2987: 2850, 2988: 2207, 2989: 2197, 2990: 2481, 2991: 1455, 2992: 1071, 2993: 1549, 2994: 2933, 2995: 3726, 2996: 2813, 2997: 3739, 2998: 1893, 2999: 2298, 3000: 1859, 3001: 1509, 3002: 3540, 3003: 3657, 3004: 3640, 3005: 863, 3006: 3719, 3007: 2837, 3008: 1879, 3009: 3124, 3010: 3302, 3011: 1567, 3012: 793, 3013: 3745, 3014: 1502, 3015: 3652, 3016: 119, 3017: 3754, 3018: 3763, 3019: 3746, 3020: 496, 3021: 310, 3022: 2824, 3023: 1864, 3024: 3751, 3025: 3303, 3026: 3753, 3027: 3764, 3028: 1170, 3029: 3782, 3030: 3781, 3031: 3771, 3032: 3766, 3033: 3773, 3034: 149, 3035: 3760, 3036: 665, 3037: 3770, 3038: 3758, 3039: 2855, 3040: 3743, 3041: 3769, 3042: 3183, 3043: 2158, 3044: 1793, 3045: 1153, 3046: 3642, 3047: 3737, 3048: 3025, 3049: 3768, 3050: 2534, 3051: 2332, 3052: 3780, 3053: 394, 3054: 2486, 3055: 1807, 3056: 2175, 3057: 2509, 3058: 3116, 3059: 600, 3060: 3774, 3061: 3463, 3062: 2864, 3063: 3752, 3064: 3791, 3065: 3784, 3066: 2914, 3067: 3788, 3068: 3767, 3069: 3695, 3070: 1538, 3071: 3789, 3072: 3755, 3073: 3792, 3074: 2200, 3075: 526, 3076: 1144, 3077: 3239, 3078: 1026, 3079: 1899, 3080: 2056, 3081: 1384, 3082: 3720, 3083: 1369, 3084: 3333, 3085: 698, 3086: 3718, 3087: 3765, 3088: 3747, 3089: 3775, 3090: 3778, 3091: 2179, 3092: 2964, 3093: 864, 3094: 3569, 3095: 1574, 3096: 430, 3097: 3064, 3098: 251, 3099: 2963, 3100: 598, 3101: 3783, 3102: 1718, 3103: 3759, 3104: 2979, 3105: 1490, 3106: 1311, 3107: 3050, 3108: 659, 3109: 1565, 3110: 2219, 3111: 2775, 3112: 3002, 3113: 3776, 3114: 178, 3115: 1002, 3116: 1850, 3117: 1493, 3118: 3058, 3119: 49, 3120: 3276, 3121: 3785, 3122: 3346, 3123: 2854, 3124: 3757, 3125: 3761, 3126: 2675, 3127: 3192, 3128: 2304, 3129: 1880, 3130: 2931, 3131: 3222, 3132: 2658, 3133: 561, 3134: 2544, 3135: 1926, 3136: 1539, 3137: 3180, 3138: 1575, 3139: 560, 3140: 2930, 3141: 1433, 3142: 200, 3143: 1741, 3144: 664, 3145: 2569, 3146: 966, 3147: 1890, 3148: 3721, 3149: 1825, 3150: 279, 3151: 2234, 3152: 2164, 3153: 1572, 3154: 1174, 3155: 1312, 3156: 1181, 3157: 2444, 3158: 726, 3159: 124, 3160: 3812, 3161: 3806, 3162: 3814, 3163: 3809, 3164: 3811, 3165: 3819, 3166: 108, 3167: 3813, 3168: 3802, 3169: 3799, 3170: 3121, 3171: 3801, 3172: 3810, 3173: 1878, 3174: 3807, 3175: 2873, 3176: 3804, 3177: 3818, 3178: 1163, 3179: 3817, 3180: 3793, 3181: 1520, 3182: 3790, 3183: 3787, 3184: 1664, 3185: 3795, 3186: 2129, 3187: 1519, 3188: 860, 3189: 3749, 3190: 2839, 3191: 287, 3192: 844, 3193: 2063, 3194: 3166, 3195: 3003, 3196: 3803, 3197: 3616, 3198: 3798, 3199: 751, 3200: 3318, 3201: 3808, 3202: 397, 3203: 2189, 3204: 3794, 3205: 3805, 3206: 3797, 3207: 1570, 3208: 3841, 3209: 3786, 3210: 3832, 3211: 3834, 3212: 3835, 3213: 3836, 3214: 3844, 3215: 3840, 3216: 3846, 3217: 1659, 3218: 3849, 3219: 2666, 3220: 3845, 3221: 3831, 3222: 3822, 3223: 3796, 3224: 3777, 3225: 2466, 3226: 3843, 3227: 3821, 3228: 3837, 3229: 3839, 3230: 3827, 3231: 3820, 3232: 2760, 3233: 2635, 3234: 2777, 3235: 3816, 3236: 3641, 3237: 3847, 3238: 3838, 3239: 2923, 3240: 3351, 3241: 3833, 3242: 3848, 3243: 2743, 3244: 1138, 3245: 1168, 3246: 1529, 3247: 3825, 3248: 874, 3249: 3850, 3250: 1811, 3251: 972, 3252: 2913, 3253: 1780, 3254: 767, 3255: 2487, 3256: 3611, 3257: 1891, 3258: 2608, 3259: 1522, 3260: 3826, 3261: 3161, 3262: 2998, 3263: 3293, 3264: 652, 3265: 148, 3266: 3824, 3267: 3864, 3268: 3859, 3269: 3861, 3270: 295, 3271: 3056, 3272: 3823, 3273: 3625, 3274: 980, 3275: 2934, 3276: 3866, 3277: 2673, 3278: 3140, 3279: 3592, 3280: 460, 3281: 1685, 3282: 3869, 3283: 3873, 3284: 3858, 3285: 3877, 3286: 3410, 3287: 2388, 3288: 3868, 3289: 3872, 3290: 2830, 3291: 1383, 3292: 3870, 3293: 1098, 3294: 3871, 3295: 3860, 3296: 2705, 3297: 3875, 3298: 3666, 3299: 2415, 3300: 3857, 3301: 2557, 3302: 3523, 3303: 3863, 3304: 815, 3305: 3830, 3306: 3884, 3307: 3852, 3308: 3880, 3309: 2233, 3310: 3874, 3311: 3878, 3312: 3886, 3313: 129, 3314: 2602, 3315: 3879, 3316: 3882, 3317: 630, 3318: 3001, 3319: 3851, 3320: 2911, 3321: 245, 3322: 3855, 3323: 3867, 3324: 3865, 3325: 3853, 3326: 2765, 3327: 2631, 3328: 1444, 3329: 3568, 3330: 614, 3331: 1058, 3332: 3897, 3333: 3893, 3334: 3889, 3335: 3925, 3336: 3936, 3337: 3942, 3338: 3941, 3339: 3940, 3340: 3939, 3341: 3938, 3342: 3937, 3343: 3927, 3344: 3926, 3345: 3908, 3346: 3917, 3347: 3918, 3348: 3921, 3349: 3922, 3350: 3919, 3351: 3930, 3352: 3901, 3353: 3920, 3354: 3903, 3355: 3895, 3356: 3910, 3357: 3915, 3358: 3932, 3359: 3929, 3360: 3896, 3361: 3898, 3362: 212, 3363: 3928, 3364: 3923, 3365: 3931, 3366: 3909, 3367: 3916, 3368: 2538, 3369: 3911, 3370: 3894, 3371: 3914, 3372: 3948, 3373: 3883, 3374: 3947, 3375: 3885, 3376: 3913, 3377: 2768, 3378: 3162, 3379: 3952, 3380: 2545, 3381: 3924, 3382: 3946, 3383: 1796, 3384: 3934, 3385: 3945, 3386: 3943, 3387: 3854, 3388: 3935, 3389: 3933, 3390: 2769, 3391: 3949, 3392: 2464, 3393: 3902, 3394: 3950, 3395: 3944, 3396: 3891, 3397: 3900, 3398: 3154, 3399: 3951, 3400: 3184, 3401: 2061, 3402: 98, 3403: 3912, 3404: 3906, 3405: 3892, 3406: 1040, 3407: 1543, 3408: 1622, 3409: 1636, 3410: 1471}}\n", + "5453 3411\n" ] } ], "source": [ "print(tokenizer.query_id_encoder.mapping, tokenizer.query_id_encoder.inverse_mapping)\n", - "print(tokenizer.item_id_encoder.mapping, tokenizer.item_id_encoder.inverse_mapping)" + "print(tokenizer.item_id_encoder.mapping, tokenizer.item_id_encoder.inverse_mapping)\n", + "\n", + "print(len(tokenizer.query_id_encoder.mapping[\"user_id\"]), len(tokenizer.item_id_encoder.mapping['item_id']))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tokenizer.item_id_encoder.mapping['item_id'][1961]" ] }, { @@ -1003,19 +1158,19 @@ "\n", " | Name | Type | Params\n", "--------------------------------------------\n", - "0 | _model | SasRecModel | 2.3 M \n", + "0 | _model | SasRecModel | 2.2 M \n", "1 | _loss | CrossEntropyLoss | 0 \n", "--------------------------------------------\n", - "2.3 M Trainable params\n", + "2.2 M Trainable params\n", "0 Non-trainable params\n", - "2.3 M Total params\n", - "9.247 Total estimated model params size (MB)\n" + "2.2 M Total params\n", + "8.681 Total estimated model params size (MB)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "092bc9756d2146b7aba52b2a8f5e3e5c", + "model_id": "fac78134025246588af6ad38441f6af7", "version_major": 2, "version_minor": 0 }, @@ -1031,9 +1186,9 @@ "output_type": "stream", "text": [ "k 1 10 20 5\n", - "map 0.037897 0.010828 0.006886 0.016614\n", - "ndcg 0.037897 0.033650 0.031877 0.034625\n", - "recall 0.000331 0.002800 0.005129 0.001451\n", + "map 0.018405 0.005376 0.004157 0.007485\n", + "ndcg 0.018405 0.014625 0.014979 0.014758\n", + "recall 0.000425 0.002585 0.004329 0.000918\n", "\n" ] }, @@ -1041,13 +1196,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python3.11/site-packages/lightning/pytorch/loops/fit_loop.py:298: The number of training batches (12) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.\n" + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/loops/fit_loop.py:298: The number of training batches (11) is smaller than the logging interval Trainer(log_every_n_steps=50). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "83d98f0e2271493c89eec99dc81f3e94", + "model_id": "4bd9310ba2b945319eeacd265b44cb70", "version_major": 2, "version_minor": 0 }, @@ -1057,294 +1212,6 @@ }, "metadata": {}, "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "081201ffd9e645cc8c6f706f1436a9b5", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Validation: | | 0/? [00:00" + "" ] }, "execution_count": 5, @@ -326,6 +326,20 @@ " 978300760\n", " \n", " \n", + " 1\n", + " 1\n", + " 661\n", + " 3\n", + " 978302109\n", + " \n", + " \n", + " 2\n", + " 1\n", + " 914\n", + " 3\n", + " 978301968\n", + " \n", + " \n", " 3\n", " 1\n", " 3408\n", @@ -339,20 +353,6 @@ " 5\n", " 978824291\n", " \n", - " \n", - " 6\n", - " 1\n", - " 1287\n", - " 5\n", - " 978302039\n", - " \n", - " \n", - " 7\n", - " 1\n", - " 2804\n", - " 5\n", - " 978300719\n", - " \n", " \n", "\n", "" @@ -360,10 +360,10 @@ "text/plain": [ " user_id item_id rating timestamp\n", "0 1 1193 5 978300760\n", + "1 1 661 3 978302109\n", + "2 1 914 3 978301968\n", "3 1 3408 4 978300275\n", - "4 1 2355 5 978824291\n", - "6 1 1287 5 978302039\n", - "7 1 2804 5 978300719" + "4 1 2355 5 978824291" ] }, "execution_count": 7, @@ -392,16 +392,41 @@ "name": "stdout", "output_type": "stream", "text": [ - "1 1\n" + " user_id item_id rating timestamp\n", + "count 1.000209e+06 1.000209e+06 1.000209e+06 1.000209e+06\n", + "mean 3.024512e+03 1.865540e+03 3.581564e+00 9.722437e+08\n", + "std 1.728413e+03 1.096041e+03 1.117102e+00 1.215256e+07\n", + "min 1.000000e+00 1.000000e+00 1.000000e+00 9.567039e+08\n", + "25% 1.506000e+03 1.030000e+03 3.000000e+00 9.653026e+08\n", + "50% 3.070000e+03 1.835000e+03 4.000000e+00 9.730180e+08\n", + "75% 4.476000e+03 2.770000e+03 4.000000e+00 9.752209e+08\n", + "max 6.040000e+03 3.952000e+03 5.000000e+00 1.046455e+09\n" + ] + } + ], + "source": [ + "print(interactions.describe())" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20 1\n" ] }, { "data": { "text/plain": [ - "(4, 5)" + "(18, 5)" ] }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -423,26 +448,6 @@ "interactions.groupby(user_column).size().min(), interactions.groupby(item_column).size().min()" ] }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.1" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset_cfg[\"preprocess\"][\"global_split_ratio\"]" - ] - }, { "cell_type": "code", "execution_count": 10, @@ -450,8 +455,102 @@ "outputs": [ { "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
count999611.000000999611.000000999611.0000009.996110e+05
mean3024.5765371865.4394283.5819749.722409e+08
std1728.4367051095.9763361.1168941.214827e+07
min1.0000001.0000001.0000009.567039e+08
25%1506.0000001030.0000003.0000009.653025e+08
50%3070.0000001835.0000004.0000009.730170e+08
75%4477.0000002770.0000004.0000009.752208e+08
max6040.0000003952.0000005.0000001.046455e+09
\n", + "
" + ], "text/plain": [ - "'user_id'" + " user_id item_id rating timestamp\n", + "count 999611.000000 999611.000000 999611.000000 9.996110e+05\n", + "mean 3024.576537 1865.439428 3.581974 9.722409e+08\n", + "std 1728.436705 1095.976336 1.116894 1.214827e+07\n", + "min 1.000000 1.000000 1.000000 9.567039e+08\n", + "25% 1506.000000 1030.000000 3.000000 9.653025e+08\n", + "50% 3070.000000 1835.000000 4.000000 9.730170e+08\n", + "75% 4477.000000 2770.000000 4.000000 9.752208e+08\n", + "max 6040.000000 3952.000000 5.000000 1.046455e+09" ] }, "execution_count": 10, @@ -460,7 +559,7 @@ } ], "source": [ - "user_column" + "interactions.describe()" ] }, { @@ -473,24 +572,24 @@ "output_type": "stream", "text": [ "Distribution of seq_len in validation:\n", - "count 448.000000\n", - "mean 24.837054\n", - "std 49.389768\n", - "min 1.000000\n", - "25% 2.000000\n", - "50% 6.500000\n", - "75% 26.000000\n", - "max 656.000000\n", + "count 489.000000\n", + "mean 40.132924\n", + "std 84.792205\n", + "min 1.000000\n", + "25% 3.000000\n", + "50% 8.000000\n", + "75% 36.000000\n", + "max 1002.000000\n", "Name: item_id, dtype: float64.\n", "Distribution of seq_len in test:\n", - "count 999.000000\n", - "mean 43.796797\n", - "std 59.198925\n", - "min 1.000000\n", - "25% 7.000000\n", - "50% 23.000000\n", - "75% 57.000000\n", - "max 585.000000\n", + "count 1022.000000\n", + "mean 79.366928\n", + "std 111.068752\n", + "min 1.000000\n", + "25% 13.000000\n", + "50% 37.000000\n", + "75% 101.000000\n", + "max 1010.000000\n", "Name: item_id, dtype: float64.\n" ] } @@ -575,39 +674,39 @@ " \n", " \n", " \n", - " 140725\n", - " 904\n", - " 2348\n", - " 4\n", - " 977939424\n", + " 153950\n", + " 990\n", + " 2706\n", + " 3\n", + " 978137357\n", " \n", " \n", - " 140721\n", - " 904\n", - " 858\n", - " 4\n", - " 977939543\n", + " 153914\n", + " 990\n", + " 2826\n", + " 3\n", + " 978137357\n", " \n", " \n", - " 140660\n", - " 904\n", - " 260\n", - " 5\n", - " 977939543\n", + " 153908\n", + " 990\n", + " 2492\n", + " 3\n", + " 978137357\n", " \n", " \n", - " 140668\n", - " 904\n", - " 2866\n", - " 5\n", - " 977939573\n", + " 153923\n", + " 990\n", + " 1127\n", + " 4\n", + " 978137357\n", " \n", " \n", - " 140696\n", - " 904\n", - " 1193\n", + " 153915\n", + " 990\n", + " 2683\n", " 4\n", - " 977939573\n", + " 978137392\n", " \n", " \n", "\n", @@ -615,11 +714,11 @@ ], "text/plain": [ " user_id item_id rating timestamp\n", - "140725 904 2348 4 977939424\n", - "140721 904 858 4 977939543\n", - "140660 904 260 5 977939543\n", - "140668 904 2866 5 977939573\n", - "140696 904 1193 4 977939573" + "153950 990 2706 3 978137357\n", + "153914 990 2826 3 978137357\n", + "153908 990 2492 3 978137357\n", + "153923 990 1127 4 978137357\n", + "153915 990 2683 4 978137392" ] }, "execution_count": 12, @@ -826,6 +925,28 @@ "cell_type": "code", "execution_count": 19, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'user_id': {6040: 0, 6039: 1, 6038: 2, 6037: 3, 6036: 4, 6035: 5, 6034: 6, 6033: 7, 6032: 8, 6031: 9, 6030: 10, 6029: 11, 6028: 12, 6027: 13, 6026: 14, 6025: 15, 6024: 16, 6023: 17, 6022: 18, 6021: 19, 6020: 20, 6019: 21, 6018: 22, 6017: 23, 6016: 24, 6015: 25, 6014: 26, 6013: 27, 6012: 28, 6011: 29, 6010: 30, 6009: 31, 6007: 32, 6008: 33, 6006: 34, 6005: 35, 6004: 36, 6003: 37, 6002: 38, 6001: 39, 6000: 40, 5999: 41, 5998: 42, 5997: 43, 5996: 44, 5995: 45, 5994: 46, 5993: 47, 5992: 48, 5991: 49, 5990: 50, 5989: 51, 5988: 52, 5987: 53, 5986: 54, 5984: 55, 5983: 56, 5982: 57, 5981: 58, 5979: 59, 5980: 60, 5978: 61, 5977: 62, 5976: 63, 5975: 64, 5974: 65, 5973: 66, 5972: 67, 5971: 68, 5970: 69, 5969: 70, 5968: 71, 5967: 72, 5966: 73, 5965: 74, 5964: 75, 5963: 76, 5962: 77, 5961: 78, 5960: 79, 5959: 80, 5958: 81, 5957: 82, 5956: 83, 5955: 84, 5954: 85, 5953: 86, 5952: 87, 5951: 88, 5950: 89, 5948: 90, 5947: 91, 5946: 92, 5945: 93, 5944: 94, 5943: 95, 5942: 96, 5941: 97, 5940: 98, 5939: 99, 5938: 100, 5937: 101, 5949: 102, 5936: 103, 5935: 104, 5934: 105, 5933: 106, 5932: 107, 5931: 108, 5930: 109, 5929: 110, 5928: 111, 5927: 112, 5926: 113, 5925: 114, 5924: 115, 5923: 116, 5922: 117, 5921: 118, 5920: 119, 5919: 120, 5918: 121, 5917: 122, 5916: 123, 5915: 124, 5914: 125, 5913: 126, 5912: 127, 5911: 128, 5910: 129, 5909: 130, 5908: 131, 5907: 132, 5906: 133, 5905: 134, 5904: 135, 5903: 136, 5902: 137, 5901: 138, 5900: 139, 5899: 140, 5898: 141, 5897: 142, 5896: 143, 5895: 144, 5894: 145, 5893: 146, 5892: 147, 5891: 148, 5890: 149, 5889: 150, 5888: 151, 5887: 152, 5886: 153, 5885: 154, 5884: 155, 5883: 156, 5881: 157, 5882: 158, 5880: 159, 5879: 160, 5878: 161, 5877: 162, 5876: 163, 5875: 164, 5874: 165, 5873: 166, 5872: 167, 5871: 168, 5870: 169, 5869: 170, 5868: 171, 5867: 172, 5866: 173, 5865: 174, 5864: 175, 5863: 176, 5862: 177, 5861: 178, 5860: 179, 5859: 180, 5858: 181, 5857: 182, 5856: 183, 5855: 184, 5854: 185, 5853: 186, 5852: 187, 5851: 188, 5850: 189, 5849: 190, 5848: 191, 5847: 192, 5846: 193, 5845: 194, 5844: 195, 5843: 196, 5842: 197, 5841: 198, 5840: 199, 5839: 200, 5838: 201, 5837: 202, 5836: 203, 5835: 204, 5834: 205, 5833: 206, 5832: 207, 5831: 208, 5830: 209, 5829: 210, 5828: 211, 5827: 212, 5826: 213, 5825: 214, 5824: 215, 5823: 216, 5822: 217, 5821: 218, 5820: 219, 5819: 220, 5818: 221, 5817: 222, 5816: 223, 5815: 224, 5814: 225, 5813: 226, 5812: 227, 5811: 228, 5810: 229, 5809: 230, 5808: 231, 5807: 232, 5806: 233, 5805: 234, 5804: 235, 5803: 236, 5802: 237, 5801: 238, 5800: 239, 5799: 240, 5798: 241, 5797: 242, 5796: 243, 5795: 244, 5794: 245, 5793: 246, 5792: 247, 5791: 248, 5790: 249, 5789: 250, 5788: 251, 5787: 252, 5786: 253, 5785: 254, 5784: 255, 5783: 256, 5782: 257, 5781: 258, 5780: 259, 5779: 260, 5778: 261, 5777: 262, 5776: 263, 5775: 264, 5774: 265, 5773: 266, 5772: 267, 5771: 268, 5770: 269, 5769: 270, 5768: 271, 5767: 272, 5766: 273, 5765: 274, 5764: 275, 5763: 276, 5762: 277, 5761: 278, 5760: 279, 5759: 280, 5758: 281, 5757: 282, 5756: 283, 5755: 284, 5754: 285, 5753: 286, 5752: 287, 5751: 288, 5750: 289, 5749: 290, 5748: 291, 5747: 292, 5746: 293, 5745: 294, 5744: 295, 5743: 296, 5742: 297, 5741: 298, 5740: 299, 5739: 300, 5738: 301, 5737: 302, 5736: 303, 5735: 304, 5734: 305, 5733: 306, 5732: 307, 5731: 308, 5730: 309, 5729: 310, 5728: 311, 5727: 312, 5726: 313, 5725: 314, 5724: 315, 5723: 316, 5722: 317, 5721: 318, 5720: 319, 5719: 320, 5718: 321, 5717: 322, 5716: 323, 5715: 324, 5714: 325, 5713: 326, 5712: 327, 5711: 328, 5710: 329, 5709: 330, 5708: 331, 5707: 332, 5706: 333, 5705: 334, 5704: 335, 5703: 336, 5702: 337, 5701: 338, 5700: 339, 5699: 340, 5698: 341, 5697: 342, 5696: 343, 5695: 344, 5694: 345, 5693: 346, 5692: 347, 5691: 348, 5689: 349, 5690: 350, 5688: 351, 5687: 352, 5686: 353, 5685: 354, 5684: 355, 5683: 356, 5682: 357, 5681: 358, 5680: 359, 5679: 360, 5678: 361, 5677: 362, 5676: 363, 5675: 364, 5674: 365, 5673: 366, 5672: 367, 5671: 368, 5670: 369, 5669: 370, 5668: 371, 5667: 372, 5666: 373, 5665: 374, 5664: 375, 5663: 376, 5662: 377, 5661: 378, 5660: 379, 5659: 380, 5658: 381, 5657: 382, 5656: 383, 5655: 384, 5654: 385, 5653: 386, 5652: 387, 5651: 388, 5650: 389, 5649: 390, 5648: 391, 5647: 392, 5646: 393, 5645: 394, 5644: 395, 5643: 396, 5642: 397, 5641: 398, 5640: 399, 5639: 400, 5638: 401, 5637: 402, 5636: 403, 5635: 404, 5634: 405, 5633: 406, 5632: 407, 5631: 408, 5630: 409, 5629: 410, 5628: 411, 5627: 412, 5626: 413, 5625: 414, 5624: 415, 5623: 416, 5622: 417, 5621: 418, 5620: 419, 5619: 420, 5618: 421, 5617: 422, 5616: 423, 5615: 424, 5614: 425, 5613: 426, 5612: 427, 5611: 428, 5610: 429, 5609: 430, 5608: 431, 5607: 432, 5606: 433, 5605: 434, 5604: 435, 5603: 436, 5602: 437, 5601: 438, 5600: 439, 5599: 440, 5598: 441, 5597: 442, 5596: 443, 5595: 444, 5594: 445, 5593: 446, 5592: 447, 5591: 448, 5590: 449, 5589: 450, 5588: 451, 5587: 452, 5586: 453, 5585: 454, 5584: 455, 5583: 456, 5582: 457, 5581: 458, 5580: 459, 5578: 460, 5579: 461, 5577: 462, 5576: 463, 5575: 464, 5574: 465, 5573: 466, 5572: 467, 5571: 468, 5570: 469, 5569: 470, 5568: 471, 5567: 472, 5566: 473, 5565: 474, 5564: 475, 5563: 476, 5562: 477, 5561: 478, 5560: 479, 5559: 480, 5558: 481, 5557: 482, 5556: 483, 5555: 484, 5554: 485, 5553: 486, 5552: 487, 5551: 488, 5550: 489, 5549: 490, 5548: 491, 5547: 492, 5546: 493, 5545: 494, 5544: 495, 5543: 496, 5542: 497, 5541: 498, 5540: 499, 5539: 500, 5538: 501, 5537: 502, 5536: 503, 5535: 504, 5534: 505, 5533: 506, 5532: 507, 5531: 508, 5530: 509, 5529: 510, 5528: 511, 5527: 512, 5526: 513, 5525: 514, 5524: 515, 5523: 516, 5522: 517, 5521: 518, 5520: 519, 5519: 520, 5518: 521, 5517: 522, 5516: 523, 5515: 524, 5514: 525, 5513: 526, 5512: 527, 5511: 528, 5510: 529, 5509: 530, 5508: 531, 5507: 532, 5506: 533, 5505: 534, 5504: 535, 5503: 536, 5502: 537, 5501: 538, 5500: 539, 5499: 540, 5498: 541, 5497: 542, 5496: 543, 5495: 544, 5494: 545, 5493: 546, 5491: 547, 5490: 548, 5492: 549, 5489: 550, 5488: 551, 5487: 552, 5486: 553, 5485: 554, 5484: 555, 5483: 556, 5482: 557, 5481: 558, 5480: 559, 5479: 560, 5478: 561, 5477: 562, 5476: 563, 5474: 564, 5475: 565, 5473: 566, 5472: 567, 5471: 568, 5470: 569, 5469: 570, 5468: 571, 5466: 572, 5467: 573, 5465: 574, 5464: 575, 5463: 576, 5462: 577, 5461: 578, 5460: 579, 5459: 580, 5458: 581, 5457: 582, 5456: 583, 5455: 584, 5454: 585, 5453: 586, 5452: 587, 5451: 588, 5450: 589, 5449: 590, 5448: 591, 5447: 592, 5446: 593, 5445: 594, 5444: 595, 5443: 596, 5442: 597, 5441: 598, 5440: 599, 5439: 600, 5438: 601, 5437: 602, 5436: 603, 5435: 604, 5434: 605, 5433: 606, 5432: 607, 5431: 608, 5430: 609, 5429: 610, 5428: 611, 5427: 612, 5426: 613, 5425: 614, 5424: 615, 5423: 616, 5422: 617, 5421: 618, 5420: 619, 5419: 620, 5418: 621, 5417: 622, 5416: 623, 5415: 624, 5414: 625, 5413: 626, 5412: 627, 5411: 628, 5410: 629, 5409: 630, 5408: 631, 5407: 632, 5406: 633, 5405: 634, 5404: 635, 5403: 636, 5402: 637, 5401: 638, 5400: 639, 5399: 640, 5398: 641, 5397: 642, 5396: 643, 5395: 644, 5394: 645, 5393: 646, 5392: 647, 5391: 648, 5390: 649, 5389: 650, 5388: 651, 5387: 652, 5386: 653, 5385: 654, 5384: 655, 5383: 656, 5382: 657, 5381: 658, 5380: 659, 5379: 660, 5378: 661, 5377: 662, 5376: 663, 5375: 664, 5374: 665, 5373: 666, 5372: 667, 5371: 668, 5370: 669, 5369: 670, 5368: 671, 5366: 672, 5367: 673, 5365: 674, 5364: 675, 5363: 676, 5362: 677, 5361: 678, 5360: 679, 5359: 680, 5358: 681, 5357: 682, 5355: 683, 5356: 684, 5354: 685, 5353: 686, 5352: 687, 5985: 688, 5351: 689, 5350: 690, 5349: 691, 5348: 692, 5347: 693, 5346: 694, 5345: 695, 5344: 696, 5343: 697, 5342: 698, 5341: 699, 5340: 700, 5339: 701, 5338: 702, 5337: 703, 5336: 704, 5335: 705, 5334: 706, 5333: 707, 5332: 708, 5331: 709, 5330: 710, 5329: 711, 5328: 712, 5327: 713, 5326: 714, 5325: 715, 5324: 716, 5323: 717, 5322: 718, 5321: 719, 5320: 720, 5319: 721, 5318: 722, 5317: 723, 5316: 724, 5315: 725, 5314: 726, 5313: 727, 5312: 728, 5311: 729, 5310: 730, 5309: 731, 5308: 732, 5307: 733, 5306: 734, 5305: 735, 5304: 736, 5303: 737, 5302: 738, 5301: 739, 5300: 740, 5299: 741, 5298: 742, 5297: 743, 5296: 744, 5295: 745, 5294: 746, 5293: 747, 5292: 748, 5291: 749, 5290: 750, 5289: 751, 5288: 752, 5287: 753, 5286: 754, 5285: 755, 5284: 756, 5283: 757, 5282: 758, 5281: 759, 5280: 760, 5279: 761, 5278: 762, 5277: 763, 5276: 764, 5275: 765, 5274: 766, 5273: 767, 5272: 768, 5271: 769, 5270: 770, 5269: 771, 5268: 772, 5267: 773, 5266: 774, 5265: 775, 5264: 776, 5263: 777, 5262: 778, 5261: 779, 5260: 780, 5259: 781, 5258: 782, 5257: 783, 5256: 784, 5255: 785, 5254: 786, 5253: 787, 5252: 788, 5251: 789, 5250: 790, 5249: 791, 5248: 792, 5247: 793, 5246: 794, 5245: 795, 5244: 796, 5243: 797, 5242: 798, 5241: 799, 5240: 800, 5239: 801, 5238: 802, 5237: 803, 5236: 804, 5235: 805, 5234: 806, 5233: 807, 5232: 808, 5231: 809, 5230: 810, 5229: 811, 5228: 812, 5227: 813, 5225: 814, 5224: 815, 5223: 816, 5222: 817, 5221: 818, 5220: 819, 5219: 820, 5218: 821, 5217: 822, 5216: 823, 5215: 824, 5214: 825, 5213: 826, 5226: 827, 5212: 828, 5211: 829, 5210: 830, 5209: 831, 5208: 832, 5207: 833, 5206: 834, 5205: 835, 5204: 836, 5203: 837, 5202: 838, 5201: 839, 5200: 840, 5199: 841, 5198: 842, 5197: 843, 5196: 844, 5195: 845, 5194: 846, 5193: 847, 5192: 848, 5191: 849, 5190: 850, 5189: 851, 5188: 852, 5187: 853, 5186: 854, 5185: 855, 5184: 856, 5183: 857, 5182: 858, 5181: 859, 5180: 860, 5179: 861, 5178: 862, 5177: 863, 5176: 864, 5175: 865, 5174: 866, 5173: 867, 5171: 868, 5170: 869, 5169: 870, 5168: 871, 5167: 872, 5165: 873, 5166: 874, 5164: 875, 5163: 876, 5162: 877, 5161: 878, 5160: 879, 5159: 880, 5158: 881, 5156: 882, 5157: 883, 5155: 884, 5154: 885, 5153: 886, 5152: 887, 5151: 888, 5150: 889, 5149: 890, 5148: 891, 5147: 892, 5146: 893, 5145: 894, 5144: 895, 5143: 896, 5142: 897, 5141: 898, 5140: 899, 5139: 900, 5138: 901, 5137: 902, 5136: 903, 5135: 904, 5134: 905, 5133: 906, 5132: 907, 5131: 908, 5130: 909, 5129: 910, 5128: 911, 5127: 912, 5126: 913, 5125: 914, 5124: 915, 5123: 916, 5122: 917, 5121: 918, 5120: 919, 5119: 920, 5118: 921, 5117: 922, 5116: 923, 5115: 924, 5114: 925, 5113: 926, 5112: 927, 5111: 928, 5110: 929, 5109: 930, 5108: 931, 5107: 932, 5106: 933, 5105: 934, 5104: 935, 5103: 936, 5102: 937, 5100: 938, 5101: 939, 5099: 940, 5098: 941, 5097: 942, 5096: 943, 5095: 944, 5094: 945, 5093: 946, 5092: 947, 5091: 948, 5089: 949, 5090: 950, 5088: 951, 5087: 952, 5086: 953, 5085: 954, 5084: 955, 5083: 956, 5082: 957, 5081: 958, 5080: 959, 5079: 960, 5078: 961, 5077: 962, 5076: 963, 5075: 964, 5074: 965, 5073: 966, 5072: 967, 5071: 968, 5070: 969, 5068: 970, 5067: 971, 5066: 972, 5065: 973, 5064: 974, 5063: 975, 5062: 976, 5061: 977, 5060: 978, 5058: 979, 5059: 980, 5057: 981, 5056: 982, 5055: 983, 5054: 984, 5053: 985, 5052: 986, 5051: 987, 5050: 988, 5049: 989, 5048: 990, 5047: 991, 5046: 992, 5045: 993, 5044: 994, 5043: 995, 5042: 996, 5041: 997, 5040: 998, 5039: 999, 5038: 1000, 5037: 1001, 5036: 1002, 5035: 1003, 5034: 1004, 5033: 1005, 5032: 1006, 5031: 1007, 5030: 1008, 5029: 1009, 5028: 1010, 5027: 1011, 5026: 1012, 5025: 1013, 5069: 1014, 5024: 1015, 5023: 1016, 5022: 1017, 5021: 1018, 5020: 1019, 5019: 1020, 5018: 1021, 5017: 1022, 5016: 1023, 5015: 1024, 5013: 1025, 5014: 1026, 5012: 1027, 5011: 1028, 5010: 1029, 5008: 1030, 5009: 1031, 5007: 1032, 5006: 1033, 5005: 1034, 5004: 1035, 5003: 1036, 5002: 1037, 5001: 1038, 5000: 1039, 4999: 1040, 4998: 1041, 4997: 1042, 4996: 1043, 4995: 1044, 4993: 1045, 4994: 1046, 4992: 1047, 4991: 1048, 4990: 1049, 4989: 1050, 4988: 1051, 4986: 1052, 4987: 1053, 4985: 1054, 4984: 1055, 4983: 1056, 4982: 1057, 4981: 1058, 4980: 1059, 4979: 1060, 4978: 1061, 4977: 1062, 4976: 1063, 4975: 1064, 4974: 1065, 4973: 1066, 4972: 1067, 4971: 1068, 4970: 1069, 4968: 1070, 4969: 1071, 4967: 1072, 4966: 1073, 4965: 1074, 4964: 1075, 4963: 1076, 4962: 1077, 4961: 1078, 4960: 1079, 4959: 1080, 4958: 1081, 4957: 1082, 4956: 1083, 4955: 1084, 4954: 1085, 4953: 1086, 4952: 1087, 4951: 1088, 4950: 1089, 4949: 1090, 4948: 1091, 4947: 1092, 4946: 1093, 4945: 1094, 4944: 1095, 4943: 1096, 4942: 1097, 4941: 1098, 4940: 1099, 4939: 1100, 4938: 1101, 4937: 1102, 4936: 1103, 4935: 1104, 4934: 1105, 4933: 1106, 4932: 1107, 4931: 1108, 4930: 1109, 4929: 1110, 4928: 1111, 4927: 1112, 4926: 1113, 4925: 1114, 4924: 1115, 4923: 1116, 4922: 1117, 4921: 1118, 4920: 1119, 4919: 1120, 4918: 1121, 4917: 1122, 4916: 1123, 4915: 1124, 4914: 1125, 4913: 1126, 4912: 1127, 4911: 1128, 4910: 1129, 4909: 1130, 4908: 1131, 4907: 1132, 4906: 1133, 4905: 1134, 4904: 1135, 4903: 1136, 4902: 1137, 4901: 1138, 4900: 1139, 4899: 1140, 4898: 1141, 4897: 1142, 5172: 1143, 4895: 1144, 4894: 1145, 4893: 1146, 4892: 1147, 4891: 1148, 4890: 1149, 4889: 1150, 4888: 1151, 4887: 1152, 4886: 1153, 4885: 1154, 4884: 1155, 4883: 1156, 4882: 1157, 4881: 1158, 4880: 1159, 4879: 1160, 4878: 1161, 4877: 1162, 4876: 1163, 4875: 1164, 4874: 1165, 4873: 1166, 4871: 1167, 4872: 1168, 4870: 1169, 4869: 1170, 4868: 1171, 4867: 1172, 4866: 1173, 4865: 1174, 4864: 1175, 4863: 1176, 4862: 1177, 4861: 1178, 4860: 1179, 4859: 1180, 4858: 1181, 4857: 1182, 4856: 1183, 4855: 1184, 4854: 1185, 4853: 1186, 4852: 1187, 4851: 1188, 4849: 1189, 4848: 1190, 4850: 1191, 4847: 1192, 4846: 1193, 4845: 1194, 4844: 1195, 4843: 1196, 4842: 1197, 4841: 1198, 4840: 1199, 4839: 1200, 4838: 1201, 4837: 1202, 4836: 1203, 4835: 1204, 4834: 1205, 4833: 1206, 4832: 1207, 4831: 1208, 4830: 1209, 4829: 1210, 4828: 1211, 4827: 1212, 4826: 1213, 4825: 1214, 4824: 1215, 4823: 1216, 4822: 1217, 4821: 1218, 4820: 1219, 4819: 1220, 4818: 1221, 4817: 1222, 4816: 1223, 4815: 1224, 4814: 1225, 4813: 1226, 4812: 1227, 4811: 1228, 4810: 1229, 4809: 1230, 4808: 1231, 4807: 1232, 4806: 1233, 4805: 1234, 4804: 1235, 4803: 1236, 4802: 1237, 4801: 1238, 4800: 1239, 4799: 1240, 4798: 1241, 4797: 1242, 4796: 1243, 4795: 1244, 4794: 1245, 4793: 1246, 4792: 1247, 4791: 1248, 4790: 1249, 4788: 1250, 4789: 1251, 4787: 1252, 4786: 1253, 4785: 1254, 4784: 1255, 4783: 1256, 4782: 1257, 4781: 1258, 4780: 1259, 4779: 1260, 4778: 1261, 4777: 1262, 4776: 1263, 4775: 1264, 4774: 1265, 4773: 1266, 4772: 1267, 4771: 1268, 4770: 1269, 4769: 1270, 4768: 1271, 4767: 1272, 4766: 1273, 4765: 1274, 4764: 1275, 4763: 1276, 4762: 1277, 4761: 1278, 4760: 1279, 4759: 1280, 4758: 1281, 4757: 1282, 4756: 1283, 4755: 1284, 4754: 1285, 4753: 1286, 4752: 1287, 4751: 1288, 4750: 1289, 4749: 1290, 4748: 1291, 4747: 1292, 4746: 1293, 4745: 1294, 4744: 1295, 4743: 1296, 4742: 1297, 4741: 1298, 4740: 1299, 4739: 1300, 4738: 1301, 4737: 1302, 4736: 1303, 4735: 1304, 4734: 1305, 4733: 1306, 4732: 1307, 4731: 1308, 4730: 1309, 4729: 1310, 4728: 1311, 4727: 1312, 4726: 1313, 4725: 1314, 4724: 1315, 4723: 1316, 4722: 1317, 4721: 1318, 4720: 1319, 4719: 1320, 4718: 1321, 4716: 1322, 4715: 1323, 4714: 1324, 4713: 1325, 4712: 1326, 4711: 1327, 4717: 1328, 4710: 1329, 4709: 1330, 4708: 1331, 4707: 1332, 4706: 1333, 4705: 1334, 4704: 1335, 4703: 1336, 4702: 1337, 4701: 1338, 4700: 1339, 4699: 1340, 4698: 1341, 4697: 1342, 4696: 1343, 4695: 1344, 4694: 1345, 4693: 1346, 4692: 1347, 4691: 1348, 4690: 1349, 4689: 1350, 4688: 1351, 4687: 1352, 4686: 1353, 4685: 1354, 4684: 1355, 4683: 1356, 4682: 1357, 4681: 1358, 4680: 1359, 4679: 1360, 4678: 1361, 4677: 1362, 4676: 1363, 4675: 1364, 4674: 1365, 4673: 1366, 4672: 1367, 4671: 1368, 4670: 1369, 4669: 1370, 4668: 1371, 4896: 1372, 4667: 1373, 4666: 1374, 4665: 1375, 4664: 1376, 4663: 1377, 4662: 1378, 4661: 1379, 4660: 1380, 4659: 1381, 4658: 1382, 4657: 1383, 4656: 1384, 4655: 1385, 4654: 1386, 4653: 1387, 4652: 1388, 4651: 1389, 4650: 1390, 4649: 1391, 4648: 1392, 4647: 1393, 4646: 1394, 4645: 1395, 4644: 1396, 4643: 1397, 4642: 1398, 4641: 1399, 4640: 1400, 4639: 1401, 4638: 1402, 4637: 1403, 4636: 1404, 4635: 1405, 4634: 1406, 4633: 1407, 4632: 1408, 4631: 1409, 4630: 1410, 4629: 1411, 4628: 1412, 4627: 1413, 4626: 1414, 4625: 1415, 4624: 1416, 4622: 1417, 4621: 1418, 4620: 1419, 4619: 1420, 4618: 1421, 4617: 1422, 4616: 1423, 4615: 1424, 4614: 1425, 4613: 1426, 4612: 1427, 4611: 1428, 4610: 1429, 4609: 1430, 4608: 1431, 4607: 1432, 4606: 1433, 4605: 1434, 4604: 1435, 4603: 1436, 4602: 1437, 4601: 1438, 4600: 1439, 4599: 1440, 4598: 1441, 4623: 1442, 4597: 1443, 4596: 1444, 4595: 1445, 4594: 1446, 4593: 1447, 4592: 1448, 4591: 1449, 4590: 1450, 4589: 1451, 4588: 1452, 4587: 1453, 4586: 1454, 4585: 1455, 4584: 1456, 4583: 1457, 4582: 1458, 4581: 1459, 4580: 1460, 4579: 1461, 4578: 1462, 4577: 1463, 4575: 1464, 4574: 1465, 4573: 1466, 4572: 1467, 4576: 1468, 4571: 1469, 4570: 1470, 4569: 1471, 4568: 1472, 4567: 1473, 4566: 1474, 4565: 1475, 4564: 1476, 4563: 1477, 4562: 1478, 4561: 1479, 4560: 1480, 4559: 1481, 4558: 1482, 4557: 1483, 4556: 1484, 4555: 1485, 4554: 1486, 4553: 1487, 4552: 1488, 4551: 1489, 4550: 1490, 4549: 1491, 4548: 1492, 4547: 1493, 4546: 1494, 4545: 1495, 4544: 1496, 4543: 1497, 4542: 1498, 4541: 1499, 4540: 1500, 4539: 1501, 4538: 1502, 4537: 1503, 4536: 1504, 4535: 1505, 4534: 1506, 4533: 1507, 4532: 1508, 4531: 1509, 4530: 1510, 4529: 1511, 4528: 1512, 4527: 1513, 4526: 1514, 4525: 1515, 4524: 1516, 4523: 1517, 4522: 1518, 4521: 1519, 4520: 1520, 4519: 1521, 4518: 1522, 4517: 1523, 4516: 1524, 4513: 1525, 4512: 1526, 4511: 1527, 4510: 1528, 4509: 1529, 4508: 1530, 4507: 1531, 4506: 1532, 4505: 1533, 4503: 1534, 4502: 1535, 4501: 1536, 4515: 1537, 4500: 1538, 4499: 1539, 4498: 1540, 4497: 1541, 4496: 1542, 4495: 1543, 4494: 1544, 4493: 1545, 4492: 1546, 4491: 1547, 4490: 1548, 4489: 1549, 4488: 1550, 4504: 1551, 4487: 1552, 4486: 1553, 4485: 1554, 4484: 1555, 4483: 1556, 4482: 1557, 4481: 1558, 4480: 1559, 4479: 1560, 4478: 1561, 4477: 1562, 4476: 1563, 4475: 1564, 4474: 1565, 4473: 1566, 4471: 1567, 4472: 1568, 4470: 1569, 4469: 1570, 4468: 1571, 4467: 1572, 4466: 1573, 4465: 1574, 4464: 1575, 4463: 1576, 4462: 1577, 4461: 1578, 4460: 1579, 4459: 1580, 4458: 1581, 4457: 1582, 4456: 1583, 4455: 1584, 4454: 1585, 4453: 1586, 4451: 1587, 4452: 1588, 4449: 1589, 4450: 1590, 4448: 1591, 4447: 1592, 4446: 1593, 4445: 1594, 4444: 1595, 4443: 1596, 4442: 1597, 4441: 1598, 4440: 1599, 4439: 1600, 4438: 1601, 4437: 1602, 4436: 1603, 4435: 1604, 4434: 1605, 4433: 1606, 4432: 1607, 4431: 1608, 4430: 1609, 4429: 1610, 4428: 1611, 4427: 1612, 4426: 1613, 4425: 1614, 4424: 1615, 4423: 1616, 4422: 1617, 4421: 1618, 4420: 1619, 4419: 1620, 4418: 1621, 4417: 1622, 4416: 1623, 4415: 1624, 4414: 1625, 4413: 1626, 4412: 1627, 4411: 1628, 4410: 1629, 4409: 1630, 4408: 1631, 4407: 1632, 4406: 1633, 4405: 1634, 4404: 1635, 4403: 1636, 4402: 1637, 4401: 1638, 4398: 1639, 4396: 1640, 4397: 1641, 4399: 1642, 4400: 1643, 4395: 1644, 4394: 1645, 4392: 1646, 4393: 1647, 4391: 1648, 4390: 1649, 4389: 1650, 4388: 1651, 4386: 1652, 4387: 1653, 4385: 1654, 4384: 1655, 4383: 1656, 4382: 1657, 4381: 1658, 4380: 1659, 4379: 1660, 4378: 1661, 4377: 1662, 4376: 1663, 4375: 1664, 4374: 1665, 4373: 1666, 4372: 1667, 4371: 1668, 4370: 1669, 4369: 1670, 4368: 1671, 4367: 1672, 4366: 1673, 4365: 1674, 4364: 1675, 4363: 1676, 4362: 1677, 4361: 1678, 4360: 1679, 4359: 1680, 4358: 1681, 4357: 1682, 4356: 1683, 4355: 1684, 4354: 1685, 4353: 1686, 4352: 1687, 4351: 1688, 4350: 1689, 4349: 1690, 4348: 1691, 4347: 1692, 4346: 1693, 4345: 1694, 4344: 1695, 4343: 1696, 4342: 1697, 4341: 1698, 4340: 1699, 4339: 1700, 4338: 1701, 4337: 1702, 4336: 1703, 4335: 1704, 4334: 1705, 4333: 1706, 4332: 1707, 4331: 1708, 4330: 1709, 4329: 1710, 4328: 1711, 4327: 1712, 4326: 1713, 4325: 1714, 4324: 1715, 4323: 1716, 4322: 1717, 4321: 1718, 4320: 1719, 4319: 1720, 4317: 1721, 4316: 1722, 4315: 1723, 4314: 1724, 4313: 1725, 4311: 1726, 4312: 1727, 4310: 1728, 4309: 1729, 4308: 1730, 4307: 1731, 4306: 1732, 4305: 1733, 4304: 1734, 4303: 1735, 4514: 1736, 4302: 1737, 4301: 1738, 4300: 1739, 4299: 1740, 4298: 1741, 4297: 1742, 4296: 1743, 4295: 1744, 4293: 1745, 4294: 1746, 4292: 1747, 4291: 1748, 4290: 1749, 4289: 1750, 4288: 1751, 4287: 1752, 4286: 1753, 4285: 1754, 4284: 1755, 4283: 1756, 4282: 1757, 4281: 1758, 4280: 1759, 4279: 1760, 4278: 1761, 4277: 1762, 4276: 1763, 4275: 1764, 4274: 1765, 4272: 1766, 4273: 1767, 4271: 1768, 4269: 1769, 4270: 1770, 4268: 1771, 4267: 1772, 4266: 1773, 4265: 1774, 4264: 1775, 4263: 1776, 4262: 1777, 4261: 1778, 4260: 1779, 4259: 1780, 4258: 1781, 4256: 1782, 4257: 1783, 4255: 1784, 4254: 1785, 4252: 1786, 4253: 1787, 4251: 1788, 4250: 1789, 4249: 1790, 4248: 1791, 4247: 1792, 4246: 1793, 4245: 1794, 4244: 1795, 4242: 1796, 4241: 1797, 4240: 1798, 4239: 1799, 4238: 1800, 4243: 1801, 4237: 1802, 4236: 1803, 4235: 1804, 4234: 1805, 4233: 1806, 4232: 1807, 4231: 1808, 4230: 1809, 4229: 1810, 4227: 1811, 4226: 1812, 4225: 1813, 4228: 1814, 4224: 1815, 4222: 1816, 4223: 1817, 4221: 1818, 4220: 1819, 4219: 1820, 4218: 1821, 4217: 1822, 4216: 1823, 4215: 1824, 4214: 1825, 4213: 1826, 4212: 1827, 4211: 1828, 4210: 1829, 4209: 1830, 4208: 1831, 4206: 1832, 4205: 1833, 4207: 1834, 4204: 1835, 4202: 1836, 4203: 1837, 4201: 1838, 4200: 1839, 4199: 1840, 4198: 1841, 4197: 1842, 4196: 1843, 4195: 1844, 4194: 1845, 4193: 1846, 4192: 1847, 4191: 1848, 4190: 1849, 4189: 1850, 4188: 1851, 4187: 1852, 4186: 1853, 4184: 1854, 4183: 1855, 4182: 1856, 4181: 1857, 4180: 1858, 4178: 1859, 4179: 1860, 4177: 1861, 4176: 1862, 4175: 1863, 4174: 1864, 4173: 1865, 4172: 1866, 4171: 1867, 4170: 1868, 4169: 1869, 4167: 1870, 4165: 1871, 4166: 1872, 4168: 1873, 4164: 1874, 4163: 1875, 4162: 1876, 4161: 1877, 4160: 1878, 4185: 1879, 4159: 1880, 4158: 1881, 4157: 1882, 4155: 1883, 4156: 1884, 4318: 1885, 4154: 1886, 4153: 1887, 4152: 1888, 4151: 1889, 4150: 1890, 4149: 1891, 4148: 1892, 4147: 1893, 4146: 1894, 4145: 1895, 4144: 1896, 4143: 1897, 4142: 1898, 4141: 1899, 4140: 1900, 4138: 1901, 4139: 1902, 4137: 1903, 4136: 1904, 4135: 1905, 4134: 1906, 4133: 1907, 4132: 1908, 4131: 1909, 4130: 1910, 4129: 1911, 4128: 1912, 4127: 1913, 4126: 1914, 4125: 1915, 4124: 1916, 4122: 1917, 4123: 1918, 4121: 1919, 4120: 1920, 4119: 1921, 4118: 1922, 4117: 1923, 4116: 1924, 4115: 1925, 4114: 1926, 4113: 1927, 4112: 1928, 4111: 1929, 4110: 1930, 4109: 1931, 4108: 1932, 4107: 1933, 4106: 1934, 4105: 1935, 4104: 1936, 4103: 1937, 4102: 1938, 4101: 1939, 4100: 1940, 4099: 1941, 4098: 1942, 4097: 1943, 4096: 1944, 4095: 1945, 4094: 1946, 4093: 1947, 4092: 1948, 4091: 1949, 4090: 1950, 4089: 1951, 4088: 1952, 4087: 1953, 4086: 1954, 4085: 1955, 4084: 1956, 4083: 1957, 4082: 1958, 4081: 1959, 4080: 1960, 4079: 1961, 4077: 1962, 4078: 1963, 4076: 1964, 4075: 1965, 4074: 1966, 4073: 1967, 4072: 1968, 4071: 1969, 4070: 1970, 4069: 1971, 4068: 1972, 4067: 1973, 4066: 1974, 4065: 1975, 4064: 1976, 4063: 1977, 4062: 1978, 4061: 1979, 4060: 1980, 4059: 1981, 4058: 1982, 4057: 1983, 4056: 1984, 4055: 1985, 4053: 1986, 4054: 1987, 4052: 1988, 4051: 1989, 4050: 1990, 4049: 1991, 4048: 1992, 4047: 1993, 4046: 1994, 4045: 1995, 4044: 1996, 4043: 1997, 4042: 1998, 4041: 1999, 4040: 2000, 4039: 2001, 4038: 2002, 4037: 2003, 4036: 2004, 4035: 2005, 4034: 2006, 4033: 2007, 4032: 2008, 4031: 2009, 4030: 2010, 4029: 2011, 4028: 2012, 4027: 2013, 4026: 2014, 4025: 2015, 4024: 2016, 4023: 2017, 4022: 2018, 4021: 2019, 4020: 2020, 4019: 2021, 4018: 2022, 4017: 2023, 4016: 2024, 4015: 2025, 4014: 2026, 4013: 2027, 4012: 2028, 4011: 2029, 4010: 2030, 4009: 2031, 4008: 2032, 4007: 2033, 4006: 2034, 4005: 2035, 4004: 2036, 4003: 2037, 4002: 2038, 4001: 2039, 4000: 2040, 3999: 2041, 3998: 2042, 3997: 2043, 3996: 2044, 3995: 2045, 3994: 2046, 3993: 2047, 3992: 2048, 3991: 2049, 3990: 2050, 3989: 2051, 3988: 2052, 3987: 2053, 3986: 2054, 3985: 2055, 3984: 2056, 3983: 2057, 3982: 2058, 3981: 2059, 3980: 2060, 3979: 2061, 3978: 2062, 3977: 2063, 3976: 2064, 3975: 2065, 3974: 2066, 3973: 2067, 3972: 2068, 3971: 2069, 3970: 2070, 3969: 2071, 3968: 2072, 3967: 2073, 3966: 2074, 3965: 2075, 3964: 2076, 3963: 2077, 3962: 2078, 3961: 2079, 3960: 2080, 3959: 2081, 3958: 2082, 3957: 2083, 3956: 2084, 3955: 2085, 3954: 2086, 3953: 2087, 3952: 2088, 3951: 2089, 3950: 2090, 3949: 2091, 3948: 2092, 3947: 2093, 3946: 2094, 3945: 2095, 3944: 2096, 3943: 2097, 3942: 2098, 3941: 2099, 3940: 2100, 3939: 2101, 3938: 2102, 3937: 2103, 3936: 2104, 3935: 2105, 3934: 2106, 3933: 2107, 3932: 2108, 3931: 2109, 3930: 2110, 3929: 2111, 3928: 2112, 3927: 2113, 3926: 2114, 3925: 2115, 3924: 2116, 3922: 2117, 3923: 2118, 3921: 2119, 3920: 2120, 3919: 2121, 3918: 2122, 3917: 2123, 3916: 2124, 3914: 2125, 3915: 2126, 3913: 2127, 3912: 2128, 3911: 2129, 3910: 2130, 3909: 2131, 3908: 2132, 3907: 2133, 3906: 2134, 3905: 2135, 3904: 2136, 3903: 2137, 3902: 2138, 3901: 2139, 3900: 2140, 3899: 2141, 3898: 2142, 3897: 2143, 3896: 2144, 3895: 2145, 3894: 2146, 3893: 2147, 3892: 2148, 3891: 2149, 3890: 2150, 3889: 2151, 3887: 2152, 3886: 2153, 3885: 2154, 3884: 2155, 3883: 2156, 3882: 2157, 3881: 2158, 3880: 2159, 3879: 2160, 3878: 2161, 3877: 2162, 3876: 2163, 3875: 2164, 3874: 2165, 3873: 2166, 3872: 2167, 3871: 2168, 3870: 2169, 3869: 2170, 3868: 2171, 3867: 2172, 3866: 2173, 3865: 2174, 3864: 2175, 3863: 2176, 3862: 2177, 3861: 2178, 3860: 2179, 3859: 2180, 3857: 2181, 3858: 2182, 3856: 2183, 3855: 2184, 3854: 2185, 3853: 2186, 3852: 2187, 3850: 2188, 3851: 2189, 3849: 2190, 3848: 2191, 3847: 2192, 3846: 2193, 3845: 2194, 3844: 2195, 3843: 2196, 3842: 2197, 3841: 2198, 3839: 2199, 3840: 2200, 3838: 2201, 3837: 2202, 3836: 2203, 3835: 2204, 3834: 2205, 3833: 2206, 3832: 2207, 3831: 2208, 3830: 2209, 3829: 2210, 3828: 2211, 3827: 2212, 3826: 2213, 3825: 2214, 3824: 2215, 3823: 2216, 3822: 2217, 3821: 2218, 3820: 2219, 3819: 2220, 3818: 2221, 3817: 2222, 3816: 2223, 3815: 2224, 3814: 2225, 3813: 2226, 3812: 2227, 3811: 2228, 3810: 2229, 3809: 2230, 3808: 2231, 3807: 2232, 3806: 2233, 3805: 2234, 3804: 2235, 3803: 2236, 3802: 2237, 3801: 2238, 3800: 2239, 3799: 2240, 3798: 2241, 3797: 2242, 3796: 2243, 3795: 2244, 3794: 2245, 3793: 2246, 3792: 2247, 3791: 2248, 3790: 2249, 3788: 2250, 3789: 2251, 3787: 2252, 3786: 2253, 3785: 2254, 3784: 2255, 3782: 2256, 3783: 2257, 3781: 2258, 3780: 2259, 3779: 2260, 3778: 2261, 3777: 2262, 3776: 2263, 3775: 2264, 3774: 2265, 3773: 2266, 3772: 2267, 3771: 2268, 3770: 2269, 3769: 2270, 3768: 2271, 3767: 2272, 3766: 2273, 3765: 2274, 3764: 2275, 3763: 2276, 3762: 2277, 3761: 2278, 3760: 2279, 3759: 2280, 3758: 2281, 3757: 2282, 3756: 2283, 3755: 2284, 3754: 2285, 3753: 2286, 3752: 2287, 3751: 2288, 3750: 2289, 3749: 2290, 3748: 2291, 3747: 2292, 3746: 2293, 3888: 2294, 3745: 2295, 3744: 2296, 3743: 2297, 3742: 2298, 3741: 2299, 3740: 2300, 3739: 2301, 3738: 2302, 3737: 2303, 3736: 2304, 3735: 2305, 3734: 2306, 3733: 2307, 3732: 2308, 3731: 2309, 3730: 2310, 3729: 2311, 3728: 2312, 3727: 2313, 3725: 2314, 3726: 2315, 3724: 2316, 3722: 2317, 3721: 2318, 3720: 2319, 3719: 2320, 3718: 2321, 3717: 2322, 3716: 2323, 3715: 2324, 3714: 2325, 3713: 2326, 3712: 2327, 3711: 2328, 3710: 2329, 3709: 2330, 3708: 2331, 3707: 2332, 3706: 2333, 3705: 2334, 3704: 2335, 3703: 2336, 3702: 2337, 3701: 2338, 3700: 2339, 3699: 2340, 3698: 2341, 3697: 2342, 3696: 2343, 3695: 2344, 3694: 2345, 3693: 2346, 3692: 2347, 3691: 2348, 3690: 2349, 3689: 2350, 3688: 2351, 3687: 2352, 3686: 2353, 3685: 2354, 3684: 2355, 3683: 2356, 3682: 2357, 3681: 2358, 3680: 2359, 3679: 2360, 3678: 2361, 3677: 2362, 3676: 2363, 3675: 2364, 3674: 2365, 3673: 2366, 3672: 2367, 3671: 2368, 3670: 2369, 3669: 2370, 3668: 2371, 3667: 2372, 3666: 2373, 3665: 2374, 3664: 2375, 3663: 2376, 3662: 2377, 3661: 2378, 3660: 2379, 3659: 2380, 3658: 2381, 3657: 2382, 3656: 2383, 3655: 2384, 3654: 2385, 3653: 2386, 3652: 2387, 3651: 2388, 3650: 2389, 3649: 2390, 3648: 2391, 3647: 2392, 3646: 2393, 3645: 2394, 3644: 2395, 3643: 2396, 3642: 2397, 3641: 2398, 3640: 2399, 3639: 2400, 3638: 2401, 3637: 2402, 3636: 2403, 3635: 2404, 3634: 2405, 3633: 2406, 3632: 2407, 3631: 2408, 3630: 2409, 3629: 2410, 3628: 2411, 3627: 2412, 3626: 2413, 3625: 2414, 3624: 2415, 3623: 2416, 3622: 2417, 3621: 2418, 3620: 2419, 3619: 2420, 3618: 2421, 3617: 2422, 3616: 2423, 3615: 2424, 3613: 2425, 3614: 2426, 3612: 2427, 3611: 2428, 3610: 2429, 3609: 2430, 3608: 2431, 3606: 2432, 3607: 2433, 3605: 2434, 3604: 2435, 3603: 2436, 3601: 2437, 3600: 2438, 3599: 2439, 3598: 2440, 3597: 2441, 3596: 2442, 3595: 2443, 3594: 2444, 3593: 2445, 3592: 2446, 3591: 2447, 3590: 2448, 3589: 2449, 3588: 2450, 3587: 2451, 3586: 2452, 3585: 2453, 3584: 2454, 3583: 2455, 3582: 2456, 3581: 2457, 3580: 2458, 3579: 2459, 3578: 2460, 3577: 2461, 3576: 2462, 3575: 2463, 3574: 2464, 3573: 2465, 3572: 2466, 3571: 2467, 3570: 2468, 3569: 2469, 3568: 2470, 3567: 2471, 3566: 2472, 3565: 2473, 3564: 2474, 3563: 2475, 3562: 2476, 3561: 2477, 3560: 2478, 3559: 2479, 3558: 2480, 3557: 2481, 3556: 2482, 3555: 2483, 3554: 2484, 3553: 2485, 3552: 2486, 3551: 2487, 3550: 2488, 3549: 2489, 3548: 2490, 3547: 2491, 3546: 2492, 3545: 2493, 3544: 2494, 3543: 2495, 3542: 2496, 3541: 2497, 3540: 2498, 3539: 2499, 3538: 2500, 3537: 2501, 3536: 2502, 3535: 2503, 3534: 2504, 3533: 2505, 3532: 2506, 3530: 2507, 3529: 2508, 3528: 2509, 3527: 2510, 3526: 2511, 3525: 2512, 3524: 2513, 3523: 2514, 3531: 2515, 3522: 2516, 3521: 2517, 3520: 2518, 3519: 2519, 3518: 2520, 3517: 2521, 3516: 2522, 3515: 2523, 3514: 2524, 3513: 2525, 3512: 2526, 3511: 2527, 3510: 2528, 3509: 2529, 3508: 2530, 3507: 2531, 3506: 2532, 3505: 2533, 3504: 2534, 3503: 2535, 3502: 2536, 3501: 2537, 3500: 2538, 3499: 2539, 3498: 2540, 3497: 2541, 3602: 2542, 3496: 2543, 3495: 2544, 3494: 2545, 3493: 2546, 3492: 2547, 3491: 2548, 3490: 2549, 3489: 2550, 3488: 2551, 3487: 2552, 3486: 2553, 3485: 2554, 3484: 2555, 3483: 2556, 3482: 2557, 3481: 2558, 3480: 2559, 3479: 2560, 3478: 2561, 3477: 2562, 3476: 2563, 3475: 2564, 3474: 2565, 3473: 2566, 3472: 2567, 3723: 2568, 3471: 2569, 3470: 2570, 3469: 2571, 3468: 2572, 3467: 2573, 3466: 2574, 3465: 2575, 3464: 2576, 3463: 2577, 3462: 2578, 3461: 2579, 3460: 2580, 3459: 2581, 3458: 2582, 3457: 2583, 3456: 2584, 3455: 2585, 3454: 2586, 3453: 2587, 3452: 2588, 3451: 2589, 3450: 2590, 3449: 2591, 3448: 2592, 3447: 2593, 3446: 2594, 3445: 2595, 3444: 2596, 3443: 2597, 3442: 2598, 3441: 2599, 3440: 2600, 3439: 2601, 3438: 2602, 3437: 2603, 3436: 2604, 3435: 2605, 3434: 2606, 3433: 2607, 3431: 2608, 3432: 2609, 3430: 2610, 3429: 2611, 3428: 2612, 3427: 2613, 3426: 2614, 3425: 2615, 3424: 2616, 3423: 2617, 3422: 2618, 3420: 2619, 3419: 2620, 3418: 2621, 3417: 2622, 3416: 2623, 3415: 2624, 3414: 2625, 3413: 2626, 3412: 2627, 3421: 2628, 3411: 2629, 3410: 2630, 3409: 2631, 3408: 2632, 3407: 2633, 3406: 2634, 3405: 2635, 3404: 2636, 3403: 2637, 3402: 2638, 3401: 2639, 3400: 2640, 3399: 2641, 3398: 2642, 3397: 2643, 3396: 2644, 3395: 2645, 3394: 2646, 3393: 2647, 3392: 2648, 3391: 2649, 3390: 2650, 3389: 2651, 3388: 2652, 3387: 2653, 3386: 2654, 3385: 2655, 3384: 2656, 3383: 2657, 3382: 2658, 3381: 2659, 3380: 2660, 3379: 2661, 3378: 2662, 3377: 2663, 3376: 2664, 3375: 2665, 3374: 2666, 3373: 2667, 3372: 2668, 3371: 2669, 3370: 2670, 3369: 2671, 3367: 2672, 3368: 2673, 3366: 2674, 3365: 2675, 3364: 2676, 3363: 2677, 3362: 2678, 3361: 2679, 3359: 2680, 3360: 2681, 3358: 2682, 3357: 2683, 3356: 2684, 3355: 2685, 3354: 2686, 3353: 2687, 3352: 2688, 3351: 2689, 3350: 2690, 3349: 2691, 3348: 2692, 3347: 2693, 3346: 2694, 3345: 2695, 3344: 2696, 3343: 2697, 3342: 2698, 3341: 2699, 3340: 2700, 3339: 2701, 3338: 2702, 3337: 2703, 3336: 2704, 3335: 2705, 3334: 2706, 3333: 2707, 3332: 2708, 3331: 2709, 3330: 2710, 3329: 2711, 3328: 2712, 3327: 2713, 3326: 2714, 3325: 2715, 3324: 2716, 3323: 2717, 3322: 2718, 3321: 2719, 3320: 2720, 3319: 2721, 3318: 2722, 3317: 2723, 3316: 2724, 3315: 2725, 3314: 2726, 3313: 2727, 3312: 2728, 3311: 2729, 3310: 2730, 3309: 2731, 3308: 2732, 3307: 2733, 3306: 2734, 3305: 2735, 3304: 2736, 3303: 2737, 3302: 2738, 3301: 2739, 3300: 2740, 3299: 2741, 3298: 2742, 3297: 2743, 3296: 2744, 3295: 2745, 3294: 2746, 3293: 2747, 3292: 2748, 3291: 2749, 3290: 2750, 3289: 2751, 3288: 2752, 3287: 2753, 3286: 2754, 3285: 2755, 3284: 2756, 3283: 2757, 3282: 2758, 3281: 2759, 3280: 2760, 3279: 2761, 3278: 2762, 3277: 2763, 3276: 2764, 3275: 2765, 3274: 2766, 3273: 2767, 3272: 2768, 3271: 2769, 3270: 2770, 3269: 2771, 3268: 2772, 3267: 2773, 3266: 2774, 3265: 2775, 3264: 2776, 3263: 2777, 3262: 2778, 3261: 2779, 3260: 2780, 3259: 2781, 3258: 2782, 3257: 2783, 3256: 2784, 3255: 2785, 3254: 2786, 3253: 2787, 3252: 2788, 3251: 2789, 3249: 2790, 3250: 2791, 3248: 2792, 3247: 2793, 3246: 2794, 3245: 2795, 3244: 2796, 3243: 2797, 3242: 2798, 3241: 2799, 3240: 2800, 3239: 2801, 3238: 2802, 3237: 2803, 3236: 2804, 3235: 2805, 3234: 2806, 3233: 2807, 3232: 2808, 3231: 2809, 3230: 2810, 3229: 2811, 3228: 2812, 3227: 2813, 3226: 2814, 3225: 2815, 3224: 2816, 3223: 2817, 3222: 2818, 3221: 2819, 3220: 2820, 3218: 2821, 3217: 2822, 3216: 2823, 3215: 2824, 3219: 2825, 3214: 2826, 3213: 2827, 3212: 2828, 3211: 2829, 3210: 2830, 3209: 2831, 3208: 2832, 3207: 2833, 3206: 2834, 3205: 2835, 3204: 2836, 3203: 2837, 3202: 2838, 3201: 2839, 3200: 2840, 3199: 2841, 3198: 2842, 3197: 2843, 3196: 2844, 3195: 2845, 3194: 2846, 3193: 2847, 3192: 2848, 3191: 2849, 3190: 2850, 3189: 2851, 3188: 2852, 3187: 2853, 3186: 2854, 3185: 2855, 3184: 2856, 3183: 2857, 3182: 2858, 3181: 2859, 3179: 2860, 3180: 2861, 3178: 2862, 3177: 2863, 3176: 2864, 3175: 2865, 3174: 2866, 3173: 2867, 3172: 2868, 3171: 2869, 3170: 2870, 3169: 2871, 3168: 2872, 3167: 2873, 3166: 2874, 3165: 2875, 3164: 2876, 3163: 2877, 3162: 2878, 3161: 2879, 3160: 2880, 3159: 2881, 3158: 2882, 3157: 2883, 3156: 2884, 3155: 2885, 3154: 2886, 3153: 2887, 3152: 2888, 3151: 2889, 3150: 2890, 3149: 2891, 3148: 2892, 3147: 2893, 3146: 2894, 3145: 2895, 3144: 2896, 3143: 2897, 3142: 2898, 3141: 2899, 3140: 2900, 3139: 2901, 3138: 2902, 3137: 2903, 3136: 2904, 3135: 2905, 3134: 2906, 3133: 2907, 3132: 2908, 3131: 2909, 3130: 2910, 3129: 2911, 3128: 2912, 3126: 2913, 3125: 2914, 3127: 2915, 3124: 2916, 3123: 2917, 3122: 2918, 3121: 2919, 3120: 2920, 3119: 2921, 3118: 2922, 3117: 2923, 3116: 2924, 3114: 2925, 3113: 2926, 3112: 2927, 3111: 2928, 3110: 2929, 3109: 2930, 3108: 2931, 3107: 2932, 3106: 2933, 3105: 2934, 3104: 2935, 3103: 2936, 3102: 2937, 3101: 2938, 3100: 2939, 3099: 2940, 3115: 2941, 3098: 2942, 3097: 2943, 3096: 2944, 3095: 2945, 3094: 2946, 3093: 2947, 3092: 2948, 3091: 2949, 3090: 2950, 3089: 2951, 3088: 2952, 3087: 2953, 3086: 2954, 3085: 2955, 3084: 2956, 3083: 2957, 3082: 2958, 3081: 2959, 3080: 2960, 3079: 2961, 3078: 2962, 3077: 2963, 3076: 2964, 3075: 2965, 3074: 2966, 3073: 2967, 3072: 2968, 3071: 2969, 3070: 2970, 3069: 2971, 3068: 2972, 3067: 2973, 3066: 2974, 3065: 2975, 3064: 2976, 3063: 2977, 3062: 2978, 3061: 2979, 3060: 2980, 3059: 2981, 3058: 2982, 3057: 2983, 3056: 2984, 3055: 2985, 3054: 2986, 3053: 2987, 3052: 2988, 3050: 2989, 3051: 2990, 3049: 2991, 3048: 2992, 3047: 2993, 3046: 2994, 3045: 2995, 3044: 2996, 3043: 2997, 3042: 2998, 3040: 2999, 3041: 3000, 3039: 3001, 3038: 3002, 3037: 3003, 3036: 3004, 3035: 3005, 3034: 3006, 3033: 3007, 3032: 3008, 3031: 3009, 3030: 3010, 3029: 3011, 3028: 3012, 3027: 3013, 3026: 3014, 3025: 3015, 3024: 3016, 3023: 3017, 3022: 3018, 3021: 3019, 3020: 3020, 3019: 3021, 3018: 3022, 3017: 3023, 3016: 3024, 3015: 3025, 3014: 3026, 3013: 3027, 3012: 3028, 3011: 3029, 3010: 3030, 3009: 3031, 3008: 3032, 3007: 3033, 3006: 3034, 3005: 3035, 3004: 3036, 3002: 3037, 3001: 3038, 3000: 3039, 2999: 3040, 2998: 3041, 2997: 3042, 2996: 3043, 2995: 3044, 2994: 3045, 2993: 3046, 2992: 3047, 2991: 3048, 2990: 3049, 2989: 3050, 3003: 3051, 2988: 3052, 2987: 3053, 2986: 3054, 2985: 3055, 2984: 3056, 2983: 3057, 2982: 3058, 2981: 3059, 2979: 3060, 2978: 3061, 2977: 3062, 2976: 3063, 2975: 3064, 2974: 3065, 2973: 3066, 2972: 3067, 2971: 3068, 2970: 3069, 2969: 3070, 2968: 3071, 2967: 3072, 2966: 3073, 2965: 3074, 2964: 3075, 2963: 3076, 2962: 3077, 2961: 3078, 2960: 3079, 2959: 3080, 2958: 3081, 2957: 3082, 2956: 3083, 2955: 3084, 2954: 3085, 2953: 3086, 2952: 3087, 2951: 3088, 2950: 3089, 2949: 3090, 2948: 3091, 2946: 3092, 2945: 3093, 2944: 3094, 2943: 3095, 2942: 3096, 2941: 3097, 2940: 3098, 2939: 3099, 2938: 3100, 2937: 3101, 2936: 3102, 2935: 3103, 2934: 3104, 2933: 3105, 2932: 3106, 2931: 3107, 2930: 3108, 2929: 3109, 2928: 3110, 2927: 3111, 2926: 3112, 2925: 3113, 2924: 3114, 2923: 3115, 2922: 3116, 2921: 3117, 2920: 3118, 2919: 3119, 2918: 3120, 2917: 3121, 2916: 3122, 2915: 3123, 2914: 3124, 2913: 3125, 2912: 3126, 2911: 3127, 2909: 3128, 2908: 3129, 2907: 3130, 2906: 3131, 2905: 3132, 2904: 3133, 2903: 3134, 2902: 3135, 2901: 3136, 2900: 3137, 2899: 3138, 2898: 3139, 2897: 3140, 2895: 3141, 2896: 3142, 2894: 3143, 2893: 3144, 2892: 3145, 2891: 3146, 2890: 3147, 2889: 3148, 2888: 3149, 2887: 3150, 2886: 3151, 2885: 3152, 2884: 3153, 2882: 3154, 2881: 3155, 2883: 3156, 2880: 3157, 2879: 3158, 2878: 3159, 2877: 3160, 2876: 3161, 2875: 3162, 2874: 3163, 2873: 3164, 2872: 3165, 2871: 3166, 2870: 3167, 2869: 3168, 2868: 3169, 2867: 3170, 2866: 3171, 2865: 3172, 2864: 3173, 2863: 3174, 2862: 3175, 2861: 3176, 2860: 3177, 2859: 3178, 2858: 3179, 2857: 3180, 2856: 3181, 2855: 3182, 2854: 3183, 2853: 3184, 2852: 3185, 2851: 3186, 2850: 3187, 2849: 3188, 2848: 3189, 2847: 3190, 2846: 3191, 2845: 3192, 2844: 3193, 2843: 3194, 2842: 3195, 2841: 3196, 2840: 3197, 2839: 3198, 2838: 3199, 2837: 3200, 2836: 3201, 2835: 3202, 2834: 3203, 2833: 3204, 2832: 3205, 2831: 3206, 2830: 3207, 2829: 3208, 2828: 3209, 2827: 3210, 2826: 3211, 2825: 3212, 2824: 3213, 2823: 3214, 2822: 3215, 2821: 3216, 2820: 3217, 2819: 3218, 2818: 3219, 2817: 3220, 2816: 3221, 2815: 3222, 2814: 3223, 2813: 3224, 2812: 3225, 2811: 3226, 2810: 3227, 2809: 3228, 2808: 3229, 2807: 3230, 2806: 3231, 2805: 3232, 2804: 3233, 2803: 3234, 2802: 3235, 2801: 3236, 2800: 3237, 2799: 3238, 2798: 3239, 2797: 3240, 2796: 3241, 2795: 3242, 2794: 3243, 2793: 3244, 2792: 3245, 2791: 3246, 2790: 3247, 2789: 3248, 2788: 3249, 2787: 3250, 2786: 3251, 2785: 3252, 2784: 3253, 2783: 3254, 2782: 3255, 2781: 3256, 2780: 3257, 2779: 3258, 2778: 3259, 2777: 3260, 2776: 3261, 2775: 3262, 2774: 3263, 2773: 3264, 2772: 3265, 2771: 3266, 2770: 3267, 2769: 3268, 2768: 3269, 2767: 3270, 2766: 3271, 2765: 3272, 2764: 3273, 2763: 3274, 2762: 3275, 2761: 3276, 2760: 3277, 2759: 3278, 2758: 3279, 2757: 3280, 2756: 3281, 2755: 3282, 2754: 3283, 2753: 3284, 2752: 3285, 2751: 3286, 2750: 3287, 2749: 3288, 2748: 3289, 2747: 3290, 2746: 3291, 2745: 3292, 2744: 3293, 2743: 3294, 2742: 3295, 2741: 3296, 2740: 3297, 2739: 3298, 2738: 3299, 2737: 3300, 2736: 3301, 2735: 3302, 2734: 3303, 2733: 3304, 2732: 3305, 2731: 3306, 2730: 3307, 2729: 3308, 2728: 3309, 2727: 3310, 2726: 3311, 2725: 3312, 2724: 3313, 2723: 3314, 2722: 3315, 2721: 3316, 2720: 3317, 2719: 3318, 2718: 3319, 2716: 3320, 2714: 3321, 2717: 3322, 2715: 3323, 2713: 3324, 2712: 3325, 2711: 3326, 2710: 3327, 2709: 3328, 2708: 3329, 2707: 3330, 2706: 3331, 2705: 3332, 2704: 3333, 2703: 3334, 2702: 3335, 2701: 3336, 2700: 3337, 2699: 3338, 2698: 3339, 2697: 3340, 2696: 3341, 2695: 3342, 2694: 3343, 2693: 3344, 2692: 3345, 2691: 3346, 2690: 3347, 2689: 3348, 2688: 3349, 2687: 3350, 2686: 3351, 2685: 3352, 2684: 3353, 2683: 3354, 2682: 3355, 2681: 3356, 2680: 3357, 2679: 3358, 2678: 3359, 2677: 3360, 2676: 3361, 2675: 3362, 2674: 3363, 2673: 3364, 2672: 3365, 2671: 3366, 2670: 3367, 2669: 3368, 2668: 3369, 2667: 3370, 2666: 3371, 2665: 3372, 2664: 3373, 2663: 3374, 2662: 3375, 2661: 3376, 2660: 3377, 2659: 3378, 2658: 3379, 2657: 3380, 2656: 3381, 2655: 3382, 2653: 3383, 2652: 3384, 2651: 3385, 2650: 3386, 2649: 3387, 2648: 3388, 2654: 3389, 2647: 3390, 2646: 3391, 2645: 3392, 2644: 3393, 2643: 3394, 2642: 3395, 2641: 3396, 2640: 3397, 2639: 3398, 2638: 3399, 2637: 3400, 2636: 3401, 2635: 3402, 2634: 3403, 2633: 3404, 2632: 3405, 2631: 3406, 2630: 3407, 2629: 3408, 2628: 3409, 2627: 3410, 2626: 3411, 2625: 3412, 2624: 3413, 2623: 3414, 2622: 3415, 2621: 3416, 2620: 3417, 2619: 3418, 2618: 3419, 2617: 3420, 2616: 3421, 2615: 3422, 2614: 3423, 2613: 3424, 2612: 3425, 2611: 3426, 2610: 3427, 2609: 3428, 2608: 3429, 2607: 3430, 2606: 3431, 2605: 3432, 2604: 3433, 2603: 3434, 2602: 3435, 2600: 3436, 2599: 3437, 2598: 3438, 2597: 3439, 2601: 3440, 2596: 3441, 2595: 3442, 2594: 3443, 2593: 3444, 2592: 3445, 2591: 3446, 2590: 3447, 2589: 3448, 2588: 3449, 2587: 3450, 2586: 3451, 2584: 3452, 2585: 3453, 2583: 3454, 2582: 3455, 2581: 3456, 2580: 3457, 2579: 3458, 2578: 3459, 2577: 3460, 2576: 3461, 2575: 3462, 2574: 3463, 2573: 3464, 2572: 3465, 2571: 3466, 2570: 3467, 2569: 3468, 2568: 3469, 2567: 3470, 2566: 3471, 2565: 3472, 2564: 3473, 2563: 3474, 2562: 3475, 2561: 3476, 2560: 3477, 2559: 3478, 2558: 3479, 2557: 3480, 2556: 3481, 2555: 3482, 2554: 3483, 2553: 3484, 2552: 3485, 2551: 3486, 2550: 3487, 2549: 3488, 2548: 3489, 2547: 3490, 2546: 3491, 2545: 3492, 2544: 3493, 2543: 3494, 2542: 3495, 2541: 3496, 2540: 3497, 2539: 3498, 2538: 3499, 2537: 3500, 2535: 3501, 2536: 3502, 2534: 3503, 2533: 3504, 2532: 3505, 2531: 3506, 2530: 3507, 2529: 3508, 2528: 3509, 2527: 3510, 2526: 3511, 2525: 3512, 2524: 3513, 2523: 3514, 2522: 3515, 2521: 3516, 2520: 3517, 2519: 3518, 2518: 3519, 2517: 3520, 2516: 3521, 2515: 3522, 2514: 3523, 2513: 3524, 2512: 3525, 2511: 3526, 2510: 3527, 2509: 3528, 2508: 3529, 2507: 3530, 2506: 3531, 2505: 3532, 2504: 3533, 2503: 3534, 2502: 3535, 2501: 3536, 2500: 3537, 2499: 3538, 2498: 3539, 2497: 3540, 2496: 3541, 2495: 3542, 2494: 3543, 2493: 3544, 2492: 3545, 2491: 3546, 2490: 3547, 2489: 3548, 2488: 3549, 2487: 3550, 2486: 3551, 2485: 3552, 2484: 3553, 2483: 3554, 2482: 3555, 2481: 3556, 2480: 3557, 2479: 3558, 2478: 3559, 2476: 3560, 2477: 3561, 2475: 3562, 2474: 3563, 2473: 3564, 2472: 3565, 2471: 3566, 2470: 3567, 2469: 3568, 2468: 3569, 2467: 3570, 2466: 3571, 2465: 3572, 2464: 3573, 2462: 3574, 2463: 3575, 2461: 3576, 2460: 3577, 2459: 3578, 2458: 3579, 2457: 3580, 2456: 3581, 2455: 3582, 2454: 3583, 2453: 3584, 2452: 3585, 2451: 3586, 2450: 3587, 2449: 3588, 2448: 3589, 2447: 3590, 2446: 3591, 2445: 3592, 2444: 3593, 2443: 3594, 2442: 3595, 2441: 3596, 2440: 3597, 2439: 3598, 2438: 3599, 2436: 3600, 2435: 3601, 2433: 3602, 2437: 3603, 2431: 3604, 2430: 3605, 2432: 3606, 2434: 3607, 2429: 3608, 2428: 3609, 2427: 3610, 2426: 3611, 2424: 3612, 2423: 3613, 2422: 3614, 2421: 3615, 2420: 3616, 2425: 3617, 2419: 3618, 2418: 3619, 2417: 3620, 2415: 3621, 2416: 3622, 2414: 3623, 2413: 3624, 2412: 3625, 2411: 3626, 2410: 3627, 2409: 3628, 2408: 3629, 2407: 3630, 2406: 3631, 2405: 3632, 2404: 3633, 2403: 3634, 2402: 3635, 2401: 3636, 2400: 3637, 2399: 3638, 2398: 3639, 2397: 3640, 2396: 3641, 2395: 3642, 2394: 3643, 2393: 3644, 2392: 3645, 2391: 3646, 2390: 3647, 2389: 3648, 2388: 3649, 2387: 3650, 2386: 3651, 2385: 3652, 2384: 3653, 2383: 3654, 2382: 3655, 2381: 3656, 2380: 3657, 2378: 3658, 2379: 3659, 2377: 3660, 2376: 3661, 2375: 3662, 2374: 3663, 2373: 3664, 2372: 3665, 2371: 3666, 2370: 3667, 2369: 3668, 2368: 3669, 2367: 3670, 2366: 3671, 2365: 3672, 2364: 3673, 2363: 3674, 2362: 3675, 2361: 3676, 2360: 3677, 2359: 3678, 2358: 3679, 2357: 3680, 2356: 3681, 2355: 3682, 2354: 3683, 2352: 3684, 2353: 3685, 2351: 3686, 2350: 3687, 2348: 3688, 2349: 3689, 2347: 3690, 2346: 3691, 2345: 3692, 2344: 3693, 2342: 3694, 2343: 3695, 2341: 3696, 2340: 3697, 2339: 3698, 2338: 3699, 2337: 3700, 2336: 3701, 2335: 3702, 2334: 3703, 2333: 3704, 2332: 3705, 2331: 3706, 2330: 3707, 2329: 3708, 2328: 3709, 2327: 3710, 2326: 3711, 2325: 3712, 2324: 3713, 2323: 3714, 2322: 3715, 2321: 3716, 2320: 3717, 2319: 3718, 2318: 3719, 2317: 3720, 2316: 3721, 2315: 3722, 2314: 3723, 2313: 3724, 2312: 3725, 2311: 3726, 2310: 3727, 2309: 3728, 2308: 3729, 2307: 3730, 2306: 3731, 2305: 3732, 2304: 3733, 2303: 3734, 2302: 3735, 2301: 3736, 2300: 3737, 2299: 3738, 2298: 3739, 2297: 3740, 2296: 3741, 2295: 3742, 2294: 3743, 2293: 3744, 2292: 3745, 2291: 3746, 2290: 3747, 2289: 3748, 2288: 3749, 2287: 3750, 2286: 3751, 2285: 3752, 2284: 3753, 2283: 3754, 2282: 3755, 2281: 3756, 2280: 3757, 2279: 3758, 2278: 3759, 2277: 3760, 2276: 3761, 2275: 3762, 2274: 3763, 2273: 3764, 2272: 3765, 2271: 3766, 2270: 3767, 2269: 3768, 2268: 3769, 2267: 3770, 2266: 3771, 2265: 3772, 2264: 3773, 2263: 3774, 2262: 3775, 2261: 3776, 2260: 3777, 2259: 3778, 2258: 3779, 2257: 3780, 2256: 3781, 2255: 3782, 2254: 3783, 2253: 3784, 2252: 3785, 2250: 3786, 2251: 3787, 2248: 3788, 2246: 3789, 2244: 3790, 2243: 3791, 2242: 3792, 2241: 3793, 2249: 3794, 2245: 3795, 2240: 3796, 2239: 3797, 2238: 3798, 2237: 3799, 2235: 3800, 2236: 3801, 2234: 3802, 2233: 3803, 2232: 3804, 2231: 3805, 2230: 3806, 2229: 3807, 2228: 3808, 2227: 3809, 2226: 3810, 2224: 3811, 2225: 3812, 2223: 3813, 2222: 3814, 2221: 3815, 2220: 3816, 2219: 3817, 2218: 3818, 2217: 3819, 2216: 3820, 2215: 3821, 2214: 3822, 2212: 3823, 2213: 3824, 2211: 3825, 2210: 3826, 2209: 3827, 2208: 3828, 2207: 3829, 2206: 3830, 2205: 3831, 2203: 3832, 2204: 3833, 2202: 3834, 2201: 3835, 2200: 3836, 2199: 3837, 2197: 3838, 2198: 3839, 2196: 3840, 2195: 3841, 2192: 3842, 2191: 3843, 2193: 3844, 2194: 3845, 2190: 3846, 2189: 3847, 2188: 3848, 2186: 3849, 2185: 3850, 2187: 3851, 2184: 3852, 2182: 3853, 2183: 3854, 2181: 3855, 2180: 3856, 2179: 3857, 2178: 3858, 2177: 3859, 2175: 3860, 2176: 3861, 2174: 3862, 2173: 3863, 2172: 3864, 2171: 3865, 2169: 3866, 2170: 3867, 2168: 3868, 2167: 3869, 2166: 3870, 2165: 3871, 2164: 3872, 2163: 3873, 2162: 3874, 2161: 3875, 2160: 3876, 2159: 3877, 2158: 3878, 2157: 3879, 2156: 3880, 2155: 3881, 2154: 3882, 2153: 3883, 2152: 3884, 2150: 3885, 2151: 3886, 2149: 3887, 2148: 3888, 2147: 3889, 2146: 3890, 2145: 3891, 2144: 3892, 2143: 3893, 2142: 3894, 2141: 3895, 2140: 3896, 2139: 3897, 2138: 3898, 2137: 3899, 2136: 3900, 2135: 3901, 2134: 3902, 2133: 3903, 2132: 3904, 2131: 3905, 2130: 3906, 2129: 3907, 2128: 3908, 2127: 3909, 2126: 3910, 2125: 3911, 2123: 3912, 2124: 3913, 2122: 3914, 2121: 3915, 2120: 3916, 2119: 3917, 2118: 3918, 2117: 3919, 2116: 3920, 2115: 3921, 2114: 3922, 2113: 3923, 2112: 3924, 2111: 3925, 2110: 3926, 2109: 3927, 2108: 3928, 2107: 3929, 2106: 3930, 2105: 3931, 2104: 3932, 2103: 3933, 2102: 3934, 2101: 3935, 2100: 3936, 2099: 3937, 2098: 3938, 2097: 3939, 2096: 3940, 2095: 3941, 2093: 3942, 2094: 3943, 2092: 3944, 2091: 3945, 2090: 3946, 2088: 3947, 2089: 3948, 2087: 3949, 2085: 3950, 2086: 3951, 2084: 3952, 2083: 3953, 2082: 3954, 2081: 3955, 2080: 3956, 2079: 3957, 2078: 3958, 2077: 3959, 2075: 3960, 2076: 3961, 2074: 3962, 2073: 3963, 2072: 3964, 2071: 3965, 2070: 3966, 2069: 3967, 2068: 3968, 2067: 3969, 2066: 3970, 2064: 3971, 2065: 3972, 2063: 3973, 2062: 3974, 2061: 3975, 2060: 3976, 2059: 3977, 2057: 3978, 2058: 3979, 2056: 3980, 2055: 3981, 2054: 3982, 2053: 3983, 2052: 3984, 2051: 3985, 2050: 3986, 2049: 3987, 2048: 3988, 2047: 3989, 2046: 3990, 2045: 3991, 2044: 3992, 2043: 3993, 2042: 3994, 2041: 3995, 2039: 3996, 2040: 3997, 2038: 3998, 2036: 3999, 2037: 4000, 2035: 4001, 2034: 4002, 2033: 4003, 2032: 4004, 2031: 4005, 2030: 4006, 2029: 4007, 2028: 4008, 2027: 4009, 2026: 4010, 2025: 4011, 2024: 4012, 2023: 4013, 2022: 4014, 2020: 4015, 2021: 4016, 2019: 4017, 2018: 4018, 2017: 4019, 2016: 4020, 2015: 4021, 2014: 4022, 2013: 4023, 2012: 4024, 2011: 4025, 2010: 4026, 2009: 4027, 2008: 4028, 2005: 4029, 2007: 4030, 2006: 4031, 2004: 4032, 2002: 4033, 2003: 4034, 2001: 4035, 2000: 4036, 1999: 4037, 1998: 4038, 1997: 4039, 1996: 4040, 1995: 4041, 1994: 4042, 1993: 4043, 1992: 4044, 1991: 4045, 1990: 4046, 1989: 4047, 1988: 4048, 1985: 4049, 1986: 4050, 1987: 4051, 1983: 4052, 1984: 4053, 1982: 4054, 1981: 4055, 1980: 4056, 1979: 4057, 1978: 4058, 1977: 4059, 1974: 4060, 1975: 4061, 1973: 4062, 1976: 4063, 1971: 4064, 1972: 4065, 1969: 4066, 1968: 4067, 1967: 4068, 1970: 4069, 1966: 4070, 1965: 4071, 1964: 4072, 1963: 4073, 1962: 4074, 1961: 4075, 1960: 4076, 1959: 4077, 1958: 4078, 1957: 4079, 1956: 4080, 1955: 4081, 1952: 4082, 1951: 4083, 1954: 4084, 1948: 4085, 1945: 4086, 1946: 4087, 1953: 4088, 1944: 4089, 1937: 4090, 1949: 4091, 1950: 4092, 1943: 4093, 1941: 4094, 1942: 4095, 1938: 4096, 1935: 4097, 1939: 4098, 1947: 4099, 1940: 4100, 1934: 4101, 1931: 4102, 1928: 4103, 1926: 4104, 1929: 4105, 1927: 4106, 1924: 4107, 1925: 4108, 1923: 4109, 1921: 4110, 1920: 4111, 1922: 4112, 1936: 4113, 1919: 4114, 1930: 4115, 1917: 4116, 1918: 4117, 1916: 4118, 1914: 4119, 1912: 4120, 1909: 4121, 1911: 4122, 1906: 4123, 1904: 4124, 1908: 4125, 1905: 4126, 1903: 4127, 1907: 4128, 1902: 4129, 1901: 4130, 1900: 4131, 1933: 4132, 1915: 4133, 1910: 4134, 1894: 4135, 1896: 4136, 1898: 4137, 1899: 4138, 1893: 4139, 1892: 4140, 1895: 4141, 1913: 4142, 1891: 4143, 1889: 4144, 1890: 4145, 1888: 4146, 1886: 4147, 1885: 4148, 1897: 4149, 1887: 4150, 1882: 4151, 1881: 4152, 1880: 4153, 1883: 4154, 1879: 4155, 1884: 4156, 1932: 4157, 1878: 4158, 1876: 4159, 1873: 4160, 1874: 4161, 1872: 4162, 1871: 4163, 1870: 4164, 1869: 4165, 1868: 4166, 1867: 4167, 1866: 4168, 1865: 4169, 1864: 4170, 1863: 4171, 1862: 4172, 1859: 4173, 1861: 4174, 1860: 4175, 1858: 4176, 1857: 4177, 1856: 4178, 1855: 4179, 1854: 4180, 1852: 4181, 1851: 4182, 1850: 4183, 1849: 4184, 1846: 4185, 1844: 4186, 1843: 4187, 1848: 4188, 1847: 4189, 1842: 4190, 1841: 4191, 1840: 4192, 1839: 4193, 1838: 4194, 1837: 4195, 1833: 4196, 1835: 4197, 1834: 4198, 1830: 4199, 1824: 4200, 1832: 4201, 1836: 4202, 1826: 4203, 1845: 4204, 1822: 4205, 1829: 4206, 1828: 4207, 1823: 4208, 1827: 4209, 1820: 4210, 1819: 4211, 1818: 4212, 1817: 4213, 1816: 4214, 1814: 4215, 1812: 4216, 1811: 4217, 1813: 4218, 1821: 4219, 1809: 4220, 1808: 4221, 1810: 4222, 1807: 4223, 1831: 4224, 1805: 4225, 1804: 4226, 1806: 4227, 1815: 4228, 1803: 4229, 1802: 4230, 1801: 4231, 1800: 4232, 1798: 4233, 1799: 4234, 1797: 4235, 1796: 4236, 1793: 4237, 1795: 4238, 1792: 4239, 1794: 4240, 1790: 4241, 1791: 4242, 1787: 4243, 1875: 4244, 1789: 4245, 1788: 4246, 1784: 4247, 1783: 4248, 1785: 4249, 1782: 4250, 1781: 4251, 1780: 4252, 1779: 4253, 1778: 4254, 1786: 4255, 1777: 4256, 1773: 4257, 1776: 4258, 1775: 4259, 1774: 4260, 1772: 4261, 1771: 4262, 1769: 4263, 1768: 4264, 1770: 4265, 1767: 4266, 1762: 4267, 1766: 4268, 1764: 4269, 1763: 4270, 1765: 4271, 1760: 4272, 1759: 4273, 1758: 4274, 1756: 4275, 1757: 4276, 1761: 4277, 1755: 4278, 1753: 4279, 1752: 4280, 1754: 4281, 1751: 4282, 1749: 4283, 1750: 4284, 1747: 4285, 1746: 4286, 1745: 4287, 1748: 4288, 1744: 4289, 1743: 4290, 1742: 4291, 1740: 4292, 1739: 4293, 1738: 4294, 1737: 4295, 1736: 4296, 1735: 4297, 1733: 4298, 1734: 4299, 1732: 4300, 1729: 4301, 1730: 4302, 1731: 4303, 1728: 4304, 1725: 4305, 1726: 4306, 1727: 4307, 1722: 4308, 1719: 4309, 1721: 4310, 1720: 4311, 1724: 4312, 1723: 4313, 1718: 4314, 1717: 4315, 1715: 4316, 1741: 4317, 1714: 4318, 1716: 4319, 1713: 4320, 1712: 4321, 1711: 4322, 1710: 4323, 1709: 4324, 1708: 4325, 1707: 4326, 1706: 4327, 1705: 4328, 1704: 4329, 1703: 4330, 1700: 4331, 1701: 4332, 1698: 4333, 1697: 4334, 1702: 4335, 1695: 4336, 1699: 4337, 1694: 4338, 1693: 4339, 1696: 4340, 1691: 4341, 1692: 4342, 1688: 4343, 1686: 4344, 1687: 4345, 1685: 4346, 1684: 4347, 1689: 4348, 1683: 4349, 1682: 4350, 1681: 4351, 1690: 4352, 1680: 4353, 1679: 4354, 1678: 4355, 1676: 4356, 1677: 4357, 1675: 4358, 1674: 4359, 1672: 4360, 1673: 4361, 1669: 4362, 1671: 4363, 1668: 4364, 1670: 4365, 1667: 4366, 1666: 4367, 1665: 4368, 1664: 4369, 1663: 4370, 1662: 4371, 1661: 4372, 1660: 4373, 1659: 4374, 1658: 4375, 1654: 4376, 1655: 4377, 1657: 4378, 1656: 4379, 1653: 4380, 1652: 4381, 1651: 4382, 1650: 4383, 1649: 4384, 1648: 4385, 1647: 4386, 1646: 4387, 1645: 4388, 1644: 4389, 1641: 4390, 1643: 4391, 1642: 4392, 1640: 4393, 1639: 4394, 1638: 4395, 1637: 4396, 1636: 4397, 1634: 4398, 1635: 4399, 1633: 4400, 1632: 4401, 1631: 4402, 1628: 4403, 1629: 4404, 1630: 4405, 1627: 4406, 1626: 4407, 1625: 4408, 1624: 4409, 1623: 4410, 1622: 4411, 1621: 4412, 1620: 4413, 1617: 4414, 1618: 4415, 1619: 4416, 1616: 4417, 1614: 4418, 1615: 4419, 1613: 4420, 1612: 4421, 1611: 4422, 1610: 4423, 1609: 4424, 1608: 4425, 1825: 4426, 1607: 4427, 1606: 4428, 1605: 4429, 1604: 4430, 1603: 4431, 1602: 4432, 1601: 4433, 1600: 4434, 1599: 4435, 1598: 4436, 1597: 4437, 1596: 4438, 1595: 4439, 1594: 4440, 1593: 4441, 1592: 4442, 1591: 4443, 1590: 4444, 1589: 4445, 1588: 4446, 1587: 4447, 1586: 4448, 1585: 4449, 1584: 4450, 1583: 4451, 1579: 4452, 1582: 4453, 1580: 4454, 1578: 4455, 1577: 4456, 1576: 4457, 1574: 4458, 1575: 4459, 1573: 4460, 1572: 4461, 1571: 4462, 1570: 4463, 1569: 4464, 1568: 4465, 1567: 4466, 1566: 4467, 1564: 4468, 1565: 4469, 1563: 4470, 1562: 4471, 1561: 4472, 1560: 4473, 1559: 4474, 1558: 4475, 1556: 4476, 1555: 4477, 1554: 4478, 1553: 4479, 1552: 4480, 1550: 4481, 1549: 4482, 1548: 4483, 1551: 4484, 1547: 4485, 1546: 4486, 1545: 4487, 1544: 4488, 1543: 4489, 1542: 4490, 1540: 4491, 1541: 4492, 1539: 4493, 1538: 4494, 1537: 4495, 1535: 4496, 1536: 4497, 1534: 4498, 1533: 4499, 1532: 4500, 1531: 4501, 1530: 4502, 1529: 4503, 1528: 4504, 1527: 4505, 1526: 4506, 1525: 4507, 1524: 4508, 1523: 4509, 1521: 4510, 1522: 4511, 1520: 4512, 1519: 4513, 1517: 4514, 1518: 4515, 1516: 4516, 1515: 4517, 1514: 4518, 1513: 4519, 1512: 4520, 1511: 4521, 1510: 4522, 1509: 4523, 1508: 4524, 1507: 4525, 1506: 4526, 1581: 4527, 1504: 4528, 1503: 4529, 1501: 4530, 1500: 4531, 1502: 4532, 1499: 4533, 1497: 4534, 1498: 4535, 1496: 4536, 1495: 4537, 1493: 4538, 1494: 4539, 1492: 4540, 1491: 4541, 1490: 4542, 1489: 4543, 1488: 4544, 1487: 4545, 1486: 4546, 1484: 4547, 1485: 4548, 1483: 4549, 1482: 4550, 1481: 4551, 1479: 4552, 1478: 4553, 1476: 4554, 1477: 4555, 1474: 4556, 1473: 4557, 1475: 4558, 1472: 4559, 1470: 4560, 1471: 4561, 1469: 4562, 1468: 4563, 1467: 4564, 1480: 4565, 1466: 4566, 1465: 4567, 1463: 4568, 1464: 4569, 1462: 4570, 1461: 4571, 1460: 4572, 1459: 4573, 1458: 4574, 1457: 4575, 1456: 4576, 1454: 4577, 1453: 4578, 1452: 4579, 1451: 4580, 1455: 4581, 1450: 4582, 1448: 4583, 1446: 4584, 1445: 4585, 1447: 4586, 1449: 4587, 1443: 4588, 1444: 4589, 1442: 4590, 1441: 4591, 1440: 4592, 1439: 4593, 1438: 4594, 1437: 4595, 1436: 4596, 1435: 4597, 1434: 4598, 1433: 4599, 1432: 4600, 1430: 4601, 1429: 4602, 1431: 4603, 1427: 4604, 1426: 4605, 1423: 4606, 1425: 4607, 1424: 4608, 1422: 4609, 1421: 4610, 1420: 4611, 1419: 4612, 1418: 4613, 1416: 4614, 1415: 4615, 1417: 4616, 1414: 4617, 1413: 4618, 1412: 4619, 1411: 4620, 1409: 4621, 1408: 4622, 1407: 4623, 1406: 4624, 1405: 4625, 1404: 4626, 1403: 4627, 1402: 4628, 1401: 4629, 1410: 4630, 1400: 4631, 1399: 4632, 1397: 4633, 1398: 4634, 1396: 4635, 1393: 4636, 1394: 4637, 1395: 4638, 1392: 4639, 1390: 4640, 1389: 4641, 1388: 4642, 1391: 4643, 1387: 4644, 1386: 4645, 1385: 4646, 1384: 4647, 1383: 4648, 1381: 4649, 1380: 4650, 1382: 4651, 1378: 4652, 1379: 4653, 1377: 4654, 1376: 4655, 1375: 4656, 1374: 4657, 1373: 4658, 1372: 4659, 1371: 4660, 1370: 4661, 1369: 4662, 1368: 4663, 1367: 4664, 1366: 4665, 1364: 4666, 1363: 4667, 1365: 4668, 1362: 4669, 1361: 4670, 1360: 4671, 1359: 4672, 1358: 4673, 1357: 4674, 1356: 4675, 1355: 4676, 1354: 4677, 1353: 4678, 1352: 4679, 1351: 4680, 1350: 4681, 1349: 4682, 1348: 4683, 1347: 4684, 1346: 4685, 1345: 4686, 1344: 4687, 1343: 4688, 1342: 4689, 1341: 4690, 1340: 4691, 1338: 4692, 1339: 4693, 1337: 4694, 1336: 4695, 1335: 4696, 1334: 4697, 1333: 4698, 1332: 4699, 1331: 4700, 1330: 4701, 1329: 4702, 1328: 4703, 1325: 4704, 1326: 4705, 1324: 4706, 1327: 4707, 1323: 4708, 1322: 4709, 1321: 4710, 1320: 4711, 1319: 4712, 1316: 4713, 1317: 4714, 1318: 4715, 1315: 4716, 1314: 4717, 1313: 4718, 1312: 4719, 1311: 4720, 1310: 4721, 1309: 4722, 1308: 4723, 1307: 4724, 1306: 4725, 1305: 4726, 1304: 4727, 1303: 4728, 1301: 4729, 1299: 4730, 1300: 4731, 1302: 4732, 1298: 4733, 1297: 4734, 1296: 4735, 1295: 4736, 1293: 4737, 1294: 4738, 1292: 4739, 1291: 4740, 1290: 4741, 1289: 4742, 1288: 4743, 1286: 4744, 1285: 4745, 1284: 4746, 1282: 4747, 1281: 4748, 1280: 4749, 1279: 4750, 1283: 4751, 1278: 4752, 1277: 4753, 1276: 4754, 1275: 4755, 1274: 4756, 1273: 4757, 1272: 4758, 1271: 4759, 1270: 4760, 1269: 4761, 1268: 4762, 1267: 4763, 1266: 4764, 1264: 4765, 1263: 4766, 1262: 4767, 1261: 4768, 1557: 4769, 1260: 4770, 1259: 4771, 1258: 4772, 1255: 4773, 1256: 4774, 1257: 4775, 1254: 4776, 1253: 4777, 1252: 4778, 1251: 4779, 1250: 4780, 1249: 4781, 1248: 4782, 1247: 4783, 1246: 4784, 1245: 4785, 1244: 4786, 1243: 4787, 1242: 4788, 1241: 4789, 1240: 4790, 1239: 4791, 1237: 4792, 1238: 4793, 1236: 4794, 1235: 4795, 1234: 4796, 1233: 4797, 1232: 4798, 1230: 4799, 1229: 4800, 1227: 4801, 1231: 4802, 1228: 4803, 1226: 4804, 1225: 4805, 1223: 4806, 1222: 4807, 1224: 4808, 1221: 4809, 1220: 4810, 1219: 4811, 1218: 4812, 1217: 4813, 1216: 4814, 1215: 4815, 1211: 4816, 1214: 4817, 1212: 4818, 1213: 4819, 1210: 4820, 1209: 4821, 1208: 4822, 1207: 4823, 1206: 4824, 1205: 4825, 1204: 4826, 1203: 4827, 1202: 4828, 1201: 4829, 1200: 4830, 1199: 4831, 1198: 4832, 1197: 4833, 1196: 4834, 1195: 4835, 1194: 4836, 1193: 4837, 1192: 4838, 1190: 4839, 1189: 4840, 1191: 4841, 1186: 4842, 1188: 4843, 1187: 4844, 1185: 4845, 1184: 4846, 1183: 4847, 1182: 4848, 1181: 4849, 1180: 4850, 1179: 4851, 1178: 4852, 1177: 4853, 1176: 4854, 1175: 4855, 1174: 4856, 1173: 4857, 1172: 4858, 1171: 4859, 1170: 4860, 1169: 4861, 1168: 4862, 1167: 4863, 1166: 4864, 1165: 4865, 1163: 4866, 1164: 4867, 1162: 4868, 1161: 4869, 1160: 4870, 1159: 4871, 1158: 4872, 1157: 4873, 1156: 4874, 1155: 4875, 1154: 4876, 1153: 4877, 1152: 4878, 1151: 4879, 1853: 4880, 1150: 4881, 1149: 4882, 1148: 4883, 1147: 4884, 1146: 4885, 1145: 4886, 1144: 4887, 1143: 4888, 1141: 4889, 1142: 4890, 1139: 4891, 1140: 4892, 1138: 4893, 1137: 4894, 1136: 4895, 1135: 4896, 1134: 4897, 1133: 4898, 1132: 4899, 1131: 4900, 1130: 4901, 1128: 4902, 1129: 4903, 1127: 4904, 1126: 4905, 1125: 4906, 1124: 4907, 1123: 4908, 1122: 4909, 1121: 4910, 1120: 4911, 1119: 4912, 1117: 4913, 1116: 4914, 1115: 4915, 1114: 4916, 1113: 4917, 1112: 4918, 1111: 4919, 1109: 4920, 1108: 4921, 1110: 4922, 1107: 4923, 1106: 4924, 1105: 4925, 1104: 4926, 1103: 4927, 1102: 4928, 1101: 4929, 1100: 4930, 1099: 4931, 1118: 4932, 1098: 4933, 1097: 4934, 1096: 4935, 1095: 4936, 1094: 4937, 1093: 4938, 1092: 4939, 1091: 4940, 1090: 4941, 1089: 4942, 1088: 4943, 1087: 4944, 1086: 4945, 1085: 4946, 1084: 4947, 1083: 4948, 1081: 4949, 1082: 4950, 1080: 4951, 1079: 4952, 1078: 4953, 1077: 4954, 1075: 4955, 1076: 4956, 1074: 4957, 1073: 4958, 1071: 4959, 1070: 4960, 1072: 4961, 1069: 4962, 1068: 4963, 1067: 4964, 1066: 4965, 1065: 4966, 1064: 4967, 1063: 4968, 1062: 4969, 1061: 4970, 1060: 4971, 1059: 4972, 1058: 4973, 1057: 4974, 1056: 4975, 1055: 4976, 1054: 4977, 1053: 4978, 1505: 4979, 1052: 4980, 1051: 4981, 1050: 4982, 1049: 4983, 1048: 4984, 1047: 4985, 1046: 4986, 1045: 4987, 1044: 4988, 1043: 4989, 1042: 4990, 1041: 4991, 1040: 4992, 1039: 4993, 1038: 4994, 1037: 4995, 1036: 4996, 1035: 4997, 1034: 4998, 1033: 4999, 1032: 5000, 1031: 5001, 1030: 5002, 1029: 5003, 1028: 5004, 1027: 5005, 1025: 5006, 1026: 5007, 1024: 5008, 1023: 5009, 1022: 5010, 1021: 5011, 1020: 5012, 1019: 5013, 1018: 5014, 1017: 5015, 1016: 5016, 1015: 5017, 1014: 5018, 1013: 5019, 1011: 5020, 1010: 5021, 1009: 5022, 1008: 5023, 1007: 5024, 1006: 5025, 1005: 5026, 1003: 5027, 1002: 5028, 1004: 5029, 1001: 5030, 1000: 5031, 999: 5032, 998: 5033, 997: 5034, 996: 5035, 995: 5036, 994: 5037, 993: 5038, 1012: 5039, 992: 5040, 991: 5041, 990: 5042, 989: 5043, 988: 5044, 987: 5045, 986: 5046, 985: 5047, 984: 5048, 983: 5049, 982: 5050, 981: 5051, 980: 5052, 979: 5053, 978: 5054, 977: 5055, 976: 5056, 975: 5057, 974: 5058, 973: 5059, 972: 5060, 971: 5061, 970: 5062, 969: 5063, 968: 5064, 966: 5065, 967: 5066, 964: 5067, 965: 5068, 963: 5069, 962: 5070, 961: 5071, 960: 5072, 959: 5073, 958: 5074, 957: 5075, 956: 5076, 955: 5077, 954: 5078, 953: 5079, 952: 5080, 950: 5081, 951: 5082, 949: 5083, 948: 5084, 947: 5085, 946: 5086, 945: 5087, 944: 5088, 1428: 5089, 943: 5090, 942: 5091, 941: 5092, 940: 5093, 938: 5094, 939: 5095, 937: 5096, 936: 5097, 935: 5098, 934: 5099, 933: 5100, 932: 5101, 931: 5102, 930: 5103, 929: 5104, 928: 5105, 927: 5106, 2247: 5107, 926: 5108, 925: 5109, 924: 5110, 923: 5111, 922: 5112, 921: 5113, 920: 5114, 919: 5115, 917: 5116, 916: 5117, 918: 5118, 915: 5119, 914: 5120, 913: 5121, 912: 5122, 911: 5123, 910: 5124, 909: 5125, 908: 5126, 907: 5127, 906: 5128, 905: 5129, 904: 5130, 903: 5131, 902: 5132, 901: 5133, 900: 5134, 899: 5135, 898: 5136, 897: 5137, 896: 5138, 895: 5139, 894: 5140, 893: 5141, 892: 5142, 891: 5143, 890: 5144, 889: 5145, 888: 5146, 887: 5147, 886: 5148, 885: 5149, 884: 5150, 883: 5151, 882: 5152, 881: 5153, 880: 5154, 879: 5155, 878: 5156, 877: 5157, 876: 5158, 875: 5159, 874: 5160, 873: 5161, 872: 5162, 871: 5163, 870: 5164, 869: 5165, 868: 5166, 867: 5167, 866: 5168, 865: 5169, 864: 5170, 863: 5171, 862: 5172, 861: 5173, 860: 5174, 859: 5175, 858: 5176, 857: 5177, 856: 5178, 854: 5179, 853: 5180, 852: 5181, 851: 5182, 850: 5183, 849: 5184, 848: 5185, 847: 5186, 846: 5187, 845: 5188, 844: 5189, 842: 5190, 841: 5191, 843: 5192, 840: 5193, 839: 5194, 838: 5195, 837: 5196, 836: 5197, 835: 5198, 834: 5199, 833: 5200, 832: 5201, 831: 5202, 830: 5203, 829: 5204, 828: 5205, 827: 5206, 826: 5207, 825: 5208, 824: 5209, 823: 5210, 822: 5211, 821: 5212, 820: 5213, 819: 5214, 818: 5215, 817: 5216, 816: 5217, 814: 5218, 815: 5219, 813: 5220, 811: 5221, 810: 5222, 809: 5223, 808: 5224, 807: 5225, 812: 5226, 806: 5227, 805: 5228, 804: 5229, 803: 5230, 802: 5231, 801: 5232, 800: 5233, 799: 5234, 798: 5235, 797: 5236, 796: 5237, 795: 5238, 794: 5239, 793: 5240, 792: 5241, 791: 5242, 790: 5243, 789: 5244, 788: 5245, 786: 5246, 787: 5247, 785: 5248, 784: 5249, 783: 5250, 782: 5251, 781: 5252, 780: 5253, 779: 5254, 778: 5255, 777: 5256, 775: 5257, 776: 5258, 774: 5259, 773: 5260, 772: 5261, 771: 5262, 770: 5263, 769: 5264, 768: 5265, 767: 5266, 766: 5267, 765: 5268, 764: 5269, 763: 5270, 762: 5271, 761: 5272, 760: 5273, 759: 5274, 758: 5275, 757: 5276, 756: 5277, 755: 5278, 754: 5279, 753: 5280, 752: 5281, 751: 5282, 750: 5283, 749: 5284, 748: 5285, 855: 5286, 747: 5287, 746: 5288, 745: 5289, 744: 5290, 743: 5291, 742: 5292, 741: 5293, 740: 5294, 739: 5295, 738: 5296, 737: 5297, 736: 5298, 735: 5299, 734: 5300, 733: 5301, 732: 5302, 731: 5303, 730: 5304, 729: 5305, 728: 5306, 727: 5307, 726: 5308, 725: 5309, 724: 5310, 723: 5311, 722: 5312, 721: 5313, 720: 5314, 719: 5315, 718: 5316, 717: 5317, 716: 5318, 715: 5319, 714: 5320, 713: 5321, 712: 5322, 711: 5323, 710: 5324, 709: 5325, 708: 5326, 707: 5327, 706: 5328, 705: 5329, 704: 5330, 703: 5331, 702: 5332, 701: 5333, 700: 5334, 699: 5335, 698: 5336, 697: 5337, 696: 5338, 695: 5339, 694: 5340, 693: 5341, 692: 5342, 691: 5343, 690: 5344, 689: 5345, 688: 5346, 687: 5347, 686: 5348, 685: 5349, 684: 5350, 682: 5351, 683: 5352, 681: 5353, 680: 5354, 679: 5355, 678: 5356, 677: 5357, 676: 5358, 675: 5359, 674: 5360, 673: 5361, 672: 5362, 671: 5363, 670: 5364, 669: 5365, 668: 5366, 667: 5367, 666: 5368, 665: 5369, 664: 5370, 663: 5371, 662: 5372, 661: 5373, 660: 5374, 659: 5375, 658: 5376, 657: 5377, 656: 5378, 655: 5379, 654: 5380, 653: 5381, 652: 5382, 651: 5383, 650: 5384, 649: 5385, 648: 5386, 647: 5387, 646: 5388, 645: 5389, 644: 5390, 643: 5391, 642: 5392, 641: 5393, 640: 5394, 639: 5395, 638: 5396, 637: 5397, 636: 5398, 635: 5399, 634: 5400, 633: 5401, 632: 5402, 631: 5403, 630: 5404, 628: 5405, 629: 5406, 627: 5407, 626: 5408, 625: 5409, 624: 5410, 623: 5411, 622: 5412, 621: 5413, 620: 5414, 619: 5415, 618: 5416, 617: 5417, 616: 5418, 615: 5419, 614: 5420, 613: 5421, 612: 5422, 611: 5423, 610: 5424, 609: 5425, 608: 5426, 607: 5427, 606: 5428, 605: 5429, 604: 5430, 603: 5431, 602: 5432, 601: 5433, 600: 5434, 599: 5435, 598: 5436, 597: 5437, 596: 5438, 595: 5439, 594: 5440, 593: 5441, 592: 5442, 591: 5443, 590: 5444, 589: 5445, 588: 5446, 587: 5447, 586: 5448, 585: 5449, 584: 5450, 583: 5451, 582: 5452}} {'user_id': {0: 6040, 1: 6039, 2: 6038, 3: 6037, 4: 6036, 5: 6035, 6: 6034, 7: 6033, 8: 6032, 9: 6031, 10: 6030, 11: 6029, 12: 6028, 13: 6027, 14: 6026, 15: 6025, 16: 6024, 17: 6023, 18: 6022, 19: 6021, 20: 6020, 21: 6019, 22: 6018, 23: 6017, 24: 6016, 25: 6015, 26: 6014, 27: 6013, 28: 6012, 29: 6011, 30: 6010, 31: 6009, 32: 6007, 33: 6008, 34: 6006, 35: 6005, 36: 6004, 37: 6003, 38: 6002, 39: 6001, 40: 6000, 41: 5999, 42: 5998, 43: 5997, 44: 5996, 45: 5995, 46: 5994, 47: 5993, 48: 5992, 49: 5991, 50: 5990, 51: 5989, 52: 5988, 53: 5987, 54: 5986, 55: 5984, 56: 5983, 57: 5982, 58: 5981, 59: 5979, 60: 5980, 61: 5978, 62: 5977, 63: 5976, 64: 5975, 65: 5974, 66: 5973, 67: 5972, 68: 5971, 69: 5970, 70: 5969, 71: 5968, 72: 5967, 73: 5966, 74: 5965, 75: 5964, 76: 5963, 77: 5962, 78: 5961, 79: 5960, 80: 5959, 81: 5958, 82: 5957, 83: 5956, 84: 5955, 85: 5954, 86: 5953, 87: 5952, 88: 5951, 89: 5950, 90: 5948, 91: 5947, 92: 5946, 93: 5945, 94: 5944, 95: 5943, 96: 5942, 97: 5941, 98: 5940, 99: 5939, 100: 5938, 101: 5937, 102: 5949, 103: 5936, 104: 5935, 105: 5934, 106: 5933, 107: 5932, 108: 5931, 109: 5930, 110: 5929, 111: 5928, 112: 5927, 113: 5926, 114: 5925, 115: 5924, 116: 5923, 117: 5922, 118: 5921, 119: 5920, 120: 5919, 121: 5918, 122: 5917, 123: 5916, 124: 5915, 125: 5914, 126: 5913, 127: 5912, 128: 5911, 129: 5910, 130: 5909, 131: 5908, 132: 5907, 133: 5906, 134: 5905, 135: 5904, 136: 5903, 137: 5902, 138: 5901, 139: 5900, 140: 5899, 141: 5898, 142: 5897, 143: 5896, 144: 5895, 145: 5894, 146: 5893, 147: 5892, 148: 5891, 149: 5890, 150: 5889, 151: 5888, 152: 5887, 153: 5886, 154: 5885, 155: 5884, 156: 5883, 157: 5881, 158: 5882, 159: 5880, 160: 5879, 161: 5878, 162: 5877, 163: 5876, 164: 5875, 165: 5874, 166: 5873, 167: 5872, 168: 5871, 169: 5870, 170: 5869, 171: 5868, 172: 5867, 173: 5866, 174: 5865, 175: 5864, 176: 5863, 177: 5862, 178: 5861, 179: 5860, 180: 5859, 181: 5858, 182: 5857, 183: 5856, 184: 5855, 185: 5854, 186: 5853, 187: 5852, 188: 5851, 189: 5850, 190: 5849, 191: 5848, 192: 5847, 193: 5846, 194: 5845, 195: 5844, 196: 5843, 197: 5842, 198: 5841, 199: 5840, 200: 5839, 201: 5838, 202: 5837, 203: 5836, 204: 5835, 205: 5834, 206: 5833, 207: 5832, 208: 5831, 209: 5830, 210: 5829, 211: 5828, 212: 5827, 213: 5826, 214: 5825, 215: 5824, 216: 5823, 217: 5822, 218: 5821, 219: 5820, 220: 5819, 221: 5818, 222: 5817, 223: 5816, 224: 5815, 225: 5814, 226: 5813, 227: 5812, 228: 5811, 229: 5810, 230: 5809, 231: 5808, 232: 5807, 233: 5806, 234: 5805, 235: 5804, 236: 5803, 237: 5802, 238: 5801, 239: 5800, 240: 5799, 241: 5798, 242: 5797, 243: 5796, 244: 5795, 245: 5794, 246: 5793, 247: 5792, 248: 5791, 249: 5790, 250: 5789, 251: 5788, 252: 5787, 253: 5786, 254: 5785, 255: 5784, 256: 5783, 257: 5782, 258: 5781, 259: 5780, 260: 5779, 261: 5778, 262: 5777, 263: 5776, 264: 5775, 265: 5774, 266: 5773, 267: 5772, 268: 5771, 269: 5770, 270: 5769, 271: 5768, 272: 5767, 273: 5766, 274: 5765, 275: 5764, 276: 5763, 277: 5762, 278: 5761, 279: 5760, 280: 5759, 281: 5758, 282: 5757, 283: 5756, 284: 5755, 285: 5754, 286: 5753, 287: 5752, 288: 5751, 289: 5750, 290: 5749, 291: 5748, 292: 5747, 293: 5746, 294: 5745, 295: 5744, 296: 5743, 297: 5742, 298: 5741, 299: 5740, 300: 5739, 301: 5738, 302: 5737, 303: 5736, 304: 5735, 305: 5734, 306: 5733, 307: 5732, 308: 5731, 309: 5730, 310: 5729, 311: 5728, 312: 5727, 313: 5726, 314: 5725, 315: 5724, 316: 5723, 317: 5722, 318: 5721, 319: 5720, 320: 5719, 321: 5718, 322: 5717, 323: 5716, 324: 5715, 325: 5714, 326: 5713, 327: 5712, 328: 5711, 329: 5710, 330: 5709, 331: 5708, 332: 5707, 333: 5706, 334: 5705, 335: 5704, 336: 5703, 337: 5702, 338: 5701, 339: 5700, 340: 5699, 341: 5698, 342: 5697, 343: 5696, 344: 5695, 345: 5694, 346: 5693, 347: 5692, 348: 5691, 349: 5689, 350: 5690, 351: 5688, 352: 5687, 353: 5686, 354: 5685, 355: 5684, 356: 5683, 357: 5682, 358: 5681, 359: 5680, 360: 5679, 361: 5678, 362: 5677, 363: 5676, 364: 5675, 365: 5674, 366: 5673, 367: 5672, 368: 5671, 369: 5670, 370: 5669, 371: 5668, 372: 5667, 373: 5666, 374: 5665, 375: 5664, 376: 5663, 377: 5662, 378: 5661, 379: 5660, 380: 5659, 381: 5658, 382: 5657, 383: 5656, 384: 5655, 385: 5654, 386: 5653, 387: 5652, 388: 5651, 389: 5650, 390: 5649, 391: 5648, 392: 5647, 393: 5646, 394: 5645, 395: 5644, 396: 5643, 397: 5642, 398: 5641, 399: 5640, 400: 5639, 401: 5638, 402: 5637, 403: 5636, 404: 5635, 405: 5634, 406: 5633, 407: 5632, 408: 5631, 409: 5630, 410: 5629, 411: 5628, 412: 5627, 413: 5626, 414: 5625, 415: 5624, 416: 5623, 417: 5622, 418: 5621, 419: 5620, 420: 5619, 421: 5618, 422: 5617, 423: 5616, 424: 5615, 425: 5614, 426: 5613, 427: 5612, 428: 5611, 429: 5610, 430: 5609, 431: 5608, 432: 5607, 433: 5606, 434: 5605, 435: 5604, 436: 5603, 437: 5602, 438: 5601, 439: 5600, 440: 5599, 441: 5598, 442: 5597, 443: 5596, 444: 5595, 445: 5594, 446: 5593, 447: 5592, 448: 5591, 449: 5590, 450: 5589, 451: 5588, 452: 5587, 453: 5586, 454: 5585, 455: 5584, 456: 5583, 457: 5582, 458: 5581, 459: 5580, 460: 5578, 461: 5579, 462: 5577, 463: 5576, 464: 5575, 465: 5574, 466: 5573, 467: 5572, 468: 5571, 469: 5570, 470: 5569, 471: 5568, 472: 5567, 473: 5566, 474: 5565, 475: 5564, 476: 5563, 477: 5562, 478: 5561, 479: 5560, 480: 5559, 481: 5558, 482: 5557, 483: 5556, 484: 5555, 485: 5554, 486: 5553, 487: 5552, 488: 5551, 489: 5550, 490: 5549, 491: 5548, 492: 5547, 493: 5546, 494: 5545, 495: 5544, 496: 5543, 497: 5542, 498: 5541, 499: 5540, 500: 5539, 501: 5538, 502: 5537, 503: 5536, 504: 5535, 505: 5534, 506: 5533, 507: 5532, 508: 5531, 509: 5530, 510: 5529, 511: 5528, 512: 5527, 513: 5526, 514: 5525, 515: 5524, 516: 5523, 517: 5522, 518: 5521, 519: 5520, 520: 5519, 521: 5518, 522: 5517, 523: 5516, 524: 5515, 525: 5514, 526: 5513, 527: 5512, 528: 5511, 529: 5510, 530: 5509, 531: 5508, 532: 5507, 533: 5506, 534: 5505, 535: 5504, 536: 5503, 537: 5502, 538: 5501, 539: 5500, 540: 5499, 541: 5498, 542: 5497, 543: 5496, 544: 5495, 545: 5494, 546: 5493, 547: 5491, 548: 5490, 549: 5492, 550: 5489, 551: 5488, 552: 5487, 553: 5486, 554: 5485, 555: 5484, 556: 5483, 557: 5482, 558: 5481, 559: 5480, 560: 5479, 561: 5478, 562: 5477, 563: 5476, 564: 5474, 565: 5475, 566: 5473, 567: 5472, 568: 5471, 569: 5470, 570: 5469, 571: 5468, 572: 5466, 573: 5467, 574: 5465, 575: 5464, 576: 5463, 577: 5462, 578: 5461, 579: 5460, 580: 5459, 581: 5458, 582: 5457, 583: 5456, 584: 5455, 585: 5454, 586: 5453, 587: 5452, 588: 5451, 589: 5450, 590: 5449, 591: 5448, 592: 5447, 593: 5446, 594: 5445, 595: 5444, 596: 5443, 597: 5442, 598: 5441, 599: 5440, 600: 5439, 601: 5438, 602: 5437, 603: 5436, 604: 5435, 605: 5434, 606: 5433, 607: 5432, 608: 5431, 609: 5430, 610: 5429, 611: 5428, 612: 5427, 613: 5426, 614: 5425, 615: 5424, 616: 5423, 617: 5422, 618: 5421, 619: 5420, 620: 5419, 621: 5418, 622: 5417, 623: 5416, 624: 5415, 625: 5414, 626: 5413, 627: 5412, 628: 5411, 629: 5410, 630: 5409, 631: 5408, 632: 5407, 633: 5406, 634: 5405, 635: 5404, 636: 5403, 637: 5402, 638: 5401, 639: 5400, 640: 5399, 641: 5398, 642: 5397, 643: 5396, 644: 5395, 645: 5394, 646: 5393, 647: 5392, 648: 5391, 649: 5390, 650: 5389, 651: 5388, 652: 5387, 653: 5386, 654: 5385, 655: 5384, 656: 5383, 657: 5382, 658: 5381, 659: 5380, 660: 5379, 661: 5378, 662: 5377, 663: 5376, 664: 5375, 665: 5374, 666: 5373, 667: 5372, 668: 5371, 669: 5370, 670: 5369, 671: 5368, 672: 5366, 673: 5367, 674: 5365, 675: 5364, 676: 5363, 677: 5362, 678: 5361, 679: 5360, 680: 5359, 681: 5358, 682: 5357, 683: 5355, 684: 5356, 685: 5354, 686: 5353, 687: 5352, 688: 5985, 689: 5351, 690: 5350, 691: 5349, 692: 5348, 693: 5347, 694: 5346, 695: 5345, 696: 5344, 697: 5343, 698: 5342, 699: 5341, 700: 5340, 701: 5339, 702: 5338, 703: 5337, 704: 5336, 705: 5335, 706: 5334, 707: 5333, 708: 5332, 709: 5331, 710: 5330, 711: 5329, 712: 5328, 713: 5327, 714: 5326, 715: 5325, 716: 5324, 717: 5323, 718: 5322, 719: 5321, 720: 5320, 721: 5319, 722: 5318, 723: 5317, 724: 5316, 725: 5315, 726: 5314, 727: 5313, 728: 5312, 729: 5311, 730: 5310, 731: 5309, 732: 5308, 733: 5307, 734: 5306, 735: 5305, 736: 5304, 737: 5303, 738: 5302, 739: 5301, 740: 5300, 741: 5299, 742: 5298, 743: 5297, 744: 5296, 745: 5295, 746: 5294, 747: 5293, 748: 5292, 749: 5291, 750: 5290, 751: 5289, 752: 5288, 753: 5287, 754: 5286, 755: 5285, 756: 5284, 757: 5283, 758: 5282, 759: 5281, 760: 5280, 761: 5279, 762: 5278, 763: 5277, 764: 5276, 765: 5275, 766: 5274, 767: 5273, 768: 5272, 769: 5271, 770: 5270, 771: 5269, 772: 5268, 773: 5267, 774: 5266, 775: 5265, 776: 5264, 777: 5263, 778: 5262, 779: 5261, 780: 5260, 781: 5259, 782: 5258, 783: 5257, 784: 5256, 785: 5255, 786: 5254, 787: 5253, 788: 5252, 789: 5251, 790: 5250, 791: 5249, 792: 5248, 793: 5247, 794: 5246, 795: 5245, 796: 5244, 797: 5243, 798: 5242, 799: 5241, 800: 5240, 801: 5239, 802: 5238, 803: 5237, 804: 5236, 805: 5235, 806: 5234, 807: 5233, 808: 5232, 809: 5231, 810: 5230, 811: 5229, 812: 5228, 813: 5227, 814: 5225, 815: 5224, 816: 5223, 817: 5222, 818: 5221, 819: 5220, 820: 5219, 821: 5218, 822: 5217, 823: 5216, 824: 5215, 825: 5214, 826: 5213, 827: 5226, 828: 5212, 829: 5211, 830: 5210, 831: 5209, 832: 5208, 833: 5207, 834: 5206, 835: 5205, 836: 5204, 837: 5203, 838: 5202, 839: 5201, 840: 5200, 841: 5199, 842: 5198, 843: 5197, 844: 5196, 845: 5195, 846: 5194, 847: 5193, 848: 5192, 849: 5191, 850: 5190, 851: 5189, 852: 5188, 853: 5187, 854: 5186, 855: 5185, 856: 5184, 857: 5183, 858: 5182, 859: 5181, 860: 5180, 861: 5179, 862: 5178, 863: 5177, 864: 5176, 865: 5175, 866: 5174, 867: 5173, 868: 5171, 869: 5170, 870: 5169, 871: 5168, 872: 5167, 873: 5165, 874: 5166, 875: 5164, 876: 5163, 877: 5162, 878: 5161, 879: 5160, 880: 5159, 881: 5158, 882: 5156, 883: 5157, 884: 5155, 885: 5154, 886: 5153, 887: 5152, 888: 5151, 889: 5150, 890: 5149, 891: 5148, 892: 5147, 893: 5146, 894: 5145, 895: 5144, 896: 5143, 897: 5142, 898: 5141, 899: 5140, 900: 5139, 901: 5138, 902: 5137, 903: 5136, 904: 5135, 905: 5134, 906: 5133, 907: 5132, 908: 5131, 909: 5130, 910: 5129, 911: 5128, 912: 5127, 913: 5126, 914: 5125, 915: 5124, 916: 5123, 917: 5122, 918: 5121, 919: 5120, 920: 5119, 921: 5118, 922: 5117, 923: 5116, 924: 5115, 925: 5114, 926: 5113, 927: 5112, 928: 5111, 929: 5110, 930: 5109, 931: 5108, 932: 5107, 933: 5106, 934: 5105, 935: 5104, 936: 5103, 937: 5102, 938: 5100, 939: 5101, 940: 5099, 941: 5098, 942: 5097, 943: 5096, 944: 5095, 945: 5094, 946: 5093, 947: 5092, 948: 5091, 949: 5089, 950: 5090, 951: 5088, 952: 5087, 953: 5086, 954: 5085, 955: 5084, 956: 5083, 957: 5082, 958: 5081, 959: 5080, 960: 5079, 961: 5078, 962: 5077, 963: 5076, 964: 5075, 965: 5074, 966: 5073, 967: 5072, 968: 5071, 969: 5070, 970: 5068, 971: 5067, 972: 5066, 973: 5065, 974: 5064, 975: 5063, 976: 5062, 977: 5061, 978: 5060, 979: 5058, 980: 5059, 981: 5057, 982: 5056, 983: 5055, 984: 5054, 985: 5053, 986: 5052, 987: 5051, 988: 5050, 989: 5049, 990: 5048, 991: 5047, 992: 5046, 993: 5045, 994: 5044, 995: 5043, 996: 5042, 997: 5041, 998: 5040, 999: 5039, 1000: 5038, 1001: 5037, 1002: 5036, 1003: 5035, 1004: 5034, 1005: 5033, 1006: 5032, 1007: 5031, 1008: 5030, 1009: 5029, 1010: 5028, 1011: 5027, 1012: 5026, 1013: 5025, 1014: 5069, 1015: 5024, 1016: 5023, 1017: 5022, 1018: 5021, 1019: 5020, 1020: 5019, 1021: 5018, 1022: 5017, 1023: 5016, 1024: 5015, 1025: 5013, 1026: 5014, 1027: 5012, 1028: 5011, 1029: 5010, 1030: 5008, 1031: 5009, 1032: 5007, 1033: 5006, 1034: 5005, 1035: 5004, 1036: 5003, 1037: 5002, 1038: 5001, 1039: 5000, 1040: 4999, 1041: 4998, 1042: 4997, 1043: 4996, 1044: 4995, 1045: 4993, 1046: 4994, 1047: 4992, 1048: 4991, 1049: 4990, 1050: 4989, 1051: 4988, 1052: 4986, 1053: 4987, 1054: 4985, 1055: 4984, 1056: 4983, 1057: 4982, 1058: 4981, 1059: 4980, 1060: 4979, 1061: 4978, 1062: 4977, 1063: 4976, 1064: 4975, 1065: 4974, 1066: 4973, 1067: 4972, 1068: 4971, 1069: 4970, 1070: 4968, 1071: 4969, 1072: 4967, 1073: 4966, 1074: 4965, 1075: 4964, 1076: 4963, 1077: 4962, 1078: 4961, 1079: 4960, 1080: 4959, 1081: 4958, 1082: 4957, 1083: 4956, 1084: 4955, 1085: 4954, 1086: 4953, 1087: 4952, 1088: 4951, 1089: 4950, 1090: 4949, 1091: 4948, 1092: 4947, 1093: 4946, 1094: 4945, 1095: 4944, 1096: 4943, 1097: 4942, 1098: 4941, 1099: 4940, 1100: 4939, 1101: 4938, 1102: 4937, 1103: 4936, 1104: 4935, 1105: 4934, 1106: 4933, 1107: 4932, 1108: 4931, 1109: 4930, 1110: 4929, 1111: 4928, 1112: 4927, 1113: 4926, 1114: 4925, 1115: 4924, 1116: 4923, 1117: 4922, 1118: 4921, 1119: 4920, 1120: 4919, 1121: 4918, 1122: 4917, 1123: 4916, 1124: 4915, 1125: 4914, 1126: 4913, 1127: 4912, 1128: 4911, 1129: 4910, 1130: 4909, 1131: 4908, 1132: 4907, 1133: 4906, 1134: 4905, 1135: 4904, 1136: 4903, 1137: 4902, 1138: 4901, 1139: 4900, 1140: 4899, 1141: 4898, 1142: 4897, 1143: 5172, 1144: 4895, 1145: 4894, 1146: 4893, 1147: 4892, 1148: 4891, 1149: 4890, 1150: 4889, 1151: 4888, 1152: 4887, 1153: 4886, 1154: 4885, 1155: 4884, 1156: 4883, 1157: 4882, 1158: 4881, 1159: 4880, 1160: 4879, 1161: 4878, 1162: 4877, 1163: 4876, 1164: 4875, 1165: 4874, 1166: 4873, 1167: 4871, 1168: 4872, 1169: 4870, 1170: 4869, 1171: 4868, 1172: 4867, 1173: 4866, 1174: 4865, 1175: 4864, 1176: 4863, 1177: 4862, 1178: 4861, 1179: 4860, 1180: 4859, 1181: 4858, 1182: 4857, 1183: 4856, 1184: 4855, 1185: 4854, 1186: 4853, 1187: 4852, 1188: 4851, 1189: 4849, 1190: 4848, 1191: 4850, 1192: 4847, 1193: 4846, 1194: 4845, 1195: 4844, 1196: 4843, 1197: 4842, 1198: 4841, 1199: 4840, 1200: 4839, 1201: 4838, 1202: 4837, 1203: 4836, 1204: 4835, 1205: 4834, 1206: 4833, 1207: 4832, 1208: 4831, 1209: 4830, 1210: 4829, 1211: 4828, 1212: 4827, 1213: 4826, 1214: 4825, 1215: 4824, 1216: 4823, 1217: 4822, 1218: 4821, 1219: 4820, 1220: 4819, 1221: 4818, 1222: 4817, 1223: 4816, 1224: 4815, 1225: 4814, 1226: 4813, 1227: 4812, 1228: 4811, 1229: 4810, 1230: 4809, 1231: 4808, 1232: 4807, 1233: 4806, 1234: 4805, 1235: 4804, 1236: 4803, 1237: 4802, 1238: 4801, 1239: 4800, 1240: 4799, 1241: 4798, 1242: 4797, 1243: 4796, 1244: 4795, 1245: 4794, 1246: 4793, 1247: 4792, 1248: 4791, 1249: 4790, 1250: 4788, 1251: 4789, 1252: 4787, 1253: 4786, 1254: 4785, 1255: 4784, 1256: 4783, 1257: 4782, 1258: 4781, 1259: 4780, 1260: 4779, 1261: 4778, 1262: 4777, 1263: 4776, 1264: 4775, 1265: 4774, 1266: 4773, 1267: 4772, 1268: 4771, 1269: 4770, 1270: 4769, 1271: 4768, 1272: 4767, 1273: 4766, 1274: 4765, 1275: 4764, 1276: 4763, 1277: 4762, 1278: 4761, 1279: 4760, 1280: 4759, 1281: 4758, 1282: 4757, 1283: 4756, 1284: 4755, 1285: 4754, 1286: 4753, 1287: 4752, 1288: 4751, 1289: 4750, 1290: 4749, 1291: 4748, 1292: 4747, 1293: 4746, 1294: 4745, 1295: 4744, 1296: 4743, 1297: 4742, 1298: 4741, 1299: 4740, 1300: 4739, 1301: 4738, 1302: 4737, 1303: 4736, 1304: 4735, 1305: 4734, 1306: 4733, 1307: 4732, 1308: 4731, 1309: 4730, 1310: 4729, 1311: 4728, 1312: 4727, 1313: 4726, 1314: 4725, 1315: 4724, 1316: 4723, 1317: 4722, 1318: 4721, 1319: 4720, 1320: 4719, 1321: 4718, 1322: 4716, 1323: 4715, 1324: 4714, 1325: 4713, 1326: 4712, 1327: 4711, 1328: 4717, 1329: 4710, 1330: 4709, 1331: 4708, 1332: 4707, 1333: 4706, 1334: 4705, 1335: 4704, 1336: 4703, 1337: 4702, 1338: 4701, 1339: 4700, 1340: 4699, 1341: 4698, 1342: 4697, 1343: 4696, 1344: 4695, 1345: 4694, 1346: 4693, 1347: 4692, 1348: 4691, 1349: 4690, 1350: 4689, 1351: 4688, 1352: 4687, 1353: 4686, 1354: 4685, 1355: 4684, 1356: 4683, 1357: 4682, 1358: 4681, 1359: 4680, 1360: 4679, 1361: 4678, 1362: 4677, 1363: 4676, 1364: 4675, 1365: 4674, 1366: 4673, 1367: 4672, 1368: 4671, 1369: 4670, 1370: 4669, 1371: 4668, 1372: 4896, 1373: 4667, 1374: 4666, 1375: 4665, 1376: 4664, 1377: 4663, 1378: 4662, 1379: 4661, 1380: 4660, 1381: 4659, 1382: 4658, 1383: 4657, 1384: 4656, 1385: 4655, 1386: 4654, 1387: 4653, 1388: 4652, 1389: 4651, 1390: 4650, 1391: 4649, 1392: 4648, 1393: 4647, 1394: 4646, 1395: 4645, 1396: 4644, 1397: 4643, 1398: 4642, 1399: 4641, 1400: 4640, 1401: 4639, 1402: 4638, 1403: 4637, 1404: 4636, 1405: 4635, 1406: 4634, 1407: 4633, 1408: 4632, 1409: 4631, 1410: 4630, 1411: 4629, 1412: 4628, 1413: 4627, 1414: 4626, 1415: 4625, 1416: 4624, 1417: 4622, 1418: 4621, 1419: 4620, 1420: 4619, 1421: 4618, 1422: 4617, 1423: 4616, 1424: 4615, 1425: 4614, 1426: 4613, 1427: 4612, 1428: 4611, 1429: 4610, 1430: 4609, 1431: 4608, 1432: 4607, 1433: 4606, 1434: 4605, 1435: 4604, 1436: 4603, 1437: 4602, 1438: 4601, 1439: 4600, 1440: 4599, 1441: 4598, 1442: 4623, 1443: 4597, 1444: 4596, 1445: 4595, 1446: 4594, 1447: 4593, 1448: 4592, 1449: 4591, 1450: 4590, 1451: 4589, 1452: 4588, 1453: 4587, 1454: 4586, 1455: 4585, 1456: 4584, 1457: 4583, 1458: 4582, 1459: 4581, 1460: 4580, 1461: 4579, 1462: 4578, 1463: 4577, 1464: 4575, 1465: 4574, 1466: 4573, 1467: 4572, 1468: 4576, 1469: 4571, 1470: 4570, 1471: 4569, 1472: 4568, 1473: 4567, 1474: 4566, 1475: 4565, 1476: 4564, 1477: 4563, 1478: 4562, 1479: 4561, 1480: 4560, 1481: 4559, 1482: 4558, 1483: 4557, 1484: 4556, 1485: 4555, 1486: 4554, 1487: 4553, 1488: 4552, 1489: 4551, 1490: 4550, 1491: 4549, 1492: 4548, 1493: 4547, 1494: 4546, 1495: 4545, 1496: 4544, 1497: 4543, 1498: 4542, 1499: 4541, 1500: 4540, 1501: 4539, 1502: 4538, 1503: 4537, 1504: 4536, 1505: 4535, 1506: 4534, 1507: 4533, 1508: 4532, 1509: 4531, 1510: 4530, 1511: 4529, 1512: 4528, 1513: 4527, 1514: 4526, 1515: 4525, 1516: 4524, 1517: 4523, 1518: 4522, 1519: 4521, 1520: 4520, 1521: 4519, 1522: 4518, 1523: 4517, 1524: 4516, 1525: 4513, 1526: 4512, 1527: 4511, 1528: 4510, 1529: 4509, 1530: 4508, 1531: 4507, 1532: 4506, 1533: 4505, 1534: 4503, 1535: 4502, 1536: 4501, 1537: 4515, 1538: 4500, 1539: 4499, 1540: 4498, 1541: 4497, 1542: 4496, 1543: 4495, 1544: 4494, 1545: 4493, 1546: 4492, 1547: 4491, 1548: 4490, 1549: 4489, 1550: 4488, 1551: 4504, 1552: 4487, 1553: 4486, 1554: 4485, 1555: 4484, 1556: 4483, 1557: 4482, 1558: 4481, 1559: 4480, 1560: 4479, 1561: 4478, 1562: 4477, 1563: 4476, 1564: 4475, 1565: 4474, 1566: 4473, 1567: 4471, 1568: 4472, 1569: 4470, 1570: 4469, 1571: 4468, 1572: 4467, 1573: 4466, 1574: 4465, 1575: 4464, 1576: 4463, 1577: 4462, 1578: 4461, 1579: 4460, 1580: 4459, 1581: 4458, 1582: 4457, 1583: 4456, 1584: 4455, 1585: 4454, 1586: 4453, 1587: 4451, 1588: 4452, 1589: 4449, 1590: 4450, 1591: 4448, 1592: 4447, 1593: 4446, 1594: 4445, 1595: 4444, 1596: 4443, 1597: 4442, 1598: 4441, 1599: 4440, 1600: 4439, 1601: 4438, 1602: 4437, 1603: 4436, 1604: 4435, 1605: 4434, 1606: 4433, 1607: 4432, 1608: 4431, 1609: 4430, 1610: 4429, 1611: 4428, 1612: 4427, 1613: 4426, 1614: 4425, 1615: 4424, 1616: 4423, 1617: 4422, 1618: 4421, 1619: 4420, 1620: 4419, 1621: 4418, 1622: 4417, 1623: 4416, 1624: 4415, 1625: 4414, 1626: 4413, 1627: 4412, 1628: 4411, 1629: 4410, 1630: 4409, 1631: 4408, 1632: 4407, 1633: 4406, 1634: 4405, 1635: 4404, 1636: 4403, 1637: 4402, 1638: 4401, 1639: 4398, 1640: 4396, 1641: 4397, 1642: 4399, 1643: 4400, 1644: 4395, 1645: 4394, 1646: 4392, 1647: 4393, 1648: 4391, 1649: 4390, 1650: 4389, 1651: 4388, 1652: 4386, 1653: 4387, 1654: 4385, 1655: 4384, 1656: 4383, 1657: 4382, 1658: 4381, 1659: 4380, 1660: 4379, 1661: 4378, 1662: 4377, 1663: 4376, 1664: 4375, 1665: 4374, 1666: 4373, 1667: 4372, 1668: 4371, 1669: 4370, 1670: 4369, 1671: 4368, 1672: 4367, 1673: 4366, 1674: 4365, 1675: 4364, 1676: 4363, 1677: 4362, 1678: 4361, 1679: 4360, 1680: 4359, 1681: 4358, 1682: 4357, 1683: 4356, 1684: 4355, 1685: 4354, 1686: 4353, 1687: 4352, 1688: 4351, 1689: 4350, 1690: 4349, 1691: 4348, 1692: 4347, 1693: 4346, 1694: 4345, 1695: 4344, 1696: 4343, 1697: 4342, 1698: 4341, 1699: 4340, 1700: 4339, 1701: 4338, 1702: 4337, 1703: 4336, 1704: 4335, 1705: 4334, 1706: 4333, 1707: 4332, 1708: 4331, 1709: 4330, 1710: 4329, 1711: 4328, 1712: 4327, 1713: 4326, 1714: 4325, 1715: 4324, 1716: 4323, 1717: 4322, 1718: 4321, 1719: 4320, 1720: 4319, 1721: 4317, 1722: 4316, 1723: 4315, 1724: 4314, 1725: 4313, 1726: 4311, 1727: 4312, 1728: 4310, 1729: 4309, 1730: 4308, 1731: 4307, 1732: 4306, 1733: 4305, 1734: 4304, 1735: 4303, 1736: 4514, 1737: 4302, 1738: 4301, 1739: 4300, 1740: 4299, 1741: 4298, 1742: 4297, 1743: 4296, 1744: 4295, 1745: 4293, 1746: 4294, 1747: 4292, 1748: 4291, 1749: 4290, 1750: 4289, 1751: 4288, 1752: 4287, 1753: 4286, 1754: 4285, 1755: 4284, 1756: 4283, 1757: 4282, 1758: 4281, 1759: 4280, 1760: 4279, 1761: 4278, 1762: 4277, 1763: 4276, 1764: 4275, 1765: 4274, 1766: 4272, 1767: 4273, 1768: 4271, 1769: 4269, 1770: 4270, 1771: 4268, 1772: 4267, 1773: 4266, 1774: 4265, 1775: 4264, 1776: 4263, 1777: 4262, 1778: 4261, 1779: 4260, 1780: 4259, 1781: 4258, 1782: 4256, 1783: 4257, 1784: 4255, 1785: 4254, 1786: 4252, 1787: 4253, 1788: 4251, 1789: 4250, 1790: 4249, 1791: 4248, 1792: 4247, 1793: 4246, 1794: 4245, 1795: 4244, 1796: 4242, 1797: 4241, 1798: 4240, 1799: 4239, 1800: 4238, 1801: 4243, 1802: 4237, 1803: 4236, 1804: 4235, 1805: 4234, 1806: 4233, 1807: 4232, 1808: 4231, 1809: 4230, 1810: 4229, 1811: 4227, 1812: 4226, 1813: 4225, 1814: 4228, 1815: 4224, 1816: 4222, 1817: 4223, 1818: 4221, 1819: 4220, 1820: 4219, 1821: 4218, 1822: 4217, 1823: 4216, 1824: 4215, 1825: 4214, 1826: 4213, 1827: 4212, 1828: 4211, 1829: 4210, 1830: 4209, 1831: 4208, 1832: 4206, 1833: 4205, 1834: 4207, 1835: 4204, 1836: 4202, 1837: 4203, 1838: 4201, 1839: 4200, 1840: 4199, 1841: 4198, 1842: 4197, 1843: 4196, 1844: 4195, 1845: 4194, 1846: 4193, 1847: 4192, 1848: 4191, 1849: 4190, 1850: 4189, 1851: 4188, 1852: 4187, 1853: 4186, 1854: 4184, 1855: 4183, 1856: 4182, 1857: 4181, 1858: 4180, 1859: 4178, 1860: 4179, 1861: 4177, 1862: 4176, 1863: 4175, 1864: 4174, 1865: 4173, 1866: 4172, 1867: 4171, 1868: 4170, 1869: 4169, 1870: 4167, 1871: 4165, 1872: 4166, 1873: 4168, 1874: 4164, 1875: 4163, 1876: 4162, 1877: 4161, 1878: 4160, 1879: 4185, 1880: 4159, 1881: 4158, 1882: 4157, 1883: 4155, 1884: 4156, 1885: 4318, 1886: 4154, 1887: 4153, 1888: 4152, 1889: 4151, 1890: 4150, 1891: 4149, 1892: 4148, 1893: 4147, 1894: 4146, 1895: 4145, 1896: 4144, 1897: 4143, 1898: 4142, 1899: 4141, 1900: 4140, 1901: 4138, 1902: 4139, 1903: 4137, 1904: 4136, 1905: 4135, 1906: 4134, 1907: 4133, 1908: 4132, 1909: 4131, 1910: 4130, 1911: 4129, 1912: 4128, 1913: 4127, 1914: 4126, 1915: 4125, 1916: 4124, 1917: 4122, 1918: 4123, 1919: 4121, 1920: 4120, 1921: 4119, 1922: 4118, 1923: 4117, 1924: 4116, 1925: 4115, 1926: 4114, 1927: 4113, 1928: 4112, 1929: 4111, 1930: 4110, 1931: 4109, 1932: 4108, 1933: 4107, 1934: 4106, 1935: 4105, 1936: 4104, 1937: 4103, 1938: 4102, 1939: 4101, 1940: 4100, 1941: 4099, 1942: 4098, 1943: 4097, 1944: 4096, 1945: 4095, 1946: 4094, 1947: 4093, 1948: 4092, 1949: 4091, 1950: 4090, 1951: 4089, 1952: 4088, 1953: 4087, 1954: 4086, 1955: 4085, 1956: 4084, 1957: 4083, 1958: 4082, 1959: 4081, 1960: 4080, 1961: 4079, 1962: 4077, 1963: 4078, 1964: 4076, 1965: 4075, 1966: 4074, 1967: 4073, 1968: 4072, 1969: 4071, 1970: 4070, 1971: 4069, 1972: 4068, 1973: 4067, 1974: 4066, 1975: 4065, 1976: 4064, 1977: 4063, 1978: 4062, 1979: 4061, 1980: 4060, 1981: 4059, 1982: 4058, 1983: 4057, 1984: 4056, 1985: 4055, 1986: 4053, 1987: 4054, 1988: 4052, 1989: 4051, 1990: 4050, 1991: 4049, 1992: 4048, 1993: 4047, 1994: 4046, 1995: 4045, 1996: 4044, 1997: 4043, 1998: 4042, 1999: 4041, 2000: 4040, 2001: 4039, 2002: 4038, 2003: 4037, 2004: 4036, 2005: 4035, 2006: 4034, 2007: 4033, 2008: 4032, 2009: 4031, 2010: 4030, 2011: 4029, 2012: 4028, 2013: 4027, 2014: 4026, 2015: 4025, 2016: 4024, 2017: 4023, 2018: 4022, 2019: 4021, 2020: 4020, 2021: 4019, 2022: 4018, 2023: 4017, 2024: 4016, 2025: 4015, 2026: 4014, 2027: 4013, 2028: 4012, 2029: 4011, 2030: 4010, 2031: 4009, 2032: 4008, 2033: 4007, 2034: 4006, 2035: 4005, 2036: 4004, 2037: 4003, 2038: 4002, 2039: 4001, 2040: 4000, 2041: 3999, 2042: 3998, 2043: 3997, 2044: 3996, 2045: 3995, 2046: 3994, 2047: 3993, 2048: 3992, 2049: 3991, 2050: 3990, 2051: 3989, 2052: 3988, 2053: 3987, 2054: 3986, 2055: 3985, 2056: 3984, 2057: 3983, 2058: 3982, 2059: 3981, 2060: 3980, 2061: 3979, 2062: 3978, 2063: 3977, 2064: 3976, 2065: 3975, 2066: 3974, 2067: 3973, 2068: 3972, 2069: 3971, 2070: 3970, 2071: 3969, 2072: 3968, 2073: 3967, 2074: 3966, 2075: 3965, 2076: 3964, 2077: 3963, 2078: 3962, 2079: 3961, 2080: 3960, 2081: 3959, 2082: 3958, 2083: 3957, 2084: 3956, 2085: 3955, 2086: 3954, 2087: 3953, 2088: 3952, 2089: 3951, 2090: 3950, 2091: 3949, 2092: 3948, 2093: 3947, 2094: 3946, 2095: 3945, 2096: 3944, 2097: 3943, 2098: 3942, 2099: 3941, 2100: 3940, 2101: 3939, 2102: 3938, 2103: 3937, 2104: 3936, 2105: 3935, 2106: 3934, 2107: 3933, 2108: 3932, 2109: 3931, 2110: 3930, 2111: 3929, 2112: 3928, 2113: 3927, 2114: 3926, 2115: 3925, 2116: 3924, 2117: 3922, 2118: 3923, 2119: 3921, 2120: 3920, 2121: 3919, 2122: 3918, 2123: 3917, 2124: 3916, 2125: 3914, 2126: 3915, 2127: 3913, 2128: 3912, 2129: 3911, 2130: 3910, 2131: 3909, 2132: 3908, 2133: 3907, 2134: 3906, 2135: 3905, 2136: 3904, 2137: 3903, 2138: 3902, 2139: 3901, 2140: 3900, 2141: 3899, 2142: 3898, 2143: 3897, 2144: 3896, 2145: 3895, 2146: 3894, 2147: 3893, 2148: 3892, 2149: 3891, 2150: 3890, 2151: 3889, 2152: 3887, 2153: 3886, 2154: 3885, 2155: 3884, 2156: 3883, 2157: 3882, 2158: 3881, 2159: 3880, 2160: 3879, 2161: 3878, 2162: 3877, 2163: 3876, 2164: 3875, 2165: 3874, 2166: 3873, 2167: 3872, 2168: 3871, 2169: 3870, 2170: 3869, 2171: 3868, 2172: 3867, 2173: 3866, 2174: 3865, 2175: 3864, 2176: 3863, 2177: 3862, 2178: 3861, 2179: 3860, 2180: 3859, 2181: 3857, 2182: 3858, 2183: 3856, 2184: 3855, 2185: 3854, 2186: 3853, 2187: 3852, 2188: 3850, 2189: 3851, 2190: 3849, 2191: 3848, 2192: 3847, 2193: 3846, 2194: 3845, 2195: 3844, 2196: 3843, 2197: 3842, 2198: 3841, 2199: 3839, 2200: 3840, 2201: 3838, 2202: 3837, 2203: 3836, 2204: 3835, 2205: 3834, 2206: 3833, 2207: 3832, 2208: 3831, 2209: 3830, 2210: 3829, 2211: 3828, 2212: 3827, 2213: 3826, 2214: 3825, 2215: 3824, 2216: 3823, 2217: 3822, 2218: 3821, 2219: 3820, 2220: 3819, 2221: 3818, 2222: 3817, 2223: 3816, 2224: 3815, 2225: 3814, 2226: 3813, 2227: 3812, 2228: 3811, 2229: 3810, 2230: 3809, 2231: 3808, 2232: 3807, 2233: 3806, 2234: 3805, 2235: 3804, 2236: 3803, 2237: 3802, 2238: 3801, 2239: 3800, 2240: 3799, 2241: 3798, 2242: 3797, 2243: 3796, 2244: 3795, 2245: 3794, 2246: 3793, 2247: 3792, 2248: 3791, 2249: 3790, 2250: 3788, 2251: 3789, 2252: 3787, 2253: 3786, 2254: 3785, 2255: 3784, 2256: 3782, 2257: 3783, 2258: 3781, 2259: 3780, 2260: 3779, 2261: 3778, 2262: 3777, 2263: 3776, 2264: 3775, 2265: 3774, 2266: 3773, 2267: 3772, 2268: 3771, 2269: 3770, 2270: 3769, 2271: 3768, 2272: 3767, 2273: 3766, 2274: 3765, 2275: 3764, 2276: 3763, 2277: 3762, 2278: 3761, 2279: 3760, 2280: 3759, 2281: 3758, 2282: 3757, 2283: 3756, 2284: 3755, 2285: 3754, 2286: 3753, 2287: 3752, 2288: 3751, 2289: 3750, 2290: 3749, 2291: 3748, 2292: 3747, 2293: 3746, 2294: 3888, 2295: 3745, 2296: 3744, 2297: 3743, 2298: 3742, 2299: 3741, 2300: 3740, 2301: 3739, 2302: 3738, 2303: 3737, 2304: 3736, 2305: 3735, 2306: 3734, 2307: 3733, 2308: 3732, 2309: 3731, 2310: 3730, 2311: 3729, 2312: 3728, 2313: 3727, 2314: 3725, 2315: 3726, 2316: 3724, 2317: 3722, 2318: 3721, 2319: 3720, 2320: 3719, 2321: 3718, 2322: 3717, 2323: 3716, 2324: 3715, 2325: 3714, 2326: 3713, 2327: 3712, 2328: 3711, 2329: 3710, 2330: 3709, 2331: 3708, 2332: 3707, 2333: 3706, 2334: 3705, 2335: 3704, 2336: 3703, 2337: 3702, 2338: 3701, 2339: 3700, 2340: 3699, 2341: 3698, 2342: 3697, 2343: 3696, 2344: 3695, 2345: 3694, 2346: 3693, 2347: 3692, 2348: 3691, 2349: 3690, 2350: 3689, 2351: 3688, 2352: 3687, 2353: 3686, 2354: 3685, 2355: 3684, 2356: 3683, 2357: 3682, 2358: 3681, 2359: 3680, 2360: 3679, 2361: 3678, 2362: 3677, 2363: 3676, 2364: 3675, 2365: 3674, 2366: 3673, 2367: 3672, 2368: 3671, 2369: 3670, 2370: 3669, 2371: 3668, 2372: 3667, 2373: 3666, 2374: 3665, 2375: 3664, 2376: 3663, 2377: 3662, 2378: 3661, 2379: 3660, 2380: 3659, 2381: 3658, 2382: 3657, 2383: 3656, 2384: 3655, 2385: 3654, 2386: 3653, 2387: 3652, 2388: 3651, 2389: 3650, 2390: 3649, 2391: 3648, 2392: 3647, 2393: 3646, 2394: 3645, 2395: 3644, 2396: 3643, 2397: 3642, 2398: 3641, 2399: 3640, 2400: 3639, 2401: 3638, 2402: 3637, 2403: 3636, 2404: 3635, 2405: 3634, 2406: 3633, 2407: 3632, 2408: 3631, 2409: 3630, 2410: 3629, 2411: 3628, 2412: 3627, 2413: 3626, 2414: 3625, 2415: 3624, 2416: 3623, 2417: 3622, 2418: 3621, 2419: 3620, 2420: 3619, 2421: 3618, 2422: 3617, 2423: 3616, 2424: 3615, 2425: 3613, 2426: 3614, 2427: 3612, 2428: 3611, 2429: 3610, 2430: 3609, 2431: 3608, 2432: 3606, 2433: 3607, 2434: 3605, 2435: 3604, 2436: 3603, 2437: 3601, 2438: 3600, 2439: 3599, 2440: 3598, 2441: 3597, 2442: 3596, 2443: 3595, 2444: 3594, 2445: 3593, 2446: 3592, 2447: 3591, 2448: 3590, 2449: 3589, 2450: 3588, 2451: 3587, 2452: 3586, 2453: 3585, 2454: 3584, 2455: 3583, 2456: 3582, 2457: 3581, 2458: 3580, 2459: 3579, 2460: 3578, 2461: 3577, 2462: 3576, 2463: 3575, 2464: 3574, 2465: 3573, 2466: 3572, 2467: 3571, 2468: 3570, 2469: 3569, 2470: 3568, 2471: 3567, 2472: 3566, 2473: 3565, 2474: 3564, 2475: 3563, 2476: 3562, 2477: 3561, 2478: 3560, 2479: 3559, 2480: 3558, 2481: 3557, 2482: 3556, 2483: 3555, 2484: 3554, 2485: 3553, 2486: 3552, 2487: 3551, 2488: 3550, 2489: 3549, 2490: 3548, 2491: 3547, 2492: 3546, 2493: 3545, 2494: 3544, 2495: 3543, 2496: 3542, 2497: 3541, 2498: 3540, 2499: 3539, 2500: 3538, 2501: 3537, 2502: 3536, 2503: 3535, 2504: 3534, 2505: 3533, 2506: 3532, 2507: 3530, 2508: 3529, 2509: 3528, 2510: 3527, 2511: 3526, 2512: 3525, 2513: 3524, 2514: 3523, 2515: 3531, 2516: 3522, 2517: 3521, 2518: 3520, 2519: 3519, 2520: 3518, 2521: 3517, 2522: 3516, 2523: 3515, 2524: 3514, 2525: 3513, 2526: 3512, 2527: 3511, 2528: 3510, 2529: 3509, 2530: 3508, 2531: 3507, 2532: 3506, 2533: 3505, 2534: 3504, 2535: 3503, 2536: 3502, 2537: 3501, 2538: 3500, 2539: 3499, 2540: 3498, 2541: 3497, 2542: 3602, 2543: 3496, 2544: 3495, 2545: 3494, 2546: 3493, 2547: 3492, 2548: 3491, 2549: 3490, 2550: 3489, 2551: 3488, 2552: 3487, 2553: 3486, 2554: 3485, 2555: 3484, 2556: 3483, 2557: 3482, 2558: 3481, 2559: 3480, 2560: 3479, 2561: 3478, 2562: 3477, 2563: 3476, 2564: 3475, 2565: 3474, 2566: 3473, 2567: 3472, 2568: 3723, 2569: 3471, 2570: 3470, 2571: 3469, 2572: 3468, 2573: 3467, 2574: 3466, 2575: 3465, 2576: 3464, 2577: 3463, 2578: 3462, 2579: 3461, 2580: 3460, 2581: 3459, 2582: 3458, 2583: 3457, 2584: 3456, 2585: 3455, 2586: 3454, 2587: 3453, 2588: 3452, 2589: 3451, 2590: 3450, 2591: 3449, 2592: 3448, 2593: 3447, 2594: 3446, 2595: 3445, 2596: 3444, 2597: 3443, 2598: 3442, 2599: 3441, 2600: 3440, 2601: 3439, 2602: 3438, 2603: 3437, 2604: 3436, 2605: 3435, 2606: 3434, 2607: 3433, 2608: 3431, 2609: 3432, 2610: 3430, 2611: 3429, 2612: 3428, 2613: 3427, 2614: 3426, 2615: 3425, 2616: 3424, 2617: 3423, 2618: 3422, 2619: 3420, 2620: 3419, 2621: 3418, 2622: 3417, 2623: 3416, 2624: 3415, 2625: 3414, 2626: 3413, 2627: 3412, 2628: 3421, 2629: 3411, 2630: 3410, 2631: 3409, 2632: 3408, 2633: 3407, 2634: 3406, 2635: 3405, 2636: 3404, 2637: 3403, 2638: 3402, 2639: 3401, 2640: 3400, 2641: 3399, 2642: 3398, 2643: 3397, 2644: 3396, 2645: 3395, 2646: 3394, 2647: 3393, 2648: 3392, 2649: 3391, 2650: 3390, 2651: 3389, 2652: 3388, 2653: 3387, 2654: 3386, 2655: 3385, 2656: 3384, 2657: 3383, 2658: 3382, 2659: 3381, 2660: 3380, 2661: 3379, 2662: 3378, 2663: 3377, 2664: 3376, 2665: 3375, 2666: 3374, 2667: 3373, 2668: 3372, 2669: 3371, 2670: 3370, 2671: 3369, 2672: 3367, 2673: 3368, 2674: 3366, 2675: 3365, 2676: 3364, 2677: 3363, 2678: 3362, 2679: 3361, 2680: 3359, 2681: 3360, 2682: 3358, 2683: 3357, 2684: 3356, 2685: 3355, 2686: 3354, 2687: 3353, 2688: 3352, 2689: 3351, 2690: 3350, 2691: 3349, 2692: 3348, 2693: 3347, 2694: 3346, 2695: 3345, 2696: 3344, 2697: 3343, 2698: 3342, 2699: 3341, 2700: 3340, 2701: 3339, 2702: 3338, 2703: 3337, 2704: 3336, 2705: 3335, 2706: 3334, 2707: 3333, 2708: 3332, 2709: 3331, 2710: 3330, 2711: 3329, 2712: 3328, 2713: 3327, 2714: 3326, 2715: 3325, 2716: 3324, 2717: 3323, 2718: 3322, 2719: 3321, 2720: 3320, 2721: 3319, 2722: 3318, 2723: 3317, 2724: 3316, 2725: 3315, 2726: 3314, 2727: 3313, 2728: 3312, 2729: 3311, 2730: 3310, 2731: 3309, 2732: 3308, 2733: 3307, 2734: 3306, 2735: 3305, 2736: 3304, 2737: 3303, 2738: 3302, 2739: 3301, 2740: 3300, 2741: 3299, 2742: 3298, 2743: 3297, 2744: 3296, 2745: 3295, 2746: 3294, 2747: 3293, 2748: 3292, 2749: 3291, 2750: 3290, 2751: 3289, 2752: 3288, 2753: 3287, 2754: 3286, 2755: 3285, 2756: 3284, 2757: 3283, 2758: 3282, 2759: 3281, 2760: 3280, 2761: 3279, 2762: 3278, 2763: 3277, 2764: 3276, 2765: 3275, 2766: 3274, 2767: 3273, 2768: 3272, 2769: 3271, 2770: 3270, 2771: 3269, 2772: 3268, 2773: 3267, 2774: 3266, 2775: 3265, 2776: 3264, 2777: 3263, 2778: 3262, 2779: 3261, 2780: 3260, 2781: 3259, 2782: 3258, 2783: 3257, 2784: 3256, 2785: 3255, 2786: 3254, 2787: 3253, 2788: 3252, 2789: 3251, 2790: 3249, 2791: 3250, 2792: 3248, 2793: 3247, 2794: 3246, 2795: 3245, 2796: 3244, 2797: 3243, 2798: 3242, 2799: 3241, 2800: 3240, 2801: 3239, 2802: 3238, 2803: 3237, 2804: 3236, 2805: 3235, 2806: 3234, 2807: 3233, 2808: 3232, 2809: 3231, 2810: 3230, 2811: 3229, 2812: 3228, 2813: 3227, 2814: 3226, 2815: 3225, 2816: 3224, 2817: 3223, 2818: 3222, 2819: 3221, 2820: 3220, 2821: 3218, 2822: 3217, 2823: 3216, 2824: 3215, 2825: 3219, 2826: 3214, 2827: 3213, 2828: 3212, 2829: 3211, 2830: 3210, 2831: 3209, 2832: 3208, 2833: 3207, 2834: 3206, 2835: 3205, 2836: 3204, 2837: 3203, 2838: 3202, 2839: 3201, 2840: 3200, 2841: 3199, 2842: 3198, 2843: 3197, 2844: 3196, 2845: 3195, 2846: 3194, 2847: 3193, 2848: 3192, 2849: 3191, 2850: 3190, 2851: 3189, 2852: 3188, 2853: 3187, 2854: 3186, 2855: 3185, 2856: 3184, 2857: 3183, 2858: 3182, 2859: 3181, 2860: 3179, 2861: 3180, 2862: 3178, 2863: 3177, 2864: 3176, 2865: 3175, 2866: 3174, 2867: 3173, 2868: 3172, 2869: 3171, 2870: 3170, 2871: 3169, 2872: 3168, 2873: 3167, 2874: 3166, 2875: 3165, 2876: 3164, 2877: 3163, 2878: 3162, 2879: 3161, 2880: 3160, 2881: 3159, 2882: 3158, 2883: 3157, 2884: 3156, 2885: 3155, 2886: 3154, 2887: 3153, 2888: 3152, 2889: 3151, 2890: 3150, 2891: 3149, 2892: 3148, 2893: 3147, 2894: 3146, 2895: 3145, 2896: 3144, 2897: 3143, 2898: 3142, 2899: 3141, 2900: 3140, 2901: 3139, 2902: 3138, 2903: 3137, 2904: 3136, 2905: 3135, 2906: 3134, 2907: 3133, 2908: 3132, 2909: 3131, 2910: 3130, 2911: 3129, 2912: 3128, 2913: 3126, 2914: 3125, 2915: 3127, 2916: 3124, 2917: 3123, 2918: 3122, 2919: 3121, 2920: 3120, 2921: 3119, 2922: 3118, 2923: 3117, 2924: 3116, 2925: 3114, 2926: 3113, 2927: 3112, 2928: 3111, 2929: 3110, 2930: 3109, 2931: 3108, 2932: 3107, 2933: 3106, 2934: 3105, 2935: 3104, 2936: 3103, 2937: 3102, 2938: 3101, 2939: 3100, 2940: 3099, 2941: 3115, 2942: 3098, 2943: 3097, 2944: 3096, 2945: 3095, 2946: 3094, 2947: 3093, 2948: 3092, 2949: 3091, 2950: 3090, 2951: 3089, 2952: 3088, 2953: 3087, 2954: 3086, 2955: 3085, 2956: 3084, 2957: 3083, 2958: 3082, 2959: 3081, 2960: 3080, 2961: 3079, 2962: 3078, 2963: 3077, 2964: 3076, 2965: 3075, 2966: 3074, 2967: 3073, 2968: 3072, 2969: 3071, 2970: 3070, 2971: 3069, 2972: 3068, 2973: 3067, 2974: 3066, 2975: 3065, 2976: 3064, 2977: 3063, 2978: 3062, 2979: 3061, 2980: 3060, 2981: 3059, 2982: 3058, 2983: 3057, 2984: 3056, 2985: 3055, 2986: 3054, 2987: 3053, 2988: 3052, 2989: 3050, 2990: 3051, 2991: 3049, 2992: 3048, 2993: 3047, 2994: 3046, 2995: 3045, 2996: 3044, 2997: 3043, 2998: 3042, 2999: 3040, 3000: 3041, 3001: 3039, 3002: 3038, 3003: 3037, 3004: 3036, 3005: 3035, 3006: 3034, 3007: 3033, 3008: 3032, 3009: 3031, 3010: 3030, 3011: 3029, 3012: 3028, 3013: 3027, 3014: 3026, 3015: 3025, 3016: 3024, 3017: 3023, 3018: 3022, 3019: 3021, 3020: 3020, 3021: 3019, 3022: 3018, 3023: 3017, 3024: 3016, 3025: 3015, 3026: 3014, 3027: 3013, 3028: 3012, 3029: 3011, 3030: 3010, 3031: 3009, 3032: 3008, 3033: 3007, 3034: 3006, 3035: 3005, 3036: 3004, 3037: 3002, 3038: 3001, 3039: 3000, 3040: 2999, 3041: 2998, 3042: 2997, 3043: 2996, 3044: 2995, 3045: 2994, 3046: 2993, 3047: 2992, 3048: 2991, 3049: 2990, 3050: 2989, 3051: 3003, 3052: 2988, 3053: 2987, 3054: 2986, 3055: 2985, 3056: 2984, 3057: 2983, 3058: 2982, 3059: 2981, 3060: 2979, 3061: 2978, 3062: 2977, 3063: 2976, 3064: 2975, 3065: 2974, 3066: 2973, 3067: 2972, 3068: 2971, 3069: 2970, 3070: 2969, 3071: 2968, 3072: 2967, 3073: 2966, 3074: 2965, 3075: 2964, 3076: 2963, 3077: 2962, 3078: 2961, 3079: 2960, 3080: 2959, 3081: 2958, 3082: 2957, 3083: 2956, 3084: 2955, 3085: 2954, 3086: 2953, 3087: 2952, 3088: 2951, 3089: 2950, 3090: 2949, 3091: 2948, 3092: 2946, 3093: 2945, 3094: 2944, 3095: 2943, 3096: 2942, 3097: 2941, 3098: 2940, 3099: 2939, 3100: 2938, 3101: 2937, 3102: 2936, 3103: 2935, 3104: 2934, 3105: 2933, 3106: 2932, 3107: 2931, 3108: 2930, 3109: 2929, 3110: 2928, 3111: 2927, 3112: 2926, 3113: 2925, 3114: 2924, 3115: 2923, 3116: 2922, 3117: 2921, 3118: 2920, 3119: 2919, 3120: 2918, 3121: 2917, 3122: 2916, 3123: 2915, 3124: 2914, 3125: 2913, 3126: 2912, 3127: 2911, 3128: 2909, 3129: 2908, 3130: 2907, 3131: 2906, 3132: 2905, 3133: 2904, 3134: 2903, 3135: 2902, 3136: 2901, 3137: 2900, 3138: 2899, 3139: 2898, 3140: 2897, 3141: 2895, 3142: 2896, 3143: 2894, 3144: 2893, 3145: 2892, 3146: 2891, 3147: 2890, 3148: 2889, 3149: 2888, 3150: 2887, 3151: 2886, 3152: 2885, 3153: 2884, 3154: 2882, 3155: 2881, 3156: 2883, 3157: 2880, 3158: 2879, 3159: 2878, 3160: 2877, 3161: 2876, 3162: 2875, 3163: 2874, 3164: 2873, 3165: 2872, 3166: 2871, 3167: 2870, 3168: 2869, 3169: 2868, 3170: 2867, 3171: 2866, 3172: 2865, 3173: 2864, 3174: 2863, 3175: 2862, 3176: 2861, 3177: 2860, 3178: 2859, 3179: 2858, 3180: 2857, 3181: 2856, 3182: 2855, 3183: 2854, 3184: 2853, 3185: 2852, 3186: 2851, 3187: 2850, 3188: 2849, 3189: 2848, 3190: 2847, 3191: 2846, 3192: 2845, 3193: 2844, 3194: 2843, 3195: 2842, 3196: 2841, 3197: 2840, 3198: 2839, 3199: 2838, 3200: 2837, 3201: 2836, 3202: 2835, 3203: 2834, 3204: 2833, 3205: 2832, 3206: 2831, 3207: 2830, 3208: 2829, 3209: 2828, 3210: 2827, 3211: 2826, 3212: 2825, 3213: 2824, 3214: 2823, 3215: 2822, 3216: 2821, 3217: 2820, 3218: 2819, 3219: 2818, 3220: 2817, 3221: 2816, 3222: 2815, 3223: 2814, 3224: 2813, 3225: 2812, 3226: 2811, 3227: 2810, 3228: 2809, 3229: 2808, 3230: 2807, 3231: 2806, 3232: 2805, 3233: 2804, 3234: 2803, 3235: 2802, 3236: 2801, 3237: 2800, 3238: 2799, 3239: 2798, 3240: 2797, 3241: 2796, 3242: 2795, 3243: 2794, 3244: 2793, 3245: 2792, 3246: 2791, 3247: 2790, 3248: 2789, 3249: 2788, 3250: 2787, 3251: 2786, 3252: 2785, 3253: 2784, 3254: 2783, 3255: 2782, 3256: 2781, 3257: 2780, 3258: 2779, 3259: 2778, 3260: 2777, 3261: 2776, 3262: 2775, 3263: 2774, 3264: 2773, 3265: 2772, 3266: 2771, 3267: 2770, 3268: 2769, 3269: 2768, 3270: 2767, 3271: 2766, 3272: 2765, 3273: 2764, 3274: 2763, 3275: 2762, 3276: 2761, 3277: 2760, 3278: 2759, 3279: 2758, 3280: 2757, 3281: 2756, 3282: 2755, 3283: 2754, 3284: 2753, 3285: 2752, 3286: 2751, 3287: 2750, 3288: 2749, 3289: 2748, 3290: 2747, 3291: 2746, 3292: 2745, 3293: 2744, 3294: 2743, 3295: 2742, 3296: 2741, 3297: 2740, 3298: 2739, 3299: 2738, 3300: 2737, 3301: 2736, 3302: 2735, 3303: 2734, 3304: 2733, 3305: 2732, 3306: 2731, 3307: 2730, 3308: 2729, 3309: 2728, 3310: 2727, 3311: 2726, 3312: 2725, 3313: 2724, 3314: 2723, 3315: 2722, 3316: 2721, 3317: 2720, 3318: 2719, 3319: 2718, 3320: 2716, 3321: 2714, 3322: 2717, 3323: 2715, 3324: 2713, 3325: 2712, 3326: 2711, 3327: 2710, 3328: 2709, 3329: 2708, 3330: 2707, 3331: 2706, 3332: 2705, 3333: 2704, 3334: 2703, 3335: 2702, 3336: 2701, 3337: 2700, 3338: 2699, 3339: 2698, 3340: 2697, 3341: 2696, 3342: 2695, 3343: 2694, 3344: 2693, 3345: 2692, 3346: 2691, 3347: 2690, 3348: 2689, 3349: 2688, 3350: 2687, 3351: 2686, 3352: 2685, 3353: 2684, 3354: 2683, 3355: 2682, 3356: 2681, 3357: 2680, 3358: 2679, 3359: 2678, 3360: 2677, 3361: 2676, 3362: 2675, 3363: 2674, 3364: 2673, 3365: 2672, 3366: 2671, 3367: 2670, 3368: 2669, 3369: 2668, 3370: 2667, 3371: 2666, 3372: 2665, 3373: 2664, 3374: 2663, 3375: 2662, 3376: 2661, 3377: 2660, 3378: 2659, 3379: 2658, 3380: 2657, 3381: 2656, 3382: 2655, 3383: 2653, 3384: 2652, 3385: 2651, 3386: 2650, 3387: 2649, 3388: 2648, 3389: 2654, 3390: 2647, 3391: 2646, 3392: 2645, 3393: 2644, 3394: 2643, 3395: 2642, 3396: 2641, 3397: 2640, 3398: 2639, 3399: 2638, 3400: 2637, 3401: 2636, 3402: 2635, 3403: 2634, 3404: 2633, 3405: 2632, 3406: 2631, 3407: 2630, 3408: 2629, 3409: 2628, 3410: 2627, 3411: 2626, 3412: 2625, 3413: 2624, 3414: 2623, 3415: 2622, 3416: 2621, 3417: 2620, 3418: 2619, 3419: 2618, 3420: 2617, 3421: 2616, 3422: 2615, 3423: 2614, 3424: 2613, 3425: 2612, 3426: 2611, 3427: 2610, 3428: 2609, 3429: 2608, 3430: 2607, 3431: 2606, 3432: 2605, 3433: 2604, 3434: 2603, 3435: 2602, 3436: 2600, 3437: 2599, 3438: 2598, 3439: 2597, 3440: 2601, 3441: 2596, 3442: 2595, 3443: 2594, 3444: 2593, 3445: 2592, 3446: 2591, 3447: 2590, 3448: 2589, 3449: 2588, 3450: 2587, 3451: 2586, 3452: 2584, 3453: 2585, 3454: 2583, 3455: 2582, 3456: 2581, 3457: 2580, 3458: 2579, 3459: 2578, 3460: 2577, 3461: 2576, 3462: 2575, 3463: 2574, 3464: 2573, 3465: 2572, 3466: 2571, 3467: 2570, 3468: 2569, 3469: 2568, 3470: 2567, 3471: 2566, 3472: 2565, 3473: 2564, 3474: 2563, 3475: 2562, 3476: 2561, 3477: 2560, 3478: 2559, 3479: 2558, 3480: 2557, 3481: 2556, 3482: 2555, 3483: 2554, 3484: 2553, 3485: 2552, 3486: 2551, 3487: 2550, 3488: 2549, 3489: 2548, 3490: 2547, 3491: 2546, 3492: 2545, 3493: 2544, 3494: 2543, 3495: 2542, 3496: 2541, 3497: 2540, 3498: 2539, 3499: 2538, 3500: 2537, 3501: 2535, 3502: 2536, 3503: 2534, 3504: 2533, 3505: 2532, 3506: 2531, 3507: 2530, 3508: 2529, 3509: 2528, 3510: 2527, 3511: 2526, 3512: 2525, 3513: 2524, 3514: 2523, 3515: 2522, 3516: 2521, 3517: 2520, 3518: 2519, 3519: 2518, 3520: 2517, 3521: 2516, 3522: 2515, 3523: 2514, 3524: 2513, 3525: 2512, 3526: 2511, 3527: 2510, 3528: 2509, 3529: 2508, 3530: 2507, 3531: 2506, 3532: 2505, 3533: 2504, 3534: 2503, 3535: 2502, 3536: 2501, 3537: 2500, 3538: 2499, 3539: 2498, 3540: 2497, 3541: 2496, 3542: 2495, 3543: 2494, 3544: 2493, 3545: 2492, 3546: 2491, 3547: 2490, 3548: 2489, 3549: 2488, 3550: 2487, 3551: 2486, 3552: 2485, 3553: 2484, 3554: 2483, 3555: 2482, 3556: 2481, 3557: 2480, 3558: 2479, 3559: 2478, 3560: 2476, 3561: 2477, 3562: 2475, 3563: 2474, 3564: 2473, 3565: 2472, 3566: 2471, 3567: 2470, 3568: 2469, 3569: 2468, 3570: 2467, 3571: 2466, 3572: 2465, 3573: 2464, 3574: 2462, 3575: 2463, 3576: 2461, 3577: 2460, 3578: 2459, 3579: 2458, 3580: 2457, 3581: 2456, 3582: 2455, 3583: 2454, 3584: 2453, 3585: 2452, 3586: 2451, 3587: 2450, 3588: 2449, 3589: 2448, 3590: 2447, 3591: 2446, 3592: 2445, 3593: 2444, 3594: 2443, 3595: 2442, 3596: 2441, 3597: 2440, 3598: 2439, 3599: 2438, 3600: 2436, 3601: 2435, 3602: 2433, 3603: 2437, 3604: 2431, 3605: 2430, 3606: 2432, 3607: 2434, 3608: 2429, 3609: 2428, 3610: 2427, 3611: 2426, 3612: 2424, 3613: 2423, 3614: 2422, 3615: 2421, 3616: 2420, 3617: 2425, 3618: 2419, 3619: 2418, 3620: 2417, 3621: 2415, 3622: 2416, 3623: 2414, 3624: 2413, 3625: 2412, 3626: 2411, 3627: 2410, 3628: 2409, 3629: 2408, 3630: 2407, 3631: 2406, 3632: 2405, 3633: 2404, 3634: 2403, 3635: 2402, 3636: 2401, 3637: 2400, 3638: 2399, 3639: 2398, 3640: 2397, 3641: 2396, 3642: 2395, 3643: 2394, 3644: 2393, 3645: 2392, 3646: 2391, 3647: 2390, 3648: 2389, 3649: 2388, 3650: 2387, 3651: 2386, 3652: 2385, 3653: 2384, 3654: 2383, 3655: 2382, 3656: 2381, 3657: 2380, 3658: 2378, 3659: 2379, 3660: 2377, 3661: 2376, 3662: 2375, 3663: 2374, 3664: 2373, 3665: 2372, 3666: 2371, 3667: 2370, 3668: 2369, 3669: 2368, 3670: 2367, 3671: 2366, 3672: 2365, 3673: 2364, 3674: 2363, 3675: 2362, 3676: 2361, 3677: 2360, 3678: 2359, 3679: 2358, 3680: 2357, 3681: 2356, 3682: 2355, 3683: 2354, 3684: 2352, 3685: 2353, 3686: 2351, 3687: 2350, 3688: 2348, 3689: 2349, 3690: 2347, 3691: 2346, 3692: 2345, 3693: 2344, 3694: 2342, 3695: 2343, 3696: 2341, 3697: 2340, 3698: 2339, 3699: 2338, 3700: 2337, 3701: 2336, 3702: 2335, 3703: 2334, 3704: 2333, 3705: 2332, 3706: 2331, 3707: 2330, 3708: 2329, 3709: 2328, 3710: 2327, 3711: 2326, 3712: 2325, 3713: 2324, 3714: 2323, 3715: 2322, 3716: 2321, 3717: 2320, 3718: 2319, 3719: 2318, 3720: 2317, 3721: 2316, 3722: 2315, 3723: 2314, 3724: 2313, 3725: 2312, 3726: 2311, 3727: 2310, 3728: 2309, 3729: 2308, 3730: 2307, 3731: 2306, 3732: 2305, 3733: 2304, 3734: 2303, 3735: 2302, 3736: 2301, 3737: 2300, 3738: 2299, 3739: 2298, 3740: 2297, 3741: 2296, 3742: 2295, 3743: 2294, 3744: 2293, 3745: 2292, 3746: 2291, 3747: 2290, 3748: 2289, 3749: 2288, 3750: 2287, 3751: 2286, 3752: 2285, 3753: 2284, 3754: 2283, 3755: 2282, 3756: 2281, 3757: 2280, 3758: 2279, 3759: 2278, 3760: 2277, 3761: 2276, 3762: 2275, 3763: 2274, 3764: 2273, 3765: 2272, 3766: 2271, 3767: 2270, 3768: 2269, 3769: 2268, 3770: 2267, 3771: 2266, 3772: 2265, 3773: 2264, 3774: 2263, 3775: 2262, 3776: 2261, 3777: 2260, 3778: 2259, 3779: 2258, 3780: 2257, 3781: 2256, 3782: 2255, 3783: 2254, 3784: 2253, 3785: 2252, 3786: 2250, 3787: 2251, 3788: 2248, 3789: 2246, 3790: 2244, 3791: 2243, 3792: 2242, 3793: 2241, 3794: 2249, 3795: 2245, 3796: 2240, 3797: 2239, 3798: 2238, 3799: 2237, 3800: 2235, 3801: 2236, 3802: 2234, 3803: 2233, 3804: 2232, 3805: 2231, 3806: 2230, 3807: 2229, 3808: 2228, 3809: 2227, 3810: 2226, 3811: 2224, 3812: 2225, 3813: 2223, 3814: 2222, 3815: 2221, 3816: 2220, 3817: 2219, 3818: 2218, 3819: 2217, 3820: 2216, 3821: 2215, 3822: 2214, 3823: 2212, 3824: 2213, 3825: 2211, 3826: 2210, 3827: 2209, 3828: 2208, 3829: 2207, 3830: 2206, 3831: 2205, 3832: 2203, 3833: 2204, 3834: 2202, 3835: 2201, 3836: 2200, 3837: 2199, 3838: 2197, 3839: 2198, 3840: 2196, 3841: 2195, 3842: 2192, 3843: 2191, 3844: 2193, 3845: 2194, 3846: 2190, 3847: 2189, 3848: 2188, 3849: 2186, 3850: 2185, 3851: 2187, 3852: 2184, 3853: 2182, 3854: 2183, 3855: 2181, 3856: 2180, 3857: 2179, 3858: 2178, 3859: 2177, 3860: 2175, 3861: 2176, 3862: 2174, 3863: 2173, 3864: 2172, 3865: 2171, 3866: 2169, 3867: 2170, 3868: 2168, 3869: 2167, 3870: 2166, 3871: 2165, 3872: 2164, 3873: 2163, 3874: 2162, 3875: 2161, 3876: 2160, 3877: 2159, 3878: 2158, 3879: 2157, 3880: 2156, 3881: 2155, 3882: 2154, 3883: 2153, 3884: 2152, 3885: 2150, 3886: 2151, 3887: 2149, 3888: 2148, 3889: 2147, 3890: 2146, 3891: 2145, 3892: 2144, 3893: 2143, 3894: 2142, 3895: 2141, 3896: 2140, 3897: 2139, 3898: 2138, 3899: 2137, 3900: 2136, 3901: 2135, 3902: 2134, 3903: 2133, 3904: 2132, 3905: 2131, 3906: 2130, 3907: 2129, 3908: 2128, 3909: 2127, 3910: 2126, 3911: 2125, 3912: 2123, 3913: 2124, 3914: 2122, 3915: 2121, 3916: 2120, 3917: 2119, 3918: 2118, 3919: 2117, 3920: 2116, 3921: 2115, 3922: 2114, 3923: 2113, 3924: 2112, 3925: 2111, 3926: 2110, 3927: 2109, 3928: 2108, 3929: 2107, 3930: 2106, 3931: 2105, 3932: 2104, 3933: 2103, 3934: 2102, 3935: 2101, 3936: 2100, 3937: 2099, 3938: 2098, 3939: 2097, 3940: 2096, 3941: 2095, 3942: 2093, 3943: 2094, 3944: 2092, 3945: 2091, 3946: 2090, 3947: 2088, 3948: 2089, 3949: 2087, 3950: 2085, 3951: 2086, 3952: 2084, 3953: 2083, 3954: 2082, 3955: 2081, 3956: 2080, 3957: 2079, 3958: 2078, 3959: 2077, 3960: 2075, 3961: 2076, 3962: 2074, 3963: 2073, 3964: 2072, 3965: 2071, 3966: 2070, 3967: 2069, 3968: 2068, 3969: 2067, 3970: 2066, 3971: 2064, 3972: 2065, 3973: 2063, 3974: 2062, 3975: 2061, 3976: 2060, 3977: 2059, 3978: 2057, 3979: 2058, 3980: 2056, 3981: 2055, 3982: 2054, 3983: 2053, 3984: 2052, 3985: 2051, 3986: 2050, 3987: 2049, 3988: 2048, 3989: 2047, 3990: 2046, 3991: 2045, 3992: 2044, 3993: 2043, 3994: 2042, 3995: 2041, 3996: 2039, 3997: 2040, 3998: 2038, 3999: 2036, 4000: 2037, 4001: 2035, 4002: 2034, 4003: 2033, 4004: 2032, 4005: 2031, 4006: 2030, 4007: 2029, 4008: 2028, 4009: 2027, 4010: 2026, 4011: 2025, 4012: 2024, 4013: 2023, 4014: 2022, 4015: 2020, 4016: 2021, 4017: 2019, 4018: 2018, 4019: 2017, 4020: 2016, 4021: 2015, 4022: 2014, 4023: 2013, 4024: 2012, 4025: 2011, 4026: 2010, 4027: 2009, 4028: 2008, 4029: 2005, 4030: 2007, 4031: 2006, 4032: 2004, 4033: 2002, 4034: 2003, 4035: 2001, 4036: 2000, 4037: 1999, 4038: 1998, 4039: 1997, 4040: 1996, 4041: 1995, 4042: 1994, 4043: 1993, 4044: 1992, 4045: 1991, 4046: 1990, 4047: 1989, 4048: 1988, 4049: 1985, 4050: 1986, 4051: 1987, 4052: 1983, 4053: 1984, 4054: 1982, 4055: 1981, 4056: 1980, 4057: 1979, 4058: 1978, 4059: 1977, 4060: 1974, 4061: 1975, 4062: 1973, 4063: 1976, 4064: 1971, 4065: 1972, 4066: 1969, 4067: 1968, 4068: 1967, 4069: 1970, 4070: 1966, 4071: 1965, 4072: 1964, 4073: 1963, 4074: 1962, 4075: 1961, 4076: 1960, 4077: 1959, 4078: 1958, 4079: 1957, 4080: 1956, 4081: 1955, 4082: 1952, 4083: 1951, 4084: 1954, 4085: 1948, 4086: 1945, 4087: 1946, 4088: 1953, 4089: 1944, 4090: 1937, 4091: 1949, 4092: 1950, 4093: 1943, 4094: 1941, 4095: 1942, 4096: 1938, 4097: 1935, 4098: 1939, 4099: 1947, 4100: 1940, 4101: 1934, 4102: 1931, 4103: 1928, 4104: 1926, 4105: 1929, 4106: 1927, 4107: 1924, 4108: 1925, 4109: 1923, 4110: 1921, 4111: 1920, 4112: 1922, 4113: 1936, 4114: 1919, 4115: 1930, 4116: 1917, 4117: 1918, 4118: 1916, 4119: 1914, 4120: 1912, 4121: 1909, 4122: 1911, 4123: 1906, 4124: 1904, 4125: 1908, 4126: 1905, 4127: 1903, 4128: 1907, 4129: 1902, 4130: 1901, 4131: 1900, 4132: 1933, 4133: 1915, 4134: 1910, 4135: 1894, 4136: 1896, 4137: 1898, 4138: 1899, 4139: 1893, 4140: 1892, 4141: 1895, 4142: 1913, 4143: 1891, 4144: 1889, 4145: 1890, 4146: 1888, 4147: 1886, 4148: 1885, 4149: 1897, 4150: 1887, 4151: 1882, 4152: 1881, 4153: 1880, 4154: 1883, 4155: 1879, 4156: 1884, 4157: 1932, 4158: 1878, 4159: 1876, 4160: 1873, 4161: 1874, 4162: 1872, 4163: 1871, 4164: 1870, 4165: 1869, 4166: 1868, 4167: 1867, 4168: 1866, 4169: 1865, 4170: 1864, 4171: 1863, 4172: 1862, 4173: 1859, 4174: 1861, 4175: 1860, 4176: 1858, 4177: 1857, 4178: 1856, 4179: 1855, 4180: 1854, 4181: 1852, 4182: 1851, 4183: 1850, 4184: 1849, 4185: 1846, 4186: 1844, 4187: 1843, 4188: 1848, 4189: 1847, 4190: 1842, 4191: 1841, 4192: 1840, 4193: 1839, 4194: 1838, 4195: 1837, 4196: 1833, 4197: 1835, 4198: 1834, 4199: 1830, 4200: 1824, 4201: 1832, 4202: 1836, 4203: 1826, 4204: 1845, 4205: 1822, 4206: 1829, 4207: 1828, 4208: 1823, 4209: 1827, 4210: 1820, 4211: 1819, 4212: 1818, 4213: 1817, 4214: 1816, 4215: 1814, 4216: 1812, 4217: 1811, 4218: 1813, 4219: 1821, 4220: 1809, 4221: 1808, 4222: 1810, 4223: 1807, 4224: 1831, 4225: 1805, 4226: 1804, 4227: 1806, 4228: 1815, 4229: 1803, 4230: 1802, 4231: 1801, 4232: 1800, 4233: 1798, 4234: 1799, 4235: 1797, 4236: 1796, 4237: 1793, 4238: 1795, 4239: 1792, 4240: 1794, 4241: 1790, 4242: 1791, 4243: 1787, 4244: 1875, 4245: 1789, 4246: 1788, 4247: 1784, 4248: 1783, 4249: 1785, 4250: 1782, 4251: 1781, 4252: 1780, 4253: 1779, 4254: 1778, 4255: 1786, 4256: 1777, 4257: 1773, 4258: 1776, 4259: 1775, 4260: 1774, 4261: 1772, 4262: 1771, 4263: 1769, 4264: 1768, 4265: 1770, 4266: 1767, 4267: 1762, 4268: 1766, 4269: 1764, 4270: 1763, 4271: 1765, 4272: 1760, 4273: 1759, 4274: 1758, 4275: 1756, 4276: 1757, 4277: 1761, 4278: 1755, 4279: 1753, 4280: 1752, 4281: 1754, 4282: 1751, 4283: 1749, 4284: 1750, 4285: 1747, 4286: 1746, 4287: 1745, 4288: 1748, 4289: 1744, 4290: 1743, 4291: 1742, 4292: 1740, 4293: 1739, 4294: 1738, 4295: 1737, 4296: 1736, 4297: 1735, 4298: 1733, 4299: 1734, 4300: 1732, 4301: 1729, 4302: 1730, 4303: 1731, 4304: 1728, 4305: 1725, 4306: 1726, 4307: 1727, 4308: 1722, 4309: 1719, 4310: 1721, 4311: 1720, 4312: 1724, 4313: 1723, 4314: 1718, 4315: 1717, 4316: 1715, 4317: 1741, 4318: 1714, 4319: 1716, 4320: 1713, 4321: 1712, 4322: 1711, 4323: 1710, 4324: 1709, 4325: 1708, 4326: 1707, 4327: 1706, 4328: 1705, 4329: 1704, 4330: 1703, 4331: 1700, 4332: 1701, 4333: 1698, 4334: 1697, 4335: 1702, 4336: 1695, 4337: 1699, 4338: 1694, 4339: 1693, 4340: 1696, 4341: 1691, 4342: 1692, 4343: 1688, 4344: 1686, 4345: 1687, 4346: 1685, 4347: 1684, 4348: 1689, 4349: 1683, 4350: 1682, 4351: 1681, 4352: 1690, 4353: 1680, 4354: 1679, 4355: 1678, 4356: 1676, 4357: 1677, 4358: 1675, 4359: 1674, 4360: 1672, 4361: 1673, 4362: 1669, 4363: 1671, 4364: 1668, 4365: 1670, 4366: 1667, 4367: 1666, 4368: 1665, 4369: 1664, 4370: 1663, 4371: 1662, 4372: 1661, 4373: 1660, 4374: 1659, 4375: 1658, 4376: 1654, 4377: 1655, 4378: 1657, 4379: 1656, 4380: 1653, 4381: 1652, 4382: 1651, 4383: 1650, 4384: 1649, 4385: 1648, 4386: 1647, 4387: 1646, 4388: 1645, 4389: 1644, 4390: 1641, 4391: 1643, 4392: 1642, 4393: 1640, 4394: 1639, 4395: 1638, 4396: 1637, 4397: 1636, 4398: 1634, 4399: 1635, 4400: 1633, 4401: 1632, 4402: 1631, 4403: 1628, 4404: 1629, 4405: 1630, 4406: 1627, 4407: 1626, 4408: 1625, 4409: 1624, 4410: 1623, 4411: 1622, 4412: 1621, 4413: 1620, 4414: 1617, 4415: 1618, 4416: 1619, 4417: 1616, 4418: 1614, 4419: 1615, 4420: 1613, 4421: 1612, 4422: 1611, 4423: 1610, 4424: 1609, 4425: 1608, 4426: 1825, 4427: 1607, 4428: 1606, 4429: 1605, 4430: 1604, 4431: 1603, 4432: 1602, 4433: 1601, 4434: 1600, 4435: 1599, 4436: 1598, 4437: 1597, 4438: 1596, 4439: 1595, 4440: 1594, 4441: 1593, 4442: 1592, 4443: 1591, 4444: 1590, 4445: 1589, 4446: 1588, 4447: 1587, 4448: 1586, 4449: 1585, 4450: 1584, 4451: 1583, 4452: 1579, 4453: 1582, 4454: 1580, 4455: 1578, 4456: 1577, 4457: 1576, 4458: 1574, 4459: 1575, 4460: 1573, 4461: 1572, 4462: 1571, 4463: 1570, 4464: 1569, 4465: 1568, 4466: 1567, 4467: 1566, 4468: 1564, 4469: 1565, 4470: 1563, 4471: 1562, 4472: 1561, 4473: 1560, 4474: 1559, 4475: 1558, 4476: 1556, 4477: 1555, 4478: 1554, 4479: 1553, 4480: 1552, 4481: 1550, 4482: 1549, 4483: 1548, 4484: 1551, 4485: 1547, 4486: 1546, 4487: 1545, 4488: 1544, 4489: 1543, 4490: 1542, 4491: 1540, 4492: 1541, 4493: 1539, 4494: 1538, 4495: 1537, 4496: 1535, 4497: 1536, 4498: 1534, 4499: 1533, 4500: 1532, 4501: 1531, 4502: 1530, 4503: 1529, 4504: 1528, 4505: 1527, 4506: 1526, 4507: 1525, 4508: 1524, 4509: 1523, 4510: 1521, 4511: 1522, 4512: 1520, 4513: 1519, 4514: 1517, 4515: 1518, 4516: 1516, 4517: 1515, 4518: 1514, 4519: 1513, 4520: 1512, 4521: 1511, 4522: 1510, 4523: 1509, 4524: 1508, 4525: 1507, 4526: 1506, 4527: 1581, 4528: 1504, 4529: 1503, 4530: 1501, 4531: 1500, 4532: 1502, 4533: 1499, 4534: 1497, 4535: 1498, 4536: 1496, 4537: 1495, 4538: 1493, 4539: 1494, 4540: 1492, 4541: 1491, 4542: 1490, 4543: 1489, 4544: 1488, 4545: 1487, 4546: 1486, 4547: 1484, 4548: 1485, 4549: 1483, 4550: 1482, 4551: 1481, 4552: 1479, 4553: 1478, 4554: 1476, 4555: 1477, 4556: 1474, 4557: 1473, 4558: 1475, 4559: 1472, 4560: 1470, 4561: 1471, 4562: 1469, 4563: 1468, 4564: 1467, 4565: 1480, 4566: 1466, 4567: 1465, 4568: 1463, 4569: 1464, 4570: 1462, 4571: 1461, 4572: 1460, 4573: 1459, 4574: 1458, 4575: 1457, 4576: 1456, 4577: 1454, 4578: 1453, 4579: 1452, 4580: 1451, 4581: 1455, 4582: 1450, 4583: 1448, 4584: 1446, 4585: 1445, 4586: 1447, 4587: 1449, 4588: 1443, 4589: 1444, 4590: 1442, 4591: 1441, 4592: 1440, 4593: 1439, 4594: 1438, 4595: 1437, 4596: 1436, 4597: 1435, 4598: 1434, 4599: 1433, 4600: 1432, 4601: 1430, 4602: 1429, 4603: 1431, 4604: 1427, 4605: 1426, 4606: 1423, 4607: 1425, 4608: 1424, 4609: 1422, 4610: 1421, 4611: 1420, 4612: 1419, 4613: 1418, 4614: 1416, 4615: 1415, 4616: 1417, 4617: 1414, 4618: 1413, 4619: 1412, 4620: 1411, 4621: 1409, 4622: 1408, 4623: 1407, 4624: 1406, 4625: 1405, 4626: 1404, 4627: 1403, 4628: 1402, 4629: 1401, 4630: 1410, 4631: 1400, 4632: 1399, 4633: 1397, 4634: 1398, 4635: 1396, 4636: 1393, 4637: 1394, 4638: 1395, 4639: 1392, 4640: 1390, 4641: 1389, 4642: 1388, 4643: 1391, 4644: 1387, 4645: 1386, 4646: 1385, 4647: 1384, 4648: 1383, 4649: 1381, 4650: 1380, 4651: 1382, 4652: 1378, 4653: 1379, 4654: 1377, 4655: 1376, 4656: 1375, 4657: 1374, 4658: 1373, 4659: 1372, 4660: 1371, 4661: 1370, 4662: 1369, 4663: 1368, 4664: 1367, 4665: 1366, 4666: 1364, 4667: 1363, 4668: 1365, 4669: 1362, 4670: 1361, 4671: 1360, 4672: 1359, 4673: 1358, 4674: 1357, 4675: 1356, 4676: 1355, 4677: 1354, 4678: 1353, 4679: 1352, 4680: 1351, 4681: 1350, 4682: 1349, 4683: 1348, 4684: 1347, 4685: 1346, 4686: 1345, 4687: 1344, 4688: 1343, 4689: 1342, 4690: 1341, 4691: 1340, 4692: 1338, 4693: 1339, 4694: 1337, 4695: 1336, 4696: 1335, 4697: 1334, 4698: 1333, 4699: 1332, 4700: 1331, 4701: 1330, 4702: 1329, 4703: 1328, 4704: 1325, 4705: 1326, 4706: 1324, 4707: 1327, 4708: 1323, 4709: 1322, 4710: 1321, 4711: 1320, 4712: 1319, 4713: 1316, 4714: 1317, 4715: 1318, 4716: 1315, 4717: 1314, 4718: 1313, 4719: 1312, 4720: 1311, 4721: 1310, 4722: 1309, 4723: 1308, 4724: 1307, 4725: 1306, 4726: 1305, 4727: 1304, 4728: 1303, 4729: 1301, 4730: 1299, 4731: 1300, 4732: 1302, 4733: 1298, 4734: 1297, 4735: 1296, 4736: 1295, 4737: 1293, 4738: 1294, 4739: 1292, 4740: 1291, 4741: 1290, 4742: 1289, 4743: 1288, 4744: 1286, 4745: 1285, 4746: 1284, 4747: 1282, 4748: 1281, 4749: 1280, 4750: 1279, 4751: 1283, 4752: 1278, 4753: 1277, 4754: 1276, 4755: 1275, 4756: 1274, 4757: 1273, 4758: 1272, 4759: 1271, 4760: 1270, 4761: 1269, 4762: 1268, 4763: 1267, 4764: 1266, 4765: 1264, 4766: 1263, 4767: 1262, 4768: 1261, 4769: 1557, 4770: 1260, 4771: 1259, 4772: 1258, 4773: 1255, 4774: 1256, 4775: 1257, 4776: 1254, 4777: 1253, 4778: 1252, 4779: 1251, 4780: 1250, 4781: 1249, 4782: 1248, 4783: 1247, 4784: 1246, 4785: 1245, 4786: 1244, 4787: 1243, 4788: 1242, 4789: 1241, 4790: 1240, 4791: 1239, 4792: 1237, 4793: 1238, 4794: 1236, 4795: 1235, 4796: 1234, 4797: 1233, 4798: 1232, 4799: 1230, 4800: 1229, 4801: 1227, 4802: 1231, 4803: 1228, 4804: 1226, 4805: 1225, 4806: 1223, 4807: 1222, 4808: 1224, 4809: 1221, 4810: 1220, 4811: 1219, 4812: 1218, 4813: 1217, 4814: 1216, 4815: 1215, 4816: 1211, 4817: 1214, 4818: 1212, 4819: 1213, 4820: 1210, 4821: 1209, 4822: 1208, 4823: 1207, 4824: 1206, 4825: 1205, 4826: 1204, 4827: 1203, 4828: 1202, 4829: 1201, 4830: 1200, 4831: 1199, 4832: 1198, 4833: 1197, 4834: 1196, 4835: 1195, 4836: 1194, 4837: 1193, 4838: 1192, 4839: 1190, 4840: 1189, 4841: 1191, 4842: 1186, 4843: 1188, 4844: 1187, 4845: 1185, 4846: 1184, 4847: 1183, 4848: 1182, 4849: 1181, 4850: 1180, 4851: 1179, 4852: 1178, 4853: 1177, 4854: 1176, 4855: 1175, 4856: 1174, 4857: 1173, 4858: 1172, 4859: 1171, 4860: 1170, 4861: 1169, 4862: 1168, 4863: 1167, 4864: 1166, 4865: 1165, 4866: 1163, 4867: 1164, 4868: 1162, 4869: 1161, 4870: 1160, 4871: 1159, 4872: 1158, 4873: 1157, 4874: 1156, 4875: 1155, 4876: 1154, 4877: 1153, 4878: 1152, 4879: 1151, 4880: 1853, 4881: 1150, 4882: 1149, 4883: 1148, 4884: 1147, 4885: 1146, 4886: 1145, 4887: 1144, 4888: 1143, 4889: 1141, 4890: 1142, 4891: 1139, 4892: 1140, 4893: 1138, 4894: 1137, 4895: 1136, 4896: 1135, 4897: 1134, 4898: 1133, 4899: 1132, 4900: 1131, 4901: 1130, 4902: 1128, 4903: 1129, 4904: 1127, 4905: 1126, 4906: 1125, 4907: 1124, 4908: 1123, 4909: 1122, 4910: 1121, 4911: 1120, 4912: 1119, 4913: 1117, 4914: 1116, 4915: 1115, 4916: 1114, 4917: 1113, 4918: 1112, 4919: 1111, 4920: 1109, 4921: 1108, 4922: 1110, 4923: 1107, 4924: 1106, 4925: 1105, 4926: 1104, 4927: 1103, 4928: 1102, 4929: 1101, 4930: 1100, 4931: 1099, 4932: 1118, 4933: 1098, 4934: 1097, 4935: 1096, 4936: 1095, 4937: 1094, 4938: 1093, 4939: 1092, 4940: 1091, 4941: 1090, 4942: 1089, 4943: 1088, 4944: 1087, 4945: 1086, 4946: 1085, 4947: 1084, 4948: 1083, 4949: 1081, 4950: 1082, 4951: 1080, 4952: 1079, 4953: 1078, 4954: 1077, 4955: 1075, 4956: 1076, 4957: 1074, 4958: 1073, 4959: 1071, 4960: 1070, 4961: 1072, 4962: 1069, 4963: 1068, 4964: 1067, 4965: 1066, 4966: 1065, 4967: 1064, 4968: 1063, 4969: 1062, 4970: 1061, 4971: 1060, 4972: 1059, 4973: 1058, 4974: 1057, 4975: 1056, 4976: 1055, 4977: 1054, 4978: 1053, 4979: 1505, 4980: 1052, 4981: 1051, 4982: 1050, 4983: 1049, 4984: 1048, 4985: 1047, 4986: 1046, 4987: 1045, 4988: 1044, 4989: 1043, 4990: 1042, 4991: 1041, 4992: 1040, 4993: 1039, 4994: 1038, 4995: 1037, 4996: 1036, 4997: 1035, 4998: 1034, 4999: 1033, 5000: 1032, 5001: 1031, 5002: 1030, 5003: 1029, 5004: 1028, 5005: 1027, 5006: 1025, 5007: 1026, 5008: 1024, 5009: 1023, 5010: 1022, 5011: 1021, 5012: 1020, 5013: 1019, 5014: 1018, 5015: 1017, 5016: 1016, 5017: 1015, 5018: 1014, 5019: 1013, 5020: 1011, 5021: 1010, 5022: 1009, 5023: 1008, 5024: 1007, 5025: 1006, 5026: 1005, 5027: 1003, 5028: 1002, 5029: 1004, 5030: 1001, 5031: 1000, 5032: 999, 5033: 998, 5034: 997, 5035: 996, 5036: 995, 5037: 994, 5038: 993, 5039: 1012, 5040: 992, 5041: 991, 5042: 990, 5043: 989, 5044: 988, 5045: 987, 5046: 986, 5047: 985, 5048: 984, 5049: 983, 5050: 982, 5051: 981, 5052: 980, 5053: 979, 5054: 978, 5055: 977, 5056: 976, 5057: 975, 5058: 974, 5059: 973, 5060: 972, 5061: 971, 5062: 970, 5063: 969, 5064: 968, 5065: 966, 5066: 967, 5067: 964, 5068: 965, 5069: 963, 5070: 962, 5071: 961, 5072: 960, 5073: 959, 5074: 958, 5075: 957, 5076: 956, 5077: 955, 5078: 954, 5079: 953, 5080: 952, 5081: 950, 5082: 951, 5083: 949, 5084: 948, 5085: 947, 5086: 946, 5087: 945, 5088: 944, 5089: 1428, 5090: 943, 5091: 942, 5092: 941, 5093: 940, 5094: 938, 5095: 939, 5096: 937, 5097: 936, 5098: 935, 5099: 934, 5100: 933, 5101: 932, 5102: 931, 5103: 930, 5104: 929, 5105: 928, 5106: 927, 5107: 2247, 5108: 926, 5109: 925, 5110: 924, 5111: 923, 5112: 922, 5113: 921, 5114: 920, 5115: 919, 5116: 917, 5117: 916, 5118: 918, 5119: 915, 5120: 914, 5121: 913, 5122: 912, 5123: 911, 5124: 910, 5125: 909, 5126: 908, 5127: 907, 5128: 906, 5129: 905, 5130: 904, 5131: 903, 5132: 902, 5133: 901, 5134: 900, 5135: 899, 5136: 898, 5137: 897, 5138: 896, 5139: 895, 5140: 894, 5141: 893, 5142: 892, 5143: 891, 5144: 890, 5145: 889, 5146: 888, 5147: 887, 5148: 886, 5149: 885, 5150: 884, 5151: 883, 5152: 882, 5153: 881, 5154: 880, 5155: 879, 5156: 878, 5157: 877, 5158: 876, 5159: 875, 5160: 874, 5161: 873, 5162: 872, 5163: 871, 5164: 870, 5165: 869, 5166: 868, 5167: 867, 5168: 866, 5169: 865, 5170: 864, 5171: 863, 5172: 862, 5173: 861, 5174: 860, 5175: 859, 5176: 858, 5177: 857, 5178: 856, 5179: 854, 5180: 853, 5181: 852, 5182: 851, 5183: 850, 5184: 849, 5185: 848, 5186: 847, 5187: 846, 5188: 845, 5189: 844, 5190: 842, 5191: 841, 5192: 843, 5193: 840, 5194: 839, 5195: 838, 5196: 837, 5197: 836, 5198: 835, 5199: 834, 5200: 833, 5201: 832, 5202: 831, 5203: 830, 5204: 829, 5205: 828, 5206: 827, 5207: 826, 5208: 825, 5209: 824, 5210: 823, 5211: 822, 5212: 821, 5213: 820, 5214: 819, 5215: 818, 5216: 817, 5217: 816, 5218: 814, 5219: 815, 5220: 813, 5221: 811, 5222: 810, 5223: 809, 5224: 808, 5225: 807, 5226: 812, 5227: 806, 5228: 805, 5229: 804, 5230: 803, 5231: 802, 5232: 801, 5233: 800, 5234: 799, 5235: 798, 5236: 797, 5237: 796, 5238: 795, 5239: 794, 5240: 793, 5241: 792, 5242: 791, 5243: 790, 5244: 789, 5245: 788, 5246: 786, 5247: 787, 5248: 785, 5249: 784, 5250: 783, 5251: 782, 5252: 781, 5253: 780, 5254: 779, 5255: 778, 5256: 777, 5257: 775, 5258: 776, 5259: 774, 5260: 773, 5261: 772, 5262: 771, 5263: 770, 5264: 769, 5265: 768, 5266: 767, 5267: 766, 5268: 765, 5269: 764, 5270: 763, 5271: 762, 5272: 761, 5273: 760, 5274: 759, 5275: 758, 5276: 757, 5277: 756, 5278: 755, 5279: 754, 5280: 753, 5281: 752, 5282: 751, 5283: 750, 5284: 749, 5285: 748, 5286: 855, 5287: 747, 5288: 746, 5289: 745, 5290: 744, 5291: 743, 5292: 742, 5293: 741, 5294: 740, 5295: 739, 5296: 738, 5297: 737, 5298: 736, 5299: 735, 5300: 734, 5301: 733, 5302: 732, 5303: 731, 5304: 730, 5305: 729, 5306: 728, 5307: 727, 5308: 726, 5309: 725, 5310: 724, 5311: 723, 5312: 722, 5313: 721, 5314: 720, 5315: 719, 5316: 718, 5317: 717, 5318: 716, 5319: 715, 5320: 714, 5321: 713, 5322: 712, 5323: 711, 5324: 710, 5325: 709, 5326: 708, 5327: 707, 5328: 706, 5329: 705, 5330: 704, 5331: 703, 5332: 702, 5333: 701, 5334: 700, 5335: 699, 5336: 698, 5337: 697, 5338: 696, 5339: 695, 5340: 694, 5341: 693, 5342: 692, 5343: 691, 5344: 690, 5345: 689, 5346: 688, 5347: 687, 5348: 686, 5349: 685, 5350: 684, 5351: 682, 5352: 683, 5353: 681, 5354: 680, 5355: 679, 5356: 678, 5357: 677, 5358: 676, 5359: 675, 5360: 674, 5361: 673, 5362: 672, 5363: 671, 5364: 670, 5365: 669, 5366: 668, 5367: 667, 5368: 666, 5369: 665, 5370: 664, 5371: 663, 5372: 662, 5373: 661, 5374: 660, 5375: 659, 5376: 658, 5377: 657, 5378: 656, 5379: 655, 5380: 654, 5381: 653, 5382: 652, 5383: 651, 5384: 650, 5385: 649, 5386: 648, 5387: 647, 5388: 646, 5389: 645, 5390: 644, 5391: 643, 5392: 642, 5393: 641, 5394: 640, 5395: 639, 5396: 638, 5397: 637, 5398: 636, 5399: 635, 5400: 634, 5401: 633, 5402: 632, 5403: 631, 5404: 630, 5405: 628, 5406: 629, 5407: 627, 5408: 626, 5409: 625, 5410: 624, 5411: 623, 5412: 622, 5413: 621, 5414: 620, 5415: 619, 5416: 618, 5417: 617, 5418: 616, 5419: 615, 5420: 614, 5421: 613, 5422: 612, 5423: 611, 5424: 610, 5425: 609, 5426: 608, 5427: 607, 5428: 606, 5429: 605, 5430: 604, 5431: 603, 5432: 602, 5433: 601, 5434: 600, 5435: 599, 5436: 598, 5437: 597, 5438: 596, 5439: 595, 5440: 594, 5441: 593, 5442: 592, 5443: 591, 5444: 590, 5445: 589, 5446: 588, 5447: 587, 5448: 586, 5449: 585, 5450: 584, 5451: 583, 5452: 582}}\n", + "{'item_id': {858: 0, 593: 1, 2384: 2, 2019: 3, 1961: 4, 1419: 5, 3111: 6, 573: 7, 213: 8, 3505: 9, 1734: 10, 2503: 11, 912: 12, 919: 13, 527: 14, 649: 15, 1252: 16, 318: 17, 3289: 18, 759: 19, 608: 20, 2396: 21, 2858: 22, 326: 23, 2028: 24, 1649: 25, 2762: 26, 17: 27, 34: 28, 246: 29, 2692: 30, 1617: 31, 300: 32, 1392: 33, 1111: 34, 150: 35, 562: 36, 549: 37, 1537: 38, 1554: 39, 448: 40, 265: 41, 866: 42, 1358: 43, 2324: 44, 235: 45, 446: 46, 247: 47, 1094: 48, 1704: 49, 50: 50, 162: 51, 45: 52, 348: 53, 508: 54, 1089: 55, 589: 56, 58: 57, 1694: 58, 2580: 59, 1834: 60, 2391: 61, 282: 62, 111: 63, 290: 64, 2067: 65, 1641: 66, 357: 67, 930: 68, 1230: 69, 947: 70, 3088: 71, 3133: 72, 3022: 73, 1294: 74, 3421: 75, 2804: 76, 1269: 77, 1276: 78, 1244: 79, 2622: 80, 955: 81, 2791: 82, 2300: 83, 1028: 84, 2863: 85, 3548: 86, 1197: 87, 951: 88, 1223: 89, 1211: 90, 933: 91, 1066: 92, 3072: 93, 907: 94, 2671: 95, 935: 96, 1304: 97, 3175: 98, 3035: 99, 1014: 100, 1078: 101, 3363: 102, 1270: 103, 1265: 104, 909: 105, 3396: 106, 1934: 107, 2174: 108, 911: 109, 945: 110, 2746: 111, 1188: 112, 471: 113, 3037: 114, 952: 115, 2289: 116, 916: 117, 1125: 118, 915: 119, 3028: 120, 3471: 121, 260: 122, 750: 123, 924: 124, 1210: 125, 1097: 126, 3545: 127, 2565: 128, 914: 129, 2087: 130, 918: 131, 899: 132, 1282: 133, 1022: 134, 900: 135, 364: 136, 1951: 137, 588: 138, 3549: 139, 963: 140, 1947: 141, 1081: 142, 2946: 143, 2083: 144, 1220: 145, 107: 146, 1380: 147, 2857: 148, 2096: 149, 1088: 150, 661: 151, 938: 152, 901: 153, 783: 154, 1083: 155, 2080: 156, 199: 157, 1416: 158, 48: 159, 903: 160, 1284: 161, 904: 162, 913: 163, 1212: 164, 2206: 165, 1086: 166, 950: 167, 1964: 168, 2208: 169, 906: 170, 942: 171, 2414: 172, 1680: 173, 926: 174, 1237: 175, 923: 176, 920: 177, 2146: 178, 1387: 179, 356: 180, 1079: 181, 2716: 182, 1148: 183, 232: 184, 1136: 185, 702: 186, 1882: 187, 1267: 188, 3508: 189, 3148: 190, 3543: 191, 1221: 192, 2132: 193, 1250: 194, 1193: 195, 1299: 196, 1225: 197, 3006: 198, 3196: 199, 908: 200, 1207: 201, 3469: 202, 1721: 203, 3438: 204, 2428: 205, 1883: 206, 2376: 207, 1945: 208, 3468: 209, 2728: 210, 3359: 211, 1938: 212, 1949: 213, 1231: 214, 2706: 215, 2707: 216, 2826: 217, 2492: 218, 2827: 219, 2572: 220, 2683: 221, 2699: 222, 3362: 223, 3504: 224, 1203: 225, 2501: 226, 2770: 227, 2842: 228, 3005: 229, 2555: 230, 3285: 231, 2710: 232, 2694: 233, 2975: 234, 2997: 235, 3270: 236, 3330: 237, 1233: 238, 2771: 239, 2147: 240, 3016: 241, 223: 242, 2433: 243, 2038: 244, 3068: 245, 3095: 246, 1208: 247, 1941: 248, 2919: 249, 2890: 250, 1293: 251, 1940: 252, 2678: 253, 1093: 254, 1911: 255, 2772: 256, 2546: 257, 2722: 258, 3203: 259, 2881: 260, 2759: 261, 2541: 262, 2336: 263, 2599: 264, 3113: 265, 2575: 266, 2828: 267, 2605: 268, 3408: 269, 2434: 270, 3051: 271, 1259: 272, 3467: 273, 1213: 274, 3159: 275, 2757: 276, 2712: 277, 1950: 278, 1939: 279, 1952: 280, 3526: 281, 2995: 282, 407: 283, 2676: 284, 2690: 285, 2333: 286, 2318: 287, 2719: 288, 3152: 289, 959: 290, 2303: 291, 1288: 292, 2629: 293, 2882: 294, 2713: 295, 3008: 296, 785: 297, 3160: 298, 2392: 299, 2390: 300, 2238: 301, 1953: 302, 3147: 303, 1674: 304, 3354: 305, 2900: 306, 3053: 307, 2734: 308, 2805: 309, 3379: 310, 2439: 311, 296: 312, 949: 313, 968: 314, 1959: 315, 2490: 316, 2574: 317, 2581: 318, 3325: 319, 2502: 320, 2723: 321, 3219: 322, 2901: 323, 3201: 324, 1956: 325, 3424: 326, 2906: 327, 2013: 328, 2598: 329, 299: 330, 3300: 331, 2758: 332, 24: 333, 43: 334, 2093: 335, 2395: 336, 2560: 337, 2686: 338, 1513: 339, 2485: 340, 3273: 341, 2491: 342, 2700: 343, 2841: 344, 3081: 345, 2840: 346, 2672: 347, 2070: 348, 2702: 349, 3176: 350, 2715: 351, 2693: 352, 3114: 353, 1623: 354, 2337: 355, 2701: 356, 2987: 357, 86: 358, 2600: 359, 3125: 360, 3179: 361, 3329: 362, 2010: 363, 461: 364, 1413: 365, 2024: 366, 1198: 367, 745: 368, 720: 369, 1196: 370, 1192: 371, 3149: 372, 1281: 373, 28: 374, 3307: 375, 3224: 376, 3265: 377, 1219: 378, 3128: 379, 2360: 380, 3462: 381, 3030: 382, 1348: 383, 1719: 384, 2075: 385, 541: 386, 2972: 387, 1248: 388, 1007: 389, 902: 390, 898: 391, 25: 392, 3067: 393, 922: 394, 1247: 395, 2859: 396, 2677: 397, 2186: 398, 2609: 399, 1303: 400, 1412: 401, 1104: 402, 2648: 403, 2357: 404, 2628: 405, 1228: 406, 3429: 407, 2732: 408, 1080: 409, 1584: 410, 480: 411, 32: 412, 2046: 413, 1748: 414, 2571: 415, 800: 416, 1214: 417, 3365: 418, 2664: 419, 1909: 420, 1372: 421, 1591: 422, 504: 423, 1653: 424, 2916: 425, 1356: 426, 1580: 427, 1527: 428, 1876: 429, 1396: 430, 971: 431, 2660: 432, 329: 433, 2012: 434, 788: 435, 3156: 436, 2393: 437, 512: 438, 1217: 439, 3075: 440, 3089: 441, 338: 442, 1573: 443, 1690: 444, 1150: 445, 2973: 446, 1603: 447, 1544: 448, 185: 449, 1391: 450, 1831: 451, 1320: 452, 2920: 453, 1885: 454, 1931: 455, 1240: 456, 514: 457, 1779: 458, 2808: 459, 2986: 460, 405: 461, 2053: 462, 1590: 463, 1041: 464, 2020: 465, 1056: 466, 1132: 467, 66: 468, 737: 469, 2448: 470, 256: 471, 1176: 472, 1199: 473, 3447: 474, 176: 475, 1200: 476, 1374: 477, 1657: 478, 3527: 479, 2968: 480, 1375: 481, 1274: 482, 2455: 483, 2985: 484, 1376: 485, 2011: 486, 2613: 487, 2021: 488, 2407: 489, 2105: 490, 2117: 491, 2311: 492, 2140: 493, 1253: 494, 3551: 495, 1234: 496, 3547: 497, 1965: 498, 2641: 499, 2054: 500, 1373: 501, 2364: 502, 2408: 503, 2456: 504, 2642: 505, 1254: 506, 1278: 507, 3090: 508, 3052: 509, 1397: 510, 2730: 511, 2848: 512, 1594: 513, 599: 514, 3361: 515, 3461: 516, 1077: 517, 306: 518, 1185: 519, 3418: 520, 1242: 521, 110: 522, 307: 523, 1874: 524, 1504: 525, 1258: 526, 1957: 527, 2971: 528, 2064: 529, 1243: 530, 1345: 531, 344: 532, 967: 533, 3130: 534, 249: 535, 1280: 536, 778: 537, 1784: 538, 293: 539, 590: 540, 475: 541, 1682: 542, 1179: 543, 2291: 544, 3108: 545, 1264: 546, 373: 547, 194: 548, 337: 549, 358: 550, 454: 551, 1366: 552, 1061: 553, 515: 554, 2366: 555, 961: 556, 3246: 557, 1466: 558, 62: 559, 3386: 560, 3342: 561, 3019: 562, 3426: 563, 1120: 564, 11: 565, 1268: 566, 4: 567, 1735: 568, 230: 569, 805: 570, 3255: 571, 2688: 572, 21: 573, 26: 574, 1727: 575, 280: 576, 3252: 577, 1729: 578, 3155: 579, 509: 580, 1747: 581, 224: 582, 1918: 583, 3435: 584, 2726: 585, 320: 586, 2361: 587, 3364: 588, 1442: 589, 1480: 590, 875: 591, 3334: 592, 1260: 593, 31: 594, 1711: 595, 2441: 596, 2966: 597, 1962: 598, 851: 599, 350: 600, 2002: 601, 695: 602, 1201: 603, 2059: 604, 1183: 605, 2875: 606, 1096: 607, 2288: 608, 921: 609, 1036: 610, 940: 611, 2644: 612, 253: 613, 1586: 614, 605: 615, 1027: 616, 30: 617, 42: 618, 457: 619, 1006: 620, 2908: 621, 766: 622, 1884: 623, 1801: 624, 3257: 625, 3521: 626, 3528: 627, 418: 628, 765: 629, 455: 630, 2431: 631, 1726: 632, 1340: 633, 1966: 634, 2313: 635, 3150: 636, 969: 637, 1797: 638, 3550: 639, 308: 640, 3498: 641, 92: 642, 2412: 643, 169: 644, 1595: 645, 2819: 646, 3198: 647, 2130: 648, 994: 649, 3499: 650, 2529: 651, 2102: 652, 1296: 653, 1: 654, 594: 655, 1301: 656, 1307: 657, 3132: 658, 1354: 659, 735: 660, 1954: 661, 388: 662, 1272: 663, 2302: 664, 2542: 665, 1500: 666, 2947: 667, 2355: 668, 3253: 669, 1923: 670, 1517: 671, 367: 672, 2662: 673, 3018: 674, 2739: 675, 1827: 676, 440: 677, 2124: 678, 500: 679, 1614: 680, 7: 681, 3450: 682, 2108: 683, 2926: 684, 597: 685, 1777: 686, 3263: 687, 708: 688, 236: 689, 539: 690, 216: 691, 1020: 692, 378: 693, 3208: 694, 333: 695, 1713: 696, 5: 697, 830: 698, 2004: 699, 1042: 700, 3098: 701, 3094: 702, 1409: 703, 231: 704, 372: 705, 157: 706, 1582: 707, 1944: 708, 1914: 709, 1367: 710, 2709: 711, 1377: 712, 252: 713, 784: 714, 585: 715, 1379: 716, 3086: 717, 3267: 718, 186: 719, 466: 720, 673: 721, 1702: 722, 1689: 723, 2266: 724, 1806: 725, 355: 726, 537: 727, 3: 728, 1494: 729, 1855: 730, 153: 731, 2387: 732, 1503: 733, 2335: 734, 1646: 735, 818: 736, 1581: 737, 520: 738, 1863: 739, 2016: 740, 1012: 741, 432: 742, 1602: 743, 637: 744, 2036: 745, 1431: 746, 2953: 747, 1760: 748, 1453: 749, 688: 750, 2042: 751, 374: 752, 1005: 753, 437: 754, 2720: 755, 2296: 756, 1839: 757, 429: 758, 1707: 759, 420: 760, 325: 761, 2152: 762, 870: 763, 1731: 764, 3146: 765, 2526: 766, 2670: 767, 2763: 768, 2000: 769, 3104: 770, 2729: 771, 123: 772, 1295: 773, 2329: 774, 2949: 775, 2951: 776, 1222: 777, 2944: 778, 2194: 779, 1127: 780, 733: 781, 3404: 782, 1408: 783, 592: 784, 2353: 785, 1608: 786, 349: 787, 780: 788, 3197: 789, 380: 790, 1676: 791, 292: 792, 2871: 793, 3105: 794, 1273: 795, 151: 796, 3210: 797, 339: 798, 1261: 799, 1171: 800, 1129: 801, 1189: 802, 2512: 803, 1300: 804, 2349: 805, 1090: 806, 1394: 807, 1975: 808, 1960: 809, 3039: 810, 1285: 811, 2348: 812, 2076: 813, 2312: 814, 3070: 815, 2872: 816, 2150: 817, 1246: 818, 3101: 819, 3422: 820, 2750: 821, 1321: 822, 1305: 823, 2852: 824, 2915: 825, 1291: 826, 3552: 827, 3449: 828, 2301: 829, 1663: 830, 2100: 831, 1124: 832, 2463: 833, 2989: 834, 2745: 835, 2286: 836, 2022: 837, 2369: 838, 2802: 839, 3524: 840, 1991: 841, 2134: 842, 2003: 843, 1173: 844, 1587: 845, 2111: 846, 3388: 847, 2089: 848, 680: 849, 2717: 850, 2751: 851, 2794: 852, 3169: 853, 2378: 854, 1289: 855, 1974: 856, 2411: 857, 2410: 858, 2948: 859, 1187: 860, 2553: 861, 2471: 862, 3017: 863, 1091: 864, 2241: 865, 2513: 866, 2402: 867, 2795: 868, 2321: 869, 1846: 870, 2421: 871, 999: 872, 555: 873, 272: 874, 3071: 875, 2160: 876, 2866: 877, 2065: 878, 529: 879, 2085: 880, 714: 881, 3204: 882, 731: 883, 862: 884, 1292: 885, 2467: 886, 1912: 887, 3097: 888, 1297: 889, 3011: 890, 2943: 891, 948: 892, 2104: 893, 596: 894, 628: 895, 441: 896, 1084: 897, 2014: 898, 2620: 899, 2159: 900, 892: 901, 2176: 902, 2687: 903, 3308: 904, 341: 905, 47: 906, 2797: 907, 2611: 908, 2018: 909, 2570: 910, 2427: 911, 2001: 912, 2401: 913, 1350: 914, 2377: 915, 1597: 916, 1673: 917, 551: 918, 840: 919, 2359: 920, 3350: 921, 2287: 922, 3060: 923, 188: 924, 3282: 925, 2118: 926, 1610: 927, 2874: 928, 3494: 929, 1029: 930, 1955: 931, 534: 932, 1907: 933, 1678: 934, 319: 935, 497: 936, 3044: 937, 428: 938, 1332: 939, 943: 940, 39: 941, 2071: 942, 3296: 943, 1921: 944, 1357: 945, 1968: 946, 3501: 947, 2157: 948, 3143: 949, 1013: 950, 1755: 951, 6: 952, 1611: 953, 1393: 954, 2362: 955, 2867: 956, 1082: 957, 2472: 958, 345: 959, 1355: 960, 2237: 961, 1395: 962, 1215: 963, 2048: 964, 3194: 965, 1263: 966, 3015: 967, 474: 968, 1730: 969, 3167: 970, 281: 971, 2109: 972, 2167: 973, 2155: 974, 1994: 975, 2524: 976, 2520: 977, 2877: 978, 3260: 979, 531: 980, 3546: 981, 558: 982, 1206: 983, 1010: 984, 1643: 985, 1546: 986, 728: 987, 342: 988, 3248: 989, 3157: 990, 910: 991, 1256: 992, 671: 993, 3448: 994, 1235: 995, 1238: 996, 1963: 997, 1275: 998, 8: 999, 1162: 1000, 1073: 1001, 361: 1002, 741: 1003, 553: 1004, 1648: 1005, 610: 1006, 29: 1007, 1204: 1008, 2640: 1009, 2116: 1010, 2528: 1011, 316: 1012, 965: 1013, 1249: 1014, 928: 1015, 1371: 1016, 196: 1017, 2183: 1018, 931: 1019, 1344: 1020, 3230: 1021, 3033: 1022, 2403: 1023, 2615: 1024, 2094: 1025, 1333: 1026, 1407: 1027, 2747: 1028, 1917: 1029, 442: 1030, 1037: 1031, 173: 1032, 2178: 1033, 2034: 1034, 1982: 1035, 1343: 1036, 2181: 1037, 1732: 1038, 377: 1039, 519: 1040, 2450: 1041, 546: 1042, 2781: 1043, 905: 1044, 327: 1045, 2517: 1046, 2643: 1047, 2138: 1048, 1032: 1049, 2193: 1050, 3479: 1051, 2: 1052, 2143: 1053, 1967: 1054, 2161: 1055, 2239: 1056, 2243: 1057, 653: 1058, 1126: 1059, 2253: 1060, 3489: 1061, 837: 1062, 3439: 1063, 1172: 1064, 1566: 1065, 2409: 1066, 3584: 1067, 3590: 1068, 3591: 1069, 3529: 1070, 2959: 1071, 2912: 1072, 2829: 1073, 1792: 1074, 2894: 1075, 2334: 1076, 165: 1077, 170: 1078, 1438: 1079, 227: 1080, 1287: 1081, 861: 1082, 465: 1083, 1429: 1084, 1101: 1085, 1370: 1086, 2133: 1087, 2533: 1088, 2363: 1089, 2454: 1090, 2527: 1091, 2657: 1092, 2009: 1093, 3340: 1094, 2346: 1095, 426: 1096, 1334: 1097, 3555: 1098, 1924: 1099, 674: 1100, 10: 1101, 2082: 1102, 1644: 1103, 1353: 1104, 1266: 1105, 2961: 1106, 2724: 1107, 1347: 1108, 2668: 1109, 1128: 1110, 2787: 1111, 2148: 1112, 1970: 1113, 1330: 1114, 1389: 1115, 1972: 1116, 1995: 1117, 1971: 1118, 1983: 1119, 1986: 1120, 1969: 1121, 1326: 1122, 2465: 1123, 2122: 1124, 1988: 1125, 2460: 1126, 1985: 1127, 1978: 1128, 1976: 1129, 1980: 1130, 1987: 1131, 1981: 1132, 1979: 1133, 1977: 1134, 70: 1135, 1645: 1136, 1241: 1137, 3476: 1138, 2617: 1139, 1339: 1140, 3264: 1141, 1717: 1142, 2279: 1143, 724: 1144, 1771: 1145, 2328: 1146, 273: 1147, 532: 1148, 2898: 1149, 2389: 1150, 152: 1151, 1999: 1152, 2107: 1153, 177: 1154, 1342: 1155, 2125: 1156, 3259: 1157, 2443: 1158, 2801: 1159, 1569: 1160, 1059: 1161, 3358: 1162, 543: 1163, 587: 1164, 802: 1165, 105: 1166, 1888: 1167, 2297: 1168, 1722: 1169, 852: 1170, 417: 1171, 468: 1172, 222: 1173, 3046: 1174, 353: 1175, 2424: 1176, 2496: 1177, 266: 1178, 1541: 1179, 1629: 1180, 140: 1181, 1441: 1182, 1821: 1183, 1593: 1184, 691: 1185, 1457: 1186, 237: 1187, 550: 1188, 3269: 1189, 1894: 1190, 736: 1191, 289: 1192, 207: 1193, 447: 1194, 182: 1195, 168: 1196, 195: 1197, 2316: 1198, 3261: 1199, 179: 1200, 499: 1201, 3436: 1202, 1479: 1203, 64: 1204, 2774: 1205, 258: 1206, 15: 1207, 1556: 1208, 427: 1209, 1483: 1210, 1799: 1211, 218: 1212, 3331: 1213, 3405: 1214, 2406: 1215, 2991: 1216, 3107: 1217, 2058: 1218, 648: 1219, 3082: 1220, 3443: 1221, 490: 1222, 3256: 1223, 1047: 1224, 2115: 1225, 3441: 1226, 1552: 1227, 3444: 1228, 2278: 1229, 2006: 1230, 145: 1231, 2990: 1232, 494: 1233, 2476: 1234, 303: 1235, 1385: 1236, 3274: 1237, 1687: 1238, 552: 1239, 434: 1240, 786: 1241, 1488: 1242, 459: 1243, 1833: 1244, 1100: 1245, 1769: 1246, 1616: 1247, 479: 1248, 379: 1249, 2126: 1250, 425: 1251, 1099: 1252, 986: 1253, 535: 1254, 2069: 1255, 1639: 1256, 2474: 1257, 2736: 1258, 3129: 1259, 1226: 1260, 1216: 1261, 803: 1262, 2245: 1263, 2442: 1264, 1625: 1265, 1194: 1266, 3496: 1267, 2025: 1268, 1785: 1269, 71: 1270, 464: 1271, 1810: 1272, 3029: 1273, 571: 1274, 1872: 1275, 2624: 1276, 298: 1277, 476: 1278, 1809: 1279, 2331: 1280, 2114: 1281, 3535: 1282, 3412: 1283, 993: 1284, 485: 1285, 315: 1286, 3397: 1287, 172: 1288, 204: 1289, 44: 1290, 205: 1291, 1642: 1292, 2282: 1293, 1004: 1294, 160: 1295, 694: 1296, 1497: 1297, 1681: 1298, 1794: 1299, 502: 1300, 1626: 1301, 2081: 1302, 2807: 1303, 1465: 1304, 3174: 1305, 183: 1306, 1060: 1307, 125: 1308, 3481: 1309, 2097: 1310, 2268: 1311, 1057: 1312, 2330: 1313, 2077: 1314, 1805: 1315, 493: 1316, 1620: 1317, 1399: 1318, 22: 1319, 1958: 1320, 2697: 1321, 2764: 1322, 3247: 1323, 2561: 1324, 1598: 1325, 762: 1326, 81: 1327, 2294: 1328, 3099: 1329, 3079: 1330, 3112: 1331, 3507: 1332, 3398: 1333, 1017: 1334, 198: 1335, 3518: 1336, 991: 1337, 1177: 1338, 2112: 1339, 2137: 1340, 1633: 1341, 262: 1342, 1897: 1343, 3370: 1344, 1236: 1345, 1788: 1346, 366: 1347, 2144: 1348, 3100: 1349, 3576: 1350, 1286: 1351, 1619: 1352, 1476: 1353, 1427: 1354, 1916: 1355, 574: 1356, 261: 1357, 190: 1358, 241: 1359, 2470: 1360, 1135: 1361, 2419: 1362, 269: 1363, 1650: 1364, 2941: 1365, 1298: 1366, 431: 1367, 1271: 1368, 340: 1369, 2420: 1370, 3251: 1371, 1092: 1372, 1019: 1373, 1858: 1374, 1405: 1375, 3014: 1376, 3281: 1377, 988: 1378, 2231: 1379, 616: 1380, 164: 1381, 2090: 1382, 3395: 1383, 1454: 1384, 1031: 1385, 1049: 1386, 187: 1387, 16: 1388, 2247: 1389, 1518: 1390, 1683: 1391, 1516: 1392, 1913: 1393, 492: 1394, 808: 1395, 1459: 1396, 1449: 1397, 2779: 1398, 2425: 1399, 2262: 1400, 2168: 1401, 1605: 1402, 2518: 1403, 2385: 1404, 3034: 1405, 3272: 1406, 1542: 1407, 1447: 1408, 2173: 1409, 450: 1410, 317: 1411, 410: 1412, 2625: 1413, 700: 1414, 3102: 1415, 3173: 1416, 1365: 1417, 2626: 1418, 2725: 1419, 488: 1420, 707: 1421, 1783: 1422, 748: 1423, 435: 1424, 3032: 1425, 849: 1426, 1306: 1427, 1762: 1428, 2530: 1429, 3024: 1430, 2532: 1431, 3572: 1432, 692: 1433, 2531: 1434, 611: 1435, 3573: 1436, 3401: 1437, 880: 1438, 2091: 1439, 1862: 1440, 3574: 1441, 1588: 1442, 3392: 1443, 2862: 1444, 59: 1445, 2921: 1446, 2032: 1447, 2918: 1448, 3360: 1449, 2371: 1450, 2352: 1451, 1175: 1452, 2203: 1453, 1069: 1454, 3406: 1455, 799: 1456, 524: 1457, 1562: 1458, 381: 1459, 2416: 1460, 3385: 1461, 2752: 1462, 36: 1463, 2860: 1464, 2880: 1465, 112: 1466, 1615: 1467, 577: 1468, 761: 1469, 2322: 1470, 836: 1471, 1744: 1472, 2153: 1473, 2645: 1474, 2761: 1475, 141: 1476, 2748: 1477, 2708: 1478, 3301: 1479, 3512: 1480, 3519: 1481, 954: 1482, 932: 1483, 3341: 1484, 2835: 1485, 3020: 1486, 288: 1487, 996: 1488, 3430: 1489, 95: 1490, 208: 1491, 1382: 1492, 1499: 1493, 60: 1494, 2522: 1495, 2883: 1496, 2711: 1497, 3093: 1498, 1283: 1499, 1209: 1500, 1008: 1501, 2922: 1502, 964: 1503, 368: 1504, 1378: 1505, 2478: 1506, 416: 1507, 3000: 1508, 2993: 1509, 163: 1510, 2344: 1511, 1772: 1512, 2367: 1513, 2475: 1514, 2735: 1515, 2616: 1516, 2468: 1517, 462: 1518, 1606: 1519, 1262: 1520, 2970: 1521, 314: 1522, 3168: 1523, 3153: 1524, 2135: 1525, 2822: 1526, 158: 1527, 1085: 1528, 2405: 1529, 2088: 1530, 2043: 1531, 2950: 1532, 595: 1533, 1526: 1534, 1033: 1535, 1025: 1536, 2936: 1537, 2015: 1538, 586: 1539, 2098: 1540, 1016: 1541, 3503: 1542, 2204: 1543, 3419: 1544, 2511: 1545, 2917: 1546, 2110: 1547, 1791: 1548, 2023: 1549, 3083: 1550, 3384: 1551, 1147: 1552, 2937: 1553, 2248: 1554, 495: 1555, 946: 1556, 2996: 1557, 1948: 1558, 2721: 1559, 2907: 1560, 978: 1561, 2057: 1562, 936: 1563, 1035: 1564, 52: 1565, 2283: 1566, 382: 1567, 481: 1568, 3061: 1569, 2618: 1570, 248: 1571, 2836: 1572, 2766: 1573, 489: 1574, 2718: 1575, 413: 1576, 3244: 1577, 2844: 1578, 2704: 1579, 937: 1580, 3118: 1581, 828: 1582, 1996: 1583, 953: 1584, 2383: 1585, 639: 1586, 3491: 1587, 1845: 1588, 2290: 1589, 2696: 1590, 2136: 1591, 156: 1592, 3451: 1593, 2261: 1594, 838: 1595, 2145: 1596, 2295: 1597, 3087: 1598, 1485: 1599, 3506: 1600, 3497: 1601, 2539: 1602, 2870: 1603, 2567: 1604, 2356: 1605, 3120: 1606, 371: 1607, 2558: 1608, 2469: 1609, 2780: 1610, 2372: 1611, 2072: 1612, 2793: 1613, 1440: 1614, 3045: 1615, 2796: 1616, 2374: 1617, 2375: 1618, 2413: 1619, 1474: 1620, 1461: 1621, 3343: 1622, 2891: 1623, 305: 1624, 2259: 1625, 2473: 1626, 19: 1627, 1381: 1628, 419: 1629, 3074: 1630, 2621: 1631, 2398: 1632, 1892: 1633, 73: 1634, 1545: 1635, 1997: 1636, 1873: 1637, 1693: 1638, 2154: 1639, 832: 1640, 114: 1641, 225: 1642, 2269: 1643, 89: 1644, 233: 1645, 1835: 1646, 1290: 1647, 2340: 1648, 3073: 1649, 1666: 1650, 1043: 1651, 2292: 1652, 565: 1653, 842: 1654, 2784: 1655, 879: 1656, 742: 1657, 1130: 1658, 2554: 1659, 2782: 1660, 1341: 1661, 328: 1662, 330: 1663, 1327: 1664, 2519: 1665, 2459: 1666, 220: 1667, 1346: 1668, 2121: 1669, 2149: 1670, 1388: 1671, 2451: 1672, 2338: 1673, 2113: 1674, 2163: 1675, 2119: 1676, 2430: 1677, 3036: 1678, 2370: 1679, 3345: 1680, 2537: 1681, 2851: 1682, 3062: 1683, 2273: 1684, 517: 1685, 3165: 1686, 1752: 1687, 2741: 1688, 20: 1689, 2276: 1690, 3442: 1691, 2506: 1692, 351: 1693, 46: 1694, 362: 1695, 2120: 1696, 2327: 1697, 2789: 1698, 2655: 1699, 1984: 1700, 2902: 1701, 1329: 1702, 2092: 1703, 2005: 1704, 2252: 1705, 2139: 1706, 2033: 1707, 2123: 1708, 1881: 1709, 1030: 1710, 1190: 1711, 678: 1712, 1635: 1713, 1095: 1714, 412: 1715, 1411: 1716, 1302: 1717, 3371: 1718, 1935: 1719, 2577: 1720, 1651: 1721, 1507: 1722, 2166: 1723, 1178: 1724, 2162: 1725, 3389: 1726, 2373: 1727, 501: 1728, 3317: 1729, 3262: 1730, 3538: 1731, 1227: 1732, 2792: 1733, 3206: 1734, 85: 1735, 2284: 1736, 2488: 1737, 662: 1738, 2551: 1739, 229: 1740, 2803: 1741, 259: 1742, 1184: 1743, 1425: 1744, 180: 1745, 104: 1746, 542: 1747, 719: 1748, 1410: 1749, 2423: 1750, 2066: 1751, 746: 1752, 2940: 1753, 1009: 1754, 2550: 1755, 2788: 1756, 2457: 1757, 386: 1758, 2525: 1759, 304: 1760, 3238: 1761, 3040: 1762, 1218: 1763, 3452: 1764, 69: 1765, 88: 1766, 433: 1767, 1390: 1768, 513: 1769, 2587: 1770, 3186: 1771, 376: 1772, 387: 1773, 886: 1774, 1672: 1775, 2815: 1776, 2404: 1777, 3225: 1778, 3440: 1779, 3416: 1780, 80: 1781, 668: 1782, 363: 1783, 2041: 1784, 2188: 1785, 2861: 1786, 3513: 1787, 1361: 1788, 3338: 1789, 3004: 1790, 3588: 1791, 2885: 1792, 3374: 1793, 55: 1794, 3459: 1795, 3534: 1796, 3502: 1797, 3500: 1798, 1224: 1799, 1202: 1800, 2397: 1801, 3138: 1802, 2738: 1803, 2749: 1804, 2417: 1805, 2418: 1806, 2942: 1807, 1251: 1808, 3076: 1809, 154: 1810, 1362: 1811, 2925: 1812, 3135: 1813, 3283: 1814, 3420: 1815, 2932: 1816, 2535: 1817, 3428: 1818, 2051: 1819, 2394: 1820, 3536: 1821, 3484: 1822, 1547: 1823, 1487: 1824, 3250: 1825, 2250: 1826, 3477: 1827, 1895: 1828, 3478: 1829, 3480: 1830, 3466: 1831, 2240: 1832, 1583: 1833, 1848: 1834, 1920: 1835, 1750: 1836, 491: 1837, 2432: 1838, 1515: 1839, 159: 1840, 1699: 1841, 2437: 1842, 507: 1843, 929: 1844, 506: 1845, 14: 1846, 3366: 1847, 1103: 1848, 3066: 1849, 2232: 1850, 2800: 1851, 1856: 1852, 161: 1853, 2078: 1854, 1279: 1855, 1401: 1856, 144: 1857, 518: 1858, 3284: 1859, 647: 1860, 2440: 1861, 848: 1862, 1186: 1863, 2399: 1864, 3189: 1865, 2170: 1866, 1359: 1867, 2665: 1868, 423: 1869, 2314: 1870, 1667: 1871, 2928: 1872, 1422: 1873, 2306: 1874, 2445: 1875, 2180: 1876, 743: 1877, 533: 1878, 445: 1879, 13: 1880, 2505: 1881, 801: 1882, 365: 1883, 1627: 1884, 2429: 1885, 540: 1886, 575: 1887, 2498: 1888, 370: 1889, 1417: 1890, 2052: 1891, 1665: 1892, 2977: 1893, 2354: 1894, 3387: 1895, 415: 1896, 191: 1897, 2521: 1898, 87: 1899, 2974: 1900, 2566: 1901, 1445: 1902, 3054: 1903, 747: 1904, 2386: 1905, 2612: 1906, 1942: 1907, 3347: 1908, 973: 1909, 917: 1910, 3163: 1911, 1946: 1912, 82: 1913, 2969: 1914, 444: 1915, 3327: 1916, 3182: 1917, 2846: 1918, 2905: 1919, 3134: 1920, 3091: 1921, 3096: 1922, 670: 1923, 2935: 1924, 2731: 1925, 681: 1926, 1927: 1927, 1131: 1928, 2210: 1929, 2202: 1930, 934: 1931, 976: 1932, 897: 1933, 3304: 1934, 1277: 1935, 2068: 1936, 1064: 1937, 2929: 1938, 2184: 1939, 2212: 1940, 941: 1941, 3047: 1942, 1840: 1943, 970: 1944, 2040: 1945, 2379: 1946, 3310: 1947, 12: 1948, 3368: 1949, 1609: 1950, 3475: 1951, 982: 1952, 1245: 1953, 1933: 1954, 944: 1955, 3110: 1956, 2495: 1957, 3585: 1958, 2633: 1959, 171: 1960, 3249: 1961, 2060: 1962, 309: 1963, 581: 1964, 1932: 1965, 277: 1966, 147: 1967, 564: 1968, 1589: 1969, 1034: 1970, 2927: 1971, 41: 1972, 523: 1973, 1660: 1974, 538: 1975, 2171: 1976, 846: 1977, 645: 1978, 1624: 1979, 322: 1980, 57: 1981, 271: 1982, 1836: 1983, 35: 1984, 1841: 1985, 1051: 1986, 1816: 1987, 408: 1988, 580: 1989, 94: 1990, 1943: 1991, 632: 1992, 718: 1993, 3115: 1994, 63: 1995, 2967: 1996, 3557: 1997, 3010: 1998, 1759: 1999, 2351: 2000, 2310: 2001, 1053: 2002, 2345: 2003, 621: 2004, 1023: 2005, 1844: 2006, 2820: 2007, 97: 2008, 3078: 2009, 1701: 2010, 2192: 2011, 72: 2012, 1829: 2013, 3211: 2014, 2976: 2015, 1596: 2016, 3158: 2017, 2479: 2018, 3298: 2019, 2285: 2020, 2590: 2021, 3188: 2022, 2661: 2023, 2422: 2024, 2884: 2025, 2106: 2026, 383: 2027, 1472: 2028, 2956: 2029, 1804: 2030, 521: 2031, 3409: 2032, 3266: 2033, 1523: 2034, 1743: 2035, 1310: 2036, 2689: 2037, 77: 2038, 297: 2039, 3178: 2040, 3335: 2041, 2265: 2042, 2141: 2043, 101: 2044, 1257: 2045, 663: 2046, 2500: 2047, 2249: 2048, 2447: 2049, 3243: 2050, 3254: 2051, 3544: 2052, 166: 2053, 65: 2054, 2381: 2055, 2380: 2056, 3391: 2057, 3495: 2058, 1112: 2059, 893: 2060, 1563: 2061, 175: 2062, 3437: 2063, 2435: 2064, 697: 2065, 2037: 2066, 2806: 2067, 1866: 2068, 925: 2069, 2101: 2070, 2267: 2071, 1464: 2072, 451: 2073, 2583: 2074, 335: 2075, 1754: 2076, 257: 2077, 360: 2078, 1498: 2079, 2062: 2080, 2497: 2081, 1463: 2082, 804: 2083, 1475: 2084, 2597: 2085, 270: 2086, 276: 2087, 2586: 2088, 1675: 2089, 482: 2090, 422: 2091, 2320: 2092, 554: 2093, 1003: 2094, 2326: 2095, 990: 2096, 132: 2097, 79: 2098, 640: 2099, 3516: 2100, 3600: 2101, 3564: 2102, 3602: 2103, 3604: 2104, 3520: 2105, 3605: 2106, 3608: 2107, 3610: 2108, 3457: 2109, 2156: 2110, 3200: 2111, 1937: 2112, 1414: 2113, 635: 2114, 2436: 2115, 516: 2116, 1021: 2117, 1113: 2118, 1621: 2119, 1688: 2120, 1919: 2121, 1018: 2122, 3355: 2123, 1161: 2124, 3399: 2125, 1205: 2126, 239: 2127, 2924: 2128, 2275: 2129, 704: 2130, 393: 2131, 3213: 2132, 2084: 2133, 1739: 2134, 1973: 2135, 126: 2136, 3433: 2137, 3434: 2138, 3258: 2139, 2733: 2140, 1167: 2141, 203: 2142, 234: 2143, 193: 2144, 3390: 2145, 3349: 2146, 76: 2147, 3614: 2148, 1746: 2149, 1936: 2150, 3587: 2151, 2073: 2152, 2669: 2153, 3525: 2154, 725: 2155, 3217: 2156, 2647: 2157, 3486: 2158, 2667: 2159, 3375: 2160, 242: 2161, 1925: 2162, 2939: 2163, 1684: 2164, 1468: 2165, 613: 2166, 84: 2167, 206: 2168, 1255: 2169, 2636: 2170, 2579: 2171, 511: 2172, 559: 2173, 2293: 2174, 556: 2175, 2536: 2176, 2649: 2177, 103: 2178, 2663: 2179, 332: 2180, 3488: 2181, 2656: 2182, 2637: 2183, 2638: 2184, 2634: 2185, 2646: 2186, 2814: 2187, 2652: 2188, 2654: 2189, 1337: 2190, 2651: 2191, 841: 2192, 2568: 2193, 2260: 2194, 3007: 2195, 3271: 2196, 1105: 2197, 3069: 2198, 1421: 2199, 2988: 2200, 835: 2201, 2573: 2202, 2493: 2203, 3565: 2204, 612: 2205, 1456: 2206, 122: 2207, 1599: 2208, 2582: 2209, 2368: 2210, 2783: 2211, 1331: 2212, 2740: 2213, 1655: 2214, 2868: 2215, 2790: 2216, 606: 2217, 3598: 2218, 3606: 2219, 3559: 2220, 3415: 2221, 3311: 2222, 3456: 2223, 1046: 2224, 1406: 2225, 214: 2226, 334: 2227, 1116: 2228, 1901: 2229, 3142: 2230, 1875: 2231, 2365: 2232, 2029: 2233, 2865: 2234, 1535: 2235, 414: 2236, 569: 2237, 3372: 2238, 2540: 2239, 547: 2240, 1067: 2241, 3324: 2242, 3103: 2243, 291: 2244, 3593: 2245, 421: 2246, 2453: 2247, 3145: 2248, 3038: 2249, 3533: 2250, 615: 2251, 3532: 2252, 240: 2253, 956: 2254, 2653: 2255, 2131: 2256, 2983: 2257, 1076: 2258, 2650: 2259, 927: 2260, 962: 2261, 775: 2262, 2847: 2263, 1160: 2264, 347: 2265, 2682: 2266, 1024: 2267, 2753: 2268, 3275: 2269, 2195: 2270, 456: 2271, 1511: 2272, 1446: 2273, 1733: 2274, 3106: 2275, 3328: 2276, 2246: 2277, 3221: 2278, 3571: 2279, 3570: 2280, 389: 2281, 1324: 2282, 2315: 2283, 2516: 2284, 352: 2285, 324: 2286, 1612: 2287, 1904: 2288, 2007: 2289, 570: 2290, 3049: 2291, 452: 2292, 2236: 2293, 829: 2294, 1613: 2295, 477: 2296, 268: 2297, 409: 2298, 215: 2299, 806: 2300, 2639: 2301, 1670: 2302, 1753: 2303, 3339: 2304, 2893: 2305, 2607: 2306, 3465: 2307, 2888: 2308, 184: 2309, 2978: 2310, 881: 2311, 1854: 2312, 135: 2313, 1000: 2314, 813: 2315, 312: 2316, 278: 2317, 3031: 2318, 833: 2319, 473: 2320, 472: 2321, 438: 2322, 2317: 2323, 2027: 2324, 275: 2325, 1604: 2326, 1550: 2327, 2992: 2328, 3013: 2329, 1998: 2330, 2903: 2331, 2878: 2332, 3021: 2333, 3490: 2334, 1989: 2335, 3487: 2336, 1068: 2337, 2187: 2338, 3316: 2339, 3445: 2340, 2242: 2341, 3577: 2342, 3510: 2343, 3041: 2344, 458: 2345, 3431: 2346, 3432: 2347, 2896: 2348, 487: 2349, 2055: 2350, 3427: 2351, 2458: 2352, 809: 2353, 2606: 2354, 3077: 2355, 121: 2356, 3402: 2357, 1865: 2358, 1123: 2359, 2659: 2360, 2182: 2361, 2017: 2362, 1571: 2363, 2099: 2364, 3199: 2365, 3414: 2366, 2263: 2367, 3235: 2368, 116: 2369, 2585: 2370, 709: 2371, 3393: 2372, 2151: 2373, 1647: 2374, 798: 2375, 2594: 2376, 2507: 2377, 781: 2378, 2281: 2379, 1352: 2380, 869: 2381, 210: 2382, 650: 2383, 2272: 2384, 9: 2385, 467: 2386, 189: 2387, 3425: 2388, 1703: 2389, 1900: 2390, 1812: 2391, 1585: 2392, 525: 2393, 1857: 2394, 505: 2395, 267: 2396, 2610: 2397, 2798: 2398, 449: 2399, 984: 2400, 3394: 2401, 2879: 2402, 711: 2403, 217: 2404, 3042: 2405, 1692: 2406, 2483: 2407, 1432: 2408, 3268: 2409, 2714: 2410, 1450: 2411, 2562: 2412, 2856: 2413, 2744: 2414, 1640: 2415, 957: 2416, 1152: 2417, 181: 2418, 1495: 2419, 1720: 2420, 667: 2421, 2817: 2422, 839: 2423, 2899: 2424, 1011: 2425, 2050: 2426, 2142: 2427, 631: 2428, 1654: 2429, 2079: 2430, 2035: 2431, 960: 2432, 2205: 2433, 2589: 2434, 255: 2435, 2549: 2436, 2952: 2437, 3423: 2438, 2264: 2439, 3141: 2440, 2515: 2441, 2982: 2442, 2452: 2443, 1992: 2444, 2462: 2445, 1993: 2446, 891: 2447, 3367: 2448, 2816: 2449, 627: 2450, 1929: 2451, 2938: 2452, 1477: 2453, 1460: 2454, 2962: 2455, 3292: 2456, 2773: 2457, 3622: 2458, 769: 2459, 1758: 2460, 484: 2461, 2045: 2462, 888: 2463, 3144: 2464, 2695: 2465, 3492: 2466, 238: 2467, 3578: 2468, 3509: 2469, 3286: 2470, 96: 2471, 3137: 2472, 1015: 2473, 1317: 2474, 1398: 2475, 2382: 2476, 1322: 2477, 2892: 2478, 2255: 2479, 2095: 2480, 3043: 2481, 807: 2482, 987: 2483, 1600: 2484, 3232: 2485, 2044: 2486, 1837: 2487, 710: 2488, 470: 2489, 102: 2490, 321: 2491, 1695: 2492, 3556: 2493, 3012: 2494, 1896: 2495, 3417: 2496, 2776: 2497, 2630: 2498, 1428: 2499, 3620: 2500, 2177: 2501, 2523: 2502, 1363: 2503, 1496: 2504, 3299: 2505, 1631: 2506, 1669: 2507, 302: 2508, 131: 2509, 1482: 2510, 3287: 2511, 3483: 2512, 544: 2513, 548: 2514, 2889: 2515, 1898: 2516, 201: 2517, 463: 2518, 2504: 2519, 3403: 2520, 3579: 2521, 3554: 2522, 3617: 2523, 3618: 2524, 3596: 2525, 3580: 2526, 3537: 2527, 3597: 2528, 3619: 2529, 3326: 2530, 2169: 2531, 1826: 2532, 1677: 2533, 2350: 2534, 2681: 2535, 2767: 2536, 2691: 2537, 3048: 2538, 2786: 2539, 2257: 2540, 2799: 2541, 2756: 2542, 3223: 2543, 83: 2544, 1484: 2545, 2853: 2546, 1860: 2547, 3214: 2548, 536: 2549, 3109: 2550, 23: 2551, 1906: 2552, 3218: 2553, 2965: 2554, 3613: 2555, 37: 2556, 1564: 2557, 638: 2558, 74: 2559, 301: 2560, 469: 2561, 1632: 2562, 779: 2563, 2165: 2564, 685: 2565, 2548: 2566, 1668: 2567, 2426: 2568, 3063: 2569, 3599: 2570, 61: 2571, 436: 2572, 1658: 2573, 18: 2574, 209: 2575, 93: 2576, 2809: 2577, 567: 2578, 2727: 2579, 1154: 2580, 854: 2581, 850: 2582, 669: 2583, 1351: 2584, 263: 2585, 3531: 2586, 2849: 2587, 1050: 2588, 563: 2589, 715: 2590, 343: 2591, 3539: 2592, 2305: 2593, 155: 2594, 3562: 2595, 782: 2596, 3586: 2597, 390: 2598, 3313: 2599, 211: 2600, 1404: 2601, 254: 2602, 78: 2603, 882: 2604, 424: 2605, 1044: 2606, 346: 2607, 1473: 2608, 2482: 2609, 3306: 2610, 2596: 2611, 528: 2612, 3309: 2613, 2196: 2614, 1869: 2615, 3563: 2616, 1867: 2617, 2307: 2618, 1853: 2619, 2128: 2620, 2325: 2621, 1592: 2622, 486: 2623, 656: 2624, 1679: 2625, 1439: 2626, 867: 2627, 453: 2628, 174: 2629, 2552: 2630, 810: 2631, 1798: 2632, 118: 2633, 331: 2634, 2190: 2635, 3127: 2636, 2449: 2637, 2876: 2638, 885: 2639, 2280: 2640, 716: 2641, 478: 2642, 1436: 2643, 626: 2644, 243: 2645, 3511: 2646, 2494: 2647, 618: 2648, 1661: 2649, 1686: 2650, 391: 2651, 998: 2652, 1662: 2653, 1824: 2654, 732: 2655, 2812: 2656, 1532: 2657, 283: 2658, 1601: 2659, 2271: 2660, 510: 2661, 2201: 2662, 100: 2663, 3553: 2664, 3566: 2665, 1870: 2666, 443: 2667, 3357: 2668, 3319: 2669, 3185: 2670, 1910: 2671, 2810: 2672, 2047: 2673, 336: 2674, 3639: 2675, 3634: 2676, 764: 2677, 197: 2678, 503: 2679, 633: 2680, 68: 2681, 1328: 2682, 1325: 2683, 2461: 2684, 1191: 2685, 294: 2686, 2341: 2687, 1767: 2688, 498: 2689, 703: 2690, 354: 2691, 167: 2692, 522: 2693, 27: 2694, 2400: 2695, 2256: 2696, 3344: 2697, 3026: 2698, 3638: 2699, 3633: 2700, 3635: 2701, 2614: 2702, 760: 2703, 1323: 2704, 202: 2705, 896: 2706, 2514: 2707, 1335: 2708, 2347: 2709, 2818: 2710, 3464: 2711, 1232: 2712, 2026: 2713, 3624: 2714, 2031: 2715, 3177: 2716, 3643: 2717, 3628: 2718, 3514: 2719, 1038: 2720, 3515: 2721, 3446: 2722, 3027: 2723, 3629: 2724, 3645: 2725, 1119: 2726, 483: 2727, 3594: 2728, 1525: 2729, 1756: 2730, 1990: 2731, 2754: 2732, 3453: 2733, 2049: 2734, 3181: 2735, 3470: 2736, 3636: 2737, 3644: 2738, 1822: 2739, 1426: 2740, 1164: 2741, 1902: 2742, 3240: 2743, 3623: 2744, 2323: 2745, 1349: 2746, 1336: 2747, 3241: 2748, 2833: 2749, 3117: 2750, 1151: 2751, 2008: 2752, 1087: 2753, 2886: 2754, 2737: 2755, 3474: 2756, 1180: 2757, 847: 2758, 997: 2759, 2679: 2760, 3122: 2761, 1928: 2762, 2981: 2763, 2984: 2764, 1849: 2765, 876: 2766, 1117: 2767, 1671: 2768, 1508: 2769, 1114: 2770, 1501: 2771, 53: 2772, 313: 2773, 3612: 2774, 2834: 2775, 38: 2776, 3190: 2777, 2499: 2778, 3668: 2779, 3615: 2780, 2674: 2781, 3684: 2782, 3671: 2783, 3683: 2784, 274: 2785, 117: 2786, 228: 2787, 99: 2788, 75: 2789, 3712: 2790, 3676: 2791, 128: 2792, 3704: 2793, 3702: 2794, 2446: 2795, 3649: 2796, 3697: 2797, 3706: 2798, 3681: 2799, 3654: 2800, 3686: 2801, 3708: 2802, 3703: 2803, 3688: 2804, 3685: 2805, 3698: 2806, 3700: 2807, 2342: 2808, 392: 2809, 3682: 2810, 3701: 2811, 3637: 2812, 3690: 2813, 3689: 2814, 2593: 2815, 583: 2816, 3699: 2817, 3707: 2818, 3675: 2819, 3693: 2820, 2843: 2821, 3320: 2822, 2897: 2823, 1889: 2824, 3711: 2825, 2086: 2826, 1121: 2827, 1169: 2828, 1313: 2829, 3567: 2830, 3581: 2831, 1770: 2832, 1782: 2833, 359: 2834, 1514: 2835, 3660: 2836, 3627: 2837, 3653: 2838, 3705: 2839, 3669: 2840, 3207: 2841, 753: 2842, 1415: 2843, 3632: 2844, 3713: 2845, 3678: 2846, 2831: 2847, 2945: 2848, 3677: 2849, 568: 2850, 3672: 2851, 369: 2852, 602: 2853, 219: 2854, 137: 2855, 136: 2856, 2103: 2857, 56: 2858, 146: 2859, 54: 2860, 2559: 2861, 90: 2862, 603: 2863, 877: 2864, 566: 2865, 771: 2866, 1749: 2867, 3473: 2868, 617: 2869, 406: 2870, 1420: 2871, 3680: 2872, 3674: 2873, 113: 2874, 3661: 2875, 3673: 2876, 2904: 2877, 3092: 2878, 2215: 2879, 1054: 2880, 3691: 2881, 250: 2882, 3055: 2883, 3679: 2884, 1656: 2885, 3692: 2886, 2339: 2887, 3715: 2888, 385: 2889, 2211: 2890, 974: 2891, 3139: 2892, 958: 2893, 3171: 2894, 755: 2895, 3215: 2896, 3670: 2897, 3710: 2898, 3740: 2899, 3730: 2900, 3724: 2901, 3731: 2902, 3732: 2903, 3716: 2904, 3733: 2905, 3734: 2906, 3735: 2907, 3729: 2908, 3738: 2909, 2209: 2910, 1903: 2911, 2227: 2912, 2221: 2913, 2185: 2914, 1728: 2915, 264: 2916, 1533: 2917, 3742: 2918, 3723: 2919, 3664: 2920, 3663: 2921, 3709: 2922, 106: 2923, 1696: 2924, 824: 2925, 3728: 2926, 619: 2927, 40: 2928, 2994: 2929, 3741: 2930, 1922: 2931, 1458: 2932, 3658: 2933, 384: 2934, 1423: 2935, 2627: 2936, 831: 2937, 3400: 2938, 2785: 2939, 3736: 2940, 1814: 2941, 2244: 2942, 1486: 2943, 375: 2944, 2755: 2945, 1715: 2946, 992: 2947, 2074: 2948, 2632: 2949, 1489: 2950, 3454: 2951, 1725: 2952, 1551: 2953, 3694: 2954, 3646: 2955, 609: 2956, 244: 2957, 722: 2958, 3714: 2959, 3665: 2960, 3662: 2961, 1063: 2962, 3648: 2963, 3659: 2964, 3696: 2965, 939: 2966, 3727: 2967, 3626: 2968, 1437: 2969, 811: 2970, 2778: 2971, 3725: 2972, 754: 2973, 2477: 2974, 1887: 2975, 411: 2976, 1055: 2977, 2191: 2978, 3717: 2979, 3667: 2980, 1534: 2981, 1817: 2982, 705: 2983, 3655: 2984, 1531: 2985, 3744: 2986, 2850: 2987, 2207: 2988, 2197: 2989, 2481: 2990, 1455: 2991, 1071: 2992, 1549: 2993, 2933: 2994, 3726: 2995, 2813: 2996, 3739: 2997, 1893: 2998, 2298: 2999, 1859: 3000, 1509: 3001, 3540: 3002, 3657: 3003, 3640: 3004, 863: 3005, 3719: 3006, 2837: 3007, 1879: 3008, 3124: 3009, 3302: 3010, 1567: 3011, 793: 3012, 3745: 3013, 1502: 3014, 3652: 3015, 119: 3016, 3754: 3017, 3763: 3018, 3746: 3019, 496: 3020, 310: 3021, 2824: 3022, 1864: 3023, 3751: 3024, 3303: 3025, 3753: 3026, 3764: 3027, 1170: 3028, 3782: 3029, 3781: 3030, 3771: 3031, 3766: 3032, 3773: 3033, 149: 3034, 3760: 3035, 665: 3036, 3770: 3037, 3758: 3038, 2855: 3039, 3743: 3040, 3769: 3041, 3183: 3042, 2158: 3043, 1793: 3044, 1153: 3045, 3642: 3046, 3737: 3047, 3025: 3048, 3768: 3049, 2534: 3050, 2332: 3051, 3780: 3052, 394: 3053, 2486: 3054, 1807: 3055, 2175: 3056, 2509: 3057, 3116: 3058, 600: 3059, 3774: 3060, 3463: 3061, 2864: 3062, 3752: 3063, 3791: 3064, 3784: 3065, 2914: 3066, 3788: 3067, 3767: 3068, 3695: 3069, 1538: 3070, 3789: 3071, 3755: 3072, 3792: 3073, 2200: 3074, 526: 3075, 1144: 3076, 3239: 3077, 1026: 3078, 1899: 3079, 2056: 3080, 1384: 3081, 3720: 3082, 1369: 3083, 3333: 3084, 698: 3085, 3718: 3086, 3765: 3087, 3747: 3088, 3775: 3089, 3778: 3090, 2179: 3091, 2964: 3092, 864: 3093, 3569: 3094, 1574: 3095, 430: 3096, 3064: 3097, 251: 3098, 2963: 3099, 598: 3100, 3783: 3101, 1718: 3102, 3759: 3103, 2979: 3104, 1490: 3105, 1311: 3106, 3050: 3107, 659: 3108, 1565: 3109, 2219: 3110, 2775: 3111, 3002: 3112, 3776: 3113, 178: 3114, 1002: 3115, 1850: 3116, 1493: 3117, 3058: 3118, 49: 3119, 3276: 3120, 3785: 3121, 3346: 3122, 2854: 3123, 3757: 3124, 3761: 3125, 2675: 3126, 3192: 3127, 2304: 3128, 1880: 3129, 2931: 3130, 3222: 3131, 2658: 3132, 561: 3133, 2544: 3134, 1926: 3135, 1539: 3136, 3180: 3137, 1575: 3138, 560: 3139, 2930: 3140, 1433: 3141, 200: 3142, 1741: 3143, 664: 3144, 2569: 3145, 966: 3146, 1890: 3147, 3721: 3148, 1825: 3149, 279: 3150, 2234: 3151, 2164: 3152, 1572: 3153, 1174: 3154, 1312: 3155, 1181: 3156, 2444: 3157, 726: 3158, 124: 3159, 3812: 3160, 3806: 3161, 3814: 3162, 3809: 3163, 3811: 3164, 3819: 3165, 108: 3166, 3813: 3167, 3802: 3168, 3799: 3169, 3121: 3170, 3801: 3171, 3810: 3172, 1878: 3173, 3807: 3174, 2873: 3175, 3804: 3176, 3818: 3177, 1163: 3178, 3817: 3179, 3793: 3180, 1520: 3181, 3790: 3182, 3787: 3183, 1664: 3184, 3795: 3185, 2129: 3186, 1519: 3187, 860: 3188, 3749: 3189, 2839: 3190, 287: 3191, 844: 3192, 2063: 3193, 3166: 3194, 3003: 3195, 3803: 3196, 3616: 3197, 3798: 3198, 751: 3199, 3318: 3200, 3808: 3201, 397: 3202, 2189: 3203, 3794: 3204, 3805: 3205, 3797: 3206, 1570: 3207, 3841: 3208, 3786: 3209, 3832: 3210, 3834: 3211, 3835: 3212, 3836: 3213, 3844: 3214, 3840: 3215, 3846: 3216, 1659: 3217, 3849: 3218, 2666: 3219, 3845: 3220, 3831: 3221, 3822: 3222, 3796: 3223, 3777: 3224, 2466: 3225, 3843: 3226, 3821: 3227, 3837: 3228, 3839: 3229, 3827: 3230, 3820: 3231, 2760: 3232, 2635: 3233, 2777: 3234, 3816: 3235, 3641: 3236, 3847: 3237, 3838: 3238, 2923: 3239, 3351: 3240, 3833: 3241, 3848: 3242, 2743: 3243, 1138: 3244, 1168: 3245, 1529: 3246, 3825: 3247, 874: 3248, 3850: 3249, 1811: 3250, 972: 3251, 2913: 3252, 1780: 3253, 767: 3254, 2487: 3255, 3611: 3256, 1891: 3257, 2608: 3258, 1522: 3259, 3826: 3260, 3161: 3261, 2998: 3262, 3293: 3263, 652: 3264, 148: 3265, 3824: 3266, 3864: 3267, 3859: 3268, 3861: 3269, 295: 3270, 3056: 3271, 3823: 3272, 3625: 3273, 980: 3274, 2934: 3275, 3866: 3276, 2673: 3277, 3140: 3278, 3592: 3279, 460: 3280, 1685: 3281, 3869: 3282, 3873: 3283, 3858: 3284, 3877: 3285, 3410: 3286, 2388: 3287, 3868: 3288, 3872: 3289, 2830: 3290, 1383: 3291, 3870: 3292, 1098: 3293, 3871: 3294, 3860: 3295, 2705: 3296, 3875: 3297, 3666: 3298, 2415: 3299, 3857: 3300, 2557: 3301, 3523: 3302, 3863: 3303, 815: 3304, 3830: 3305, 3884: 3306, 3852: 3307, 3880: 3308, 2233: 3309, 3874: 3310, 3878: 3311, 3886: 3312, 129: 3313, 2602: 3314, 3879: 3315, 3882: 3316, 630: 3317, 3001: 3318, 3851: 3319, 2911: 3320, 245: 3321, 3855: 3322, 3867: 3323, 3865: 3324, 3853: 3325, 2765: 3326, 2631: 3327, 1444: 3328, 3568: 3329, 614: 3330, 1058: 3331, 3897: 3332, 3893: 3333, 3889: 3334, 3925: 3335, 3936: 3336, 3942: 3337, 3941: 3338, 3940: 3339, 3939: 3340, 3938: 3341, 3937: 3342, 3927: 3343, 3926: 3344, 3908: 3345, 3917: 3346, 3918: 3347, 3921: 3348, 3922: 3349, 3919: 3350, 3930: 3351, 3901: 3352, 3920: 3353, 3903: 3354, 3895: 3355, 3910: 3356, 3915: 3357, 3932: 3358, 3929: 3359, 3896: 3360, 3898: 3361, 212: 3362, 3928: 3363, 3923: 3364, 3931: 3365, 3909: 3366, 3916: 3367, 2538: 3368, 3911: 3369, 3894: 3370, 3914: 3371, 3948: 3372, 3883: 3373, 3947: 3374, 3885: 3375, 3913: 3376, 2768: 3377, 3162: 3378, 3952: 3379, 2545: 3380, 3924: 3381, 3946: 3382, 1796: 3383, 3934: 3384, 3945: 3385, 3943: 3386, 3854: 3387, 3935: 3388, 3933: 3389, 2769: 3390, 3949: 3391, 2464: 3392, 3902: 3393, 3950: 3394, 3944: 3395, 3891: 3396, 3900: 3397, 3154: 3398, 3951: 3399, 3184: 3400, 2061: 3401, 98: 3402, 3912: 3403, 3906: 3404, 3892: 3405, 1040: 3406, 1543: 3407, 1622: 3408, 1636: 3409, 1471: 3410}} {'item_id': {0: 858, 1: 593, 2: 2384, 3: 2019, 4: 1961, 5: 1419, 6: 3111, 7: 573, 8: 213, 9: 3505, 10: 1734, 11: 2503, 12: 912, 13: 919, 14: 527, 15: 649, 16: 1252, 17: 318, 18: 3289, 19: 759, 20: 608, 21: 2396, 22: 2858, 23: 326, 24: 2028, 25: 1649, 26: 2762, 27: 17, 28: 34, 29: 246, 30: 2692, 31: 1617, 32: 300, 33: 1392, 34: 1111, 35: 150, 36: 562, 37: 549, 38: 1537, 39: 1554, 40: 448, 41: 265, 42: 866, 43: 1358, 44: 2324, 45: 235, 46: 446, 47: 247, 48: 1094, 49: 1704, 50: 50, 51: 162, 52: 45, 53: 348, 54: 508, 55: 1089, 56: 589, 57: 58, 58: 1694, 59: 2580, 60: 1834, 61: 2391, 62: 282, 63: 111, 64: 290, 65: 2067, 66: 1641, 67: 357, 68: 930, 69: 1230, 70: 947, 71: 3088, 72: 3133, 73: 3022, 74: 1294, 75: 3421, 76: 2804, 77: 1269, 78: 1276, 79: 1244, 80: 2622, 81: 955, 82: 2791, 83: 2300, 84: 1028, 85: 2863, 86: 3548, 87: 1197, 88: 951, 89: 1223, 90: 1211, 91: 933, 92: 1066, 93: 3072, 94: 907, 95: 2671, 96: 935, 97: 1304, 98: 3175, 99: 3035, 100: 1014, 101: 1078, 102: 3363, 103: 1270, 104: 1265, 105: 909, 106: 3396, 107: 1934, 108: 2174, 109: 911, 110: 945, 111: 2746, 112: 1188, 113: 471, 114: 3037, 115: 952, 116: 2289, 117: 916, 118: 1125, 119: 915, 120: 3028, 121: 3471, 122: 260, 123: 750, 124: 924, 125: 1210, 126: 1097, 127: 3545, 128: 2565, 129: 914, 130: 2087, 131: 918, 132: 899, 133: 1282, 134: 1022, 135: 900, 136: 364, 137: 1951, 138: 588, 139: 3549, 140: 963, 141: 1947, 142: 1081, 143: 2946, 144: 2083, 145: 1220, 146: 107, 147: 1380, 148: 2857, 149: 2096, 150: 1088, 151: 661, 152: 938, 153: 901, 154: 783, 155: 1083, 156: 2080, 157: 199, 158: 1416, 159: 48, 160: 903, 161: 1284, 162: 904, 163: 913, 164: 1212, 165: 2206, 166: 1086, 167: 950, 168: 1964, 169: 2208, 170: 906, 171: 942, 172: 2414, 173: 1680, 174: 926, 175: 1237, 176: 923, 177: 920, 178: 2146, 179: 1387, 180: 356, 181: 1079, 182: 2716, 183: 1148, 184: 232, 185: 1136, 186: 702, 187: 1882, 188: 1267, 189: 3508, 190: 3148, 191: 3543, 192: 1221, 193: 2132, 194: 1250, 195: 1193, 196: 1299, 197: 1225, 198: 3006, 199: 3196, 200: 908, 201: 1207, 202: 3469, 203: 1721, 204: 3438, 205: 2428, 206: 1883, 207: 2376, 208: 1945, 209: 3468, 210: 2728, 211: 3359, 212: 1938, 213: 1949, 214: 1231, 215: 2706, 216: 2707, 217: 2826, 218: 2492, 219: 2827, 220: 2572, 221: 2683, 222: 2699, 223: 3362, 224: 3504, 225: 1203, 226: 2501, 227: 2770, 228: 2842, 229: 3005, 230: 2555, 231: 3285, 232: 2710, 233: 2694, 234: 2975, 235: 2997, 236: 3270, 237: 3330, 238: 1233, 239: 2771, 240: 2147, 241: 3016, 242: 223, 243: 2433, 244: 2038, 245: 3068, 246: 3095, 247: 1208, 248: 1941, 249: 2919, 250: 2890, 251: 1293, 252: 1940, 253: 2678, 254: 1093, 255: 1911, 256: 2772, 257: 2546, 258: 2722, 259: 3203, 260: 2881, 261: 2759, 262: 2541, 263: 2336, 264: 2599, 265: 3113, 266: 2575, 267: 2828, 268: 2605, 269: 3408, 270: 2434, 271: 3051, 272: 1259, 273: 3467, 274: 1213, 275: 3159, 276: 2757, 277: 2712, 278: 1950, 279: 1939, 280: 1952, 281: 3526, 282: 2995, 283: 407, 284: 2676, 285: 2690, 286: 2333, 287: 2318, 288: 2719, 289: 3152, 290: 959, 291: 2303, 292: 1288, 293: 2629, 294: 2882, 295: 2713, 296: 3008, 297: 785, 298: 3160, 299: 2392, 300: 2390, 301: 2238, 302: 1953, 303: 3147, 304: 1674, 305: 3354, 306: 2900, 307: 3053, 308: 2734, 309: 2805, 310: 3379, 311: 2439, 312: 296, 313: 949, 314: 968, 315: 1959, 316: 2490, 317: 2574, 318: 2581, 319: 3325, 320: 2502, 321: 2723, 322: 3219, 323: 2901, 324: 3201, 325: 1956, 326: 3424, 327: 2906, 328: 2013, 329: 2598, 330: 299, 331: 3300, 332: 2758, 333: 24, 334: 43, 335: 2093, 336: 2395, 337: 2560, 338: 2686, 339: 1513, 340: 2485, 341: 3273, 342: 2491, 343: 2700, 344: 2841, 345: 3081, 346: 2840, 347: 2672, 348: 2070, 349: 2702, 350: 3176, 351: 2715, 352: 2693, 353: 3114, 354: 1623, 355: 2337, 356: 2701, 357: 2987, 358: 86, 359: 2600, 360: 3125, 361: 3179, 362: 3329, 363: 2010, 364: 461, 365: 1413, 366: 2024, 367: 1198, 368: 745, 369: 720, 370: 1196, 371: 1192, 372: 3149, 373: 1281, 374: 28, 375: 3307, 376: 3224, 377: 3265, 378: 1219, 379: 3128, 380: 2360, 381: 3462, 382: 3030, 383: 1348, 384: 1719, 385: 2075, 386: 541, 387: 2972, 388: 1248, 389: 1007, 390: 902, 391: 898, 392: 25, 393: 3067, 394: 922, 395: 1247, 396: 2859, 397: 2677, 398: 2186, 399: 2609, 400: 1303, 401: 1412, 402: 1104, 403: 2648, 404: 2357, 405: 2628, 406: 1228, 407: 3429, 408: 2732, 409: 1080, 410: 1584, 411: 480, 412: 32, 413: 2046, 414: 1748, 415: 2571, 416: 800, 417: 1214, 418: 3365, 419: 2664, 420: 1909, 421: 1372, 422: 1591, 423: 504, 424: 1653, 425: 2916, 426: 1356, 427: 1580, 428: 1527, 429: 1876, 430: 1396, 431: 971, 432: 2660, 433: 329, 434: 2012, 435: 788, 436: 3156, 437: 2393, 438: 512, 439: 1217, 440: 3075, 441: 3089, 442: 338, 443: 1573, 444: 1690, 445: 1150, 446: 2973, 447: 1603, 448: 1544, 449: 185, 450: 1391, 451: 1831, 452: 1320, 453: 2920, 454: 1885, 455: 1931, 456: 1240, 457: 514, 458: 1779, 459: 2808, 460: 2986, 461: 405, 462: 2053, 463: 1590, 464: 1041, 465: 2020, 466: 1056, 467: 1132, 468: 66, 469: 737, 470: 2448, 471: 256, 472: 1176, 473: 1199, 474: 3447, 475: 176, 476: 1200, 477: 1374, 478: 1657, 479: 3527, 480: 2968, 481: 1375, 482: 1274, 483: 2455, 484: 2985, 485: 1376, 486: 2011, 487: 2613, 488: 2021, 489: 2407, 490: 2105, 491: 2117, 492: 2311, 493: 2140, 494: 1253, 495: 3551, 496: 1234, 497: 3547, 498: 1965, 499: 2641, 500: 2054, 501: 1373, 502: 2364, 503: 2408, 504: 2456, 505: 2642, 506: 1254, 507: 1278, 508: 3090, 509: 3052, 510: 1397, 511: 2730, 512: 2848, 513: 1594, 514: 599, 515: 3361, 516: 3461, 517: 1077, 518: 306, 519: 1185, 520: 3418, 521: 1242, 522: 110, 523: 307, 524: 1874, 525: 1504, 526: 1258, 527: 1957, 528: 2971, 529: 2064, 530: 1243, 531: 1345, 532: 344, 533: 967, 534: 3130, 535: 249, 536: 1280, 537: 778, 538: 1784, 539: 293, 540: 590, 541: 475, 542: 1682, 543: 1179, 544: 2291, 545: 3108, 546: 1264, 547: 373, 548: 194, 549: 337, 550: 358, 551: 454, 552: 1366, 553: 1061, 554: 515, 555: 2366, 556: 961, 557: 3246, 558: 1466, 559: 62, 560: 3386, 561: 3342, 562: 3019, 563: 3426, 564: 1120, 565: 11, 566: 1268, 567: 4, 568: 1735, 569: 230, 570: 805, 571: 3255, 572: 2688, 573: 21, 574: 26, 575: 1727, 576: 280, 577: 3252, 578: 1729, 579: 3155, 580: 509, 581: 1747, 582: 224, 583: 1918, 584: 3435, 585: 2726, 586: 320, 587: 2361, 588: 3364, 589: 1442, 590: 1480, 591: 875, 592: 3334, 593: 1260, 594: 31, 595: 1711, 596: 2441, 597: 2966, 598: 1962, 599: 851, 600: 350, 601: 2002, 602: 695, 603: 1201, 604: 2059, 605: 1183, 606: 2875, 607: 1096, 608: 2288, 609: 921, 610: 1036, 611: 940, 612: 2644, 613: 253, 614: 1586, 615: 605, 616: 1027, 617: 30, 618: 42, 619: 457, 620: 1006, 621: 2908, 622: 766, 623: 1884, 624: 1801, 625: 3257, 626: 3521, 627: 3528, 628: 418, 629: 765, 630: 455, 631: 2431, 632: 1726, 633: 1340, 634: 1966, 635: 2313, 636: 3150, 637: 969, 638: 1797, 639: 3550, 640: 308, 641: 3498, 642: 92, 643: 2412, 644: 169, 645: 1595, 646: 2819, 647: 3198, 648: 2130, 649: 994, 650: 3499, 651: 2529, 652: 2102, 653: 1296, 654: 1, 655: 594, 656: 1301, 657: 1307, 658: 3132, 659: 1354, 660: 735, 661: 1954, 662: 388, 663: 1272, 664: 2302, 665: 2542, 666: 1500, 667: 2947, 668: 2355, 669: 3253, 670: 1923, 671: 1517, 672: 367, 673: 2662, 674: 3018, 675: 2739, 676: 1827, 677: 440, 678: 2124, 679: 500, 680: 1614, 681: 7, 682: 3450, 683: 2108, 684: 2926, 685: 597, 686: 1777, 687: 3263, 688: 708, 689: 236, 690: 539, 691: 216, 692: 1020, 693: 378, 694: 3208, 695: 333, 696: 1713, 697: 5, 698: 830, 699: 2004, 700: 1042, 701: 3098, 702: 3094, 703: 1409, 704: 231, 705: 372, 706: 157, 707: 1582, 708: 1944, 709: 1914, 710: 1367, 711: 2709, 712: 1377, 713: 252, 714: 784, 715: 585, 716: 1379, 717: 3086, 718: 3267, 719: 186, 720: 466, 721: 673, 722: 1702, 723: 1689, 724: 2266, 725: 1806, 726: 355, 727: 537, 728: 3, 729: 1494, 730: 1855, 731: 153, 732: 2387, 733: 1503, 734: 2335, 735: 1646, 736: 818, 737: 1581, 738: 520, 739: 1863, 740: 2016, 741: 1012, 742: 432, 743: 1602, 744: 637, 745: 2036, 746: 1431, 747: 2953, 748: 1760, 749: 1453, 750: 688, 751: 2042, 752: 374, 753: 1005, 754: 437, 755: 2720, 756: 2296, 757: 1839, 758: 429, 759: 1707, 760: 420, 761: 325, 762: 2152, 763: 870, 764: 1731, 765: 3146, 766: 2526, 767: 2670, 768: 2763, 769: 2000, 770: 3104, 771: 2729, 772: 123, 773: 1295, 774: 2329, 775: 2949, 776: 2951, 777: 1222, 778: 2944, 779: 2194, 780: 1127, 781: 733, 782: 3404, 783: 1408, 784: 592, 785: 2353, 786: 1608, 787: 349, 788: 780, 789: 3197, 790: 380, 791: 1676, 792: 292, 793: 2871, 794: 3105, 795: 1273, 796: 151, 797: 3210, 798: 339, 799: 1261, 800: 1171, 801: 1129, 802: 1189, 803: 2512, 804: 1300, 805: 2349, 806: 1090, 807: 1394, 808: 1975, 809: 1960, 810: 3039, 811: 1285, 812: 2348, 813: 2076, 814: 2312, 815: 3070, 816: 2872, 817: 2150, 818: 1246, 819: 3101, 820: 3422, 821: 2750, 822: 1321, 823: 1305, 824: 2852, 825: 2915, 826: 1291, 827: 3552, 828: 3449, 829: 2301, 830: 1663, 831: 2100, 832: 1124, 833: 2463, 834: 2989, 835: 2745, 836: 2286, 837: 2022, 838: 2369, 839: 2802, 840: 3524, 841: 1991, 842: 2134, 843: 2003, 844: 1173, 845: 1587, 846: 2111, 847: 3388, 848: 2089, 849: 680, 850: 2717, 851: 2751, 852: 2794, 853: 3169, 854: 2378, 855: 1289, 856: 1974, 857: 2411, 858: 2410, 859: 2948, 860: 1187, 861: 2553, 862: 2471, 863: 3017, 864: 1091, 865: 2241, 866: 2513, 867: 2402, 868: 2795, 869: 2321, 870: 1846, 871: 2421, 872: 999, 873: 555, 874: 272, 875: 3071, 876: 2160, 877: 2866, 878: 2065, 879: 529, 880: 2085, 881: 714, 882: 3204, 883: 731, 884: 862, 885: 1292, 886: 2467, 887: 1912, 888: 3097, 889: 1297, 890: 3011, 891: 2943, 892: 948, 893: 2104, 894: 596, 895: 628, 896: 441, 897: 1084, 898: 2014, 899: 2620, 900: 2159, 901: 892, 902: 2176, 903: 2687, 904: 3308, 905: 341, 906: 47, 907: 2797, 908: 2611, 909: 2018, 910: 2570, 911: 2427, 912: 2001, 913: 2401, 914: 1350, 915: 2377, 916: 1597, 917: 1673, 918: 551, 919: 840, 920: 2359, 921: 3350, 922: 2287, 923: 3060, 924: 188, 925: 3282, 926: 2118, 927: 1610, 928: 2874, 929: 3494, 930: 1029, 931: 1955, 932: 534, 933: 1907, 934: 1678, 935: 319, 936: 497, 937: 3044, 938: 428, 939: 1332, 940: 943, 941: 39, 942: 2071, 943: 3296, 944: 1921, 945: 1357, 946: 1968, 947: 3501, 948: 2157, 949: 3143, 950: 1013, 951: 1755, 952: 6, 953: 1611, 954: 1393, 955: 2362, 956: 2867, 957: 1082, 958: 2472, 959: 345, 960: 1355, 961: 2237, 962: 1395, 963: 1215, 964: 2048, 965: 3194, 966: 1263, 967: 3015, 968: 474, 969: 1730, 970: 3167, 971: 281, 972: 2109, 973: 2167, 974: 2155, 975: 1994, 976: 2524, 977: 2520, 978: 2877, 979: 3260, 980: 531, 981: 3546, 982: 558, 983: 1206, 984: 1010, 985: 1643, 986: 1546, 987: 728, 988: 342, 989: 3248, 990: 3157, 991: 910, 992: 1256, 993: 671, 994: 3448, 995: 1235, 996: 1238, 997: 1963, 998: 1275, 999: 8, 1000: 1162, 1001: 1073, 1002: 361, 1003: 741, 1004: 553, 1005: 1648, 1006: 610, 1007: 29, 1008: 1204, 1009: 2640, 1010: 2116, 1011: 2528, 1012: 316, 1013: 965, 1014: 1249, 1015: 928, 1016: 1371, 1017: 196, 1018: 2183, 1019: 931, 1020: 1344, 1021: 3230, 1022: 3033, 1023: 2403, 1024: 2615, 1025: 2094, 1026: 1333, 1027: 1407, 1028: 2747, 1029: 1917, 1030: 442, 1031: 1037, 1032: 173, 1033: 2178, 1034: 2034, 1035: 1982, 1036: 1343, 1037: 2181, 1038: 1732, 1039: 377, 1040: 519, 1041: 2450, 1042: 546, 1043: 2781, 1044: 905, 1045: 327, 1046: 2517, 1047: 2643, 1048: 2138, 1049: 1032, 1050: 2193, 1051: 3479, 1052: 2, 1053: 2143, 1054: 1967, 1055: 2161, 1056: 2239, 1057: 2243, 1058: 653, 1059: 1126, 1060: 2253, 1061: 3489, 1062: 837, 1063: 3439, 1064: 1172, 1065: 1566, 1066: 2409, 1067: 3584, 1068: 3590, 1069: 3591, 1070: 3529, 1071: 2959, 1072: 2912, 1073: 2829, 1074: 1792, 1075: 2894, 1076: 2334, 1077: 165, 1078: 170, 1079: 1438, 1080: 227, 1081: 1287, 1082: 861, 1083: 465, 1084: 1429, 1085: 1101, 1086: 1370, 1087: 2133, 1088: 2533, 1089: 2363, 1090: 2454, 1091: 2527, 1092: 2657, 1093: 2009, 1094: 3340, 1095: 2346, 1096: 426, 1097: 1334, 1098: 3555, 1099: 1924, 1100: 674, 1101: 10, 1102: 2082, 1103: 1644, 1104: 1353, 1105: 1266, 1106: 2961, 1107: 2724, 1108: 1347, 1109: 2668, 1110: 1128, 1111: 2787, 1112: 2148, 1113: 1970, 1114: 1330, 1115: 1389, 1116: 1972, 1117: 1995, 1118: 1971, 1119: 1983, 1120: 1986, 1121: 1969, 1122: 1326, 1123: 2465, 1124: 2122, 1125: 1988, 1126: 2460, 1127: 1985, 1128: 1978, 1129: 1976, 1130: 1980, 1131: 1987, 1132: 1981, 1133: 1979, 1134: 1977, 1135: 70, 1136: 1645, 1137: 1241, 1138: 3476, 1139: 2617, 1140: 1339, 1141: 3264, 1142: 1717, 1143: 2279, 1144: 724, 1145: 1771, 1146: 2328, 1147: 273, 1148: 532, 1149: 2898, 1150: 2389, 1151: 152, 1152: 1999, 1153: 2107, 1154: 177, 1155: 1342, 1156: 2125, 1157: 3259, 1158: 2443, 1159: 2801, 1160: 1569, 1161: 1059, 1162: 3358, 1163: 543, 1164: 587, 1165: 802, 1166: 105, 1167: 1888, 1168: 2297, 1169: 1722, 1170: 852, 1171: 417, 1172: 468, 1173: 222, 1174: 3046, 1175: 353, 1176: 2424, 1177: 2496, 1178: 266, 1179: 1541, 1180: 1629, 1181: 140, 1182: 1441, 1183: 1821, 1184: 1593, 1185: 691, 1186: 1457, 1187: 237, 1188: 550, 1189: 3269, 1190: 1894, 1191: 736, 1192: 289, 1193: 207, 1194: 447, 1195: 182, 1196: 168, 1197: 195, 1198: 2316, 1199: 3261, 1200: 179, 1201: 499, 1202: 3436, 1203: 1479, 1204: 64, 1205: 2774, 1206: 258, 1207: 15, 1208: 1556, 1209: 427, 1210: 1483, 1211: 1799, 1212: 218, 1213: 3331, 1214: 3405, 1215: 2406, 1216: 2991, 1217: 3107, 1218: 2058, 1219: 648, 1220: 3082, 1221: 3443, 1222: 490, 1223: 3256, 1224: 1047, 1225: 2115, 1226: 3441, 1227: 1552, 1228: 3444, 1229: 2278, 1230: 2006, 1231: 145, 1232: 2990, 1233: 494, 1234: 2476, 1235: 303, 1236: 1385, 1237: 3274, 1238: 1687, 1239: 552, 1240: 434, 1241: 786, 1242: 1488, 1243: 459, 1244: 1833, 1245: 1100, 1246: 1769, 1247: 1616, 1248: 479, 1249: 379, 1250: 2126, 1251: 425, 1252: 1099, 1253: 986, 1254: 535, 1255: 2069, 1256: 1639, 1257: 2474, 1258: 2736, 1259: 3129, 1260: 1226, 1261: 1216, 1262: 803, 1263: 2245, 1264: 2442, 1265: 1625, 1266: 1194, 1267: 3496, 1268: 2025, 1269: 1785, 1270: 71, 1271: 464, 1272: 1810, 1273: 3029, 1274: 571, 1275: 1872, 1276: 2624, 1277: 298, 1278: 476, 1279: 1809, 1280: 2331, 1281: 2114, 1282: 3535, 1283: 3412, 1284: 993, 1285: 485, 1286: 315, 1287: 3397, 1288: 172, 1289: 204, 1290: 44, 1291: 205, 1292: 1642, 1293: 2282, 1294: 1004, 1295: 160, 1296: 694, 1297: 1497, 1298: 1681, 1299: 1794, 1300: 502, 1301: 1626, 1302: 2081, 1303: 2807, 1304: 1465, 1305: 3174, 1306: 183, 1307: 1060, 1308: 125, 1309: 3481, 1310: 2097, 1311: 2268, 1312: 1057, 1313: 2330, 1314: 2077, 1315: 1805, 1316: 493, 1317: 1620, 1318: 1399, 1319: 22, 1320: 1958, 1321: 2697, 1322: 2764, 1323: 3247, 1324: 2561, 1325: 1598, 1326: 762, 1327: 81, 1328: 2294, 1329: 3099, 1330: 3079, 1331: 3112, 1332: 3507, 1333: 3398, 1334: 1017, 1335: 198, 1336: 3518, 1337: 991, 1338: 1177, 1339: 2112, 1340: 2137, 1341: 1633, 1342: 262, 1343: 1897, 1344: 3370, 1345: 1236, 1346: 1788, 1347: 366, 1348: 2144, 1349: 3100, 1350: 3576, 1351: 1286, 1352: 1619, 1353: 1476, 1354: 1427, 1355: 1916, 1356: 574, 1357: 261, 1358: 190, 1359: 241, 1360: 2470, 1361: 1135, 1362: 2419, 1363: 269, 1364: 1650, 1365: 2941, 1366: 1298, 1367: 431, 1368: 1271, 1369: 340, 1370: 2420, 1371: 3251, 1372: 1092, 1373: 1019, 1374: 1858, 1375: 1405, 1376: 3014, 1377: 3281, 1378: 988, 1379: 2231, 1380: 616, 1381: 164, 1382: 2090, 1383: 3395, 1384: 1454, 1385: 1031, 1386: 1049, 1387: 187, 1388: 16, 1389: 2247, 1390: 1518, 1391: 1683, 1392: 1516, 1393: 1913, 1394: 492, 1395: 808, 1396: 1459, 1397: 1449, 1398: 2779, 1399: 2425, 1400: 2262, 1401: 2168, 1402: 1605, 1403: 2518, 1404: 2385, 1405: 3034, 1406: 3272, 1407: 1542, 1408: 1447, 1409: 2173, 1410: 450, 1411: 317, 1412: 410, 1413: 2625, 1414: 700, 1415: 3102, 1416: 3173, 1417: 1365, 1418: 2626, 1419: 2725, 1420: 488, 1421: 707, 1422: 1783, 1423: 748, 1424: 435, 1425: 3032, 1426: 849, 1427: 1306, 1428: 1762, 1429: 2530, 1430: 3024, 1431: 2532, 1432: 3572, 1433: 692, 1434: 2531, 1435: 611, 1436: 3573, 1437: 3401, 1438: 880, 1439: 2091, 1440: 1862, 1441: 3574, 1442: 1588, 1443: 3392, 1444: 2862, 1445: 59, 1446: 2921, 1447: 2032, 1448: 2918, 1449: 3360, 1450: 2371, 1451: 2352, 1452: 1175, 1453: 2203, 1454: 1069, 1455: 3406, 1456: 799, 1457: 524, 1458: 1562, 1459: 381, 1460: 2416, 1461: 3385, 1462: 2752, 1463: 36, 1464: 2860, 1465: 2880, 1466: 112, 1467: 1615, 1468: 577, 1469: 761, 1470: 2322, 1471: 836, 1472: 1744, 1473: 2153, 1474: 2645, 1475: 2761, 1476: 141, 1477: 2748, 1478: 2708, 1479: 3301, 1480: 3512, 1481: 3519, 1482: 954, 1483: 932, 1484: 3341, 1485: 2835, 1486: 3020, 1487: 288, 1488: 996, 1489: 3430, 1490: 95, 1491: 208, 1492: 1382, 1493: 1499, 1494: 60, 1495: 2522, 1496: 2883, 1497: 2711, 1498: 3093, 1499: 1283, 1500: 1209, 1501: 1008, 1502: 2922, 1503: 964, 1504: 368, 1505: 1378, 1506: 2478, 1507: 416, 1508: 3000, 1509: 2993, 1510: 163, 1511: 2344, 1512: 1772, 1513: 2367, 1514: 2475, 1515: 2735, 1516: 2616, 1517: 2468, 1518: 462, 1519: 1606, 1520: 1262, 1521: 2970, 1522: 314, 1523: 3168, 1524: 3153, 1525: 2135, 1526: 2822, 1527: 158, 1528: 1085, 1529: 2405, 1530: 2088, 1531: 2043, 1532: 2950, 1533: 595, 1534: 1526, 1535: 1033, 1536: 1025, 1537: 2936, 1538: 2015, 1539: 586, 1540: 2098, 1541: 1016, 1542: 3503, 1543: 2204, 1544: 3419, 1545: 2511, 1546: 2917, 1547: 2110, 1548: 1791, 1549: 2023, 1550: 3083, 1551: 3384, 1552: 1147, 1553: 2937, 1554: 2248, 1555: 495, 1556: 946, 1557: 2996, 1558: 1948, 1559: 2721, 1560: 2907, 1561: 978, 1562: 2057, 1563: 936, 1564: 1035, 1565: 52, 1566: 2283, 1567: 382, 1568: 481, 1569: 3061, 1570: 2618, 1571: 248, 1572: 2836, 1573: 2766, 1574: 489, 1575: 2718, 1576: 413, 1577: 3244, 1578: 2844, 1579: 2704, 1580: 937, 1581: 3118, 1582: 828, 1583: 1996, 1584: 953, 1585: 2383, 1586: 639, 1587: 3491, 1588: 1845, 1589: 2290, 1590: 2696, 1591: 2136, 1592: 156, 1593: 3451, 1594: 2261, 1595: 838, 1596: 2145, 1597: 2295, 1598: 3087, 1599: 1485, 1600: 3506, 1601: 3497, 1602: 2539, 1603: 2870, 1604: 2567, 1605: 2356, 1606: 3120, 1607: 371, 1608: 2558, 1609: 2469, 1610: 2780, 1611: 2372, 1612: 2072, 1613: 2793, 1614: 1440, 1615: 3045, 1616: 2796, 1617: 2374, 1618: 2375, 1619: 2413, 1620: 1474, 1621: 1461, 1622: 3343, 1623: 2891, 1624: 305, 1625: 2259, 1626: 2473, 1627: 19, 1628: 1381, 1629: 419, 1630: 3074, 1631: 2621, 1632: 2398, 1633: 1892, 1634: 73, 1635: 1545, 1636: 1997, 1637: 1873, 1638: 1693, 1639: 2154, 1640: 832, 1641: 114, 1642: 225, 1643: 2269, 1644: 89, 1645: 233, 1646: 1835, 1647: 1290, 1648: 2340, 1649: 3073, 1650: 1666, 1651: 1043, 1652: 2292, 1653: 565, 1654: 842, 1655: 2784, 1656: 879, 1657: 742, 1658: 1130, 1659: 2554, 1660: 2782, 1661: 1341, 1662: 328, 1663: 330, 1664: 1327, 1665: 2519, 1666: 2459, 1667: 220, 1668: 1346, 1669: 2121, 1670: 2149, 1671: 1388, 1672: 2451, 1673: 2338, 1674: 2113, 1675: 2163, 1676: 2119, 1677: 2430, 1678: 3036, 1679: 2370, 1680: 3345, 1681: 2537, 1682: 2851, 1683: 3062, 1684: 2273, 1685: 517, 1686: 3165, 1687: 1752, 1688: 2741, 1689: 20, 1690: 2276, 1691: 3442, 1692: 2506, 1693: 351, 1694: 46, 1695: 362, 1696: 2120, 1697: 2327, 1698: 2789, 1699: 2655, 1700: 1984, 1701: 2902, 1702: 1329, 1703: 2092, 1704: 2005, 1705: 2252, 1706: 2139, 1707: 2033, 1708: 2123, 1709: 1881, 1710: 1030, 1711: 1190, 1712: 678, 1713: 1635, 1714: 1095, 1715: 412, 1716: 1411, 1717: 1302, 1718: 3371, 1719: 1935, 1720: 2577, 1721: 1651, 1722: 1507, 1723: 2166, 1724: 1178, 1725: 2162, 1726: 3389, 1727: 2373, 1728: 501, 1729: 3317, 1730: 3262, 1731: 3538, 1732: 1227, 1733: 2792, 1734: 3206, 1735: 85, 1736: 2284, 1737: 2488, 1738: 662, 1739: 2551, 1740: 229, 1741: 2803, 1742: 259, 1743: 1184, 1744: 1425, 1745: 180, 1746: 104, 1747: 542, 1748: 719, 1749: 1410, 1750: 2423, 1751: 2066, 1752: 746, 1753: 2940, 1754: 1009, 1755: 2550, 1756: 2788, 1757: 2457, 1758: 386, 1759: 2525, 1760: 304, 1761: 3238, 1762: 3040, 1763: 1218, 1764: 3452, 1765: 69, 1766: 88, 1767: 433, 1768: 1390, 1769: 513, 1770: 2587, 1771: 3186, 1772: 376, 1773: 387, 1774: 886, 1775: 1672, 1776: 2815, 1777: 2404, 1778: 3225, 1779: 3440, 1780: 3416, 1781: 80, 1782: 668, 1783: 363, 1784: 2041, 1785: 2188, 1786: 2861, 1787: 3513, 1788: 1361, 1789: 3338, 1790: 3004, 1791: 3588, 1792: 2885, 1793: 3374, 1794: 55, 1795: 3459, 1796: 3534, 1797: 3502, 1798: 3500, 1799: 1224, 1800: 1202, 1801: 2397, 1802: 3138, 1803: 2738, 1804: 2749, 1805: 2417, 1806: 2418, 1807: 2942, 1808: 1251, 1809: 3076, 1810: 154, 1811: 1362, 1812: 2925, 1813: 3135, 1814: 3283, 1815: 3420, 1816: 2932, 1817: 2535, 1818: 3428, 1819: 2051, 1820: 2394, 1821: 3536, 1822: 3484, 1823: 1547, 1824: 1487, 1825: 3250, 1826: 2250, 1827: 3477, 1828: 1895, 1829: 3478, 1830: 3480, 1831: 3466, 1832: 2240, 1833: 1583, 1834: 1848, 1835: 1920, 1836: 1750, 1837: 491, 1838: 2432, 1839: 1515, 1840: 159, 1841: 1699, 1842: 2437, 1843: 507, 1844: 929, 1845: 506, 1846: 14, 1847: 3366, 1848: 1103, 1849: 3066, 1850: 2232, 1851: 2800, 1852: 1856, 1853: 161, 1854: 2078, 1855: 1279, 1856: 1401, 1857: 144, 1858: 518, 1859: 3284, 1860: 647, 1861: 2440, 1862: 848, 1863: 1186, 1864: 2399, 1865: 3189, 1866: 2170, 1867: 1359, 1868: 2665, 1869: 423, 1870: 2314, 1871: 1667, 1872: 2928, 1873: 1422, 1874: 2306, 1875: 2445, 1876: 2180, 1877: 743, 1878: 533, 1879: 445, 1880: 13, 1881: 2505, 1882: 801, 1883: 365, 1884: 1627, 1885: 2429, 1886: 540, 1887: 575, 1888: 2498, 1889: 370, 1890: 1417, 1891: 2052, 1892: 1665, 1893: 2977, 1894: 2354, 1895: 3387, 1896: 415, 1897: 191, 1898: 2521, 1899: 87, 1900: 2974, 1901: 2566, 1902: 1445, 1903: 3054, 1904: 747, 1905: 2386, 1906: 2612, 1907: 1942, 1908: 3347, 1909: 973, 1910: 917, 1911: 3163, 1912: 1946, 1913: 82, 1914: 2969, 1915: 444, 1916: 3327, 1917: 3182, 1918: 2846, 1919: 2905, 1920: 3134, 1921: 3091, 1922: 3096, 1923: 670, 1924: 2935, 1925: 2731, 1926: 681, 1927: 1927, 1928: 1131, 1929: 2210, 1930: 2202, 1931: 934, 1932: 976, 1933: 897, 1934: 3304, 1935: 1277, 1936: 2068, 1937: 1064, 1938: 2929, 1939: 2184, 1940: 2212, 1941: 941, 1942: 3047, 1943: 1840, 1944: 970, 1945: 2040, 1946: 2379, 1947: 3310, 1948: 12, 1949: 3368, 1950: 1609, 1951: 3475, 1952: 982, 1953: 1245, 1954: 1933, 1955: 944, 1956: 3110, 1957: 2495, 1958: 3585, 1959: 2633, 1960: 171, 1961: 3249, 1962: 2060, 1963: 309, 1964: 581, 1965: 1932, 1966: 277, 1967: 147, 1968: 564, 1969: 1589, 1970: 1034, 1971: 2927, 1972: 41, 1973: 523, 1974: 1660, 1975: 538, 1976: 2171, 1977: 846, 1978: 645, 1979: 1624, 1980: 322, 1981: 57, 1982: 271, 1983: 1836, 1984: 35, 1985: 1841, 1986: 1051, 1987: 1816, 1988: 408, 1989: 580, 1990: 94, 1991: 1943, 1992: 632, 1993: 718, 1994: 3115, 1995: 63, 1996: 2967, 1997: 3557, 1998: 3010, 1999: 1759, 2000: 2351, 2001: 2310, 2002: 1053, 2003: 2345, 2004: 621, 2005: 1023, 2006: 1844, 2007: 2820, 2008: 97, 2009: 3078, 2010: 1701, 2011: 2192, 2012: 72, 2013: 1829, 2014: 3211, 2015: 2976, 2016: 1596, 2017: 3158, 2018: 2479, 2019: 3298, 2020: 2285, 2021: 2590, 2022: 3188, 2023: 2661, 2024: 2422, 2025: 2884, 2026: 2106, 2027: 383, 2028: 1472, 2029: 2956, 2030: 1804, 2031: 521, 2032: 3409, 2033: 3266, 2034: 1523, 2035: 1743, 2036: 1310, 2037: 2689, 2038: 77, 2039: 297, 2040: 3178, 2041: 3335, 2042: 2265, 2043: 2141, 2044: 101, 2045: 1257, 2046: 663, 2047: 2500, 2048: 2249, 2049: 2447, 2050: 3243, 2051: 3254, 2052: 3544, 2053: 166, 2054: 65, 2055: 2381, 2056: 2380, 2057: 3391, 2058: 3495, 2059: 1112, 2060: 893, 2061: 1563, 2062: 175, 2063: 3437, 2064: 2435, 2065: 697, 2066: 2037, 2067: 2806, 2068: 1866, 2069: 925, 2070: 2101, 2071: 2267, 2072: 1464, 2073: 451, 2074: 2583, 2075: 335, 2076: 1754, 2077: 257, 2078: 360, 2079: 1498, 2080: 2062, 2081: 2497, 2082: 1463, 2083: 804, 2084: 1475, 2085: 2597, 2086: 270, 2087: 276, 2088: 2586, 2089: 1675, 2090: 482, 2091: 422, 2092: 2320, 2093: 554, 2094: 1003, 2095: 2326, 2096: 990, 2097: 132, 2098: 79, 2099: 640, 2100: 3516, 2101: 3600, 2102: 3564, 2103: 3602, 2104: 3604, 2105: 3520, 2106: 3605, 2107: 3608, 2108: 3610, 2109: 3457, 2110: 2156, 2111: 3200, 2112: 1937, 2113: 1414, 2114: 635, 2115: 2436, 2116: 516, 2117: 1021, 2118: 1113, 2119: 1621, 2120: 1688, 2121: 1919, 2122: 1018, 2123: 3355, 2124: 1161, 2125: 3399, 2126: 1205, 2127: 239, 2128: 2924, 2129: 2275, 2130: 704, 2131: 393, 2132: 3213, 2133: 2084, 2134: 1739, 2135: 1973, 2136: 126, 2137: 3433, 2138: 3434, 2139: 3258, 2140: 2733, 2141: 1167, 2142: 203, 2143: 234, 2144: 193, 2145: 3390, 2146: 3349, 2147: 76, 2148: 3614, 2149: 1746, 2150: 1936, 2151: 3587, 2152: 2073, 2153: 2669, 2154: 3525, 2155: 725, 2156: 3217, 2157: 2647, 2158: 3486, 2159: 2667, 2160: 3375, 2161: 242, 2162: 1925, 2163: 2939, 2164: 1684, 2165: 1468, 2166: 613, 2167: 84, 2168: 206, 2169: 1255, 2170: 2636, 2171: 2579, 2172: 511, 2173: 559, 2174: 2293, 2175: 556, 2176: 2536, 2177: 2649, 2178: 103, 2179: 2663, 2180: 332, 2181: 3488, 2182: 2656, 2183: 2637, 2184: 2638, 2185: 2634, 2186: 2646, 2187: 2814, 2188: 2652, 2189: 2654, 2190: 1337, 2191: 2651, 2192: 841, 2193: 2568, 2194: 2260, 2195: 3007, 2196: 3271, 2197: 1105, 2198: 3069, 2199: 1421, 2200: 2988, 2201: 835, 2202: 2573, 2203: 2493, 2204: 3565, 2205: 612, 2206: 1456, 2207: 122, 2208: 1599, 2209: 2582, 2210: 2368, 2211: 2783, 2212: 1331, 2213: 2740, 2214: 1655, 2215: 2868, 2216: 2790, 2217: 606, 2218: 3598, 2219: 3606, 2220: 3559, 2221: 3415, 2222: 3311, 2223: 3456, 2224: 1046, 2225: 1406, 2226: 214, 2227: 334, 2228: 1116, 2229: 1901, 2230: 3142, 2231: 1875, 2232: 2365, 2233: 2029, 2234: 2865, 2235: 1535, 2236: 414, 2237: 569, 2238: 3372, 2239: 2540, 2240: 547, 2241: 1067, 2242: 3324, 2243: 3103, 2244: 291, 2245: 3593, 2246: 421, 2247: 2453, 2248: 3145, 2249: 3038, 2250: 3533, 2251: 615, 2252: 3532, 2253: 240, 2254: 956, 2255: 2653, 2256: 2131, 2257: 2983, 2258: 1076, 2259: 2650, 2260: 927, 2261: 962, 2262: 775, 2263: 2847, 2264: 1160, 2265: 347, 2266: 2682, 2267: 1024, 2268: 2753, 2269: 3275, 2270: 2195, 2271: 456, 2272: 1511, 2273: 1446, 2274: 1733, 2275: 3106, 2276: 3328, 2277: 2246, 2278: 3221, 2279: 3571, 2280: 3570, 2281: 389, 2282: 1324, 2283: 2315, 2284: 2516, 2285: 352, 2286: 324, 2287: 1612, 2288: 1904, 2289: 2007, 2290: 570, 2291: 3049, 2292: 452, 2293: 2236, 2294: 829, 2295: 1613, 2296: 477, 2297: 268, 2298: 409, 2299: 215, 2300: 806, 2301: 2639, 2302: 1670, 2303: 1753, 2304: 3339, 2305: 2893, 2306: 2607, 2307: 3465, 2308: 2888, 2309: 184, 2310: 2978, 2311: 881, 2312: 1854, 2313: 135, 2314: 1000, 2315: 813, 2316: 312, 2317: 278, 2318: 3031, 2319: 833, 2320: 473, 2321: 472, 2322: 438, 2323: 2317, 2324: 2027, 2325: 275, 2326: 1604, 2327: 1550, 2328: 2992, 2329: 3013, 2330: 1998, 2331: 2903, 2332: 2878, 2333: 3021, 2334: 3490, 2335: 1989, 2336: 3487, 2337: 1068, 2338: 2187, 2339: 3316, 2340: 3445, 2341: 2242, 2342: 3577, 2343: 3510, 2344: 3041, 2345: 458, 2346: 3431, 2347: 3432, 2348: 2896, 2349: 487, 2350: 2055, 2351: 3427, 2352: 2458, 2353: 809, 2354: 2606, 2355: 3077, 2356: 121, 2357: 3402, 2358: 1865, 2359: 1123, 2360: 2659, 2361: 2182, 2362: 2017, 2363: 1571, 2364: 2099, 2365: 3199, 2366: 3414, 2367: 2263, 2368: 3235, 2369: 116, 2370: 2585, 2371: 709, 2372: 3393, 2373: 2151, 2374: 1647, 2375: 798, 2376: 2594, 2377: 2507, 2378: 781, 2379: 2281, 2380: 1352, 2381: 869, 2382: 210, 2383: 650, 2384: 2272, 2385: 9, 2386: 467, 2387: 189, 2388: 3425, 2389: 1703, 2390: 1900, 2391: 1812, 2392: 1585, 2393: 525, 2394: 1857, 2395: 505, 2396: 267, 2397: 2610, 2398: 2798, 2399: 449, 2400: 984, 2401: 3394, 2402: 2879, 2403: 711, 2404: 217, 2405: 3042, 2406: 1692, 2407: 2483, 2408: 1432, 2409: 3268, 2410: 2714, 2411: 1450, 2412: 2562, 2413: 2856, 2414: 2744, 2415: 1640, 2416: 957, 2417: 1152, 2418: 181, 2419: 1495, 2420: 1720, 2421: 667, 2422: 2817, 2423: 839, 2424: 2899, 2425: 1011, 2426: 2050, 2427: 2142, 2428: 631, 2429: 1654, 2430: 2079, 2431: 2035, 2432: 960, 2433: 2205, 2434: 2589, 2435: 255, 2436: 2549, 2437: 2952, 2438: 3423, 2439: 2264, 2440: 3141, 2441: 2515, 2442: 2982, 2443: 2452, 2444: 1992, 2445: 2462, 2446: 1993, 2447: 891, 2448: 3367, 2449: 2816, 2450: 627, 2451: 1929, 2452: 2938, 2453: 1477, 2454: 1460, 2455: 2962, 2456: 3292, 2457: 2773, 2458: 3622, 2459: 769, 2460: 1758, 2461: 484, 2462: 2045, 2463: 888, 2464: 3144, 2465: 2695, 2466: 3492, 2467: 238, 2468: 3578, 2469: 3509, 2470: 3286, 2471: 96, 2472: 3137, 2473: 1015, 2474: 1317, 2475: 1398, 2476: 2382, 2477: 1322, 2478: 2892, 2479: 2255, 2480: 2095, 2481: 3043, 2482: 807, 2483: 987, 2484: 1600, 2485: 3232, 2486: 2044, 2487: 1837, 2488: 710, 2489: 470, 2490: 102, 2491: 321, 2492: 1695, 2493: 3556, 2494: 3012, 2495: 1896, 2496: 3417, 2497: 2776, 2498: 2630, 2499: 1428, 2500: 3620, 2501: 2177, 2502: 2523, 2503: 1363, 2504: 1496, 2505: 3299, 2506: 1631, 2507: 1669, 2508: 302, 2509: 131, 2510: 1482, 2511: 3287, 2512: 3483, 2513: 544, 2514: 548, 2515: 2889, 2516: 1898, 2517: 201, 2518: 463, 2519: 2504, 2520: 3403, 2521: 3579, 2522: 3554, 2523: 3617, 2524: 3618, 2525: 3596, 2526: 3580, 2527: 3537, 2528: 3597, 2529: 3619, 2530: 3326, 2531: 2169, 2532: 1826, 2533: 1677, 2534: 2350, 2535: 2681, 2536: 2767, 2537: 2691, 2538: 3048, 2539: 2786, 2540: 2257, 2541: 2799, 2542: 2756, 2543: 3223, 2544: 83, 2545: 1484, 2546: 2853, 2547: 1860, 2548: 3214, 2549: 536, 2550: 3109, 2551: 23, 2552: 1906, 2553: 3218, 2554: 2965, 2555: 3613, 2556: 37, 2557: 1564, 2558: 638, 2559: 74, 2560: 301, 2561: 469, 2562: 1632, 2563: 779, 2564: 2165, 2565: 685, 2566: 2548, 2567: 1668, 2568: 2426, 2569: 3063, 2570: 3599, 2571: 61, 2572: 436, 2573: 1658, 2574: 18, 2575: 209, 2576: 93, 2577: 2809, 2578: 567, 2579: 2727, 2580: 1154, 2581: 854, 2582: 850, 2583: 669, 2584: 1351, 2585: 263, 2586: 3531, 2587: 2849, 2588: 1050, 2589: 563, 2590: 715, 2591: 343, 2592: 3539, 2593: 2305, 2594: 155, 2595: 3562, 2596: 782, 2597: 3586, 2598: 390, 2599: 3313, 2600: 211, 2601: 1404, 2602: 254, 2603: 78, 2604: 882, 2605: 424, 2606: 1044, 2607: 346, 2608: 1473, 2609: 2482, 2610: 3306, 2611: 2596, 2612: 528, 2613: 3309, 2614: 2196, 2615: 1869, 2616: 3563, 2617: 1867, 2618: 2307, 2619: 1853, 2620: 2128, 2621: 2325, 2622: 1592, 2623: 486, 2624: 656, 2625: 1679, 2626: 1439, 2627: 867, 2628: 453, 2629: 174, 2630: 2552, 2631: 810, 2632: 1798, 2633: 118, 2634: 331, 2635: 2190, 2636: 3127, 2637: 2449, 2638: 2876, 2639: 885, 2640: 2280, 2641: 716, 2642: 478, 2643: 1436, 2644: 626, 2645: 243, 2646: 3511, 2647: 2494, 2648: 618, 2649: 1661, 2650: 1686, 2651: 391, 2652: 998, 2653: 1662, 2654: 1824, 2655: 732, 2656: 2812, 2657: 1532, 2658: 283, 2659: 1601, 2660: 2271, 2661: 510, 2662: 2201, 2663: 100, 2664: 3553, 2665: 3566, 2666: 1870, 2667: 443, 2668: 3357, 2669: 3319, 2670: 3185, 2671: 1910, 2672: 2810, 2673: 2047, 2674: 336, 2675: 3639, 2676: 3634, 2677: 764, 2678: 197, 2679: 503, 2680: 633, 2681: 68, 2682: 1328, 2683: 1325, 2684: 2461, 2685: 1191, 2686: 294, 2687: 2341, 2688: 1767, 2689: 498, 2690: 703, 2691: 354, 2692: 167, 2693: 522, 2694: 27, 2695: 2400, 2696: 2256, 2697: 3344, 2698: 3026, 2699: 3638, 2700: 3633, 2701: 3635, 2702: 2614, 2703: 760, 2704: 1323, 2705: 202, 2706: 896, 2707: 2514, 2708: 1335, 2709: 2347, 2710: 2818, 2711: 3464, 2712: 1232, 2713: 2026, 2714: 3624, 2715: 2031, 2716: 3177, 2717: 3643, 2718: 3628, 2719: 3514, 2720: 1038, 2721: 3515, 2722: 3446, 2723: 3027, 2724: 3629, 2725: 3645, 2726: 1119, 2727: 483, 2728: 3594, 2729: 1525, 2730: 1756, 2731: 1990, 2732: 2754, 2733: 3453, 2734: 2049, 2735: 3181, 2736: 3470, 2737: 3636, 2738: 3644, 2739: 1822, 2740: 1426, 2741: 1164, 2742: 1902, 2743: 3240, 2744: 3623, 2745: 2323, 2746: 1349, 2747: 1336, 2748: 3241, 2749: 2833, 2750: 3117, 2751: 1151, 2752: 2008, 2753: 1087, 2754: 2886, 2755: 2737, 2756: 3474, 2757: 1180, 2758: 847, 2759: 997, 2760: 2679, 2761: 3122, 2762: 1928, 2763: 2981, 2764: 2984, 2765: 1849, 2766: 876, 2767: 1117, 2768: 1671, 2769: 1508, 2770: 1114, 2771: 1501, 2772: 53, 2773: 313, 2774: 3612, 2775: 2834, 2776: 38, 2777: 3190, 2778: 2499, 2779: 3668, 2780: 3615, 2781: 2674, 2782: 3684, 2783: 3671, 2784: 3683, 2785: 274, 2786: 117, 2787: 228, 2788: 99, 2789: 75, 2790: 3712, 2791: 3676, 2792: 128, 2793: 3704, 2794: 3702, 2795: 2446, 2796: 3649, 2797: 3697, 2798: 3706, 2799: 3681, 2800: 3654, 2801: 3686, 2802: 3708, 2803: 3703, 2804: 3688, 2805: 3685, 2806: 3698, 2807: 3700, 2808: 2342, 2809: 392, 2810: 3682, 2811: 3701, 2812: 3637, 2813: 3690, 2814: 3689, 2815: 2593, 2816: 583, 2817: 3699, 2818: 3707, 2819: 3675, 2820: 3693, 2821: 2843, 2822: 3320, 2823: 2897, 2824: 1889, 2825: 3711, 2826: 2086, 2827: 1121, 2828: 1169, 2829: 1313, 2830: 3567, 2831: 3581, 2832: 1770, 2833: 1782, 2834: 359, 2835: 1514, 2836: 3660, 2837: 3627, 2838: 3653, 2839: 3705, 2840: 3669, 2841: 3207, 2842: 753, 2843: 1415, 2844: 3632, 2845: 3713, 2846: 3678, 2847: 2831, 2848: 2945, 2849: 3677, 2850: 568, 2851: 3672, 2852: 369, 2853: 602, 2854: 219, 2855: 137, 2856: 136, 2857: 2103, 2858: 56, 2859: 146, 2860: 54, 2861: 2559, 2862: 90, 2863: 603, 2864: 877, 2865: 566, 2866: 771, 2867: 1749, 2868: 3473, 2869: 617, 2870: 406, 2871: 1420, 2872: 3680, 2873: 3674, 2874: 113, 2875: 3661, 2876: 3673, 2877: 2904, 2878: 3092, 2879: 2215, 2880: 1054, 2881: 3691, 2882: 250, 2883: 3055, 2884: 3679, 2885: 1656, 2886: 3692, 2887: 2339, 2888: 3715, 2889: 385, 2890: 2211, 2891: 974, 2892: 3139, 2893: 958, 2894: 3171, 2895: 755, 2896: 3215, 2897: 3670, 2898: 3710, 2899: 3740, 2900: 3730, 2901: 3724, 2902: 3731, 2903: 3732, 2904: 3716, 2905: 3733, 2906: 3734, 2907: 3735, 2908: 3729, 2909: 3738, 2910: 2209, 2911: 1903, 2912: 2227, 2913: 2221, 2914: 2185, 2915: 1728, 2916: 264, 2917: 1533, 2918: 3742, 2919: 3723, 2920: 3664, 2921: 3663, 2922: 3709, 2923: 106, 2924: 1696, 2925: 824, 2926: 3728, 2927: 619, 2928: 40, 2929: 2994, 2930: 3741, 2931: 1922, 2932: 1458, 2933: 3658, 2934: 384, 2935: 1423, 2936: 2627, 2937: 831, 2938: 3400, 2939: 2785, 2940: 3736, 2941: 1814, 2942: 2244, 2943: 1486, 2944: 375, 2945: 2755, 2946: 1715, 2947: 992, 2948: 2074, 2949: 2632, 2950: 1489, 2951: 3454, 2952: 1725, 2953: 1551, 2954: 3694, 2955: 3646, 2956: 609, 2957: 244, 2958: 722, 2959: 3714, 2960: 3665, 2961: 3662, 2962: 1063, 2963: 3648, 2964: 3659, 2965: 3696, 2966: 939, 2967: 3727, 2968: 3626, 2969: 1437, 2970: 811, 2971: 2778, 2972: 3725, 2973: 754, 2974: 2477, 2975: 1887, 2976: 411, 2977: 1055, 2978: 2191, 2979: 3717, 2980: 3667, 2981: 1534, 2982: 1817, 2983: 705, 2984: 3655, 2985: 1531, 2986: 3744, 2987: 2850, 2988: 2207, 2989: 2197, 2990: 2481, 2991: 1455, 2992: 1071, 2993: 1549, 2994: 2933, 2995: 3726, 2996: 2813, 2997: 3739, 2998: 1893, 2999: 2298, 3000: 1859, 3001: 1509, 3002: 3540, 3003: 3657, 3004: 3640, 3005: 863, 3006: 3719, 3007: 2837, 3008: 1879, 3009: 3124, 3010: 3302, 3011: 1567, 3012: 793, 3013: 3745, 3014: 1502, 3015: 3652, 3016: 119, 3017: 3754, 3018: 3763, 3019: 3746, 3020: 496, 3021: 310, 3022: 2824, 3023: 1864, 3024: 3751, 3025: 3303, 3026: 3753, 3027: 3764, 3028: 1170, 3029: 3782, 3030: 3781, 3031: 3771, 3032: 3766, 3033: 3773, 3034: 149, 3035: 3760, 3036: 665, 3037: 3770, 3038: 3758, 3039: 2855, 3040: 3743, 3041: 3769, 3042: 3183, 3043: 2158, 3044: 1793, 3045: 1153, 3046: 3642, 3047: 3737, 3048: 3025, 3049: 3768, 3050: 2534, 3051: 2332, 3052: 3780, 3053: 394, 3054: 2486, 3055: 1807, 3056: 2175, 3057: 2509, 3058: 3116, 3059: 600, 3060: 3774, 3061: 3463, 3062: 2864, 3063: 3752, 3064: 3791, 3065: 3784, 3066: 2914, 3067: 3788, 3068: 3767, 3069: 3695, 3070: 1538, 3071: 3789, 3072: 3755, 3073: 3792, 3074: 2200, 3075: 526, 3076: 1144, 3077: 3239, 3078: 1026, 3079: 1899, 3080: 2056, 3081: 1384, 3082: 3720, 3083: 1369, 3084: 3333, 3085: 698, 3086: 3718, 3087: 3765, 3088: 3747, 3089: 3775, 3090: 3778, 3091: 2179, 3092: 2964, 3093: 864, 3094: 3569, 3095: 1574, 3096: 430, 3097: 3064, 3098: 251, 3099: 2963, 3100: 598, 3101: 3783, 3102: 1718, 3103: 3759, 3104: 2979, 3105: 1490, 3106: 1311, 3107: 3050, 3108: 659, 3109: 1565, 3110: 2219, 3111: 2775, 3112: 3002, 3113: 3776, 3114: 178, 3115: 1002, 3116: 1850, 3117: 1493, 3118: 3058, 3119: 49, 3120: 3276, 3121: 3785, 3122: 3346, 3123: 2854, 3124: 3757, 3125: 3761, 3126: 2675, 3127: 3192, 3128: 2304, 3129: 1880, 3130: 2931, 3131: 3222, 3132: 2658, 3133: 561, 3134: 2544, 3135: 1926, 3136: 1539, 3137: 3180, 3138: 1575, 3139: 560, 3140: 2930, 3141: 1433, 3142: 200, 3143: 1741, 3144: 664, 3145: 2569, 3146: 966, 3147: 1890, 3148: 3721, 3149: 1825, 3150: 279, 3151: 2234, 3152: 2164, 3153: 1572, 3154: 1174, 3155: 1312, 3156: 1181, 3157: 2444, 3158: 726, 3159: 124, 3160: 3812, 3161: 3806, 3162: 3814, 3163: 3809, 3164: 3811, 3165: 3819, 3166: 108, 3167: 3813, 3168: 3802, 3169: 3799, 3170: 3121, 3171: 3801, 3172: 3810, 3173: 1878, 3174: 3807, 3175: 2873, 3176: 3804, 3177: 3818, 3178: 1163, 3179: 3817, 3180: 3793, 3181: 1520, 3182: 3790, 3183: 3787, 3184: 1664, 3185: 3795, 3186: 2129, 3187: 1519, 3188: 860, 3189: 3749, 3190: 2839, 3191: 287, 3192: 844, 3193: 2063, 3194: 3166, 3195: 3003, 3196: 3803, 3197: 3616, 3198: 3798, 3199: 751, 3200: 3318, 3201: 3808, 3202: 397, 3203: 2189, 3204: 3794, 3205: 3805, 3206: 3797, 3207: 1570, 3208: 3841, 3209: 3786, 3210: 3832, 3211: 3834, 3212: 3835, 3213: 3836, 3214: 3844, 3215: 3840, 3216: 3846, 3217: 1659, 3218: 3849, 3219: 2666, 3220: 3845, 3221: 3831, 3222: 3822, 3223: 3796, 3224: 3777, 3225: 2466, 3226: 3843, 3227: 3821, 3228: 3837, 3229: 3839, 3230: 3827, 3231: 3820, 3232: 2760, 3233: 2635, 3234: 2777, 3235: 3816, 3236: 3641, 3237: 3847, 3238: 3838, 3239: 2923, 3240: 3351, 3241: 3833, 3242: 3848, 3243: 2743, 3244: 1138, 3245: 1168, 3246: 1529, 3247: 3825, 3248: 874, 3249: 3850, 3250: 1811, 3251: 972, 3252: 2913, 3253: 1780, 3254: 767, 3255: 2487, 3256: 3611, 3257: 1891, 3258: 2608, 3259: 1522, 3260: 3826, 3261: 3161, 3262: 2998, 3263: 3293, 3264: 652, 3265: 148, 3266: 3824, 3267: 3864, 3268: 3859, 3269: 3861, 3270: 295, 3271: 3056, 3272: 3823, 3273: 3625, 3274: 980, 3275: 2934, 3276: 3866, 3277: 2673, 3278: 3140, 3279: 3592, 3280: 460, 3281: 1685, 3282: 3869, 3283: 3873, 3284: 3858, 3285: 3877, 3286: 3410, 3287: 2388, 3288: 3868, 3289: 3872, 3290: 2830, 3291: 1383, 3292: 3870, 3293: 1098, 3294: 3871, 3295: 3860, 3296: 2705, 3297: 3875, 3298: 3666, 3299: 2415, 3300: 3857, 3301: 2557, 3302: 3523, 3303: 3863, 3304: 815, 3305: 3830, 3306: 3884, 3307: 3852, 3308: 3880, 3309: 2233, 3310: 3874, 3311: 3878, 3312: 3886, 3313: 129, 3314: 2602, 3315: 3879, 3316: 3882, 3317: 630, 3318: 3001, 3319: 3851, 3320: 2911, 3321: 245, 3322: 3855, 3323: 3867, 3324: 3865, 3325: 3853, 3326: 2765, 3327: 2631, 3328: 1444, 3329: 3568, 3330: 614, 3331: 1058, 3332: 3897, 3333: 3893, 3334: 3889, 3335: 3925, 3336: 3936, 3337: 3942, 3338: 3941, 3339: 3940, 3340: 3939, 3341: 3938, 3342: 3937, 3343: 3927, 3344: 3926, 3345: 3908, 3346: 3917, 3347: 3918, 3348: 3921, 3349: 3922, 3350: 3919, 3351: 3930, 3352: 3901, 3353: 3920, 3354: 3903, 3355: 3895, 3356: 3910, 3357: 3915, 3358: 3932, 3359: 3929, 3360: 3896, 3361: 3898, 3362: 212, 3363: 3928, 3364: 3923, 3365: 3931, 3366: 3909, 3367: 3916, 3368: 2538, 3369: 3911, 3370: 3894, 3371: 3914, 3372: 3948, 3373: 3883, 3374: 3947, 3375: 3885, 3376: 3913, 3377: 2768, 3378: 3162, 3379: 3952, 3380: 2545, 3381: 3924, 3382: 3946, 3383: 1796, 3384: 3934, 3385: 3945, 3386: 3943, 3387: 3854, 3388: 3935, 3389: 3933, 3390: 2769, 3391: 3949, 3392: 2464, 3393: 3902, 3394: 3950, 3395: 3944, 3396: 3891, 3397: 3900, 3398: 3154, 3399: 3951, 3400: 3184, 3401: 2061, 3402: 98, 3403: 3912, 3404: 3906, 3405: 3892, 3406: 1040, 3407: 1543, 3408: 1622, 3409: 1636, 3410: 1471}}\n", + "5453 3411\n" + ] + } + ], + "source": [ + "print(tokenizer.query_id_encoder.mapping, tokenizer.query_id_encoder.inverse_mapping)\n", + "print(tokenizer.item_id_encoder.mapping, tokenizer.item_id_encoder.inverse_mapping)\n", + "\n", + "print(len(tokenizer.query_id_encoder.mapping[\"user_id\"]), len(tokenizer.item_id_encoder.mapping['item_id']))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, "outputs": [], "source": [ "dataset_mapping = {\n", @@ -884,7 +1005,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -906,7 +1027,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -915,7 +1036,7 @@ "(2, 2, 300, 200, 0.5)" ] }, - "execution_count": 21, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -944,19 +1065,19 @@ "\n", " | Name | Type | Params\n", "--------------------------------------------\n", - "0 | _model | SasRecModel | 2.1 M \n", + "0 | _model | SasRecModel | 2.2 M \n", "1 | _loss | CrossEntropyLoss | 0 \n", "--------------------------------------------\n", - "2.1 M Trainable params\n", + "2.2 M Trainable params\n", "0 Non-trainable params\n", - "2.1 M Total params\n", - "8.333 Total estimated model params size (MB)\n" + "2.2 M Total params\n", + "8.682 Total estimated model params size (MB)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "9a1abdbf900c4a1ea07bad82328ede65", + "model_id": "e3e5c19fde084b18abb543f8a39f1b10", "version_major": 2, "version_minor": 0 }, @@ -972,9 +1093,9 @@ "output_type": "stream", "text": [ "k 1 10 20 5\n", - "map 0.011161 0.002856 0.002105 0.003579\n", - "ndcg 0.011161 0.008803 0.009175 0.006939\n", - "recall 0.000099 0.003524 0.007127 0.001563\n", + "map 0.010225 0.004799 0.004213 0.006178\n", + "ndcg 0.010225 0.012489 0.014852 0.011929\n", + "recall 0.001169 0.004432 0.009039 0.002671\n", "\n" ] }, @@ -988,7 +1109,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "472a8fc5d5c84b688d6f7d1188a525b7", + "model_id": "0513507002ee4599a78828aca3a83323", "version_major": 2, "version_minor": 0 }, @@ -1002,7 +1123,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "dbdad0072d144486b7e2867a7204526c", + "model_id": "14cb1cc25a12402f9be54909c80f6cb4", "version_major": 2, "version_minor": 0 }, @@ -1017,88 +1138,24 @@ "name": "stderr", "output_type": "stream", "text": [ - "Epoch 0, global step 11: 'recall@10' reached 0.02311 (best 0.02311), saving model to '/root/RePlay-Accelerated/replay_benchmarks/artifacts/checkpoints/epoch=0-step=11.ckpt' as top 1\n" + "Epoch 0, global step 11: 'recall@10' reached 0.03633 (best 0.03633), saving model to '/root/RePlay-Accelerated/replay_benchmarks/artifacts/checkpoints/epoch=0-step=11.ckpt' as top 1\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "k 1 10 20 5\n", - "map 0.080357 0.036929 0.025865 0.053575\n", - "ndcg 0.080357 0.070369 0.061387 0.080768\n", - "recall 0.003216 0.023113 0.031875 0.014469\n", - "\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "089cc8b0a7a74ce386b7d12a1da251cd", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Validation: | | 0/? [00:00 Date: Fri, 29 Nov 2024 10:38:20 +0000 Subject: [PATCH 14/27] debug --- replay_benchmarks/base_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 7cf2ad9f7..302bf253a 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -181,7 +181,7 @@ def _split_data( train_events = validation_events test_gt = test_gt[test_gt[self.item_column].isin(train_events[self.item_column])] - self.test_gt = test_gt[test_gt[self.user_column].isin(train_events[self.user_column])] + test_gt = test_gt[test_gt[self.user_column].isin(train_events[self.user_column])] # Limit number of gt events in val and test only if max_num_test_interactions is not null max_test_interactions = self.dataset_cfg["preprocess"]["max_num_test_interactions"] From e50db28b18184a0ef6e7dfbc159280315febe85b Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Fri, 29 Nov 2024 10:43:39 +0000 Subject: [PATCH 15/27] add params desciption --- replay/models/nn/sequential/bert4rec/lightning.py | 8 ++++++++ replay/models/nn/sequential/sasrec/lightning.py | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/replay/models/nn/sequential/bert4rec/lightning.py b/replay/models/nn/sequential/bert4rec/lightning.py index a6918e21a..a2436ae2f 100644 --- a/replay/models/nn/sequential/bert4rec/lightning.py +++ b/replay/models/nn/sequential/bert4rec/lightning.py @@ -68,6 +68,14 @@ def __init__( Default: ``global_uniform``. :param negatives_sharing: Apply negative sharing in calculating sampled logits. Default: ``False``. + :param n_buckets: Number of buckets for SCE loss. + Default: ``100`` + :param bucket_size_x: Size of x buckets for SCE loss. + Default: ``100`` + :param bucket_size_y: Size of y buckets for SCE loss. + Default: ``100`` + :param mix_x: Mix states embeddings with random matrix for SCE loss. + Default: ``False`` :param optimizer_factory: Optimizer factory. Default: ``FatOptimizerFactory``. :param lr_scheduler_factory: Learning rate schedule factory. diff --git a/replay/models/nn/sequential/sasrec/lightning.py b/replay/models/nn/sequential/sasrec/lightning.py index ab927d3fa..db160e79c 100644 --- a/replay/models/nn/sequential/sasrec/lightning.py +++ b/replay/models/nn/sequential/sasrec/lightning.py @@ -66,6 +66,14 @@ def __init__( Default: ``global_uniform``. :param negatives_sharing: Apply negative sharing in calculating sampled logits. Default: ``False``. + :param n_buckets: Number of buckets for SCE loss. + Default: ``100`` + :param bucket_size_x: Size of x buckets for SCE loss. + Default: ``100`` + :param bucket_size_y: Size of y buckets for SCE loss. + Default: ``100`` + :param mix_x: Mix states embeddings with random matrix for SCE loss. + Default: ``False`` :param optimizer_factory: Optimizer factory. Default: ``FatOptimizerFactory``. :param lr_scheduler_factory: Learning rate schedule factory. From cd77a2599716526b1e8036cb82d2e13699185c47 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Fri, 29 Nov 2024 10:47:05 +0000 Subject: [PATCH 16/27] update configs --- replay_benchmarks/configs/model/bert4rec.yaml | 1 + replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml | 1 + replay_benchmarks/configs/model/bert4rec_zvuk.yaml | 1 + replay_benchmarks/configs/model/sasrec.yaml | 1 + replay_benchmarks/configs/model/sasrec_movielens_1m.yaml | 2 +- replay_benchmarks/configs/model/sasrec_zvuk.yaml | 2 +- 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/replay_benchmarks/configs/model/bert4rec.yaml b/replay_benchmarks/configs/model/bert4rec.yaml index ed94af7be..b60b67828 100755 --- a/replay_benchmarks/configs/model/bert4rec.yaml +++ b/replay_benchmarks/configs/model/bert4rec.yaml @@ -8,6 +8,7 @@ model: max_seq_len: 20 hidden_size: 312 dropout_rate: 0.15 + loss_type: CE # CE, BCE, SCE training_params: embedding_dim: 312 learning_rate: 0.002 diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml index e4c485d0f..bbe88b73c 100755 --- a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml @@ -8,6 +8,7 @@ model: max_seq_len: 100 hidden_size: 300 dropout_rate: 0.5 + loss_type: CE # CE, BCE, SCE training_params: embedding_dim: 300 learning_rate: 0.001 diff --git a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml index ed94af7be..b60b67828 100755 --- a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml +++ b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml @@ -8,6 +8,7 @@ model: max_seq_len: 20 hidden_size: 312 dropout_rate: 0.15 + loss_type: CE # CE, BCE, SCE training_params: embedding_dim: 312 learning_rate: 0.002 diff --git a/replay_benchmarks/configs/model/sasrec.yaml b/replay_benchmarks/configs/model/sasrec.yaml index 08f5daf64..ea3ab043d 100755 --- a/replay_benchmarks/configs/model/sasrec.yaml +++ b/replay_benchmarks/configs/model/sasrec.yaml @@ -8,6 +8,7 @@ model: max_seq_len: 100 hidden_size: 384 dropout_rate: 0.1 + loss_type: CE # CE, BCE, SCE training_params: embedding_dim: 300 learning_rate: 0.001 diff --git a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml index f94d8d372..90097ae78 100755 --- a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml @@ -8,7 +8,7 @@ model: max_seq_len: 200 hidden_size: 300 dropout_rate: 0.5 - loss_type: SCE + loss_type: CE # CE, BCE, SCE training_params: embedding_dim: 300 learning_rate: 0.001 diff --git a/replay_benchmarks/configs/model/sasrec_zvuk.yaml b/replay_benchmarks/configs/model/sasrec_zvuk.yaml index d2d3de79e..ef299249a 100755 --- a/replay_benchmarks/configs/model/sasrec_zvuk.yaml +++ b/replay_benchmarks/configs/model/sasrec_zvuk.yaml @@ -8,7 +8,7 @@ model: max_seq_len: 400 hidden_size: 128 dropout_rate: 0.1 - loss_type: BCE + loss_type: BCE # CE, BCE, SCE loss_sample_count: 500 training_params: embedding_dim: 300 From 89a4aad69e76443c715bd96a2afbcbfe1b3a5e49 Mon Sep 17 00:00:00 2001 From: petrsokerin <55953039+petrsokerin@users.noreply.github.com> Date: Fri, 29 Nov 2024 13:50:04 +0300 Subject: [PATCH 17/27] Sce dev (#3) * add sce loss to bert4rec and sasrec * modify pipeline * add notebook with different metrics * update configs --- main.py | 5 +- .../nn/sequential/bert4rec/lightning.py | 78 +- .../models/nn/sequential/sasrec/lightning.py | 75 +- .../09_sasrec_example_like_pipeline.ipynb | 2339 +++++++++++++++++ replay_benchmarks/base_runner.py | 5 +- replay_benchmarks/benchmark_test.ipynb | 1312 +++++++++ replay_benchmarks/configs/config.yaml | 3 +- replay_benchmarks/configs/model/bert4rec.yaml | 24 +- .../configs/model/bert4rec_movielens_1m.yaml | 17 + .../configs/model/bert4rec_zvuk.yaml | 17 + replay_benchmarks/configs/model/sasrec.yaml | 24 +- .../configs/model/sasrec_movielens_1m.yaml | 17 + .../configs/model/sasrec_zvuk.yaml | 18 + replay_benchmarks/train_runner.py | 24 +- replay_benchmarks/utils/conf.py | 14 + 15 files changed, 3931 insertions(+), 41 deletions(-) create mode 100644 replay_benchmarks/09_sasrec_example_like_pipeline.ipynb create mode 100644 replay_benchmarks/benchmark_test.ipynb create mode 100755 replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec_zvuk.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_movielens_1m.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_zvuk.yaml diff --git a/main.py b/main.py index 4b292e891..fa46a603e 100755 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ import warnings import yaml -from replay_benchmarks.utils.conf import load_config +from replay_benchmarks.utils.conf import load_config, seed_everything from replay_benchmarks import TrainRunner, InferRunner logging.basicConfig(level=logging.INFO) @@ -18,6 +18,9 @@ def main() -> None: config = load_config(base_config_path, config_dir) logging.info("Configuration:\n%s", yaml.dump(config)) + seed_everything(config["env"]["SEED"]) + logging.info(f"Fixing seed: {config['env']['SEED']}") + if config["mode"]["name"] == "train": runner = TrainRunner(config) elif config["mode"]["name"] == "infer": diff --git a/replay/models/nn/sequential/bert4rec/lightning.py b/replay/models/nn/sequential/bert4rec/lightning.py index 8b6a575b2..a2436ae2f 100644 --- a/replay/models/nn/sequential/bert4rec/lightning.py +++ b/replay/models/nn/sequential/bert4rec/lightning.py @@ -31,6 +31,10 @@ def __init__( loss_sample_count: Optional[int] = None, negative_sampling_strategy: str = "global_uniform", negatives_sharing: bool = False, + n_buckets: int = 100, + bucket_size_x: int = 100, + bucket_size_y: int = 100, + mix_x: bool = False, optimizer_factory: OptimizerFactory = FatOptimizerFactory(), lr_scheduler_factory: Optional[LRSchedulerFactory] = None, ): @@ -64,6 +68,14 @@ def __init__( Default: ``global_uniform``. :param negatives_sharing: Apply negative sharing in calculating sampled logits. Default: ``False``. + :param n_buckets: Number of buckets for SCE loss. + Default: ``100`` + :param bucket_size_x: Size of x buckets for SCE loss. + Default: ``100`` + :param bucket_size_y: Size of y buckets for SCE loss. + Default: ``100`` + :param mix_x: Mix states embeddings with random matrix for SCE loss. + Default: ``False`` :param optimizer_factory: Optimizer factory. Default: ``FatOptimizerFactory``. :param lr_scheduler_factory: Learning rate schedule factory. @@ -90,6 +102,10 @@ def __init__( self._lr_scheduler_factory = lr_scheduler_factory self._loss = self._create_loss() self._schema = tensor_schema + self._n_buckets = n_buckets + self._bucket_size_x = bucket_size_x + self._bucket_size_y = bucket_size_y + self._mix_x = mix_x assert negative_sampling_strategy in {"global_uniform", "inbatch"} item_count = tensor_schema.item_id_features.item().cardinality @@ -207,6 +223,8 @@ def _compute_loss(self, batch: Bert4RecTrainingBatch) -> torch.Tensor: loss_func = self._compute_loss_bce if self._loss_sample_count is None else self._compute_loss_bce_sampled elif self._loss_type == "CE": loss_func = self._compute_loss_ce if self._loss_sample_count is None else self._compute_loss_ce_sampled + elif self._loss_type == "SCE": + loss_func = self._compute_loss_scalable_ce else: msg = f"Not supported loss type: {self._loss_type}" raise ValueError(msg) @@ -325,6 +343,64 @@ def _compute_loss_ce_sampled( labels_flat = torch.zeros(positive_logits.size(0), dtype=torch.long, device=padding_mask.device) loss = self._loss(logits, labels_flat) return loss + + def _compute_loss_scalable_ce( + self, + feature_tensors: TensorMap, + positive_labels: torch.LongTensor, + padding_mask: torch.BoolTensor, + tokens_mask: torch.BoolTensor, + ) -> torch.Tensor: + + labels_mask = (~padding_mask) + tokens_mask + masked_tokens = ~labels_mask + + pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + emb = self._model.forward_step(feature_tensors, padding_mask, tokens_mask) + hd = torch.tensor(emb.shape[-1]) + + x = emb.view(-1, hd) + y = positive_labels.view(-1) + w = self.get_all_embeddings()["item_embedding"] + + correct_class_logits_ = (x * torch.index_select(w, dim=0, index=y)).sum(dim=1) # (bs,) + + with torch.no_grad(): + if self._mix_x: + omega = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(x.shape[0], self._n_buckets, device=x.device) + buckets = omega.T @ x + del omega + else: + buckets = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(self._n_buckets, hd, device=x.device) # (n_b, hd) + + with torch.no_grad(): + x_bucket = buckets @ x.T # (n_b, hd) x (hd, b) -> (n_b, b) + x_bucket[:, ~padding_mask.view(-1)] = float('-inf') + _, top_x_bucket = torch.topk(x_bucket, dim=1, k=self._bucket_size_x) # (n_b, bs_x) + del x_bucket + + y_bucket = buckets @ w.T # (n_b, hd) x (hd, n_cl) -> (n_b, n_cl) + + y_bucket[:, pad_token] = float('-inf') + _, top_y_bucket = torch.topk(y_bucket, dim=1, k=self._bucket_size_y) # (n_b, bs_y) + del y_bucket + + x_bucket = torch.gather(x, 0, top_x_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_x, hd) # (n_b, bs_x, hd) + y_bucket = torch.gather(w, 0, top_y_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_y, hd) # (n_b, bs_y, hd) + + wrong_class_logits = (x_bucket @ y_bucket.transpose(-1, -2)) # (n_b, bs_x, bs_y) + mask = torch.index_select(y, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] == top_y_bucket[:, None, :] # (n_b, bs_x, bs_y) + wrong_class_logits = wrong_class_logits.masked_fill(mask, float('-inf')) # (n_b, bs_x, bs_y) + correct_class_logits = torch.index_select(correct_class_logits_, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] # (n_b, bs_x, 1) + logits = torch.cat((wrong_class_logits, correct_class_logits), dim=2) # (n_b, bs_x, bs_y + 1) + + loss_ = torch.nn.functional.cross_entropy(logits.view(-1, logits.shape[-1]), (logits.shape[-1] - 1) * torch.ones(logits.shape[0] * logits.shape[1], dtype=torch.int64, device=logits.device), reduction='none') # (n_b * bs_x,) + loss = torch.zeros(x.shape[0], device=x.device, dtype=x.dtype) + loss.scatter_reduce_(0, top_x_bucket.view(-1), loss_, reduce='amax', include_self=False) + loss = loss[(loss != 0) & (masked_tokens).view(-1)] + loss = torch.mean(loss) + + return loss def _get_sampled_logits( self, @@ -412,7 +488,7 @@ def _create_loss(self) -> Union[torch.nn.BCEWithLogitsLoss, torch.nn.CrossEntrop if self._loss_type == "BCE": return torch.nn.BCEWithLogitsLoss(reduction="sum") - if self._loss_type == "CE": + if self._loss_type == "CE" or self._loss_type == "SCE": return torch.nn.CrossEntropyLoss() msg = "Not supported loss_type" diff --git a/replay/models/nn/sequential/sasrec/lightning.py b/replay/models/nn/sequential/sasrec/lightning.py index eb03693a5..db160e79c 100644 --- a/replay/models/nn/sequential/sasrec/lightning.py +++ b/replay/models/nn/sequential/sasrec/lightning.py @@ -33,6 +33,10 @@ def __init__( loss_sample_count: Optional[int] = None, negative_sampling_strategy: str = "global_uniform", negatives_sharing: bool = False, + n_buckets: int = 100, + bucket_size_x: int = 100, + bucket_size_y: int = 100, + mix_x: bool = False, optimizer_factory: OptimizerFactory = FatOptimizerFactory(), lr_scheduler_factory: Optional[LRSchedulerFactory] = None, ): @@ -62,6 +66,14 @@ def __init__( Default: ``global_uniform``. :param negatives_sharing: Apply negative sharing in calculating sampled logits. Default: ``False``. + :param n_buckets: Number of buckets for SCE loss. + Default: ``100`` + :param bucket_size_x: Size of x buckets for SCE loss. + Default: ``100`` + :param bucket_size_y: Size of y buckets for SCE loss. + Default: ``100`` + :param mix_x: Mix states embeddings with random matrix for SCE loss. + Default: ``False`` :param optimizer_factory: Optimizer factory. Default: ``FatOptimizerFactory``. :param lr_scheduler_factory: Learning rate schedule factory. @@ -87,6 +99,10 @@ def __init__( self._lr_scheduler_factory = lr_scheduler_factory self._loss = self._create_loss() self._schema = tensor_schema + self._n_buckets = n_buckets + self._bucket_size_x = bucket_size_x + self._bucket_size_y = bucket_size_y + self._mix_x = mix_x assert negative_sampling_strategy in {"global_uniform", "inbatch"} item_count = tensor_schema.item_id_features.item().cardinality @@ -190,6 +206,8 @@ def _compute_loss(self, batch: SasRecTrainingBatch) -> torch.Tensor: loss_func = self._compute_loss_bce if self._loss_sample_count is None else self._compute_loss_bce_sampled elif self._loss_type == "CE": loss_func = self._compute_loss_ce if self._loss_sample_count is None else self._compute_loss_ce_sampled + elif self._loss_type == "SCE": + loss_func = self._compute_loss_scalable_ce else: msg = f"Not supported loss type: {self._loss_type}" raise ValueError(msg) @@ -306,6 +324,61 @@ def _compute_loss_ce_sampled( labels_flat = torch.zeros(positive_logits.size(0), dtype=torch.long, device=padding_mask.device) loss = self._loss(logits, labels_flat) return loss + + def _compute_loss_scalable_ce( + self, + feature_tensors: TensorMap, + positive_labels: torch.LongTensor, + padding_mask: torch.BoolTensor, + target_padding_mask: torch.BoolTensor, + ) -> torch.Tensor: + + pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + emb = self._model.forward_step(feature_tensors, padding_mask)[target_padding_mask] + hd = torch.tensor(emb.shape[-1]) + + x = emb.view(-1, hd) + y = positive_labels[target_padding_mask].view(-1) + w = self.get_all_embeddings()["item_embedding"] + + correct_class_logits_ = (x * torch.index_select(w, dim=0, index=y)).sum(dim=1) # (bs,) + + with torch.no_grad(): + if self._mix_x: + omega = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(x.shape[0], self._n_buckets, device=x.device) + buckets = omega.T @ x + del omega + else: + buckets = 1/torch.sqrt(torch.sqrt(hd)) * torch.randn(self._n_buckets, hd, device=x.device) # (n_b, hd) + + with torch.no_grad(): + x_bucket = buckets @ x.T # (n_b, hd) x (hd, b) -> (n_b, b) + x_bucket[:, ~padding_mask[target_padding_mask].view(-1)] = float('-inf') + _, top_x_bucket = torch.topk(x_bucket, dim=1, k=self._bucket_size_x) # (n_b, bs_x) + del x_bucket + + y_bucket = buckets @ w.T # (n_b, hd) x (hd, n_cl) -> (n_b, n_cl) + + y_bucket[:, pad_token] = float('-inf') + _, top_y_bucket = torch.topk(y_bucket, dim=1, k=self._bucket_size_y) # (n_b, bs_y) + del y_bucket + + x_bucket = torch.gather(x, 0, top_x_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_x, hd) # (n_b, bs_x, hd) + y_bucket = torch.gather(w, 0, top_y_bucket.view(-1, 1).expand(-1, hd)).view(self._n_buckets, self._bucket_size_y, hd) # (n_b, bs_y, hd) + + wrong_class_logits = (x_bucket @ y_bucket.transpose(-1, -2)) # (n_b, bs_x, bs_y) + mask = torch.index_select(y, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] == top_y_bucket[:, None, :] # (n_b, bs_x, bs_y) + wrong_class_logits = wrong_class_logits.masked_fill(mask, float('-inf')) # (n_b, bs_x, bs_y) + correct_class_logits = torch.index_select(correct_class_logits_, dim=0, index=top_x_bucket.view(-1)).view(self._n_buckets, self._bucket_size_x)[:, :, None] # (n_b, bs_x, 1) + logits = torch.cat((wrong_class_logits, correct_class_logits), dim=2) # (n_b, bs_x, bs_y + 1) + + loss_ = torch.nn.functional.cross_entropy(logits.view(-1, logits.shape[-1]), (logits.shape[-1] - 1) * torch.ones(logits.shape[0] * logits.shape[1], dtype=torch.int64, device=logits.device), reduction='none') # (n_b * bs_x,) + loss = torch.zeros(x.shape[0], device=x.device, dtype=x.dtype) + loss.scatter_reduce_(0, top_x_bucket.view(-1), loss_, reduce='amax', include_self=False) + loss = loss[loss != 0] + loss = torch.mean(loss) + + return loss def _get_sampled_logits( self, @@ -391,7 +464,7 @@ def _create_loss(self) -> Union[torch.nn.BCEWithLogitsLoss, torch.nn.CrossEntrop if self._loss_type == "BCE": return torch.nn.BCEWithLogitsLoss(reduction="sum") - if self._loss_type == "CE": + if self._loss_type == "CE" or self._loss_type == "SCE": return torch.nn.CrossEntropyLoss() msg = "Not supported loss_type" diff --git a/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb new file mode 100644 index 000000000..794e21e15 --- /dev/null +++ b/replay_benchmarks/09_sasrec_example_like_pipeline.ipynb @@ -0,0 +1,2339 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example of the SASRec training and inference stages\n", + "Note that all the given examples can be run without using PySpark, using only Pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# changing core directory\n", + "import os, sys\n", + "dir2 = os.path.abspath('')\n", + "dir1 = os.path.dirname(dir2)\n", + "if not dir1 in sys.path:\n", + " sys.path.append(dir1)\n", + "os.chdir('..')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" \n", + "os.environ[\"OMP_NUM_THREADS\"] = \"4\"\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\"\n", + "os.environ[\"KAGGLE_USERNAME\"] = \"recsysaccelerate\"\n", + "os.environ[\"KAGGLE_KEY\"] = \"6363e91b656fea576c39e4f55dcc1d00\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import lightning as L\n", + "from lightning.pytorch.loggers import CSVLogger\n", + "from lightning.pytorch.callbacks import ModelCheckpoint\n", + "from torch.utils.data import DataLoader\n", + "import torch\n", + "\n", + "from replay.preprocessing.filters import MinCountFilter\n", + "from replay.metrics import OfflineMetrics, Recall, Precision, MAP, NDCG, HitRate, MRR\n", + "from replay.metrics.torch_metrics_builder import metrics_to_df\n", + "from replay.splitters import LastNSplitter, TimeSplitter\n", + "from replay.utils import get_spark_session\n", + "from replay.data import (\n", + " FeatureHint,\n", + " FeatureInfo,\n", + " FeatureSchema,\n", + " FeatureSource,\n", + " FeatureType,\n", + " Dataset,\n", + ")\n", + "from replay.models.nn.optimizer_utils import FatOptimizerFactory\n", + "from replay.models.nn.sequential.callbacks import (\n", + " ValidationMetricsCallback,\n", + " SparkPredictionCallback,\n", + " PandasPredictionCallback, \n", + " TorchPredictionCallback,\n", + " QueryEmbeddingsPredictionCallback\n", + ")\n", + "from replay.models.nn.sequential.postprocessors import RemoveSeenItems\n", + "from replay.data.nn import (\n", + " SequenceTokenizer,\n", + " SequentialDataset,\n", + " TensorFeatureSource,\n", + " TensorSchema,\n", + " TensorFeatureInfo\n", + ")\n", + "from replay.models.nn.sequential import SasRec\n", + "from replay.models.nn.sequential.sasrec import (\n", + " SasRecPredictionDataset,\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionBatch,\n", + " SasRecModel\n", + ")\n", + "\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "\n", + "SEED = 42\n", + "\n", + "torch.manual_seed(SEED)\n", + "torch.cuda.manual_seed(SEED)\n", + "np.random.seed(SEED)\n", + "random.seed(SEED)\n", + "\n", + "torch.backends.cudnn.deterministic=True" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting a spark session" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.11/site-packages/pyspark/bin/load-spark-env.sh: line 68: ps: command not found\n", + "Setting default log level to \"WARN\".\n", + "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", + "24/11/28 07:39:42 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable\n", + "24/11/28 07:39:42 WARN SparkConf: Note that spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone/kubernetes and LOCAL_DIRS in YARN).\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4041. Attempting port 4042.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4042. Attempting port 4043.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4043. Attempting port 4044.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4044. Attempting port 4045.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4045. Attempting port 4046.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4046. Attempting port 4047.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4047. Attempting port 4048.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4048. Attempting port 4049.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4049. Attempting port 4050.\n", + "24/11/28 07:39:42 WARN Utils: Service 'SparkUI' could not bind on port 4050. Attempting port 4051.\n" + ] + } + ], + "source": [ + "spark_session = get_spark_session()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare data\n", + "### Load raw movielens-1M interactions, item features and user features.\n", + "In the current implementation, the SASRec does not take into account the features of items or users. They are only used to get a complete list of users and items." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: rs-datasets in /usr/local/lib/python3.11/site-packages (0.5.1)\n", + "Requirement already satisfied: datatable in /usr/local/lib/python3.11/site-packages (from rs-datasets) (1.1.0)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.11/site-packages (from rs-datasets) (2.0.3)\n", + "Requirement already satisfied: gdown in /usr/local/lib/python3.11/site-packages (from rs-datasets) (5.2.0)\n", + "Requirement already satisfied: pyarrow in /usr/local/lib/python3.11/site-packages (from rs-datasets) (16.0.0)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.11/site-packages (from rs-datasets) (4.66.4)\n", + "Requirement already satisfied: xlrd in /usr/local/lib/python3.11/site-packages (from rs-datasets) (2.0.1)\n", + "Requirement already satisfied: kaggle in /usr/local/lib/python3.11/site-packages (from rs-datasets) (1.6.17)\n", + "Requirement already satisfied: py7zr in /usr/local/lib/python3.11/site-packages (from rs-datasets) (0.22.0)\n", + "Requirement already satisfied: openpyxl in /usr/local/lib/python3.11/site-packages (from rs-datasets) (3.1.5)\n", + "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/site-packages (from gdown->rs-datasets) (4.12.3)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.11/site-packages (from gdown->rs-datasets) (3.14.0)\n", + "Requirement already satisfied: requests[socks] in /usr/local/lib/python3.11/site-packages (from gdown->rs-datasets) (2.32.3)\n", + "Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (1.16.0)\n", + "Requirement already satisfied: certifi>=2023.7.22 in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (2024.6.2)\n", + "Requirement already satisfied: python-dateutil in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (2.9.0.post0)\n", + "Requirement already satisfied: python-slugify in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (8.0.4)\n", + "Requirement already satisfied: urllib3 in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (2.2.1)\n", + "Requirement already satisfied: bleach in /usr/local/lib/python3.11/site-packages (from kaggle->rs-datasets) (6.1.0)\n", + "Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.11/site-packages (from openpyxl->rs-datasets) (2.0.0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/site-packages (from pandas->rs-datasets) (2024.1)\n", + "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.11/site-packages (from pandas->rs-datasets) (2024.1)\n", + "Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.11/site-packages (from pandas->rs-datasets) (1.24.4)\n", + "Requirement already satisfied: texttable in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.7.0)\n", + "Requirement already satisfied: pycryptodomex>=3.16.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (3.21.0)\n", + "Requirement already satisfied: pyzstd>=0.15.9 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (0.16.2)\n", + "Requirement already satisfied: pyppmd<1.2.0,>=1.1.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.1.0)\n", + "Requirement already satisfied: pybcj<1.1.0,>=1.0.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.0.2)\n", + "Requirement already satisfied: multivolumefile>=0.2.3 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (0.2.3)\n", + "Requirement already satisfied: inflate64<1.1.0,>=1.0.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.0.0)\n", + "Requirement already satisfied: brotli>=1.1.0 in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (1.1.0)\n", + "Requirement already satisfied: psutil in /usr/local/lib/python3.11/site-packages (from py7zr->rs-datasets) (6.0.0)\n", + "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/site-packages (from beautifulsoup4->gdown->rs-datasets) (2.5)\n", + "Requirement already satisfied: webencodings in /usr/local/lib/python3.11/site-packages (from bleach->kaggle->rs-datasets) (0.5.1)\n", + "Requirement already satisfied: text-unidecode>=1.3 in /usr/local/lib/python3.11/site-packages (from python-slugify->kaggle->rs-datasets) (1.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests[socks]->gdown->rs-datasets) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests[socks]->gdown->rs-datasets) (3.7)\n", + "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.11/site-packages (from requests[socks]->gdown->rs-datasets) (1.7.1)\n", + "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\n", + "\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install rs-datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from rs_datasets import MovieLens" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "movielens = MovieLens(\"1m\")\n", + "interactions = movielens.ratings\n", + "user_features = movielens.users\n", + "item_features = movielens.items" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
0111935978300760
116613978302109
219143978301968
3134084978300275
4123555978824291
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "0 1 1193 5 978300760\n", + "1 1 661 3 978302109\n", + "2 1 914 3 978301968\n", + "3 1 3408 4 978300275\n", + "4 1 2355 5 978824291" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idgenderageoccupationzip_code
01F11048067
12M561670072
23M251555117
34M45702460
45M252055455
\n", + "
" + ], + "text/plain": [ + " user_id gender age occupation zip_code\n", + "0 1 F 1 10 48067\n", + "1 2 M 56 16 70072\n", + "2 3 M 25 15 55117\n", + "3 4 M 45 7 02460\n", + "4 5 M 25 20 55455" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_features.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
item_idtitlegenres
01Toy Story (1995)Animation|Children's|Comedy
12Jumanji (1995)Adventure|Children's|Fantasy
23Grumpier Old Men (1995)Comedy|Romance
34Waiting to Exhale (1995)Comedy|Drama
45Father of the Bride Part II (1995)Comedy
\n", + "
" + ], + "text/plain": [ + " item_id title genres\n", + "0 1 Toy Story (1995) Animation|Children's|Comedy\n", + "1 2 Jumanji (1995) Adventure|Children's|Fantasy\n", + "2 3 Grumpier Old Men (1995) Comedy|Romance\n", + "3 4 Waiting to Exhale (1995) Comedy|Drama\n", + "4 5 Father of the Bride Part II (1995) Comedy" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item_features.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
count1.000209e+061.000209e+061.000209e+061.000209e+06
mean3.024512e+031.865540e+033.581564e+009.722437e+08
std1.728413e+031.096041e+031.117102e+001.215256e+07
min1.000000e+001.000000e+001.000000e+009.567039e+08
25%1.506000e+031.030000e+033.000000e+009.653026e+08
50%3.070000e+031.835000e+034.000000e+009.730180e+08
75%4.476000e+032.770000e+034.000000e+009.752209e+08
max6.040000e+033.952000e+035.000000e+001.046455e+09
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "count 1.000209e+06 1.000209e+06 1.000209e+06 1.000209e+06\n", + "mean 3.024512e+03 1.865540e+03 3.581564e+00 9.722437e+08\n", + "std 1.728413e+03 1.096041e+03 1.117102e+00 1.215256e+07\n", + "min 1.000000e+00 1.000000e+00 1.000000e+00 9.567039e+08\n", + "25% 1.506000e+03 1.030000e+03 3.000000e+00 9.653026e+08\n", + "50% 3.070000e+03 1.835000e+03 4.000000e+00 9.730180e+08\n", + "75% 4.476000e+03 2.770000e+03 4.000000e+00 9.752209e+08\n", + "max 6.040000e+03 3.952000e+03 5.000000e+00 1.046455e+09" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "interactions = MinCountFilter(\n", + " num_entries=5,\n", + " groupby_column='item_id',\n", + ").transform(interactions)\n", + "\n", + "interactions = MinCountFilter(\n", + " num_entries=3,\n", + " groupby_column='user_id',\n", + ").transform(interactions)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
count999611.000000999611.000000999611.0000009.996110e+05
mean3024.5765371865.4394283.5819749.722409e+08
std1728.4367051095.9763361.1168941.214827e+07
min1.0000001.0000001.0000009.567039e+08
25%1506.0000001030.0000003.0000009.653025e+08
50%3070.0000001835.0000004.0000009.730170e+08
75%4477.0000002770.0000004.0000009.752208e+08
max6040.0000003952.0000005.0000001.046455e+09
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "count 999611.000000 999611.000000 999611.000000 9.996110e+05\n", + "mean 3024.576537 1865.439428 3.581974 9.722409e+08\n", + "std 1728.436705 1095.976336 1.116894 1.214827e+07\n", + "min 1.000000 1.000000 1.000000 9.567039e+08\n", + "25% 1506.000000 1030.000000 3.000000 9.653025e+08\n", + "50% 3070.000000 1835.000000 4.000000 9.730170e+08\n", + "75% 4477.000000 2770.000000 4.000000 9.752208e+08\n", + "max 6040.000000 3952.000000 5.000000 1.046455e+09" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions.describe()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Removing duplicates in the timestamp column without changing the original items order where timestamp is the same" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# interactions[\"timestamp\"] = interactions[\"timestamp\"].astype(\"int64\")\n", + "# interactions = interactions.sort_values(by=\"timestamp\")\n", + "# interactions[\"timestamp\"] = interactions.groupby(\"user_id\").cumcount()\n", + "# interactions" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Split interactions into the train, validation and test datasets using LastNSplitter" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# splitter = LastNSplitter(\n", + "# N=1,\n", + "# divide_column=\"user_id\",\n", + "# query_column=\"user_id\",\n", + "# strategy=\"interactions\",\n", + "# )\n", + "\n", + "# raw_test_events, raw_test_gt = splitter.split(interactions)\n", + "# raw_validation_events, raw_validation_gt = splitter.split(raw_test_events)\n", + "# raw_train_events = raw_validation_events\n", + "\n", + "\n", + "splitter = TimeSplitter(\n", + " time_threshold=0.1,\n", + " drop_cold_users=True,\n", + " drop_cold_items=True,\n", + " item_column='item_id',\n", + " query_column='user_id',\n", + " timestamp_column='timestamp',\n", + ")\n", + "\n", + "# train_events, validation_events, validation_gt, test_events, test_gt = (\n", + "# _split_data(splitter, interactions)\n", + "# )\n", + "\n", + "raw_test_events, raw_test_gt = splitter.split(interactions)\n", + "raw_validation_events, raw_validation_gt = splitter.split(raw_test_events)\n", + "raw_train_events = raw_validation_events\n", + "\n", + "raw_test_gt = raw_test_gt[raw_test_gt['item_id'].isin(raw_train_events['item_id'])]\n", + "raw_test_gt = raw_test_gt[raw_test_gt['user_id'].isin(raw_train_events['user_id'])]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def test_splitting(events, gt, name=''):\n", + " if events['timestamp'].max() > gt['timestamp'].min():\n", + " print(\"Problem with time points in\", name)\n", + " if len(set(gt['user_id'].unique().tolist()) - set(events['user_id'].unique().tolist())) > 0:\n", + " print(\"Problem with cold users in\", name)\n", + " if len(set(gt['item_id'].unique().tolist()) - set(events['item_id'].unique().tolist())) > 0:\n", + " print(\"Problem with cold items in\", name)\n", + "\n", + "\n", + "test_splitting(raw_train_events, raw_test_gt, \"train events, test gt\")\n", + "test_splitting(raw_train_events, raw_validation_gt, \"train events, valid gt\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare FeatureSchema required to create Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_feature_schema(is_ground_truth: bool) -> FeatureSchema:\n", + " base_features = FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=\"user_id\",\n", + " feature_hint=FeatureHint.QUERY_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " FeatureInfo(\n", + " column=\"item_id\",\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " ]\n", + " )\n", + " if is_ground_truth:\n", + " return base_features\n", + "\n", + " all_features = base_features + FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=\"timestamp\",\n", + " feature_type=FeatureType.NUMERICAL,\n", + " feature_hint=FeatureHint.TIMESTAMP,\n", + " ),\n", + " ]\n", + " )\n", + " return all_features" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Dataset for the training stage" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "user_features = None\n", + "item_features = None" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "train_dataset = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=False),\n", + " interactions=raw_train_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Datasets (events and ground_truth) for the validation stage" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "validation_dataset = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=False),\n", + " interactions=raw_validation_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "validation_gt = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=True),\n", + " interactions=raw_validation_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create Datasets (events and ground_truth) for the testing stage" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "test_dataset = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=False),\n", + " interactions=raw_test_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "test_gt = Dataset(\n", + " feature_schema=prepare_feature_schema(is_ground_truth=True),\n", + " interactions=raw_test_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create the tensor schema\n", + "A schema shows the correspondence of columns from the source dataset with the internal representation of tensors inside the model" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "ITEM_FEATURE_NAME = \"item_id_seq\"\n", + "\n", + "tensor_schema = TensorSchema(\n", + " TensorFeatureInfo(\n", + " name=ITEM_FEATURE_NAME,\n", + " is_seq=True,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " feature_sources=[TensorFeatureSource(FeatureSource.INTERACTIONS, train_dataset.feature_schema.item_id_column)],\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " )\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create sequential datasets using SequenceTokenizer\n", + "The SequentialDataset internally store data in the form of sequences of items sorted by increasing interaction time (timestamp). A SequenceTokenizer is used to convert to this format. In addition, the SequenceTokenizer encodes all categorical columns from the source dataset and stores mapping inside itself.\n", + "SequentialDataset.keep_common_query_ids is used to leave only sequences from the same users" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "tokenizer = SequenceTokenizer(tensor_schema, allow_collect_to_master=True, handle_unknown_rule=\"drop\")\n", + "tokenizer.fit(train_dataset)\n", + "\n", + "sequential_train_dataset = tokenizer.transform(train_dataset)\n", + "\n", + "sequential_validation_dataset = tokenizer.transform(validation_dataset)\n", + "sequential_validation_gt = tokenizer.transform(validation_gt, [tensor_schema.item_id_feature_name])\n", + "\n", + "sequential_validation_dataset, sequential_validation_gt = SequentialDataset.keep_common_query_ids(\n", + " sequential_validation_dataset, sequential_validation_gt\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "test_query_ids = test_gt.query_ids\n", + "test_query_ids_np = tokenizer.query_id_encoder.transform(test_query_ids)[\"user_id\"].values\n", + "sequential_test_dataset = tokenizer.transform(test_dataset).filter_by_query_id(test_query_ids_np)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can get the user and item mapping and inverse mapping as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'user_id': {6040: 0, 6039: 1, 6038: 2, 6037: 3, 6036: 4, 6035: 5, 6034: 6, 6033: 7, 6032: 8, 6031: 9, 6030: 10, 6029: 11, 6028: 12, 6027: 13, 6026: 14, 6025: 15, 6024: 16, 6023: 17, 6022: 18, 6021: 19, 6020: 20, 6019: 21, 6018: 22, 6017: 23, 6016: 24, 6015: 25, 6014: 26, 6013: 27, 6012: 28, 6011: 29, 6010: 30, 6009: 31, 6007: 32, 6008: 33, 6006: 34, 6005: 35, 6004: 36, 6003: 37, 6002: 38, 6001: 39, 6000: 40, 5999: 41, 5998: 42, 5997: 43, 5996: 44, 5995: 45, 5994: 46, 5993: 47, 5992: 48, 5991: 49, 5990: 50, 5989: 51, 5988: 52, 5987: 53, 5986: 54, 5984: 55, 5983: 56, 5982: 57, 5981: 58, 5979: 59, 5980: 60, 5978: 61, 5977: 62, 5976: 63, 5975: 64, 5974: 65, 5973: 66, 5972: 67, 5971: 68, 5970: 69, 5969: 70, 5968: 71, 5967: 72, 5966: 73, 5965: 74, 5964: 75, 5963: 76, 5962: 77, 5961: 78, 5960: 79, 5959: 80, 5958: 81, 5957: 82, 5956: 83, 5955: 84, 5954: 85, 5953: 86, 5952: 87, 5951: 88, 5950: 89, 5948: 90, 5947: 91, 5946: 92, 5945: 93, 5944: 94, 5943: 95, 5942: 96, 5941: 97, 5940: 98, 5939: 99, 5938: 100, 5937: 101, 5949: 102, 5936: 103, 5935: 104, 5934: 105, 5933: 106, 5932: 107, 5931: 108, 5930: 109, 5929: 110, 5928: 111, 5927: 112, 5926: 113, 5925: 114, 5924: 115, 5923: 116, 5922: 117, 5921: 118, 5920: 119, 5919: 120, 5918: 121, 5917: 122, 5916: 123, 5915: 124, 5914: 125, 5913: 126, 5912: 127, 5911: 128, 5910: 129, 5909: 130, 5908: 131, 5907: 132, 5906: 133, 5905: 134, 5904: 135, 5903: 136, 5902: 137, 5901: 138, 5900: 139, 5899: 140, 5898: 141, 5897: 142, 5896: 143, 5895: 144, 5894: 145, 5893: 146, 5892: 147, 5891: 148, 5890: 149, 5889: 150, 5888: 151, 5887: 152, 5886: 153, 5885: 154, 5884: 155, 5883: 156, 5881: 157, 5882: 158, 5880: 159, 5879: 160, 5878: 161, 5877: 162, 5876: 163, 5875: 164, 5874: 165, 5873: 166, 5872: 167, 5871: 168, 5870: 169, 5869: 170, 5868: 171, 5867: 172, 5866: 173, 5865: 174, 5864: 175, 5863: 176, 5862: 177, 5861: 178, 5860: 179, 5859: 180, 5858: 181, 5857: 182, 5856: 183, 5855: 184, 5854: 185, 5853: 186, 5852: 187, 5851: 188, 5850: 189, 5849: 190, 5848: 191, 5847: 192, 5846: 193, 5845: 194, 5844: 195, 5843: 196, 5842: 197, 5841: 198, 5840: 199, 5839: 200, 5838: 201, 5837: 202, 5836: 203, 5835: 204, 5834: 205, 5833: 206, 5832: 207, 5831: 208, 5830: 209, 5829: 210, 5828: 211, 5827: 212, 5826: 213, 5825: 214, 5824: 215, 5823: 216, 5822: 217, 5821: 218, 5820: 219, 5819: 220, 5818: 221, 5817: 222, 5816: 223, 5815: 224, 5814: 225, 5813: 226, 5812: 227, 5811: 228, 5810: 229, 5809: 230, 5808: 231, 5807: 232, 5806: 233, 5805: 234, 5804: 235, 5803: 236, 5802: 237, 5801: 238, 5800: 239, 5799: 240, 5798: 241, 5797: 242, 5796: 243, 5795: 244, 5794: 245, 5793: 246, 5792: 247, 5791: 248, 5790: 249, 5789: 250, 5788: 251, 5787: 252, 5786: 253, 5785: 254, 5784: 255, 5783: 256, 5782: 257, 5781: 258, 5780: 259, 5779: 260, 5778: 261, 5777: 262, 5776: 263, 5775: 264, 5774: 265, 5773: 266, 5772: 267, 5771: 268, 5770: 269, 5769: 270, 5768: 271, 5767: 272, 5766: 273, 5765: 274, 5764: 275, 5763: 276, 5762: 277, 5761: 278, 5760: 279, 5759: 280, 5758: 281, 5757: 282, 5756: 283, 5755: 284, 5754: 285, 5753: 286, 5752: 287, 5751: 288, 5750: 289, 5749: 290, 5748: 291, 5747: 292, 5746: 293, 5745: 294, 5744: 295, 5743: 296, 5742: 297, 5741: 298, 5740: 299, 5739: 300, 5738: 301, 5737: 302, 5736: 303, 5735: 304, 5734: 305, 5733: 306, 5732: 307, 5731: 308, 5730: 309, 5729: 310, 5728: 311, 5727: 312, 5726: 313, 5725: 314, 5724: 315, 5723: 316, 5722: 317, 5721: 318, 5720: 319, 5719: 320, 5718: 321, 5717: 322, 5716: 323, 5715: 324, 5714: 325, 5713: 326, 5712: 327, 5711: 328, 5710: 329, 5709: 330, 5708: 331, 5707: 332, 5706: 333, 5705: 334, 5704: 335, 5703: 336, 5702: 337, 5701: 338, 5700: 339, 5699: 340, 5698: 341, 5697: 342, 5696: 343, 5695: 344, 5694: 345, 5693: 346, 5692: 347, 5691: 348, 5689: 349, 5690: 350, 5688: 351, 5687: 352, 5686: 353, 5685: 354, 5684: 355, 5683: 356, 5682: 357, 5681: 358, 5680: 359, 5679: 360, 5678: 361, 5677: 362, 5676: 363, 5675: 364, 5674: 365, 5673: 366, 5672: 367, 5671: 368, 5670: 369, 5669: 370, 5668: 371, 5667: 372, 5666: 373, 5665: 374, 5664: 375, 5663: 376, 5662: 377, 5661: 378, 5660: 379, 5659: 380, 5658: 381, 5657: 382, 5656: 383, 5655: 384, 5654: 385, 5653: 386, 5652: 387, 5651: 388, 5650: 389, 5649: 390, 5648: 391, 5647: 392, 5646: 393, 5645: 394, 5644: 395, 5643: 396, 5642: 397, 5641: 398, 5640: 399, 5639: 400, 5638: 401, 5637: 402, 5636: 403, 5635: 404, 5634: 405, 5633: 406, 5632: 407, 5631: 408, 5630: 409, 5629: 410, 5628: 411, 5627: 412, 5626: 413, 5625: 414, 5624: 415, 5623: 416, 5622: 417, 5621: 418, 5620: 419, 5619: 420, 5618: 421, 5617: 422, 5616: 423, 5615: 424, 5614: 425, 5613: 426, 5612: 427, 5611: 428, 5610: 429, 5609: 430, 5608: 431, 5607: 432, 5606: 433, 5605: 434, 5604: 435, 5603: 436, 5602: 437, 5601: 438, 5600: 439, 5599: 440, 5598: 441, 5597: 442, 5596: 443, 5595: 444, 5594: 445, 5593: 446, 5592: 447, 5591: 448, 5590: 449, 5589: 450, 5588: 451, 5587: 452, 5586: 453, 5585: 454, 5584: 455, 5583: 456, 5582: 457, 5581: 458, 5580: 459, 5578: 460, 5579: 461, 5577: 462, 5576: 463, 5575: 464, 5574: 465, 5573: 466, 5572: 467, 5571: 468, 5570: 469, 5569: 470, 5568: 471, 5567: 472, 5566: 473, 5565: 474, 5564: 475, 5563: 476, 5562: 477, 5561: 478, 5560: 479, 5559: 480, 5558: 481, 5557: 482, 5556: 483, 5555: 484, 5554: 485, 5553: 486, 5552: 487, 5551: 488, 5550: 489, 5549: 490, 5548: 491, 5547: 492, 5546: 493, 5545: 494, 5544: 495, 5543: 496, 5542: 497, 5541: 498, 5540: 499, 5539: 500, 5538: 501, 5537: 502, 5536: 503, 5535: 504, 5534: 505, 5533: 506, 5532: 507, 5531: 508, 5530: 509, 5529: 510, 5528: 511, 5527: 512, 5526: 513, 5525: 514, 5524: 515, 5523: 516, 5522: 517, 5521: 518, 5520: 519, 5519: 520, 5518: 521, 5517: 522, 5516: 523, 5515: 524, 5514: 525, 5513: 526, 5512: 527, 5511: 528, 5510: 529, 5509: 530, 5508: 531, 5507: 532, 5506: 533, 5505: 534, 5504: 535, 5503: 536, 5502: 537, 5501: 538, 5500: 539, 5499: 540, 5498: 541, 5497: 542, 5496: 543, 5495: 544, 5494: 545, 5493: 546, 5491: 547, 5490: 548, 5492: 549, 5489: 550, 5488: 551, 5487: 552, 5486: 553, 5485: 554, 5484: 555, 5483: 556, 5482: 557, 5481: 558, 5480: 559, 5479: 560, 5478: 561, 5477: 562, 5476: 563, 5474: 564, 5475: 565, 5473: 566, 5472: 567, 5471: 568, 5470: 569, 5469: 570, 5468: 571, 5466: 572, 5467: 573, 5465: 574, 5464: 575, 5463: 576, 5462: 577, 5461: 578, 5460: 579, 5459: 580, 5458: 581, 5457: 582, 5456: 583, 5455: 584, 5454: 585, 5453: 586, 5452: 587, 5451: 588, 5450: 589, 5449: 590, 5448: 591, 5447: 592, 5446: 593, 5445: 594, 5444: 595, 5443: 596, 5442: 597, 5441: 598, 5440: 599, 5439: 600, 5438: 601, 5437: 602, 5436: 603, 5435: 604, 5434: 605, 5433: 606, 5432: 607, 5431: 608, 5430: 609, 5429: 610, 5428: 611, 5427: 612, 5426: 613, 5425: 614, 5424: 615, 5423: 616, 5422: 617, 5421: 618, 5420: 619, 5419: 620, 5418: 621, 5417: 622, 5416: 623, 5415: 624, 5414: 625, 5413: 626, 5412: 627, 5411: 628, 5410: 629, 5409: 630, 5408: 631, 5407: 632, 5406: 633, 5405: 634, 5404: 635, 5403: 636, 5402: 637, 5401: 638, 5400: 639, 5399: 640, 5398: 641, 5397: 642, 5396: 643, 5395: 644, 5394: 645, 5393: 646, 5392: 647, 5391: 648, 5390: 649, 5389: 650, 5388: 651, 5387: 652, 5386: 653, 5385: 654, 5384: 655, 5383: 656, 5382: 657, 5381: 658, 5380: 659, 5379: 660, 5378: 661, 5377: 662, 5376: 663, 5375: 664, 5374: 665, 5373: 666, 5372: 667, 5371: 668, 5370: 669, 5369: 670, 5368: 671, 5366: 672, 5367: 673, 5365: 674, 5364: 675, 5363: 676, 5362: 677, 5361: 678, 5360: 679, 5359: 680, 5358: 681, 5357: 682, 5355: 683, 5356: 684, 5354: 685, 5353: 686, 5352: 687, 5985: 688, 5351: 689, 5350: 690, 5349: 691, 5348: 692, 5347: 693, 5346: 694, 5345: 695, 5344: 696, 5343: 697, 5342: 698, 5341: 699, 5340: 700, 5339: 701, 5338: 702, 5337: 703, 5336: 704, 5335: 705, 5334: 706, 5333: 707, 5332: 708, 5331: 709, 5330: 710, 5329: 711, 5328: 712, 5327: 713, 5326: 714, 5325: 715, 5324: 716, 5323: 717, 5322: 718, 5321: 719, 5320: 720, 5319: 721, 5318: 722, 5317: 723, 5316: 724, 5315: 725, 5314: 726, 5313: 727, 5312: 728, 5311: 729, 5310: 730, 5309: 731, 5308: 732, 5307: 733, 5306: 734, 5305: 735, 5304: 736, 5303: 737, 5302: 738, 5301: 739, 5300: 740, 5299: 741, 5298: 742, 5297: 743, 5296: 744, 5295: 745, 5294: 746, 5293: 747, 5292: 748, 5291: 749, 5290: 750, 5289: 751, 5288: 752, 5287: 753, 5286: 754, 5285: 755, 5284: 756, 5283: 757, 5282: 758, 5281: 759, 5280: 760, 5279: 761, 5278: 762, 5277: 763, 5276: 764, 5275: 765, 5274: 766, 5273: 767, 5272: 768, 5271: 769, 5270: 770, 5269: 771, 5268: 772, 5267: 773, 5266: 774, 5265: 775, 5264: 776, 5263: 777, 5262: 778, 5261: 779, 5260: 780, 5259: 781, 5258: 782, 5257: 783, 5256: 784, 5255: 785, 5254: 786, 5253: 787, 5252: 788, 5251: 789, 5250: 790, 5249: 791, 5248: 792, 5247: 793, 5246: 794, 5245: 795, 5244: 796, 5243: 797, 5242: 798, 5241: 799, 5240: 800, 5239: 801, 5238: 802, 5237: 803, 5236: 804, 5235: 805, 5234: 806, 5233: 807, 5232: 808, 5231: 809, 5230: 810, 5229: 811, 5228: 812, 5227: 813, 5225: 814, 5224: 815, 5223: 816, 5222: 817, 5221: 818, 5220: 819, 5219: 820, 5218: 821, 5217: 822, 5216: 823, 5215: 824, 5214: 825, 5213: 826, 5226: 827, 5212: 828, 5211: 829, 5210: 830, 5209: 831, 5208: 832, 5207: 833, 5206: 834, 5205: 835, 5204: 836, 5203: 837, 5202: 838, 5201: 839, 5200: 840, 5199: 841, 5198: 842, 5197: 843, 5196: 844, 5195: 845, 5194: 846, 5193: 847, 5192: 848, 5191: 849, 5190: 850, 5189: 851, 5188: 852, 5187: 853, 5186: 854, 5185: 855, 5184: 856, 5183: 857, 5182: 858, 5181: 859, 5180: 860, 5179: 861, 5178: 862, 5177: 863, 5176: 864, 5175: 865, 5174: 866, 5173: 867, 5171: 868, 5170: 869, 5169: 870, 5168: 871, 5167: 872, 5165: 873, 5166: 874, 5164: 875, 5163: 876, 5162: 877, 5161: 878, 5160: 879, 5159: 880, 5158: 881, 5156: 882, 5157: 883, 5155: 884, 5154: 885, 5153: 886, 5152: 887, 5151: 888, 5150: 889, 5149: 890, 5148: 891, 5147: 892, 5146: 893, 5145: 894, 5144: 895, 5143: 896, 5142: 897, 5141: 898, 5140: 899, 5139: 900, 5138: 901, 5137: 902, 5136: 903, 5135: 904, 5134: 905, 5133: 906, 5132: 907, 5131: 908, 5130: 909, 5129: 910, 5128: 911, 5127: 912, 5126: 913, 5125: 914, 5124: 915, 5123: 916, 5122: 917, 5121: 918, 5120: 919, 5119: 920, 5118: 921, 5117: 922, 5116: 923, 5115: 924, 5114: 925, 5113: 926, 5112: 927, 5111: 928, 5110: 929, 5109: 930, 5108: 931, 5107: 932, 5106: 933, 5105: 934, 5104: 935, 5103: 936, 5102: 937, 5100: 938, 5101: 939, 5099: 940, 5098: 941, 5097: 942, 5096: 943, 5095: 944, 5094: 945, 5093: 946, 5092: 947, 5091: 948, 5089: 949, 5090: 950, 5088: 951, 5087: 952, 5086: 953, 5085: 954, 5084: 955, 5083: 956, 5082: 957, 5081: 958, 5080: 959, 5079: 960, 5078: 961, 5077: 962, 5076: 963, 5075: 964, 5074: 965, 5073: 966, 5072: 967, 5071: 968, 5070: 969, 5068: 970, 5067: 971, 5066: 972, 5065: 973, 5064: 974, 5063: 975, 5062: 976, 5061: 977, 5060: 978, 5058: 979, 5059: 980, 5057: 981, 5056: 982, 5055: 983, 5054: 984, 5053: 985, 5052: 986, 5051: 987, 5050: 988, 5049: 989, 5048: 990, 5047: 991, 5046: 992, 5045: 993, 5044: 994, 5043: 995, 5042: 996, 5041: 997, 5040: 998, 5039: 999, 5038: 1000, 5037: 1001, 5036: 1002, 5035: 1003, 5034: 1004, 5033: 1005, 5032: 1006, 5031: 1007, 5030: 1008, 5029: 1009, 5028: 1010, 5027: 1011, 5026: 1012, 5025: 1013, 5069: 1014, 5024: 1015, 5023: 1016, 5022: 1017, 5021: 1018, 5020: 1019, 5019: 1020, 5018: 1021, 5017: 1022, 5016: 1023, 5015: 1024, 5013: 1025, 5014: 1026, 5012: 1027, 5011: 1028, 5010: 1029, 5008: 1030, 5009: 1031, 5007: 1032, 5006: 1033, 5005: 1034, 5004: 1035, 5003: 1036, 5002: 1037, 5001: 1038, 5000: 1039, 4999: 1040, 4998: 1041, 4997: 1042, 4996: 1043, 4995: 1044, 4993: 1045, 4994: 1046, 4992: 1047, 4991: 1048, 4990: 1049, 4989: 1050, 4988: 1051, 4986: 1052, 4987: 1053, 4985: 1054, 4984: 1055, 4983: 1056, 4982: 1057, 4981: 1058, 4980: 1059, 4979: 1060, 4978: 1061, 4977: 1062, 4976: 1063, 4975: 1064, 4974: 1065, 4973: 1066, 4972: 1067, 4971: 1068, 4970: 1069, 4968: 1070, 4969: 1071, 4967: 1072, 4966: 1073, 4965: 1074, 4964: 1075, 4963: 1076, 4962: 1077, 4961: 1078, 4960: 1079, 4959: 1080, 4958: 1081, 4957: 1082, 4956: 1083, 4955: 1084, 4954: 1085, 4953: 1086, 4952: 1087, 4951: 1088, 4950: 1089, 4949: 1090, 4948: 1091, 4947: 1092, 4946: 1093, 4945: 1094, 4944: 1095, 4943: 1096, 4942: 1097, 4941: 1098, 4940: 1099, 4939: 1100, 4938: 1101, 4937: 1102, 4936: 1103, 4935: 1104, 4934: 1105, 4933: 1106, 4932: 1107, 4931: 1108, 4930: 1109, 4929: 1110, 4928: 1111, 4927: 1112, 4926: 1113, 4925: 1114, 4924: 1115, 4923: 1116, 4922: 1117, 4921: 1118, 4920: 1119, 4919: 1120, 4918: 1121, 4917: 1122, 4916: 1123, 4915: 1124, 4914: 1125, 4913: 1126, 4912: 1127, 4911: 1128, 4910: 1129, 4909: 1130, 4908: 1131, 4907: 1132, 4906: 1133, 4905: 1134, 4904: 1135, 4903: 1136, 4902: 1137, 4901: 1138, 4900: 1139, 4899: 1140, 4898: 1141, 4897: 1142, 5172: 1143, 4895: 1144, 4894: 1145, 4893: 1146, 4892: 1147, 4891: 1148, 4890: 1149, 4889: 1150, 4888: 1151, 4887: 1152, 4886: 1153, 4885: 1154, 4884: 1155, 4883: 1156, 4882: 1157, 4881: 1158, 4880: 1159, 4879: 1160, 4878: 1161, 4877: 1162, 4876: 1163, 4875: 1164, 4874: 1165, 4873: 1166, 4871: 1167, 4872: 1168, 4870: 1169, 4869: 1170, 4868: 1171, 4867: 1172, 4866: 1173, 4865: 1174, 4864: 1175, 4863: 1176, 4862: 1177, 4861: 1178, 4860: 1179, 4859: 1180, 4858: 1181, 4857: 1182, 4856: 1183, 4855: 1184, 4854: 1185, 4853: 1186, 4852: 1187, 4851: 1188, 4849: 1189, 4848: 1190, 4850: 1191, 4847: 1192, 4846: 1193, 4845: 1194, 4844: 1195, 4843: 1196, 4842: 1197, 4841: 1198, 4840: 1199, 4839: 1200, 4838: 1201, 4837: 1202, 4836: 1203, 4835: 1204, 4834: 1205, 4833: 1206, 4832: 1207, 4831: 1208, 4830: 1209, 4829: 1210, 4828: 1211, 4827: 1212, 4826: 1213, 4825: 1214, 4824: 1215, 4823: 1216, 4822: 1217, 4821: 1218, 4820: 1219, 4819: 1220, 4818: 1221, 4817: 1222, 4816: 1223, 4815: 1224, 4814: 1225, 4813: 1226, 4812: 1227, 4811: 1228, 4810: 1229, 4809: 1230, 4808: 1231, 4807: 1232, 4806: 1233, 4805: 1234, 4804: 1235, 4803: 1236, 4802: 1237, 4801: 1238, 4800: 1239, 4799: 1240, 4798: 1241, 4797: 1242, 4796: 1243, 4795: 1244, 4794: 1245, 4793: 1246, 4792: 1247, 4791: 1248, 4790: 1249, 4788: 1250, 4789: 1251, 4787: 1252, 4786: 1253, 4785: 1254, 4784: 1255, 4783: 1256, 4782: 1257, 4781: 1258, 4780: 1259, 4779: 1260, 4778: 1261, 4777: 1262, 4776: 1263, 4775: 1264, 4774: 1265, 4773: 1266, 4772: 1267, 4771: 1268, 4770: 1269, 4769: 1270, 4768: 1271, 4767: 1272, 4766: 1273, 4765: 1274, 4764: 1275, 4763: 1276, 4762: 1277, 4761: 1278, 4760: 1279, 4759: 1280, 4758: 1281, 4757: 1282, 4756: 1283, 4755: 1284, 4754: 1285, 4753: 1286, 4752: 1287, 4751: 1288, 4750: 1289, 4749: 1290, 4748: 1291, 4747: 1292, 4746: 1293, 4745: 1294, 4744: 1295, 4743: 1296, 4742: 1297, 4741: 1298, 4740: 1299, 4739: 1300, 4738: 1301, 4737: 1302, 4736: 1303, 4735: 1304, 4734: 1305, 4733: 1306, 4732: 1307, 4731: 1308, 4730: 1309, 4729: 1310, 4728: 1311, 4727: 1312, 4726: 1313, 4725: 1314, 4724: 1315, 4723: 1316, 4722: 1317, 4721: 1318, 4720: 1319, 4719: 1320, 4718: 1321, 4716: 1322, 4715: 1323, 4714: 1324, 4713: 1325, 4712: 1326, 4711: 1327, 4717: 1328, 4710: 1329, 4709: 1330, 4708: 1331, 4707: 1332, 4706: 1333, 4705: 1334, 4704: 1335, 4703: 1336, 4702: 1337, 4701: 1338, 4700: 1339, 4699: 1340, 4698: 1341, 4697: 1342, 4696: 1343, 4695: 1344, 4694: 1345, 4693: 1346, 4692: 1347, 4691: 1348, 4690: 1349, 4689: 1350, 4688: 1351, 4687: 1352, 4686: 1353, 4685: 1354, 4684: 1355, 4683: 1356, 4682: 1357, 4681: 1358, 4680: 1359, 4679: 1360, 4678: 1361, 4677: 1362, 4676: 1363, 4675: 1364, 4674: 1365, 4673: 1366, 4672: 1367, 4671: 1368, 4670: 1369, 4669: 1370, 4668: 1371, 4896: 1372, 4667: 1373, 4666: 1374, 4665: 1375, 4664: 1376, 4663: 1377, 4662: 1378, 4661: 1379, 4660: 1380, 4659: 1381, 4658: 1382, 4657: 1383, 4656: 1384, 4655: 1385, 4654: 1386, 4653: 1387, 4652: 1388, 4651: 1389, 4650: 1390, 4649: 1391, 4648: 1392, 4647: 1393, 4646: 1394, 4645: 1395, 4644: 1396, 4643: 1397, 4642: 1398, 4641: 1399, 4640: 1400, 4639: 1401, 4638: 1402, 4637: 1403, 4636: 1404, 4635: 1405, 4634: 1406, 4633: 1407, 4632: 1408, 4631: 1409, 4630: 1410, 4629: 1411, 4628: 1412, 4627: 1413, 4626: 1414, 4625: 1415, 4624: 1416, 4622: 1417, 4621: 1418, 4620: 1419, 4619: 1420, 4618: 1421, 4617: 1422, 4616: 1423, 4615: 1424, 4614: 1425, 4613: 1426, 4612: 1427, 4611: 1428, 4610: 1429, 4609: 1430, 4608: 1431, 4607: 1432, 4606: 1433, 4605: 1434, 4604: 1435, 4603: 1436, 4602: 1437, 4601: 1438, 4600: 1439, 4599: 1440, 4598: 1441, 4623: 1442, 4597: 1443, 4596: 1444, 4595: 1445, 4594: 1446, 4593: 1447, 4592: 1448, 4591: 1449, 4590: 1450, 4589: 1451, 4588: 1452, 4587: 1453, 4586: 1454, 4585: 1455, 4584: 1456, 4583: 1457, 4582: 1458, 4581: 1459, 4580: 1460, 4579: 1461, 4578: 1462, 4577: 1463, 4575: 1464, 4574: 1465, 4573: 1466, 4572: 1467, 4576: 1468, 4571: 1469, 4570: 1470, 4569: 1471, 4568: 1472, 4567: 1473, 4566: 1474, 4565: 1475, 4564: 1476, 4563: 1477, 4562: 1478, 4561: 1479, 4560: 1480, 4559: 1481, 4558: 1482, 4557: 1483, 4556: 1484, 4555: 1485, 4554: 1486, 4553: 1487, 4552: 1488, 4551: 1489, 4550: 1490, 4549: 1491, 4548: 1492, 4547: 1493, 4546: 1494, 4545: 1495, 4544: 1496, 4543: 1497, 4542: 1498, 4541: 1499, 4540: 1500, 4539: 1501, 4538: 1502, 4537: 1503, 4536: 1504, 4535: 1505, 4534: 1506, 4533: 1507, 4532: 1508, 4531: 1509, 4530: 1510, 4529: 1511, 4528: 1512, 4527: 1513, 4526: 1514, 4525: 1515, 4524: 1516, 4523: 1517, 4522: 1518, 4521: 1519, 4520: 1520, 4519: 1521, 4518: 1522, 4517: 1523, 4516: 1524, 4513: 1525, 4512: 1526, 4511: 1527, 4510: 1528, 4509: 1529, 4508: 1530, 4507: 1531, 4506: 1532, 4505: 1533, 4503: 1534, 4502: 1535, 4501: 1536, 4515: 1537, 4500: 1538, 4499: 1539, 4498: 1540, 4497: 1541, 4496: 1542, 4495: 1543, 4494: 1544, 4493: 1545, 4492: 1546, 4491: 1547, 4490: 1548, 4489: 1549, 4488: 1550, 4504: 1551, 4487: 1552, 4486: 1553, 4485: 1554, 4484: 1555, 4483: 1556, 4482: 1557, 4481: 1558, 4480: 1559, 4479: 1560, 4478: 1561, 4477: 1562, 4476: 1563, 4475: 1564, 4474: 1565, 4473: 1566, 4471: 1567, 4472: 1568, 4470: 1569, 4469: 1570, 4468: 1571, 4467: 1572, 4466: 1573, 4465: 1574, 4464: 1575, 4463: 1576, 4462: 1577, 4461: 1578, 4460: 1579, 4459: 1580, 4458: 1581, 4457: 1582, 4456: 1583, 4455: 1584, 4454: 1585, 4453: 1586, 4451: 1587, 4452: 1588, 4449: 1589, 4450: 1590, 4448: 1591, 4447: 1592, 4446: 1593, 4445: 1594, 4444: 1595, 4443: 1596, 4442: 1597, 4441: 1598, 4440: 1599, 4439: 1600, 4438: 1601, 4437: 1602, 4436: 1603, 4435: 1604, 4434: 1605, 4433: 1606, 4432: 1607, 4431: 1608, 4430: 1609, 4429: 1610, 4428: 1611, 4427: 1612, 4426: 1613, 4425: 1614, 4424: 1615, 4423: 1616, 4422: 1617, 4421: 1618, 4420: 1619, 4419: 1620, 4418: 1621, 4417: 1622, 4416: 1623, 4415: 1624, 4414: 1625, 4413: 1626, 4412: 1627, 4411: 1628, 4410: 1629, 4409: 1630, 4408: 1631, 4407: 1632, 4406: 1633, 4405: 1634, 4404: 1635, 4403: 1636, 4402: 1637, 4401: 1638, 4398: 1639, 4396: 1640, 4397: 1641, 4399: 1642, 4400: 1643, 4395: 1644, 4394: 1645, 4392: 1646, 4393: 1647, 4391: 1648, 4390: 1649, 4389: 1650, 4388: 1651, 4386: 1652, 4387: 1653, 4385: 1654, 4384: 1655, 4383: 1656, 4382: 1657, 4381: 1658, 4380: 1659, 4379: 1660, 4378: 1661, 4377: 1662, 4376: 1663, 4375: 1664, 4374: 1665, 4373: 1666, 4372: 1667, 4371: 1668, 4370: 1669, 4369: 1670, 4368: 1671, 4367: 1672, 4366: 1673, 4365: 1674, 4364: 1675, 4363: 1676, 4362: 1677, 4361: 1678, 4360: 1679, 4359: 1680, 4358: 1681, 4357: 1682, 4356: 1683, 4355: 1684, 4354: 1685, 4353: 1686, 4352: 1687, 4351: 1688, 4350: 1689, 4349: 1690, 4348: 1691, 4347: 1692, 4346: 1693, 4345: 1694, 4344: 1695, 4343: 1696, 4342: 1697, 4341: 1698, 4340: 1699, 4339: 1700, 4338: 1701, 4337: 1702, 4336: 1703, 4335: 1704, 4334: 1705, 4333: 1706, 4332: 1707, 4331: 1708, 4330: 1709, 4329: 1710, 4328: 1711, 4327: 1712, 4326: 1713, 4325: 1714, 4324: 1715, 4323: 1716, 4322: 1717, 4321: 1718, 4320: 1719, 4319: 1720, 4317: 1721, 4316: 1722, 4315: 1723, 4314: 1724, 4313: 1725, 4311: 1726, 4312: 1727, 4310: 1728, 4309: 1729, 4308: 1730, 4307: 1731, 4306: 1732, 4305: 1733, 4304: 1734, 4303: 1735, 4514: 1736, 4302: 1737, 4301: 1738, 4300: 1739, 4299: 1740, 4298: 1741, 4297: 1742, 4296: 1743, 4295: 1744, 4293: 1745, 4294: 1746, 4292: 1747, 4291: 1748, 4290: 1749, 4289: 1750, 4288: 1751, 4287: 1752, 4286: 1753, 4285: 1754, 4284: 1755, 4283: 1756, 4282: 1757, 4281: 1758, 4280: 1759, 4279: 1760, 4278: 1761, 4277: 1762, 4276: 1763, 4275: 1764, 4274: 1765, 4272: 1766, 4273: 1767, 4271: 1768, 4269: 1769, 4270: 1770, 4268: 1771, 4267: 1772, 4266: 1773, 4265: 1774, 4264: 1775, 4263: 1776, 4262: 1777, 4261: 1778, 4260: 1779, 4259: 1780, 4258: 1781, 4256: 1782, 4257: 1783, 4255: 1784, 4254: 1785, 4252: 1786, 4253: 1787, 4251: 1788, 4250: 1789, 4249: 1790, 4248: 1791, 4247: 1792, 4246: 1793, 4245: 1794, 4244: 1795, 4242: 1796, 4241: 1797, 4240: 1798, 4239: 1799, 4238: 1800, 4243: 1801, 4237: 1802, 4236: 1803, 4235: 1804, 4234: 1805, 4233: 1806, 4232: 1807, 4231: 1808, 4230: 1809, 4229: 1810, 4227: 1811, 4226: 1812, 4225: 1813, 4228: 1814, 4224: 1815, 4222: 1816, 4223: 1817, 4221: 1818, 4220: 1819, 4219: 1820, 4218: 1821, 4217: 1822, 4216: 1823, 4215: 1824, 4214: 1825, 4213: 1826, 4212: 1827, 4211: 1828, 4210: 1829, 4209: 1830, 4208: 1831, 4206: 1832, 4205: 1833, 4207: 1834, 4204: 1835, 4202: 1836, 4203: 1837, 4201: 1838, 4200: 1839, 4199: 1840, 4198: 1841, 4197: 1842, 4196: 1843, 4195: 1844, 4194: 1845, 4193: 1846, 4192: 1847, 4191: 1848, 4190: 1849, 4189: 1850, 4188: 1851, 4187: 1852, 4186: 1853, 4184: 1854, 4183: 1855, 4182: 1856, 4181: 1857, 4180: 1858, 4178: 1859, 4179: 1860, 4177: 1861, 4176: 1862, 4175: 1863, 4174: 1864, 4173: 1865, 4172: 1866, 4171: 1867, 4170: 1868, 4169: 1869, 4167: 1870, 4165: 1871, 4166: 1872, 4168: 1873, 4164: 1874, 4163: 1875, 4162: 1876, 4161: 1877, 4160: 1878, 4185: 1879, 4159: 1880, 4158: 1881, 4157: 1882, 4155: 1883, 4156: 1884, 4318: 1885, 4154: 1886, 4153: 1887, 4152: 1888, 4151: 1889, 4150: 1890, 4149: 1891, 4148: 1892, 4147: 1893, 4146: 1894, 4145: 1895, 4144: 1896, 4143: 1897, 4142: 1898, 4141: 1899, 4140: 1900, 4138: 1901, 4139: 1902, 4137: 1903, 4136: 1904, 4135: 1905, 4134: 1906, 4133: 1907, 4132: 1908, 4131: 1909, 4130: 1910, 4129: 1911, 4128: 1912, 4127: 1913, 4126: 1914, 4125: 1915, 4124: 1916, 4122: 1917, 4123: 1918, 4121: 1919, 4120: 1920, 4119: 1921, 4118: 1922, 4117: 1923, 4116: 1924, 4115: 1925, 4114: 1926, 4113: 1927, 4112: 1928, 4111: 1929, 4110: 1930, 4109: 1931, 4108: 1932, 4107: 1933, 4106: 1934, 4105: 1935, 4104: 1936, 4103: 1937, 4102: 1938, 4101: 1939, 4100: 1940, 4099: 1941, 4098: 1942, 4097: 1943, 4096: 1944, 4095: 1945, 4094: 1946, 4093: 1947, 4092: 1948, 4091: 1949, 4090: 1950, 4089: 1951, 4088: 1952, 4087: 1953, 4086: 1954, 4085: 1955, 4084: 1956, 4083: 1957, 4082: 1958, 4081: 1959, 4080: 1960, 4079: 1961, 4077: 1962, 4078: 1963, 4076: 1964, 4075: 1965, 4074: 1966, 4073: 1967, 4072: 1968, 4071: 1969, 4070: 1970, 4069: 1971, 4068: 1972, 4067: 1973, 4066: 1974, 4065: 1975, 4064: 1976, 4063: 1977, 4062: 1978, 4061: 1979, 4060: 1980, 4059: 1981, 4058: 1982, 4057: 1983, 4056: 1984, 4055: 1985, 4053: 1986, 4054: 1987, 4052: 1988, 4051: 1989, 4050: 1990, 4049: 1991, 4048: 1992, 4047: 1993, 4046: 1994, 4045: 1995, 4044: 1996, 4043: 1997, 4042: 1998, 4041: 1999, 4040: 2000, 4039: 2001, 4038: 2002, 4037: 2003, 4036: 2004, 4035: 2005, 4034: 2006, 4033: 2007, 4032: 2008, 4031: 2009, 4030: 2010, 4029: 2011, 4028: 2012, 4027: 2013, 4026: 2014, 4025: 2015, 4024: 2016, 4023: 2017, 4022: 2018, 4021: 2019, 4020: 2020, 4019: 2021, 4018: 2022, 4017: 2023, 4016: 2024, 4015: 2025, 4014: 2026, 4013: 2027, 4012: 2028, 4011: 2029, 4010: 2030, 4009: 2031, 4008: 2032, 4007: 2033, 4006: 2034, 4005: 2035, 4004: 2036, 4003: 2037, 4002: 2038, 4001: 2039, 4000: 2040, 3999: 2041, 3998: 2042, 3997: 2043, 3996: 2044, 3995: 2045, 3994: 2046, 3993: 2047, 3992: 2048, 3991: 2049, 3990: 2050, 3989: 2051, 3988: 2052, 3987: 2053, 3986: 2054, 3985: 2055, 3984: 2056, 3983: 2057, 3982: 2058, 3981: 2059, 3980: 2060, 3979: 2061, 3978: 2062, 3977: 2063, 3976: 2064, 3975: 2065, 3974: 2066, 3973: 2067, 3972: 2068, 3971: 2069, 3970: 2070, 3969: 2071, 3968: 2072, 3967: 2073, 3966: 2074, 3965: 2075, 3964: 2076, 3963: 2077, 3962: 2078, 3961: 2079, 3960: 2080, 3959: 2081, 3958: 2082, 3957: 2083, 3956: 2084, 3955: 2085, 3954: 2086, 3953: 2087, 3952: 2088, 3951: 2089, 3950: 2090, 3949: 2091, 3948: 2092, 3947: 2093, 3946: 2094, 3945: 2095, 3944: 2096, 3943: 2097, 3942: 2098, 3941: 2099, 3940: 2100, 3939: 2101, 3938: 2102, 3937: 2103, 3936: 2104, 3935: 2105, 3934: 2106, 3933: 2107, 3932: 2108, 3931: 2109, 3930: 2110, 3929: 2111, 3928: 2112, 3927: 2113, 3926: 2114, 3925: 2115, 3924: 2116, 3922: 2117, 3923: 2118, 3921: 2119, 3920: 2120, 3919: 2121, 3918: 2122, 3917: 2123, 3916: 2124, 3914: 2125, 3915: 2126, 3913: 2127, 3912: 2128, 3911: 2129, 3910: 2130, 3909: 2131, 3908: 2132, 3907: 2133, 3906: 2134, 3905: 2135, 3904: 2136, 3903: 2137, 3902: 2138, 3901: 2139, 3900: 2140, 3899: 2141, 3898: 2142, 3897: 2143, 3896: 2144, 3895: 2145, 3894: 2146, 3893: 2147, 3892: 2148, 3891: 2149, 3890: 2150, 3889: 2151, 3887: 2152, 3886: 2153, 3885: 2154, 3884: 2155, 3883: 2156, 3882: 2157, 3881: 2158, 3880: 2159, 3879: 2160, 3878: 2161, 3877: 2162, 3876: 2163, 3875: 2164, 3874: 2165, 3873: 2166, 3872: 2167, 3871: 2168, 3870: 2169, 3869: 2170, 3868: 2171, 3867: 2172, 3866: 2173, 3865: 2174, 3864: 2175, 3863: 2176, 3862: 2177, 3861: 2178, 3860: 2179, 3859: 2180, 3857: 2181, 3858: 2182, 3856: 2183, 3855: 2184, 3854: 2185, 3853: 2186, 3852: 2187, 3850: 2188, 3851: 2189, 3849: 2190, 3848: 2191, 3847: 2192, 3846: 2193, 3845: 2194, 3844: 2195, 3843: 2196, 3842: 2197, 3841: 2198, 3839: 2199, 3840: 2200, 3838: 2201, 3837: 2202, 3836: 2203, 3835: 2204, 3834: 2205, 3833: 2206, 3832: 2207, 3831: 2208, 3830: 2209, 3829: 2210, 3828: 2211, 3827: 2212, 3826: 2213, 3825: 2214, 3824: 2215, 3823: 2216, 3822: 2217, 3821: 2218, 3820: 2219, 3819: 2220, 3818: 2221, 3817: 2222, 3816: 2223, 3815: 2224, 3814: 2225, 3813: 2226, 3812: 2227, 3811: 2228, 3810: 2229, 3809: 2230, 3808: 2231, 3807: 2232, 3806: 2233, 3805: 2234, 3804: 2235, 3803: 2236, 3802: 2237, 3801: 2238, 3800: 2239, 3799: 2240, 3798: 2241, 3797: 2242, 3796: 2243, 3795: 2244, 3794: 2245, 3793: 2246, 3792: 2247, 3791: 2248, 3790: 2249, 3788: 2250, 3789: 2251, 3787: 2252, 3786: 2253, 3785: 2254, 3784: 2255, 3782: 2256, 3783: 2257, 3781: 2258, 3780: 2259, 3779: 2260, 3778: 2261, 3777: 2262, 3776: 2263, 3775: 2264, 3774: 2265, 3773: 2266, 3772: 2267, 3771: 2268, 3770: 2269, 3769: 2270, 3768: 2271, 3767: 2272, 3766: 2273, 3765: 2274, 3764: 2275, 3763: 2276, 3762: 2277, 3761: 2278, 3760: 2279, 3759: 2280, 3758: 2281, 3757: 2282, 3756: 2283, 3755: 2284, 3754: 2285, 3753: 2286, 3752: 2287, 3751: 2288, 3750: 2289, 3749: 2290, 3748: 2291, 3747: 2292, 3746: 2293, 3888: 2294, 3745: 2295, 3744: 2296, 3743: 2297, 3742: 2298, 3741: 2299, 3740: 2300, 3739: 2301, 3738: 2302, 3737: 2303, 3736: 2304, 3735: 2305, 3734: 2306, 3733: 2307, 3732: 2308, 3731: 2309, 3730: 2310, 3729: 2311, 3728: 2312, 3727: 2313, 3725: 2314, 3726: 2315, 3724: 2316, 3722: 2317, 3721: 2318, 3720: 2319, 3719: 2320, 3718: 2321, 3717: 2322, 3716: 2323, 3715: 2324, 3714: 2325, 3713: 2326, 3712: 2327, 3711: 2328, 3710: 2329, 3709: 2330, 3708: 2331, 3707: 2332, 3706: 2333, 3705: 2334, 3704: 2335, 3703: 2336, 3702: 2337, 3701: 2338, 3700: 2339, 3699: 2340, 3698: 2341, 3697: 2342, 3696: 2343, 3695: 2344, 3694: 2345, 3693: 2346, 3692: 2347, 3691: 2348, 3690: 2349, 3689: 2350, 3688: 2351, 3687: 2352, 3686: 2353, 3685: 2354, 3684: 2355, 3683: 2356, 3682: 2357, 3681: 2358, 3680: 2359, 3679: 2360, 3678: 2361, 3677: 2362, 3676: 2363, 3675: 2364, 3674: 2365, 3673: 2366, 3672: 2367, 3671: 2368, 3670: 2369, 3669: 2370, 3668: 2371, 3667: 2372, 3666: 2373, 3665: 2374, 3664: 2375, 3663: 2376, 3662: 2377, 3661: 2378, 3660: 2379, 3659: 2380, 3658: 2381, 3657: 2382, 3656: 2383, 3655: 2384, 3654: 2385, 3653: 2386, 3652: 2387, 3651: 2388, 3650: 2389, 3649: 2390, 3648: 2391, 3647: 2392, 3646: 2393, 3645: 2394, 3644: 2395, 3643: 2396, 3642: 2397, 3641: 2398, 3640: 2399, 3639: 2400, 3638: 2401, 3637: 2402, 3636: 2403, 3635: 2404, 3634: 2405, 3633: 2406, 3632: 2407, 3631: 2408, 3630: 2409, 3629: 2410, 3628: 2411, 3627: 2412, 3626: 2413, 3625: 2414, 3624: 2415, 3623: 2416, 3622: 2417, 3621: 2418, 3620: 2419, 3619: 2420, 3618: 2421, 3617: 2422, 3616: 2423, 3615: 2424, 3613: 2425, 3614: 2426, 3612: 2427, 3611: 2428, 3610: 2429, 3609: 2430, 3608: 2431, 3606: 2432, 3607: 2433, 3605: 2434, 3604: 2435, 3603: 2436, 3601: 2437, 3600: 2438, 3599: 2439, 3598: 2440, 3597: 2441, 3596: 2442, 3595: 2443, 3594: 2444, 3593: 2445, 3592: 2446, 3591: 2447, 3590: 2448, 3589: 2449, 3588: 2450, 3587: 2451, 3586: 2452, 3585: 2453, 3584: 2454, 3583: 2455, 3582: 2456, 3581: 2457, 3580: 2458, 3579: 2459, 3578: 2460, 3577: 2461, 3576: 2462, 3575: 2463, 3574: 2464, 3573: 2465, 3572: 2466, 3571: 2467, 3570: 2468, 3569: 2469, 3568: 2470, 3567: 2471, 3566: 2472, 3565: 2473, 3564: 2474, 3563: 2475, 3562: 2476, 3561: 2477, 3560: 2478, 3559: 2479, 3558: 2480, 3557: 2481, 3556: 2482, 3555: 2483, 3554: 2484, 3553: 2485, 3552: 2486, 3551: 2487, 3550: 2488, 3549: 2489, 3548: 2490, 3547: 2491, 3546: 2492, 3545: 2493, 3544: 2494, 3543: 2495, 3542: 2496, 3541: 2497, 3540: 2498, 3539: 2499, 3538: 2500, 3537: 2501, 3536: 2502, 3535: 2503, 3534: 2504, 3533: 2505, 3532: 2506, 3530: 2507, 3529: 2508, 3528: 2509, 3527: 2510, 3526: 2511, 3525: 2512, 3524: 2513, 3523: 2514, 3531: 2515, 3522: 2516, 3521: 2517, 3520: 2518, 3519: 2519, 3518: 2520, 3517: 2521, 3516: 2522, 3515: 2523, 3514: 2524, 3513: 2525, 3512: 2526, 3511: 2527, 3510: 2528, 3509: 2529, 3508: 2530, 3507: 2531, 3506: 2532, 3505: 2533, 3504: 2534, 3503: 2535, 3502: 2536, 3501: 2537, 3500: 2538, 3499: 2539, 3498: 2540, 3497: 2541, 3602: 2542, 3496: 2543, 3495: 2544, 3494: 2545, 3493: 2546, 3492: 2547, 3491: 2548, 3490: 2549, 3489: 2550, 3488: 2551, 3487: 2552, 3486: 2553, 3485: 2554, 3484: 2555, 3483: 2556, 3482: 2557, 3481: 2558, 3480: 2559, 3479: 2560, 3478: 2561, 3477: 2562, 3476: 2563, 3475: 2564, 3474: 2565, 3473: 2566, 3472: 2567, 3723: 2568, 3471: 2569, 3470: 2570, 3469: 2571, 3468: 2572, 3467: 2573, 3466: 2574, 3465: 2575, 3464: 2576, 3463: 2577, 3462: 2578, 3461: 2579, 3460: 2580, 3459: 2581, 3458: 2582, 3457: 2583, 3456: 2584, 3455: 2585, 3454: 2586, 3453: 2587, 3452: 2588, 3451: 2589, 3450: 2590, 3449: 2591, 3448: 2592, 3447: 2593, 3446: 2594, 3445: 2595, 3444: 2596, 3443: 2597, 3442: 2598, 3441: 2599, 3440: 2600, 3439: 2601, 3438: 2602, 3437: 2603, 3436: 2604, 3435: 2605, 3434: 2606, 3433: 2607, 3431: 2608, 3432: 2609, 3430: 2610, 3429: 2611, 3428: 2612, 3427: 2613, 3426: 2614, 3425: 2615, 3424: 2616, 3423: 2617, 3422: 2618, 3420: 2619, 3419: 2620, 3418: 2621, 3417: 2622, 3416: 2623, 3415: 2624, 3414: 2625, 3413: 2626, 3412: 2627, 3421: 2628, 3411: 2629, 3410: 2630, 3409: 2631, 3408: 2632, 3407: 2633, 3406: 2634, 3405: 2635, 3404: 2636, 3403: 2637, 3402: 2638, 3401: 2639, 3400: 2640, 3399: 2641, 3398: 2642, 3397: 2643, 3396: 2644, 3395: 2645, 3394: 2646, 3393: 2647, 3392: 2648, 3391: 2649, 3390: 2650, 3389: 2651, 3388: 2652, 3387: 2653, 3386: 2654, 3385: 2655, 3384: 2656, 3383: 2657, 3382: 2658, 3381: 2659, 3380: 2660, 3379: 2661, 3378: 2662, 3377: 2663, 3376: 2664, 3375: 2665, 3374: 2666, 3373: 2667, 3372: 2668, 3371: 2669, 3370: 2670, 3369: 2671, 3367: 2672, 3368: 2673, 3366: 2674, 3365: 2675, 3364: 2676, 3363: 2677, 3362: 2678, 3361: 2679, 3359: 2680, 3360: 2681, 3358: 2682, 3357: 2683, 3356: 2684, 3355: 2685, 3354: 2686, 3353: 2687, 3352: 2688, 3351: 2689, 3350: 2690, 3349: 2691, 3348: 2692, 3347: 2693, 3346: 2694, 3345: 2695, 3344: 2696, 3343: 2697, 3342: 2698, 3341: 2699, 3340: 2700, 3339: 2701, 3338: 2702, 3337: 2703, 3336: 2704, 3335: 2705, 3334: 2706, 3333: 2707, 3332: 2708, 3331: 2709, 3330: 2710, 3329: 2711, 3328: 2712, 3327: 2713, 3326: 2714, 3325: 2715, 3324: 2716, 3323: 2717, 3322: 2718, 3321: 2719, 3320: 2720, 3319: 2721, 3318: 2722, 3317: 2723, 3316: 2724, 3315: 2725, 3314: 2726, 3313: 2727, 3312: 2728, 3311: 2729, 3310: 2730, 3309: 2731, 3308: 2732, 3307: 2733, 3306: 2734, 3305: 2735, 3304: 2736, 3303: 2737, 3302: 2738, 3301: 2739, 3300: 2740, 3299: 2741, 3298: 2742, 3297: 2743, 3296: 2744, 3295: 2745, 3294: 2746, 3293: 2747, 3292: 2748, 3291: 2749, 3290: 2750, 3289: 2751, 3288: 2752, 3287: 2753, 3286: 2754, 3285: 2755, 3284: 2756, 3283: 2757, 3282: 2758, 3281: 2759, 3280: 2760, 3279: 2761, 3278: 2762, 3277: 2763, 3276: 2764, 3275: 2765, 3274: 2766, 3273: 2767, 3272: 2768, 3271: 2769, 3270: 2770, 3269: 2771, 3268: 2772, 3267: 2773, 3266: 2774, 3265: 2775, 3264: 2776, 3263: 2777, 3262: 2778, 3261: 2779, 3260: 2780, 3259: 2781, 3258: 2782, 3257: 2783, 3256: 2784, 3255: 2785, 3254: 2786, 3253: 2787, 3252: 2788, 3251: 2789, 3249: 2790, 3250: 2791, 3248: 2792, 3247: 2793, 3246: 2794, 3245: 2795, 3244: 2796, 3243: 2797, 3242: 2798, 3241: 2799, 3240: 2800, 3239: 2801, 3238: 2802, 3237: 2803, 3236: 2804, 3235: 2805, 3234: 2806, 3233: 2807, 3232: 2808, 3231: 2809, 3230: 2810, 3229: 2811, 3228: 2812, 3227: 2813, 3226: 2814, 3225: 2815, 3224: 2816, 3223: 2817, 3222: 2818, 3221: 2819, 3220: 2820, 3218: 2821, 3217: 2822, 3216: 2823, 3215: 2824, 3219: 2825, 3214: 2826, 3213: 2827, 3212: 2828, 3211: 2829, 3210: 2830, 3209: 2831, 3208: 2832, 3207: 2833, 3206: 2834, 3205: 2835, 3204: 2836, 3203: 2837, 3202: 2838, 3201: 2839, 3200: 2840, 3199: 2841, 3198: 2842, 3197: 2843, 3196: 2844, 3195: 2845, 3194: 2846, 3193: 2847, 3192: 2848, 3191: 2849, 3190: 2850, 3189: 2851, 3188: 2852, 3187: 2853, 3186: 2854, 3185: 2855, 3184: 2856, 3183: 2857, 3182: 2858, 3181: 2859, 3179: 2860, 3180: 2861, 3178: 2862, 3177: 2863, 3176: 2864, 3175: 2865, 3174: 2866, 3173: 2867, 3172: 2868, 3171: 2869, 3170: 2870, 3169: 2871, 3168: 2872, 3167: 2873, 3166: 2874, 3165: 2875, 3164: 2876, 3163: 2877, 3162: 2878, 3161: 2879, 3160: 2880, 3159: 2881, 3158: 2882, 3157: 2883, 3156: 2884, 3155: 2885, 3154: 2886, 3153: 2887, 3152: 2888, 3151: 2889, 3150: 2890, 3149: 2891, 3148: 2892, 3147: 2893, 3146: 2894, 3145: 2895, 3144: 2896, 3143: 2897, 3142: 2898, 3141: 2899, 3140: 2900, 3139: 2901, 3138: 2902, 3137: 2903, 3136: 2904, 3135: 2905, 3134: 2906, 3133: 2907, 3132: 2908, 3131: 2909, 3130: 2910, 3129: 2911, 3128: 2912, 3126: 2913, 3125: 2914, 3127: 2915, 3124: 2916, 3123: 2917, 3122: 2918, 3121: 2919, 3120: 2920, 3119: 2921, 3118: 2922, 3117: 2923, 3116: 2924, 3114: 2925, 3113: 2926, 3112: 2927, 3111: 2928, 3110: 2929, 3109: 2930, 3108: 2931, 3107: 2932, 3106: 2933, 3105: 2934, 3104: 2935, 3103: 2936, 3102: 2937, 3101: 2938, 3100: 2939, 3099: 2940, 3115: 2941, 3098: 2942, 3097: 2943, 3096: 2944, 3095: 2945, 3094: 2946, 3093: 2947, 3092: 2948, 3091: 2949, 3090: 2950, 3089: 2951, 3088: 2952, 3087: 2953, 3086: 2954, 3085: 2955, 3084: 2956, 3083: 2957, 3082: 2958, 3081: 2959, 3080: 2960, 3079: 2961, 3078: 2962, 3077: 2963, 3076: 2964, 3075: 2965, 3074: 2966, 3073: 2967, 3072: 2968, 3071: 2969, 3070: 2970, 3069: 2971, 3068: 2972, 3067: 2973, 3066: 2974, 3065: 2975, 3064: 2976, 3063: 2977, 3062: 2978, 3061: 2979, 3060: 2980, 3059: 2981, 3058: 2982, 3057: 2983, 3056: 2984, 3055: 2985, 3054: 2986, 3053: 2987, 3052: 2988, 3050: 2989, 3051: 2990, 3049: 2991, 3048: 2992, 3047: 2993, 3046: 2994, 3045: 2995, 3044: 2996, 3043: 2997, 3042: 2998, 3040: 2999, 3041: 3000, 3039: 3001, 3038: 3002, 3037: 3003, 3036: 3004, 3035: 3005, 3034: 3006, 3033: 3007, 3032: 3008, 3031: 3009, 3030: 3010, 3029: 3011, 3028: 3012, 3027: 3013, 3026: 3014, 3025: 3015, 3024: 3016, 3023: 3017, 3022: 3018, 3021: 3019, 3020: 3020, 3019: 3021, 3018: 3022, 3017: 3023, 3016: 3024, 3015: 3025, 3014: 3026, 3013: 3027, 3012: 3028, 3011: 3029, 3010: 3030, 3009: 3031, 3008: 3032, 3007: 3033, 3006: 3034, 3005: 3035, 3004: 3036, 3002: 3037, 3001: 3038, 3000: 3039, 2999: 3040, 2998: 3041, 2997: 3042, 2996: 3043, 2995: 3044, 2994: 3045, 2993: 3046, 2992: 3047, 2991: 3048, 2990: 3049, 2989: 3050, 3003: 3051, 2988: 3052, 2987: 3053, 2986: 3054, 2985: 3055, 2984: 3056, 2983: 3057, 2982: 3058, 2981: 3059, 2979: 3060, 2978: 3061, 2977: 3062, 2976: 3063, 2975: 3064, 2974: 3065, 2973: 3066, 2972: 3067, 2971: 3068, 2970: 3069, 2969: 3070, 2968: 3071, 2967: 3072, 2966: 3073, 2965: 3074, 2964: 3075, 2963: 3076, 2962: 3077, 2961: 3078, 2960: 3079, 2959: 3080, 2958: 3081, 2957: 3082, 2956: 3083, 2955: 3084, 2954: 3085, 2953: 3086, 2952: 3087, 2951: 3088, 2950: 3089, 2949: 3090, 2948: 3091, 2946: 3092, 2945: 3093, 2944: 3094, 2943: 3095, 2942: 3096, 2941: 3097, 2940: 3098, 2939: 3099, 2938: 3100, 2937: 3101, 2936: 3102, 2935: 3103, 2934: 3104, 2933: 3105, 2932: 3106, 2931: 3107, 2930: 3108, 2929: 3109, 2928: 3110, 2927: 3111, 2926: 3112, 2925: 3113, 2924: 3114, 2923: 3115, 2922: 3116, 2921: 3117, 2920: 3118, 2919: 3119, 2918: 3120, 2917: 3121, 2916: 3122, 2915: 3123, 2914: 3124, 2913: 3125, 2912: 3126, 2911: 3127, 2909: 3128, 2908: 3129, 2907: 3130, 2906: 3131, 2905: 3132, 2904: 3133, 2903: 3134, 2902: 3135, 2901: 3136, 2900: 3137, 2899: 3138, 2898: 3139, 2897: 3140, 2895: 3141, 2896: 3142, 2894: 3143, 2893: 3144, 2892: 3145, 2891: 3146, 2890: 3147, 2889: 3148, 2888: 3149, 2887: 3150, 2886: 3151, 2885: 3152, 2884: 3153, 2882: 3154, 2881: 3155, 2883: 3156, 2880: 3157, 2879: 3158, 2878: 3159, 2877: 3160, 2876: 3161, 2875: 3162, 2874: 3163, 2873: 3164, 2872: 3165, 2871: 3166, 2870: 3167, 2869: 3168, 2868: 3169, 2867: 3170, 2866: 3171, 2865: 3172, 2864: 3173, 2863: 3174, 2862: 3175, 2861: 3176, 2860: 3177, 2859: 3178, 2858: 3179, 2857: 3180, 2856: 3181, 2855: 3182, 2854: 3183, 2853: 3184, 2852: 3185, 2851: 3186, 2850: 3187, 2849: 3188, 2848: 3189, 2847: 3190, 2846: 3191, 2845: 3192, 2844: 3193, 2843: 3194, 2842: 3195, 2841: 3196, 2840: 3197, 2839: 3198, 2838: 3199, 2837: 3200, 2836: 3201, 2835: 3202, 2834: 3203, 2833: 3204, 2832: 3205, 2831: 3206, 2830: 3207, 2829: 3208, 2828: 3209, 2827: 3210, 2826: 3211, 2825: 3212, 2824: 3213, 2823: 3214, 2822: 3215, 2821: 3216, 2820: 3217, 2819: 3218, 2818: 3219, 2817: 3220, 2816: 3221, 2815: 3222, 2814: 3223, 2813: 3224, 2812: 3225, 2811: 3226, 2810: 3227, 2809: 3228, 2808: 3229, 2807: 3230, 2806: 3231, 2805: 3232, 2804: 3233, 2803: 3234, 2802: 3235, 2801: 3236, 2800: 3237, 2799: 3238, 2798: 3239, 2797: 3240, 2796: 3241, 2795: 3242, 2794: 3243, 2793: 3244, 2792: 3245, 2791: 3246, 2790: 3247, 2789: 3248, 2788: 3249, 2787: 3250, 2786: 3251, 2785: 3252, 2784: 3253, 2783: 3254, 2782: 3255, 2781: 3256, 2780: 3257, 2779: 3258, 2778: 3259, 2777: 3260, 2776: 3261, 2775: 3262, 2774: 3263, 2773: 3264, 2772: 3265, 2771: 3266, 2770: 3267, 2769: 3268, 2768: 3269, 2767: 3270, 2766: 3271, 2765: 3272, 2764: 3273, 2763: 3274, 2762: 3275, 2761: 3276, 2760: 3277, 2759: 3278, 2758: 3279, 2757: 3280, 2756: 3281, 2755: 3282, 2754: 3283, 2753: 3284, 2752: 3285, 2751: 3286, 2750: 3287, 2749: 3288, 2748: 3289, 2747: 3290, 2746: 3291, 2745: 3292, 2744: 3293, 2743: 3294, 2742: 3295, 2741: 3296, 2740: 3297, 2739: 3298, 2738: 3299, 2737: 3300, 2736: 3301, 2735: 3302, 2734: 3303, 2733: 3304, 2732: 3305, 2731: 3306, 2730: 3307, 2729: 3308, 2728: 3309, 2727: 3310, 2726: 3311, 2725: 3312, 2724: 3313, 2723: 3314, 2722: 3315, 2721: 3316, 2720: 3317, 2719: 3318, 2718: 3319, 2716: 3320, 2714: 3321, 2717: 3322, 2715: 3323, 2713: 3324, 2712: 3325, 2711: 3326, 2710: 3327, 2709: 3328, 2708: 3329, 2707: 3330, 2706: 3331, 2705: 3332, 2704: 3333, 2703: 3334, 2702: 3335, 2701: 3336, 2700: 3337, 2699: 3338, 2698: 3339, 2697: 3340, 2696: 3341, 2695: 3342, 2694: 3343, 2693: 3344, 2692: 3345, 2691: 3346, 2690: 3347, 2689: 3348, 2688: 3349, 2687: 3350, 2686: 3351, 2685: 3352, 2684: 3353, 2683: 3354, 2682: 3355, 2681: 3356, 2680: 3357, 2679: 3358, 2678: 3359, 2677: 3360, 2676: 3361, 2675: 3362, 2674: 3363, 2673: 3364, 2672: 3365, 2671: 3366, 2670: 3367, 2669: 3368, 2668: 3369, 2667: 3370, 2666: 3371, 2665: 3372, 2664: 3373, 2663: 3374, 2662: 3375, 2661: 3376, 2660: 3377, 2659: 3378, 2658: 3379, 2657: 3380, 2656: 3381, 2655: 3382, 2653: 3383, 2652: 3384, 2651: 3385, 2650: 3386, 2649: 3387, 2648: 3388, 2654: 3389, 2647: 3390, 2646: 3391, 2645: 3392, 2644: 3393, 2643: 3394, 2642: 3395, 2641: 3396, 2640: 3397, 2639: 3398, 2638: 3399, 2637: 3400, 2636: 3401, 2635: 3402, 2634: 3403, 2633: 3404, 2632: 3405, 2631: 3406, 2630: 3407, 2629: 3408, 2628: 3409, 2627: 3410, 2626: 3411, 2625: 3412, 2624: 3413, 2623: 3414, 2622: 3415, 2621: 3416, 2620: 3417, 2619: 3418, 2618: 3419, 2617: 3420, 2616: 3421, 2615: 3422, 2614: 3423, 2613: 3424, 2612: 3425, 2611: 3426, 2610: 3427, 2609: 3428, 2608: 3429, 2607: 3430, 2606: 3431, 2605: 3432, 2604: 3433, 2603: 3434, 2602: 3435, 2600: 3436, 2599: 3437, 2598: 3438, 2597: 3439, 2601: 3440, 2596: 3441, 2595: 3442, 2594: 3443, 2593: 3444, 2592: 3445, 2591: 3446, 2590: 3447, 2589: 3448, 2588: 3449, 2587: 3450, 2586: 3451, 2584: 3452, 2585: 3453, 2583: 3454, 2582: 3455, 2581: 3456, 2580: 3457, 2579: 3458, 2578: 3459, 2577: 3460, 2576: 3461, 2575: 3462, 2574: 3463, 2573: 3464, 2572: 3465, 2571: 3466, 2570: 3467, 2569: 3468, 2568: 3469, 2567: 3470, 2566: 3471, 2565: 3472, 2564: 3473, 2563: 3474, 2562: 3475, 2561: 3476, 2560: 3477, 2559: 3478, 2558: 3479, 2557: 3480, 2556: 3481, 2555: 3482, 2554: 3483, 2553: 3484, 2552: 3485, 2551: 3486, 2550: 3487, 2549: 3488, 2548: 3489, 2547: 3490, 2546: 3491, 2545: 3492, 2544: 3493, 2543: 3494, 2542: 3495, 2541: 3496, 2540: 3497, 2539: 3498, 2538: 3499, 2537: 3500, 2535: 3501, 2536: 3502, 2534: 3503, 2533: 3504, 2532: 3505, 2531: 3506, 2530: 3507, 2529: 3508, 2528: 3509, 2527: 3510, 2526: 3511, 2525: 3512, 2524: 3513, 2523: 3514, 2522: 3515, 2521: 3516, 2520: 3517, 2519: 3518, 2518: 3519, 2517: 3520, 2516: 3521, 2515: 3522, 2514: 3523, 2513: 3524, 2512: 3525, 2511: 3526, 2510: 3527, 2509: 3528, 2508: 3529, 2507: 3530, 2506: 3531, 2505: 3532, 2504: 3533, 2503: 3534, 2502: 3535, 2501: 3536, 2500: 3537, 2499: 3538, 2498: 3539, 2497: 3540, 2496: 3541, 2495: 3542, 2494: 3543, 2493: 3544, 2492: 3545, 2491: 3546, 2490: 3547, 2489: 3548, 2488: 3549, 2487: 3550, 2486: 3551, 2485: 3552, 2484: 3553, 2483: 3554, 2482: 3555, 2481: 3556, 2480: 3557, 2479: 3558, 2478: 3559, 2476: 3560, 2477: 3561, 2475: 3562, 2474: 3563, 2473: 3564, 2472: 3565, 2471: 3566, 2470: 3567, 2469: 3568, 2468: 3569, 2467: 3570, 2466: 3571, 2465: 3572, 2464: 3573, 2462: 3574, 2463: 3575, 2461: 3576, 2460: 3577, 2459: 3578, 2458: 3579, 2457: 3580, 2456: 3581, 2455: 3582, 2454: 3583, 2453: 3584, 2452: 3585, 2451: 3586, 2450: 3587, 2449: 3588, 2448: 3589, 2447: 3590, 2446: 3591, 2445: 3592, 2444: 3593, 2443: 3594, 2442: 3595, 2441: 3596, 2440: 3597, 2439: 3598, 2438: 3599, 2436: 3600, 2435: 3601, 2433: 3602, 2437: 3603, 2431: 3604, 2430: 3605, 2432: 3606, 2434: 3607, 2429: 3608, 2428: 3609, 2427: 3610, 2426: 3611, 2424: 3612, 2423: 3613, 2422: 3614, 2421: 3615, 2420: 3616, 2425: 3617, 2419: 3618, 2418: 3619, 2417: 3620, 2415: 3621, 2416: 3622, 2414: 3623, 2413: 3624, 2412: 3625, 2411: 3626, 2410: 3627, 2409: 3628, 2408: 3629, 2407: 3630, 2406: 3631, 2405: 3632, 2404: 3633, 2403: 3634, 2402: 3635, 2401: 3636, 2400: 3637, 2399: 3638, 2398: 3639, 2397: 3640, 2396: 3641, 2395: 3642, 2394: 3643, 2393: 3644, 2392: 3645, 2391: 3646, 2390: 3647, 2389: 3648, 2388: 3649, 2387: 3650, 2386: 3651, 2385: 3652, 2384: 3653, 2383: 3654, 2382: 3655, 2381: 3656, 2380: 3657, 2378: 3658, 2379: 3659, 2377: 3660, 2376: 3661, 2375: 3662, 2374: 3663, 2373: 3664, 2372: 3665, 2371: 3666, 2370: 3667, 2369: 3668, 2368: 3669, 2367: 3670, 2366: 3671, 2365: 3672, 2364: 3673, 2363: 3674, 2362: 3675, 2361: 3676, 2360: 3677, 2359: 3678, 2358: 3679, 2357: 3680, 2356: 3681, 2355: 3682, 2354: 3683, 2352: 3684, 2353: 3685, 2351: 3686, 2350: 3687, 2348: 3688, 2349: 3689, 2347: 3690, 2346: 3691, 2345: 3692, 2344: 3693, 2342: 3694, 2343: 3695, 2341: 3696, 2340: 3697, 2339: 3698, 2338: 3699, 2337: 3700, 2336: 3701, 2335: 3702, 2334: 3703, 2333: 3704, 2332: 3705, 2331: 3706, 2330: 3707, 2329: 3708, 2328: 3709, 2327: 3710, 2326: 3711, 2325: 3712, 2324: 3713, 2323: 3714, 2322: 3715, 2321: 3716, 2320: 3717, 2319: 3718, 2318: 3719, 2317: 3720, 2316: 3721, 2315: 3722, 2314: 3723, 2313: 3724, 2312: 3725, 2311: 3726, 2310: 3727, 2309: 3728, 2308: 3729, 2307: 3730, 2306: 3731, 2305: 3732, 2304: 3733, 2303: 3734, 2302: 3735, 2301: 3736, 2300: 3737, 2299: 3738, 2298: 3739, 2297: 3740, 2296: 3741, 2295: 3742, 2294: 3743, 2293: 3744, 2292: 3745, 2291: 3746, 2290: 3747, 2289: 3748, 2288: 3749, 2287: 3750, 2286: 3751, 2285: 3752, 2284: 3753, 2283: 3754, 2282: 3755, 2281: 3756, 2280: 3757, 2279: 3758, 2278: 3759, 2277: 3760, 2276: 3761, 2275: 3762, 2274: 3763, 2273: 3764, 2272: 3765, 2271: 3766, 2270: 3767, 2269: 3768, 2268: 3769, 2267: 3770, 2266: 3771, 2265: 3772, 2264: 3773, 2263: 3774, 2262: 3775, 2261: 3776, 2260: 3777, 2259: 3778, 2258: 3779, 2257: 3780, 2256: 3781, 2255: 3782, 2254: 3783, 2253: 3784, 2252: 3785, 2250: 3786, 2251: 3787, 2248: 3788, 2246: 3789, 2244: 3790, 2243: 3791, 2242: 3792, 2241: 3793, 2249: 3794, 2245: 3795, 2240: 3796, 2239: 3797, 2238: 3798, 2237: 3799, 2235: 3800, 2236: 3801, 2234: 3802, 2233: 3803, 2232: 3804, 2231: 3805, 2230: 3806, 2229: 3807, 2228: 3808, 2227: 3809, 2226: 3810, 2224: 3811, 2225: 3812, 2223: 3813, 2222: 3814, 2221: 3815, 2220: 3816, 2219: 3817, 2218: 3818, 2217: 3819, 2216: 3820, 2215: 3821, 2214: 3822, 2212: 3823, 2213: 3824, 2211: 3825, 2210: 3826, 2209: 3827, 2208: 3828, 2207: 3829, 2206: 3830, 2205: 3831, 2203: 3832, 2204: 3833, 2202: 3834, 2201: 3835, 2200: 3836, 2199: 3837, 2197: 3838, 2198: 3839, 2196: 3840, 2195: 3841, 2192: 3842, 2191: 3843, 2193: 3844, 2194: 3845, 2190: 3846, 2189: 3847, 2188: 3848, 2186: 3849, 2185: 3850, 2187: 3851, 2184: 3852, 2182: 3853, 2183: 3854, 2181: 3855, 2180: 3856, 2179: 3857, 2178: 3858, 2177: 3859, 2175: 3860, 2176: 3861, 2174: 3862, 2173: 3863, 2172: 3864, 2171: 3865, 2169: 3866, 2170: 3867, 2168: 3868, 2167: 3869, 2166: 3870, 2165: 3871, 2164: 3872, 2163: 3873, 2162: 3874, 2161: 3875, 2160: 3876, 2159: 3877, 2158: 3878, 2157: 3879, 2156: 3880, 2155: 3881, 2154: 3882, 2153: 3883, 2152: 3884, 2150: 3885, 2151: 3886, 2149: 3887, 2148: 3888, 2147: 3889, 2146: 3890, 2145: 3891, 2144: 3892, 2143: 3893, 2142: 3894, 2141: 3895, 2140: 3896, 2139: 3897, 2138: 3898, 2137: 3899, 2136: 3900, 2135: 3901, 2134: 3902, 2133: 3903, 2132: 3904, 2131: 3905, 2130: 3906, 2129: 3907, 2128: 3908, 2127: 3909, 2126: 3910, 2125: 3911, 2123: 3912, 2124: 3913, 2122: 3914, 2121: 3915, 2120: 3916, 2119: 3917, 2118: 3918, 2117: 3919, 2116: 3920, 2115: 3921, 2114: 3922, 2113: 3923, 2112: 3924, 2111: 3925, 2110: 3926, 2109: 3927, 2108: 3928, 2107: 3929, 2106: 3930, 2105: 3931, 2104: 3932, 2103: 3933, 2102: 3934, 2101: 3935, 2100: 3936, 2099: 3937, 2098: 3938, 2097: 3939, 2096: 3940, 2095: 3941, 2093: 3942, 2094: 3943, 2092: 3944, 2091: 3945, 2090: 3946, 2088: 3947, 2089: 3948, 2087: 3949, 2085: 3950, 2086: 3951, 2084: 3952, 2083: 3953, 2082: 3954, 2081: 3955, 2080: 3956, 2079: 3957, 2078: 3958, 2077: 3959, 2075: 3960, 2076: 3961, 2074: 3962, 2073: 3963, 2072: 3964, 2071: 3965, 2070: 3966, 2069: 3967, 2068: 3968, 2067: 3969, 2066: 3970, 2064: 3971, 2065: 3972, 2063: 3973, 2062: 3974, 2061: 3975, 2060: 3976, 2059: 3977, 2057: 3978, 2058: 3979, 2056: 3980, 2055: 3981, 2054: 3982, 2053: 3983, 2052: 3984, 2051: 3985, 2050: 3986, 2049: 3987, 2048: 3988, 2047: 3989, 2046: 3990, 2045: 3991, 2044: 3992, 2043: 3993, 2042: 3994, 2041: 3995, 2039: 3996, 2040: 3997, 2038: 3998, 2036: 3999, 2037: 4000, 2035: 4001, 2034: 4002, 2033: 4003, 2032: 4004, 2031: 4005, 2030: 4006, 2029: 4007, 2028: 4008, 2027: 4009, 2026: 4010, 2025: 4011, 2024: 4012, 2023: 4013, 2022: 4014, 2020: 4015, 2021: 4016, 2019: 4017, 2018: 4018, 2017: 4019, 2016: 4020, 2015: 4021, 2014: 4022, 2013: 4023, 2012: 4024, 2011: 4025, 2010: 4026, 2009: 4027, 2008: 4028, 2005: 4029, 2007: 4030, 2006: 4031, 2004: 4032, 2002: 4033, 2003: 4034, 2001: 4035, 2000: 4036, 1999: 4037, 1998: 4038, 1997: 4039, 1996: 4040, 1995: 4041, 1994: 4042, 1993: 4043, 1992: 4044, 1991: 4045, 1990: 4046, 1989: 4047, 1988: 4048, 1985: 4049, 1986: 4050, 1987: 4051, 1983: 4052, 1984: 4053, 1982: 4054, 1981: 4055, 1980: 4056, 1979: 4057, 1978: 4058, 1977: 4059, 1974: 4060, 1975: 4061, 1973: 4062, 1976: 4063, 1971: 4064, 1972: 4065, 1969: 4066, 1968: 4067, 1967: 4068, 1970: 4069, 1966: 4070, 1965: 4071, 1964: 4072, 1963: 4073, 1962: 4074, 1961: 4075, 1960: 4076, 1959: 4077, 1958: 4078, 1957: 4079, 1956: 4080, 1955: 4081, 1952: 4082, 1951: 4083, 1954: 4084, 1948: 4085, 1945: 4086, 1946: 4087, 1953: 4088, 1944: 4089, 1937: 4090, 1949: 4091, 1950: 4092, 1943: 4093, 1941: 4094, 1942: 4095, 1938: 4096, 1935: 4097, 1939: 4098, 1947: 4099, 1940: 4100, 1934: 4101, 1931: 4102, 1928: 4103, 1926: 4104, 1929: 4105, 1927: 4106, 1924: 4107, 1925: 4108, 1923: 4109, 1921: 4110, 1920: 4111, 1922: 4112, 1936: 4113, 1919: 4114, 1930: 4115, 1917: 4116, 1918: 4117, 1916: 4118, 1914: 4119, 1912: 4120, 1909: 4121, 1911: 4122, 1906: 4123, 1904: 4124, 1908: 4125, 1905: 4126, 1903: 4127, 1907: 4128, 1902: 4129, 1901: 4130, 1900: 4131, 1933: 4132, 1915: 4133, 1910: 4134, 1894: 4135, 1896: 4136, 1898: 4137, 1899: 4138, 1893: 4139, 1892: 4140, 1895: 4141, 1913: 4142, 1891: 4143, 1889: 4144, 1890: 4145, 1888: 4146, 1886: 4147, 1885: 4148, 1897: 4149, 1887: 4150, 1882: 4151, 1881: 4152, 1880: 4153, 1883: 4154, 1879: 4155, 1884: 4156, 1932: 4157, 1878: 4158, 1876: 4159, 1873: 4160, 1874: 4161, 1872: 4162, 1871: 4163, 1870: 4164, 1869: 4165, 1868: 4166, 1867: 4167, 1866: 4168, 1865: 4169, 1864: 4170, 1863: 4171, 1862: 4172, 1859: 4173, 1861: 4174, 1860: 4175, 1858: 4176, 1857: 4177, 1856: 4178, 1855: 4179, 1854: 4180, 1852: 4181, 1851: 4182, 1850: 4183, 1849: 4184, 1846: 4185, 1844: 4186, 1843: 4187, 1848: 4188, 1847: 4189, 1842: 4190, 1841: 4191, 1840: 4192, 1839: 4193, 1838: 4194, 1837: 4195, 1833: 4196, 1835: 4197, 1834: 4198, 1830: 4199, 1824: 4200, 1832: 4201, 1836: 4202, 1826: 4203, 1845: 4204, 1822: 4205, 1829: 4206, 1828: 4207, 1823: 4208, 1827: 4209, 1820: 4210, 1819: 4211, 1818: 4212, 1817: 4213, 1816: 4214, 1814: 4215, 1812: 4216, 1811: 4217, 1813: 4218, 1821: 4219, 1809: 4220, 1808: 4221, 1810: 4222, 1807: 4223, 1831: 4224, 1805: 4225, 1804: 4226, 1806: 4227, 1815: 4228, 1803: 4229, 1802: 4230, 1801: 4231, 1800: 4232, 1798: 4233, 1799: 4234, 1797: 4235, 1796: 4236, 1793: 4237, 1795: 4238, 1792: 4239, 1794: 4240, 1790: 4241, 1791: 4242, 1787: 4243, 1875: 4244, 1789: 4245, 1788: 4246, 1784: 4247, 1783: 4248, 1785: 4249, 1782: 4250, 1781: 4251, 1780: 4252, 1779: 4253, 1778: 4254, 1786: 4255, 1777: 4256, 1773: 4257, 1776: 4258, 1775: 4259, 1774: 4260, 1772: 4261, 1771: 4262, 1769: 4263, 1768: 4264, 1770: 4265, 1767: 4266, 1762: 4267, 1766: 4268, 1764: 4269, 1763: 4270, 1765: 4271, 1760: 4272, 1759: 4273, 1758: 4274, 1756: 4275, 1757: 4276, 1761: 4277, 1755: 4278, 1753: 4279, 1752: 4280, 1754: 4281, 1751: 4282, 1749: 4283, 1750: 4284, 1747: 4285, 1746: 4286, 1745: 4287, 1748: 4288, 1744: 4289, 1743: 4290, 1742: 4291, 1740: 4292, 1739: 4293, 1738: 4294, 1737: 4295, 1736: 4296, 1735: 4297, 1733: 4298, 1734: 4299, 1732: 4300, 1729: 4301, 1730: 4302, 1731: 4303, 1728: 4304, 1725: 4305, 1726: 4306, 1727: 4307, 1722: 4308, 1719: 4309, 1721: 4310, 1720: 4311, 1724: 4312, 1723: 4313, 1718: 4314, 1717: 4315, 1715: 4316, 1741: 4317, 1714: 4318, 1716: 4319, 1713: 4320, 1712: 4321, 1711: 4322, 1710: 4323, 1709: 4324, 1708: 4325, 1707: 4326, 1706: 4327, 1705: 4328, 1704: 4329, 1703: 4330, 1700: 4331, 1701: 4332, 1698: 4333, 1697: 4334, 1702: 4335, 1695: 4336, 1699: 4337, 1694: 4338, 1693: 4339, 1696: 4340, 1691: 4341, 1692: 4342, 1688: 4343, 1686: 4344, 1687: 4345, 1685: 4346, 1684: 4347, 1689: 4348, 1683: 4349, 1682: 4350, 1681: 4351, 1690: 4352, 1680: 4353, 1679: 4354, 1678: 4355, 1676: 4356, 1677: 4357, 1675: 4358, 1674: 4359, 1672: 4360, 1673: 4361, 1669: 4362, 1671: 4363, 1668: 4364, 1670: 4365, 1667: 4366, 1666: 4367, 1665: 4368, 1664: 4369, 1663: 4370, 1662: 4371, 1661: 4372, 1660: 4373, 1659: 4374, 1658: 4375, 1654: 4376, 1655: 4377, 1657: 4378, 1656: 4379, 1653: 4380, 1652: 4381, 1651: 4382, 1650: 4383, 1649: 4384, 1648: 4385, 1647: 4386, 1646: 4387, 1645: 4388, 1644: 4389, 1641: 4390, 1643: 4391, 1642: 4392, 1640: 4393, 1639: 4394, 1638: 4395, 1637: 4396, 1636: 4397, 1634: 4398, 1635: 4399, 1633: 4400, 1632: 4401, 1631: 4402, 1628: 4403, 1629: 4404, 1630: 4405, 1627: 4406, 1626: 4407, 1625: 4408, 1624: 4409, 1623: 4410, 1622: 4411, 1621: 4412, 1620: 4413, 1617: 4414, 1618: 4415, 1619: 4416, 1616: 4417, 1614: 4418, 1615: 4419, 1613: 4420, 1612: 4421, 1611: 4422, 1610: 4423, 1609: 4424, 1608: 4425, 1825: 4426, 1607: 4427, 1606: 4428, 1605: 4429, 1604: 4430, 1603: 4431, 1602: 4432, 1601: 4433, 1600: 4434, 1599: 4435, 1598: 4436, 1597: 4437, 1596: 4438, 1595: 4439, 1594: 4440, 1593: 4441, 1592: 4442, 1591: 4443, 1590: 4444, 1589: 4445, 1588: 4446, 1587: 4447, 1586: 4448, 1585: 4449, 1584: 4450, 1583: 4451, 1579: 4452, 1582: 4453, 1580: 4454, 1578: 4455, 1577: 4456, 1576: 4457, 1574: 4458, 1575: 4459, 1573: 4460, 1572: 4461, 1571: 4462, 1570: 4463, 1569: 4464, 1568: 4465, 1567: 4466, 1566: 4467, 1564: 4468, 1565: 4469, 1563: 4470, 1562: 4471, 1561: 4472, 1560: 4473, 1559: 4474, 1558: 4475, 1556: 4476, 1555: 4477, 1554: 4478, 1553: 4479, 1552: 4480, 1550: 4481, 1549: 4482, 1548: 4483, 1551: 4484, 1547: 4485, 1546: 4486, 1545: 4487, 1544: 4488, 1543: 4489, 1542: 4490, 1540: 4491, 1541: 4492, 1539: 4493, 1538: 4494, 1537: 4495, 1535: 4496, 1536: 4497, 1534: 4498, 1533: 4499, 1532: 4500, 1531: 4501, 1530: 4502, 1529: 4503, 1528: 4504, 1527: 4505, 1526: 4506, 1525: 4507, 1524: 4508, 1523: 4509, 1521: 4510, 1522: 4511, 1520: 4512, 1519: 4513, 1517: 4514, 1518: 4515, 1516: 4516, 1515: 4517, 1514: 4518, 1513: 4519, 1512: 4520, 1511: 4521, 1510: 4522, 1509: 4523, 1508: 4524, 1507: 4525, 1506: 4526, 1581: 4527, 1504: 4528, 1503: 4529, 1501: 4530, 1500: 4531, 1502: 4532, 1499: 4533, 1497: 4534, 1498: 4535, 1496: 4536, 1495: 4537, 1493: 4538, 1494: 4539, 1492: 4540, 1491: 4541, 1490: 4542, 1489: 4543, 1488: 4544, 1487: 4545, 1486: 4546, 1484: 4547, 1485: 4548, 1483: 4549, 1482: 4550, 1481: 4551, 1479: 4552, 1478: 4553, 1476: 4554, 1477: 4555, 1474: 4556, 1473: 4557, 1475: 4558, 1472: 4559, 1470: 4560, 1471: 4561, 1469: 4562, 1468: 4563, 1467: 4564, 1480: 4565, 1466: 4566, 1465: 4567, 1463: 4568, 1464: 4569, 1462: 4570, 1461: 4571, 1460: 4572, 1459: 4573, 1458: 4574, 1457: 4575, 1456: 4576, 1454: 4577, 1453: 4578, 1452: 4579, 1451: 4580, 1455: 4581, 1450: 4582, 1448: 4583, 1446: 4584, 1445: 4585, 1447: 4586, 1449: 4587, 1443: 4588, 1444: 4589, 1442: 4590, 1441: 4591, 1440: 4592, 1439: 4593, 1438: 4594, 1437: 4595, 1436: 4596, 1435: 4597, 1434: 4598, 1433: 4599, 1432: 4600, 1430: 4601, 1429: 4602, 1431: 4603, 1427: 4604, 1426: 4605, 1423: 4606, 1425: 4607, 1424: 4608, 1422: 4609, 1421: 4610, 1420: 4611, 1419: 4612, 1418: 4613, 1416: 4614, 1415: 4615, 1417: 4616, 1414: 4617, 1413: 4618, 1412: 4619, 1411: 4620, 1409: 4621, 1408: 4622, 1407: 4623, 1406: 4624, 1405: 4625, 1404: 4626, 1403: 4627, 1402: 4628, 1401: 4629, 1410: 4630, 1400: 4631, 1399: 4632, 1397: 4633, 1398: 4634, 1396: 4635, 1393: 4636, 1394: 4637, 1395: 4638, 1392: 4639, 1390: 4640, 1389: 4641, 1388: 4642, 1391: 4643, 1387: 4644, 1386: 4645, 1385: 4646, 1384: 4647, 1383: 4648, 1381: 4649, 1380: 4650, 1382: 4651, 1378: 4652, 1379: 4653, 1377: 4654, 1376: 4655, 1375: 4656, 1374: 4657, 1373: 4658, 1372: 4659, 1371: 4660, 1370: 4661, 1369: 4662, 1368: 4663, 1367: 4664, 1366: 4665, 1364: 4666, 1363: 4667, 1365: 4668, 1362: 4669, 1361: 4670, 1360: 4671, 1359: 4672, 1358: 4673, 1357: 4674, 1356: 4675, 1355: 4676, 1354: 4677, 1353: 4678, 1352: 4679, 1351: 4680, 1350: 4681, 1349: 4682, 1348: 4683, 1347: 4684, 1346: 4685, 1345: 4686, 1344: 4687, 1343: 4688, 1342: 4689, 1341: 4690, 1340: 4691, 1338: 4692, 1339: 4693, 1337: 4694, 1336: 4695, 1335: 4696, 1334: 4697, 1333: 4698, 1332: 4699, 1331: 4700, 1330: 4701, 1329: 4702, 1328: 4703, 1325: 4704, 1326: 4705, 1324: 4706, 1327: 4707, 1323: 4708, 1322: 4709, 1321: 4710, 1320: 4711, 1319: 4712, 1316: 4713, 1317: 4714, 1318: 4715, 1315: 4716, 1314: 4717, 1313: 4718, 1312: 4719, 1311: 4720, 1310: 4721, 1309: 4722, 1308: 4723, 1307: 4724, 1306: 4725, 1305: 4726, 1304: 4727, 1303: 4728, 1301: 4729, 1299: 4730, 1300: 4731, 1302: 4732, 1298: 4733, 1297: 4734, 1296: 4735, 1295: 4736, 1293: 4737, 1294: 4738, 1292: 4739, 1291: 4740, 1290: 4741, 1289: 4742, 1288: 4743, 1286: 4744, 1285: 4745, 1284: 4746, 1282: 4747, 1281: 4748, 1280: 4749, 1279: 4750, 1283: 4751, 1278: 4752, 1277: 4753, 1276: 4754, 1275: 4755, 1274: 4756, 1273: 4757, 1272: 4758, 1271: 4759, 1270: 4760, 1269: 4761, 1268: 4762, 1267: 4763, 1266: 4764, 1264: 4765, 1263: 4766, 1262: 4767, 1261: 4768, 1557: 4769, 1260: 4770, 1259: 4771, 1258: 4772, 1255: 4773, 1256: 4774, 1257: 4775, 1254: 4776, 1253: 4777, 1252: 4778, 1251: 4779, 1250: 4780, 1249: 4781, 1248: 4782, 1247: 4783, 1246: 4784, 1245: 4785, 1244: 4786, 1243: 4787, 1242: 4788, 1241: 4789, 1240: 4790, 1239: 4791, 1237: 4792, 1238: 4793, 1236: 4794, 1235: 4795, 1234: 4796, 1233: 4797, 1232: 4798, 1230: 4799, 1229: 4800, 1227: 4801, 1231: 4802, 1228: 4803, 1226: 4804, 1225: 4805, 1223: 4806, 1222: 4807, 1224: 4808, 1221: 4809, 1220: 4810, 1219: 4811, 1218: 4812, 1217: 4813, 1216: 4814, 1215: 4815, 1211: 4816, 1214: 4817, 1212: 4818, 1213: 4819, 1210: 4820, 1209: 4821, 1208: 4822, 1207: 4823, 1206: 4824, 1205: 4825, 1204: 4826, 1203: 4827, 1202: 4828, 1201: 4829, 1200: 4830, 1199: 4831, 1198: 4832, 1197: 4833, 1196: 4834, 1195: 4835, 1194: 4836, 1193: 4837, 1192: 4838, 1190: 4839, 1189: 4840, 1191: 4841, 1186: 4842, 1188: 4843, 1187: 4844, 1185: 4845, 1184: 4846, 1183: 4847, 1182: 4848, 1181: 4849, 1180: 4850, 1179: 4851, 1178: 4852, 1177: 4853, 1176: 4854, 1175: 4855, 1174: 4856, 1173: 4857, 1172: 4858, 1171: 4859, 1170: 4860, 1169: 4861, 1168: 4862, 1167: 4863, 1166: 4864, 1165: 4865, 1163: 4866, 1164: 4867, 1162: 4868, 1161: 4869, 1160: 4870, 1159: 4871, 1158: 4872, 1157: 4873, 1156: 4874, 1155: 4875, 1154: 4876, 1153: 4877, 1152: 4878, 1151: 4879, 1853: 4880, 1150: 4881, 1149: 4882, 1148: 4883, 1147: 4884, 1146: 4885, 1145: 4886, 1144: 4887, 1143: 4888, 1141: 4889, 1142: 4890, 1139: 4891, 1140: 4892, 1138: 4893, 1137: 4894, 1136: 4895, 1135: 4896, 1134: 4897, 1133: 4898, 1132: 4899, 1131: 4900, 1130: 4901, 1128: 4902, 1129: 4903, 1127: 4904, 1126: 4905, 1125: 4906, 1124: 4907, 1123: 4908, 1122: 4909, 1121: 4910, 1120: 4911, 1119: 4912, 1117: 4913, 1116: 4914, 1115: 4915, 1114: 4916, 1113: 4917, 1112: 4918, 1111: 4919, 1109: 4920, 1108: 4921, 1110: 4922, 1107: 4923, 1106: 4924, 1105: 4925, 1104: 4926, 1103: 4927, 1102: 4928, 1101: 4929, 1100: 4930, 1099: 4931, 1118: 4932, 1098: 4933, 1097: 4934, 1096: 4935, 1095: 4936, 1094: 4937, 1093: 4938, 1092: 4939, 1091: 4940, 1090: 4941, 1089: 4942, 1088: 4943, 1087: 4944, 1086: 4945, 1085: 4946, 1084: 4947, 1083: 4948, 1081: 4949, 1082: 4950, 1080: 4951, 1079: 4952, 1078: 4953, 1077: 4954, 1075: 4955, 1076: 4956, 1074: 4957, 1073: 4958, 1071: 4959, 1070: 4960, 1072: 4961, 1069: 4962, 1068: 4963, 1067: 4964, 1066: 4965, 1065: 4966, 1064: 4967, 1063: 4968, 1062: 4969, 1061: 4970, 1060: 4971, 1059: 4972, 1058: 4973, 1057: 4974, 1056: 4975, 1055: 4976, 1054: 4977, 1053: 4978, 1505: 4979, 1052: 4980, 1051: 4981, 1050: 4982, 1049: 4983, 1048: 4984, 1047: 4985, 1046: 4986, 1045: 4987, 1044: 4988, 1043: 4989, 1042: 4990, 1041: 4991, 1040: 4992, 1039: 4993, 1038: 4994, 1037: 4995, 1036: 4996, 1035: 4997, 1034: 4998, 1033: 4999, 1032: 5000, 1031: 5001, 1030: 5002, 1029: 5003, 1028: 5004, 1027: 5005, 1025: 5006, 1026: 5007, 1024: 5008, 1023: 5009, 1022: 5010, 1021: 5011, 1020: 5012, 1019: 5013, 1018: 5014, 1017: 5015, 1016: 5016, 1015: 5017, 1014: 5018, 1013: 5019, 1011: 5020, 1010: 5021, 1009: 5022, 1008: 5023, 1007: 5024, 1006: 5025, 1005: 5026, 1003: 5027, 1002: 5028, 1004: 5029, 1001: 5030, 1000: 5031, 999: 5032, 998: 5033, 997: 5034, 996: 5035, 995: 5036, 994: 5037, 993: 5038, 1012: 5039, 992: 5040, 991: 5041, 990: 5042, 989: 5043, 988: 5044, 987: 5045, 986: 5046, 985: 5047, 984: 5048, 983: 5049, 982: 5050, 981: 5051, 980: 5052, 979: 5053, 978: 5054, 977: 5055, 976: 5056, 975: 5057, 974: 5058, 973: 5059, 972: 5060, 971: 5061, 970: 5062, 969: 5063, 968: 5064, 966: 5065, 967: 5066, 964: 5067, 965: 5068, 963: 5069, 962: 5070, 961: 5071, 960: 5072, 959: 5073, 958: 5074, 957: 5075, 956: 5076, 955: 5077, 954: 5078, 953: 5079, 952: 5080, 950: 5081, 951: 5082, 949: 5083, 948: 5084, 947: 5085, 946: 5086, 945: 5087, 944: 5088, 1428: 5089, 943: 5090, 942: 5091, 941: 5092, 940: 5093, 938: 5094, 939: 5095, 937: 5096, 936: 5097, 935: 5098, 934: 5099, 933: 5100, 932: 5101, 931: 5102, 930: 5103, 929: 5104, 928: 5105, 927: 5106, 2247: 5107, 926: 5108, 925: 5109, 924: 5110, 923: 5111, 922: 5112, 921: 5113, 920: 5114, 919: 5115, 917: 5116, 916: 5117, 918: 5118, 915: 5119, 914: 5120, 913: 5121, 912: 5122, 911: 5123, 910: 5124, 909: 5125, 908: 5126, 907: 5127, 906: 5128, 905: 5129, 904: 5130, 903: 5131, 902: 5132, 901: 5133, 900: 5134, 899: 5135, 898: 5136, 897: 5137, 896: 5138, 895: 5139, 894: 5140, 893: 5141, 892: 5142, 891: 5143, 890: 5144, 889: 5145, 888: 5146, 887: 5147, 886: 5148, 885: 5149, 884: 5150, 883: 5151, 882: 5152, 881: 5153, 880: 5154, 879: 5155, 878: 5156, 877: 5157, 876: 5158, 875: 5159, 874: 5160, 873: 5161, 872: 5162, 871: 5163, 870: 5164, 869: 5165, 868: 5166, 867: 5167, 866: 5168, 865: 5169, 864: 5170, 863: 5171, 862: 5172, 861: 5173, 860: 5174, 859: 5175, 858: 5176, 857: 5177, 856: 5178, 854: 5179, 853: 5180, 852: 5181, 851: 5182, 850: 5183, 849: 5184, 848: 5185, 847: 5186, 846: 5187, 845: 5188, 844: 5189, 842: 5190, 841: 5191, 843: 5192, 840: 5193, 839: 5194, 838: 5195, 837: 5196, 836: 5197, 835: 5198, 834: 5199, 833: 5200, 832: 5201, 831: 5202, 830: 5203, 829: 5204, 828: 5205, 827: 5206, 826: 5207, 825: 5208, 824: 5209, 823: 5210, 822: 5211, 821: 5212, 820: 5213, 819: 5214, 818: 5215, 817: 5216, 816: 5217, 814: 5218, 815: 5219, 813: 5220, 811: 5221, 810: 5222, 809: 5223, 808: 5224, 807: 5225, 812: 5226, 806: 5227, 805: 5228, 804: 5229, 803: 5230, 802: 5231, 801: 5232, 800: 5233, 799: 5234, 798: 5235, 797: 5236, 796: 5237, 795: 5238, 794: 5239, 793: 5240, 792: 5241, 791: 5242, 790: 5243, 789: 5244, 788: 5245, 786: 5246, 787: 5247, 785: 5248, 784: 5249, 783: 5250, 782: 5251, 781: 5252, 780: 5253, 779: 5254, 778: 5255, 777: 5256, 775: 5257, 776: 5258, 774: 5259, 773: 5260, 772: 5261, 771: 5262, 770: 5263, 769: 5264, 768: 5265, 767: 5266, 766: 5267, 765: 5268, 764: 5269, 763: 5270, 762: 5271, 761: 5272, 760: 5273, 759: 5274, 758: 5275, 757: 5276, 756: 5277, 755: 5278, 754: 5279, 753: 5280, 752: 5281, 751: 5282, 750: 5283, 749: 5284, 748: 5285, 855: 5286, 747: 5287, 746: 5288, 745: 5289, 744: 5290, 743: 5291, 742: 5292, 741: 5293, 740: 5294, 739: 5295, 738: 5296, 737: 5297, 736: 5298, 735: 5299, 734: 5300, 733: 5301, 732: 5302, 731: 5303, 730: 5304, 729: 5305, 728: 5306, 727: 5307, 726: 5308, 725: 5309, 724: 5310, 723: 5311, 722: 5312, 721: 5313, 720: 5314, 719: 5315, 718: 5316, 717: 5317, 716: 5318, 715: 5319, 714: 5320, 713: 5321, 712: 5322, 711: 5323, 710: 5324, 709: 5325, 708: 5326, 707: 5327, 706: 5328, 705: 5329, 704: 5330, 703: 5331, 702: 5332, 701: 5333, 700: 5334, 699: 5335, 698: 5336, 697: 5337, 696: 5338, 695: 5339, 694: 5340, 693: 5341, 692: 5342, 691: 5343, 690: 5344, 689: 5345, 688: 5346, 687: 5347, 686: 5348, 685: 5349, 684: 5350, 682: 5351, 683: 5352, 681: 5353, 680: 5354, 679: 5355, 678: 5356, 677: 5357, 676: 5358, 675: 5359, 674: 5360, 673: 5361, 672: 5362, 671: 5363, 670: 5364, 669: 5365, 668: 5366, 667: 5367, 666: 5368, 665: 5369, 664: 5370, 663: 5371, 662: 5372, 661: 5373, 660: 5374, 659: 5375, 658: 5376, 657: 5377, 656: 5378, 655: 5379, 654: 5380, 653: 5381, 652: 5382, 651: 5383, 650: 5384, 649: 5385, 648: 5386, 647: 5387, 646: 5388, 645: 5389, 644: 5390, 643: 5391, 642: 5392, 641: 5393, 640: 5394, 639: 5395, 638: 5396, 637: 5397, 636: 5398, 635: 5399, 634: 5400, 633: 5401, 632: 5402, 631: 5403, 630: 5404, 628: 5405, 629: 5406, 627: 5407, 626: 5408, 625: 5409, 624: 5410, 623: 5411, 622: 5412, 621: 5413, 620: 5414, 619: 5415, 618: 5416, 617: 5417, 616: 5418, 615: 5419, 614: 5420, 613: 5421, 612: 5422, 611: 5423, 610: 5424, 609: 5425, 608: 5426, 607: 5427, 606: 5428, 605: 5429, 604: 5430, 603: 5431, 602: 5432, 601: 5433, 600: 5434, 599: 5435, 598: 5436, 597: 5437, 596: 5438, 595: 5439, 594: 5440, 593: 5441, 592: 5442, 591: 5443, 590: 5444, 589: 5445, 588: 5446, 587: 5447, 586: 5448, 585: 5449, 584: 5450, 583: 5451, 582: 5452}} {'user_id': {0: 6040, 1: 6039, 2: 6038, 3: 6037, 4: 6036, 5: 6035, 6: 6034, 7: 6033, 8: 6032, 9: 6031, 10: 6030, 11: 6029, 12: 6028, 13: 6027, 14: 6026, 15: 6025, 16: 6024, 17: 6023, 18: 6022, 19: 6021, 20: 6020, 21: 6019, 22: 6018, 23: 6017, 24: 6016, 25: 6015, 26: 6014, 27: 6013, 28: 6012, 29: 6011, 30: 6010, 31: 6009, 32: 6007, 33: 6008, 34: 6006, 35: 6005, 36: 6004, 37: 6003, 38: 6002, 39: 6001, 40: 6000, 41: 5999, 42: 5998, 43: 5997, 44: 5996, 45: 5995, 46: 5994, 47: 5993, 48: 5992, 49: 5991, 50: 5990, 51: 5989, 52: 5988, 53: 5987, 54: 5986, 55: 5984, 56: 5983, 57: 5982, 58: 5981, 59: 5979, 60: 5980, 61: 5978, 62: 5977, 63: 5976, 64: 5975, 65: 5974, 66: 5973, 67: 5972, 68: 5971, 69: 5970, 70: 5969, 71: 5968, 72: 5967, 73: 5966, 74: 5965, 75: 5964, 76: 5963, 77: 5962, 78: 5961, 79: 5960, 80: 5959, 81: 5958, 82: 5957, 83: 5956, 84: 5955, 85: 5954, 86: 5953, 87: 5952, 88: 5951, 89: 5950, 90: 5948, 91: 5947, 92: 5946, 93: 5945, 94: 5944, 95: 5943, 96: 5942, 97: 5941, 98: 5940, 99: 5939, 100: 5938, 101: 5937, 102: 5949, 103: 5936, 104: 5935, 105: 5934, 106: 5933, 107: 5932, 108: 5931, 109: 5930, 110: 5929, 111: 5928, 112: 5927, 113: 5926, 114: 5925, 115: 5924, 116: 5923, 117: 5922, 118: 5921, 119: 5920, 120: 5919, 121: 5918, 122: 5917, 123: 5916, 124: 5915, 125: 5914, 126: 5913, 127: 5912, 128: 5911, 129: 5910, 130: 5909, 131: 5908, 132: 5907, 133: 5906, 134: 5905, 135: 5904, 136: 5903, 137: 5902, 138: 5901, 139: 5900, 140: 5899, 141: 5898, 142: 5897, 143: 5896, 144: 5895, 145: 5894, 146: 5893, 147: 5892, 148: 5891, 149: 5890, 150: 5889, 151: 5888, 152: 5887, 153: 5886, 154: 5885, 155: 5884, 156: 5883, 157: 5881, 158: 5882, 159: 5880, 160: 5879, 161: 5878, 162: 5877, 163: 5876, 164: 5875, 165: 5874, 166: 5873, 167: 5872, 168: 5871, 169: 5870, 170: 5869, 171: 5868, 172: 5867, 173: 5866, 174: 5865, 175: 5864, 176: 5863, 177: 5862, 178: 5861, 179: 5860, 180: 5859, 181: 5858, 182: 5857, 183: 5856, 184: 5855, 185: 5854, 186: 5853, 187: 5852, 188: 5851, 189: 5850, 190: 5849, 191: 5848, 192: 5847, 193: 5846, 194: 5845, 195: 5844, 196: 5843, 197: 5842, 198: 5841, 199: 5840, 200: 5839, 201: 5838, 202: 5837, 203: 5836, 204: 5835, 205: 5834, 206: 5833, 207: 5832, 208: 5831, 209: 5830, 210: 5829, 211: 5828, 212: 5827, 213: 5826, 214: 5825, 215: 5824, 216: 5823, 217: 5822, 218: 5821, 219: 5820, 220: 5819, 221: 5818, 222: 5817, 223: 5816, 224: 5815, 225: 5814, 226: 5813, 227: 5812, 228: 5811, 229: 5810, 230: 5809, 231: 5808, 232: 5807, 233: 5806, 234: 5805, 235: 5804, 236: 5803, 237: 5802, 238: 5801, 239: 5800, 240: 5799, 241: 5798, 242: 5797, 243: 5796, 244: 5795, 245: 5794, 246: 5793, 247: 5792, 248: 5791, 249: 5790, 250: 5789, 251: 5788, 252: 5787, 253: 5786, 254: 5785, 255: 5784, 256: 5783, 257: 5782, 258: 5781, 259: 5780, 260: 5779, 261: 5778, 262: 5777, 263: 5776, 264: 5775, 265: 5774, 266: 5773, 267: 5772, 268: 5771, 269: 5770, 270: 5769, 271: 5768, 272: 5767, 273: 5766, 274: 5765, 275: 5764, 276: 5763, 277: 5762, 278: 5761, 279: 5760, 280: 5759, 281: 5758, 282: 5757, 283: 5756, 284: 5755, 285: 5754, 286: 5753, 287: 5752, 288: 5751, 289: 5750, 290: 5749, 291: 5748, 292: 5747, 293: 5746, 294: 5745, 295: 5744, 296: 5743, 297: 5742, 298: 5741, 299: 5740, 300: 5739, 301: 5738, 302: 5737, 303: 5736, 304: 5735, 305: 5734, 306: 5733, 307: 5732, 308: 5731, 309: 5730, 310: 5729, 311: 5728, 312: 5727, 313: 5726, 314: 5725, 315: 5724, 316: 5723, 317: 5722, 318: 5721, 319: 5720, 320: 5719, 321: 5718, 322: 5717, 323: 5716, 324: 5715, 325: 5714, 326: 5713, 327: 5712, 328: 5711, 329: 5710, 330: 5709, 331: 5708, 332: 5707, 333: 5706, 334: 5705, 335: 5704, 336: 5703, 337: 5702, 338: 5701, 339: 5700, 340: 5699, 341: 5698, 342: 5697, 343: 5696, 344: 5695, 345: 5694, 346: 5693, 347: 5692, 348: 5691, 349: 5689, 350: 5690, 351: 5688, 352: 5687, 353: 5686, 354: 5685, 355: 5684, 356: 5683, 357: 5682, 358: 5681, 359: 5680, 360: 5679, 361: 5678, 362: 5677, 363: 5676, 364: 5675, 365: 5674, 366: 5673, 367: 5672, 368: 5671, 369: 5670, 370: 5669, 371: 5668, 372: 5667, 373: 5666, 374: 5665, 375: 5664, 376: 5663, 377: 5662, 378: 5661, 379: 5660, 380: 5659, 381: 5658, 382: 5657, 383: 5656, 384: 5655, 385: 5654, 386: 5653, 387: 5652, 388: 5651, 389: 5650, 390: 5649, 391: 5648, 392: 5647, 393: 5646, 394: 5645, 395: 5644, 396: 5643, 397: 5642, 398: 5641, 399: 5640, 400: 5639, 401: 5638, 402: 5637, 403: 5636, 404: 5635, 405: 5634, 406: 5633, 407: 5632, 408: 5631, 409: 5630, 410: 5629, 411: 5628, 412: 5627, 413: 5626, 414: 5625, 415: 5624, 416: 5623, 417: 5622, 418: 5621, 419: 5620, 420: 5619, 421: 5618, 422: 5617, 423: 5616, 424: 5615, 425: 5614, 426: 5613, 427: 5612, 428: 5611, 429: 5610, 430: 5609, 431: 5608, 432: 5607, 433: 5606, 434: 5605, 435: 5604, 436: 5603, 437: 5602, 438: 5601, 439: 5600, 440: 5599, 441: 5598, 442: 5597, 443: 5596, 444: 5595, 445: 5594, 446: 5593, 447: 5592, 448: 5591, 449: 5590, 450: 5589, 451: 5588, 452: 5587, 453: 5586, 454: 5585, 455: 5584, 456: 5583, 457: 5582, 458: 5581, 459: 5580, 460: 5578, 461: 5579, 462: 5577, 463: 5576, 464: 5575, 465: 5574, 466: 5573, 467: 5572, 468: 5571, 469: 5570, 470: 5569, 471: 5568, 472: 5567, 473: 5566, 474: 5565, 475: 5564, 476: 5563, 477: 5562, 478: 5561, 479: 5560, 480: 5559, 481: 5558, 482: 5557, 483: 5556, 484: 5555, 485: 5554, 486: 5553, 487: 5552, 488: 5551, 489: 5550, 490: 5549, 491: 5548, 492: 5547, 493: 5546, 494: 5545, 495: 5544, 496: 5543, 497: 5542, 498: 5541, 499: 5540, 500: 5539, 501: 5538, 502: 5537, 503: 5536, 504: 5535, 505: 5534, 506: 5533, 507: 5532, 508: 5531, 509: 5530, 510: 5529, 511: 5528, 512: 5527, 513: 5526, 514: 5525, 515: 5524, 516: 5523, 517: 5522, 518: 5521, 519: 5520, 520: 5519, 521: 5518, 522: 5517, 523: 5516, 524: 5515, 525: 5514, 526: 5513, 527: 5512, 528: 5511, 529: 5510, 530: 5509, 531: 5508, 532: 5507, 533: 5506, 534: 5505, 535: 5504, 536: 5503, 537: 5502, 538: 5501, 539: 5500, 540: 5499, 541: 5498, 542: 5497, 543: 5496, 544: 5495, 545: 5494, 546: 5493, 547: 5491, 548: 5490, 549: 5492, 550: 5489, 551: 5488, 552: 5487, 553: 5486, 554: 5485, 555: 5484, 556: 5483, 557: 5482, 558: 5481, 559: 5480, 560: 5479, 561: 5478, 562: 5477, 563: 5476, 564: 5474, 565: 5475, 566: 5473, 567: 5472, 568: 5471, 569: 5470, 570: 5469, 571: 5468, 572: 5466, 573: 5467, 574: 5465, 575: 5464, 576: 5463, 577: 5462, 578: 5461, 579: 5460, 580: 5459, 581: 5458, 582: 5457, 583: 5456, 584: 5455, 585: 5454, 586: 5453, 587: 5452, 588: 5451, 589: 5450, 590: 5449, 591: 5448, 592: 5447, 593: 5446, 594: 5445, 595: 5444, 596: 5443, 597: 5442, 598: 5441, 599: 5440, 600: 5439, 601: 5438, 602: 5437, 603: 5436, 604: 5435, 605: 5434, 606: 5433, 607: 5432, 608: 5431, 609: 5430, 610: 5429, 611: 5428, 612: 5427, 613: 5426, 614: 5425, 615: 5424, 616: 5423, 617: 5422, 618: 5421, 619: 5420, 620: 5419, 621: 5418, 622: 5417, 623: 5416, 624: 5415, 625: 5414, 626: 5413, 627: 5412, 628: 5411, 629: 5410, 630: 5409, 631: 5408, 632: 5407, 633: 5406, 634: 5405, 635: 5404, 636: 5403, 637: 5402, 638: 5401, 639: 5400, 640: 5399, 641: 5398, 642: 5397, 643: 5396, 644: 5395, 645: 5394, 646: 5393, 647: 5392, 648: 5391, 649: 5390, 650: 5389, 651: 5388, 652: 5387, 653: 5386, 654: 5385, 655: 5384, 656: 5383, 657: 5382, 658: 5381, 659: 5380, 660: 5379, 661: 5378, 662: 5377, 663: 5376, 664: 5375, 665: 5374, 666: 5373, 667: 5372, 668: 5371, 669: 5370, 670: 5369, 671: 5368, 672: 5366, 673: 5367, 674: 5365, 675: 5364, 676: 5363, 677: 5362, 678: 5361, 679: 5360, 680: 5359, 681: 5358, 682: 5357, 683: 5355, 684: 5356, 685: 5354, 686: 5353, 687: 5352, 688: 5985, 689: 5351, 690: 5350, 691: 5349, 692: 5348, 693: 5347, 694: 5346, 695: 5345, 696: 5344, 697: 5343, 698: 5342, 699: 5341, 700: 5340, 701: 5339, 702: 5338, 703: 5337, 704: 5336, 705: 5335, 706: 5334, 707: 5333, 708: 5332, 709: 5331, 710: 5330, 711: 5329, 712: 5328, 713: 5327, 714: 5326, 715: 5325, 716: 5324, 717: 5323, 718: 5322, 719: 5321, 720: 5320, 721: 5319, 722: 5318, 723: 5317, 724: 5316, 725: 5315, 726: 5314, 727: 5313, 728: 5312, 729: 5311, 730: 5310, 731: 5309, 732: 5308, 733: 5307, 734: 5306, 735: 5305, 736: 5304, 737: 5303, 738: 5302, 739: 5301, 740: 5300, 741: 5299, 742: 5298, 743: 5297, 744: 5296, 745: 5295, 746: 5294, 747: 5293, 748: 5292, 749: 5291, 750: 5290, 751: 5289, 752: 5288, 753: 5287, 754: 5286, 755: 5285, 756: 5284, 757: 5283, 758: 5282, 759: 5281, 760: 5280, 761: 5279, 762: 5278, 763: 5277, 764: 5276, 765: 5275, 766: 5274, 767: 5273, 768: 5272, 769: 5271, 770: 5270, 771: 5269, 772: 5268, 773: 5267, 774: 5266, 775: 5265, 776: 5264, 777: 5263, 778: 5262, 779: 5261, 780: 5260, 781: 5259, 782: 5258, 783: 5257, 784: 5256, 785: 5255, 786: 5254, 787: 5253, 788: 5252, 789: 5251, 790: 5250, 791: 5249, 792: 5248, 793: 5247, 794: 5246, 795: 5245, 796: 5244, 797: 5243, 798: 5242, 799: 5241, 800: 5240, 801: 5239, 802: 5238, 803: 5237, 804: 5236, 805: 5235, 806: 5234, 807: 5233, 808: 5232, 809: 5231, 810: 5230, 811: 5229, 812: 5228, 813: 5227, 814: 5225, 815: 5224, 816: 5223, 817: 5222, 818: 5221, 819: 5220, 820: 5219, 821: 5218, 822: 5217, 823: 5216, 824: 5215, 825: 5214, 826: 5213, 827: 5226, 828: 5212, 829: 5211, 830: 5210, 831: 5209, 832: 5208, 833: 5207, 834: 5206, 835: 5205, 836: 5204, 837: 5203, 838: 5202, 839: 5201, 840: 5200, 841: 5199, 842: 5198, 843: 5197, 844: 5196, 845: 5195, 846: 5194, 847: 5193, 848: 5192, 849: 5191, 850: 5190, 851: 5189, 852: 5188, 853: 5187, 854: 5186, 855: 5185, 856: 5184, 857: 5183, 858: 5182, 859: 5181, 860: 5180, 861: 5179, 862: 5178, 863: 5177, 864: 5176, 865: 5175, 866: 5174, 867: 5173, 868: 5171, 869: 5170, 870: 5169, 871: 5168, 872: 5167, 873: 5165, 874: 5166, 875: 5164, 876: 5163, 877: 5162, 878: 5161, 879: 5160, 880: 5159, 881: 5158, 882: 5156, 883: 5157, 884: 5155, 885: 5154, 886: 5153, 887: 5152, 888: 5151, 889: 5150, 890: 5149, 891: 5148, 892: 5147, 893: 5146, 894: 5145, 895: 5144, 896: 5143, 897: 5142, 898: 5141, 899: 5140, 900: 5139, 901: 5138, 902: 5137, 903: 5136, 904: 5135, 905: 5134, 906: 5133, 907: 5132, 908: 5131, 909: 5130, 910: 5129, 911: 5128, 912: 5127, 913: 5126, 914: 5125, 915: 5124, 916: 5123, 917: 5122, 918: 5121, 919: 5120, 920: 5119, 921: 5118, 922: 5117, 923: 5116, 924: 5115, 925: 5114, 926: 5113, 927: 5112, 928: 5111, 929: 5110, 930: 5109, 931: 5108, 932: 5107, 933: 5106, 934: 5105, 935: 5104, 936: 5103, 937: 5102, 938: 5100, 939: 5101, 940: 5099, 941: 5098, 942: 5097, 943: 5096, 944: 5095, 945: 5094, 946: 5093, 947: 5092, 948: 5091, 949: 5089, 950: 5090, 951: 5088, 952: 5087, 953: 5086, 954: 5085, 955: 5084, 956: 5083, 957: 5082, 958: 5081, 959: 5080, 960: 5079, 961: 5078, 962: 5077, 963: 5076, 964: 5075, 965: 5074, 966: 5073, 967: 5072, 968: 5071, 969: 5070, 970: 5068, 971: 5067, 972: 5066, 973: 5065, 974: 5064, 975: 5063, 976: 5062, 977: 5061, 978: 5060, 979: 5058, 980: 5059, 981: 5057, 982: 5056, 983: 5055, 984: 5054, 985: 5053, 986: 5052, 987: 5051, 988: 5050, 989: 5049, 990: 5048, 991: 5047, 992: 5046, 993: 5045, 994: 5044, 995: 5043, 996: 5042, 997: 5041, 998: 5040, 999: 5039, 1000: 5038, 1001: 5037, 1002: 5036, 1003: 5035, 1004: 5034, 1005: 5033, 1006: 5032, 1007: 5031, 1008: 5030, 1009: 5029, 1010: 5028, 1011: 5027, 1012: 5026, 1013: 5025, 1014: 5069, 1015: 5024, 1016: 5023, 1017: 5022, 1018: 5021, 1019: 5020, 1020: 5019, 1021: 5018, 1022: 5017, 1023: 5016, 1024: 5015, 1025: 5013, 1026: 5014, 1027: 5012, 1028: 5011, 1029: 5010, 1030: 5008, 1031: 5009, 1032: 5007, 1033: 5006, 1034: 5005, 1035: 5004, 1036: 5003, 1037: 5002, 1038: 5001, 1039: 5000, 1040: 4999, 1041: 4998, 1042: 4997, 1043: 4996, 1044: 4995, 1045: 4993, 1046: 4994, 1047: 4992, 1048: 4991, 1049: 4990, 1050: 4989, 1051: 4988, 1052: 4986, 1053: 4987, 1054: 4985, 1055: 4984, 1056: 4983, 1057: 4982, 1058: 4981, 1059: 4980, 1060: 4979, 1061: 4978, 1062: 4977, 1063: 4976, 1064: 4975, 1065: 4974, 1066: 4973, 1067: 4972, 1068: 4971, 1069: 4970, 1070: 4968, 1071: 4969, 1072: 4967, 1073: 4966, 1074: 4965, 1075: 4964, 1076: 4963, 1077: 4962, 1078: 4961, 1079: 4960, 1080: 4959, 1081: 4958, 1082: 4957, 1083: 4956, 1084: 4955, 1085: 4954, 1086: 4953, 1087: 4952, 1088: 4951, 1089: 4950, 1090: 4949, 1091: 4948, 1092: 4947, 1093: 4946, 1094: 4945, 1095: 4944, 1096: 4943, 1097: 4942, 1098: 4941, 1099: 4940, 1100: 4939, 1101: 4938, 1102: 4937, 1103: 4936, 1104: 4935, 1105: 4934, 1106: 4933, 1107: 4932, 1108: 4931, 1109: 4930, 1110: 4929, 1111: 4928, 1112: 4927, 1113: 4926, 1114: 4925, 1115: 4924, 1116: 4923, 1117: 4922, 1118: 4921, 1119: 4920, 1120: 4919, 1121: 4918, 1122: 4917, 1123: 4916, 1124: 4915, 1125: 4914, 1126: 4913, 1127: 4912, 1128: 4911, 1129: 4910, 1130: 4909, 1131: 4908, 1132: 4907, 1133: 4906, 1134: 4905, 1135: 4904, 1136: 4903, 1137: 4902, 1138: 4901, 1139: 4900, 1140: 4899, 1141: 4898, 1142: 4897, 1143: 5172, 1144: 4895, 1145: 4894, 1146: 4893, 1147: 4892, 1148: 4891, 1149: 4890, 1150: 4889, 1151: 4888, 1152: 4887, 1153: 4886, 1154: 4885, 1155: 4884, 1156: 4883, 1157: 4882, 1158: 4881, 1159: 4880, 1160: 4879, 1161: 4878, 1162: 4877, 1163: 4876, 1164: 4875, 1165: 4874, 1166: 4873, 1167: 4871, 1168: 4872, 1169: 4870, 1170: 4869, 1171: 4868, 1172: 4867, 1173: 4866, 1174: 4865, 1175: 4864, 1176: 4863, 1177: 4862, 1178: 4861, 1179: 4860, 1180: 4859, 1181: 4858, 1182: 4857, 1183: 4856, 1184: 4855, 1185: 4854, 1186: 4853, 1187: 4852, 1188: 4851, 1189: 4849, 1190: 4848, 1191: 4850, 1192: 4847, 1193: 4846, 1194: 4845, 1195: 4844, 1196: 4843, 1197: 4842, 1198: 4841, 1199: 4840, 1200: 4839, 1201: 4838, 1202: 4837, 1203: 4836, 1204: 4835, 1205: 4834, 1206: 4833, 1207: 4832, 1208: 4831, 1209: 4830, 1210: 4829, 1211: 4828, 1212: 4827, 1213: 4826, 1214: 4825, 1215: 4824, 1216: 4823, 1217: 4822, 1218: 4821, 1219: 4820, 1220: 4819, 1221: 4818, 1222: 4817, 1223: 4816, 1224: 4815, 1225: 4814, 1226: 4813, 1227: 4812, 1228: 4811, 1229: 4810, 1230: 4809, 1231: 4808, 1232: 4807, 1233: 4806, 1234: 4805, 1235: 4804, 1236: 4803, 1237: 4802, 1238: 4801, 1239: 4800, 1240: 4799, 1241: 4798, 1242: 4797, 1243: 4796, 1244: 4795, 1245: 4794, 1246: 4793, 1247: 4792, 1248: 4791, 1249: 4790, 1250: 4788, 1251: 4789, 1252: 4787, 1253: 4786, 1254: 4785, 1255: 4784, 1256: 4783, 1257: 4782, 1258: 4781, 1259: 4780, 1260: 4779, 1261: 4778, 1262: 4777, 1263: 4776, 1264: 4775, 1265: 4774, 1266: 4773, 1267: 4772, 1268: 4771, 1269: 4770, 1270: 4769, 1271: 4768, 1272: 4767, 1273: 4766, 1274: 4765, 1275: 4764, 1276: 4763, 1277: 4762, 1278: 4761, 1279: 4760, 1280: 4759, 1281: 4758, 1282: 4757, 1283: 4756, 1284: 4755, 1285: 4754, 1286: 4753, 1287: 4752, 1288: 4751, 1289: 4750, 1290: 4749, 1291: 4748, 1292: 4747, 1293: 4746, 1294: 4745, 1295: 4744, 1296: 4743, 1297: 4742, 1298: 4741, 1299: 4740, 1300: 4739, 1301: 4738, 1302: 4737, 1303: 4736, 1304: 4735, 1305: 4734, 1306: 4733, 1307: 4732, 1308: 4731, 1309: 4730, 1310: 4729, 1311: 4728, 1312: 4727, 1313: 4726, 1314: 4725, 1315: 4724, 1316: 4723, 1317: 4722, 1318: 4721, 1319: 4720, 1320: 4719, 1321: 4718, 1322: 4716, 1323: 4715, 1324: 4714, 1325: 4713, 1326: 4712, 1327: 4711, 1328: 4717, 1329: 4710, 1330: 4709, 1331: 4708, 1332: 4707, 1333: 4706, 1334: 4705, 1335: 4704, 1336: 4703, 1337: 4702, 1338: 4701, 1339: 4700, 1340: 4699, 1341: 4698, 1342: 4697, 1343: 4696, 1344: 4695, 1345: 4694, 1346: 4693, 1347: 4692, 1348: 4691, 1349: 4690, 1350: 4689, 1351: 4688, 1352: 4687, 1353: 4686, 1354: 4685, 1355: 4684, 1356: 4683, 1357: 4682, 1358: 4681, 1359: 4680, 1360: 4679, 1361: 4678, 1362: 4677, 1363: 4676, 1364: 4675, 1365: 4674, 1366: 4673, 1367: 4672, 1368: 4671, 1369: 4670, 1370: 4669, 1371: 4668, 1372: 4896, 1373: 4667, 1374: 4666, 1375: 4665, 1376: 4664, 1377: 4663, 1378: 4662, 1379: 4661, 1380: 4660, 1381: 4659, 1382: 4658, 1383: 4657, 1384: 4656, 1385: 4655, 1386: 4654, 1387: 4653, 1388: 4652, 1389: 4651, 1390: 4650, 1391: 4649, 1392: 4648, 1393: 4647, 1394: 4646, 1395: 4645, 1396: 4644, 1397: 4643, 1398: 4642, 1399: 4641, 1400: 4640, 1401: 4639, 1402: 4638, 1403: 4637, 1404: 4636, 1405: 4635, 1406: 4634, 1407: 4633, 1408: 4632, 1409: 4631, 1410: 4630, 1411: 4629, 1412: 4628, 1413: 4627, 1414: 4626, 1415: 4625, 1416: 4624, 1417: 4622, 1418: 4621, 1419: 4620, 1420: 4619, 1421: 4618, 1422: 4617, 1423: 4616, 1424: 4615, 1425: 4614, 1426: 4613, 1427: 4612, 1428: 4611, 1429: 4610, 1430: 4609, 1431: 4608, 1432: 4607, 1433: 4606, 1434: 4605, 1435: 4604, 1436: 4603, 1437: 4602, 1438: 4601, 1439: 4600, 1440: 4599, 1441: 4598, 1442: 4623, 1443: 4597, 1444: 4596, 1445: 4595, 1446: 4594, 1447: 4593, 1448: 4592, 1449: 4591, 1450: 4590, 1451: 4589, 1452: 4588, 1453: 4587, 1454: 4586, 1455: 4585, 1456: 4584, 1457: 4583, 1458: 4582, 1459: 4581, 1460: 4580, 1461: 4579, 1462: 4578, 1463: 4577, 1464: 4575, 1465: 4574, 1466: 4573, 1467: 4572, 1468: 4576, 1469: 4571, 1470: 4570, 1471: 4569, 1472: 4568, 1473: 4567, 1474: 4566, 1475: 4565, 1476: 4564, 1477: 4563, 1478: 4562, 1479: 4561, 1480: 4560, 1481: 4559, 1482: 4558, 1483: 4557, 1484: 4556, 1485: 4555, 1486: 4554, 1487: 4553, 1488: 4552, 1489: 4551, 1490: 4550, 1491: 4549, 1492: 4548, 1493: 4547, 1494: 4546, 1495: 4545, 1496: 4544, 1497: 4543, 1498: 4542, 1499: 4541, 1500: 4540, 1501: 4539, 1502: 4538, 1503: 4537, 1504: 4536, 1505: 4535, 1506: 4534, 1507: 4533, 1508: 4532, 1509: 4531, 1510: 4530, 1511: 4529, 1512: 4528, 1513: 4527, 1514: 4526, 1515: 4525, 1516: 4524, 1517: 4523, 1518: 4522, 1519: 4521, 1520: 4520, 1521: 4519, 1522: 4518, 1523: 4517, 1524: 4516, 1525: 4513, 1526: 4512, 1527: 4511, 1528: 4510, 1529: 4509, 1530: 4508, 1531: 4507, 1532: 4506, 1533: 4505, 1534: 4503, 1535: 4502, 1536: 4501, 1537: 4515, 1538: 4500, 1539: 4499, 1540: 4498, 1541: 4497, 1542: 4496, 1543: 4495, 1544: 4494, 1545: 4493, 1546: 4492, 1547: 4491, 1548: 4490, 1549: 4489, 1550: 4488, 1551: 4504, 1552: 4487, 1553: 4486, 1554: 4485, 1555: 4484, 1556: 4483, 1557: 4482, 1558: 4481, 1559: 4480, 1560: 4479, 1561: 4478, 1562: 4477, 1563: 4476, 1564: 4475, 1565: 4474, 1566: 4473, 1567: 4471, 1568: 4472, 1569: 4470, 1570: 4469, 1571: 4468, 1572: 4467, 1573: 4466, 1574: 4465, 1575: 4464, 1576: 4463, 1577: 4462, 1578: 4461, 1579: 4460, 1580: 4459, 1581: 4458, 1582: 4457, 1583: 4456, 1584: 4455, 1585: 4454, 1586: 4453, 1587: 4451, 1588: 4452, 1589: 4449, 1590: 4450, 1591: 4448, 1592: 4447, 1593: 4446, 1594: 4445, 1595: 4444, 1596: 4443, 1597: 4442, 1598: 4441, 1599: 4440, 1600: 4439, 1601: 4438, 1602: 4437, 1603: 4436, 1604: 4435, 1605: 4434, 1606: 4433, 1607: 4432, 1608: 4431, 1609: 4430, 1610: 4429, 1611: 4428, 1612: 4427, 1613: 4426, 1614: 4425, 1615: 4424, 1616: 4423, 1617: 4422, 1618: 4421, 1619: 4420, 1620: 4419, 1621: 4418, 1622: 4417, 1623: 4416, 1624: 4415, 1625: 4414, 1626: 4413, 1627: 4412, 1628: 4411, 1629: 4410, 1630: 4409, 1631: 4408, 1632: 4407, 1633: 4406, 1634: 4405, 1635: 4404, 1636: 4403, 1637: 4402, 1638: 4401, 1639: 4398, 1640: 4396, 1641: 4397, 1642: 4399, 1643: 4400, 1644: 4395, 1645: 4394, 1646: 4392, 1647: 4393, 1648: 4391, 1649: 4390, 1650: 4389, 1651: 4388, 1652: 4386, 1653: 4387, 1654: 4385, 1655: 4384, 1656: 4383, 1657: 4382, 1658: 4381, 1659: 4380, 1660: 4379, 1661: 4378, 1662: 4377, 1663: 4376, 1664: 4375, 1665: 4374, 1666: 4373, 1667: 4372, 1668: 4371, 1669: 4370, 1670: 4369, 1671: 4368, 1672: 4367, 1673: 4366, 1674: 4365, 1675: 4364, 1676: 4363, 1677: 4362, 1678: 4361, 1679: 4360, 1680: 4359, 1681: 4358, 1682: 4357, 1683: 4356, 1684: 4355, 1685: 4354, 1686: 4353, 1687: 4352, 1688: 4351, 1689: 4350, 1690: 4349, 1691: 4348, 1692: 4347, 1693: 4346, 1694: 4345, 1695: 4344, 1696: 4343, 1697: 4342, 1698: 4341, 1699: 4340, 1700: 4339, 1701: 4338, 1702: 4337, 1703: 4336, 1704: 4335, 1705: 4334, 1706: 4333, 1707: 4332, 1708: 4331, 1709: 4330, 1710: 4329, 1711: 4328, 1712: 4327, 1713: 4326, 1714: 4325, 1715: 4324, 1716: 4323, 1717: 4322, 1718: 4321, 1719: 4320, 1720: 4319, 1721: 4317, 1722: 4316, 1723: 4315, 1724: 4314, 1725: 4313, 1726: 4311, 1727: 4312, 1728: 4310, 1729: 4309, 1730: 4308, 1731: 4307, 1732: 4306, 1733: 4305, 1734: 4304, 1735: 4303, 1736: 4514, 1737: 4302, 1738: 4301, 1739: 4300, 1740: 4299, 1741: 4298, 1742: 4297, 1743: 4296, 1744: 4295, 1745: 4293, 1746: 4294, 1747: 4292, 1748: 4291, 1749: 4290, 1750: 4289, 1751: 4288, 1752: 4287, 1753: 4286, 1754: 4285, 1755: 4284, 1756: 4283, 1757: 4282, 1758: 4281, 1759: 4280, 1760: 4279, 1761: 4278, 1762: 4277, 1763: 4276, 1764: 4275, 1765: 4274, 1766: 4272, 1767: 4273, 1768: 4271, 1769: 4269, 1770: 4270, 1771: 4268, 1772: 4267, 1773: 4266, 1774: 4265, 1775: 4264, 1776: 4263, 1777: 4262, 1778: 4261, 1779: 4260, 1780: 4259, 1781: 4258, 1782: 4256, 1783: 4257, 1784: 4255, 1785: 4254, 1786: 4252, 1787: 4253, 1788: 4251, 1789: 4250, 1790: 4249, 1791: 4248, 1792: 4247, 1793: 4246, 1794: 4245, 1795: 4244, 1796: 4242, 1797: 4241, 1798: 4240, 1799: 4239, 1800: 4238, 1801: 4243, 1802: 4237, 1803: 4236, 1804: 4235, 1805: 4234, 1806: 4233, 1807: 4232, 1808: 4231, 1809: 4230, 1810: 4229, 1811: 4227, 1812: 4226, 1813: 4225, 1814: 4228, 1815: 4224, 1816: 4222, 1817: 4223, 1818: 4221, 1819: 4220, 1820: 4219, 1821: 4218, 1822: 4217, 1823: 4216, 1824: 4215, 1825: 4214, 1826: 4213, 1827: 4212, 1828: 4211, 1829: 4210, 1830: 4209, 1831: 4208, 1832: 4206, 1833: 4205, 1834: 4207, 1835: 4204, 1836: 4202, 1837: 4203, 1838: 4201, 1839: 4200, 1840: 4199, 1841: 4198, 1842: 4197, 1843: 4196, 1844: 4195, 1845: 4194, 1846: 4193, 1847: 4192, 1848: 4191, 1849: 4190, 1850: 4189, 1851: 4188, 1852: 4187, 1853: 4186, 1854: 4184, 1855: 4183, 1856: 4182, 1857: 4181, 1858: 4180, 1859: 4178, 1860: 4179, 1861: 4177, 1862: 4176, 1863: 4175, 1864: 4174, 1865: 4173, 1866: 4172, 1867: 4171, 1868: 4170, 1869: 4169, 1870: 4167, 1871: 4165, 1872: 4166, 1873: 4168, 1874: 4164, 1875: 4163, 1876: 4162, 1877: 4161, 1878: 4160, 1879: 4185, 1880: 4159, 1881: 4158, 1882: 4157, 1883: 4155, 1884: 4156, 1885: 4318, 1886: 4154, 1887: 4153, 1888: 4152, 1889: 4151, 1890: 4150, 1891: 4149, 1892: 4148, 1893: 4147, 1894: 4146, 1895: 4145, 1896: 4144, 1897: 4143, 1898: 4142, 1899: 4141, 1900: 4140, 1901: 4138, 1902: 4139, 1903: 4137, 1904: 4136, 1905: 4135, 1906: 4134, 1907: 4133, 1908: 4132, 1909: 4131, 1910: 4130, 1911: 4129, 1912: 4128, 1913: 4127, 1914: 4126, 1915: 4125, 1916: 4124, 1917: 4122, 1918: 4123, 1919: 4121, 1920: 4120, 1921: 4119, 1922: 4118, 1923: 4117, 1924: 4116, 1925: 4115, 1926: 4114, 1927: 4113, 1928: 4112, 1929: 4111, 1930: 4110, 1931: 4109, 1932: 4108, 1933: 4107, 1934: 4106, 1935: 4105, 1936: 4104, 1937: 4103, 1938: 4102, 1939: 4101, 1940: 4100, 1941: 4099, 1942: 4098, 1943: 4097, 1944: 4096, 1945: 4095, 1946: 4094, 1947: 4093, 1948: 4092, 1949: 4091, 1950: 4090, 1951: 4089, 1952: 4088, 1953: 4087, 1954: 4086, 1955: 4085, 1956: 4084, 1957: 4083, 1958: 4082, 1959: 4081, 1960: 4080, 1961: 4079, 1962: 4077, 1963: 4078, 1964: 4076, 1965: 4075, 1966: 4074, 1967: 4073, 1968: 4072, 1969: 4071, 1970: 4070, 1971: 4069, 1972: 4068, 1973: 4067, 1974: 4066, 1975: 4065, 1976: 4064, 1977: 4063, 1978: 4062, 1979: 4061, 1980: 4060, 1981: 4059, 1982: 4058, 1983: 4057, 1984: 4056, 1985: 4055, 1986: 4053, 1987: 4054, 1988: 4052, 1989: 4051, 1990: 4050, 1991: 4049, 1992: 4048, 1993: 4047, 1994: 4046, 1995: 4045, 1996: 4044, 1997: 4043, 1998: 4042, 1999: 4041, 2000: 4040, 2001: 4039, 2002: 4038, 2003: 4037, 2004: 4036, 2005: 4035, 2006: 4034, 2007: 4033, 2008: 4032, 2009: 4031, 2010: 4030, 2011: 4029, 2012: 4028, 2013: 4027, 2014: 4026, 2015: 4025, 2016: 4024, 2017: 4023, 2018: 4022, 2019: 4021, 2020: 4020, 2021: 4019, 2022: 4018, 2023: 4017, 2024: 4016, 2025: 4015, 2026: 4014, 2027: 4013, 2028: 4012, 2029: 4011, 2030: 4010, 2031: 4009, 2032: 4008, 2033: 4007, 2034: 4006, 2035: 4005, 2036: 4004, 2037: 4003, 2038: 4002, 2039: 4001, 2040: 4000, 2041: 3999, 2042: 3998, 2043: 3997, 2044: 3996, 2045: 3995, 2046: 3994, 2047: 3993, 2048: 3992, 2049: 3991, 2050: 3990, 2051: 3989, 2052: 3988, 2053: 3987, 2054: 3986, 2055: 3985, 2056: 3984, 2057: 3983, 2058: 3982, 2059: 3981, 2060: 3980, 2061: 3979, 2062: 3978, 2063: 3977, 2064: 3976, 2065: 3975, 2066: 3974, 2067: 3973, 2068: 3972, 2069: 3971, 2070: 3970, 2071: 3969, 2072: 3968, 2073: 3967, 2074: 3966, 2075: 3965, 2076: 3964, 2077: 3963, 2078: 3962, 2079: 3961, 2080: 3960, 2081: 3959, 2082: 3958, 2083: 3957, 2084: 3956, 2085: 3955, 2086: 3954, 2087: 3953, 2088: 3952, 2089: 3951, 2090: 3950, 2091: 3949, 2092: 3948, 2093: 3947, 2094: 3946, 2095: 3945, 2096: 3944, 2097: 3943, 2098: 3942, 2099: 3941, 2100: 3940, 2101: 3939, 2102: 3938, 2103: 3937, 2104: 3936, 2105: 3935, 2106: 3934, 2107: 3933, 2108: 3932, 2109: 3931, 2110: 3930, 2111: 3929, 2112: 3928, 2113: 3927, 2114: 3926, 2115: 3925, 2116: 3924, 2117: 3922, 2118: 3923, 2119: 3921, 2120: 3920, 2121: 3919, 2122: 3918, 2123: 3917, 2124: 3916, 2125: 3914, 2126: 3915, 2127: 3913, 2128: 3912, 2129: 3911, 2130: 3910, 2131: 3909, 2132: 3908, 2133: 3907, 2134: 3906, 2135: 3905, 2136: 3904, 2137: 3903, 2138: 3902, 2139: 3901, 2140: 3900, 2141: 3899, 2142: 3898, 2143: 3897, 2144: 3896, 2145: 3895, 2146: 3894, 2147: 3893, 2148: 3892, 2149: 3891, 2150: 3890, 2151: 3889, 2152: 3887, 2153: 3886, 2154: 3885, 2155: 3884, 2156: 3883, 2157: 3882, 2158: 3881, 2159: 3880, 2160: 3879, 2161: 3878, 2162: 3877, 2163: 3876, 2164: 3875, 2165: 3874, 2166: 3873, 2167: 3872, 2168: 3871, 2169: 3870, 2170: 3869, 2171: 3868, 2172: 3867, 2173: 3866, 2174: 3865, 2175: 3864, 2176: 3863, 2177: 3862, 2178: 3861, 2179: 3860, 2180: 3859, 2181: 3857, 2182: 3858, 2183: 3856, 2184: 3855, 2185: 3854, 2186: 3853, 2187: 3852, 2188: 3850, 2189: 3851, 2190: 3849, 2191: 3848, 2192: 3847, 2193: 3846, 2194: 3845, 2195: 3844, 2196: 3843, 2197: 3842, 2198: 3841, 2199: 3839, 2200: 3840, 2201: 3838, 2202: 3837, 2203: 3836, 2204: 3835, 2205: 3834, 2206: 3833, 2207: 3832, 2208: 3831, 2209: 3830, 2210: 3829, 2211: 3828, 2212: 3827, 2213: 3826, 2214: 3825, 2215: 3824, 2216: 3823, 2217: 3822, 2218: 3821, 2219: 3820, 2220: 3819, 2221: 3818, 2222: 3817, 2223: 3816, 2224: 3815, 2225: 3814, 2226: 3813, 2227: 3812, 2228: 3811, 2229: 3810, 2230: 3809, 2231: 3808, 2232: 3807, 2233: 3806, 2234: 3805, 2235: 3804, 2236: 3803, 2237: 3802, 2238: 3801, 2239: 3800, 2240: 3799, 2241: 3798, 2242: 3797, 2243: 3796, 2244: 3795, 2245: 3794, 2246: 3793, 2247: 3792, 2248: 3791, 2249: 3790, 2250: 3788, 2251: 3789, 2252: 3787, 2253: 3786, 2254: 3785, 2255: 3784, 2256: 3782, 2257: 3783, 2258: 3781, 2259: 3780, 2260: 3779, 2261: 3778, 2262: 3777, 2263: 3776, 2264: 3775, 2265: 3774, 2266: 3773, 2267: 3772, 2268: 3771, 2269: 3770, 2270: 3769, 2271: 3768, 2272: 3767, 2273: 3766, 2274: 3765, 2275: 3764, 2276: 3763, 2277: 3762, 2278: 3761, 2279: 3760, 2280: 3759, 2281: 3758, 2282: 3757, 2283: 3756, 2284: 3755, 2285: 3754, 2286: 3753, 2287: 3752, 2288: 3751, 2289: 3750, 2290: 3749, 2291: 3748, 2292: 3747, 2293: 3746, 2294: 3888, 2295: 3745, 2296: 3744, 2297: 3743, 2298: 3742, 2299: 3741, 2300: 3740, 2301: 3739, 2302: 3738, 2303: 3737, 2304: 3736, 2305: 3735, 2306: 3734, 2307: 3733, 2308: 3732, 2309: 3731, 2310: 3730, 2311: 3729, 2312: 3728, 2313: 3727, 2314: 3725, 2315: 3726, 2316: 3724, 2317: 3722, 2318: 3721, 2319: 3720, 2320: 3719, 2321: 3718, 2322: 3717, 2323: 3716, 2324: 3715, 2325: 3714, 2326: 3713, 2327: 3712, 2328: 3711, 2329: 3710, 2330: 3709, 2331: 3708, 2332: 3707, 2333: 3706, 2334: 3705, 2335: 3704, 2336: 3703, 2337: 3702, 2338: 3701, 2339: 3700, 2340: 3699, 2341: 3698, 2342: 3697, 2343: 3696, 2344: 3695, 2345: 3694, 2346: 3693, 2347: 3692, 2348: 3691, 2349: 3690, 2350: 3689, 2351: 3688, 2352: 3687, 2353: 3686, 2354: 3685, 2355: 3684, 2356: 3683, 2357: 3682, 2358: 3681, 2359: 3680, 2360: 3679, 2361: 3678, 2362: 3677, 2363: 3676, 2364: 3675, 2365: 3674, 2366: 3673, 2367: 3672, 2368: 3671, 2369: 3670, 2370: 3669, 2371: 3668, 2372: 3667, 2373: 3666, 2374: 3665, 2375: 3664, 2376: 3663, 2377: 3662, 2378: 3661, 2379: 3660, 2380: 3659, 2381: 3658, 2382: 3657, 2383: 3656, 2384: 3655, 2385: 3654, 2386: 3653, 2387: 3652, 2388: 3651, 2389: 3650, 2390: 3649, 2391: 3648, 2392: 3647, 2393: 3646, 2394: 3645, 2395: 3644, 2396: 3643, 2397: 3642, 2398: 3641, 2399: 3640, 2400: 3639, 2401: 3638, 2402: 3637, 2403: 3636, 2404: 3635, 2405: 3634, 2406: 3633, 2407: 3632, 2408: 3631, 2409: 3630, 2410: 3629, 2411: 3628, 2412: 3627, 2413: 3626, 2414: 3625, 2415: 3624, 2416: 3623, 2417: 3622, 2418: 3621, 2419: 3620, 2420: 3619, 2421: 3618, 2422: 3617, 2423: 3616, 2424: 3615, 2425: 3613, 2426: 3614, 2427: 3612, 2428: 3611, 2429: 3610, 2430: 3609, 2431: 3608, 2432: 3606, 2433: 3607, 2434: 3605, 2435: 3604, 2436: 3603, 2437: 3601, 2438: 3600, 2439: 3599, 2440: 3598, 2441: 3597, 2442: 3596, 2443: 3595, 2444: 3594, 2445: 3593, 2446: 3592, 2447: 3591, 2448: 3590, 2449: 3589, 2450: 3588, 2451: 3587, 2452: 3586, 2453: 3585, 2454: 3584, 2455: 3583, 2456: 3582, 2457: 3581, 2458: 3580, 2459: 3579, 2460: 3578, 2461: 3577, 2462: 3576, 2463: 3575, 2464: 3574, 2465: 3573, 2466: 3572, 2467: 3571, 2468: 3570, 2469: 3569, 2470: 3568, 2471: 3567, 2472: 3566, 2473: 3565, 2474: 3564, 2475: 3563, 2476: 3562, 2477: 3561, 2478: 3560, 2479: 3559, 2480: 3558, 2481: 3557, 2482: 3556, 2483: 3555, 2484: 3554, 2485: 3553, 2486: 3552, 2487: 3551, 2488: 3550, 2489: 3549, 2490: 3548, 2491: 3547, 2492: 3546, 2493: 3545, 2494: 3544, 2495: 3543, 2496: 3542, 2497: 3541, 2498: 3540, 2499: 3539, 2500: 3538, 2501: 3537, 2502: 3536, 2503: 3535, 2504: 3534, 2505: 3533, 2506: 3532, 2507: 3530, 2508: 3529, 2509: 3528, 2510: 3527, 2511: 3526, 2512: 3525, 2513: 3524, 2514: 3523, 2515: 3531, 2516: 3522, 2517: 3521, 2518: 3520, 2519: 3519, 2520: 3518, 2521: 3517, 2522: 3516, 2523: 3515, 2524: 3514, 2525: 3513, 2526: 3512, 2527: 3511, 2528: 3510, 2529: 3509, 2530: 3508, 2531: 3507, 2532: 3506, 2533: 3505, 2534: 3504, 2535: 3503, 2536: 3502, 2537: 3501, 2538: 3500, 2539: 3499, 2540: 3498, 2541: 3497, 2542: 3602, 2543: 3496, 2544: 3495, 2545: 3494, 2546: 3493, 2547: 3492, 2548: 3491, 2549: 3490, 2550: 3489, 2551: 3488, 2552: 3487, 2553: 3486, 2554: 3485, 2555: 3484, 2556: 3483, 2557: 3482, 2558: 3481, 2559: 3480, 2560: 3479, 2561: 3478, 2562: 3477, 2563: 3476, 2564: 3475, 2565: 3474, 2566: 3473, 2567: 3472, 2568: 3723, 2569: 3471, 2570: 3470, 2571: 3469, 2572: 3468, 2573: 3467, 2574: 3466, 2575: 3465, 2576: 3464, 2577: 3463, 2578: 3462, 2579: 3461, 2580: 3460, 2581: 3459, 2582: 3458, 2583: 3457, 2584: 3456, 2585: 3455, 2586: 3454, 2587: 3453, 2588: 3452, 2589: 3451, 2590: 3450, 2591: 3449, 2592: 3448, 2593: 3447, 2594: 3446, 2595: 3445, 2596: 3444, 2597: 3443, 2598: 3442, 2599: 3441, 2600: 3440, 2601: 3439, 2602: 3438, 2603: 3437, 2604: 3436, 2605: 3435, 2606: 3434, 2607: 3433, 2608: 3431, 2609: 3432, 2610: 3430, 2611: 3429, 2612: 3428, 2613: 3427, 2614: 3426, 2615: 3425, 2616: 3424, 2617: 3423, 2618: 3422, 2619: 3420, 2620: 3419, 2621: 3418, 2622: 3417, 2623: 3416, 2624: 3415, 2625: 3414, 2626: 3413, 2627: 3412, 2628: 3421, 2629: 3411, 2630: 3410, 2631: 3409, 2632: 3408, 2633: 3407, 2634: 3406, 2635: 3405, 2636: 3404, 2637: 3403, 2638: 3402, 2639: 3401, 2640: 3400, 2641: 3399, 2642: 3398, 2643: 3397, 2644: 3396, 2645: 3395, 2646: 3394, 2647: 3393, 2648: 3392, 2649: 3391, 2650: 3390, 2651: 3389, 2652: 3388, 2653: 3387, 2654: 3386, 2655: 3385, 2656: 3384, 2657: 3383, 2658: 3382, 2659: 3381, 2660: 3380, 2661: 3379, 2662: 3378, 2663: 3377, 2664: 3376, 2665: 3375, 2666: 3374, 2667: 3373, 2668: 3372, 2669: 3371, 2670: 3370, 2671: 3369, 2672: 3367, 2673: 3368, 2674: 3366, 2675: 3365, 2676: 3364, 2677: 3363, 2678: 3362, 2679: 3361, 2680: 3359, 2681: 3360, 2682: 3358, 2683: 3357, 2684: 3356, 2685: 3355, 2686: 3354, 2687: 3353, 2688: 3352, 2689: 3351, 2690: 3350, 2691: 3349, 2692: 3348, 2693: 3347, 2694: 3346, 2695: 3345, 2696: 3344, 2697: 3343, 2698: 3342, 2699: 3341, 2700: 3340, 2701: 3339, 2702: 3338, 2703: 3337, 2704: 3336, 2705: 3335, 2706: 3334, 2707: 3333, 2708: 3332, 2709: 3331, 2710: 3330, 2711: 3329, 2712: 3328, 2713: 3327, 2714: 3326, 2715: 3325, 2716: 3324, 2717: 3323, 2718: 3322, 2719: 3321, 2720: 3320, 2721: 3319, 2722: 3318, 2723: 3317, 2724: 3316, 2725: 3315, 2726: 3314, 2727: 3313, 2728: 3312, 2729: 3311, 2730: 3310, 2731: 3309, 2732: 3308, 2733: 3307, 2734: 3306, 2735: 3305, 2736: 3304, 2737: 3303, 2738: 3302, 2739: 3301, 2740: 3300, 2741: 3299, 2742: 3298, 2743: 3297, 2744: 3296, 2745: 3295, 2746: 3294, 2747: 3293, 2748: 3292, 2749: 3291, 2750: 3290, 2751: 3289, 2752: 3288, 2753: 3287, 2754: 3286, 2755: 3285, 2756: 3284, 2757: 3283, 2758: 3282, 2759: 3281, 2760: 3280, 2761: 3279, 2762: 3278, 2763: 3277, 2764: 3276, 2765: 3275, 2766: 3274, 2767: 3273, 2768: 3272, 2769: 3271, 2770: 3270, 2771: 3269, 2772: 3268, 2773: 3267, 2774: 3266, 2775: 3265, 2776: 3264, 2777: 3263, 2778: 3262, 2779: 3261, 2780: 3260, 2781: 3259, 2782: 3258, 2783: 3257, 2784: 3256, 2785: 3255, 2786: 3254, 2787: 3253, 2788: 3252, 2789: 3251, 2790: 3249, 2791: 3250, 2792: 3248, 2793: 3247, 2794: 3246, 2795: 3245, 2796: 3244, 2797: 3243, 2798: 3242, 2799: 3241, 2800: 3240, 2801: 3239, 2802: 3238, 2803: 3237, 2804: 3236, 2805: 3235, 2806: 3234, 2807: 3233, 2808: 3232, 2809: 3231, 2810: 3230, 2811: 3229, 2812: 3228, 2813: 3227, 2814: 3226, 2815: 3225, 2816: 3224, 2817: 3223, 2818: 3222, 2819: 3221, 2820: 3220, 2821: 3218, 2822: 3217, 2823: 3216, 2824: 3215, 2825: 3219, 2826: 3214, 2827: 3213, 2828: 3212, 2829: 3211, 2830: 3210, 2831: 3209, 2832: 3208, 2833: 3207, 2834: 3206, 2835: 3205, 2836: 3204, 2837: 3203, 2838: 3202, 2839: 3201, 2840: 3200, 2841: 3199, 2842: 3198, 2843: 3197, 2844: 3196, 2845: 3195, 2846: 3194, 2847: 3193, 2848: 3192, 2849: 3191, 2850: 3190, 2851: 3189, 2852: 3188, 2853: 3187, 2854: 3186, 2855: 3185, 2856: 3184, 2857: 3183, 2858: 3182, 2859: 3181, 2860: 3179, 2861: 3180, 2862: 3178, 2863: 3177, 2864: 3176, 2865: 3175, 2866: 3174, 2867: 3173, 2868: 3172, 2869: 3171, 2870: 3170, 2871: 3169, 2872: 3168, 2873: 3167, 2874: 3166, 2875: 3165, 2876: 3164, 2877: 3163, 2878: 3162, 2879: 3161, 2880: 3160, 2881: 3159, 2882: 3158, 2883: 3157, 2884: 3156, 2885: 3155, 2886: 3154, 2887: 3153, 2888: 3152, 2889: 3151, 2890: 3150, 2891: 3149, 2892: 3148, 2893: 3147, 2894: 3146, 2895: 3145, 2896: 3144, 2897: 3143, 2898: 3142, 2899: 3141, 2900: 3140, 2901: 3139, 2902: 3138, 2903: 3137, 2904: 3136, 2905: 3135, 2906: 3134, 2907: 3133, 2908: 3132, 2909: 3131, 2910: 3130, 2911: 3129, 2912: 3128, 2913: 3126, 2914: 3125, 2915: 3127, 2916: 3124, 2917: 3123, 2918: 3122, 2919: 3121, 2920: 3120, 2921: 3119, 2922: 3118, 2923: 3117, 2924: 3116, 2925: 3114, 2926: 3113, 2927: 3112, 2928: 3111, 2929: 3110, 2930: 3109, 2931: 3108, 2932: 3107, 2933: 3106, 2934: 3105, 2935: 3104, 2936: 3103, 2937: 3102, 2938: 3101, 2939: 3100, 2940: 3099, 2941: 3115, 2942: 3098, 2943: 3097, 2944: 3096, 2945: 3095, 2946: 3094, 2947: 3093, 2948: 3092, 2949: 3091, 2950: 3090, 2951: 3089, 2952: 3088, 2953: 3087, 2954: 3086, 2955: 3085, 2956: 3084, 2957: 3083, 2958: 3082, 2959: 3081, 2960: 3080, 2961: 3079, 2962: 3078, 2963: 3077, 2964: 3076, 2965: 3075, 2966: 3074, 2967: 3073, 2968: 3072, 2969: 3071, 2970: 3070, 2971: 3069, 2972: 3068, 2973: 3067, 2974: 3066, 2975: 3065, 2976: 3064, 2977: 3063, 2978: 3062, 2979: 3061, 2980: 3060, 2981: 3059, 2982: 3058, 2983: 3057, 2984: 3056, 2985: 3055, 2986: 3054, 2987: 3053, 2988: 3052, 2989: 3050, 2990: 3051, 2991: 3049, 2992: 3048, 2993: 3047, 2994: 3046, 2995: 3045, 2996: 3044, 2997: 3043, 2998: 3042, 2999: 3040, 3000: 3041, 3001: 3039, 3002: 3038, 3003: 3037, 3004: 3036, 3005: 3035, 3006: 3034, 3007: 3033, 3008: 3032, 3009: 3031, 3010: 3030, 3011: 3029, 3012: 3028, 3013: 3027, 3014: 3026, 3015: 3025, 3016: 3024, 3017: 3023, 3018: 3022, 3019: 3021, 3020: 3020, 3021: 3019, 3022: 3018, 3023: 3017, 3024: 3016, 3025: 3015, 3026: 3014, 3027: 3013, 3028: 3012, 3029: 3011, 3030: 3010, 3031: 3009, 3032: 3008, 3033: 3007, 3034: 3006, 3035: 3005, 3036: 3004, 3037: 3002, 3038: 3001, 3039: 3000, 3040: 2999, 3041: 2998, 3042: 2997, 3043: 2996, 3044: 2995, 3045: 2994, 3046: 2993, 3047: 2992, 3048: 2991, 3049: 2990, 3050: 2989, 3051: 3003, 3052: 2988, 3053: 2987, 3054: 2986, 3055: 2985, 3056: 2984, 3057: 2983, 3058: 2982, 3059: 2981, 3060: 2979, 3061: 2978, 3062: 2977, 3063: 2976, 3064: 2975, 3065: 2974, 3066: 2973, 3067: 2972, 3068: 2971, 3069: 2970, 3070: 2969, 3071: 2968, 3072: 2967, 3073: 2966, 3074: 2965, 3075: 2964, 3076: 2963, 3077: 2962, 3078: 2961, 3079: 2960, 3080: 2959, 3081: 2958, 3082: 2957, 3083: 2956, 3084: 2955, 3085: 2954, 3086: 2953, 3087: 2952, 3088: 2951, 3089: 2950, 3090: 2949, 3091: 2948, 3092: 2946, 3093: 2945, 3094: 2944, 3095: 2943, 3096: 2942, 3097: 2941, 3098: 2940, 3099: 2939, 3100: 2938, 3101: 2937, 3102: 2936, 3103: 2935, 3104: 2934, 3105: 2933, 3106: 2932, 3107: 2931, 3108: 2930, 3109: 2929, 3110: 2928, 3111: 2927, 3112: 2926, 3113: 2925, 3114: 2924, 3115: 2923, 3116: 2922, 3117: 2921, 3118: 2920, 3119: 2919, 3120: 2918, 3121: 2917, 3122: 2916, 3123: 2915, 3124: 2914, 3125: 2913, 3126: 2912, 3127: 2911, 3128: 2909, 3129: 2908, 3130: 2907, 3131: 2906, 3132: 2905, 3133: 2904, 3134: 2903, 3135: 2902, 3136: 2901, 3137: 2900, 3138: 2899, 3139: 2898, 3140: 2897, 3141: 2895, 3142: 2896, 3143: 2894, 3144: 2893, 3145: 2892, 3146: 2891, 3147: 2890, 3148: 2889, 3149: 2888, 3150: 2887, 3151: 2886, 3152: 2885, 3153: 2884, 3154: 2882, 3155: 2881, 3156: 2883, 3157: 2880, 3158: 2879, 3159: 2878, 3160: 2877, 3161: 2876, 3162: 2875, 3163: 2874, 3164: 2873, 3165: 2872, 3166: 2871, 3167: 2870, 3168: 2869, 3169: 2868, 3170: 2867, 3171: 2866, 3172: 2865, 3173: 2864, 3174: 2863, 3175: 2862, 3176: 2861, 3177: 2860, 3178: 2859, 3179: 2858, 3180: 2857, 3181: 2856, 3182: 2855, 3183: 2854, 3184: 2853, 3185: 2852, 3186: 2851, 3187: 2850, 3188: 2849, 3189: 2848, 3190: 2847, 3191: 2846, 3192: 2845, 3193: 2844, 3194: 2843, 3195: 2842, 3196: 2841, 3197: 2840, 3198: 2839, 3199: 2838, 3200: 2837, 3201: 2836, 3202: 2835, 3203: 2834, 3204: 2833, 3205: 2832, 3206: 2831, 3207: 2830, 3208: 2829, 3209: 2828, 3210: 2827, 3211: 2826, 3212: 2825, 3213: 2824, 3214: 2823, 3215: 2822, 3216: 2821, 3217: 2820, 3218: 2819, 3219: 2818, 3220: 2817, 3221: 2816, 3222: 2815, 3223: 2814, 3224: 2813, 3225: 2812, 3226: 2811, 3227: 2810, 3228: 2809, 3229: 2808, 3230: 2807, 3231: 2806, 3232: 2805, 3233: 2804, 3234: 2803, 3235: 2802, 3236: 2801, 3237: 2800, 3238: 2799, 3239: 2798, 3240: 2797, 3241: 2796, 3242: 2795, 3243: 2794, 3244: 2793, 3245: 2792, 3246: 2791, 3247: 2790, 3248: 2789, 3249: 2788, 3250: 2787, 3251: 2786, 3252: 2785, 3253: 2784, 3254: 2783, 3255: 2782, 3256: 2781, 3257: 2780, 3258: 2779, 3259: 2778, 3260: 2777, 3261: 2776, 3262: 2775, 3263: 2774, 3264: 2773, 3265: 2772, 3266: 2771, 3267: 2770, 3268: 2769, 3269: 2768, 3270: 2767, 3271: 2766, 3272: 2765, 3273: 2764, 3274: 2763, 3275: 2762, 3276: 2761, 3277: 2760, 3278: 2759, 3279: 2758, 3280: 2757, 3281: 2756, 3282: 2755, 3283: 2754, 3284: 2753, 3285: 2752, 3286: 2751, 3287: 2750, 3288: 2749, 3289: 2748, 3290: 2747, 3291: 2746, 3292: 2745, 3293: 2744, 3294: 2743, 3295: 2742, 3296: 2741, 3297: 2740, 3298: 2739, 3299: 2738, 3300: 2737, 3301: 2736, 3302: 2735, 3303: 2734, 3304: 2733, 3305: 2732, 3306: 2731, 3307: 2730, 3308: 2729, 3309: 2728, 3310: 2727, 3311: 2726, 3312: 2725, 3313: 2724, 3314: 2723, 3315: 2722, 3316: 2721, 3317: 2720, 3318: 2719, 3319: 2718, 3320: 2716, 3321: 2714, 3322: 2717, 3323: 2715, 3324: 2713, 3325: 2712, 3326: 2711, 3327: 2710, 3328: 2709, 3329: 2708, 3330: 2707, 3331: 2706, 3332: 2705, 3333: 2704, 3334: 2703, 3335: 2702, 3336: 2701, 3337: 2700, 3338: 2699, 3339: 2698, 3340: 2697, 3341: 2696, 3342: 2695, 3343: 2694, 3344: 2693, 3345: 2692, 3346: 2691, 3347: 2690, 3348: 2689, 3349: 2688, 3350: 2687, 3351: 2686, 3352: 2685, 3353: 2684, 3354: 2683, 3355: 2682, 3356: 2681, 3357: 2680, 3358: 2679, 3359: 2678, 3360: 2677, 3361: 2676, 3362: 2675, 3363: 2674, 3364: 2673, 3365: 2672, 3366: 2671, 3367: 2670, 3368: 2669, 3369: 2668, 3370: 2667, 3371: 2666, 3372: 2665, 3373: 2664, 3374: 2663, 3375: 2662, 3376: 2661, 3377: 2660, 3378: 2659, 3379: 2658, 3380: 2657, 3381: 2656, 3382: 2655, 3383: 2653, 3384: 2652, 3385: 2651, 3386: 2650, 3387: 2649, 3388: 2648, 3389: 2654, 3390: 2647, 3391: 2646, 3392: 2645, 3393: 2644, 3394: 2643, 3395: 2642, 3396: 2641, 3397: 2640, 3398: 2639, 3399: 2638, 3400: 2637, 3401: 2636, 3402: 2635, 3403: 2634, 3404: 2633, 3405: 2632, 3406: 2631, 3407: 2630, 3408: 2629, 3409: 2628, 3410: 2627, 3411: 2626, 3412: 2625, 3413: 2624, 3414: 2623, 3415: 2622, 3416: 2621, 3417: 2620, 3418: 2619, 3419: 2618, 3420: 2617, 3421: 2616, 3422: 2615, 3423: 2614, 3424: 2613, 3425: 2612, 3426: 2611, 3427: 2610, 3428: 2609, 3429: 2608, 3430: 2607, 3431: 2606, 3432: 2605, 3433: 2604, 3434: 2603, 3435: 2602, 3436: 2600, 3437: 2599, 3438: 2598, 3439: 2597, 3440: 2601, 3441: 2596, 3442: 2595, 3443: 2594, 3444: 2593, 3445: 2592, 3446: 2591, 3447: 2590, 3448: 2589, 3449: 2588, 3450: 2587, 3451: 2586, 3452: 2584, 3453: 2585, 3454: 2583, 3455: 2582, 3456: 2581, 3457: 2580, 3458: 2579, 3459: 2578, 3460: 2577, 3461: 2576, 3462: 2575, 3463: 2574, 3464: 2573, 3465: 2572, 3466: 2571, 3467: 2570, 3468: 2569, 3469: 2568, 3470: 2567, 3471: 2566, 3472: 2565, 3473: 2564, 3474: 2563, 3475: 2562, 3476: 2561, 3477: 2560, 3478: 2559, 3479: 2558, 3480: 2557, 3481: 2556, 3482: 2555, 3483: 2554, 3484: 2553, 3485: 2552, 3486: 2551, 3487: 2550, 3488: 2549, 3489: 2548, 3490: 2547, 3491: 2546, 3492: 2545, 3493: 2544, 3494: 2543, 3495: 2542, 3496: 2541, 3497: 2540, 3498: 2539, 3499: 2538, 3500: 2537, 3501: 2535, 3502: 2536, 3503: 2534, 3504: 2533, 3505: 2532, 3506: 2531, 3507: 2530, 3508: 2529, 3509: 2528, 3510: 2527, 3511: 2526, 3512: 2525, 3513: 2524, 3514: 2523, 3515: 2522, 3516: 2521, 3517: 2520, 3518: 2519, 3519: 2518, 3520: 2517, 3521: 2516, 3522: 2515, 3523: 2514, 3524: 2513, 3525: 2512, 3526: 2511, 3527: 2510, 3528: 2509, 3529: 2508, 3530: 2507, 3531: 2506, 3532: 2505, 3533: 2504, 3534: 2503, 3535: 2502, 3536: 2501, 3537: 2500, 3538: 2499, 3539: 2498, 3540: 2497, 3541: 2496, 3542: 2495, 3543: 2494, 3544: 2493, 3545: 2492, 3546: 2491, 3547: 2490, 3548: 2489, 3549: 2488, 3550: 2487, 3551: 2486, 3552: 2485, 3553: 2484, 3554: 2483, 3555: 2482, 3556: 2481, 3557: 2480, 3558: 2479, 3559: 2478, 3560: 2476, 3561: 2477, 3562: 2475, 3563: 2474, 3564: 2473, 3565: 2472, 3566: 2471, 3567: 2470, 3568: 2469, 3569: 2468, 3570: 2467, 3571: 2466, 3572: 2465, 3573: 2464, 3574: 2462, 3575: 2463, 3576: 2461, 3577: 2460, 3578: 2459, 3579: 2458, 3580: 2457, 3581: 2456, 3582: 2455, 3583: 2454, 3584: 2453, 3585: 2452, 3586: 2451, 3587: 2450, 3588: 2449, 3589: 2448, 3590: 2447, 3591: 2446, 3592: 2445, 3593: 2444, 3594: 2443, 3595: 2442, 3596: 2441, 3597: 2440, 3598: 2439, 3599: 2438, 3600: 2436, 3601: 2435, 3602: 2433, 3603: 2437, 3604: 2431, 3605: 2430, 3606: 2432, 3607: 2434, 3608: 2429, 3609: 2428, 3610: 2427, 3611: 2426, 3612: 2424, 3613: 2423, 3614: 2422, 3615: 2421, 3616: 2420, 3617: 2425, 3618: 2419, 3619: 2418, 3620: 2417, 3621: 2415, 3622: 2416, 3623: 2414, 3624: 2413, 3625: 2412, 3626: 2411, 3627: 2410, 3628: 2409, 3629: 2408, 3630: 2407, 3631: 2406, 3632: 2405, 3633: 2404, 3634: 2403, 3635: 2402, 3636: 2401, 3637: 2400, 3638: 2399, 3639: 2398, 3640: 2397, 3641: 2396, 3642: 2395, 3643: 2394, 3644: 2393, 3645: 2392, 3646: 2391, 3647: 2390, 3648: 2389, 3649: 2388, 3650: 2387, 3651: 2386, 3652: 2385, 3653: 2384, 3654: 2383, 3655: 2382, 3656: 2381, 3657: 2380, 3658: 2378, 3659: 2379, 3660: 2377, 3661: 2376, 3662: 2375, 3663: 2374, 3664: 2373, 3665: 2372, 3666: 2371, 3667: 2370, 3668: 2369, 3669: 2368, 3670: 2367, 3671: 2366, 3672: 2365, 3673: 2364, 3674: 2363, 3675: 2362, 3676: 2361, 3677: 2360, 3678: 2359, 3679: 2358, 3680: 2357, 3681: 2356, 3682: 2355, 3683: 2354, 3684: 2352, 3685: 2353, 3686: 2351, 3687: 2350, 3688: 2348, 3689: 2349, 3690: 2347, 3691: 2346, 3692: 2345, 3693: 2344, 3694: 2342, 3695: 2343, 3696: 2341, 3697: 2340, 3698: 2339, 3699: 2338, 3700: 2337, 3701: 2336, 3702: 2335, 3703: 2334, 3704: 2333, 3705: 2332, 3706: 2331, 3707: 2330, 3708: 2329, 3709: 2328, 3710: 2327, 3711: 2326, 3712: 2325, 3713: 2324, 3714: 2323, 3715: 2322, 3716: 2321, 3717: 2320, 3718: 2319, 3719: 2318, 3720: 2317, 3721: 2316, 3722: 2315, 3723: 2314, 3724: 2313, 3725: 2312, 3726: 2311, 3727: 2310, 3728: 2309, 3729: 2308, 3730: 2307, 3731: 2306, 3732: 2305, 3733: 2304, 3734: 2303, 3735: 2302, 3736: 2301, 3737: 2300, 3738: 2299, 3739: 2298, 3740: 2297, 3741: 2296, 3742: 2295, 3743: 2294, 3744: 2293, 3745: 2292, 3746: 2291, 3747: 2290, 3748: 2289, 3749: 2288, 3750: 2287, 3751: 2286, 3752: 2285, 3753: 2284, 3754: 2283, 3755: 2282, 3756: 2281, 3757: 2280, 3758: 2279, 3759: 2278, 3760: 2277, 3761: 2276, 3762: 2275, 3763: 2274, 3764: 2273, 3765: 2272, 3766: 2271, 3767: 2270, 3768: 2269, 3769: 2268, 3770: 2267, 3771: 2266, 3772: 2265, 3773: 2264, 3774: 2263, 3775: 2262, 3776: 2261, 3777: 2260, 3778: 2259, 3779: 2258, 3780: 2257, 3781: 2256, 3782: 2255, 3783: 2254, 3784: 2253, 3785: 2252, 3786: 2250, 3787: 2251, 3788: 2248, 3789: 2246, 3790: 2244, 3791: 2243, 3792: 2242, 3793: 2241, 3794: 2249, 3795: 2245, 3796: 2240, 3797: 2239, 3798: 2238, 3799: 2237, 3800: 2235, 3801: 2236, 3802: 2234, 3803: 2233, 3804: 2232, 3805: 2231, 3806: 2230, 3807: 2229, 3808: 2228, 3809: 2227, 3810: 2226, 3811: 2224, 3812: 2225, 3813: 2223, 3814: 2222, 3815: 2221, 3816: 2220, 3817: 2219, 3818: 2218, 3819: 2217, 3820: 2216, 3821: 2215, 3822: 2214, 3823: 2212, 3824: 2213, 3825: 2211, 3826: 2210, 3827: 2209, 3828: 2208, 3829: 2207, 3830: 2206, 3831: 2205, 3832: 2203, 3833: 2204, 3834: 2202, 3835: 2201, 3836: 2200, 3837: 2199, 3838: 2197, 3839: 2198, 3840: 2196, 3841: 2195, 3842: 2192, 3843: 2191, 3844: 2193, 3845: 2194, 3846: 2190, 3847: 2189, 3848: 2188, 3849: 2186, 3850: 2185, 3851: 2187, 3852: 2184, 3853: 2182, 3854: 2183, 3855: 2181, 3856: 2180, 3857: 2179, 3858: 2178, 3859: 2177, 3860: 2175, 3861: 2176, 3862: 2174, 3863: 2173, 3864: 2172, 3865: 2171, 3866: 2169, 3867: 2170, 3868: 2168, 3869: 2167, 3870: 2166, 3871: 2165, 3872: 2164, 3873: 2163, 3874: 2162, 3875: 2161, 3876: 2160, 3877: 2159, 3878: 2158, 3879: 2157, 3880: 2156, 3881: 2155, 3882: 2154, 3883: 2153, 3884: 2152, 3885: 2150, 3886: 2151, 3887: 2149, 3888: 2148, 3889: 2147, 3890: 2146, 3891: 2145, 3892: 2144, 3893: 2143, 3894: 2142, 3895: 2141, 3896: 2140, 3897: 2139, 3898: 2138, 3899: 2137, 3900: 2136, 3901: 2135, 3902: 2134, 3903: 2133, 3904: 2132, 3905: 2131, 3906: 2130, 3907: 2129, 3908: 2128, 3909: 2127, 3910: 2126, 3911: 2125, 3912: 2123, 3913: 2124, 3914: 2122, 3915: 2121, 3916: 2120, 3917: 2119, 3918: 2118, 3919: 2117, 3920: 2116, 3921: 2115, 3922: 2114, 3923: 2113, 3924: 2112, 3925: 2111, 3926: 2110, 3927: 2109, 3928: 2108, 3929: 2107, 3930: 2106, 3931: 2105, 3932: 2104, 3933: 2103, 3934: 2102, 3935: 2101, 3936: 2100, 3937: 2099, 3938: 2098, 3939: 2097, 3940: 2096, 3941: 2095, 3942: 2093, 3943: 2094, 3944: 2092, 3945: 2091, 3946: 2090, 3947: 2088, 3948: 2089, 3949: 2087, 3950: 2085, 3951: 2086, 3952: 2084, 3953: 2083, 3954: 2082, 3955: 2081, 3956: 2080, 3957: 2079, 3958: 2078, 3959: 2077, 3960: 2075, 3961: 2076, 3962: 2074, 3963: 2073, 3964: 2072, 3965: 2071, 3966: 2070, 3967: 2069, 3968: 2068, 3969: 2067, 3970: 2066, 3971: 2064, 3972: 2065, 3973: 2063, 3974: 2062, 3975: 2061, 3976: 2060, 3977: 2059, 3978: 2057, 3979: 2058, 3980: 2056, 3981: 2055, 3982: 2054, 3983: 2053, 3984: 2052, 3985: 2051, 3986: 2050, 3987: 2049, 3988: 2048, 3989: 2047, 3990: 2046, 3991: 2045, 3992: 2044, 3993: 2043, 3994: 2042, 3995: 2041, 3996: 2039, 3997: 2040, 3998: 2038, 3999: 2036, 4000: 2037, 4001: 2035, 4002: 2034, 4003: 2033, 4004: 2032, 4005: 2031, 4006: 2030, 4007: 2029, 4008: 2028, 4009: 2027, 4010: 2026, 4011: 2025, 4012: 2024, 4013: 2023, 4014: 2022, 4015: 2020, 4016: 2021, 4017: 2019, 4018: 2018, 4019: 2017, 4020: 2016, 4021: 2015, 4022: 2014, 4023: 2013, 4024: 2012, 4025: 2011, 4026: 2010, 4027: 2009, 4028: 2008, 4029: 2005, 4030: 2007, 4031: 2006, 4032: 2004, 4033: 2002, 4034: 2003, 4035: 2001, 4036: 2000, 4037: 1999, 4038: 1998, 4039: 1997, 4040: 1996, 4041: 1995, 4042: 1994, 4043: 1993, 4044: 1992, 4045: 1991, 4046: 1990, 4047: 1989, 4048: 1988, 4049: 1985, 4050: 1986, 4051: 1987, 4052: 1983, 4053: 1984, 4054: 1982, 4055: 1981, 4056: 1980, 4057: 1979, 4058: 1978, 4059: 1977, 4060: 1974, 4061: 1975, 4062: 1973, 4063: 1976, 4064: 1971, 4065: 1972, 4066: 1969, 4067: 1968, 4068: 1967, 4069: 1970, 4070: 1966, 4071: 1965, 4072: 1964, 4073: 1963, 4074: 1962, 4075: 1961, 4076: 1960, 4077: 1959, 4078: 1958, 4079: 1957, 4080: 1956, 4081: 1955, 4082: 1952, 4083: 1951, 4084: 1954, 4085: 1948, 4086: 1945, 4087: 1946, 4088: 1953, 4089: 1944, 4090: 1937, 4091: 1949, 4092: 1950, 4093: 1943, 4094: 1941, 4095: 1942, 4096: 1938, 4097: 1935, 4098: 1939, 4099: 1947, 4100: 1940, 4101: 1934, 4102: 1931, 4103: 1928, 4104: 1926, 4105: 1929, 4106: 1927, 4107: 1924, 4108: 1925, 4109: 1923, 4110: 1921, 4111: 1920, 4112: 1922, 4113: 1936, 4114: 1919, 4115: 1930, 4116: 1917, 4117: 1918, 4118: 1916, 4119: 1914, 4120: 1912, 4121: 1909, 4122: 1911, 4123: 1906, 4124: 1904, 4125: 1908, 4126: 1905, 4127: 1903, 4128: 1907, 4129: 1902, 4130: 1901, 4131: 1900, 4132: 1933, 4133: 1915, 4134: 1910, 4135: 1894, 4136: 1896, 4137: 1898, 4138: 1899, 4139: 1893, 4140: 1892, 4141: 1895, 4142: 1913, 4143: 1891, 4144: 1889, 4145: 1890, 4146: 1888, 4147: 1886, 4148: 1885, 4149: 1897, 4150: 1887, 4151: 1882, 4152: 1881, 4153: 1880, 4154: 1883, 4155: 1879, 4156: 1884, 4157: 1932, 4158: 1878, 4159: 1876, 4160: 1873, 4161: 1874, 4162: 1872, 4163: 1871, 4164: 1870, 4165: 1869, 4166: 1868, 4167: 1867, 4168: 1866, 4169: 1865, 4170: 1864, 4171: 1863, 4172: 1862, 4173: 1859, 4174: 1861, 4175: 1860, 4176: 1858, 4177: 1857, 4178: 1856, 4179: 1855, 4180: 1854, 4181: 1852, 4182: 1851, 4183: 1850, 4184: 1849, 4185: 1846, 4186: 1844, 4187: 1843, 4188: 1848, 4189: 1847, 4190: 1842, 4191: 1841, 4192: 1840, 4193: 1839, 4194: 1838, 4195: 1837, 4196: 1833, 4197: 1835, 4198: 1834, 4199: 1830, 4200: 1824, 4201: 1832, 4202: 1836, 4203: 1826, 4204: 1845, 4205: 1822, 4206: 1829, 4207: 1828, 4208: 1823, 4209: 1827, 4210: 1820, 4211: 1819, 4212: 1818, 4213: 1817, 4214: 1816, 4215: 1814, 4216: 1812, 4217: 1811, 4218: 1813, 4219: 1821, 4220: 1809, 4221: 1808, 4222: 1810, 4223: 1807, 4224: 1831, 4225: 1805, 4226: 1804, 4227: 1806, 4228: 1815, 4229: 1803, 4230: 1802, 4231: 1801, 4232: 1800, 4233: 1798, 4234: 1799, 4235: 1797, 4236: 1796, 4237: 1793, 4238: 1795, 4239: 1792, 4240: 1794, 4241: 1790, 4242: 1791, 4243: 1787, 4244: 1875, 4245: 1789, 4246: 1788, 4247: 1784, 4248: 1783, 4249: 1785, 4250: 1782, 4251: 1781, 4252: 1780, 4253: 1779, 4254: 1778, 4255: 1786, 4256: 1777, 4257: 1773, 4258: 1776, 4259: 1775, 4260: 1774, 4261: 1772, 4262: 1771, 4263: 1769, 4264: 1768, 4265: 1770, 4266: 1767, 4267: 1762, 4268: 1766, 4269: 1764, 4270: 1763, 4271: 1765, 4272: 1760, 4273: 1759, 4274: 1758, 4275: 1756, 4276: 1757, 4277: 1761, 4278: 1755, 4279: 1753, 4280: 1752, 4281: 1754, 4282: 1751, 4283: 1749, 4284: 1750, 4285: 1747, 4286: 1746, 4287: 1745, 4288: 1748, 4289: 1744, 4290: 1743, 4291: 1742, 4292: 1740, 4293: 1739, 4294: 1738, 4295: 1737, 4296: 1736, 4297: 1735, 4298: 1733, 4299: 1734, 4300: 1732, 4301: 1729, 4302: 1730, 4303: 1731, 4304: 1728, 4305: 1725, 4306: 1726, 4307: 1727, 4308: 1722, 4309: 1719, 4310: 1721, 4311: 1720, 4312: 1724, 4313: 1723, 4314: 1718, 4315: 1717, 4316: 1715, 4317: 1741, 4318: 1714, 4319: 1716, 4320: 1713, 4321: 1712, 4322: 1711, 4323: 1710, 4324: 1709, 4325: 1708, 4326: 1707, 4327: 1706, 4328: 1705, 4329: 1704, 4330: 1703, 4331: 1700, 4332: 1701, 4333: 1698, 4334: 1697, 4335: 1702, 4336: 1695, 4337: 1699, 4338: 1694, 4339: 1693, 4340: 1696, 4341: 1691, 4342: 1692, 4343: 1688, 4344: 1686, 4345: 1687, 4346: 1685, 4347: 1684, 4348: 1689, 4349: 1683, 4350: 1682, 4351: 1681, 4352: 1690, 4353: 1680, 4354: 1679, 4355: 1678, 4356: 1676, 4357: 1677, 4358: 1675, 4359: 1674, 4360: 1672, 4361: 1673, 4362: 1669, 4363: 1671, 4364: 1668, 4365: 1670, 4366: 1667, 4367: 1666, 4368: 1665, 4369: 1664, 4370: 1663, 4371: 1662, 4372: 1661, 4373: 1660, 4374: 1659, 4375: 1658, 4376: 1654, 4377: 1655, 4378: 1657, 4379: 1656, 4380: 1653, 4381: 1652, 4382: 1651, 4383: 1650, 4384: 1649, 4385: 1648, 4386: 1647, 4387: 1646, 4388: 1645, 4389: 1644, 4390: 1641, 4391: 1643, 4392: 1642, 4393: 1640, 4394: 1639, 4395: 1638, 4396: 1637, 4397: 1636, 4398: 1634, 4399: 1635, 4400: 1633, 4401: 1632, 4402: 1631, 4403: 1628, 4404: 1629, 4405: 1630, 4406: 1627, 4407: 1626, 4408: 1625, 4409: 1624, 4410: 1623, 4411: 1622, 4412: 1621, 4413: 1620, 4414: 1617, 4415: 1618, 4416: 1619, 4417: 1616, 4418: 1614, 4419: 1615, 4420: 1613, 4421: 1612, 4422: 1611, 4423: 1610, 4424: 1609, 4425: 1608, 4426: 1825, 4427: 1607, 4428: 1606, 4429: 1605, 4430: 1604, 4431: 1603, 4432: 1602, 4433: 1601, 4434: 1600, 4435: 1599, 4436: 1598, 4437: 1597, 4438: 1596, 4439: 1595, 4440: 1594, 4441: 1593, 4442: 1592, 4443: 1591, 4444: 1590, 4445: 1589, 4446: 1588, 4447: 1587, 4448: 1586, 4449: 1585, 4450: 1584, 4451: 1583, 4452: 1579, 4453: 1582, 4454: 1580, 4455: 1578, 4456: 1577, 4457: 1576, 4458: 1574, 4459: 1575, 4460: 1573, 4461: 1572, 4462: 1571, 4463: 1570, 4464: 1569, 4465: 1568, 4466: 1567, 4467: 1566, 4468: 1564, 4469: 1565, 4470: 1563, 4471: 1562, 4472: 1561, 4473: 1560, 4474: 1559, 4475: 1558, 4476: 1556, 4477: 1555, 4478: 1554, 4479: 1553, 4480: 1552, 4481: 1550, 4482: 1549, 4483: 1548, 4484: 1551, 4485: 1547, 4486: 1546, 4487: 1545, 4488: 1544, 4489: 1543, 4490: 1542, 4491: 1540, 4492: 1541, 4493: 1539, 4494: 1538, 4495: 1537, 4496: 1535, 4497: 1536, 4498: 1534, 4499: 1533, 4500: 1532, 4501: 1531, 4502: 1530, 4503: 1529, 4504: 1528, 4505: 1527, 4506: 1526, 4507: 1525, 4508: 1524, 4509: 1523, 4510: 1521, 4511: 1522, 4512: 1520, 4513: 1519, 4514: 1517, 4515: 1518, 4516: 1516, 4517: 1515, 4518: 1514, 4519: 1513, 4520: 1512, 4521: 1511, 4522: 1510, 4523: 1509, 4524: 1508, 4525: 1507, 4526: 1506, 4527: 1581, 4528: 1504, 4529: 1503, 4530: 1501, 4531: 1500, 4532: 1502, 4533: 1499, 4534: 1497, 4535: 1498, 4536: 1496, 4537: 1495, 4538: 1493, 4539: 1494, 4540: 1492, 4541: 1491, 4542: 1490, 4543: 1489, 4544: 1488, 4545: 1487, 4546: 1486, 4547: 1484, 4548: 1485, 4549: 1483, 4550: 1482, 4551: 1481, 4552: 1479, 4553: 1478, 4554: 1476, 4555: 1477, 4556: 1474, 4557: 1473, 4558: 1475, 4559: 1472, 4560: 1470, 4561: 1471, 4562: 1469, 4563: 1468, 4564: 1467, 4565: 1480, 4566: 1466, 4567: 1465, 4568: 1463, 4569: 1464, 4570: 1462, 4571: 1461, 4572: 1460, 4573: 1459, 4574: 1458, 4575: 1457, 4576: 1456, 4577: 1454, 4578: 1453, 4579: 1452, 4580: 1451, 4581: 1455, 4582: 1450, 4583: 1448, 4584: 1446, 4585: 1445, 4586: 1447, 4587: 1449, 4588: 1443, 4589: 1444, 4590: 1442, 4591: 1441, 4592: 1440, 4593: 1439, 4594: 1438, 4595: 1437, 4596: 1436, 4597: 1435, 4598: 1434, 4599: 1433, 4600: 1432, 4601: 1430, 4602: 1429, 4603: 1431, 4604: 1427, 4605: 1426, 4606: 1423, 4607: 1425, 4608: 1424, 4609: 1422, 4610: 1421, 4611: 1420, 4612: 1419, 4613: 1418, 4614: 1416, 4615: 1415, 4616: 1417, 4617: 1414, 4618: 1413, 4619: 1412, 4620: 1411, 4621: 1409, 4622: 1408, 4623: 1407, 4624: 1406, 4625: 1405, 4626: 1404, 4627: 1403, 4628: 1402, 4629: 1401, 4630: 1410, 4631: 1400, 4632: 1399, 4633: 1397, 4634: 1398, 4635: 1396, 4636: 1393, 4637: 1394, 4638: 1395, 4639: 1392, 4640: 1390, 4641: 1389, 4642: 1388, 4643: 1391, 4644: 1387, 4645: 1386, 4646: 1385, 4647: 1384, 4648: 1383, 4649: 1381, 4650: 1380, 4651: 1382, 4652: 1378, 4653: 1379, 4654: 1377, 4655: 1376, 4656: 1375, 4657: 1374, 4658: 1373, 4659: 1372, 4660: 1371, 4661: 1370, 4662: 1369, 4663: 1368, 4664: 1367, 4665: 1366, 4666: 1364, 4667: 1363, 4668: 1365, 4669: 1362, 4670: 1361, 4671: 1360, 4672: 1359, 4673: 1358, 4674: 1357, 4675: 1356, 4676: 1355, 4677: 1354, 4678: 1353, 4679: 1352, 4680: 1351, 4681: 1350, 4682: 1349, 4683: 1348, 4684: 1347, 4685: 1346, 4686: 1345, 4687: 1344, 4688: 1343, 4689: 1342, 4690: 1341, 4691: 1340, 4692: 1338, 4693: 1339, 4694: 1337, 4695: 1336, 4696: 1335, 4697: 1334, 4698: 1333, 4699: 1332, 4700: 1331, 4701: 1330, 4702: 1329, 4703: 1328, 4704: 1325, 4705: 1326, 4706: 1324, 4707: 1327, 4708: 1323, 4709: 1322, 4710: 1321, 4711: 1320, 4712: 1319, 4713: 1316, 4714: 1317, 4715: 1318, 4716: 1315, 4717: 1314, 4718: 1313, 4719: 1312, 4720: 1311, 4721: 1310, 4722: 1309, 4723: 1308, 4724: 1307, 4725: 1306, 4726: 1305, 4727: 1304, 4728: 1303, 4729: 1301, 4730: 1299, 4731: 1300, 4732: 1302, 4733: 1298, 4734: 1297, 4735: 1296, 4736: 1295, 4737: 1293, 4738: 1294, 4739: 1292, 4740: 1291, 4741: 1290, 4742: 1289, 4743: 1288, 4744: 1286, 4745: 1285, 4746: 1284, 4747: 1282, 4748: 1281, 4749: 1280, 4750: 1279, 4751: 1283, 4752: 1278, 4753: 1277, 4754: 1276, 4755: 1275, 4756: 1274, 4757: 1273, 4758: 1272, 4759: 1271, 4760: 1270, 4761: 1269, 4762: 1268, 4763: 1267, 4764: 1266, 4765: 1264, 4766: 1263, 4767: 1262, 4768: 1261, 4769: 1557, 4770: 1260, 4771: 1259, 4772: 1258, 4773: 1255, 4774: 1256, 4775: 1257, 4776: 1254, 4777: 1253, 4778: 1252, 4779: 1251, 4780: 1250, 4781: 1249, 4782: 1248, 4783: 1247, 4784: 1246, 4785: 1245, 4786: 1244, 4787: 1243, 4788: 1242, 4789: 1241, 4790: 1240, 4791: 1239, 4792: 1237, 4793: 1238, 4794: 1236, 4795: 1235, 4796: 1234, 4797: 1233, 4798: 1232, 4799: 1230, 4800: 1229, 4801: 1227, 4802: 1231, 4803: 1228, 4804: 1226, 4805: 1225, 4806: 1223, 4807: 1222, 4808: 1224, 4809: 1221, 4810: 1220, 4811: 1219, 4812: 1218, 4813: 1217, 4814: 1216, 4815: 1215, 4816: 1211, 4817: 1214, 4818: 1212, 4819: 1213, 4820: 1210, 4821: 1209, 4822: 1208, 4823: 1207, 4824: 1206, 4825: 1205, 4826: 1204, 4827: 1203, 4828: 1202, 4829: 1201, 4830: 1200, 4831: 1199, 4832: 1198, 4833: 1197, 4834: 1196, 4835: 1195, 4836: 1194, 4837: 1193, 4838: 1192, 4839: 1190, 4840: 1189, 4841: 1191, 4842: 1186, 4843: 1188, 4844: 1187, 4845: 1185, 4846: 1184, 4847: 1183, 4848: 1182, 4849: 1181, 4850: 1180, 4851: 1179, 4852: 1178, 4853: 1177, 4854: 1176, 4855: 1175, 4856: 1174, 4857: 1173, 4858: 1172, 4859: 1171, 4860: 1170, 4861: 1169, 4862: 1168, 4863: 1167, 4864: 1166, 4865: 1165, 4866: 1163, 4867: 1164, 4868: 1162, 4869: 1161, 4870: 1160, 4871: 1159, 4872: 1158, 4873: 1157, 4874: 1156, 4875: 1155, 4876: 1154, 4877: 1153, 4878: 1152, 4879: 1151, 4880: 1853, 4881: 1150, 4882: 1149, 4883: 1148, 4884: 1147, 4885: 1146, 4886: 1145, 4887: 1144, 4888: 1143, 4889: 1141, 4890: 1142, 4891: 1139, 4892: 1140, 4893: 1138, 4894: 1137, 4895: 1136, 4896: 1135, 4897: 1134, 4898: 1133, 4899: 1132, 4900: 1131, 4901: 1130, 4902: 1128, 4903: 1129, 4904: 1127, 4905: 1126, 4906: 1125, 4907: 1124, 4908: 1123, 4909: 1122, 4910: 1121, 4911: 1120, 4912: 1119, 4913: 1117, 4914: 1116, 4915: 1115, 4916: 1114, 4917: 1113, 4918: 1112, 4919: 1111, 4920: 1109, 4921: 1108, 4922: 1110, 4923: 1107, 4924: 1106, 4925: 1105, 4926: 1104, 4927: 1103, 4928: 1102, 4929: 1101, 4930: 1100, 4931: 1099, 4932: 1118, 4933: 1098, 4934: 1097, 4935: 1096, 4936: 1095, 4937: 1094, 4938: 1093, 4939: 1092, 4940: 1091, 4941: 1090, 4942: 1089, 4943: 1088, 4944: 1087, 4945: 1086, 4946: 1085, 4947: 1084, 4948: 1083, 4949: 1081, 4950: 1082, 4951: 1080, 4952: 1079, 4953: 1078, 4954: 1077, 4955: 1075, 4956: 1076, 4957: 1074, 4958: 1073, 4959: 1071, 4960: 1070, 4961: 1072, 4962: 1069, 4963: 1068, 4964: 1067, 4965: 1066, 4966: 1065, 4967: 1064, 4968: 1063, 4969: 1062, 4970: 1061, 4971: 1060, 4972: 1059, 4973: 1058, 4974: 1057, 4975: 1056, 4976: 1055, 4977: 1054, 4978: 1053, 4979: 1505, 4980: 1052, 4981: 1051, 4982: 1050, 4983: 1049, 4984: 1048, 4985: 1047, 4986: 1046, 4987: 1045, 4988: 1044, 4989: 1043, 4990: 1042, 4991: 1041, 4992: 1040, 4993: 1039, 4994: 1038, 4995: 1037, 4996: 1036, 4997: 1035, 4998: 1034, 4999: 1033, 5000: 1032, 5001: 1031, 5002: 1030, 5003: 1029, 5004: 1028, 5005: 1027, 5006: 1025, 5007: 1026, 5008: 1024, 5009: 1023, 5010: 1022, 5011: 1021, 5012: 1020, 5013: 1019, 5014: 1018, 5015: 1017, 5016: 1016, 5017: 1015, 5018: 1014, 5019: 1013, 5020: 1011, 5021: 1010, 5022: 1009, 5023: 1008, 5024: 1007, 5025: 1006, 5026: 1005, 5027: 1003, 5028: 1002, 5029: 1004, 5030: 1001, 5031: 1000, 5032: 999, 5033: 998, 5034: 997, 5035: 996, 5036: 995, 5037: 994, 5038: 993, 5039: 1012, 5040: 992, 5041: 991, 5042: 990, 5043: 989, 5044: 988, 5045: 987, 5046: 986, 5047: 985, 5048: 984, 5049: 983, 5050: 982, 5051: 981, 5052: 980, 5053: 979, 5054: 978, 5055: 977, 5056: 976, 5057: 975, 5058: 974, 5059: 973, 5060: 972, 5061: 971, 5062: 970, 5063: 969, 5064: 968, 5065: 966, 5066: 967, 5067: 964, 5068: 965, 5069: 963, 5070: 962, 5071: 961, 5072: 960, 5073: 959, 5074: 958, 5075: 957, 5076: 956, 5077: 955, 5078: 954, 5079: 953, 5080: 952, 5081: 950, 5082: 951, 5083: 949, 5084: 948, 5085: 947, 5086: 946, 5087: 945, 5088: 944, 5089: 1428, 5090: 943, 5091: 942, 5092: 941, 5093: 940, 5094: 938, 5095: 939, 5096: 937, 5097: 936, 5098: 935, 5099: 934, 5100: 933, 5101: 932, 5102: 931, 5103: 930, 5104: 929, 5105: 928, 5106: 927, 5107: 2247, 5108: 926, 5109: 925, 5110: 924, 5111: 923, 5112: 922, 5113: 921, 5114: 920, 5115: 919, 5116: 917, 5117: 916, 5118: 918, 5119: 915, 5120: 914, 5121: 913, 5122: 912, 5123: 911, 5124: 910, 5125: 909, 5126: 908, 5127: 907, 5128: 906, 5129: 905, 5130: 904, 5131: 903, 5132: 902, 5133: 901, 5134: 900, 5135: 899, 5136: 898, 5137: 897, 5138: 896, 5139: 895, 5140: 894, 5141: 893, 5142: 892, 5143: 891, 5144: 890, 5145: 889, 5146: 888, 5147: 887, 5148: 886, 5149: 885, 5150: 884, 5151: 883, 5152: 882, 5153: 881, 5154: 880, 5155: 879, 5156: 878, 5157: 877, 5158: 876, 5159: 875, 5160: 874, 5161: 873, 5162: 872, 5163: 871, 5164: 870, 5165: 869, 5166: 868, 5167: 867, 5168: 866, 5169: 865, 5170: 864, 5171: 863, 5172: 862, 5173: 861, 5174: 860, 5175: 859, 5176: 858, 5177: 857, 5178: 856, 5179: 854, 5180: 853, 5181: 852, 5182: 851, 5183: 850, 5184: 849, 5185: 848, 5186: 847, 5187: 846, 5188: 845, 5189: 844, 5190: 842, 5191: 841, 5192: 843, 5193: 840, 5194: 839, 5195: 838, 5196: 837, 5197: 836, 5198: 835, 5199: 834, 5200: 833, 5201: 832, 5202: 831, 5203: 830, 5204: 829, 5205: 828, 5206: 827, 5207: 826, 5208: 825, 5209: 824, 5210: 823, 5211: 822, 5212: 821, 5213: 820, 5214: 819, 5215: 818, 5216: 817, 5217: 816, 5218: 814, 5219: 815, 5220: 813, 5221: 811, 5222: 810, 5223: 809, 5224: 808, 5225: 807, 5226: 812, 5227: 806, 5228: 805, 5229: 804, 5230: 803, 5231: 802, 5232: 801, 5233: 800, 5234: 799, 5235: 798, 5236: 797, 5237: 796, 5238: 795, 5239: 794, 5240: 793, 5241: 792, 5242: 791, 5243: 790, 5244: 789, 5245: 788, 5246: 786, 5247: 787, 5248: 785, 5249: 784, 5250: 783, 5251: 782, 5252: 781, 5253: 780, 5254: 779, 5255: 778, 5256: 777, 5257: 775, 5258: 776, 5259: 774, 5260: 773, 5261: 772, 5262: 771, 5263: 770, 5264: 769, 5265: 768, 5266: 767, 5267: 766, 5268: 765, 5269: 764, 5270: 763, 5271: 762, 5272: 761, 5273: 760, 5274: 759, 5275: 758, 5276: 757, 5277: 756, 5278: 755, 5279: 754, 5280: 753, 5281: 752, 5282: 751, 5283: 750, 5284: 749, 5285: 748, 5286: 855, 5287: 747, 5288: 746, 5289: 745, 5290: 744, 5291: 743, 5292: 742, 5293: 741, 5294: 740, 5295: 739, 5296: 738, 5297: 737, 5298: 736, 5299: 735, 5300: 734, 5301: 733, 5302: 732, 5303: 731, 5304: 730, 5305: 729, 5306: 728, 5307: 727, 5308: 726, 5309: 725, 5310: 724, 5311: 723, 5312: 722, 5313: 721, 5314: 720, 5315: 719, 5316: 718, 5317: 717, 5318: 716, 5319: 715, 5320: 714, 5321: 713, 5322: 712, 5323: 711, 5324: 710, 5325: 709, 5326: 708, 5327: 707, 5328: 706, 5329: 705, 5330: 704, 5331: 703, 5332: 702, 5333: 701, 5334: 700, 5335: 699, 5336: 698, 5337: 697, 5338: 696, 5339: 695, 5340: 694, 5341: 693, 5342: 692, 5343: 691, 5344: 690, 5345: 689, 5346: 688, 5347: 687, 5348: 686, 5349: 685, 5350: 684, 5351: 682, 5352: 683, 5353: 681, 5354: 680, 5355: 679, 5356: 678, 5357: 677, 5358: 676, 5359: 675, 5360: 674, 5361: 673, 5362: 672, 5363: 671, 5364: 670, 5365: 669, 5366: 668, 5367: 667, 5368: 666, 5369: 665, 5370: 664, 5371: 663, 5372: 662, 5373: 661, 5374: 660, 5375: 659, 5376: 658, 5377: 657, 5378: 656, 5379: 655, 5380: 654, 5381: 653, 5382: 652, 5383: 651, 5384: 650, 5385: 649, 5386: 648, 5387: 647, 5388: 646, 5389: 645, 5390: 644, 5391: 643, 5392: 642, 5393: 641, 5394: 640, 5395: 639, 5396: 638, 5397: 637, 5398: 636, 5399: 635, 5400: 634, 5401: 633, 5402: 632, 5403: 631, 5404: 630, 5405: 628, 5406: 629, 5407: 627, 5408: 626, 5409: 625, 5410: 624, 5411: 623, 5412: 622, 5413: 621, 5414: 620, 5415: 619, 5416: 618, 5417: 617, 5418: 616, 5419: 615, 5420: 614, 5421: 613, 5422: 612, 5423: 611, 5424: 610, 5425: 609, 5426: 608, 5427: 607, 5428: 606, 5429: 605, 5430: 604, 5431: 603, 5432: 602, 5433: 601, 5434: 600, 5435: 599, 5436: 598, 5437: 597, 5438: 596, 5439: 595, 5440: 594, 5441: 593, 5442: 592, 5443: 591, 5444: 590, 5445: 589, 5446: 588, 5447: 587, 5448: 586, 5449: 585, 5450: 584, 5451: 583, 5452: 582}}\n", + "{'item_id': {858: 0, 593: 1, 2384: 2, 2019: 3, 1961: 4, 1419: 5, 3111: 6, 573: 7, 213: 8, 3505: 9, 1734: 10, 2503: 11, 912: 12, 919: 13, 527: 14, 649: 15, 1252: 16, 318: 17, 3289: 18, 759: 19, 608: 20, 2396: 21, 2858: 22, 326: 23, 2028: 24, 1649: 25, 2762: 26, 17: 27, 34: 28, 246: 29, 2692: 30, 1617: 31, 300: 32, 1392: 33, 1111: 34, 150: 35, 562: 36, 549: 37, 1537: 38, 1554: 39, 448: 40, 265: 41, 866: 42, 1358: 43, 2324: 44, 235: 45, 446: 46, 247: 47, 1094: 48, 1704: 49, 50: 50, 162: 51, 45: 52, 348: 53, 508: 54, 1089: 55, 589: 56, 58: 57, 1694: 58, 2580: 59, 1834: 60, 2391: 61, 282: 62, 111: 63, 290: 64, 2067: 65, 1641: 66, 357: 67, 930: 68, 1230: 69, 947: 70, 3088: 71, 3133: 72, 3022: 73, 1294: 74, 3421: 75, 2804: 76, 1269: 77, 1276: 78, 1244: 79, 2622: 80, 955: 81, 2791: 82, 2300: 83, 1028: 84, 2863: 85, 3548: 86, 1197: 87, 951: 88, 1223: 89, 1211: 90, 933: 91, 1066: 92, 3072: 93, 907: 94, 2671: 95, 935: 96, 1304: 97, 3175: 98, 3035: 99, 1014: 100, 1078: 101, 3363: 102, 1270: 103, 1265: 104, 909: 105, 3396: 106, 1934: 107, 2174: 108, 911: 109, 945: 110, 2746: 111, 1188: 112, 471: 113, 3037: 114, 952: 115, 2289: 116, 916: 117, 1125: 118, 915: 119, 3028: 120, 3471: 121, 260: 122, 750: 123, 924: 124, 1210: 125, 1097: 126, 3545: 127, 2565: 128, 914: 129, 2087: 130, 918: 131, 899: 132, 1282: 133, 1022: 134, 900: 135, 364: 136, 1951: 137, 588: 138, 3549: 139, 963: 140, 1947: 141, 1081: 142, 2946: 143, 2083: 144, 1220: 145, 107: 146, 1380: 147, 2857: 148, 2096: 149, 1088: 150, 661: 151, 938: 152, 901: 153, 783: 154, 1083: 155, 2080: 156, 199: 157, 1416: 158, 48: 159, 903: 160, 1284: 161, 904: 162, 913: 163, 1212: 164, 2206: 165, 1086: 166, 950: 167, 1964: 168, 2208: 169, 906: 170, 942: 171, 2414: 172, 1680: 173, 926: 174, 1237: 175, 923: 176, 920: 177, 2146: 178, 1387: 179, 356: 180, 1079: 181, 2716: 182, 1148: 183, 232: 184, 1136: 185, 702: 186, 1882: 187, 1267: 188, 3508: 189, 3148: 190, 3543: 191, 1221: 192, 2132: 193, 1250: 194, 1193: 195, 1299: 196, 1225: 197, 3006: 198, 3196: 199, 908: 200, 1207: 201, 3469: 202, 1721: 203, 3438: 204, 2428: 205, 1883: 206, 2376: 207, 1945: 208, 3468: 209, 2728: 210, 3359: 211, 1938: 212, 1949: 213, 1231: 214, 2706: 215, 2707: 216, 2826: 217, 2492: 218, 2827: 219, 2572: 220, 2683: 221, 2699: 222, 3362: 223, 3504: 224, 1203: 225, 2501: 226, 2770: 227, 2842: 228, 3005: 229, 2555: 230, 3285: 231, 2710: 232, 2694: 233, 2975: 234, 2997: 235, 3270: 236, 3330: 237, 1233: 238, 2771: 239, 2147: 240, 3016: 241, 223: 242, 2433: 243, 2038: 244, 3068: 245, 3095: 246, 1208: 247, 1941: 248, 2919: 249, 2890: 250, 1293: 251, 1940: 252, 2678: 253, 1093: 254, 1911: 255, 2772: 256, 2546: 257, 2722: 258, 3203: 259, 2881: 260, 2759: 261, 2541: 262, 2336: 263, 2599: 264, 3113: 265, 2575: 266, 2828: 267, 2605: 268, 3408: 269, 2434: 270, 3051: 271, 1259: 272, 3467: 273, 1213: 274, 3159: 275, 2757: 276, 2712: 277, 1950: 278, 1939: 279, 1952: 280, 3526: 281, 2995: 282, 407: 283, 2676: 284, 2690: 285, 2333: 286, 2318: 287, 2719: 288, 3152: 289, 959: 290, 2303: 291, 1288: 292, 2629: 293, 2882: 294, 2713: 295, 3008: 296, 785: 297, 3160: 298, 2392: 299, 2390: 300, 2238: 301, 1953: 302, 3147: 303, 1674: 304, 3354: 305, 2900: 306, 3053: 307, 2734: 308, 2805: 309, 3379: 310, 2439: 311, 296: 312, 949: 313, 968: 314, 1959: 315, 2490: 316, 2574: 317, 2581: 318, 3325: 319, 2502: 320, 2723: 321, 3219: 322, 2901: 323, 3201: 324, 1956: 325, 3424: 326, 2906: 327, 2013: 328, 2598: 329, 299: 330, 3300: 331, 2758: 332, 24: 333, 43: 334, 2093: 335, 2395: 336, 2560: 337, 2686: 338, 1513: 339, 2485: 340, 3273: 341, 2491: 342, 2700: 343, 2841: 344, 3081: 345, 2840: 346, 2672: 347, 2070: 348, 2702: 349, 3176: 350, 2715: 351, 2693: 352, 3114: 353, 1623: 354, 2337: 355, 2701: 356, 2987: 357, 86: 358, 2600: 359, 3125: 360, 3179: 361, 3329: 362, 2010: 363, 461: 364, 1413: 365, 2024: 366, 1198: 367, 745: 368, 720: 369, 1196: 370, 1192: 371, 3149: 372, 1281: 373, 28: 374, 3307: 375, 3224: 376, 3265: 377, 1219: 378, 3128: 379, 2360: 380, 3462: 381, 3030: 382, 1348: 383, 1719: 384, 2075: 385, 541: 386, 2972: 387, 1248: 388, 1007: 389, 902: 390, 898: 391, 25: 392, 3067: 393, 922: 394, 1247: 395, 2859: 396, 2677: 397, 2186: 398, 2609: 399, 1303: 400, 1412: 401, 1104: 402, 2648: 403, 2357: 404, 2628: 405, 1228: 406, 3429: 407, 2732: 408, 1080: 409, 1584: 410, 480: 411, 32: 412, 2046: 413, 1748: 414, 2571: 415, 800: 416, 1214: 417, 3365: 418, 2664: 419, 1909: 420, 1372: 421, 1591: 422, 504: 423, 1653: 424, 2916: 425, 1356: 426, 1580: 427, 1527: 428, 1876: 429, 1396: 430, 971: 431, 2660: 432, 329: 433, 2012: 434, 788: 435, 3156: 436, 2393: 437, 512: 438, 1217: 439, 3075: 440, 3089: 441, 338: 442, 1573: 443, 1690: 444, 1150: 445, 2973: 446, 1603: 447, 1544: 448, 185: 449, 1391: 450, 1831: 451, 1320: 452, 2920: 453, 1885: 454, 1931: 455, 1240: 456, 514: 457, 1779: 458, 2808: 459, 2986: 460, 405: 461, 2053: 462, 1590: 463, 1041: 464, 2020: 465, 1056: 466, 1132: 467, 66: 468, 737: 469, 2448: 470, 256: 471, 1176: 472, 1199: 473, 3447: 474, 176: 475, 1200: 476, 1374: 477, 1657: 478, 3527: 479, 2968: 480, 1375: 481, 1274: 482, 2455: 483, 2985: 484, 1376: 485, 2011: 486, 2613: 487, 2021: 488, 2407: 489, 2105: 490, 2117: 491, 2311: 492, 2140: 493, 1253: 494, 3551: 495, 1234: 496, 3547: 497, 1965: 498, 2641: 499, 2054: 500, 1373: 501, 2364: 502, 2408: 503, 2456: 504, 2642: 505, 1254: 506, 1278: 507, 3090: 508, 3052: 509, 1397: 510, 2730: 511, 2848: 512, 1594: 513, 599: 514, 3361: 515, 3461: 516, 1077: 517, 306: 518, 1185: 519, 3418: 520, 1242: 521, 110: 522, 307: 523, 1874: 524, 1504: 525, 1258: 526, 1957: 527, 2971: 528, 2064: 529, 1243: 530, 1345: 531, 344: 532, 967: 533, 3130: 534, 249: 535, 1280: 536, 778: 537, 1784: 538, 293: 539, 590: 540, 475: 541, 1682: 542, 1179: 543, 2291: 544, 3108: 545, 1264: 546, 373: 547, 194: 548, 337: 549, 358: 550, 454: 551, 1366: 552, 1061: 553, 515: 554, 2366: 555, 961: 556, 3246: 557, 1466: 558, 62: 559, 3386: 560, 3342: 561, 3019: 562, 3426: 563, 1120: 564, 11: 565, 1268: 566, 4: 567, 1735: 568, 230: 569, 805: 570, 3255: 571, 2688: 572, 21: 573, 26: 574, 1727: 575, 280: 576, 3252: 577, 1729: 578, 3155: 579, 509: 580, 1747: 581, 224: 582, 1918: 583, 3435: 584, 2726: 585, 320: 586, 2361: 587, 3364: 588, 1442: 589, 1480: 590, 875: 591, 3334: 592, 1260: 593, 31: 594, 1711: 595, 2441: 596, 2966: 597, 1962: 598, 851: 599, 350: 600, 2002: 601, 695: 602, 1201: 603, 2059: 604, 1183: 605, 2875: 606, 1096: 607, 2288: 608, 921: 609, 1036: 610, 940: 611, 2644: 612, 253: 613, 1586: 614, 605: 615, 1027: 616, 30: 617, 42: 618, 457: 619, 1006: 620, 2908: 621, 766: 622, 1884: 623, 1801: 624, 3257: 625, 3521: 626, 3528: 627, 418: 628, 765: 629, 455: 630, 2431: 631, 1726: 632, 1340: 633, 1966: 634, 2313: 635, 3150: 636, 969: 637, 1797: 638, 3550: 639, 308: 640, 3498: 641, 92: 642, 2412: 643, 169: 644, 1595: 645, 2819: 646, 3198: 647, 2130: 648, 994: 649, 3499: 650, 2529: 651, 2102: 652, 1296: 653, 1: 654, 594: 655, 1301: 656, 1307: 657, 3132: 658, 1354: 659, 735: 660, 1954: 661, 388: 662, 1272: 663, 2302: 664, 2542: 665, 1500: 666, 2947: 667, 2355: 668, 3253: 669, 1923: 670, 1517: 671, 367: 672, 2662: 673, 3018: 674, 2739: 675, 1827: 676, 440: 677, 2124: 678, 500: 679, 1614: 680, 7: 681, 3450: 682, 2108: 683, 2926: 684, 597: 685, 1777: 686, 3263: 687, 708: 688, 236: 689, 539: 690, 216: 691, 1020: 692, 378: 693, 3208: 694, 333: 695, 1713: 696, 5: 697, 830: 698, 2004: 699, 1042: 700, 3098: 701, 3094: 702, 1409: 703, 231: 704, 372: 705, 157: 706, 1582: 707, 1944: 708, 1914: 709, 1367: 710, 2709: 711, 1377: 712, 252: 713, 784: 714, 585: 715, 1379: 716, 3086: 717, 3267: 718, 186: 719, 466: 720, 673: 721, 1702: 722, 1689: 723, 2266: 724, 1806: 725, 355: 726, 537: 727, 3: 728, 1494: 729, 1855: 730, 153: 731, 2387: 732, 1503: 733, 2335: 734, 1646: 735, 818: 736, 1581: 737, 520: 738, 1863: 739, 2016: 740, 1012: 741, 432: 742, 1602: 743, 637: 744, 2036: 745, 1431: 746, 2953: 747, 1760: 748, 1453: 749, 688: 750, 2042: 751, 374: 752, 1005: 753, 437: 754, 2720: 755, 2296: 756, 1839: 757, 429: 758, 1707: 759, 420: 760, 325: 761, 2152: 762, 870: 763, 1731: 764, 3146: 765, 2526: 766, 2670: 767, 2763: 768, 2000: 769, 3104: 770, 2729: 771, 123: 772, 1295: 773, 2329: 774, 2949: 775, 2951: 776, 1222: 777, 2944: 778, 2194: 779, 1127: 780, 733: 781, 3404: 782, 1408: 783, 592: 784, 2353: 785, 1608: 786, 349: 787, 780: 788, 3197: 789, 380: 790, 1676: 791, 292: 792, 2871: 793, 3105: 794, 1273: 795, 151: 796, 3210: 797, 339: 798, 1261: 799, 1171: 800, 1129: 801, 1189: 802, 2512: 803, 1300: 804, 2349: 805, 1090: 806, 1394: 807, 1975: 808, 1960: 809, 3039: 810, 1285: 811, 2348: 812, 2076: 813, 2312: 814, 3070: 815, 2872: 816, 2150: 817, 1246: 818, 3101: 819, 3422: 820, 2750: 821, 1321: 822, 1305: 823, 2852: 824, 2915: 825, 1291: 826, 3552: 827, 3449: 828, 2301: 829, 1663: 830, 2100: 831, 1124: 832, 2463: 833, 2989: 834, 2745: 835, 2286: 836, 2022: 837, 2369: 838, 2802: 839, 3524: 840, 1991: 841, 2134: 842, 2003: 843, 1173: 844, 1587: 845, 2111: 846, 3388: 847, 2089: 848, 680: 849, 2717: 850, 2751: 851, 2794: 852, 3169: 853, 2378: 854, 1289: 855, 1974: 856, 2411: 857, 2410: 858, 2948: 859, 1187: 860, 2553: 861, 2471: 862, 3017: 863, 1091: 864, 2241: 865, 2513: 866, 2402: 867, 2795: 868, 2321: 869, 1846: 870, 2421: 871, 999: 872, 555: 873, 272: 874, 3071: 875, 2160: 876, 2866: 877, 2065: 878, 529: 879, 2085: 880, 714: 881, 3204: 882, 731: 883, 862: 884, 1292: 885, 2467: 886, 1912: 887, 3097: 888, 1297: 889, 3011: 890, 2943: 891, 948: 892, 2104: 893, 596: 894, 628: 895, 441: 896, 1084: 897, 2014: 898, 2620: 899, 2159: 900, 892: 901, 2176: 902, 2687: 903, 3308: 904, 341: 905, 47: 906, 2797: 907, 2611: 908, 2018: 909, 2570: 910, 2427: 911, 2001: 912, 2401: 913, 1350: 914, 2377: 915, 1597: 916, 1673: 917, 551: 918, 840: 919, 2359: 920, 3350: 921, 2287: 922, 3060: 923, 188: 924, 3282: 925, 2118: 926, 1610: 927, 2874: 928, 3494: 929, 1029: 930, 1955: 931, 534: 932, 1907: 933, 1678: 934, 319: 935, 497: 936, 3044: 937, 428: 938, 1332: 939, 943: 940, 39: 941, 2071: 942, 3296: 943, 1921: 944, 1357: 945, 1968: 946, 3501: 947, 2157: 948, 3143: 949, 1013: 950, 1755: 951, 6: 952, 1611: 953, 1393: 954, 2362: 955, 2867: 956, 1082: 957, 2472: 958, 345: 959, 1355: 960, 2237: 961, 1395: 962, 1215: 963, 2048: 964, 3194: 965, 1263: 966, 3015: 967, 474: 968, 1730: 969, 3167: 970, 281: 971, 2109: 972, 2167: 973, 2155: 974, 1994: 975, 2524: 976, 2520: 977, 2877: 978, 3260: 979, 531: 980, 3546: 981, 558: 982, 1206: 983, 1010: 984, 1643: 985, 1546: 986, 728: 987, 342: 988, 3248: 989, 3157: 990, 910: 991, 1256: 992, 671: 993, 3448: 994, 1235: 995, 1238: 996, 1963: 997, 1275: 998, 8: 999, 1162: 1000, 1073: 1001, 361: 1002, 741: 1003, 553: 1004, 1648: 1005, 610: 1006, 29: 1007, 1204: 1008, 2640: 1009, 2116: 1010, 2528: 1011, 316: 1012, 965: 1013, 1249: 1014, 928: 1015, 1371: 1016, 196: 1017, 2183: 1018, 931: 1019, 1344: 1020, 3230: 1021, 3033: 1022, 2403: 1023, 2615: 1024, 2094: 1025, 1333: 1026, 1407: 1027, 2747: 1028, 1917: 1029, 442: 1030, 1037: 1031, 173: 1032, 2178: 1033, 2034: 1034, 1982: 1035, 1343: 1036, 2181: 1037, 1732: 1038, 377: 1039, 519: 1040, 2450: 1041, 546: 1042, 2781: 1043, 905: 1044, 327: 1045, 2517: 1046, 2643: 1047, 2138: 1048, 1032: 1049, 2193: 1050, 3479: 1051, 2: 1052, 2143: 1053, 1967: 1054, 2161: 1055, 2239: 1056, 2243: 1057, 653: 1058, 1126: 1059, 2253: 1060, 3489: 1061, 837: 1062, 3439: 1063, 1172: 1064, 1566: 1065, 2409: 1066, 3584: 1067, 3590: 1068, 3591: 1069, 3529: 1070, 2959: 1071, 2912: 1072, 2829: 1073, 1792: 1074, 2894: 1075, 2334: 1076, 165: 1077, 170: 1078, 1438: 1079, 227: 1080, 1287: 1081, 861: 1082, 465: 1083, 1429: 1084, 1101: 1085, 1370: 1086, 2133: 1087, 2533: 1088, 2363: 1089, 2454: 1090, 2527: 1091, 2657: 1092, 2009: 1093, 3340: 1094, 2346: 1095, 426: 1096, 1334: 1097, 3555: 1098, 1924: 1099, 674: 1100, 10: 1101, 2082: 1102, 1644: 1103, 1353: 1104, 1266: 1105, 2961: 1106, 2724: 1107, 1347: 1108, 2668: 1109, 1128: 1110, 2787: 1111, 2148: 1112, 1970: 1113, 1330: 1114, 1389: 1115, 1972: 1116, 1995: 1117, 1971: 1118, 1983: 1119, 1986: 1120, 1969: 1121, 1326: 1122, 2465: 1123, 2122: 1124, 1988: 1125, 2460: 1126, 1985: 1127, 1978: 1128, 1976: 1129, 1980: 1130, 1987: 1131, 1981: 1132, 1979: 1133, 1977: 1134, 70: 1135, 1645: 1136, 1241: 1137, 3476: 1138, 2617: 1139, 1339: 1140, 3264: 1141, 1717: 1142, 2279: 1143, 724: 1144, 1771: 1145, 2328: 1146, 273: 1147, 532: 1148, 2898: 1149, 2389: 1150, 152: 1151, 1999: 1152, 2107: 1153, 177: 1154, 1342: 1155, 2125: 1156, 3259: 1157, 2443: 1158, 2801: 1159, 1569: 1160, 1059: 1161, 3358: 1162, 543: 1163, 587: 1164, 802: 1165, 105: 1166, 1888: 1167, 2297: 1168, 1722: 1169, 852: 1170, 417: 1171, 468: 1172, 222: 1173, 3046: 1174, 353: 1175, 2424: 1176, 2496: 1177, 266: 1178, 1541: 1179, 1629: 1180, 140: 1181, 1441: 1182, 1821: 1183, 1593: 1184, 691: 1185, 1457: 1186, 237: 1187, 550: 1188, 3269: 1189, 1894: 1190, 736: 1191, 289: 1192, 207: 1193, 447: 1194, 182: 1195, 168: 1196, 195: 1197, 2316: 1198, 3261: 1199, 179: 1200, 499: 1201, 3436: 1202, 1479: 1203, 64: 1204, 2774: 1205, 258: 1206, 15: 1207, 1556: 1208, 427: 1209, 1483: 1210, 1799: 1211, 218: 1212, 3331: 1213, 3405: 1214, 2406: 1215, 2991: 1216, 3107: 1217, 2058: 1218, 648: 1219, 3082: 1220, 3443: 1221, 490: 1222, 3256: 1223, 1047: 1224, 2115: 1225, 3441: 1226, 1552: 1227, 3444: 1228, 2278: 1229, 2006: 1230, 145: 1231, 2990: 1232, 494: 1233, 2476: 1234, 303: 1235, 1385: 1236, 3274: 1237, 1687: 1238, 552: 1239, 434: 1240, 786: 1241, 1488: 1242, 459: 1243, 1833: 1244, 1100: 1245, 1769: 1246, 1616: 1247, 479: 1248, 379: 1249, 2126: 1250, 425: 1251, 1099: 1252, 986: 1253, 535: 1254, 2069: 1255, 1639: 1256, 2474: 1257, 2736: 1258, 3129: 1259, 1226: 1260, 1216: 1261, 803: 1262, 2245: 1263, 2442: 1264, 1625: 1265, 1194: 1266, 3496: 1267, 2025: 1268, 1785: 1269, 71: 1270, 464: 1271, 1810: 1272, 3029: 1273, 571: 1274, 1872: 1275, 2624: 1276, 298: 1277, 476: 1278, 1809: 1279, 2331: 1280, 2114: 1281, 3535: 1282, 3412: 1283, 993: 1284, 485: 1285, 315: 1286, 3397: 1287, 172: 1288, 204: 1289, 44: 1290, 205: 1291, 1642: 1292, 2282: 1293, 1004: 1294, 160: 1295, 694: 1296, 1497: 1297, 1681: 1298, 1794: 1299, 502: 1300, 1626: 1301, 2081: 1302, 2807: 1303, 1465: 1304, 3174: 1305, 183: 1306, 1060: 1307, 125: 1308, 3481: 1309, 2097: 1310, 2268: 1311, 1057: 1312, 2330: 1313, 2077: 1314, 1805: 1315, 493: 1316, 1620: 1317, 1399: 1318, 22: 1319, 1958: 1320, 2697: 1321, 2764: 1322, 3247: 1323, 2561: 1324, 1598: 1325, 762: 1326, 81: 1327, 2294: 1328, 3099: 1329, 3079: 1330, 3112: 1331, 3507: 1332, 3398: 1333, 1017: 1334, 198: 1335, 3518: 1336, 991: 1337, 1177: 1338, 2112: 1339, 2137: 1340, 1633: 1341, 262: 1342, 1897: 1343, 3370: 1344, 1236: 1345, 1788: 1346, 366: 1347, 2144: 1348, 3100: 1349, 3576: 1350, 1286: 1351, 1619: 1352, 1476: 1353, 1427: 1354, 1916: 1355, 574: 1356, 261: 1357, 190: 1358, 241: 1359, 2470: 1360, 1135: 1361, 2419: 1362, 269: 1363, 1650: 1364, 2941: 1365, 1298: 1366, 431: 1367, 1271: 1368, 340: 1369, 2420: 1370, 3251: 1371, 1092: 1372, 1019: 1373, 1858: 1374, 1405: 1375, 3014: 1376, 3281: 1377, 988: 1378, 2231: 1379, 616: 1380, 164: 1381, 2090: 1382, 3395: 1383, 1454: 1384, 1031: 1385, 1049: 1386, 187: 1387, 16: 1388, 2247: 1389, 1518: 1390, 1683: 1391, 1516: 1392, 1913: 1393, 492: 1394, 808: 1395, 1459: 1396, 1449: 1397, 2779: 1398, 2425: 1399, 2262: 1400, 2168: 1401, 1605: 1402, 2518: 1403, 2385: 1404, 3034: 1405, 3272: 1406, 1542: 1407, 1447: 1408, 2173: 1409, 450: 1410, 317: 1411, 410: 1412, 2625: 1413, 700: 1414, 3102: 1415, 3173: 1416, 1365: 1417, 2626: 1418, 2725: 1419, 488: 1420, 707: 1421, 1783: 1422, 748: 1423, 435: 1424, 3032: 1425, 849: 1426, 1306: 1427, 1762: 1428, 2530: 1429, 3024: 1430, 2532: 1431, 3572: 1432, 692: 1433, 2531: 1434, 611: 1435, 3573: 1436, 3401: 1437, 880: 1438, 2091: 1439, 1862: 1440, 3574: 1441, 1588: 1442, 3392: 1443, 2862: 1444, 59: 1445, 2921: 1446, 2032: 1447, 2918: 1448, 3360: 1449, 2371: 1450, 2352: 1451, 1175: 1452, 2203: 1453, 1069: 1454, 3406: 1455, 799: 1456, 524: 1457, 1562: 1458, 381: 1459, 2416: 1460, 3385: 1461, 2752: 1462, 36: 1463, 2860: 1464, 2880: 1465, 112: 1466, 1615: 1467, 577: 1468, 761: 1469, 2322: 1470, 836: 1471, 1744: 1472, 2153: 1473, 2645: 1474, 2761: 1475, 141: 1476, 2748: 1477, 2708: 1478, 3301: 1479, 3512: 1480, 3519: 1481, 954: 1482, 932: 1483, 3341: 1484, 2835: 1485, 3020: 1486, 288: 1487, 996: 1488, 3430: 1489, 95: 1490, 208: 1491, 1382: 1492, 1499: 1493, 60: 1494, 2522: 1495, 2883: 1496, 2711: 1497, 3093: 1498, 1283: 1499, 1209: 1500, 1008: 1501, 2922: 1502, 964: 1503, 368: 1504, 1378: 1505, 2478: 1506, 416: 1507, 3000: 1508, 2993: 1509, 163: 1510, 2344: 1511, 1772: 1512, 2367: 1513, 2475: 1514, 2735: 1515, 2616: 1516, 2468: 1517, 462: 1518, 1606: 1519, 1262: 1520, 2970: 1521, 314: 1522, 3168: 1523, 3153: 1524, 2135: 1525, 2822: 1526, 158: 1527, 1085: 1528, 2405: 1529, 2088: 1530, 2043: 1531, 2950: 1532, 595: 1533, 1526: 1534, 1033: 1535, 1025: 1536, 2936: 1537, 2015: 1538, 586: 1539, 2098: 1540, 1016: 1541, 3503: 1542, 2204: 1543, 3419: 1544, 2511: 1545, 2917: 1546, 2110: 1547, 1791: 1548, 2023: 1549, 3083: 1550, 3384: 1551, 1147: 1552, 2937: 1553, 2248: 1554, 495: 1555, 946: 1556, 2996: 1557, 1948: 1558, 2721: 1559, 2907: 1560, 978: 1561, 2057: 1562, 936: 1563, 1035: 1564, 52: 1565, 2283: 1566, 382: 1567, 481: 1568, 3061: 1569, 2618: 1570, 248: 1571, 2836: 1572, 2766: 1573, 489: 1574, 2718: 1575, 413: 1576, 3244: 1577, 2844: 1578, 2704: 1579, 937: 1580, 3118: 1581, 828: 1582, 1996: 1583, 953: 1584, 2383: 1585, 639: 1586, 3491: 1587, 1845: 1588, 2290: 1589, 2696: 1590, 2136: 1591, 156: 1592, 3451: 1593, 2261: 1594, 838: 1595, 2145: 1596, 2295: 1597, 3087: 1598, 1485: 1599, 3506: 1600, 3497: 1601, 2539: 1602, 2870: 1603, 2567: 1604, 2356: 1605, 3120: 1606, 371: 1607, 2558: 1608, 2469: 1609, 2780: 1610, 2372: 1611, 2072: 1612, 2793: 1613, 1440: 1614, 3045: 1615, 2796: 1616, 2374: 1617, 2375: 1618, 2413: 1619, 1474: 1620, 1461: 1621, 3343: 1622, 2891: 1623, 305: 1624, 2259: 1625, 2473: 1626, 19: 1627, 1381: 1628, 419: 1629, 3074: 1630, 2621: 1631, 2398: 1632, 1892: 1633, 73: 1634, 1545: 1635, 1997: 1636, 1873: 1637, 1693: 1638, 2154: 1639, 832: 1640, 114: 1641, 225: 1642, 2269: 1643, 89: 1644, 233: 1645, 1835: 1646, 1290: 1647, 2340: 1648, 3073: 1649, 1666: 1650, 1043: 1651, 2292: 1652, 565: 1653, 842: 1654, 2784: 1655, 879: 1656, 742: 1657, 1130: 1658, 2554: 1659, 2782: 1660, 1341: 1661, 328: 1662, 330: 1663, 1327: 1664, 2519: 1665, 2459: 1666, 220: 1667, 1346: 1668, 2121: 1669, 2149: 1670, 1388: 1671, 2451: 1672, 2338: 1673, 2113: 1674, 2163: 1675, 2119: 1676, 2430: 1677, 3036: 1678, 2370: 1679, 3345: 1680, 2537: 1681, 2851: 1682, 3062: 1683, 2273: 1684, 517: 1685, 3165: 1686, 1752: 1687, 2741: 1688, 20: 1689, 2276: 1690, 3442: 1691, 2506: 1692, 351: 1693, 46: 1694, 362: 1695, 2120: 1696, 2327: 1697, 2789: 1698, 2655: 1699, 1984: 1700, 2902: 1701, 1329: 1702, 2092: 1703, 2005: 1704, 2252: 1705, 2139: 1706, 2033: 1707, 2123: 1708, 1881: 1709, 1030: 1710, 1190: 1711, 678: 1712, 1635: 1713, 1095: 1714, 412: 1715, 1411: 1716, 1302: 1717, 3371: 1718, 1935: 1719, 2577: 1720, 1651: 1721, 1507: 1722, 2166: 1723, 1178: 1724, 2162: 1725, 3389: 1726, 2373: 1727, 501: 1728, 3317: 1729, 3262: 1730, 3538: 1731, 1227: 1732, 2792: 1733, 3206: 1734, 85: 1735, 2284: 1736, 2488: 1737, 662: 1738, 2551: 1739, 229: 1740, 2803: 1741, 259: 1742, 1184: 1743, 1425: 1744, 180: 1745, 104: 1746, 542: 1747, 719: 1748, 1410: 1749, 2423: 1750, 2066: 1751, 746: 1752, 2940: 1753, 1009: 1754, 2550: 1755, 2788: 1756, 2457: 1757, 386: 1758, 2525: 1759, 304: 1760, 3238: 1761, 3040: 1762, 1218: 1763, 3452: 1764, 69: 1765, 88: 1766, 433: 1767, 1390: 1768, 513: 1769, 2587: 1770, 3186: 1771, 376: 1772, 387: 1773, 886: 1774, 1672: 1775, 2815: 1776, 2404: 1777, 3225: 1778, 3440: 1779, 3416: 1780, 80: 1781, 668: 1782, 363: 1783, 2041: 1784, 2188: 1785, 2861: 1786, 3513: 1787, 1361: 1788, 3338: 1789, 3004: 1790, 3588: 1791, 2885: 1792, 3374: 1793, 55: 1794, 3459: 1795, 3534: 1796, 3502: 1797, 3500: 1798, 1224: 1799, 1202: 1800, 2397: 1801, 3138: 1802, 2738: 1803, 2749: 1804, 2417: 1805, 2418: 1806, 2942: 1807, 1251: 1808, 3076: 1809, 154: 1810, 1362: 1811, 2925: 1812, 3135: 1813, 3283: 1814, 3420: 1815, 2932: 1816, 2535: 1817, 3428: 1818, 2051: 1819, 2394: 1820, 3536: 1821, 3484: 1822, 1547: 1823, 1487: 1824, 3250: 1825, 2250: 1826, 3477: 1827, 1895: 1828, 3478: 1829, 3480: 1830, 3466: 1831, 2240: 1832, 1583: 1833, 1848: 1834, 1920: 1835, 1750: 1836, 491: 1837, 2432: 1838, 1515: 1839, 159: 1840, 1699: 1841, 2437: 1842, 507: 1843, 929: 1844, 506: 1845, 14: 1846, 3366: 1847, 1103: 1848, 3066: 1849, 2232: 1850, 2800: 1851, 1856: 1852, 161: 1853, 2078: 1854, 1279: 1855, 1401: 1856, 144: 1857, 518: 1858, 3284: 1859, 647: 1860, 2440: 1861, 848: 1862, 1186: 1863, 2399: 1864, 3189: 1865, 2170: 1866, 1359: 1867, 2665: 1868, 423: 1869, 2314: 1870, 1667: 1871, 2928: 1872, 1422: 1873, 2306: 1874, 2445: 1875, 2180: 1876, 743: 1877, 533: 1878, 445: 1879, 13: 1880, 2505: 1881, 801: 1882, 365: 1883, 1627: 1884, 2429: 1885, 540: 1886, 575: 1887, 2498: 1888, 370: 1889, 1417: 1890, 2052: 1891, 1665: 1892, 2977: 1893, 2354: 1894, 3387: 1895, 415: 1896, 191: 1897, 2521: 1898, 87: 1899, 2974: 1900, 2566: 1901, 1445: 1902, 3054: 1903, 747: 1904, 2386: 1905, 2612: 1906, 1942: 1907, 3347: 1908, 973: 1909, 917: 1910, 3163: 1911, 1946: 1912, 82: 1913, 2969: 1914, 444: 1915, 3327: 1916, 3182: 1917, 2846: 1918, 2905: 1919, 3134: 1920, 3091: 1921, 3096: 1922, 670: 1923, 2935: 1924, 2731: 1925, 681: 1926, 1927: 1927, 1131: 1928, 2210: 1929, 2202: 1930, 934: 1931, 976: 1932, 897: 1933, 3304: 1934, 1277: 1935, 2068: 1936, 1064: 1937, 2929: 1938, 2184: 1939, 2212: 1940, 941: 1941, 3047: 1942, 1840: 1943, 970: 1944, 2040: 1945, 2379: 1946, 3310: 1947, 12: 1948, 3368: 1949, 1609: 1950, 3475: 1951, 982: 1952, 1245: 1953, 1933: 1954, 944: 1955, 3110: 1956, 2495: 1957, 3585: 1958, 2633: 1959, 171: 1960, 3249: 1961, 2060: 1962, 309: 1963, 581: 1964, 1932: 1965, 277: 1966, 147: 1967, 564: 1968, 1589: 1969, 1034: 1970, 2927: 1971, 41: 1972, 523: 1973, 1660: 1974, 538: 1975, 2171: 1976, 846: 1977, 645: 1978, 1624: 1979, 322: 1980, 57: 1981, 271: 1982, 1836: 1983, 35: 1984, 1841: 1985, 1051: 1986, 1816: 1987, 408: 1988, 580: 1989, 94: 1990, 1943: 1991, 632: 1992, 718: 1993, 3115: 1994, 63: 1995, 2967: 1996, 3557: 1997, 3010: 1998, 1759: 1999, 2351: 2000, 2310: 2001, 1053: 2002, 2345: 2003, 621: 2004, 1023: 2005, 1844: 2006, 2820: 2007, 97: 2008, 3078: 2009, 1701: 2010, 2192: 2011, 72: 2012, 1829: 2013, 3211: 2014, 2976: 2015, 1596: 2016, 3158: 2017, 2479: 2018, 3298: 2019, 2285: 2020, 2590: 2021, 3188: 2022, 2661: 2023, 2422: 2024, 2884: 2025, 2106: 2026, 383: 2027, 1472: 2028, 2956: 2029, 1804: 2030, 521: 2031, 3409: 2032, 3266: 2033, 1523: 2034, 1743: 2035, 1310: 2036, 2689: 2037, 77: 2038, 297: 2039, 3178: 2040, 3335: 2041, 2265: 2042, 2141: 2043, 101: 2044, 1257: 2045, 663: 2046, 2500: 2047, 2249: 2048, 2447: 2049, 3243: 2050, 3254: 2051, 3544: 2052, 166: 2053, 65: 2054, 2381: 2055, 2380: 2056, 3391: 2057, 3495: 2058, 1112: 2059, 893: 2060, 1563: 2061, 175: 2062, 3437: 2063, 2435: 2064, 697: 2065, 2037: 2066, 2806: 2067, 1866: 2068, 925: 2069, 2101: 2070, 2267: 2071, 1464: 2072, 451: 2073, 2583: 2074, 335: 2075, 1754: 2076, 257: 2077, 360: 2078, 1498: 2079, 2062: 2080, 2497: 2081, 1463: 2082, 804: 2083, 1475: 2084, 2597: 2085, 270: 2086, 276: 2087, 2586: 2088, 1675: 2089, 482: 2090, 422: 2091, 2320: 2092, 554: 2093, 1003: 2094, 2326: 2095, 990: 2096, 132: 2097, 79: 2098, 640: 2099, 3516: 2100, 3600: 2101, 3564: 2102, 3602: 2103, 3604: 2104, 3520: 2105, 3605: 2106, 3608: 2107, 3610: 2108, 3457: 2109, 2156: 2110, 3200: 2111, 1937: 2112, 1414: 2113, 635: 2114, 2436: 2115, 516: 2116, 1021: 2117, 1113: 2118, 1621: 2119, 1688: 2120, 1919: 2121, 1018: 2122, 3355: 2123, 1161: 2124, 3399: 2125, 1205: 2126, 239: 2127, 2924: 2128, 2275: 2129, 704: 2130, 393: 2131, 3213: 2132, 2084: 2133, 1739: 2134, 1973: 2135, 126: 2136, 3433: 2137, 3434: 2138, 3258: 2139, 2733: 2140, 1167: 2141, 203: 2142, 234: 2143, 193: 2144, 3390: 2145, 3349: 2146, 76: 2147, 3614: 2148, 1746: 2149, 1936: 2150, 3587: 2151, 2073: 2152, 2669: 2153, 3525: 2154, 725: 2155, 3217: 2156, 2647: 2157, 3486: 2158, 2667: 2159, 3375: 2160, 242: 2161, 1925: 2162, 2939: 2163, 1684: 2164, 1468: 2165, 613: 2166, 84: 2167, 206: 2168, 1255: 2169, 2636: 2170, 2579: 2171, 511: 2172, 559: 2173, 2293: 2174, 556: 2175, 2536: 2176, 2649: 2177, 103: 2178, 2663: 2179, 332: 2180, 3488: 2181, 2656: 2182, 2637: 2183, 2638: 2184, 2634: 2185, 2646: 2186, 2814: 2187, 2652: 2188, 2654: 2189, 1337: 2190, 2651: 2191, 841: 2192, 2568: 2193, 2260: 2194, 3007: 2195, 3271: 2196, 1105: 2197, 3069: 2198, 1421: 2199, 2988: 2200, 835: 2201, 2573: 2202, 2493: 2203, 3565: 2204, 612: 2205, 1456: 2206, 122: 2207, 1599: 2208, 2582: 2209, 2368: 2210, 2783: 2211, 1331: 2212, 2740: 2213, 1655: 2214, 2868: 2215, 2790: 2216, 606: 2217, 3598: 2218, 3606: 2219, 3559: 2220, 3415: 2221, 3311: 2222, 3456: 2223, 1046: 2224, 1406: 2225, 214: 2226, 334: 2227, 1116: 2228, 1901: 2229, 3142: 2230, 1875: 2231, 2365: 2232, 2029: 2233, 2865: 2234, 1535: 2235, 414: 2236, 569: 2237, 3372: 2238, 2540: 2239, 547: 2240, 1067: 2241, 3324: 2242, 3103: 2243, 291: 2244, 3593: 2245, 421: 2246, 2453: 2247, 3145: 2248, 3038: 2249, 3533: 2250, 615: 2251, 3532: 2252, 240: 2253, 956: 2254, 2653: 2255, 2131: 2256, 2983: 2257, 1076: 2258, 2650: 2259, 927: 2260, 962: 2261, 775: 2262, 2847: 2263, 1160: 2264, 347: 2265, 2682: 2266, 1024: 2267, 2753: 2268, 3275: 2269, 2195: 2270, 456: 2271, 1511: 2272, 1446: 2273, 1733: 2274, 3106: 2275, 3328: 2276, 2246: 2277, 3221: 2278, 3571: 2279, 3570: 2280, 389: 2281, 1324: 2282, 2315: 2283, 2516: 2284, 352: 2285, 324: 2286, 1612: 2287, 1904: 2288, 2007: 2289, 570: 2290, 3049: 2291, 452: 2292, 2236: 2293, 829: 2294, 1613: 2295, 477: 2296, 268: 2297, 409: 2298, 215: 2299, 806: 2300, 2639: 2301, 1670: 2302, 1753: 2303, 3339: 2304, 2893: 2305, 2607: 2306, 3465: 2307, 2888: 2308, 184: 2309, 2978: 2310, 881: 2311, 1854: 2312, 135: 2313, 1000: 2314, 813: 2315, 312: 2316, 278: 2317, 3031: 2318, 833: 2319, 473: 2320, 472: 2321, 438: 2322, 2317: 2323, 2027: 2324, 275: 2325, 1604: 2326, 1550: 2327, 2992: 2328, 3013: 2329, 1998: 2330, 2903: 2331, 2878: 2332, 3021: 2333, 3490: 2334, 1989: 2335, 3487: 2336, 1068: 2337, 2187: 2338, 3316: 2339, 3445: 2340, 2242: 2341, 3577: 2342, 3510: 2343, 3041: 2344, 458: 2345, 3431: 2346, 3432: 2347, 2896: 2348, 487: 2349, 2055: 2350, 3427: 2351, 2458: 2352, 809: 2353, 2606: 2354, 3077: 2355, 121: 2356, 3402: 2357, 1865: 2358, 1123: 2359, 2659: 2360, 2182: 2361, 2017: 2362, 1571: 2363, 2099: 2364, 3199: 2365, 3414: 2366, 2263: 2367, 3235: 2368, 116: 2369, 2585: 2370, 709: 2371, 3393: 2372, 2151: 2373, 1647: 2374, 798: 2375, 2594: 2376, 2507: 2377, 781: 2378, 2281: 2379, 1352: 2380, 869: 2381, 210: 2382, 650: 2383, 2272: 2384, 9: 2385, 467: 2386, 189: 2387, 3425: 2388, 1703: 2389, 1900: 2390, 1812: 2391, 1585: 2392, 525: 2393, 1857: 2394, 505: 2395, 267: 2396, 2610: 2397, 2798: 2398, 449: 2399, 984: 2400, 3394: 2401, 2879: 2402, 711: 2403, 217: 2404, 3042: 2405, 1692: 2406, 2483: 2407, 1432: 2408, 3268: 2409, 2714: 2410, 1450: 2411, 2562: 2412, 2856: 2413, 2744: 2414, 1640: 2415, 957: 2416, 1152: 2417, 181: 2418, 1495: 2419, 1720: 2420, 667: 2421, 2817: 2422, 839: 2423, 2899: 2424, 1011: 2425, 2050: 2426, 2142: 2427, 631: 2428, 1654: 2429, 2079: 2430, 2035: 2431, 960: 2432, 2205: 2433, 2589: 2434, 255: 2435, 2549: 2436, 2952: 2437, 3423: 2438, 2264: 2439, 3141: 2440, 2515: 2441, 2982: 2442, 2452: 2443, 1992: 2444, 2462: 2445, 1993: 2446, 891: 2447, 3367: 2448, 2816: 2449, 627: 2450, 1929: 2451, 2938: 2452, 1477: 2453, 1460: 2454, 2962: 2455, 3292: 2456, 2773: 2457, 3622: 2458, 769: 2459, 1758: 2460, 484: 2461, 2045: 2462, 888: 2463, 3144: 2464, 2695: 2465, 3492: 2466, 238: 2467, 3578: 2468, 3509: 2469, 3286: 2470, 96: 2471, 3137: 2472, 1015: 2473, 1317: 2474, 1398: 2475, 2382: 2476, 1322: 2477, 2892: 2478, 2255: 2479, 2095: 2480, 3043: 2481, 807: 2482, 987: 2483, 1600: 2484, 3232: 2485, 2044: 2486, 1837: 2487, 710: 2488, 470: 2489, 102: 2490, 321: 2491, 1695: 2492, 3556: 2493, 3012: 2494, 1896: 2495, 3417: 2496, 2776: 2497, 2630: 2498, 1428: 2499, 3620: 2500, 2177: 2501, 2523: 2502, 1363: 2503, 1496: 2504, 3299: 2505, 1631: 2506, 1669: 2507, 302: 2508, 131: 2509, 1482: 2510, 3287: 2511, 3483: 2512, 544: 2513, 548: 2514, 2889: 2515, 1898: 2516, 201: 2517, 463: 2518, 2504: 2519, 3403: 2520, 3579: 2521, 3554: 2522, 3617: 2523, 3618: 2524, 3596: 2525, 3580: 2526, 3537: 2527, 3597: 2528, 3619: 2529, 3326: 2530, 2169: 2531, 1826: 2532, 1677: 2533, 2350: 2534, 2681: 2535, 2767: 2536, 2691: 2537, 3048: 2538, 2786: 2539, 2257: 2540, 2799: 2541, 2756: 2542, 3223: 2543, 83: 2544, 1484: 2545, 2853: 2546, 1860: 2547, 3214: 2548, 536: 2549, 3109: 2550, 23: 2551, 1906: 2552, 3218: 2553, 2965: 2554, 3613: 2555, 37: 2556, 1564: 2557, 638: 2558, 74: 2559, 301: 2560, 469: 2561, 1632: 2562, 779: 2563, 2165: 2564, 685: 2565, 2548: 2566, 1668: 2567, 2426: 2568, 3063: 2569, 3599: 2570, 61: 2571, 436: 2572, 1658: 2573, 18: 2574, 209: 2575, 93: 2576, 2809: 2577, 567: 2578, 2727: 2579, 1154: 2580, 854: 2581, 850: 2582, 669: 2583, 1351: 2584, 263: 2585, 3531: 2586, 2849: 2587, 1050: 2588, 563: 2589, 715: 2590, 343: 2591, 3539: 2592, 2305: 2593, 155: 2594, 3562: 2595, 782: 2596, 3586: 2597, 390: 2598, 3313: 2599, 211: 2600, 1404: 2601, 254: 2602, 78: 2603, 882: 2604, 424: 2605, 1044: 2606, 346: 2607, 1473: 2608, 2482: 2609, 3306: 2610, 2596: 2611, 528: 2612, 3309: 2613, 2196: 2614, 1869: 2615, 3563: 2616, 1867: 2617, 2307: 2618, 1853: 2619, 2128: 2620, 2325: 2621, 1592: 2622, 486: 2623, 656: 2624, 1679: 2625, 1439: 2626, 867: 2627, 453: 2628, 174: 2629, 2552: 2630, 810: 2631, 1798: 2632, 118: 2633, 331: 2634, 2190: 2635, 3127: 2636, 2449: 2637, 2876: 2638, 885: 2639, 2280: 2640, 716: 2641, 478: 2642, 1436: 2643, 626: 2644, 243: 2645, 3511: 2646, 2494: 2647, 618: 2648, 1661: 2649, 1686: 2650, 391: 2651, 998: 2652, 1662: 2653, 1824: 2654, 732: 2655, 2812: 2656, 1532: 2657, 283: 2658, 1601: 2659, 2271: 2660, 510: 2661, 2201: 2662, 100: 2663, 3553: 2664, 3566: 2665, 1870: 2666, 443: 2667, 3357: 2668, 3319: 2669, 3185: 2670, 1910: 2671, 2810: 2672, 2047: 2673, 336: 2674, 3639: 2675, 3634: 2676, 764: 2677, 197: 2678, 503: 2679, 633: 2680, 68: 2681, 1328: 2682, 1325: 2683, 2461: 2684, 1191: 2685, 294: 2686, 2341: 2687, 1767: 2688, 498: 2689, 703: 2690, 354: 2691, 167: 2692, 522: 2693, 27: 2694, 2400: 2695, 2256: 2696, 3344: 2697, 3026: 2698, 3638: 2699, 3633: 2700, 3635: 2701, 2614: 2702, 760: 2703, 1323: 2704, 202: 2705, 896: 2706, 2514: 2707, 1335: 2708, 2347: 2709, 2818: 2710, 3464: 2711, 1232: 2712, 2026: 2713, 3624: 2714, 2031: 2715, 3177: 2716, 3643: 2717, 3628: 2718, 3514: 2719, 1038: 2720, 3515: 2721, 3446: 2722, 3027: 2723, 3629: 2724, 3645: 2725, 1119: 2726, 483: 2727, 3594: 2728, 1525: 2729, 1756: 2730, 1990: 2731, 2754: 2732, 3453: 2733, 2049: 2734, 3181: 2735, 3470: 2736, 3636: 2737, 3644: 2738, 1822: 2739, 1426: 2740, 1164: 2741, 1902: 2742, 3240: 2743, 3623: 2744, 2323: 2745, 1349: 2746, 1336: 2747, 3241: 2748, 2833: 2749, 3117: 2750, 1151: 2751, 2008: 2752, 1087: 2753, 2886: 2754, 2737: 2755, 3474: 2756, 1180: 2757, 847: 2758, 997: 2759, 2679: 2760, 3122: 2761, 1928: 2762, 2981: 2763, 2984: 2764, 1849: 2765, 876: 2766, 1117: 2767, 1671: 2768, 1508: 2769, 1114: 2770, 1501: 2771, 53: 2772, 313: 2773, 3612: 2774, 2834: 2775, 38: 2776, 3190: 2777, 2499: 2778, 3668: 2779, 3615: 2780, 2674: 2781, 3684: 2782, 3671: 2783, 3683: 2784, 274: 2785, 117: 2786, 228: 2787, 99: 2788, 75: 2789, 3712: 2790, 3676: 2791, 128: 2792, 3704: 2793, 3702: 2794, 2446: 2795, 3649: 2796, 3697: 2797, 3706: 2798, 3681: 2799, 3654: 2800, 3686: 2801, 3708: 2802, 3703: 2803, 3688: 2804, 3685: 2805, 3698: 2806, 3700: 2807, 2342: 2808, 392: 2809, 3682: 2810, 3701: 2811, 3637: 2812, 3690: 2813, 3689: 2814, 2593: 2815, 583: 2816, 3699: 2817, 3707: 2818, 3675: 2819, 3693: 2820, 2843: 2821, 3320: 2822, 2897: 2823, 1889: 2824, 3711: 2825, 2086: 2826, 1121: 2827, 1169: 2828, 1313: 2829, 3567: 2830, 3581: 2831, 1770: 2832, 1782: 2833, 359: 2834, 1514: 2835, 3660: 2836, 3627: 2837, 3653: 2838, 3705: 2839, 3669: 2840, 3207: 2841, 753: 2842, 1415: 2843, 3632: 2844, 3713: 2845, 3678: 2846, 2831: 2847, 2945: 2848, 3677: 2849, 568: 2850, 3672: 2851, 369: 2852, 602: 2853, 219: 2854, 137: 2855, 136: 2856, 2103: 2857, 56: 2858, 146: 2859, 54: 2860, 2559: 2861, 90: 2862, 603: 2863, 877: 2864, 566: 2865, 771: 2866, 1749: 2867, 3473: 2868, 617: 2869, 406: 2870, 1420: 2871, 3680: 2872, 3674: 2873, 113: 2874, 3661: 2875, 3673: 2876, 2904: 2877, 3092: 2878, 2215: 2879, 1054: 2880, 3691: 2881, 250: 2882, 3055: 2883, 3679: 2884, 1656: 2885, 3692: 2886, 2339: 2887, 3715: 2888, 385: 2889, 2211: 2890, 974: 2891, 3139: 2892, 958: 2893, 3171: 2894, 755: 2895, 3215: 2896, 3670: 2897, 3710: 2898, 3740: 2899, 3730: 2900, 3724: 2901, 3731: 2902, 3732: 2903, 3716: 2904, 3733: 2905, 3734: 2906, 3735: 2907, 3729: 2908, 3738: 2909, 2209: 2910, 1903: 2911, 2227: 2912, 2221: 2913, 2185: 2914, 1728: 2915, 264: 2916, 1533: 2917, 3742: 2918, 3723: 2919, 3664: 2920, 3663: 2921, 3709: 2922, 106: 2923, 1696: 2924, 824: 2925, 3728: 2926, 619: 2927, 40: 2928, 2994: 2929, 3741: 2930, 1922: 2931, 1458: 2932, 3658: 2933, 384: 2934, 1423: 2935, 2627: 2936, 831: 2937, 3400: 2938, 2785: 2939, 3736: 2940, 1814: 2941, 2244: 2942, 1486: 2943, 375: 2944, 2755: 2945, 1715: 2946, 992: 2947, 2074: 2948, 2632: 2949, 1489: 2950, 3454: 2951, 1725: 2952, 1551: 2953, 3694: 2954, 3646: 2955, 609: 2956, 244: 2957, 722: 2958, 3714: 2959, 3665: 2960, 3662: 2961, 1063: 2962, 3648: 2963, 3659: 2964, 3696: 2965, 939: 2966, 3727: 2967, 3626: 2968, 1437: 2969, 811: 2970, 2778: 2971, 3725: 2972, 754: 2973, 2477: 2974, 1887: 2975, 411: 2976, 1055: 2977, 2191: 2978, 3717: 2979, 3667: 2980, 1534: 2981, 1817: 2982, 705: 2983, 3655: 2984, 1531: 2985, 3744: 2986, 2850: 2987, 2207: 2988, 2197: 2989, 2481: 2990, 1455: 2991, 1071: 2992, 1549: 2993, 2933: 2994, 3726: 2995, 2813: 2996, 3739: 2997, 1893: 2998, 2298: 2999, 1859: 3000, 1509: 3001, 3540: 3002, 3657: 3003, 3640: 3004, 863: 3005, 3719: 3006, 2837: 3007, 1879: 3008, 3124: 3009, 3302: 3010, 1567: 3011, 793: 3012, 3745: 3013, 1502: 3014, 3652: 3015, 119: 3016, 3754: 3017, 3763: 3018, 3746: 3019, 496: 3020, 310: 3021, 2824: 3022, 1864: 3023, 3751: 3024, 3303: 3025, 3753: 3026, 3764: 3027, 1170: 3028, 3782: 3029, 3781: 3030, 3771: 3031, 3766: 3032, 3773: 3033, 149: 3034, 3760: 3035, 665: 3036, 3770: 3037, 3758: 3038, 2855: 3039, 3743: 3040, 3769: 3041, 3183: 3042, 2158: 3043, 1793: 3044, 1153: 3045, 3642: 3046, 3737: 3047, 3025: 3048, 3768: 3049, 2534: 3050, 2332: 3051, 3780: 3052, 394: 3053, 2486: 3054, 1807: 3055, 2175: 3056, 2509: 3057, 3116: 3058, 600: 3059, 3774: 3060, 3463: 3061, 2864: 3062, 3752: 3063, 3791: 3064, 3784: 3065, 2914: 3066, 3788: 3067, 3767: 3068, 3695: 3069, 1538: 3070, 3789: 3071, 3755: 3072, 3792: 3073, 2200: 3074, 526: 3075, 1144: 3076, 3239: 3077, 1026: 3078, 1899: 3079, 2056: 3080, 1384: 3081, 3720: 3082, 1369: 3083, 3333: 3084, 698: 3085, 3718: 3086, 3765: 3087, 3747: 3088, 3775: 3089, 3778: 3090, 2179: 3091, 2964: 3092, 864: 3093, 3569: 3094, 1574: 3095, 430: 3096, 3064: 3097, 251: 3098, 2963: 3099, 598: 3100, 3783: 3101, 1718: 3102, 3759: 3103, 2979: 3104, 1490: 3105, 1311: 3106, 3050: 3107, 659: 3108, 1565: 3109, 2219: 3110, 2775: 3111, 3002: 3112, 3776: 3113, 178: 3114, 1002: 3115, 1850: 3116, 1493: 3117, 3058: 3118, 49: 3119, 3276: 3120, 3785: 3121, 3346: 3122, 2854: 3123, 3757: 3124, 3761: 3125, 2675: 3126, 3192: 3127, 2304: 3128, 1880: 3129, 2931: 3130, 3222: 3131, 2658: 3132, 561: 3133, 2544: 3134, 1926: 3135, 1539: 3136, 3180: 3137, 1575: 3138, 560: 3139, 2930: 3140, 1433: 3141, 200: 3142, 1741: 3143, 664: 3144, 2569: 3145, 966: 3146, 1890: 3147, 3721: 3148, 1825: 3149, 279: 3150, 2234: 3151, 2164: 3152, 1572: 3153, 1174: 3154, 1312: 3155, 1181: 3156, 2444: 3157, 726: 3158, 124: 3159, 3812: 3160, 3806: 3161, 3814: 3162, 3809: 3163, 3811: 3164, 3819: 3165, 108: 3166, 3813: 3167, 3802: 3168, 3799: 3169, 3121: 3170, 3801: 3171, 3810: 3172, 1878: 3173, 3807: 3174, 2873: 3175, 3804: 3176, 3818: 3177, 1163: 3178, 3817: 3179, 3793: 3180, 1520: 3181, 3790: 3182, 3787: 3183, 1664: 3184, 3795: 3185, 2129: 3186, 1519: 3187, 860: 3188, 3749: 3189, 2839: 3190, 287: 3191, 844: 3192, 2063: 3193, 3166: 3194, 3003: 3195, 3803: 3196, 3616: 3197, 3798: 3198, 751: 3199, 3318: 3200, 3808: 3201, 397: 3202, 2189: 3203, 3794: 3204, 3805: 3205, 3797: 3206, 1570: 3207, 3841: 3208, 3786: 3209, 3832: 3210, 3834: 3211, 3835: 3212, 3836: 3213, 3844: 3214, 3840: 3215, 3846: 3216, 1659: 3217, 3849: 3218, 2666: 3219, 3845: 3220, 3831: 3221, 3822: 3222, 3796: 3223, 3777: 3224, 2466: 3225, 3843: 3226, 3821: 3227, 3837: 3228, 3839: 3229, 3827: 3230, 3820: 3231, 2760: 3232, 2635: 3233, 2777: 3234, 3816: 3235, 3641: 3236, 3847: 3237, 3838: 3238, 2923: 3239, 3351: 3240, 3833: 3241, 3848: 3242, 2743: 3243, 1138: 3244, 1168: 3245, 1529: 3246, 3825: 3247, 874: 3248, 3850: 3249, 1811: 3250, 972: 3251, 2913: 3252, 1780: 3253, 767: 3254, 2487: 3255, 3611: 3256, 1891: 3257, 2608: 3258, 1522: 3259, 3826: 3260, 3161: 3261, 2998: 3262, 3293: 3263, 652: 3264, 148: 3265, 3824: 3266, 3864: 3267, 3859: 3268, 3861: 3269, 295: 3270, 3056: 3271, 3823: 3272, 3625: 3273, 980: 3274, 2934: 3275, 3866: 3276, 2673: 3277, 3140: 3278, 3592: 3279, 460: 3280, 1685: 3281, 3869: 3282, 3873: 3283, 3858: 3284, 3877: 3285, 3410: 3286, 2388: 3287, 3868: 3288, 3872: 3289, 2830: 3290, 1383: 3291, 3870: 3292, 1098: 3293, 3871: 3294, 3860: 3295, 2705: 3296, 3875: 3297, 3666: 3298, 2415: 3299, 3857: 3300, 2557: 3301, 3523: 3302, 3863: 3303, 815: 3304, 3830: 3305, 3884: 3306, 3852: 3307, 3880: 3308, 2233: 3309, 3874: 3310, 3878: 3311, 3886: 3312, 129: 3313, 2602: 3314, 3879: 3315, 3882: 3316, 630: 3317, 3001: 3318, 3851: 3319, 2911: 3320, 245: 3321, 3855: 3322, 3867: 3323, 3865: 3324, 3853: 3325, 2765: 3326, 2631: 3327, 1444: 3328, 3568: 3329, 614: 3330, 1058: 3331, 3897: 3332, 3893: 3333, 3889: 3334, 3925: 3335, 3936: 3336, 3942: 3337, 3941: 3338, 3940: 3339, 3939: 3340, 3938: 3341, 3937: 3342, 3927: 3343, 3926: 3344, 3908: 3345, 3917: 3346, 3918: 3347, 3921: 3348, 3922: 3349, 3919: 3350, 3930: 3351, 3901: 3352, 3920: 3353, 3903: 3354, 3895: 3355, 3910: 3356, 3915: 3357, 3932: 3358, 3929: 3359, 3896: 3360, 3898: 3361, 212: 3362, 3928: 3363, 3923: 3364, 3931: 3365, 3909: 3366, 3916: 3367, 2538: 3368, 3911: 3369, 3894: 3370, 3914: 3371, 3948: 3372, 3883: 3373, 3947: 3374, 3885: 3375, 3913: 3376, 2768: 3377, 3162: 3378, 3952: 3379, 2545: 3380, 3924: 3381, 3946: 3382, 1796: 3383, 3934: 3384, 3945: 3385, 3943: 3386, 3854: 3387, 3935: 3388, 3933: 3389, 2769: 3390, 3949: 3391, 2464: 3392, 3902: 3393, 3950: 3394, 3944: 3395, 3891: 3396, 3900: 3397, 3154: 3398, 3951: 3399, 3184: 3400, 2061: 3401, 98: 3402, 3912: 3403, 3906: 3404, 3892: 3405, 1040: 3406, 1543: 3407, 1622: 3408, 1636: 3409, 1471: 3410}} {'item_id': {0: 858, 1: 593, 2: 2384, 3: 2019, 4: 1961, 5: 1419, 6: 3111, 7: 573, 8: 213, 9: 3505, 10: 1734, 11: 2503, 12: 912, 13: 919, 14: 527, 15: 649, 16: 1252, 17: 318, 18: 3289, 19: 759, 20: 608, 21: 2396, 22: 2858, 23: 326, 24: 2028, 25: 1649, 26: 2762, 27: 17, 28: 34, 29: 246, 30: 2692, 31: 1617, 32: 300, 33: 1392, 34: 1111, 35: 150, 36: 562, 37: 549, 38: 1537, 39: 1554, 40: 448, 41: 265, 42: 866, 43: 1358, 44: 2324, 45: 235, 46: 446, 47: 247, 48: 1094, 49: 1704, 50: 50, 51: 162, 52: 45, 53: 348, 54: 508, 55: 1089, 56: 589, 57: 58, 58: 1694, 59: 2580, 60: 1834, 61: 2391, 62: 282, 63: 111, 64: 290, 65: 2067, 66: 1641, 67: 357, 68: 930, 69: 1230, 70: 947, 71: 3088, 72: 3133, 73: 3022, 74: 1294, 75: 3421, 76: 2804, 77: 1269, 78: 1276, 79: 1244, 80: 2622, 81: 955, 82: 2791, 83: 2300, 84: 1028, 85: 2863, 86: 3548, 87: 1197, 88: 951, 89: 1223, 90: 1211, 91: 933, 92: 1066, 93: 3072, 94: 907, 95: 2671, 96: 935, 97: 1304, 98: 3175, 99: 3035, 100: 1014, 101: 1078, 102: 3363, 103: 1270, 104: 1265, 105: 909, 106: 3396, 107: 1934, 108: 2174, 109: 911, 110: 945, 111: 2746, 112: 1188, 113: 471, 114: 3037, 115: 952, 116: 2289, 117: 916, 118: 1125, 119: 915, 120: 3028, 121: 3471, 122: 260, 123: 750, 124: 924, 125: 1210, 126: 1097, 127: 3545, 128: 2565, 129: 914, 130: 2087, 131: 918, 132: 899, 133: 1282, 134: 1022, 135: 900, 136: 364, 137: 1951, 138: 588, 139: 3549, 140: 963, 141: 1947, 142: 1081, 143: 2946, 144: 2083, 145: 1220, 146: 107, 147: 1380, 148: 2857, 149: 2096, 150: 1088, 151: 661, 152: 938, 153: 901, 154: 783, 155: 1083, 156: 2080, 157: 199, 158: 1416, 159: 48, 160: 903, 161: 1284, 162: 904, 163: 913, 164: 1212, 165: 2206, 166: 1086, 167: 950, 168: 1964, 169: 2208, 170: 906, 171: 942, 172: 2414, 173: 1680, 174: 926, 175: 1237, 176: 923, 177: 920, 178: 2146, 179: 1387, 180: 356, 181: 1079, 182: 2716, 183: 1148, 184: 232, 185: 1136, 186: 702, 187: 1882, 188: 1267, 189: 3508, 190: 3148, 191: 3543, 192: 1221, 193: 2132, 194: 1250, 195: 1193, 196: 1299, 197: 1225, 198: 3006, 199: 3196, 200: 908, 201: 1207, 202: 3469, 203: 1721, 204: 3438, 205: 2428, 206: 1883, 207: 2376, 208: 1945, 209: 3468, 210: 2728, 211: 3359, 212: 1938, 213: 1949, 214: 1231, 215: 2706, 216: 2707, 217: 2826, 218: 2492, 219: 2827, 220: 2572, 221: 2683, 222: 2699, 223: 3362, 224: 3504, 225: 1203, 226: 2501, 227: 2770, 228: 2842, 229: 3005, 230: 2555, 231: 3285, 232: 2710, 233: 2694, 234: 2975, 235: 2997, 236: 3270, 237: 3330, 238: 1233, 239: 2771, 240: 2147, 241: 3016, 242: 223, 243: 2433, 244: 2038, 245: 3068, 246: 3095, 247: 1208, 248: 1941, 249: 2919, 250: 2890, 251: 1293, 252: 1940, 253: 2678, 254: 1093, 255: 1911, 256: 2772, 257: 2546, 258: 2722, 259: 3203, 260: 2881, 261: 2759, 262: 2541, 263: 2336, 264: 2599, 265: 3113, 266: 2575, 267: 2828, 268: 2605, 269: 3408, 270: 2434, 271: 3051, 272: 1259, 273: 3467, 274: 1213, 275: 3159, 276: 2757, 277: 2712, 278: 1950, 279: 1939, 280: 1952, 281: 3526, 282: 2995, 283: 407, 284: 2676, 285: 2690, 286: 2333, 287: 2318, 288: 2719, 289: 3152, 290: 959, 291: 2303, 292: 1288, 293: 2629, 294: 2882, 295: 2713, 296: 3008, 297: 785, 298: 3160, 299: 2392, 300: 2390, 301: 2238, 302: 1953, 303: 3147, 304: 1674, 305: 3354, 306: 2900, 307: 3053, 308: 2734, 309: 2805, 310: 3379, 311: 2439, 312: 296, 313: 949, 314: 968, 315: 1959, 316: 2490, 317: 2574, 318: 2581, 319: 3325, 320: 2502, 321: 2723, 322: 3219, 323: 2901, 324: 3201, 325: 1956, 326: 3424, 327: 2906, 328: 2013, 329: 2598, 330: 299, 331: 3300, 332: 2758, 333: 24, 334: 43, 335: 2093, 336: 2395, 337: 2560, 338: 2686, 339: 1513, 340: 2485, 341: 3273, 342: 2491, 343: 2700, 344: 2841, 345: 3081, 346: 2840, 347: 2672, 348: 2070, 349: 2702, 350: 3176, 351: 2715, 352: 2693, 353: 3114, 354: 1623, 355: 2337, 356: 2701, 357: 2987, 358: 86, 359: 2600, 360: 3125, 361: 3179, 362: 3329, 363: 2010, 364: 461, 365: 1413, 366: 2024, 367: 1198, 368: 745, 369: 720, 370: 1196, 371: 1192, 372: 3149, 373: 1281, 374: 28, 375: 3307, 376: 3224, 377: 3265, 378: 1219, 379: 3128, 380: 2360, 381: 3462, 382: 3030, 383: 1348, 384: 1719, 385: 2075, 386: 541, 387: 2972, 388: 1248, 389: 1007, 390: 902, 391: 898, 392: 25, 393: 3067, 394: 922, 395: 1247, 396: 2859, 397: 2677, 398: 2186, 399: 2609, 400: 1303, 401: 1412, 402: 1104, 403: 2648, 404: 2357, 405: 2628, 406: 1228, 407: 3429, 408: 2732, 409: 1080, 410: 1584, 411: 480, 412: 32, 413: 2046, 414: 1748, 415: 2571, 416: 800, 417: 1214, 418: 3365, 419: 2664, 420: 1909, 421: 1372, 422: 1591, 423: 504, 424: 1653, 425: 2916, 426: 1356, 427: 1580, 428: 1527, 429: 1876, 430: 1396, 431: 971, 432: 2660, 433: 329, 434: 2012, 435: 788, 436: 3156, 437: 2393, 438: 512, 439: 1217, 440: 3075, 441: 3089, 442: 338, 443: 1573, 444: 1690, 445: 1150, 446: 2973, 447: 1603, 448: 1544, 449: 185, 450: 1391, 451: 1831, 452: 1320, 453: 2920, 454: 1885, 455: 1931, 456: 1240, 457: 514, 458: 1779, 459: 2808, 460: 2986, 461: 405, 462: 2053, 463: 1590, 464: 1041, 465: 2020, 466: 1056, 467: 1132, 468: 66, 469: 737, 470: 2448, 471: 256, 472: 1176, 473: 1199, 474: 3447, 475: 176, 476: 1200, 477: 1374, 478: 1657, 479: 3527, 480: 2968, 481: 1375, 482: 1274, 483: 2455, 484: 2985, 485: 1376, 486: 2011, 487: 2613, 488: 2021, 489: 2407, 490: 2105, 491: 2117, 492: 2311, 493: 2140, 494: 1253, 495: 3551, 496: 1234, 497: 3547, 498: 1965, 499: 2641, 500: 2054, 501: 1373, 502: 2364, 503: 2408, 504: 2456, 505: 2642, 506: 1254, 507: 1278, 508: 3090, 509: 3052, 510: 1397, 511: 2730, 512: 2848, 513: 1594, 514: 599, 515: 3361, 516: 3461, 517: 1077, 518: 306, 519: 1185, 520: 3418, 521: 1242, 522: 110, 523: 307, 524: 1874, 525: 1504, 526: 1258, 527: 1957, 528: 2971, 529: 2064, 530: 1243, 531: 1345, 532: 344, 533: 967, 534: 3130, 535: 249, 536: 1280, 537: 778, 538: 1784, 539: 293, 540: 590, 541: 475, 542: 1682, 543: 1179, 544: 2291, 545: 3108, 546: 1264, 547: 373, 548: 194, 549: 337, 550: 358, 551: 454, 552: 1366, 553: 1061, 554: 515, 555: 2366, 556: 961, 557: 3246, 558: 1466, 559: 62, 560: 3386, 561: 3342, 562: 3019, 563: 3426, 564: 1120, 565: 11, 566: 1268, 567: 4, 568: 1735, 569: 230, 570: 805, 571: 3255, 572: 2688, 573: 21, 574: 26, 575: 1727, 576: 280, 577: 3252, 578: 1729, 579: 3155, 580: 509, 581: 1747, 582: 224, 583: 1918, 584: 3435, 585: 2726, 586: 320, 587: 2361, 588: 3364, 589: 1442, 590: 1480, 591: 875, 592: 3334, 593: 1260, 594: 31, 595: 1711, 596: 2441, 597: 2966, 598: 1962, 599: 851, 600: 350, 601: 2002, 602: 695, 603: 1201, 604: 2059, 605: 1183, 606: 2875, 607: 1096, 608: 2288, 609: 921, 610: 1036, 611: 940, 612: 2644, 613: 253, 614: 1586, 615: 605, 616: 1027, 617: 30, 618: 42, 619: 457, 620: 1006, 621: 2908, 622: 766, 623: 1884, 624: 1801, 625: 3257, 626: 3521, 627: 3528, 628: 418, 629: 765, 630: 455, 631: 2431, 632: 1726, 633: 1340, 634: 1966, 635: 2313, 636: 3150, 637: 969, 638: 1797, 639: 3550, 640: 308, 641: 3498, 642: 92, 643: 2412, 644: 169, 645: 1595, 646: 2819, 647: 3198, 648: 2130, 649: 994, 650: 3499, 651: 2529, 652: 2102, 653: 1296, 654: 1, 655: 594, 656: 1301, 657: 1307, 658: 3132, 659: 1354, 660: 735, 661: 1954, 662: 388, 663: 1272, 664: 2302, 665: 2542, 666: 1500, 667: 2947, 668: 2355, 669: 3253, 670: 1923, 671: 1517, 672: 367, 673: 2662, 674: 3018, 675: 2739, 676: 1827, 677: 440, 678: 2124, 679: 500, 680: 1614, 681: 7, 682: 3450, 683: 2108, 684: 2926, 685: 597, 686: 1777, 687: 3263, 688: 708, 689: 236, 690: 539, 691: 216, 692: 1020, 693: 378, 694: 3208, 695: 333, 696: 1713, 697: 5, 698: 830, 699: 2004, 700: 1042, 701: 3098, 702: 3094, 703: 1409, 704: 231, 705: 372, 706: 157, 707: 1582, 708: 1944, 709: 1914, 710: 1367, 711: 2709, 712: 1377, 713: 252, 714: 784, 715: 585, 716: 1379, 717: 3086, 718: 3267, 719: 186, 720: 466, 721: 673, 722: 1702, 723: 1689, 724: 2266, 725: 1806, 726: 355, 727: 537, 728: 3, 729: 1494, 730: 1855, 731: 153, 732: 2387, 733: 1503, 734: 2335, 735: 1646, 736: 818, 737: 1581, 738: 520, 739: 1863, 740: 2016, 741: 1012, 742: 432, 743: 1602, 744: 637, 745: 2036, 746: 1431, 747: 2953, 748: 1760, 749: 1453, 750: 688, 751: 2042, 752: 374, 753: 1005, 754: 437, 755: 2720, 756: 2296, 757: 1839, 758: 429, 759: 1707, 760: 420, 761: 325, 762: 2152, 763: 870, 764: 1731, 765: 3146, 766: 2526, 767: 2670, 768: 2763, 769: 2000, 770: 3104, 771: 2729, 772: 123, 773: 1295, 774: 2329, 775: 2949, 776: 2951, 777: 1222, 778: 2944, 779: 2194, 780: 1127, 781: 733, 782: 3404, 783: 1408, 784: 592, 785: 2353, 786: 1608, 787: 349, 788: 780, 789: 3197, 790: 380, 791: 1676, 792: 292, 793: 2871, 794: 3105, 795: 1273, 796: 151, 797: 3210, 798: 339, 799: 1261, 800: 1171, 801: 1129, 802: 1189, 803: 2512, 804: 1300, 805: 2349, 806: 1090, 807: 1394, 808: 1975, 809: 1960, 810: 3039, 811: 1285, 812: 2348, 813: 2076, 814: 2312, 815: 3070, 816: 2872, 817: 2150, 818: 1246, 819: 3101, 820: 3422, 821: 2750, 822: 1321, 823: 1305, 824: 2852, 825: 2915, 826: 1291, 827: 3552, 828: 3449, 829: 2301, 830: 1663, 831: 2100, 832: 1124, 833: 2463, 834: 2989, 835: 2745, 836: 2286, 837: 2022, 838: 2369, 839: 2802, 840: 3524, 841: 1991, 842: 2134, 843: 2003, 844: 1173, 845: 1587, 846: 2111, 847: 3388, 848: 2089, 849: 680, 850: 2717, 851: 2751, 852: 2794, 853: 3169, 854: 2378, 855: 1289, 856: 1974, 857: 2411, 858: 2410, 859: 2948, 860: 1187, 861: 2553, 862: 2471, 863: 3017, 864: 1091, 865: 2241, 866: 2513, 867: 2402, 868: 2795, 869: 2321, 870: 1846, 871: 2421, 872: 999, 873: 555, 874: 272, 875: 3071, 876: 2160, 877: 2866, 878: 2065, 879: 529, 880: 2085, 881: 714, 882: 3204, 883: 731, 884: 862, 885: 1292, 886: 2467, 887: 1912, 888: 3097, 889: 1297, 890: 3011, 891: 2943, 892: 948, 893: 2104, 894: 596, 895: 628, 896: 441, 897: 1084, 898: 2014, 899: 2620, 900: 2159, 901: 892, 902: 2176, 903: 2687, 904: 3308, 905: 341, 906: 47, 907: 2797, 908: 2611, 909: 2018, 910: 2570, 911: 2427, 912: 2001, 913: 2401, 914: 1350, 915: 2377, 916: 1597, 917: 1673, 918: 551, 919: 840, 920: 2359, 921: 3350, 922: 2287, 923: 3060, 924: 188, 925: 3282, 926: 2118, 927: 1610, 928: 2874, 929: 3494, 930: 1029, 931: 1955, 932: 534, 933: 1907, 934: 1678, 935: 319, 936: 497, 937: 3044, 938: 428, 939: 1332, 940: 943, 941: 39, 942: 2071, 943: 3296, 944: 1921, 945: 1357, 946: 1968, 947: 3501, 948: 2157, 949: 3143, 950: 1013, 951: 1755, 952: 6, 953: 1611, 954: 1393, 955: 2362, 956: 2867, 957: 1082, 958: 2472, 959: 345, 960: 1355, 961: 2237, 962: 1395, 963: 1215, 964: 2048, 965: 3194, 966: 1263, 967: 3015, 968: 474, 969: 1730, 970: 3167, 971: 281, 972: 2109, 973: 2167, 974: 2155, 975: 1994, 976: 2524, 977: 2520, 978: 2877, 979: 3260, 980: 531, 981: 3546, 982: 558, 983: 1206, 984: 1010, 985: 1643, 986: 1546, 987: 728, 988: 342, 989: 3248, 990: 3157, 991: 910, 992: 1256, 993: 671, 994: 3448, 995: 1235, 996: 1238, 997: 1963, 998: 1275, 999: 8, 1000: 1162, 1001: 1073, 1002: 361, 1003: 741, 1004: 553, 1005: 1648, 1006: 610, 1007: 29, 1008: 1204, 1009: 2640, 1010: 2116, 1011: 2528, 1012: 316, 1013: 965, 1014: 1249, 1015: 928, 1016: 1371, 1017: 196, 1018: 2183, 1019: 931, 1020: 1344, 1021: 3230, 1022: 3033, 1023: 2403, 1024: 2615, 1025: 2094, 1026: 1333, 1027: 1407, 1028: 2747, 1029: 1917, 1030: 442, 1031: 1037, 1032: 173, 1033: 2178, 1034: 2034, 1035: 1982, 1036: 1343, 1037: 2181, 1038: 1732, 1039: 377, 1040: 519, 1041: 2450, 1042: 546, 1043: 2781, 1044: 905, 1045: 327, 1046: 2517, 1047: 2643, 1048: 2138, 1049: 1032, 1050: 2193, 1051: 3479, 1052: 2, 1053: 2143, 1054: 1967, 1055: 2161, 1056: 2239, 1057: 2243, 1058: 653, 1059: 1126, 1060: 2253, 1061: 3489, 1062: 837, 1063: 3439, 1064: 1172, 1065: 1566, 1066: 2409, 1067: 3584, 1068: 3590, 1069: 3591, 1070: 3529, 1071: 2959, 1072: 2912, 1073: 2829, 1074: 1792, 1075: 2894, 1076: 2334, 1077: 165, 1078: 170, 1079: 1438, 1080: 227, 1081: 1287, 1082: 861, 1083: 465, 1084: 1429, 1085: 1101, 1086: 1370, 1087: 2133, 1088: 2533, 1089: 2363, 1090: 2454, 1091: 2527, 1092: 2657, 1093: 2009, 1094: 3340, 1095: 2346, 1096: 426, 1097: 1334, 1098: 3555, 1099: 1924, 1100: 674, 1101: 10, 1102: 2082, 1103: 1644, 1104: 1353, 1105: 1266, 1106: 2961, 1107: 2724, 1108: 1347, 1109: 2668, 1110: 1128, 1111: 2787, 1112: 2148, 1113: 1970, 1114: 1330, 1115: 1389, 1116: 1972, 1117: 1995, 1118: 1971, 1119: 1983, 1120: 1986, 1121: 1969, 1122: 1326, 1123: 2465, 1124: 2122, 1125: 1988, 1126: 2460, 1127: 1985, 1128: 1978, 1129: 1976, 1130: 1980, 1131: 1987, 1132: 1981, 1133: 1979, 1134: 1977, 1135: 70, 1136: 1645, 1137: 1241, 1138: 3476, 1139: 2617, 1140: 1339, 1141: 3264, 1142: 1717, 1143: 2279, 1144: 724, 1145: 1771, 1146: 2328, 1147: 273, 1148: 532, 1149: 2898, 1150: 2389, 1151: 152, 1152: 1999, 1153: 2107, 1154: 177, 1155: 1342, 1156: 2125, 1157: 3259, 1158: 2443, 1159: 2801, 1160: 1569, 1161: 1059, 1162: 3358, 1163: 543, 1164: 587, 1165: 802, 1166: 105, 1167: 1888, 1168: 2297, 1169: 1722, 1170: 852, 1171: 417, 1172: 468, 1173: 222, 1174: 3046, 1175: 353, 1176: 2424, 1177: 2496, 1178: 266, 1179: 1541, 1180: 1629, 1181: 140, 1182: 1441, 1183: 1821, 1184: 1593, 1185: 691, 1186: 1457, 1187: 237, 1188: 550, 1189: 3269, 1190: 1894, 1191: 736, 1192: 289, 1193: 207, 1194: 447, 1195: 182, 1196: 168, 1197: 195, 1198: 2316, 1199: 3261, 1200: 179, 1201: 499, 1202: 3436, 1203: 1479, 1204: 64, 1205: 2774, 1206: 258, 1207: 15, 1208: 1556, 1209: 427, 1210: 1483, 1211: 1799, 1212: 218, 1213: 3331, 1214: 3405, 1215: 2406, 1216: 2991, 1217: 3107, 1218: 2058, 1219: 648, 1220: 3082, 1221: 3443, 1222: 490, 1223: 3256, 1224: 1047, 1225: 2115, 1226: 3441, 1227: 1552, 1228: 3444, 1229: 2278, 1230: 2006, 1231: 145, 1232: 2990, 1233: 494, 1234: 2476, 1235: 303, 1236: 1385, 1237: 3274, 1238: 1687, 1239: 552, 1240: 434, 1241: 786, 1242: 1488, 1243: 459, 1244: 1833, 1245: 1100, 1246: 1769, 1247: 1616, 1248: 479, 1249: 379, 1250: 2126, 1251: 425, 1252: 1099, 1253: 986, 1254: 535, 1255: 2069, 1256: 1639, 1257: 2474, 1258: 2736, 1259: 3129, 1260: 1226, 1261: 1216, 1262: 803, 1263: 2245, 1264: 2442, 1265: 1625, 1266: 1194, 1267: 3496, 1268: 2025, 1269: 1785, 1270: 71, 1271: 464, 1272: 1810, 1273: 3029, 1274: 571, 1275: 1872, 1276: 2624, 1277: 298, 1278: 476, 1279: 1809, 1280: 2331, 1281: 2114, 1282: 3535, 1283: 3412, 1284: 993, 1285: 485, 1286: 315, 1287: 3397, 1288: 172, 1289: 204, 1290: 44, 1291: 205, 1292: 1642, 1293: 2282, 1294: 1004, 1295: 160, 1296: 694, 1297: 1497, 1298: 1681, 1299: 1794, 1300: 502, 1301: 1626, 1302: 2081, 1303: 2807, 1304: 1465, 1305: 3174, 1306: 183, 1307: 1060, 1308: 125, 1309: 3481, 1310: 2097, 1311: 2268, 1312: 1057, 1313: 2330, 1314: 2077, 1315: 1805, 1316: 493, 1317: 1620, 1318: 1399, 1319: 22, 1320: 1958, 1321: 2697, 1322: 2764, 1323: 3247, 1324: 2561, 1325: 1598, 1326: 762, 1327: 81, 1328: 2294, 1329: 3099, 1330: 3079, 1331: 3112, 1332: 3507, 1333: 3398, 1334: 1017, 1335: 198, 1336: 3518, 1337: 991, 1338: 1177, 1339: 2112, 1340: 2137, 1341: 1633, 1342: 262, 1343: 1897, 1344: 3370, 1345: 1236, 1346: 1788, 1347: 366, 1348: 2144, 1349: 3100, 1350: 3576, 1351: 1286, 1352: 1619, 1353: 1476, 1354: 1427, 1355: 1916, 1356: 574, 1357: 261, 1358: 190, 1359: 241, 1360: 2470, 1361: 1135, 1362: 2419, 1363: 269, 1364: 1650, 1365: 2941, 1366: 1298, 1367: 431, 1368: 1271, 1369: 340, 1370: 2420, 1371: 3251, 1372: 1092, 1373: 1019, 1374: 1858, 1375: 1405, 1376: 3014, 1377: 3281, 1378: 988, 1379: 2231, 1380: 616, 1381: 164, 1382: 2090, 1383: 3395, 1384: 1454, 1385: 1031, 1386: 1049, 1387: 187, 1388: 16, 1389: 2247, 1390: 1518, 1391: 1683, 1392: 1516, 1393: 1913, 1394: 492, 1395: 808, 1396: 1459, 1397: 1449, 1398: 2779, 1399: 2425, 1400: 2262, 1401: 2168, 1402: 1605, 1403: 2518, 1404: 2385, 1405: 3034, 1406: 3272, 1407: 1542, 1408: 1447, 1409: 2173, 1410: 450, 1411: 317, 1412: 410, 1413: 2625, 1414: 700, 1415: 3102, 1416: 3173, 1417: 1365, 1418: 2626, 1419: 2725, 1420: 488, 1421: 707, 1422: 1783, 1423: 748, 1424: 435, 1425: 3032, 1426: 849, 1427: 1306, 1428: 1762, 1429: 2530, 1430: 3024, 1431: 2532, 1432: 3572, 1433: 692, 1434: 2531, 1435: 611, 1436: 3573, 1437: 3401, 1438: 880, 1439: 2091, 1440: 1862, 1441: 3574, 1442: 1588, 1443: 3392, 1444: 2862, 1445: 59, 1446: 2921, 1447: 2032, 1448: 2918, 1449: 3360, 1450: 2371, 1451: 2352, 1452: 1175, 1453: 2203, 1454: 1069, 1455: 3406, 1456: 799, 1457: 524, 1458: 1562, 1459: 381, 1460: 2416, 1461: 3385, 1462: 2752, 1463: 36, 1464: 2860, 1465: 2880, 1466: 112, 1467: 1615, 1468: 577, 1469: 761, 1470: 2322, 1471: 836, 1472: 1744, 1473: 2153, 1474: 2645, 1475: 2761, 1476: 141, 1477: 2748, 1478: 2708, 1479: 3301, 1480: 3512, 1481: 3519, 1482: 954, 1483: 932, 1484: 3341, 1485: 2835, 1486: 3020, 1487: 288, 1488: 996, 1489: 3430, 1490: 95, 1491: 208, 1492: 1382, 1493: 1499, 1494: 60, 1495: 2522, 1496: 2883, 1497: 2711, 1498: 3093, 1499: 1283, 1500: 1209, 1501: 1008, 1502: 2922, 1503: 964, 1504: 368, 1505: 1378, 1506: 2478, 1507: 416, 1508: 3000, 1509: 2993, 1510: 163, 1511: 2344, 1512: 1772, 1513: 2367, 1514: 2475, 1515: 2735, 1516: 2616, 1517: 2468, 1518: 462, 1519: 1606, 1520: 1262, 1521: 2970, 1522: 314, 1523: 3168, 1524: 3153, 1525: 2135, 1526: 2822, 1527: 158, 1528: 1085, 1529: 2405, 1530: 2088, 1531: 2043, 1532: 2950, 1533: 595, 1534: 1526, 1535: 1033, 1536: 1025, 1537: 2936, 1538: 2015, 1539: 586, 1540: 2098, 1541: 1016, 1542: 3503, 1543: 2204, 1544: 3419, 1545: 2511, 1546: 2917, 1547: 2110, 1548: 1791, 1549: 2023, 1550: 3083, 1551: 3384, 1552: 1147, 1553: 2937, 1554: 2248, 1555: 495, 1556: 946, 1557: 2996, 1558: 1948, 1559: 2721, 1560: 2907, 1561: 978, 1562: 2057, 1563: 936, 1564: 1035, 1565: 52, 1566: 2283, 1567: 382, 1568: 481, 1569: 3061, 1570: 2618, 1571: 248, 1572: 2836, 1573: 2766, 1574: 489, 1575: 2718, 1576: 413, 1577: 3244, 1578: 2844, 1579: 2704, 1580: 937, 1581: 3118, 1582: 828, 1583: 1996, 1584: 953, 1585: 2383, 1586: 639, 1587: 3491, 1588: 1845, 1589: 2290, 1590: 2696, 1591: 2136, 1592: 156, 1593: 3451, 1594: 2261, 1595: 838, 1596: 2145, 1597: 2295, 1598: 3087, 1599: 1485, 1600: 3506, 1601: 3497, 1602: 2539, 1603: 2870, 1604: 2567, 1605: 2356, 1606: 3120, 1607: 371, 1608: 2558, 1609: 2469, 1610: 2780, 1611: 2372, 1612: 2072, 1613: 2793, 1614: 1440, 1615: 3045, 1616: 2796, 1617: 2374, 1618: 2375, 1619: 2413, 1620: 1474, 1621: 1461, 1622: 3343, 1623: 2891, 1624: 305, 1625: 2259, 1626: 2473, 1627: 19, 1628: 1381, 1629: 419, 1630: 3074, 1631: 2621, 1632: 2398, 1633: 1892, 1634: 73, 1635: 1545, 1636: 1997, 1637: 1873, 1638: 1693, 1639: 2154, 1640: 832, 1641: 114, 1642: 225, 1643: 2269, 1644: 89, 1645: 233, 1646: 1835, 1647: 1290, 1648: 2340, 1649: 3073, 1650: 1666, 1651: 1043, 1652: 2292, 1653: 565, 1654: 842, 1655: 2784, 1656: 879, 1657: 742, 1658: 1130, 1659: 2554, 1660: 2782, 1661: 1341, 1662: 328, 1663: 330, 1664: 1327, 1665: 2519, 1666: 2459, 1667: 220, 1668: 1346, 1669: 2121, 1670: 2149, 1671: 1388, 1672: 2451, 1673: 2338, 1674: 2113, 1675: 2163, 1676: 2119, 1677: 2430, 1678: 3036, 1679: 2370, 1680: 3345, 1681: 2537, 1682: 2851, 1683: 3062, 1684: 2273, 1685: 517, 1686: 3165, 1687: 1752, 1688: 2741, 1689: 20, 1690: 2276, 1691: 3442, 1692: 2506, 1693: 351, 1694: 46, 1695: 362, 1696: 2120, 1697: 2327, 1698: 2789, 1699: 2655, 1700: 1984, 1701: 2902, 1702: 1329, 1703: 2092, 1704: 2005, 1705: 2252, 1706: 2139, 1707: 2033, 1708: 2123, 1709: 1881, 1710: 1030, 1711: 1190, 1712: 678, 1713: 1635, 1714: 1095, 1715: 412, 1716: 1411, 1717: 1302, 1718: 3371, 1719: 1935, 1720: 2577, 1721: 1651, 1722: 1507, 1723: 2166, 1724: 1178, 1725: 2162, 1726: 3389, 1727: 2373, 1728: 501, 1729: 3317, 1730: 3262, 1731: 3538, 1732: 1227, 1733: 2792, 1734: 3206, 1735: 85, 1736: 2284, 1737: 2488, 1738: 662, 1739: 2551, 1740: 229, 1741: 2803, 1742: 259, 1743: 1184, 1744: 1425, 1745: 180, 1746: 104, 1747: 542, 1748: 719, 1749: 1410, 1750: 2423, 1751: 2066, 1752: 746, 1753: 2940, 1754: 1009, 1755: 2550, 1756: 2788, 1757: 2457, 1758: 386, 1759: 2525, 1760: 304, 1761: 3238, 1762: 3040, 1763: 1218, 1764: 3452, 1765: 69, 1766: 88, 1767: 433, 1768: 1390, 1769: 513, 1770: 2587, 1771: 3186, 1772: 376, 1773: 387, 1774: 886, 1775: 1672, 1776: 2815, 1777: 2404, 1778: 3225, 1779: 3440, 1780: 3416, 1781: 80, 1782: 668, 1783: 363, 1784: 2041, 1785: 2188, 1786: 2861, 1787: 3513, 1788: 1361, 1789: 3338, 1790: 3004, 1791: 3588, 1792: 2885, 1793: 3374, 1794: 55, 1795: 3459, 1796: 3534, 1797: 3502, 1798: 3500, 1799: 1224, 1800: 1202, 1801: 2397, 1802: 3138, 1803: 2738, 1804: 2749, 1805: 2417, 1806: 2418, 1807: 2942, 1808: 1251, 1809: 3076, 1810: 154, 1811: 1362, 1812: 2925, 1813: 3135, 1814: 3283, 1815: 3420, 1816: 2932, 1817: 2535, 1818: 3428, 1819: 2051, 1820: 2394, 1821: 3536, 1822: 3484, 1823: 1547, 1824: 1487, 1825: 3250, 1826: 2250, 1827: 3477, 1828: 1895, 1829: 3478, 1830: 3480, 1831: 3466, 1832: 2240, 1833: 1583, 1834: 1848, 1835: 1920, 1836: 1750, 1837: 491, 1838: 2432, 1839: 1515, 1840: 159, 1841: 1699, 1842: 2437, 1843: 507, 1844: 929, 1845: 506, 1846: 14, 1847: 3366, 1848: 1103, 1849: 3066, 1850: 2232, 1851: 2800, 1852: 1856, 1853: 161, 1854: 2078, 1855: 1279, 1856: 1401, 1857: 144, 1858: 518, 1859: 3284, 1860: 647, 1861: 2440, 1862: 848, 1863: 1186, 1864: 2399, 1865: 3189, 1866: 2170, 1867: 1359, 1868: 2665, 1869: 423, 1870: 2314, 1871: 1667, 1872: 2928, 1873: 1422, 1874: 2306, 1875: 2445, 1876: 2180, 1877: 743, 1878: 533, 1879: 445, 1880: 13, 1881: 2505, 1882: 801, 1883: 365, 1884: 1627, 1885: 2429, 1886: 540, 1887: 575, 1888: 2498, 1889: 370, 1890: 1417, 1891: 2052, 1892: 1665, 1893: 2977, 1894: 2354, 1895: 3387, 1896: 415, 1897: 191, 1898: 2521, 1899: 87, 1900: 2974, 1901: 2566, 1902: 1445, 1903: 3054, 1904: 747, 1905: 2386, 1906: 2612, 1907: 1942, 1908: 3347, 1909: 973, 1910: 917, 1911: 3163, 1912: 1946, 1913: 82, 1914: 2969, 1915: 444, 1916: 3327, 1917: 3182, 1918: 2846, 1919: 2905, 1920: 3134, 1921: 3091, 1922: 3096, 1923: 670, 1924: 2935, 1925: 2731, 1926: 681, 1927: 1927, 1928: 1131, 1929: 2210, 1930: 2202, 1931: 934, 1932: 976, 1933: 897, 1934: 3304, 1935: 1277, 1936: 2068, 1937: 1064, 1938: 2929, 1939: 2184, 1940: 2212, 1941: 941, 1942: 3047, 1943: 1840, 1944: 970, 1945: 2040, 1946: 2379, 1947: 3310, 1948: 12, 1949: 3368, 1950: 1609, 1951: 3475, 1952: 982, 1953: 1245, 1954: 1933, 1955: 944, 1956: 3110, 1957: 2495, 1958: 3585, 1959: 2633, 1960: 171, 1961: 3249, 1962: 2060, 1963: 309, 1964: 581, 1965: 1932, 1966: 277, 1967: 147, 1968: 564, 1969: 1589, 1970: 1034, 1971: 2927, 1972: 41, 1973: 523, 1974: 1660, 1975: 538, 1976: 2171, 1977: 846, 1978: 645, 1979: 1624, 1980: 322, 1981: 57, 1982: 271, 1983: 1836, 1984: 35, 1985: 1841, 1986: 1051, 1987: 1816, 1988: 408, 1989: 580, 1990: 94, 1991: 1943, 1992: 632, 1993: 718, 1994: 3115, 1995: 63, 1996: 2967, 1997: 3557, 1998: 3010, 1999: 1759, 2000: 2351, 2001: 2310, 2002: 1053, 2003: 2345, 2004: 621, 2005: 1023, 2006: 1844, 2007: 2820, 2008: 97, 2009: 3078, 2010: 1701, 2011: 2192, 2012: 72, 2013: 1829, 2014: 3211, 2015: 2976, 2016: 1596, 2017: 3158, 2018: 2479, 2019: 3298, 2020: 2285, 2021: 2590, 2022: 3188, 2023: 2661, 2024: 2422, 2025: 2884, 2026: 2106, 2027: 383, 2028: 1472, 2029: 2956, 2030: 1804, 2031: 521, 2032: 3409, 2033: 3266, 2034: 1523, 2035: 1743, 2036: 1310, 2037: 2689, 2038: 77, 2039: 297, 2040: 3178, 2041: 3335, 2042: 2265, 2043: 2141, 2044: 101, 2045: 1257, 2046: 663, 2047: 2500, 2048: 2249, 2049: 2447, 2050: 3243, 2051: 3254, 2052: 3544, 2053: 166, 2054: 65, 2055: 2381, 2056: 2380, 2057: 3391, 2058: 3495, 2059: 1112, 2060: 893, 2061: 1563, 2062: 175, 2063: 3437, 2064: 2435, 2065: 697, 2066: 2037, 2067: 2806, 2068: 1866, 2069: 925, 2070: 2101, 2071: 2267, 2072: 1464, 2073: 451, 2074: 2583, 2075: 335, 2076: 1754, 2077: 257, 2078: 360, 2079: 1498, 2080: 2062, 2081: 2497, 2082: 1463, 2083: 804, 2084: 1475, 2085: 2597, 2086: 270, 2087: 276, 2088: 2586, 2089: 1675, 2090: 482, 2091: 422, 2092: 2320, 2093: 554, 2094: 1003, 2095: 2326, 2096: 990, 2097: 132, 2098: 79, 2099: 640, 2100: 3516, 2101: 3600, 2102: 3564, 2103: 3602, 2104: 3604, 2105: 3520, 2106: 3605, 2107: 3608, 2108: 3610, 2109: 3457, 2110: 2156, 2111: 3200, 2112: 1937, 2113: 1414, 2114: 635, 2115: 2436, 2116: 516, 2117: 1021, 2118: 1113, 2119: 1621, 2120: 1688, 2121: 1919, 2122: 1018, 2123: 3355, 2124: 1161, 2125: 3399, 2126: 1205, 2127: 239, 2128: 2924, 2129: 2275, 2130: 704, 2131: 393, 2132: 3213, 2133: 2084, 2134: 1739, 2135: 1973, 2136: 126, 2137: 3433, 2138: 3434, 2139: 3258, 2140: 2733, 2141: 1167, 2142: 203, 2143: 234, 2144: 193, 2145: 3390, 2146: 3349, 2147: 76, 2148: 3614, 2149: 1746, 2150: 1936, 2151: 3587, 2152: 2073, 2153: 2669, 2154: 3525, 2155: 725, 2156: 3217, 2157: 2647, 2158: 3486, 2159: 2667, 2160: 3375, 2161: 242, 2162: 1925, 2163: 2939, 2164: 1684, 2165: 1468, 2166: 613, 2167: 84, 2168: 206, 2169: 1255, 2170: 2636, 2171: 2579, 2172: 511, 2173: 559, 2174: 2293, 2175: 556, 2176: 2536, 2177: 2649, 2178: 103, 2179: 2663, 2180: 332, 2181: 3488, 2182: 2656, 2183: 2637, 2184: 2638, 2185: 2634, 2186: 2646, 2187: 2814, 2188: 2652, 2189: 2654, 2190: 1337, 2191: 2651, 2192: 841, 2193: 2568, 2194: 2260, 2195: 3007, 2196: 3271, 2197: 1105, 2198: 3069, 2199: 1421, 2200: 2988, 2201: 835, 2202: 2573, 2203: 2493, 2204: 3565, 2205: 612, 2206: 1456, 2207: 122, 2208: 1599, 2209: 2582, 2210: 2368, 2211: 2783, 2212: 1331, 2213: 2740, 2214: 1655, 2215: 2868, 2216: 2790, 2217: 606, 2218: 3598, 2219: 3606, 2220: 3559, 2221: 3415, 2222: 3311, 2223: 3456, 2224: 1046, 2225: 1406, 2226: 214, 2227: 334, 2228: 1116, 2229: 1901, 2230: 3142, 2231: 1875, 2232: 2365, 2233: 2029, 2234: 2865, 2235: 1535, 2236: 414, 2237: 569, 2238: 3372, 2239: 2540, 2240: 547, 2241: 1067, 2242: 3324, 2243: 3103, 2244: 291, 2245: 3593, 2246: 421, 2247: 2453, 2248: 3145, 2249: 3038, 2250: 3533, 2251: 615, 2252: 3532, 2253: 240, 2254: 956, 2255: 2653, 2256: 2131, 2257: 2983, 2258: 1076, 2259: 2650, 2260: 927, 2261: 962, 2262: 775, 2263: 2847, 2264: 1160, 2265: 347, 2266: 2682, 2267: 1024, 2268: 2753, 2269: 3275, 2270: 2195, 2271: 456, 2272: 1511, 2273: 1446, 2274: 1733, 2275: 3106, 2276: 3328, 2277: 2246, 2278: 3221, 2279: 3571, 2280: 3570, 2281: 389, 2282: 1324, 2283: 2315, 2284: 2516, 2285: 352, 2286: 324, 2287: 1612, 2288: 1904, 2289: 2007, 2290: 570, 2291: 3049, 2292: 452, 2293: 2236, 2294: 829, 2295: 1613, 2296: 477, 2297: 268, 2298: 409, 2299: 215, 2300: 806, 2301: 2639, 2302: 1670, 2303: 1753, 2304: 3339, 2305: 2893, 2306: 2607, 2307: 3465, 2308: 2888, 2309: 184, 2310: 2978, 2311: 881, 2312: 1854, 2313: 135, 2314: 1000, 2315: 813, 2316: 312, 2317: 278, 2318: 3031, 2319: 833, 2320: 473, 2321: 472, 2322: 438, 2323: 2317, 2324: 2027, 2325: 275, 2326: 1604, 2327: 1550, 2328: 2992, 2329: 3013, 2330: 1998, 2331: 2903, 2332: 2878, 2333: 3021, 2334: 3490, 2335: 1989, 2336: 3487, 2337: 1068, 2338: 2187, 2339: 3316, 2340: 3445, 2341: 2242, 2342: 3577, 2343: 3510, 2344: 3041, 2345: 458, 2346: 3431, 2347: 3432, 2348: 2896, 2349: 487, 2350: 2055, 2351: 3427, 2352: 2458, 2353: 809, 2354: 2606, 2355: 3077, 2356: 121, 2357: 3402, 2358: 1865, 2359: 1123, 2360: 2659, 2361: 2182, 2362: 2017, 2363: 1571, 2364: 2099, 2365: 3199, 2366: 3414, 2367: 2263, 2368: 3235, 2369: 116, 2370: 2585, 2371: 709, 2372: 3393, 2373: 2151, 2374: 1647, 2375: 798, 2376: 2594, 2377: 2507, 2378: 781, 2379: 2281, 2380: 1352, 2381: 869, 2382: 210, 2383: 650, 2384: 2272, 2385: 9, 2386: 467, 2387: 189, 2388: 3425, 2389: 1703, 2390: 1900, 2391: 1812, 2392: 1585, 2393: 525, 2394: 1857, 2395: 505, 2396: 267, 2397: 2610, 2398: 2798, 2399: 449, 2400: 984, 2401: 3394, 2402: 2879, 2403: 711, 2404: 217, 2405: 3042, 2406: 1692, 2407: 2483, 2408: 1432, 2409: 3268, 2410: 2714, 2411: 1450, 2412: 2562, 2413: 2856, 2414: 2744, 2415: 1640, 2416: 957, 2417: 1152, 2418: 181, 2419: 1495, 2420: 1720, 2421: 667, 2422: 2817, 2423: 839, 2424: 2899, 2425: 1011, 2426: 2050, 2427: 2142, 2428: 631, 2429: 1654, 2430: 2079, 2431: 2035, 2432: 960, 2433: 2205, 2434: 2589, 2435: 255, 2436: 2549, 2437: 2952, 2438: 3423, 2439: 2264, 2440: 3141, 2441: 2515, 2442: 2982, 2443: 2452, 2444: 1992, 2445: 2462, 2446: 1993, 2447: 891, 2448: 3367, 2449: 2816, 2450: 627, 2451: 1929, 2452: 2938, 2453: 1477, 2454: 1460, 2455: 2962, 2456: 3292, 2457: 2773, 2458: 3622, 2459: 769, 2460: 1758, 2461: 484, 2462: 2045, 2463: 888, 2464: 3144, 2465: 2695, 2466: 3492, 2467: 238, 2468: 3578, 2469: 3509, 2470: 3286, 2471: 96, 2472: 3137, 2473: 1015, 2474: 1317, 2475: 1398, 2476: 2382, 2477: 1322, 2478: 2892, 2479: 2255, 2480: 2095, 2481: 3043, 2482: 807, 2483: 987, 2484: 1600, 2485: 3232, 2486: 2044, 2487: 1837, 2488: 710, 2489: 470, 2490: 102, 2491: 321, 2492: 1695, 2493: 3556, 2494: 3012, 2495: 1896, 2496: 3417, 2497: 2776, 2498: 2630, 2499: 1428, 2500: 3620, 2501: 2177, 2502: 2523, 2503: 1363, 2504: 1496, 2505: 3299, 2506: 1631, 2507: 1669, 2508: 302, 2509: 131, 2510: 1482, 2511: 3287, 2512: 3483, 2513: 544, 2514: 548, 2515: 2889, 2516: 1898, 2517: 201, 2518: 463, 2519: 2504, 2520: 3403, 2521: 3579, 2522: 3554, 2523: 3617, 2524: 3618, 2525: 3596, 2526: 3580, 2527: 3537, 2528: 3597, 2529: 3619, 2530: 3326, 2531: 2169, 2532: 1826, 2533: 1677, 2534: 2350, 2535: 2681, 2536: 2767, 2537: 2691, 2538: 3048, 2539: 2786, 2540: 2257, 2541: 2799, 2542: 2756, 2543: 3223, 2544: 83, 2545: 1484, 2546: 2853, 2547: 1860, 2548: 3214, 2549: 536, 2550: 3109, 2551: 23, 2552: 1906, 2553: 3218, 2554: 2965, 2555: 3613, 2556: 37, 2557: 1564, 2558: 638, 2559: 74, 2560: 301, 2561: 469, 2562: 1632, 2563: 779, 2564: 2165, 2565: 685, 2566: 2548, 2567: 1668, 2568: 2426, 2569: 3063, 2570: 3599, 2571: 61, 2572: 436, 2573: 1658, 2574: 18, 2575: 209, 2576: 93, 2577: 2809, 2578: 567, 2579: 2727, 2580: 1154, 2581: 854, 2582: 850, 2583: 669, 2584: 1351, 2585: 263, 2586: 3531, 2587: 2849, 2588: 1050, 2589: 563, 2590: 715, 2591: 343, 2592: 3539, 2593: 2305, 2594: 155, 2595: 3562, 2596: 782, 2597: 3586, 2598: 390, 2599: 3313, 2600: 211, 2601: 1404, 2602: 254, 2603: 78, 2604: 882, 2605: 424, 2606: 1044, 2607: 346, 2608: 1473, 2609: 2482, 2610: 3306, 2611: 2596, 2612: 528, 2613: 3309, 2614: 2196, 2615: 1869, 2616: 3563, 2617: 1867, 2618: 2307, 2619: 1853, 2620: 2128, 2621: 2325, 2622: 1592, 2623: 486, 2624: 656, 2625: 1679, 2626: 1439, 2627: 867, 2628: 453, 2629: 174, 2630: 2552, 2631: 810, 2632: 1798, 2633: 118, 2634: 331, 2635: 2190, 2636: 3127, 2637: 2449, 2638: 2876, 2639: 885, 2640: 2280, 2641: 716, 2642: 478, 2643: 1436, 2644: 626, 2645: 243, 2646: 3511, 2647: 2494, 2648: 618, 2649: 1661, 2650: 1686, 2651: 391, 2652: 998, 2653: 1662, 2654: 1824, 2655: 732, 2656: 2812, 2657: 1532, 2658: 283, 2659: 1601, 2660: 2271, 2661: 510, 2662: 2201, 2663: 100, 2664: 3553, 2665: 3566, 2666: 1870, 2667: 443, 2668: 3357, 2669: 3319, 2670: 3185, 2671: 1910, 2672: 2810, 2673: 2047, 2674: 336, 2675: 3639, 2676: 3634, 2677: 764, 2678: 197, 2679: 503, 2680: 633, 2681: 68, 2682: 1328, 2683: 1325, 2684: 2461, 2685: 1191, 2686: 294, 2687: 2341, 2688: 1767, 2689: 498, 2690: 703, 2691: 354, 2692: 167, 2693: 522, 2694: 27, 2695: 2400, 2696: 2256, 2697: 3344, 2698: 3026, 2699: 3638, 2700: 3633, 2701: 3635, 2702: 2614, 2703: 760, 2704: 1323, 2705: 202, 2706: 896, 2707: 2514, 2708: 1335, 2709: 2347, 2710: 2818, 2711: 3464, 2712: 1232, 2713: 2026, 2714: 3624, 2715: 2031, 2716: 3177, 2717: 3643, 2718: 3628, 2719: 3514, 2720: 1038, 2721: 3515, 2722: 3446, 2723: 3027, 2724: 3629, 2725: 3645, 2726: 1119, 2727: 483, 2728: 3594, 2729: 1525, 2730: 1756, 2731: 1990, 2732: 2754, 2733: 3453, 2734: 2049, 2735: 3181, 2736: 3470, 2737: 3636, 2738: 3644, 2739: 1822, 2740: 1426, 2741: 1164, 2742: 1902, 2743: 3240, 2744: 3623, 2745: 2323, 2746: 1349, 2747: 1336, 2748: 3241, 2749: 2833, 2750: 3117, 2751: 1151, 2752: 2008, 2753: 1087, 2754: 2886, 2755: 2737, 2756: 3474, 2757: 1180, 2758: 847, 2759: 997, 2760: 2679, 2761: 3122, 2762: 1928, 2763: 2981, 2764: 2984, 2765: 1849, 2766: 876, 2767: 1117, 2768: 1671, 2769: 1508, 2770: 1114, 2771: 1501, 2772: 53, 2773: 313, 2774: 3612, 2775: 2834, 2776: 38, 2777: 3190, 2778: 2499, 2779: 3668, 2780: 3615, 2781: 2674, 2782: 3684, 2783: 3671, 2784: 3683, 2785: 274, 2786: 117, 2787: 228, 2788: 99, 2789: 75, 2790: 3712, 2791: 3676, 2792: 128, 2793: 3704, 2794: 3702, 2795: 2446, 2796: 3649, 2797: 3697, 2798: 3706, 2799: 3681, 2800: 3654, 2801: 3686, 2802: 3708, 2803: 3703, 2804: 3688, 2805: 3685, 2806: 3698, 2807: 3700, 2808: 2342, 2809: 392, 2810: 3682, 2811: 3701, 2812: 3637, 2813: 3690, 2814: 3689, 2815: 2593, 2816: 583, 2817: 3699, 2818: 3707, 2819: 3675, 2820: 3693, 2821: 2843, 2822: 3320, 2823: 2897, 2824: 1889, 2825: 3711, 2826: 2086, 2827: 1121, 2828: 1169, 2829: 1313, 2830: 3567, 2831: 3581, 2832: 1770, 2833: 1782, 2834: 359, 2835: 1514, 2836: 3660, 2837: 3627, 2838: 3653, 2839: 3705, 2840: 3669, 2841: 3207, 2842: 753, 2843: 1415, 2844: 3632, 2845: 3713, 2846: 3678, 2847: 2831, 2848: 2945, 2849: 3677, 2850: 568, 2851: 3672, 2852: 369, 2853: 602, 2854: 219, 2855: 137, 2856: 136, 2857: 2103, 2858: 56, 2859: 146, 2860: 54, 2861: 2559, 2862: 90, 2863: 603, 2864: 877, 2865: 566, 2866: 771, 2867: 1749, 2868: 3473, 2869: 617, 2870: 406, 2871: 1420, 2872: 3680, 2873: 3674, 2874: 113, 2875: 3661, 2876: 3673, 2877: 2904, 2878: 3092, 2879: 2215, 2880: 1054, 2881: 3691, 2882: 250, 2883: 3055, 2884: 3679, 2885: 1656, 2886: 3692, 2887: 2339, 2888: 3715, 2889: 385, 2890: 2211, 2891: 974, 2892: 3139, 2893: 958, 2894: 3171, 2895: 755, 2896: 3215, 2897: 3670, 2898: 3710, 2899: 3740, 2900: 3730, 2901: 3724, 2902: 3731, 2903: 3732, 2904: 3716, 2905: 3733, 2906: 3734, 2907: 3735, 2908: 3729, 2909: 3738, 2910: 2209, 2911: 1903, 2912: 2227, 2913: 2221, 2914: 2185, 2915: 1728, 2916: 264, 2917: 1533, 2918: 3742, 2919: 3723, 2920: 3664, 2921: 3663, 2922: 3709, 2923: 106, 2924: 1696, 2925: 824, 2926: 3728, 2927: 619, 2928: 40, 2929: 2994, 2930: 3741, 2931: 1922, 2932: 1458, 2933: 3658, 2934: 384, 2935: 1423, 2936: 2627, 2937: 831, 2938: 3400, 2939: 2785, 2940: 3736, 2941: 1814, 2942: 2244, 2943: 1486, 2944: 375, 2945: 2755, 2946: 1715, 2947: 992, 2948: 2074, 2949: 2632, 2950: 1489, 2951: 3454, 2952: 1725, 2953: 1551, 2954: 3694, 2955: 3646, 2956: 609, 2957: 244, 2958: 722, 2959: 3714, 2960: 3665, 2961: 3662, 2962: 1063, 2963: 3648, 2964: 3659, 2965: 3696, 2966: 939, 2967: 3727, 2968: 3626, 2969: 1437, 2970: 811, 2971: 2778, 2972: 3725, 2973: 754, 2974: 2477, 2975: 1887, 2976: 411, 2977: 1055, 2978: 2191, 2979: 3717, 2980: 3667, 2981: 1534, 2982: 1817, 2983: 705, 2984: 3655, 2985: 1531, 2986: 3744, 2987: 2850, 2988: 2207, 2989: 2197, 2990: 2481, 2991: 1455, 2992: 1071, 2993: 1549, 2994: 2933, 2995: 3726, 2996: 2813, 2997: 3739, 2998: 1893, 2999: 2298, 3000: 1859, 3001: 1509, 3002: 3540, 3003: 3657, 3004: 3640, 3005: 863, 3006: 3719, 3007: 2837, 3008: 1879, 3009: 3124, 3010: 3302, 3011: 1567, 3012: 793, 3013: 3745, 3014: 1502, 3015: 3652, 3016: 119, 3017: 3754, 3018: 3763, 3019: 3746, 3020: 496, 3021: 310, 3022: 2824, 3023: 1864, 3024: 3751, 3025: 3303, 3026: 3753, 3027: 3764, 3028: 1170, 3029: 3782, 3030: 3781, 3031: 3771, 3032: 3766, 3033: 3773, 3034: 149, 3035: 3760, 3036: 665, 3037: 3770, 3038: 3758, 3039: 2855, 3040: 3743, 3041: 3769, 3042: 3183, 3043: 2158, 3044: 1793, 3045: 1153, 3046: 3642, 3047: 3737, 3048: 3025, 3049: 3768, 3050: 2534, 3051: 2332, 3052: 3780, 3053: 394, 3054: 2486, 3055: 1807, 3056: 2175, 3057: 2509, 3058: 3116, 3059: 600, 3060: 3774, 3061: 3463, 3062: 2864, 3063: 3752, 3064: 3791, 3065: 3784, 3066: 2914, 3067: 3788, 3068: 3767, 3069: 3695, 3070: 1538, 3071: 3789, 3072: 3755, 3073: 3792, 3074: 2200, 3075: 526, 3076: 1144, 3077: 3239, 3078: 1026, 3079: 1899, 3080: 2056, 3081: 1384, 3082: 3720, 3083: 1369, 3084: 3333, 3085: 698, 3086: 3718, 3087: 3765, 3088: 3747, 3089: 3775, 3090: 3778, 3091: 2179, 3092: 2964, 3093: 864, 3094: 3569, 3095: 1574, 3096: 430, 3097: 3064, 3098: 251, 3099: 2963, 3100: 598, 3101: 3783, 3102: 1718, 3103: 3759, 3104: 2979, 3105: 1490, 3106: 1311, 3107: 3050, 3108: 659, 3109: 1565, 3110: 2219, 3111: 2775, 3112: 3002, 3113: 3776, 3114: 178, 3115: 1002, 3116: 1850, 3117: 1493, 3118: 3058, 3119: 49, 3120: 3276, 3121: 3785, 3122: 3346, 3123: 2854, 3124: 3757, 3125: 3761, 3126: 2675, 3127: 3192, 3128: 2304, 3129: 1880, 3130: 2931, 3131: 3222, 3132: 2658, 3133: 561, 3134: 2544, 3135: 1926, 3136: 1539, 3137: 3180, 3138: 1575, 3139: 560, 3140: 2930, 3141: 1433, 3142: 200, 3143: 1741, 3144: 664, 3145: 2569, 3146: 966, 3147: 1890, 3148: 3721, 3149: 1825, 3150: 279, 3151: 2234, 3152: 2164, 3153: 1572, 3154: 1174, 3155: 1312, 3156: 1181, 3157: 2444, 3158: 726, 3159: 124, 3160: 3812, 3161: 3806, 3162: 3814, 3163: 3809, 3164: 3811, 3165: 3819, 3166: 108, 3167: 3813, 3168: 3802, 3169: 3799, 3170: 3121, 3171: 3801, 3172: 3810, 3173: 1878, 3174: 3807, 3175: 2873, 3176: 3804, 3177: 3818, 3178: 1163, 3179: 3817, 3180: 3793, 3181: 1520, 3182: 3790, 3183: 3787, 3184: 1664, 3185: 3795, 3186: 2129, 3187: 1519, 3188: 860, 3189: 3749, 3190: 2839, 3191: 287, 3192: 844, 3193: 2063, 3194: 3166, 3195: 3003, 3196: 3803, 3197: 3616, 3198: 3798, 3199: 751, 3200: 3318, 3201: 3808, 3202: 397, 3203: 2189, 3204: 3794, 3205: 3805, 3206: 3797, 3207: 1570, 3208: 3841, 3209: 3786, 3210: 3832, 3211: 3834, 3212: 3835, 3213: 3836, 3214: 3844, 3215: 3840, 3216: 3846, 3217: 1659, 3218: 3849, 3219: 2666, 3220: 3845, 3221: 3831, 3222: 3822, 3223: 3796, 3224: 3777, 3225: 2466, 3226: 3843, 3227: 3821, 3228: 3837, 3229: 3839, 3230: 3827, 3231: 3820, 3232: 2760, 3233: 2635, 3234: 2777, 3235: 3816, 3236: 3641, 3237: 3847, 3238: 3838, 3239: 2923, 3240: 3351, 3241: 3833, 3242: 3848, 3243: 2743, 3244: 1138, 3245: 1168, 3246: 1529, 3247: 3825, 3248: 874, 3249: 3850, 3250: 1811, 3251: 972, 3252: 2913, 3253: 1780, 3254: 767, 3255: 2487, 3256: 3611, 3257: 1891, 3258: 2608, 3259: 1522, 3260: 3826, 3261: 3161, 3262: 2998, 3263: 3293, 3264: 652, 3265: 148, 3266: 3824, 3267: 3864, 3268: 3859, 3269: 3861, 3270: 295, 3271: 3056, 3272: 3823, 3273: 3625, 3274: 980, 3275: 2934, 3276: 3866, 3277: 2673, 3278: 3140, 3279: 3592, 3280: 460, 3281: 1685, 3282: 3869, 3283: 3873, 3284: 3858, 3285: 3877, 3286: 3410, 3287: 2388, 3288: 3868, 3289: 3872, 3290: 2830, 3291: 1383, 3292: 3870, 3293: 1098, 3294: 3871, 3295: 3860, 3296: 2705, 3297: 3875, 3298: 3666, 3299: 2415, 3300: 3857, 3301: 2557, 3302: 3523, 3303: 3863, 3304: 815, 3305: 3830, 3306: 3884, 3307: 3852, 3308: 3880, 3309: 2233, 3310: 3874, 3311: 3878, 3312: 3886, 3313: 129, 3314: 2602, 3315: 3879, 3316: 3882, 3317: 630, 3318: 3001, 3319: 3851, 3320: 2911, 3321: 245, 3322: 3855, 3323: 3867, 3324: 3865, 3325: 3853, 3326: 2765, 3327: 2631, 3328: 1444, 3329: 3568, 3330: 614, 3331: 1058, 3332: 3897, 3333: 3893, 3334: 3889, 3335: 3925, 3336: 3936, 3337: 3942, 3338: 3941, 3339: 3940, 3340: 3939, 3341: 3938, 3342: 3937, 3343: 3927, 3344: 3926, 3345: 3908, 3346: 3917, 3347: 3918, 3348: 3921, 3349: 3922, 3350: 3919, 3351: 3930, 3352: 3901, 3353: 3920, 3354: 3903, 3355: 3895, 3356: 3910, 3357: 3915, 3358: 3932, 3359: 3929, 3360: 3896, 3361: 3898, 3362: 212, 3363: 3928, 3364: 3923, 3365: 3931, 3366: 3909, 3367: 3916, 3368: 2538, 3369: 3911, 3370: 3894, 3371: 3914, 3372: 3948, 3373: 3883, 3374: 3947, 3375: 3885, 3376: 3913, 3377: 2768, 3378: 3162, 3379: 3952, 3380: 2545, 3381: 3924, 3382: 3946, 3383: 1796, 3384: 3934, 3385: 3945, 3386: 3943, 3387: 3854, 3388: 3935, 3389: 3933, 3390: 2769, 3391: 3949, 3392: 2464, 3393: 3902, 3394: 3950, 3395: 3944, 3396: 3891, 3397: 3900, 3398: 3154, 3399: 3951, 3400: 3184, 3401: 2061, 3402: 98, 3403: 3912, 3404: 3906, 3405: 3892, 3406: 1040, 3407: 1543, 3408: 1622, 3409: 1636, 3410: 1471}}\n", + "5453 3411\n" + ] + } + ], + "source": [ + "print(tokenizer.query_id_encoder.mapping, tokenizer.query_id_encoder.inverse_mapping)\n", + "print(tokenizer.item_id_encoder.mapping, tokenizer.item_id_encoder.inverse_mapping)\n", + "\n", + "print(len(tokenizer.query_id_encoder.mapping[\"user_id\"]), len(tokenizer.item_id_encoder.mapping['item_id']))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tokenizer.item_id_encoder.mapping['item_id'][1961]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train model\n", + "### Create SASRec model instance and run the training stage using lightning\n", + "After each epoch validation metrics are shown. You can change the list of validation metrics in ValidationMetricsCallback\n", + "The model is determined to be the best and is saved if the metric updates its maximum during validation (see the ModelCheckpoint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (cuda), used: True\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "You are using a CUDA device ('NVIDIA L40') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('medium' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision\n", + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:653: Checkpoint directory /root/RePlay-Accelerated/.checkpoints exists and is not empty.\n", + "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", + "\n", + " | Name | Type | Params\n", + "--------------------------------------------\n", + "0 | _model | SasRecModel | 2.2 M \n", + "1 | _loss | CrossEntropyLoss | 0 \n", + "--------------------------------------------\n", + "2.2 M Trainable params\n", + "0 Non-trainable params\n", + "2.2 M Total params\n", + "8.681 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fac78134025246588af6ad38441f6af7", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | | 0/? [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idscore
0020128.138867
0016428.094225
003608.087744
0023257.976056
00477.485192
............
6039603912513.320609
6039603921743.301445
6039603931973.286182
6039603931413.280689
6039603928493.2665
\n", + "

604000 rows × 3 columns

\n", + "" + ], + "text/plain": [ + " user_id item_id score\n", + "0 0 2012 8.138867\n", + "0 0 1642 8.094225\n", + "0 0 360 8.087744\n", + "0 0 2325 7.976056\n", + "0 0 47 7.485192\n", + "... ... ... ...\n", + "6039 6039 1251 3.320609\n", + "6039 6039 2174 3.301445\n", + "6039 6039 3197 3.286182\n", + "6039 6039 3141 3.280689\n", + "6039 6039 2849 3.2665\n", + "\n", + "[604000 rows x 3 columns]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pandas_res" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(0) tensor([2012, 1642, 360, 2325, 47, 2020, 2016, 2009, 1020, 2014, 12, 1382,\n", + " 612, 2027, 3088, 2018, 1012, 1019, 3090, 2965, 547, 2068, 2021, 1990,\n", + " 2073, 2315, 2072, 700, 105, 1050, 582, 1346, 2011, 2918, 310, 1743,\n", + " 1977, 314, 3546, 1058, 974, 1010, 1850, 2023, 358, 1979, 259, 2631,\n", + " 667, 33, 2030, 2070, 2013, 1002, 2640, 3328, 2807, 592, 1964, 3144,\n", + " 2830, 2985, 3327, 3329, 1262, 1017, 1547, 476, 1, 2285, 1459, 1664,\n", + " 1018, 59, 2692, 1000, 1936, 1851, 3218, 3414, 1539, 826, 1011, 3106,\n", + " 999, 791, 2092, 1004, 2047, 236, 2731, 3676, 2677, 3682, 156, 2071,\n", + " 1008, 363, 1945, 2777]) tensor([8.1389, 8.0942, 8.0877, 7.9761, 7.4852, 7.3621, 7.1054, 7.0903, 7.0875,\n", + " 6.9929, 6.8924, 6.8650, 6.8604, 6.7333, 6.7214, 6.6113, 6.6022, 6.5607,\n", + " 6.4482, 6.4093, 6.3793, 6.3753, 6.2767, 6.2201, 6.2057, 6.1955, 6.1510,\n", + " 6.1112, 6.0373, 6.0356, 5.9954, 5.9927, 5.9892, 5.9694, 5.9151, 5.8761,\n", + " 5.8475, 5.8284, 5.7449, 5.7310, 5.7161, 5.6727, 5.6549, 5.6495, 5.6186,\n", + " 5.6085, 5.6031, 5.5880, 5.5866, 5.5690, 5.5257, 5.4499, 5.3953, 5.3695,\n", + " 5.3578, 5.3515, 5.3228, 5.3165, 5.3163, 5.3155, 5.2968, 5.2931, 5.2828,\n", + " 5.2674, 5.2641, 5.2480, 5.2354, 5.2027, 5.1985, 5.1930, 5.1861, 5.1736,\n", + " 5.1604, 5.1566, 5.1563, 5.1207, 5.0993, 5.0964, 5.0871, 5.0869, 5.0672,\n", + " 5.0649, 5.0559, 5.0418, 5.0282, 5.0174, 4.9985, 4.9898, 4.9881, 4.8736,\n", + " 4.8252, 4.7583, 4.7408, 4.7300, 4.6881, 4.6835, 4.6771, 4.6612, 4.6486,\n", + " 4.5319])\n" + ] + } + ], + "source": [ + "print(torch_user_ids[0], torch_item_ids[0], torch_scores[0])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we want to get the recomendations in PySpark format. \n", + "Let's get the inverse representation of labels using inverse_transform method.\n", + "\n", + "Note that the reverse representation can only be obtained for PySpark and Pandas formats. When working with PyTorch tensors, the reverse representation must be done manually" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "recommendations = tokenizer.query_and_item_id_encoder.inverse_transform(spark_res)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+------------------+-------+-------+\n", + "| score|user_id|item_id|\n", + "+------------------+-------+-------+\n", + "| 8.138867378234863| 1| 2081|\n", + "| 8.09422492980957| 1| 1688|\n", + "| 8.087743759155273| 1| 364|\n", + "| 7.976056098937988| 1| 2394|\n", + "| 7.48519229888916| 1| 48|\n", + "| 7.362086296081543| 1| 2089|\n", + "| 7.105367660522461| 1| 2085|\n", + "| 7.090343475341797| 1| 2078|\n", + "| 7.08748197555542| 1| 1033|\n", + "| 6.992861747741699| 1| 2083|\n", + "| 6.892394542694092| 1| 13|\n", + "| 6.864995956420898| 1| 1405|\n", + "| 6.860413074493408| 1| 616|\n", + "| 6.73327112197876| 1| 2096|\n", + "| 6.721376419067383| 1| 3157|\n", + "| 6.611262321472168| 1| 2087|\n", + "| 6.602219581604004| 1| 1025|\n", + "|6.5607428550720215| 1| 1032|\n", + "| 6.448214530944824| 1| 3159|\n", + "| 6.409302711486816| 1| 3034|\n", + "+------------------+-------+-------+\n", + "only showing top 20 rows\n", + "\n" + ] + } + ], + "source": [ + "recommendations.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Calculating metrics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "init_args = {\"query_column\": \"user_id\", \"rating_column\": \"score\"}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " \r" + ] + } + ], + "source": [ + "result_metrics = OfflineMetrics(\n", + " [Recall(TOPK), Precision(TOPK), MAP(TOPK), NDCG(TOPK), MRR(TOPK), HitRate(TOPK)], **init_args\n", + ")(recommendations.toPandas(), raw_test_gt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
k11020100
HitRate0.069040.2960260.4153970.680464
MAP0.069040.1264830.1346440.141227
MRR0.069040.1264830.1346440.141227
NDCG0.069040.1659980.1960250.244784
Precision0.069040.0296030.0207700.006805
Recall0.069040.2960260.4153970.680464
\n", + "
" + ], + "text/plain": [ + "k 1 10 20 100\n", + "HitRate 0.06904 0.296026 0.415397 0.680464\n", + "MAP 0.06904 0.126483 0.134644 0.141227\n", + "MRR 0.06904 0.126483 0.134644 0.141227\n", + "NDCG 0.06904 0.165998 0.196025 0.244784\n", + "Precision 0.06904 0.029603 0.020770 0.006805\n", + "Recall 0.06904 0.296026 0.415397 0.680464" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metrics_to_df(result_metrics)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### User embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Got 6040 x 300 user embeddings, because among all 12 batches: \n", + "\n", + "11 batches contains 512 samples\n", + "\n", + "1 batch contains 408 left samples\n", + "\n", + "11 * 512 + 408 == 6040" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 0.3704, 1.9303, 1.9161, ..., -0.1143, 1.5672, -0.9027],\n", + " [-1.8589, -2.6053, 0.1639, ..., -0.4250, -2.5378, -0.8178],\n", + " [-0.0877, 0.3147, 2.4707, ..., -0.7766, -0.8095, -1.2838],\n", + " ...,\n", + " [-0.5727, 0.1162, 1.5556, ..., -1.8936, 1.4968, -1.3920],\n", + " [-0.3458, -1.6828, -0.5697, ..., -1.6742, 3.2049, 0.6597],\n", + " [-1.2831, 0.7636, 1.0783, ..., -1.1996, -0.0189, 1.4718]],\n", + " device='cuda:0')" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_embeddings" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([6040, 300])" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_embeddings.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can access user embeddings directly with `SasRecModel` class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[-4.3240e-01, -1.0684e-01, -8.1389e-02, ..., 6.6867e-01,\n", + " 4.7710e-01, -1.7522e+00],\n", + " [ 7.8765e-02, 8.0354e-01, -9.5730e-01, ..., -1.9753e+00,\n", + " 1.4708e+00, -7.7084e-01],\n", + " [ 1.0037e+00, 6.5928e-01, -1.4148e+00, ..., 1.0593e+00,\n", + " -7.4484e-01, -2.7631e-01],\n", + " ...,\n", + " [-1.4800e+00, -1.9950e-01, -3.6084e-01, ..., 1.5323e+00,\n", + " 2.6428e-01, -8.7467e-01],\n", + " [ 1.1612e+00, -6.3325e-04, 4.0772e-01, ..., 2.5503e-01,\n", + " -3.4220e-01, 5.4465e-01],\n", + " [-6.3809e-01, 1.0407e+00, -2.1736e+00, ..., 8.7484e-01,\n", + " 1.4989e+00, -1.1730e+00]], device='cuda:0', grad_fn=)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "core_model = SasRecModel(\n", + " tensor_schema,\n", + " num_blocks=2,\n", + " num_heads=2,\n", + " max_len=MAX_SEQ_LEN,\n", + " hidden_size=300,\n", + " dropout=0.5\n", + ")\n", + "core_model.eval()\n", + "core_model = core_model.to(device)\n", + "\n", + "# Get first batch of data \n", + "data = next(iter(prediction_dataloader))\n", + "tensor_map, padding_mask = data.features, data.padding_mask\n", + "\n", + "# Ensure everything is on the same device\n", + "padding_mask = padding_mask.to(device)\n", + "tensor_map[\"item_id_seq\"] = tensor_map[\"item_id_seq\"].to(device)\n", + "\n", + "# Get user embeddings\n", + "user_embeddings_batch = core_model.get_query_embeddings(tensor_map, padding_mask)\n", + "user_embeddings_batch" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([512, 300])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "user_embeddings_batch.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Item embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`get_all_embeddings()` method in transformers can be used to get copies of all embeddings that are presented in model as a dict." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'item_embedding': tensor([[-0.0238, 0.0208, -0.0037, ..., 0.0340, 0.0224, -0.0369],\n", + " [-0.0103, 0.0099, 0.0112, ..., 0.0112, 0.0255, -0.0349],\n", + " [ 0.0090, -0.0228, -0.0544, ..., 0.0024, 0.0438, 0.0060],\n", + " ...,\n", + " [-0.0220, 0.0150, -0.0027, ..., 0.0562, 0.0170, -0.0025],\n", + " [ 0.0147, -0.0004, 0.0214, ..., -0.0098, -0.0017, 0.0299],\n", + " [-0.0095, 0.0142, -0.0030, ..., 0.0435, -0.0034, 0.0077]]),\n", + " 'positional_embedding': tensor([[ 0.1256, 0.0453, -0.0112, ..., -0.1254, 0.0047, -0.0691],\n", + " [-0.0208, -0.0014, 0.0146, ..., 0.0680, -0.0909, -0.0365],\n", + " [-0.0839, 0.0381, 0.0081, ..., -0.0139, -0.0645, -0.0350],\n", + " ...,\n", + " [ 0.0322, 0.0308, -0.0525, ..., 0.0426, 0.0454, 0.0101],\n", + " [-0.0335, -0.0006, 0.0082, ..., -0.0202, -0.0435, -0.0786],\n", + " [-0.0537, -0.0550, 0.1043, ..., 0.0992, 0.0194, 0.0321]])}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_embeddings = best_model.get_all_embeddings()\n", + "all_embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can access item embeddings from this dictionary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[-0.0238, 0.0208, -0.0037, ..., 0.0340, 0.0224, -0.0369],\n", + " [-0.0103, 0.0099, 0.0112, ..., 0.0112, 0.0255, -0.0349],\n", + " [ 0.0090, -0.0228, -0.0544, ..., 0.0024, 0.0438, 0.0060],\n", + " ...,\n", + " [-0.0220, 0.0150, -0.0027, ..., 0.0562, 0.0170, -0.0025],\n", + " [ 0.0147, -0.0004, 0.0214, ..., -0.0098, -0.0017, 0.0299],\n", + " [-0.0095, 0.0142, -0.0030, ..., 0.0435, -0.0034, 0.0077]])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item_embeddings = all_embeddings[\"item_embedding\"]\n", + "item_embeddings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Item embeddings shape is (N_ITEMS, HIDDEN_SIZE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([3883, 300])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item_embeddings.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ensure we got correct dimension and ensure we got the copy of tensor" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "assert item_embeddings.shape[0] == len(tokenizer.item_id_encoder.mapping[\"item_id\"])\n", + "assert id(item_embeddings) != id(best_model._model.item_embedder.item_emb.weight.data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For example we observe one new item id in our training data. We can easily expand our item embedder by one element" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to expand item embeddings by new size `set_item_embeddings_by_size` method is applied" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "best_model.set_item_embeddings_by_size(item_embeddings.shape[0] + 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now our new item embeddings have one extra embedding" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_size = best_model.get_all_embeddings()[\"item_embedding\"].shape[0]\n", + "old_size = item_embeddings.shape[0]\n", + "\n", + "assert new_size == old_size + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can pass our item embeddings that replace the existing ones by calling `set_item_embeddings_by_tensor`.\n", + "\n", + "If tensor contains new items, they will be added to item embedder." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_embeddings_weights = torch.rand((new_size + 1, 300)) # randint used for example only\n", + "\n", + "best_model.set_item_embeddings_by_tensor(new_embeddings_weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At the moment we expanded our item embeddings by one more item and replace weights by passing `new_embeddings_weights`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "old_size = new_size\n", + "new_size = best_model.get_all_embeddings()[\"item_embedding\"].shape[0]\n", + "\n", + "assert new_size == old_size + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we can append tensor for only new items with no replace for existing by calling `append_item_embeddings`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_item_weights = torch.rand((1, 300)) # randint used for example only\n", + "\n", + "best_model.append_item_embeddings(new_item_weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We passed one new example and its weights to item embeddings, thus expanded our vocabulary by one item again" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "old_size = new_size\n", + "new_size = best_model.get_all_embeddings()[\"item_embedding\"].shape[0]\n", + "\n", + "assert new_size == old_size + 1" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example of launching an inference for a single user without using a trainer (in order to speed up)\n", + "An example for the production of an online script\n", + "\n", + "Let's assume that the user's sequence consisted of a sequence of items [1, 2, 3, 4, 5]. \n", + "Сreate a padding mask corresponding to the sequence of items.\n", + "\n", + "It is important to take only the latest MAX_SEQ_LEN or less items." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "item_sequence = torch.arange(1, 5).unsqueeze(0)[:, -MAX_SEQ_LEN:]\n", + "padding_mask = torch.ones_like(item_sequence, dtype=torch.bool)\n", + "sequence_item_count = item_sequence.shape[1]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Wrapping created tensors in the SasRecPredictionBatch entity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "batch = SasRecPredictionBatch(\n", + " query_id=torch.arange(0, item_sequence.shape[0], 1).long(),\n", + " padding_mask=padding_mask.bool(),\n", + " features={ITEM_FEATURE_NAME: item_sequence.long()}\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run predict step of the SasRec and get scores from the model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 2.7048, 2.2736, 2.1556, ..., -0.2144, -1.3674, 1.9593]])" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with torch.no_grad():\n", + " scores = best_model.predict_step(batch, 0)\n", + "scores" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Getting three items with the highest score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 4, 2013, 3032]])" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.topk(scores, k=3).indices" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "0857f111b041889635bea848a6a183706c3f1c18c9dafdb447caa5e8bea01452" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 771b2abce..302bf253a 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -180,6 +180,9 @@ def _split_data( validation_events, validation_gt = splitter.split(test_events) train_events = validation_events + test_gt = test_gt[test_gt[self.item_column].isin(train_events[self.item_column])] + test_gt = test_gt[test_gt[self.user_column].isin(train_events[self.user_column])] + # Limit number of gt events in val and test only if max_num_test_interactions is not null max_test_interactions = self.dataset_cfg["preprocess"]["max_num_test_interactions"] logging.info( @@ -247,7 +250,7 @@ def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: def build_tensor_schema(self) -> TensorSchema: """Build TensorSchema for the sequential model.""" - embedding_dim = self.model_cfg["embedding_dim"] + embedding_dim = self.model_cfg["training_params"]["embedding_dim"] item_feature_name = "item_id_seq" return TensorSchema( diff --git a/replay_benchmarks/benchmark_test.ipynb b/replay_benchmarks/benchmark_test.ipynb new file mode 100644 index 000000000..e85628789 --- /dev/null +++ b/replay_benchmarks/benchmark_test.ipynb @@ -0,0 +1,1312 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# changing core directory\n", + "import os, sys\n", + "dir2 = os.path.abspath('')\n", + "dir1 = os.path.dirname(dir2)\n", + "if not dir1 in sys.path:\n", + " sys.path.append(dir1)\n", + "os.chdir('..')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import os\n", + "import logging\n", + "import warnings\n", + "import yaml\n", + "\n", + "from replay_benchmarks.utils.conf import load_config, seed_everything\n", + "from replay_benchmarks import TrainRunner, InferRunner\n", + "\n", + "import logging\n", + "import os\n", + "from abc import ABC, abstractmethod\n", + "from typing import Tuple\n", + "\n", + "import pandas as pd\n", + "from rs_datasets import MovieLens, Netflix\n", + "\n", + "from replay.data import (\n", + " FeatureHint,\n", + " FeatureInfo,\n", + " FeatureSchema,\n", + " FeatureSource,\n", + " FeatureType,\n", + " Dataset,\n", + ")\n", + "from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter\n", + "from replay.splitters import TimeSplitter\n", + "from replay.utils import DataFrameLike\n", + "from replay.data.nn import (\n", + " SequenceTokenizer,\n", + " SequentialDataset,\n", + " TensorFeatureSource,\n", + " TensorSchema,\n", + " TensorFeatureInfo,\n", + ")\n", + "\n", + "from torch.utils.data import DataLoader\n", + "from replay.models.nn.sequential.sasrec import (\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionDataset,\n", + ")\n", + "from replay.models.nn.sequential.bert4rec import (\n", + " Bert4RecTrainingDataset,\n", + " Bert4RecValidationDataset,\n", + " Bert4RecPredictionDataset,\n", + ")\n", + "\n", + "\n", + "\n", + "import logging\n", + "import os\n", + "\n", + "import lightning as L\n", + "from lightning.pytorch.loggers import CSVLogger\n", + "from lightning.pytorch.callbacks import ModelCheckpoint\n", + "from torch.utils.data import DataLoader\n", + "from torch.profiler import profile, record_function, ProfilerActivity, schedule\n", + "\n", + "from replay_benchmarks.base_runner import BaseRunner\n", + "from replay.metrics import OfflineMetrics, Recall, Precision, MAP, NDCG, HitRate, MRR\n", + "from replay.metrics.torch_metrics_builder import metrics_to_df\n", + "from replay.models.nn.sequential import SasRec, Bert4Rec\n", + "from replay.models.nn.optimizer_utils import FatOptimizerFactory\n", + "from replay.models.nn.sequential.callbacks import ValidationMetricsCallback\n", + "from replay.models.nn.sequential.postprocessors import RemoveSeenItems\n", + "from replay.models.nn.sequential.sasrec import (\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionDataset,\n", + ")\n", + "from replay.models.nn.sequential.bert4rec import (\n", + " Bert4RecTrainingDataset,\n", + " Bert4RecValidationDataset,\n", + " Bert4RecPredictionDataset,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "config_dir = \"./replay_benchmarks/configs\"\n", + "base_config_path = os.path.join(config_dir, \"config.yaml\")\n", + "config = load_config(base_config_path, config_dir)\n", + "\n", + "seed_everything(config[\"env\"][\"SEED\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "config = config\n", + "model_name = config[\"model\"][\"name\"]\n", + "dataset_name = config[\"dataset\"][\"name\"]\n", + "dataset_cfg = config[\"dataset\"]\n", + "model_cfg = config[\"model\"][\"params\"]\n", + "mode = config[\"mode\"][\"name\"]\n", + "item_column = dataset_cfg[\"feature_schema\"][\"item_column\"]\n", + "user_column = dataset_cfg[\"feature_schema\"][\"query_column\"]\n", + "timestamp_column = dataset_cfg[\"feature_schema\"][\"timestamp_column\"]\n", + "tokenizer = None\n", + "interactions = None\n", + "user_features = None\n", + "item_features = None\n", + "\n", + "\n", + "os.environ[\"CUDA_DEVICE_ORDER\"] = config[\"env\"][\"CUDA_DEVICE_ORDER\"]\n", + "os.environ[\"OMP_NUM_THREADS\"] = config[\"env\"][\"OMP_NUM_THREADS\"]\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"] = config[\"env\"][\"CUDA_VISIBLE_DEVICES\"]\n", + "os.environ[\"KAGGLE_USERNAME\"] = \"recsysaccelerate\"\n", + "os.environ[\"KAGGLE_KEY\"] = \"6363e91b656fea576c39e4f55dcc1d00\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "embedding_dim = model_cfg[\"training_params\"][\"embedding_dim\"]\n", + "item_feature_name = \"item_id_seq\"\n", + "\n", + "tensor_schema = TensorSchema(\n", + " TensorFeatureInfo(\n", + " name=item_feature_name,\n", + " is_seq=True,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " feature_sources=[\n", + " TensorFeatureSource(\n", + " FeatureSource.INTERACTIONS,\n", + " item_column,\n", + " )\n", + " ],\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " embedding_dim=embedding_dim,\n", + " )\n", + ")\n", + "\n", + "tensor_schema" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "DATASET_MAPPINGS = {\n", + " \"zvuk\": {\"kaggle\": \"alexxl/zvuk-dataset\", \"file\": \"zvuk-interactions.parquet\"},\n", + " \"megamarket\": {\"kaggle\": \"alexxl/megamarket\", \"file\": \"megamarket.parquet\"},\n", + "}\n", + "SUPPORTED_RS_DATASETS = [\"movielens\", \"netflix\"]\n", + "\n", + "def _download_dataset(\n", + " data_path: str, dataset_name: str, interactions_file: str\n", + "):\n", + " \"\"\"Download dataset from Kaggle or rs_datasets.\"\"\"\n", + " if dataset_name in DATASET_MAPPINGS:\n", + " _download_kaggle_dataset(data_path, dataset_name, interactions_file)\n", + " elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS):\n", + " _download_rs_dataset(data_path, dataset_name, interactions_file)\n", + " else:\n", + " raise ValueError(f\"Unsupported dataset: {dataset_name}\")\n", + "\n", + "def _download_kaggle_dataset(\n", + " data_path: str, dataset_name: str, interactions_file: str\n", + ") -> None:\n", + " from kaggle.api.kaggle_api_extended import KaggleApi\n", + "\n", + " \"\"\"Download dataset from Kaggle.\"\"\"\n", + " kaggle_info = DATASET_MAPPINGS[dataset_name]\n", + " kaggle_dataset = kaggle_info[\"kaggle\"]\n", + " raw_data_file = os.path.join(data_path, kaggle_info[\"file\"])\n", + "\n", + " os.environ.setdefault(\"KAGGLE_USERNAME\", \"recsysaccelerate\")\n", + " os.environ.setdefault(\"KAGGLE_KEY\", \"6363e91b656fea576c39e4f55dcc1d00\")\n", + "\n", + " api = KaggleApi()\n", + " api.authenticate()\n", + "\n", + " api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True)\n", + " logging.info(f\"Dataset downloaded and extracted to {data_path}\")\n", + "\n", + " interactions = pd.read_parquet(raw_data_file)\n", + " interactions[timestamp_column] = interactions[\n", + " timestamp_column\n", + " ].astype(\"int64\")\n", + " if dataset_name == \"megamarket\":\n", + " interactions = interactions[interactions.event == 2] # take only purchase\n", + " interactions.to_parquet(interactions_file)\n", + "\n", + "def _download_rs_dataset(\n", + " data_path: str, dataset_name: str, interactions_file: str\n", + ") -> None:\n", + " \"\"\"Download dataset from rs_datasets.\"\"\"\n", + " if \"movielens\" in dataset_name:\n", + " version = dataset_name.split(\"_\")[1]\n", + " movielens = MovieLens(version=version, path=data_path)\n", + " interactions = movielens.ratings\n", + " interactions = interactions[interactions[dataset_cfg[\"feature_schema\"][\"rating_column\"]] > dataset_cfg[\"preprocess\"][\"min_rating\"]]\n", + " elif dataset_name == \"netflix\":\n", + " netflix = Netflix(path=data_path)\n", + " interactions = pd.concat([netflix.train, netflix.test]).fillna(5).reset_index(drop=True)\n", + " interactions = interactions[interactions[dataset_cfg[\"feature_schema\"][\"rating_column\"]] > dataset_cfg[\"preprocess\"][\"min_rating\"]]\n", + " interactions = interactions.sort_values(by=[user_column, timestamp_column])\n", + " interactions[timestamp_column] += interactions.groupby([user_column, timestamp_column]).cumcount()\n", + " else:\n", + " raise ValueError(f\"Unsupported dataset: {dataset_name}\")\n", + "\n", + " interactions[timestamp_column] = interactions[\n", + " timestamp_column\n", + " ].astype(\"int64\")\n", + " interactions.to_parquet(interactions_file)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
0111935978300760
116613978302109
219143978301968
3134084978300275
4123555978824291
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "0 1 1193 5 978300760\n", + "1 1 661 3 978302109\n", + "2 1 914 3 978301968\n", + "3 1 3408 4 978300275\n", + "4 1 2355 5 978824291" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset_name = dataset_cfg[\"name\"]\n", + "data_path = dataset_cfg[\"path\"]\n", + "interactions_file = os.path.join(data_path, \"interactions.parquet\")\n", + "\n", + "if not os.path.exists(interactions_file):\n", + " _download_dataset(data_path, dataset_name, interactions_file)\n", + "\n", + "interactions = pd.read_parquet(interactions_file)\n", + "interactions.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " user_id item_id rating timestamp\n", + "count 1.000209e+06 1.000209e+06 1.000209e+06 1.000209e+06\n", + "mean 3.024512e+03 1.865540e+03 3.581564e+00 9.722437e+08\n", + "std 1.728413e+03 1.096041e+03 1.117102e+00 1.215256e+07\n", + "min 1.000000e+00 1.000000e+00 1.000000e+00 9.567039e+08\n", + "25% 1.506000e+03 1.030000e+03 3.000000e+00 9.653026e+08\n", + "50% 3.070000e+03 1.835000e+03 4.000000e+00 9.730180e+08\n", + "75% 4.476000e+03 2.770000e+03 4.000000e+00 9.752209e+08\n", + "max 6.040000e+03 3.952000e+03 5.000000e+00 1.046455e+09\n" + ] + } + ], + "source": [ + "print(interactions.describe())" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20 1\n" + ] + }, + { + "data": { + "text/plain": [ + "(18, 5)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(interactions.groupby(user_column).size().min(), interactions.groupby(item_column).size().min())\n", + "\n", + "interactions = MinCountFilter(\n", + " num_entries=dataset_cfg[\"preprocess\"][\"min_users_per_item\"],\n", + " groupby_column=item_column,\n", + ").transform(interactions)\n", + "\n", + "interactions = MinCountFilter(\n", + " num_entries=dataset_cfg[\"preprocess\"][\"min_items_per_user\"],\n", + " groupby_column=user_column,\n", + ").transform(interactions)\n", + "\n", + "\n", + "interactions.groupby(user_column).size().min(), interactions.groupby(item_column).size().min()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
count999611.000000999611.000000999611.0000009.996110e+05
mean3024.5765371865.4394283.5819749.722409e+08
std1728.4367051095.9763361.1168941.214827e+07
min1.0000001.0000001.0000009.567039e+08
25%1506.0000001030.0000003.0000009.653025e+08
50%3070.0000001835.0000004.0000009.730170e+08
75%4477.0000002770.0000004.0000009.752208e+08
max6040.0000003952.0000005.0000001.046455e+09
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "count 999611.000000 999611.000000 999611.000000 9.996110e+05\n", + "mean 3024.576537 1865.439428 3.581974 9.722409e+08\n", + "std 1728.436705 1095.976336 1.116894 1.214827e+07\n", + "min 1.000000 1.000000 1.000000 9.567039e+08\n", + "25% 1506.000000 1030.000000 3.000000 9.653025e+08\n", + "50% 3070.000000 1835.000000 4.000000 9.730170e+08\n", + "75% 4477.000000 2770.000000 4.000000 9.752208e+08\n", + "max 6040.000000 3952.000000 5.000000 1.046455e+09" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interactions.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Distribution of seq_len in validation:\n", + "count 489.000000\n", + "mean 40.132924\n", + "std 84.792205\n", + "min 1.000000\n", + "25% 3.000000\n", + "50% 8.000000\n", + "75% 36.000000\n", + "max 1002.000000\n", + "Name: item_id, dtype: float64.\n", + "Distribution of seq_len in test:\n", + "count 1022.000000\n", + "mean 79.366928\n", + "std 111.068752\n", + "min 1.000000\n", + "25% 13.000000\n", + "50% 37.000000\n", + "75% 101.000000\n", + "max 1010.000000\n", + "Name: item_id, dtype: float64.\n" + ] + } + ], + "source": [ + "splitter = TimeSplitter(\n", + " time_threshold=dataset_cfg[\"preprocess\"][\"global_split_ratio\"],\n", + " drop_cold_users=True,\n", + " drop_cold_items=True,\n", + " item_column=item_column,\n", + " query_column=user_column,\n", + " timestamp_column=timestamp_column,\n", + ")\n", + "\n", + "# train_events, validation_events, validation_gt, test_events, test_gt = (\n", + "# _split_data(splitter, interactions)\n", + "# )\n", + "\n", + "test_events, test_gt = splitter.split(interactions)\n", + "validation_events, validation_gt = splitter.split(test_events)\n", + "train_events = validation_events\n", + "\n", + "test_gt = test_gt[test_gt[item_column].isin(train_events[item_column])]\n", + "test_gt = test_gt[test_gt[user_column].isin(train_events[user_column])]\n", + "\n", + "\n", + "# Limit number of gt events in val and test only if max_num_test_interactions is not null\n", + "max_test_interactions = dataset_cfg[\"preprocess\"][\"max_num_test_interactions\"]\n", + "print(f\"Distribution of seq_len in validation:\\n{validation_gt.groupby(user_column)[item_column].agg('count').describe()}.\")\n", + "print(f\"Distribution of seq_len in test:\\n{test_gt.groupby(user_column)[item_column].agg('count').describe()}.\")\n", + "if max_test_interactions is not None:\n", + " \n", + " validation_gt = NumInteractionsFilter(\n", + " num_interactions=max_test_interactions,\n", + " first=True,\n", + " query_column=user_column,\n", + " item_column=item_column,\n", + " timestamp_column=timestamp_column,\n", + " ).transform(validation_gt)\n", + " print(f\"Distribution of seq_len in validation after filtering:\\n{validation_gt.groupby(user_column)[item_column].agg('count').describe()}.\")\n", + "\n", + " test_gt = NumInteractionsFilter(\n", + " num_interactions=max_test_interactions,\n", + " first=True,\n", + " query_column=user_column,\n", + " item_column=item_column,\n", + " timestamp_column=timestamp_column,\n", + " ).transform(test_gt)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_iditem_idratingtimestamp
15395099027063978137357
15391499028263978137357
15390899024923978137357
15392399011274978137357
15391599026834978137392
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "153950 990 2706 3 978137357\n", + "153914 990 2826 3 978137357\n", + "153908 990 2492 3 978137357\n", + "153923 990 1127 4 978137357\n", + "153915 990 2683 4 978137392" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test_gt.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_events['timestamp'].max() <= validation_events['timestamp'].min()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('timestamp', 'item_id', 'user_id')" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timestamp_column, item_column, user_column" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "def test_splitting(events, gt, name=''):\n", + " if events[timestamp_column].max() > gt[timestamp_column].min():\n", + " print(\"Problem with time points in\", name)\n", + " if len(set(gt[user_column].unique().tolist()) - set(events[user_column].unique().tolist())) > 0:\n", + " print(\"Problem with cold users in\", name)\n", + " if len(set(gt[item_column].unique().tolist()) - set(events[item_column].unique().tolist())) > 0:\n", + " print(\"Problem with cold items in\", name)\n", + "\n", + "\n", + "test_splitting(train_events, test_gt, \"train events, test gt\")\n", + "test_splitting(train_events, validation_gt, \"train events, valid gt\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "set()" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set([1, 2, 3]) - set({1, 2, 3, 4})" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_feature_schema(is_ground_truth: bool) -> FeatureSchema:\n", + " \"\"\"Prepare the feature schema based on whether ground truth is needed.\"\"\"\n", + " base_features = FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=user_column,\n", + " feature_hint=FeatureHint.QUERY_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " FeatureInfo(\n", + " column=item_column,\n", + " feature_hint=FeatureHint.ITEM_ID,\n", + " feature_type=FeatureType.CATEGORICAL,\n", + " ),\n", + " ]\n", + " )\n", + " if is_ground_truth:\n", + " return base_features\n", + "\n", + " return base_features + FeatureSchema(\n", + " [\n", + " FeatureInfo(\n", + " column=timestamp_column,\n", + " feature_type=FeatureType.NUMERICAL,\n", + " feature_hint=FeatureHint.TIMESTAMP,\n", + " ),\n", + " ]\n", + " )\n", + "\n", + "feature_schema = prepare_feature_schema(is_ground_truth=False)\n", + "ground_truth_schema = prepare_feature_schema(is_ground_truth=True)\n", + "\n", + "train_dataset = Dataset(\n", + " feature_schema=feature_schema,\n", + " interactions=train_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "validation_dataset = Dataset(\n", + " feature_schema=feature_schema,\n", + " interactions=validation_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "validation_gt_dataset = Dataset(\n", + " feature_schema=ground_truth_schema,\n", + " interactions=validation_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "test_dataset = Dataset(\n", + " feature_schema=feature_schema,\n", + " interactions=test_events,\n", + " query_features=user_features,\n", + " item_features=item_features,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n", + "test_gt_dataset = Dataset(\n", + " feature_schema=ground_truth_schema,\n", + " interactions=test_gt,\n", + " check_consistency=True,\n", + " categorical_encoded=False,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "tokenizer = SequenceTokenizer(\n", + " tensor_schema, allow_collect_to_master=True, handle_unknown_rule=\"drop\"\n", + ")\n", + "tokenizer.fit(train_dataset)\n", + "\n", + "seq_train_dataset = tokenizer.transform(train_dataset)\n", + "# seq_validation_dataset, seq_validation_gt = _prepare_sequential_validation(\n", + "# validation_dataset, validation_gt\n", + "# )\n", + "\n", + "seq_validation_dataset = tokenizer.transform(validation_dataset)\n", + "seq_validation_gt = tokenizer.transform(\n", + " validation_gt_dataset, [tensor_schema.item_id_feature_name]\n", + ")\n", + "\n", + "seq_validation_dataset, seq_validation_gt = SequentialDataset.keep_common_query_ids(\n", + " seq_validation_dataset, seq_validation_gt\n", + ")\n", + "\n", + "\n", + "test_query_ids = test_gt_dataset.query_ids\n", + "test_query_ids_np = tokenizer.query_id_encoder.transform(test_query_ids)[\n", + " user_column\n", + "].values\n", + "seq_test_dataset = tokenizer.transform(test_dataset).filter_by_query_id(\n", + " test_query_ids_np\n", + ")\n", + "# seq_test_dataset = self._prepare_sequential_test(test_dataset, test_gt)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'user_id': {6040: 0, 6039: 1, 6038: 2, 6037: 3, 6036: 4, 6035: 5, 6034: 6, 6033: 7, 6032: 8, 6031: 9, 6030: 10, 6029: 11, 6028: 12, 6027: 13, 6026: 14, 6025: 15, 6024: 16, 6023: 17, 6022: 18, 6021: 19, 6020: 20, 6019: 21, 6018: 22, 6017: 23, 6016: 24, 6015: 25, 6014: 26, 6013: 27, 6012: 28, 6011: 29, 6010: 30, 6009: 31, 6007: 32, 6008: 33, 6006: 34, 6005: 35, 6004: 36, 6003: 37, 6002: 38, 6001: 39, 6000: 40, 5999: 41, 5998: 42, 5997: 43, 5996: 44, 5995: 45, 5994: 46, 5993: 47, 5992: 48, 5991: 49, 5990: 50, 5989: 51, 5988: 52, 5987: 53, 5986: 54, 5984: 55, 5983: 56, 5982: 57, 5981: 58, 5979: 59, 5980: 60, 5978: 61, 5977: 62, 5976: 63, 5975: 64, 5974: 65, 5973: 66, 5972: 67, 5971: 68, 5970: 69, 5969: 70, 5968: 71, 5967: 72, 5966: 73, 5965: 74, 5964: 75, 5963: 76, 5962: 77, 5961: 78, 5960: 79, 5959: 80, 5958: 81, 5957: 82, 5956: 83, 5955: 84, 5954: 85, 5953: 86, 5952: 87, 5951: 88, 5950: 89, 5948: 90, 5947: 91, 5946: 92, 5945: 93, 5944: 94, 5943: 95, 5942: 96, 5941: 97, 5940: 98, 5939: 99, 5938: 100, 5937: 101, 5949: 102, 5936: 103, 5935: 104, 5934: 105, 5933: 106, 5932: 107, 5931: 108, 5930: 109, 5929: 110, 5928: 111, 5927: 112, 5926: 113, 5925: 114, 5924: 115, 5923: 116, 5922: 117, 5921: 118, 5920: 119, 5919: 120, 5918: 121, 5917: 122, 5916: 123, 5915: 124, 5914: 125, 5913: 126, 5912: 127, 5911: 128, 5910: 129, 5909: 130, 5908: 131, 5907: 132, 5906: 133, 5905: 134, 5904: 135, 5903: 136, 5902: 137, 5901: 138, 5900: 139, 5899: 140, 5898: 141, 5897: 142, 5896: 143, 5895: 144, 5894: 145, 5893: 146, 5892: 147, 5891: 148, 5890: 149, 5889: 150, 5888: 151, 5887: 152, 5886: 153, 5885: 154, 5884: 155, 5883: 156, 5881: 157, 5882: 158, 5880: 159, 5879: 160, 5878: 161, 5877: 162, 5876: 163, 5875: 164, 5874: 165, 5873: 166, 5872: 167, 5871: 168, 5870: 169, 5869: 170, 5868: 171, 5867: 172, 5866: 173, 5865: 174, 5864: 175, 5863: 176, 5862: 177, 5861: 178, 5860: 179, 5859: 180, 5858: 181, 5857: 182, 5856: 183, 5855: 184, 5854: 185, 5853: 186, 5852: 187, 5851: 188, 5850: 189, 5849: 190, 5848: 191, 5847: 192, 5846: 193, 5845: 194, 5844: 195, 5843: 196, 5842: 197, 5841: 198, 5840: 199, 5839: 200, 5838: 201, 5837: 202, 5836: 203, 5835: 204, 5834: 205, 5833: 206, 5832: 207, 5831: 208, 5830: 209, 5829: 210, 5828: 211, 5827: 212, 5826: 213, 5825: 214, 5824: 215, 5823: 216, 5822: 217, 5821: 218, 5820: 219, 5819: 220, 5818: 221, 5817: 222, 5816: 223, 5815: 224, 5814: 225, 5813: 226, 5812: 227, 5811: 228, 5810: 229, 5809: 230, 5808: 231, 5807: 232, 5806: 233, 5805: 234, 5804: 235, 5803: 236, 5802: 237, 5801: 238, 5800: 239, 5799: 240, 5798: 241, 5797: 242, 5796: 243, 5795: 244, 5794: 245, 5793: 246, 5792: 247, 5791: 248, 5790: 249, 5789: 250, 5788: 251, 5787: 252, 5786: 253, 5785: 254, 5784: 255, 5783: 256, 5782: 257, 5781: 258, 5780: 259, 5779: 260, 5778: 261, 5777: 262, 5776: 263, 5775: 264, 5774: 265, 5773: 266, 5772: 267, 5771: 268, 5770: 269, 5769: 270, 5768: 271, 5767: 272, 5766: 273, 5765: 274, 5764: 275, 5763: 276, 5762: 277, 5761: 278, 5760: 279, 5759: 280, 5758: 281, 5757: 282, 5756: 283, 5755: 284, 5754: 285, 5753: 286, 5752: 287, 5751: 288, 5750: 289, 5749: 290, 5748: 291, 5747: 292, 5746: 293, 5745: 294, 5744: 295, 5743: 296, 5742: 297, 5741: 298, 5740: 299, 5739: 300, 5738: 301, 5737: 302, 5736: 303, 5735: 304, 5734: 305, 5733: 306, 5732: 307, 5731: 308, 5730: 309, 5729: 310, 5728: 311, 5727: 312, 5726: 313, 5725: 314, 5724: 315, 5723: 316, 5722: 317, 5721: 318, 5720: 319, 5719: 320, 5718: 321, 5717: 322, 5716: 323, 5715: 324, 5714: 325, 5713: 326, 5712: 327, 5711: 328, 5710: 329, 5709: 330, 5708: 331, 5707: 332, 5706: 333, 5705: 334, 5704: 335, 5703: 336, 5702: 337, 5701: 338, 5700: 339, 5699: 340, 5698: 341, 5697: 342, 5696: 343, 5695: 344, 5694: 345, 5693: 346, 5692: 347, 5691: 348, 5689: 349, 5690: 350, 5688: 351, 5687: 352, 5686: 353, 5685: 354, 5684: 355, 5683: 356, 5682: 357, 5681: 358, 5680: 359, 5679: 360, 5678: 361, 5677: 362, 5676: 363, 5675: 364, 5674: 365, 5673: 366, 5672: 367, 5671: 368, 5670: 369, 5669: 370, 5668: 371, 5667: 372, 5666: 373, 5665: 374, 5664: 375, 5663: 376, 5662: 377, 5661: 378, 5660: 379, 5659: 380, 5658: 381, 5657: 382, 5656: 383, 5655: 384, 5654: 385, 5653: 386, 5652: 387, 5651: 388, 5650: 389, 5649: 390, 5648: 391, 5647: 392, 5646: 393, 5645: 394, 5644: 395, 5643: 396, 5642: 397, 5641: 398, 5640: 399, 5639: 400, 5638: 401, 5637: 402, 5636: 403, 5635: 404, 5634: 405, 5633: 406, 5632: 407, 5631: 408, 5630: 409, 5629: 410, 5628: 411, 5627: 412, 5626: 413, 5625: 414, 5624: 415, 5623: 416, 5622: 417, 5621: 418, 5620: 419, 5619: 420, 5618: 421, 5617: 422, 5616: 423, 5615: 424, 5614: 425, 5613: 426, 5612: 427, 5611: 428, 5610: 429, 5609: 430, 5608: 431, 5607: 432, 5606: 433, 5605: 434, 5604: 435, 5603: 436, 5602: 437, 5601: 438, 5600: 439, 5599: 440, 5598: 441, 5597: 442, 5596: 443, 5595: 444, 5594: 445, 5593: 446, 5592: 447, 5591: 448, 5590: 449, 5589: 450, 5588: 451, 5587: 452, 5586: 453, 5585: 454, 5584: 455, 5583: 456, 5582: 457, 5581: 458, 5580: 459, 5578: 460, 5579: 461, 5577: 462, 5576: 463, 5575: 464, 5574: 465, 5573: 466, 5572: 467, 5571: 468, 5570: 469, 5569: 470, 5568: 471, 5567: 472, 5566: 473, 5565: 474, 5564: 475, 5563: 476, 5562: 477, 5561: 478, 5560: 479, 5559: 480, 5558: 481, 5557: 482, 5556: 483, 5555: 484, 5554: 485, 5553: 486, 5552: 487, 5551: 488, 5550: 489, 5549: 490, 5548: 491, 5547: 492, 5546: 493, 5545: 494, 5544: 495, 5543: 496, 5542: 497, 5541: 498, 5540: 499, 5539: 500, 5538: 501, 5537: 502, 5536: 503, 5535: 504, 5534: 505, 5533: 506, 5532: 507, 5531: 508, 5530: 509, 5529: 510, 5528: 511, 5527: 512, 5526: 513, 5525: 514, 5524: 515, 5523: 516, 5522: 517, 5521: 518, 5520: 519, 5519: 520, 5518: 521, 5517: 522, 5516: 523, 5515: 524, 5514: 525, 5513: 526, 5512: 527, 5511: 528, 5510: 529, 5509: 530, 5508: 531, 5507: 532, 5506: 533, 5505: 534, 5504: 535, 5503: 536, 5502: 537, 5501: 538, 5500: 539, 5499: 540, 5498: 541, 5497: 542, 5496: 543, 5495: 544, 5494: 545, 5493: 546, 5491: 547, 5490: 548, 5492: 549, 5489: 550, 5488: 551, 5487: 552, 5486: 553, 5485: 554, 5484: 555, 5483: 556, 5482: 557, 5481: 558, 5480: 559, 5479: 560, 5478: 561, 5477: 562, 5476: 563, 5474: 564, 5475: 565, 5473: 566, 5472: 567, 5471: 568, 5470: 569, 5469: 570, 5468: 571, 5466: 572, 5467: 573, 5465: 574, 5464: 575, 5463: 576, 5462: 577, 5461: 578, 5460: 579, 5459: 580, 5458: 581, 5457: 582, 5456: 583, 5455: 584, 5454: 585, 5453: 586, 5452: 587, 5451: 588, 5450: 589, 5449: 590, 5448: 591, 5447: 592, 5446: 593, 5445: 594, 5444: 595, 5443: 596, 5442: 597, 5441: 598, 5440: 599, 5439: 600, 5438: 601, 5437: 602, 5436: 603, 5435: 604, 5434: 605, 5433: 606, 5432: 607, 5431: 608, 5430: 609, 5429: 610, 5428: 611, 5427: 612, 5426: 613, 5425: 614, 5424: 615, 5423: 616, 5422: 617, 5421: 618, 5420: 619, 5419: 620, 5418: 621, 5417: 622, 5416: 623, 5415: 624, 5414: 625, 5413: 626, 5412: 627, 5411: 628, 5410: 629, 5409: 630, 5408: 631, 5407: 632, 5406: 633, 5405: 634, 5404: 635, 5403: 636, 5402: 637, 5401: 638, 5400: 639, 5399: 640, 5398: 641, 5397: 642, 5396: 643, 5395: 644, 5394: 645, 5393: 646, 5392: 647, 5391: 648, 5390: 649, 5389: 650, 5388: 651, 5387: 652, 5386: 653, 5385: 654, 5384: 655, 5383: 656, 5382: 657, 5381: 658, 5380: 659, 5379: 660, 5378: 661, 5377: 662, 5376: 663, 5375: 664, 5374: 665, 5373: 666, 5372: 667, 5371: 668, 5370: 669, 5369: 670, 5368: 671, 5366: 672, 5367: 673, 5365: 674, 5364: 675, 5363: 676, 5362: 677, 5361: 678, 5360: 679, 5359: 680, 5358: 681, 5357: 682, 5355: 683, 5356: 684, 5354: 685, 5353: 686, 5352: 687, 5985: 688, 5351: 689, 5350: 690, 5349: 691, 5348: 692, 5347: 693, 5346: 694, 5345: 695, 5344: 696, 5343: 697, 5342: 698, 5341: 699, 5340: 700, 5339: 701, 5338: 702, 5337: 703, 5336: 704, 5335: 705, 5334: 706, 5333: 707, 5332: 708, 5331: 709, 5330: 710, 5329: 711, 5328: 712, 5327: 713, 5326: 714, 5325: 715, 5324: 716, 5323: 717, 5322: 718, 5321: 719, 5320: 720, 5319: 721, 5318: 722, 5317: 723, 5316: 724, 5315: 725, 5314: 726, 5313: 727, 5312: 728, 5311: 729, 5310: 730, 5309: 731, 5308: 732, 5307: 733, 5306: 734, 5305: 735, 5304: 736, 5303: 737, 5302: 738, 5301: 739, 5300: 740, 5299: 741, 5298: 742, 5297: 743, 5296: 744, 5295: 745, 5294: 746, 5293: 747, 5292: 748, 5291: 749, 5290: 750, 5289: 751, 5288: 752, 5287: 753, 5286: 754, 5285: 755, 5284: 756, 5283: 757, 5282: 758, 5281: 759, 5280: 760, 5279: 761, 5278: 762, 5277: 763, 5276: 764, 5275: 765, 5274: 766, 5273: 767, 5272: 768, 5271: 769, 5270: 770, 5269: 771, 5268: 772, 5267: 773, 5266: 774, 5265: 775, 5264: 776, 5263: 777, 5262: 778, 5261: 779, 5260: 780, 5259: 781, 5258: 782, 5257: 783, 5256: 784, 5255: 785, 5254: 786, 5253: 787, 5252: 788, 5251: 789, 5250: 790, 5249: 791, 5248: 792, 5247: 793, 5246: 794, 5245: 795, 5244: 796, 5243: 797, 5242: 798, 5241: 799, 5240: 800, 5239: 801, 5238: 802, 5237: 803, 5236: 804, 5235: 805, 5234: 806, 5233: 807, 5232: 808, 5231: 809, 5230: 810, 5229: 811, 5228: 812, 5227: 813, 5225: 814, 5224: 815, 5223: 816, 5222: 817, 5221: 818, 5220: 819, 5219: 820, 5218: 821, 5217: 822, 5216: 823, 5215: 824, 5214: 825, 5213: 826, 5226: 827, 5212: 828, 5211: 829, 5210: 830, 5209: 831, 5208: 832, 5207: 833, 5206: 834, 5205: 835, 5204: 836, 5203: 837, 5202: 838, 5201: 839, 5200: 840, 5199: 841, 5198: 842, 5197: 843, 5196: 844, 5195: 845, 5194: 846, 5193: 847, 5192: 848, 5191: 849, 5190: 850, 5189: 851, 5188: 852, 5187: 853, 5186: 854, 5185: 855, 5184: 856, 5183: 857, 5182: 858, 5181: 859, 5180: 860, 5179: 861, 5178: 862, 5177: 863, 5176: 864, 5175: 865, 5174: 866, 5173: 867, 5171: 868, 5170: 869, 5169: 870, 5168: 871, 5167: 872, 5165: 873, 5166: 874, 5164: 875, 5163: 876, 5162: 877, 5161: 878, 5160: 879, 5159: 880, 5158: 881, 5156: 882, 5157: 883, 5155: 884, 5154: 885, 5153: 886, 5152: 887, 5151: 888, 5150: 889, 5149: 890, 5148: 891, 5147: 892, 5146: 893, 5145: 894, 5144: 895, 5143: 896, 5142: 897, 5141: 898, 5140: 899, 5139: 900, 5138: 901, 5137: 902, 5136: 903, 5135: 904, 5134: 905, 5133: 906, 5132: 907, 5131: 908, 5130: 909, 5129: 910, 5128: 911, 5127: 912, 5126: 913, 5125: 914, 5124: 915, 5123: 916, 5122: 917, 5121: 918, 5120: 919, 5119: 920, 5118: 921, 5117: 922, 5116: 923, 5115: 924, 5114: 925, 5113: 926, 5112: 927, 5111: 928, 5110: 929, 5109: 930, 5108: 931, 5107: 932, 5106: 933, 5105: 934, 5104: 935, 5103: 936, 5102: 937, 5100: 938, 5101: 939, 5099: 940, 5098: 941, 5097: 942, 5096: 943, 5095: 944, 5094: 945, 5093: 946, 5092: 947, 5091: 948, 5089: 949, 5090: 950, 5088: 951, 5087: 952, 5086: 953, 5085: 954, 5084: 955, 5083: 956, 5082: 957, 5081: 958, 5080: 959, 5079: 960, 5078: 961, 5077: 962, 5076: 963, 5075: 964, 5074: 965, 5073: 966, 5072: 967, 5071: 968, 5070: 969, 5068: 970, 5067: 971, 5066: 972, 5065: 973, 5064: 974, 5063: 975, 5062: 976, 5061: 977, 5060: 978, 5058: 979, 5059: 980, 5057: 981, 5056: 982, 5055: 983, 5054: 984, 5053: 985, 5052: 986, 5051: 987, 5050: 988, 5049: 989, 5048: 990, 5047: 991, 5046: 992, 5045: 993, 5044: 994, 5043: 995, 5042: 996, 5041: 997, 5040: 998, 5039: 999, 5038: 1000, 5037: 1001, 5036: 1002, 5035: 1003, 5034: 1004, 5033: 1005, 5032: 1006, 5031: 1007, 5030: 1008, 5029: 1009, 5028: 1010, 5027: 1011, 5026: 1012, 5025: 1013, 5069: 1014, 5024: 1015, 5023: 1016, 5022: 1017, 5021: 1018, 5020: 1019, 5019: 1020, 5018: 1021, 5017: 1022, 5016: 1023, 5015: 1024, 5013: 1025, 5014: 1026, 5012: 1027, 5011: 1028, 5010: 1029, 5008: 1030, 5009: 1031, 5007: 1032, 5006: 1033, 5005: 1034, 5004: 1035, 5003: 1036, 5002: 1037, 5001: 1038, 5000: 1039, 4999: 1040, 4998: 1041, 4997: 1042, 4996: 1043, 4995: 1044, 4993: 1045, 4994: 1046, 4992: 1047, 4991: 1048, 4990: 1049, 4989: 1050, 4988: 1051, 4986: 1052, 4987: 1053, 4985: 1054, 4984: 1055, 4983: 1056, 4982: 1057, 4981: 1058, 4980: 1059, 4979: 1060, 4978: 1061, 4977: 1062, 4976: 1063, 4975: 1064, 4974: 1065, 4973: 1066, 4972: 1067, 4971: 1068, 4970: 1069, 4968: 1070, 4969: 1071, 4967: 1072, 4966: 1073, 4965: 1074, 4964: 1075, 4963: 1076, 4962: 1077, 4961: 1078, 4960: 1079, 4959: 1080, 4958: 1081, 4957: 1082, 4956: 1083, 4955: 1084, 4954: 1085, 4953: 1086, 4952: 1087, 4951: 1088, 4950: 1089, 4949: 1090, 4948: 1091, 4947: 1092, 4946: 1093, 4945: 1094, 4944: 1095, 4943: 1096, 4942: 1097, 4941: 1098, 4940: 1099, 4939: 1100, 4938: 1101, 4937: 1102, 4936: 1103, 4935: 1104, 4934: 1105, 4933: 1106, 4932: 1107, 4931: 1108, 4930: 1109, 4929: 1110, 4928: 1111, 4927: 1112, 4926: 1113, 4925: 1114, 4924: 1115, 4923: 1116, 4922: 1117, 4921: 1118, 4920: 1119, 4919: 1120, 4918: 1121, 4917: 1122, 4916: 1123, 4915: 1124, 4914: 1125, 4913: 1126, 4912: 1127, 4911: 1128, 4910: 1129, 4909: 1130, 4908: 1131, 4907: 1132, 4906: 1133, 4905: 1134, 4904: 1135, 4903: 1136, 4902: 1137, 4901: 1138, 4900: 1139, 4899: 1140, 4898: 1141, 4897: 1142, 5172: 1143, 4895: 1144, 4894: 1145, 4893: 1146, 4892: 1147, 4891: 1148, 4890: 1149, 4889: 1150, 4888: 1151, 4887: 1152, 4886: 1153, 4885: 1154, 4884: 1155, 4883: 1156, 4882: 1157, 4881: 1158, 4880: 1159, 4879: 1160, 4878: 1161, 4877: 1162, 4876: 1163, 4875: 1164, 4874: 1165, 4873: 1166, 4871: 1167, 4872: 1168, 4870: 1169, 4869: 1170, 4868: 1171, 4867: 1172, 4866: 1173, 4865: 1174, 4864: 1175, 4863: 1176, 4862: 1177, 4861: 1178, 4860: 1179, 4859: 1180, 4858: 1181, 4857: 1182, 4856: 1183, 4855: 1184, 4854: 1185, 4853: 1186, 4852: 1187, 4851: 1188, 4849: 1189, 4848: 1190, 4850: 1191, 4847: 1192, 4846: 1193, 4845: 1194, 4844: 1195, 4843: 1196, 4842: 1197, 4841: 1198, 4840: 1199, 4839: 1200, 4838: 1201, 4837: 1202, 4836: 1203, 4835: 1204, 4834: 1205, 4833: 1206, 4832: 1207, 4831: 1208, 4830: 1209, 4829: 1210, 4828: 1211, 4827: 1212, 4826: 1213, 4825: 1214, 4824: 1215, 4823: 1216, 4822: 1217, 4821: 1218, 4820: 1219, 4819: 1220, 4818: 1221, 4817: 1222, 4816: 1223, 4815: 1224, 4814: 1225, 4813: 1226, 4812: 1227, 4811: 1228, 4810: 1229, 4809: 1230, 4808: 1231, 4807: 1232, 4806: 1233, 4805: 1234, 4804: 1235, 4803: 1236, 4802: 1237, 4801: 1238, 4800: 1239, 4799: 1240, 4798: 1241, 4797: 1242, 4796: 1243, 4795: 1244, 4794: 1245, 4793: 1246, 4792: 1247, 4791: 1248, 4790: 1249, 4788: 1250, 4789: 1251, 4787: 1252, 4786: 1253, 4785: 1254, 4784: 1255, 4783: 1256, 4782: 1257, 4781: 1258, 4780: 1259, 4779: 1260, 4778: 1261, 4777: 1262, 4776: 1263, 4775: 1264, 4774: 1265, 4773: 1266, 4772: 1267, 4771: 1268, 4770: 1269, 4769: 1270, 4768: 1271, 4767: 1272, 4766: 1273, 4765: 1274, 4764: 1275, 4763: 1276, 4762: 1277, 4761: 1278, 4760: 1279, 4759: 1280, 4758: 1281, 4757: 1282, 4756: 1283, 4755: 1284, 4754: 1285, 4753: 1286, 4752: 1287, 4751: 1288, 4750: 1289, 4749: 1290, 4748: 1291, 4747: 1292, 4746: 1293, 4745: 1294, 4744: 1295, 4743: 1296, 4742: 1297, 4741: 1298, 4740: 1299, 4739: 1300, 4738: 1301, 4737: 1302, 4736: 1303, 4735: 1304, 4734: 1305, 4733: 1306, 4732: 1307, 4731: 1308, 4730: 1309, 4729: 1310, 4728: 1311, 4727: 1312, 4726: 1313, 4725: 1314, 4724: 1315, 4723: 1316, 4722: 1317, 4721: 1318, 4720: 1319, 4719: 1320, 4718: 1321, 4716: 1322, 4715: 1323, 4714: 1324, 4713: 1325, 4712: 1326, 4711: 1327, 4717: 1328, 4710: 1329, 4709: 1330, 4708: 1331, 4707: 1332, 4706: 1333, 4705: 1334, 4704: 1335, 4703: 1336, 4702: 1337, 4701: 1338, 4700: 1339, 4699: 1340, 4698: 1341, 4697: 1342, 4696: 1343, 4695: 1344, 4694: 1345, 4693: 1346, 4692: 1347, 4691: 1348, 4690: 1349, 4689: 1350, 4688: 1351, 4687: 1352, 4686: 1353, 4685: 1354, 4684: 1355, 4683: 1356, 4682: 1357, 4681: 1358, 4680: 1359, 4679: 1360, 4678: 1361, 4677: 1362, 4676: 1363, 4675: 1364, 4674: 1365, 4673: 1366, 4672: 1367, 4671: 1368, 4670: 1369, 4669: 1370, 4668: 1371, 4896: 1372, 4667: 1373, 4666: 1374, 4665: 1375, 4664: 1376, 4663: 1377, 4662: 1378, 4661: 1379, 4660: 1380, 4659: 1381, 4658: 1382, 4657: 1383, 4656: 1384, 4655: 1385, 4654: 1386, 4653: 1387, 4652: 1388, 4651: 1389, 4650: 1390, 4649: 1391, 4648: 1392, 4647: 1393, 4646: 1394, 4645: 1395, 4644: 1396, 4643: 1397, 4642: 1398, 4641: 1399, 4640: 1400, 4639: 1401, 4638: 1402, 4637: 1403, 4636: 1404, 4635: 1405, 4634: 1406, 4633: 1407, 4632: 1408, 4631: 1409, 4630: 1410, 4629: 1411, 4628: 1412, 4627: 1413, 4626: 1414, 4625: 1415, 4624: 1416, 4622: 1417, 4621: 1418, 4620: 1419, 4619: 1420, 4618: 1421, 4617: 1422, 4616: 1423, 4615: 1424, 4614: 1425, 4613: 1426, 4612: 1427, 4611: 1428, 4610: 1429, 4609: 1430, 4608: 1431, 4607: 1432, 4606: 1433, 4605: 1434, 4604: 1435, 4603: 1436, 4602: 1437, 4601: 1438, 4600: 1439, 4599: 1440, 4598: 1441, 4623: 1442, 4597: 1443, 4596: 1444, 4595: 1445, 4594: 1446, 4593: 1447, 4592: 1448, 4591: 1449, 4590: 1450, 4589: 1451, 4588: 1452, 4587: 1453, 4586: 1454, 4585: 1455, 4584: 1456, 4583: 1457, 4582: 1458, 4581: 1459, 4580: 1460, 4579: 1461, 4578: 1462, 4577: 1463, 4575: 1464, 4574: 1465, 4573: 1466, 4572: 1467, 4576: 1468, 4571: 1469, 4570: 1470, 4569: 1471, 4568: 1472, 4567: 1473, 4566: 1474, 4565: 1475, 4564: 1476, 4563: 1477, 4562: 1478, 4561: 1479, 4560: 1480, 4559: 1481, 4558: 1482, 4557: 1483, 4556: 1484, 4555: 1485, 4554: 1486, 4553: 1487, 4552: 1488, 4551: 1489, 4550: 1490, 4549: 1491, 4548: 1492, 4547: 1493, 4546: 1494, 4545: 1495, 4544: 1496, 4543: 1497, 4542: 1498, 4541: 1499, 4540: 1500, 4539: 1501, 4538: 1502, 4537: 1503, 4536: 1504, 4535: 1505, 4534: 1506, 4533: 1507, 4532: 1508, 4531: 1509, 4530: 1510, 4529: 1511, 4528: 1512, 4527: 1513, 4526: 1514, 4525: 1515, 4524: 1516, 4523: 1517, 4522: 1518, 4521: 1519, 4520: 1520, 4519: 1521, 4518: 1522, 4517: 1523, 4516: 1524, 4513: 1525, 4512: 1526, 4511: 1527, 4510: 1528, 4509: 1529, 4508: 1530, 4507: 1531, 4506: 1532, 4505: 1533, 4503: 1534, 4502: 1535, 4501: 1536, 4515: 1537, 4500: 1538, 4499: 1539, 4498: 1540, 4497: 1541, 4496: 1542, 4495: 1543, 4494: 1544, 4493: 1545, 4492: 1546, 4491: 1547, 4490: 1548, 4489: 1549, 4488: 1550, 4504: 1551, 4487: 1552, 4486: 1553, 4485: 1554, 4484: 1555, 4483: 1556, 4482: 1557, 4481: 1558, 4480: 1559, 4479: 1560, 4478: 1561, 4477: 1562, 4476: 1563, 4475: 1564, 4474: 1565, 4473: 1566, 4471: 1567, 4472: 1568, 4470: 1569, 4469: 1570, 4468: 1571, 4467: 1572, 4466: 1573, 4465: 1574, 4464: 1575, 4463: 1576, 4462: 1577, 4461: 1578, 4460: 1579, 4459: 1580, 4458: 1581, 4457: 1582, 4456: 1583, 4455: 1584, 4454: 1585, 4453: 1586, 4451: 1587, 4452: 1588, 4449: 1589, 4450: 1590, 4448: 1591, 4447: 1592, 4446: 1593, 4445: 1594, 4444: 1595, 4443: 1596, 4442: 1597, 4441: 1598, 4440: 1599, 4439: 1600, 4438: 1601, 4437: 1602, 4436: 1603, 4435: 1604, 4434: 1605, 4433: 1606, 4432: 1607, 4431: 1608, 4430: 1609, 4429: 1610, 4428: 1611, 4427: 1612, 4426: 1613, 4425: 1614, 4424: 1615, 4423: 1616, 4422: 1617, 4421: 1618, 4420: 1619, 4419: 1620, 4418: 1621, 4417: 1622, 4416: 1623, 4415: 1624, 4414: 1625, 4413: 1626, 4412: 1627, 4411: 1628, 4410: 1629, 4409: 1630, 4408: 1631, 4407: 1632, 4406: 1633, 4405: 1634, 4404: 1635, 4403: 1636, 4402: 1637, 4401: 1638, 4398: 1639, 4396: 1640, 4397: 1641, 4399: 1642, 4400: 1643, 4395: 1644, 4394: 1645, 4392: 1646, 4393: 1647, 4391: 1648, 4390: 1649, 4389: 1650, 4388: 1651, 4386: 1652, 4387: 1653, 4385: 1654, 4384: 1655, 4383: 1656, 4382: 1657, 4381: 1658, 4380: 1659, 4379: 1660, 4378: 1661, 4377: 1662, 4376: 1663, 4375: 1664, 4374: 1665, 4373: 1666, 4372: 1667, 4371: 1668, 4370: 1669, 4369: 1670, 4368: 1671, 4367: 1672, 4366: 1673, 4365: 1674, 4364: 1675, 4363: 1676, 4362: 1677, 4361: 1678, 4360: 1679, 4359: 1680, 4358: 1681, 4357: 1682, 4356: 1683, 4355: 1684, 4354: 1685, 4353: 1686, 4352: 1687, 4351: 1688, 4350: 1689, 4349: 1690, 4348: 1691, 4347: 1692, 4346: 1693, 4345: 1694, 4344: 1695, 4343: 1696, 4342: 1697, 4341: 1698, 4340: 1699, 4339: 1700, 4338: 1701, 4337: 1702, 4336: 1703, 4335: 1704, 4334: 1705, 4333: 1706, 4332: 1707, 4331: 1708, 4330: 1709, 4329: 1710, 4328: 1711, 4327: 1712, 4326: 1713, 4325: 1714, 4324: 1715, 4323: 1716, 4322: 1717, 4321: 1718, 4320: 1719, 4319: 1720, 4317: 1721, 4316: 1722, 4315: 1723, 4314: 1724, 4313: 1725, 4311: 1726, 4312: 1727, 4310: 1728, 4309: 1729, 4308: 1730, 4307: 1731, 4306: 1732, 4305: 1733, 4304: 1734, 4303: 1735, 4514: 1736, 4302: 1737, 4301: 1738, 4300: 1739, 4299: 1740, 4298: 1741, 4297: 1742, 4296: 1743, 4295: 1744, 4293: 1745, 4294: 1746, 4292: 1747, 4291: 1748, 4290: 1749, 4289: 1750, 4288: 1751, 4287: 1752, 4286: 1753, 4285: 1754, 4284: 1755, 4283: 1756, 4282: 1757, 4281: 1758, 4280: 1759, 4279: 1760, 4278: 1761, 4277: 1762, 4276: 1763, 4275: 1764, 4274: 1765, 4272: 1766, 4273: 1767, 4271: 1768, 4269: 1769, 4270: 1770, 4268: 1771, 4267: 1772, 4266: 1773, 4265: 1774, 4264: 1775, 4263: 1776, 4262: 1777, 4261: 1778, 4260: 1779, 4259: 1780, 4258: 1781, 4256: 1782, 4257: 1783, 4255: 1784, 4254: 1785, 4252: 1786, 4253: 1787, 4251: 1788, 4250: 1789, 4249: 1790, 4248: 1791, 4247: 1792, 4246: 1793, 4245: 1794, 4244: 1795, 4242: 1796, 4241: 1797, 4240: 1798, 4239: 1799, 4238: 1800, 4243: 1801, 4237: 1802, 4236: 1803, 4235: 1804, 4234: 1805, 4233: 1806, 4232: 1807, 4231: 1808, 4230: 1809, 4229: 1810, 4227: 1811, 4226: 1812, 4225: 1813, 4228: 1814, 4224: 1815, 4222: 1816, 4223: 1817, 4221: 1818, 4220: 1819, 4219: 1820, 4218: 1821, 4217: 1822, 4216: 1823, 4215: 1824, 4214: 1825, 4213: 1826, 4212: 1827, 4211: 1828, 4210: 1829, 4209: 1830, 4208: 1831, 4206: 1832, 4205: 1833, 4207: 1834, 4204: 1835, 4202: 1836, 4203: 1837, 4201: 1838, 4200: 1839, 4199: 1840, 4198: 1841, 4197: 1842, 4196: 1843, 4195: 1844, 4194: 1845, 4193: 1846, 4192: 1847, 4191: 1848, 4190: 1849, 4189: 1850, 4188: 1851, 4187: 1852, 4186: 1853, 4184: 1854, 4183: 1855, 4182: 1856, 4181: 1857, 4180: 1858, 4178: 1859, 4179: 1860, 4177: 1861, 4176: 1862, 4175: 1863, 4174: 1864, 4173: 1865, 4172: 1866, 4171: 1867, 4170: 1868, 4169: 1869, 4167: 1870, 4165: 1871, 4166: 1872, 4168: 1873, 4164: 1874, 4163: 1875, 4162: 1876, 4161: 1877, 4160: 1878, 4185: 1879, 4159: 1880, 4158: 1881, 4157: 1882, 4155: 1883, 4156: 1884, 4318: 1885, 4154: 1886, 4153: 1887, 4152: 1888, 4151: 1889, 4150: 1890, 4149: 1891, 4148: 1892, 4147: 1893, 4146: 1894, 4145: 1895, 4144: 1896, 4143: 1897, 4142: 1898, 4141: 1899, 4140: 1900, 4138: 1901, 4139: 1902, 4137: 1903, 4136: 1904, 4135: 1905, 4134: 1906, 4133: 1907, 4132: 1908, 4131: 1909, 4130: 1910, 4129: 1911, 4128: 1912, 4127: 1913, 4126: 1914, 4125: 1915, 4124: 1916, 4122: 1917, 4123: 1918, 4121: 1919, 4120: 1920, 4119: 1921, 4118: 1922, 4117: 1923, 4116: 1924, 4115: 1925, 4114: 1926, 4113: 1927, 4112: 1928, 4111: 1929, 4110: 1930, 4109: 1931, 4108: 1932, 4107: 1933, 4106: 1934, 4105: 1935, 4104: 1936, 4103: 1937, 4102: 1938, 4101: 1939, 4100: 1940, 4099: 1941, 4098: 1942, 4097: 1943, 4096: 1944, 4095: 1945, 4094: 1946, 4093: 1947, 4092: 1948, 4091: 1949, 4090: 1950, 4089: 1951, 4088: 1952, 4087: 1953, 4086: 1954, 4085: 1955, 4084: 1956, 4083: 1957, 4082: 1958, 4081: 1959, 4080: 1960, 4079: 1961, 4077: 1962, 4078: 1963, 4076: 1964, 4075: 1965, 4074: 1966, 4073: 1967, 4072: 1968, 4071: 1969, 4070: 1970, 4069: 1971, 4068: 1972, 4067: 1973, 4066: 1974, 4065: 1975, 4064: 1976, 4063: 1977, 4062: 1978, 4061: 1979, 4060: 1980, 4059: 1981, 4058: 1982, 4057: 1983, 4056: 1984, 4055: 1985, 4053: 1986, 4054: 1987, 4052: 1988, 4051: 1989, 4050: 1990, 4049: 1991, 4048: 1992, 4047: 1993, 4046: 1994, 4045: 1995, 4044: 1996, 4043: 1997, 4042: 1998, 4041: 1999, 4040: 2000, 4039: 2001, 4038: 2002, 4037: 2003, 4036: 2004, 4035: 2005, 4034: 2006, 4033: 2007, 4032: 2008, 4031: 2009, 4030: 2010, 4029: 2011, 4028: 2012, 4027: 2013, 4026: 2014, 4025: 2015, 4024: 2016, 4023: 2017, 4022: 2018, 4021: 2019, 4020: 2020, 4019: 2021, 4018: 2022, 4017: 2023, 4016: 2024, 4015: 2025, 4014: 2026, 4013: 2027, 4012: 2028, 4011: 2029, 4010: 2030, 4009: 2031, 4008: 2032, 4007: 2033, 4006: 2034, 4005: 2035, 4004: 2036, 4003: 2037, 4002: 2038, 4001: 2039, 4000: 2040, 3999: 2041, 3998: 2042, 3997: 2043, 3996: 2044, 3995: 2045, 3994: 2046, 3993: 2047, 3992: 2048, 3991: 2049, 3990: 2050, 3989: 2051, 3988: 2052, 3987: 2053, 3986: 2054, 3985: 2055, 3984: 2056, 3983: 2057, 3982: 2058, 3981: 2059, 3980: 2060, 3979: 2061, 3978: 2062, 3977: 2063, 3976: 2064, 3975: 2065, 3974: 2066, 3973: 2067, 3972: 2068, 3971: 2069, 3970: 2070, 3969: 2071, 3968: 2072, 3967: 2073, 3966: 2074, 3965: 2075, 3964: 2076, 3963: 2077, 3962: 2078, 3961: 2079, 3960: 2080, 3959: 2081, 3958: 2082, 3957: 2083, 3956: 2084, 3955: 2085, 3954: 2086, 3953: 2087, 3952: 2088, 3951: 2089, 3950: 2090, 3949: 2091, 3948: 2092, 3947: 2093, 3946: 2094, 3945: 2095, 3944: 2096, 3943: 2097, 3942: 2098, 3941: 2099, 3940: 2100, 3939: 2101, 3938: 2102, 3937: 2103, 3936: 2104, 3935: 2105, 3934: 2106, 3933: 2107, 3932: 2108, 3931: 2109, 3930: 2110, 3929: 2111, 3928: 2112, 3927: 2113, 3926: 2114, 3925: 2115, 3924: 2116, 3922: 2117, 3923: 2118, 3921: 2119, 3920: 2120, 3919: 2121, 3918: 2122, 3917: 2123, 3916: 2124, 3914: 2125, 3915: 2126, 3913: 2127, 3912: 2128, 3911: 2129, 3910: 2130, 3909: 2131, 3908: 2132, 3907: 2133, 3906: 2134, 3905: 2135, 3904: 2136, 3903: 2137, 3902: 2138, 3901: 2139, 3900: 2140, 3899: 2141, 3898: 2142, 3897: 2143, 3896: 2144, 3895: 2145, 3894: 2146, 3893: 2147, 3892: 2148, 3891: 2149, 3890: 2150, 3889: 2151, 3887: 2152, 3886: 2153, 3885: 2154, 3884: 2155, 3883: 2156, 3882: 2157, 3881: 2158, 3880: 2159, 3879: 2160, 3878: 2161, 3877: 2162, 3876: 2163, 3875: 2164, 3874: 2165, 3873: 2166, 3872: 2167, 3871: 2168, 3870: 2169, 3869: 2170, 3868: 2171, 3867: 2172, 3866: 2173, 3865: 2174, 3864: 2175, 3863: 2176, 3862: 2177, 3861: 2178, 3860: 2179, 3859: 2180, 3857: 2181, 3858: 2182, 3856: 2183, 3855: 2184, 3854: 2185, 3853: 2186, 3852: 2187, 3850: 2188, 3851: 2189, 3849: 2190, 3848: 2191, 3847: 2192, 3846: 2193, 3845: 2194, 3844: 2195, 3843: 2196, 3842: 2197, 3841: 2198, 3839: 2199, 3840: 2200, 3838: 2201, 3837: 2202, 3836: 2203, 3835: 2204, 3834: 2205, 3833: 2206, 3832: 2207, 3831: 2208, 3830: 2209, 3829: 2210, 3828: 2211, 3827: 2212, 3826: 2213, 3825: 2214, 3824: 2215, 3823: 2216, 3822: 2217, 3821: 2218, 3820: 2219, 3819: 2220, 3818: 2221, 3817: 2222, 3816: 2223, 3815: 2224, 3814: 2225, 3813: 2226, 3812: 2227, 3811: 2228, 3810: 2229, 3809: 2230, 3808: 2231, 3807: 2232, 3806: 2233, 3805: 2234, 3804: 2235, 3803: 2236, 3802: 2237, 3801: 2238, 3800: 2239, 3799: 2240, 3798: 2241, 3797: 2242, 3796: 2243, 3795: 2244, 3794: 2245, 3793: 2246, 3792: 2247, 3791: 2248, 3790: 2249, 3788: 2250, 3789: 2251, 3787: 2252, 3786: 2253, 3785: 2254, 3784: 2255, 3782: 2256, 3783: 2257, 3781: 2258, 3780: 2259, 3779: 2260, 3778: 2261, 3777: 2262, 3776: 2263, 3775: 2264, 3774: 2265, 3773: 2266, 3772: 2267, 3771: 2268, 3770: 2269, 3769: 2270, 3768: 2271, 3767: 2272, 3766: 2273, 3765: 2274, 3764: 2275, 3763: 2276, 3762: 2277, 3761: 2278, 3760: 2279, 3759: 2280, 3758: 2281, 3757: 2282, 3756: 2283, 3755: 2284, 3754: 2285, 3753: 2286, 3752: 2287, 3751: 2288, 3750: 2289, 3749: 2290, 3748: 2291, 3747: 2292, 3746: 2293, 3888: 2294, 3745: 2295, 3744: 2296, 3743: 2297, 3742: 2298, 3741: 2299, 3740: 2300, 3739: 2301, 3738: 2302, 3737: 2303, 3736: 2304, 3735: 2305, 3734: 2306, 3733: 2307, 3732: 2308, 3731: 2309, 3730: 2310, 3729: 2311, 3728: 2312, 3727: 2313, 3725: 2314, 3726: 2315, 3724: 2316, 3722: 2317, 3721: 2318, 3720: 2319, 3719: 2320, 3718: 2321, 3717: 2322, 3716: 2323, 3715: 2324, 3714: 2325, 3713: 2326, 3712: 2327, 3711: 2328, 3710: 2329, 3709: 2330, 3708: 2331, 3707: 2332, 3706: 2333, 3705: 2334, 3704: 2335, 3703: 2336, 3702: 2337, 3701: 2338, 3700: 2339, 3699: 2340, 3698: 2341, 3697: 2342, 3696: 2343, 3695: 2344, 3694: 2345, 3693: 2346, 3692: 2347, 3691: 2348, 3690: 2349, 3689: 2350, 3688: 2351, 3687: 2352, 3686: 2353, 3685: 2354, 3684: 2355, 3683: 2356, 3682: 2357, 3681: 2358, 3680: 2359, 3679: 2360, 3678: 2361, 3677: 2362, 3676: 2363, 3675: 2364, 3674: 2365, 3673: 2366, 3672: 2367, 3671: 2368, 3670: 2369, 3669: 2370, 3668: 2371, 3667: 2372, 3666: 2373, 3665: 2374, 3664: 2375, 3663: 2376, 3662: 2377, 3661: 2378, 3660: 2379, 3659: 2380, 3658: 2381, 3657: 2382, 3656: 2383, 3655: 2384, 3654: 2385, 3653: 2386, 3652: 2387, 3651: 2388, 3650: 2389, 3649: 2390, 3648: 2391, 3647: 2392, 3646: 2393, 3645: 2394, 3644: 2395, 3643: 2396, 3642: 2397, 3641: 2398, 3640: 2399, 3639: 2400, 3638: 2401, 3637: 2402, 3636: 2403, 3635: 2404, 3634: 2405, 3633: 2406, 3632: 2407, 3631: 2408, 3630: 2409, 3629: 2410, 3628: 2411, 3627: 2412, 3626: 2413, 3625: 2414, 3624: 2415, 3623: 2416, 3622: 2417, 3621: 2418, 3620: 2419, 3619: 2420, 3618: 2421, 3617: 2422, 3616: 2423, 3615: 2424, 3613: 2425, 3614: 2426, 3612: 2427, 3611: 2428, 3610: 2429, 3609: 2430, 3608: 2431, 3606: 2432, 3607: 2433, 3605: 2434, 3604: 2435, 3603: 2436, 3601: 2437, 3600: 2438, 3599: 2439, 3598: 2440, 3597: 2441, 3596: 2442, 3595: 2443, 3594: 2444, 3593: 2445, 3592: 2446, 3591: 2447, 3590: 2448, 3589: 2449, 3588: 2450, 3587: 2451, 3586: 2452, 3585: 2453, 3584: 2454, 3583: 2455, 3582: 2456, 3581: 2457, 3580: 2458, 3579: 2459, 3578: 2460, 3577: 2461, 3576: 2462, 3575: 2463, 3574: 2464, 3573: 2465, 3572: 2466, 3571: 2467, 3570: 2468, 3569: 2469, 3568: 2470, 3567: 2471, 3566: 2472, 3565: 2473, 3564: 2474, 3563: 2475, 3562: 2476, 3561: 2477, 3560: 2478, 3559: 2479, 3558: 2480, 3557: 2481, 3556: 2482, 3555: 2483, 3554: 2484, 3553: 2485, 3552: 2486, 3551: 2487, 3550: 2488, 3549: 2489, 3548: 2490, 3547: 2491, 3546: 2492, 3545: 2493, 3544: 2494, 3543: 2495, 3542: 2496, 3541: 2497, 3540: 2498, 3539: 2499, 3538: 2500, 3537: 2501, 3536: 2502, 3535: 2503, 3534: 2504, 3533: 2505, 3532: 2506, 3530: 2507, 3529: 2508, 3528: 2509, 3527: 2510, 3526: 2511, 3525: 2512, 3524: 2513, 3523: 2514, 3531: 2515, 3522: 2516, 3521: 2517, 3520: 2518, 3519: 2519, 3518: 2520, 3517: 2521, 3516: 2522, 3515: 2523, 3514: 2524, 3513: 2525, 3512: 2526, 3511: 2527, 3510: 2528, 3509: 2529, 3508: 2530, 3507: 2531, 3506: 2532, 3505: 2533, 3504: 2534, 3503: 2535, 3502: 2536, 3501: 2537, 3500: 2538, 3499: 2539, 3498: 2540, 3497: 2541, 3602: 2542, 3496: 2543, 3495: 2544, 3494: 2545, 3493: 2546, 3492: 2547, 3491: 2548, 3490: 2549, 3489: 2550, 3488: 2551, 3487: 2552, 3486: 2553, 3485: 2554, 3484: 2555, 3483: 2556, 3482: 2557, 3481: 2558, 3480: 2559, 3479: 2560, 3478: 2561, 3477: 2562, 3476: 2563, 3475: 2564, 3474: 2565, 3473: 2566, 3472: 2567, 3723: 2568, 3471: 2569, 3470: 2570, 3469: 2571, 3468: 2572, 3467: 2573, 3466: 2574, 3465: 2575, 3464: 2576, 3463: 2577, 3462: 2578, 3461: 2579, 3460: 2580, 3459: 2581, 3458: 2582, 3457: 2583, 3456: 2584, 3455: 2585, 3454: 2586, 3453: 2587, 3452: 2588, 3451: 2589, 3450: 2590, 3449: 2591, 3448: 2592, 3447: 2593, 3446: 2594, 3445: 2595, 3444: 2596, 3443: 2597, 3442: 2598, 3441: 2599, 3440: 2600, 3439: 2601, 3438: 2602, 3437: 2603, 3436: 2604, 3435: 2605, 3434: 2606, 3433: 2607, 3431: 2608, 3432: 2609, 3430: 2610, 3429: 2611, 3428: 2612, 3427: 2613, 3426: 2614, 3425: 2615, 3424: 2616, 3423: 2617, 3422: 2618, 3420: 2619, 3419: 2620, 3418: 2621, 3417: 2622, 3416: 2623, 3415: 2624, 3414: 2625, 3413: 2626, 3412: 2627, 3421: 2628, 3411: 2629, 3410: 2630, 3409: 2631, 3408: 2632, 3407: 2633, 3406: 2634, 3405: 2635, 3404: 2636, 3403: 2637, 3402: 2638, 3401: 2639, 3400: 2640, 3399: 2641, 3398: 2642, 3397: 2643, 3396: 2644, 3395: 2645, 3394: 2646, 3393: 2647, 3392: 2648, 3391: 2649, 3390: 2650, 3389: 2651, 3388: 2652, 3387: 2653, 3386: 2654, 3385: 2655, 3384: 2656, 3383: 2657, 3382: 2658, 3381: 2659, 3380: 2660, 3379: 2661, 3378: 2662, 3377: 2663, 3376: 2664, 3375: 2665, 3374: 2666, 3373: 2667, 3372: 2668, 3371: 2669, 3370: 2670, 3369: 2671, 3367: 2672, 3368: 2673, 3366: 2674, 3365: 2675, 3364: 2676, 3363: 2677, 3362: 2678, 3361: 2679, 3359: 2680, 3360: 2681, 3358: 2682, 3357: 2683, 3356: 2684, 3355: 2685, 3354: 2686, 3353: 2687, 3352: 2688, 3351: 2689, 3350: 2690, 3349: 2691, 3348: 2692, 3347: 2693, 3346: 2694, 3345: 2695, 3344: 2696, 3343: 2697, 3342: 2698, 3341: 2699, 3340: 2700, 3339: 2701, 3338: 2702, 3337: 2703, 3336: 2704, 3335: 2705, 3334: 2706, 3333: 2707, 3332: 2708, 3331: 2709, 3330: 2710, 3329: 2711, 3328: 2712, 3327: 2713, 3326: 2714, 3325: 2715, 3324: 2716, 3323: 2717, 3322: 2718, 3321: 2719, 3320: 2720, 3319: 2721, 3318: 2722, 3317: 2723, 3316: 2724, 3315: 2725, 3314: 2726, 3313: 2727, 3312: 2728, 3311: 2729, 3310: 2730, 3309: 2731, 3308: 2732, 3307: 2733, 3306: 2734, 3305: 2735, 3304: 2736, 3303: 2737, 3302: 2738, 3301: 2739, 3300: 2740, 3299: 2741, 3298: 2742, 3297: 2743, 3296: 2744, 3295: 2745, 3294: 2746, 3293: 2747, 3292: 2748, 3291: 2749, 3290: 2750, 3289: 2751, 3288: 2752, 3287: 2753, 3286: 2754, 3285: 2755, 3284: 2756, 3283: 2757, 3282: 2758, 3281: 2759, 3280: 2760, 3279: 2761, 3278: 2762, 3277: 2763, 3276: 2764, 3275: 2765, 3274: 2766, 3273: 2767, 3272: 2768, 3271: 2769, 3270: 2770, 3269: 2771, 3268: 2772, 3267: 2773, 3266: 2774, 3265: 2775, 3264: 2776, 3263: 2777, 3262: 2778, 3261: 2779, 3260: 2780, 3259: 2781, 3258: 2782, 3257: 2783, 3256: 2784, 3255: 2785, 3254: 2786, 3253: 2787, 3252: 2788, 3251: 2789, 3249: 2790, 3250: 2791, 3248: 2792, 3247: 2793, 3246: 2794, 3245: 2795, 3244: 2796, 3243: 2797, 3242: 2798, 3241: 2799, 3240: 2800, 3239: 2801, 3238: 2802, 3237: 2803, 3236: 2804, 3235: 2805, 3234: 2806, 3233: 2807, 3232: 2808, 3231: 2809, 3230: 2810, 3229: 2811, 3228: 2812, 3227: 2813, 3226: 2814, 3225: 2815, 3224: 2816, 3223: 2817, 3222: 2818, 3221: 2819, 3220: 2820, 3218: 2821, 3217: 2822, 3216: 2823, 3215: 2824, 3219: 2825, 3214: 2826, 3213: 2827, 3212: 2828, 3211: 2829, 3210: 2830, 3209: 2831, 3208: 2832, 3207: 2833, 3206: 2834, 3205: 2835, 3204: 2836, 3203: 2837, 3202: 2838, 3201: 2839, 3200: 2840, 3199: 2841, 3198: 2842, 3197: 2843, 3196: 2844, 3195: 2845, 3194: 2846, 3193: 2847, 3192: 2848, 3191: 2849, 3190: 2850, 3189: 2851, 3188: 2852, 3187: 2853, 3186: 2854, 3185: 2855, 3184: 2856, 3183: 2857, 3182: 2858, 3181: 2859, 3179: 2860, 3180: 2861, 3178: 2862, 3177: 2863, 3176: 2864, 3175: 2865, 3174: 2866, 3173: 2867, 3172: 2868, 3171: 2869, 3170: 2870, 3169: 2871, 3168: 2872, 3167: 2873, 3166: 2874, 3165: 2875, 3164: 2876, 3163: 2877, 3162: 2878, 3161: 2879, 3160: 2880, 3159: 2881, 3158: 2882, 3157: 2883, 3156: 2884, 3155: 2885, 3154: 2886, 3153: 2887, 3152: 2888, 3151: 2889, 3150: 2890, 3149: 2891, 3148: 2892, 3147: 2893, 3146: 2894, 3145: 2895, 3144: 2896, 3143: 2897, 3142: 2898, 3141: 2899, 3140: 2900, 3139: 2901, 3138: 2902, 3137: 2903, 3136: 2904, 3135: 2905, 3134: 2906, 3133: 2907, 3132: 2908, 3131: 2909, 3130: 2910, 3129: 2911, 3128: 2912, 3126: 2913, 3125: 2914, 3127: 2915, 3124: 2916, 3123: 2917, 3122: 2918, 3121: 2919, 3120: 2920, 3119: 2921, 3118: 2922, 3117: 2923, 3116: 2924, 3114: 2925, 3113: 2926, 3112: 2927, 3111: 2928, 3110: 2929, 3109: 2930, 3108: 2931, 3107: 2932, 3106: 2933, 3105: 2934, 3104: 2935, 3103: 2936, 3102: 2937, 3101: 2938, 3100: 2939, 3099: 2940, 3115: 2941, 3098: 2942, 3097: 2943, 3096: 2944, 3095: 2945, 3094: 2946, 3093: 2947, 3092: 2948, 3091: 2949, 3090: 2950, 3089: 2951, 3088: 2952, 3087: 2953, 3086: 2954, 3085: 2955, 3084: 2956, 3083: 2957, 3082: 2958, 3081: 2959, 3080: 2960, 3079: 2961, 3078: 2962, 3077: 2963, 3076: 2964, 3075: 2965, 3074: 2966, 3073: 2967, 3072: 2968, 3071: 2969, 3070: 2970, 3069: 2971, 3068: 2972, 3067: 2973, 3066: 2974, 3065: 2975, 3064: 2976, 3063: 2977, 3062: 2978, 3061: 2979, 3060: 2980, 3059: 2981, 3058: 2982, 3057: 2983, 3056: 2984, 3055: 2985, 3054: 2986, 3053: 2987, 3052: 2988, 3050: 2989, 3051: 2990, 3049: 2991, 3048: 2992, 3047: 2993, 3046: 2994, 3045: 2995, 3044: 2996, 3043: 2997, 3042: 2998, 3040: 2999, 3041: 3000, 3039: 3001, 3038: 3002, 3037: 3003, 3036: 3004, 3035: 3005, 3034: 3006, 3033: 3007, 3032: 3008, 3031: 3009, 3030: 3010, 3029: 3011, 3028: 3012, 3027: 3013, 3026: 3014, 3025: 3015, 3024: 3016, 3023: 3017, 3022: 3018, 3021: 3019, 3020: 3020, 3019: 3021, 3018: 3022, 3017: 3023, 3016: 3024, 3015: 3025, 3014: 3026, 3013: 3027, 3012: 3028, 3011: 3029, 3010: 3030, 3009: 3031, 3008: 3032, 3007: 3033, 3006: 3034, 3005: 3035, 3004: 3036, 3002: 3037, 3001: 3038, 3000: 3039, 2999: 3040, 2998: 3041, 2997: 3042, 2996: 3043, 2995: 3044, 2994: 3045, 2993: 3046, 2992: 3047, 2991: 3048, 2990: 3049, 2989: 3050, 3003: 3051, 2988: 3052, 2987: 3053, 2986: 3054, 2985: 3055, 2984: 3056, 2983: 3057, 2982: 3058, 2981: 3059, 2979: 3060, 2978: 3061, 2977: 3062, 2976: 3063, 2975: 3064, 2974: 3065, 2973: 3066, 2972: 3067, 2971: 3068, 2970: 3069, 2969: 3070, 2968: 3071, 2967: 3072, 2966: 3073, 2965: 3074, 2964: 3075, 2963: 3076, 2962: 3077, 2961: 3078, 2960: 3079, 2959: 3080, 2958: 3081, 2957: 3082, 2956: 3083, 2955: 3084, 2954: 3085, 2953: 3086, 2952: 3087, 2951: 3088, 2950: 3089, 2949: 3090, 2948: 3091, 2946: 3092, 2945: 3093, 2944: 3094, 2943: 3095, 2942: 3096, 2941: 3097, 2940: 3098, 2939: 3099, 2938: 3100, 2937: 3101, 2936: 3102, 2935: 3103, 2934: 3104, 2933: 3105, 2932: 3106, 2931: 3107, 2930: 3108, 2929: 3109, 2928: 3110, 2927: 3111, 2926: 3112, 2925: 3113, 2924: 3114, 2923: 3115, 2922: 3116, 2921: 3117, 2920: 3118, 2919: 3119, 2918: 3120, 2917: 3121, 2916: 3122, 2915: 3123, 2914: 3124, 2913: 3125, 2912: 3126, 2911: 3127, 2909: 3128, 2908: 3129, 2907: 3130, 2906: 3131, 2905: 3132, 2904: 3133, 2903: 3134, 2902: 3135, 2901: 3136, 2900: 3137, 2899: 3138, 2898: 3139, 2897: 3140, 2895: 3141, 2896: 3142, 2894: 3143, 2893: 3144, 2892: 3145, 2891: 3146, 2890: 3147, 2889: 3148, 2888: 3149, 2887: 3150, 2886: 3151, 2885: 3152, 2884: 3153, 2882: 3154, 2881: 3155, 2883: 3156, 2880: 3157, 2879: 3158, 2878: 3159, 2877: 3160, 2876: 3161, 2875: 3162, 2874: 3163, 2873: 3164, 2872: 3165, 2871: 3166, 2870: 3167, 2869: 3168, 2868: 3169, 2867: 3170, 2866: 3171, 2865: 3172, 2864: 3173, 2863: 3174, 2862: 3175, 2861: 3176, 2860: 3177, 2859: 3178, 2858: 3179, 2857: 3180, 2856: 3181, 2855: 3182, 2854: 3183, 2853: 3184, 2852: 3185, 2851: 3186, 2850: 3187, 2849: 3188, 2848: 3189, 2847: 3190, 2846: 3191, 2845: 3192, 2844: 3193, 2843: 3194, 2842: 3195, 2841: 3196, 2840: 3197, 2839: 3198, 2838: 3199, 2837: 3200, 2836: 3201, 2835: 3202, 2834: 3203, 2833: 3204, 2832: 3205, 2831: 3206, 2830: 3207, 2829: 3208, 2828: 3209, 2827: 3210, 2826: 3211, 2825: 3212, 2824: 3213, 2823: 3214, 2822: 3215, 2821: 3216, 2820: 3217, 2819: 3218, 2818: 3219, 2817: 3220, 2816: 3221, 2815: 3222, 2814: 3223, 2813: 3224, 2812: 3225, 2811: 3226, 2810: 3227, 2809: 3228, 2808: 3229, 2807: 3230, 2806: 3231, 2805: 3232, 2804: 3233, 2803: 3234, 2802: 3235, 2801: 3236, 2800: 3237, 2799: 3238, 2798: 3239, 2797: 3240, 2796: 3241, 2795: 3242, 2794: 3243, 2793: 3244, 2792: 3245, 2791: 3246, 2790: 3247, 2789: 3248, 2788: 3249, 2787: 3250, 2786: 3251, 2785: 3252, 2784: 3253, 2783: 3254, 2782: 3255, 2781: 3256, 2780: 3257, 2779: 3258, 2778: 3259, 2777: 3260, 2776: 3261, 2775: 3262, 2774: 3263, 2773: 3264, 2772: 3265, 2771: 3266, 2770: 3267, 2769: 3268, 2768: 3269, 2767: 3270, 2766: 3271, 2765: 3272, 2764: 3273, 2763: 3274, 2762: 3275, 2761: 3276, 2760: 3277, 2759: 3278, 2758: 3279, 2757: 3280, 2756: 3281, 2755: 3282, 2754: 3283, 2753: 3284, 2752: 3285, 2751: 3286, 2750: 3287, 2749: 3288, 2748: 3289, 2747: 3290, 2746: 3291, 2745: 3292, 2744: 3293, 2743: 3294, 2742: 3295, 2741: 3296, 2740: 3297, 2739: 3298, 2738: 3299, 2737: 3300, 2736: 3301, 2735: 3302, 2734: 3303, 2733: 3304, 2732: 3305, 2731: 3306, 2730: 3307, 2729: 3308, 2728: 3309, 2727: 3310, 2726: 3311, 2725: 3312, 2724: 3313, 2723: 3314, 2722: 3315, 2721: 3316, 2720: 3317, 2719: 3318, 2718: 3319, 2716: 3320, 2714: 3321, 2717: 3322, 2715: 3323, 2713: 3324, 2712: 3325, 2711: 3326, 2710: 3327, 2709: 3328, 2708: 3329, 2707: 3330, 2706: 3331, 2705: 3332, 2704: 3333, 2703: 3334, 2702: 3335, 2701: 3336, 2700: 3337, 2699: 3338, 2698: 3339, 2697: 3340, 2696: 3341, 2695: 3342, 2694: 3343, 2693: 3344, 2692: 3345, 2691: 3346, 2690: 3347, 2689: 3348, 2688: 3349, 2687: 3350, 2686: 3351, 2685: 3352, 2684: 3353, 2683: 3354, 2682: 3355, 2681: 3356, 2680: 3357, 2679: 3358, 2678: 3359, 2677: 3360, 2676: 3361, 2675: 3362, 2674: 3363, 2673: 3364, 2672: 3365, 2671: 3366, 2670: 3367, 2669: 3368, 2668: 3369, 2667: 3370, 2666: 3371, 2665: 3372, 2664: 3373, 2663: 3374, 2662: 3375, 2661: 3376, 2660: 3377, 2659: 3378, 2658: 3379, 2657: 3380, 2656: 3381, 2655: 3382, 2653: 3383, 2652: 3384, 2651: 3385, 2650: 3386, 2649: 3387, 2648: 3388, 2654: 3389, 2647: 3390, 2646: 3391, 2645: 3392, 2644: 3393, 2643: 3394, 2642: 3395, 2641: 3396, 2640: 3397, 2639: 3398, 2638: 3399, 2637: 3400, 2636: 3401, 2635: 3402, 2634: 3403, 2633: 3404, 2632: 3405, 2631: 3406, 2630: 3407, 2629: 3408, 2628: 3409, 2627: 3410, 2626: 3411, 2625: 3412, 2624: 3413, 2623: 3414, 2622: 3415, 2621: 3416, 2620: 3417, 2619: 3418, 2618: 3419, 2617: 3420, 2616: 3421, 2615: 3422, 2614: 3423, 2613: 3424, 2612: 3425, 2611: 3426, 2610: 3427, 2609: 3428, 2608: 3429, 2607: 3430, 2606: 3431, 2605: 3432, 2604: 3433, 2603: 3434, 2602: 3435, 2600: 3436, 2599: 3437, 2598: 3438, 2597: 3439, 2601: 3440, 2596: 3441, 2595: 3442, 2594: 3443, 2593: 3444, 2592: 3445, 2591: 3446, 2590: 3447, 2589: 3448, 2588: 3449, 2587: 3450, 2586: 3451, 2584: 3452, 2585: 3453, 2583: 3454, 2582: 3455, 2581: 3456, 2580: 3457, 2579: 3458, 2578: 3459, 2577: 3460, 2576: 3461, 2575: 3462, 2574: 3463, 2573: 3464, 2572: 3465, 2571: 3466, 2570: 3467, 2569: 3468, 2568: 3469, 2567: 3470, 2566: 3471, 2565: 3472, 2564: 3473, 2563: 3474, 2562: 3475, 2561: 3476, 2560: 3477, 2559: 3478, 2558: 3479, 2557: 3480, 2556: 3481, 2555: 3482, 2554: 3483, 2553: 3484, 2552: 3485, 2551: 3486, 2550: 3487, 2549: 3488, 2548: 3489, 2547: 3490, 2546: 3491, 2545: 3492, 2544: 3493, 2543: 3494, 2542: 3495, 2541: 3496, 2540: 3497, 2539: 3498, 2538: 3499, 2537: 3500, 2535: 3501, 2536: 3502, 2534: 3503, 2533: 3504, 2532: 3505, 2531: 3506, 2530: 3507, 2529: 3508, 2528: 3509, 2527: 3510, 2526: 3511, 2525: 3512, 2524: 3513, 2523: 3514, 2522: 3515, 2521: 3516, 2520: 3517, 2519: 3518, 2518: 3519, 2517: 3520, 2516: 3521, 2515: 3522, 2514: 3523, 2513: 3524, 2512: 3525, 2511: 3526, 2510: 3527, 2509: 3528, 2508: 3529, 2507: 3530, 2506: 3531, 2505: 3532, 2504: 3533, 2503: 3534, 2502: 3535, 2501: 3536, 2500: 3537, 2499: 3538, 2498: 3539, 2497: 3540, 2496: 3541, 2495: 3542, 2494: 3543, 2493: 3544, 2492: 3545, 2491: 3546, 2490: 3547, 2489: 3548, 2488: 3549, 2487: 3550, 2486: 3551, 2485: 3552, 2484: 3553, 2483: 3554, 2482: 3555, 2481: 3556, 2480: 3557, 2479: 3558, 2478: 3559, 2476: 3560, 2477: 3561, 2475: 3562, 2474: 3563, 2473: 3564, 2472: 3565, 2471: 3566, 2470: 3567, 2469: 3568, 2468: 3569, 2467: 3570, 2466: 3571, 2465: 3572, 2464: 3573, 2462: 3574, 2463: 3575, 2461: 3576, 2460: 3577, 2459: 3578, 2458: 3579, 2457: 3580, 2456: 3581, 2455: 3582, 2454: 3583, 2453: 3584, 2452: 3585, 2451: 3586, 2450: 3587, 2449: 3588, 2448: 3589, 2447: 3590, 2446: 3591, 2445: 3592, 2444: 3593, 2443: 3594, 2442: 3595, 2441: 3596, 2440: 3597, 2439: 3598, 2438: 3599, 2436: 3600, 2435: 3601, 2433: 3602, 2437: 3603, 2431: 3604, 2430: 3605, 2432: 3606, 2434: 3607, 2429: 3608, 2428: 3609, 2427: 3610, 2426: 3611, 2424: 3612, 2423: 3613, 2422: 3614, 2421: 3615, 2420: 3616, 2425: 3617, 2419: 3618, 2418: 3619, 2417: 3620, 2415: 3621, 2416: 3622, 2414: 3623, 2413: 3624, 2412: 3625, 2411: 3626, 2410: 3627, 2409: 3628, 2408: 3629, 2407: 3630, 2406: 3631, 2405: 3632, 2404: 3633, 2403: 3634, 2402: 3635, 2401: 3636, 2400: 3637, 2399: 3638, 2398: 3639, 2397: 3640, 2396: 3641, 2395: 3642, 2394: 3643, 2393: 3644, 2392: 3645, 2391: 3646, 2390: 3647, 2389: 3648, 2388: 3649, 2387: 3650, 2386: 3651, 2385: 3652, 2384: 3653, 2383: 3654, 2382: 3655, 2381: 3656, 2380: 3657, 2378: 3658, 2379: 3659, 2377: 3660, 2376: 3661, 2375: 3662, 2374: 3663, 2373: 3664, 2372: 3665, 2371: 3666, 2370: 3667, 2369: 3668, 2368: 3669, 2367: 3670, 2366: 3671, 2365: 3672, 2364: 3673, 2363: 3674, 2362: 3675, 2361: 3676, 2360: 3677, 2359: 3678, 2358: 3679, 2357: 3680, 2356: 3681, 2355: 3682, 2354: 3683, 2352: 3684, 2353: 3685, 2351: 3686, 2350: 3687, 2348: 3688, 2349: 3689, 2347: 3690, 2346: 3691, 2345: 3692, 2344: 3693, 2342: 3694, 2343: 3695, 2341: 3696, 2340: 3697, 2339: 3698, 2338: 3699, 2337: 3700, 2336: 3701, 2335: 3702, 2334: 3703, 2333: 3704, 2332: 3705, 2331: 3706, 2330: 3707, 2329: 3708, 2328: 3709, 2327: 3710, 2326: 3711, 2325: 3712, 2324: 3713, 2323: 3714, 2322: 3715, 2321: 3716, 2320: 3717, 2319: 3718, 2318: 3719, 2317: 3720, 2316: 3721, 2315: 3722, 2314: 3723, 2313: 3724, 2312: 3725, 2311: 3726, 2310: 3727, 2309: 3728, 2308: 3729, 2307: 3730, 2306: 3731, 2305: 3732, 2304: 3733, 2303: 3734, 2302: 3735, 2301: 3736, 2300: 3737, 2299: 3738, 2298: 3739, 2297: 3740, 2296: 3741, 2295: 3742, 2294: 3743, 2293: 3744, 2292: 3745, 2291: 3746, 2290: 3747, 2289: 3748, 2288: 3749, 2287: 3750, 2286: 3751, 2285: 3752, 2284: 3753, 2283: 3754, 2282: 3755, 2281: 3756, 2280: 3757, 2279: 3758, 2278: 3759, 2277: 3760, 2276: 3761, 2275: 3762, 2274: 3763, 2273: 3764, 2272: 3765, 2271: 3766, 2270: 3767, 2269: 3768, 2268: 3769, 2267: 3770, 2266: 3771, 2265: 3772, 2264: 3773, 2263: 3774, 2262: 3775, 2261: 3776, 2260: 3777, 2259: 3778, 2258: 3779, 2257: 3780, 2256: 3781, 2255: 3782, 2254: 3783, 2253: 3784, 2252: 3785, 2250: 3786, 2251: 3787, 2248: 3788, 2246: 3789, 2244: 3790, 2243: 3791, 2242: 3792, 2241: 3793, 2249: 3794, 2245: 3795, 2240: 3796, 2239: 3797, 2238: 3798, 2237: 3799, 2235: 3800, 2236: 3801, 2234: 3802, 2233: 3803, 2232: 3804, 2231: 3805, 2230: 3806, 2229: 3807, 2228: 3808, 2227: 3809, 2226: 3810, 2224: 3811, 2225: 3812, 2223: 3813, 2222: 3814, 2221: 3815, 2220: 3816, 2219: 3817, 2218: 3818, 2217: 3819, 2216: 3820, 2215: 3821, 2214: 3822, 2212: 3823, 2213: 3824, 2211: 3825, 2210: 3826, 2209: 3827, 2208: 3828, 2207: 3829, 2206: 3830, 2205: 3831, 2203: 3832, 2204: 3833, 2202: 3834, 2201: 3835, 2200: 3836, 2199: 3837, 2197: 3838, 2198: 3839, 2196: 3840, 2195: 3841, 2192: 3842, 2191: 3843, 2193: 3844, 2194: 3845, 2190: 3846, 2189: 3847, 2188: 3848, 2186: 3849, 2185: 3850, 2187: 3851, 2184: 3852, 2182: 3853, 2183: 3854, 2181: 3855, 2180: 3856, 2179: 3857, 2178: 3858, 2177: 3859, 2175: 3860, 2176: 3861, 2174: 3862, 2173: 3863, 2172: 3864, 2171: 3865, 2169: 3866, 2170: 3867, 2168: 3868, 2167: 3869, 2166: 3870, 2165: 3871, 2164: 3872, 2163: 3873, 2162: 3874, 2161: 3875, 2160: 3876, 2159: 3877, 2158: 3878, 2157: 3879, 2156: 3880, 2155: 3881, 2154: 3882, 2153: 3883, 2152: 3884, 2150: 3885, 2151: 3886, 2149: 3887, 2148: 3888, 2147: 3889, 2146: 3890, 2145: 3891, 2144: 3892, 2143: 3893, 2142: 3894, 2141: 3895, 2140: 3896, 2139: 3897, 2138: 3898, 2137: 3899, 2136: 3900, 2135: 3901, 2134: 3902, 2133: 3903, 2132: 3904, 2131: 3905, 2130: 3906, 2129: 3907, 2128: 3908, 2127: 3909, 2126: 3910, 2125: 3911, 2123: 3912, 2124: 3913, 2122: 3914, 2121: 3915, 2120: 3916, 2119: 3917, 2118: 3918, 2117: 3919, 2116: 3920, 2115: 3921, 2114: 3922, 2113: 3923, 2112: 3924, 2111: 3925, 2110: 3926, 2109: 3927, 2108: 3928, 2107: 3929, 2106: 3930, 2105: 3931, 2104: 3932, 2103: 3933, 2102: 3934, 2101: 3935, 2100: 3936, 2099: 3937, 2098: 3938, 2097: 3939, 2096: 3940, 2095: 3941, 2093: 3942, 2094: 3943, 2092: 3944, 2091: 3945, 2090: 3946, 2088: 3947, 2089: 3948, 2087: 3949, 2085: 3950, 2086: 3951, 2084: 3952, 2083: 3953, 2082: 3954, 2081: 3955, 2080: 3956, 2079: 3957, 2078: 3958, 2077: 3959, 2075: 3960, 2076: 3961, 2074: 3962, 2073: 3963, 2072: 3964, 2071: 3965, 2070: 3966, 2069: 3967, 2068: 3968, 2067: 3969, 2066: 3970, 2064: 3971, 2065: 3972, 2063: 3973, 2062: 3974, 2061: 3975, 2060: 3976, 2059: 3977, 2057: 3978, 2058: 3979, 2056: 3980, 2055: 3981, 2054: 3982, 2053: 3983, 2052: 3984, 2051: 3985, 2050: 3986, 2049: 3987, 2048: 3988, 2047: 3989, 2046: 3990, 2045: 3991, 2044: 3992, 2043: 3993, 2042: 3994, 2041: 3995, 2039: 3996, 2040: 3997, 2038: 3998, 2036: 3999, 2037: 4000, 2035: 4001, 2034: 4002, 2033: 4003, 2032: 4004, 2031: 4005, 2030: 4006, 2029: 4007, 2028: 4008, 2027: 4009, 2026: 4010, 2025: 4011, 2024: 4012, 2023: 4013, 2022: 4014, 2020: 4015, 2021: 4016, 2019: 4017, 2018: 4018, 2017: 4019, 2016: 4020, 2015: 4021, 2014: 4022, 2013: 4023, 2012: 4024, 2011: 4025, 2010: 4026, 2009: 4027, 2008: 4028, 2005: 4029, 2007: 4030, 2006: 4031, 2004: 4032, 2002: 4033, 2003: 4034, 2001: 4035, 2000: 4036, 1999: 4037, 1998: 4038, 1997: 4039, 1996: 4040, 1995: 4041, 1994: 4042, 1993: 4043, 1992: 4044, 1991: 4045, 1990: 4046, 1989: 4047, 1988: 4048, 1985: 4049, 1986: 4050, 1987: 4051, 1983: 4052, 1984: 4053, 1982: 4054, 1981: 4055, 1980: 4056, 1979: 4057, 1978: 4058, 1977: 4059, 1974: 4060, 1975: 4061, 1973: 4062, 1976: 4063, 1971: 4064, 1972: 4065, 1969: 4066, 1968: 4067, 1967: 4068, 1970: 4069, 1966: 4070, 1965: 4071, 1964: 4072, 1963: 4073, 1962: 4074, 1961: 4075, 1960: 4076, 1959: 4077, 1958: 4078, 1957: 4079, 1956: 4080, 1955: 4081, 1952: 4082, 1951: 4083, 1954: 4084, 1948: 4085, 1945: 4086, 1946: 4087, 1953: 4088, 1944: 4089, 1937: 4090, 1949: 4091, 1950: 4092, 1943: 4093, 1941: 4094, 1942: 4095, 1938: 4096, 1935: 4097, 1939: 4098, 1947: 4099, 1940: 4100, 1934: 4101, 1931: 4102, 1928: 4103, 1926: 4104, 1929: 4105, 1927: 4106, 1924: 4107, 1925: 4108, 1923: 4109, 1921: 4110, 1920: 4111, 1922: 4112, 1936: 4113, 1919: 4114, 1930: 4115, 1917: 4116, 1918: 4117, 1916: 4118, 1914: 4119, 1912: 4120, 1909: 4121, 1911: 4122, 1906: 4123, 1904: 4124, 1908: 4125, 1905: 4126, 1903: 4127, 1907: 4128, 1902: 4129, 1901: 4130, 1900: 4131, 1933: 4132, 1915: 4133, 1910: 4134, 1894: 4135, 1896: 4136, 1898: 4137, 1899: 4138, 1893: 4139, 1892: 4140, 1895: 4141, 1913: 4142, 1891: 4143, 1889: 4144, 1890: 4145, 1888: 4146, 1886: 4147, 1885: 4148, 1897: 4149, 1887: 4150, 1882: 4151, 1881: 4152, 1880: 4153, 1883: 4154, 1879: 4155, 1884: 4156, 1932: 4157, 1878: 4158, 1876: 4159, 1873: 4160, 1874: 4161, 1872: 4162, 1871: 4163, 1870: 4164, 1869: 4165, 1868: 4166, 1867: 4167, 1866: 4168, 1865: 4169, 1864: 4170, 1863: 4171, 1862: 4172, 1859: 4173, 1861: 4174, 1860: 4175, 1858: 4176, 1857: 4177, 1856: 4178, 1855: 4179, 1854: 4180, 1852: 4181, 1851: 4182, 1850: 4183, 1849: 4184, 1846: 4185, 1844: 4186, 1843: 4187, 1848: 4188, 1847: 4189, 1842: 4190, 1841: 4191, 1840: 4192, 1839: 4193, 1838: 4194, 1837: 4195, 1833: 4196, 1835: 4197, 1834: 4198, 1830: 4199, 1824: 4200, 1832: 4201, 1836: 4202, 1826: 4203, 1845: 4204, 1822: 4205, 1829: 4206, 1828: 4207, 1823: 4208, 1827: 4209, 1820: 4210, 1819: 4211, 1818: 4212, 1817: 4213, 1816: 4214, 1814: 4215, 1812: 4216, 1811: 4217, 1813: 4218, 1821: 4219, 1809: 4220, 1808: 4221, 1810: 4222, 1807: 4223, 1831: 4224, 1805: 4225, 1804: 4226, 1806: 4227, 1815: 4228, 1803: 4229, 1802: 4230, 1801: 4231, 1800: 4232, 1798: 4233, 1799: 4234, 1797: 4235, 1796: 4236, 1793: 4237, 1795: 4238, 1792: 4239, 1794: 4240, 1790: 4241, 1791: 4242, 1787: 4243, 1875: 4244, 1789: 4245, 1788: 4246, 1784: 4247, 1783: 4248, 1785: 4249, 1782: 4250, 1781: 4251, 1780: 4252, 1779: 4253, 1778: 4254, 1786: 4255, 1777: 4256, 1773: 4257, 1776: 4258, 1775: 4259, 1774: 4260, 1772: 4261, 1771: 4262, 1769: 4263, 1768: 4264, 1770: 4265, 1767: 4266, 1762: 4267, 1766: 4268, 1764: 4269, 1763: 4270, 1765: 4271, 1760: 4272, 1759: 4273, 1758: 4274, 1756: 4275, 1757: 4276, 1761: 4277, 1755: 4278, 1753: 4279, 1752: 4280, 1754: 4281, 1751: 4282, 1749: 4283, 1750: 4284, 1747: 4285, 1746: 4286, 1745: 4287, 1748: 4288, 1744: 4289, 1743: 4290, 1742: 4291, 1740: 4292, 1739: 4293, 1738: 4294, 1737: 4295, 1736: 4296, 1735: 4297, 1733: 4298, 1734: 4299, 1732: 4300, 1729: 4301, 1730: 4302, 1731: 4303, 1728: 4304, 1725: 4305, 1726: 4306, 1727: 4307, 1722: 4308, 1719: 4309, 1721: 4310, 1720: 4311, 1724: 4312, 1723: 4313, 1718: 4314, 1717: 4315, 1715: 4316, 1741: 4317, 1714: 4318, 1716: 4319, 1713: 4320, 1712: 4321, 1711: 4322, 1710: 4323, 1709: 4324, 1708: 4325, 1707: 4326, 1706: 4327, 1705: 4328, 1704: 4329, 1703: 4330, 1700: 4331, 1701: 4332, 1698: 4333, 1697: 4334, 1702: 4335, 1695: 4336, 1699: 4337, 1694: 4338, 1693: 4339, 1696: 4340, 1691: 4341, 1692: 4342, 1688: 4343, 1686: 4344, 1687: 4345, 1685: 4346, 1684: 4347, 1689: 4348, 1683: 4349, 1682: 4350, 1681: 4351, 1690: 4352, 1680: 4353, 1679: 4354, 1678: 4355, 1676: 4356, 1677: 4357, 1675: 4358, 1674: 4359, 1672: 4360, 1673: 4361, 1669: 4362, 1671: 4363, 1668: 4364, 1670: 4365, 1667: 4366, 1666: 4367, 1665: 4368, 1664: 4369, 1663: 4370, 1662: 4371, 1661: 4372, 1660: 4373, 1659: 4374, 1658: 4375, 1654: 4376, 1655: 4377, 1657: 4378, 1656: 4379, 1653: 4380, 1652: 4381, 1651: 4382, 1650: 4383, 1649: 4384, 1648: 4385, 1647: 4386, 1646: 4387, 1645: 4388, 1644: 4389, 1641: 4390, 1643: 4391, 1642: 4392, 1640: 4393, 1639: 4394, 1638: 4395, 1637: 4396, 1636: 4397, 1634: 4398, 1635: 4399, 1633: 4400, 1632: 4401, 1631: 4402, 1628: 4403, 1629: 4404, 1630: 4405, 1627: 4406, 1626: 4407, 1625: 4408, 1624: 4409, 1623: 4410, 1622: 4411, 1621: 4412, 1620: 4413, 1617: 4414, 1618: 4415, 1619: 4416, 1616: 4417, 1614: 4418, 1615: 4419, 1613: 4420, 1612: 4421, 1611: 4422, 1610: 4423, 1609: 4424, 1608: 4425, 1825: 4426, 1607: 4427, 1606: 4428, 1605: 4429, 1604: 4430, 1603: 4431, 1602: 4432, 1601: 4433, 1600: 4434, 1599: 4435, 1598: 4436, 1597: 4437, 1596: 4438, 1595: 4439, 1594: 4440, 1593: 4441, 1592: 4442, 1591: 4443, 1590: 4444, 1589: 4445, 1588: 4446, 1587: 4447, 1586: 4448, 1585: 4449, 1584: 4450, 1583: 4451, 1579: 4452, 1582: 4453, 1580: 4454, 1578: 4455, 1577: 4456, 1576: 4457, 1574: 4458, 1575: 4459, 1573: 4460, 1572: 4461, 1571: 4462, 1570: 4463, 1569: 4464, 1568: 4465, 1567: 4466, 1566: 4467, 1564: 4468, 1565: 4469, 1563: 4470, 1562: 4471, 1561: 4472, 1560: 4473, 1559: 4474, 1558: 4475, 1556: 4476, 1555: 4477, 1554: 4478, 1553: 4479, 1552: 4480, 1550: 4481, 1549: 4482, 1548: 4483, 1551: 4484, 1547: 4485, 1546: 4486, 1545: 4487, 1544: 4488, 1543: 4489, 1542: 4490, 1540: 4491, 1541: 4492, 1539: 4493, 1538: 4494, 1537: 4495, 1535: 4496, 1536: 4497, 1534: 4498, 1533: 4499, 1532: 4500, 1531: 4501, 1530: 4502, 1529: 4503, 1528: 4504, 1527: 4505, 1526: 4506, 1525: 4507, 1524: 4508, 1523: 4509, 1521: 4510, 1522: 4511, 1520: 4512, 1519: 4513, 1517: 4514, 1518: 4515, 1516: 4516, 1515: 4517, 1514: 4518, 1513: 4519, 1512: 4520, 1511: 4521, 1510: 4522, 1509: 4523, 1508: 4524, 1507: 4525, 1506: 4526, 1581: 4527, 1504: 4528, 1503: 4529, 1501: 4530, 1500: 4531, 1502: 4532, 1499: 4533, 1497: 4534, 1498: 4535, 1496: 4536, 1495: 4537, 1493: 4538, 1494: 4539, 1492: 4540, 1491: 4541, 1490: 4542, 1489: 4543, 1488: 4544, 1487: 4545, 1486: 4546, 1484: 4547, 1485: 4548, 1483: 4549, 1482: 4550, 1481: 4551, 1479: 4552, 1478: 4553, 1476: 4554, 1477: 4555, 1474: 4556, 1473: 4557, 1475: 4558, 1472: 4559, 1470: 4560, 1471: 4561, 1469: 4562, 1468: 4563, 1467: 4564, 1480: 4565, 1466: 4566, 1465: 4567, 1463: 4568, 1464: 4569, 1462: 4570, 1461: 4571, 1460: 4572, 1459: 4573, 1458: 4574, 1457: 4575, 1456: 4576, 1454: 4577, 1453: 4578, 1452: 4579, 1451: 4580, 1455: 4581, 1450: 4582, 1448: 4583, 1446: 4584, 1445: 4585, 1447: 4586, 1449: 4587, 1443: 4588, 1444: 4589, 1442: 4590, 1441: 4591, 1440: 4592, 1439: 4593, 1438: 4594, 1437: 4595, 1436: 4596, 1435: 4597, 1434: 4598, 1433: 4599, 1432: 4600, 1430: 4601, 1429: 4602, 1431: 4603, 1427: 4604, 1426: 4605, 1423: 4606, 1425: 4607, 1424: 4608, 1422: 4609, 1421: 4610, 1420: 4611, 1419: 4612, 1418: 4613, 1416: 4614, 1415: 4615, 1417: 4616, 1414: 4617, 1413: 4618, 1412: 4619, 1411: 4620, 1409: 4621, 1408: 4622, 1407: 4623, 1406: 4624, 1405: 4625, 1404: 4626, 1403: 4627, 1402: 4628, 1401: 4629, 1410: 4630, 1400: 4631, 1399: 4632, 1397: 4633, 1398: 4634, 1396: 4635, 1393: 4636, 1394: 4637, 1395: 4638, 1392: 4639, 1390: 4640, 1389: 4641, 1388: 4642, 1391: 4643, 1387: 4644, 1386: 4645, 1385: 4646, 1384: 4647, 1383: 4648, 1381: 4649, 1380: 4650, 1382: 4651, 1378: 4652, 1379: 4653, 1377: 4654, 1376: 4655, 1375: 4656, 1374: 4657, 1373: 4658, 1372: 4659, 1371: 4660, 1370: 4661, 1369: 4662, 1368: 4663, 1367: 4664, 1366: 4665, 1364: 4666, 1363: 4667, 1365: 4668, 1362: 4669, 1361: 4670, 1360: 4671, 1359: 4672, 1358: 4673, 1357: 4674, 1356: 4675, 1355: 4676, 1354: 4677, 1353: 4678, 1352: 4679, 1351: 4680, 1350: 4681, 1349: 4682, 1348: 4683, 1347: 4684, 1346: 4685, 1345: 4686, 1344: 4687, 1343: 4688, 1342: 4689, 1341: 4690, 1340: 4691, 1338: 4692, 1339: 4693, 1337: 4694, 1336: 4695, 1335: 4696, 1334: 4697, 1333: 4698, 1332: 4699, 1331: 4700, 1330: 4701, 1329: 4702, 1328: 4703, 1325: 4704, 1326: 4705, 1324: 4706, 1327: 4707, 1323: 4708, 1322: 4709, 1321: 4710, 1320: 4711, 1319: 4712, 1316: 4713, 1317: 4714, 1318: 4715, 1315: 4716, 1314: 4717, 1313: 4718, 1312: 4719, 1311: 4720, 1310: 4721, 1309: 4722, 1308: 4723, 1307: 4724, 1306: 4725, 1305: 4726, 1304: 4727, 1303: 4728, 1301: 4729, 1299: 4730, 1300: 4731, 1302: 4732, 1298: 4733, 1297: 4734, 1296: 4735, 1295: 4736, 1293: 4737, 1294: 4738, 1292: 4739, 1291: 4740, 1290: 4741, 1289: 4742, 1288: 4743, 1286: 4744, 1285: 4745, 1284: 4746, 1282: 4747, 1281: 4748, 1280: 4749, 1279: 4750, 1283: 4751, 1278: 4752, 1277: 4753, 1276: 4754, 1275: 4755, 1274: 4756, 1273: 4757, 1272: 4758, 1271: 4759, 1270: 4760, 1269: 4761, 1268: 4762, 1267: 4763, 1266: 4764, 1264: 4765, 1263: 4766, 1262: 4767, 1261: 4768, 1557: 4769, 1260: 4770, 1259: 4771, 1258: 4772, 1255: 4773, 1256: 4774, 1257: 4775, 1254: 4776, 1253: 4777, 1252: 4778, 1251: 4779, 1250: 4780, 1249: 4781, 1248: 4782, 1247: 4783, 1246: 4784, 1245: 4785, 1244: 4786, 1243: 4787, 1242: 4788, 1241: 4789, 1240: 4790, 1239: 4791, 1237: 4792, 1238: 4793, 1236: 4794, 1235: 4795, 1234: 4796, 1233: 4797, 1232: 4798, 1230: 4799, 1229: 4800, 1227: 4801, 1231: 4802, 1228: 4803, 1226: 4804, 1225: 4805, 1223: 4806, 1222: 4807, 1224: 4808, 1221: 4809, 1220: 4810, 1219: 4811, 1218: 4812, 1217: 4813, 1216: 4814, 1215: 4815, 1211: 4816, 1214: 4817, 1212: 4818, 1213: 4819, 1210: 4820, 1209: 4821, 1208: 4822, 1207: 4823, 1206: 4824, 1205: 4825, 1204: 4826, 1203: 4827, 1202: 4828, 1201: 4829, 1200: 4830, 1199: 4831, 1198: 4832, 1197: 4833, 1196: 4834, 1195: 4835, 1194: 4836, 1193: 4837, 1192: 4838, 1190: 4839, 1189: 4840, 1191: 4841, 1186: 4842, 1188: 4843, 1187: 4844, 1185: 4845, 1184: 4846, 1183: 4847, 1182: 4848, 1181: 4849, 1180: 4850, 1179: 4851, 1178: 4852, 1177: 4853, 1176: 4854, 1175: 4855, 1174: 4856, 1173: 4857, 1172: 4858, 1171: 4859, 1170: 4860, 1169: 4861, 1168: 4862, 1167: 4863, 1166: 4864, 1165: 4865, 1163: 4866, 1164: 4867, 1162: 4868, 1161: 4869, 1160: 4870, 1159: 4871, 1158: 4872, 1157: 4873, 1156: 4874, 1155: 4875, 1154: 4876, 1153: 4877, 1152: 4878, 1151: 4879, 1853: 4880, 1150: 4881, 1149: 4882, 1148: 4883, 1147: 4884, 1146: 4885, 1145: 4886, 1144: 4887, 1143: 4888, 1141: 4889, 1142: 4890, 1139: 4891, 1140: 4892, 1138: 4893, 1137: 4894, 1136: 4895, 1135: 4896, 1134: 4897, 1133: 4898, 1132: 4899, 1131: 4900, 1130: 4901, 1128: 4902, 1129: 4903, 1127: 4904, 1126: 4905, 1125: 4906, 1124: 4907, 1123: 4908, 1122: 4909, 1121: 4910, 1120: 4911, 1119: 4912, 1117: 4913, 1116: 4914, 1115: 4915, 1114: 4916, 1113: 4917, 1112: 4918, 1111: 4919, 1109: 4920, 1108: 4921, 1110: 4922, 1107: 4923, 1106: 4924, 1105: 4925, 1104: 4926, 1103: 4927, 1102: 4928, 1101: 4929, 1100: 4930, 1099: 4931, 1118: 4932, 1098: 4933, 1097: 4934, 1096: 4935, 1095: 4936, 1094: 4937, 1093: 4938, 1092: 4939, 1091: 4940, 1090: 4941, 1089: 4942, 1088: 4943, 1087: 4944, 1086: 4945, 1085: 4946, 1084: 4947, 1083: 4948, 1081: 4949, 1082: 4950, 1080: 4951, 1079: 4952, 1078: 4953, 1077: 4954, 1075: 4955, 1076: 4956, 1074: 4957, 1073: 4958, 1071: 4959, 1070: 4960, 1072: 4961, 1069: 4962, 1068: 4963, 1067: 4964, 1066: 4965, 1065: 4966, 1064: 4967, 1063: 4968, 1062: 4969, 1061: 4970, 1060: 4971, 1059: 4972, 1058: 4973, 1057: 4974, 1056: 4975, 1055: 4976, 1054: 4977, 1053: 4978, 1505: 4979, 1052: 4980, 1051: 4981, 1050: 4982, 1049: 4983, 1048: 4984, 1047: 4985, 1046: 4986, 1045: 4987, 1044: 4988, 1043: 4989, 1042: 4990, 1041: 4991, 1040: 4992, 1039: 4993, 1038: 4994, 1037: 4995, 1036: 4996, 1035: 4997, 1034: 4998, 1033: 4999, 1032: 5000, 1031: 5001, 1030: 5002, 1029: 5003, 1028: 5004, 1027: 5005, 1025: 5006, 1026: 5007, 1024: 5008, 1023: 5009, 1022: 5010, 1021: 5011, 1020: 5012, 1019: 5013, 1018: 5014, 1017: 5015, 1016: 5016, 1015: 5017, 1014: 5018, 1013: 5019, 1011: 5020, 1010: 5021, 1009: 5022, 1008: 5023, 1007: 5024, 1006: 5025, 1005: 5026, 1003: 5027, 1002: 5028, 1004: 5029, 1001: 5030, 1000: 5031, 999: 5032, 998: 5033, 997: 5034, 996: 5035, 995: 5036, 994: 5037, 993: 5038, 1012: 5039, 992: 5040, 991: 5041, 990: 5042, 989: 5043, 988: 5044, 987: 5045, 986: 5046, 985: 5047, 984: 5048, 983: 5049, 982: 5050, 981: 5051, 980: 5052, 979: 5053, 978: 5054, 977: 5055, 976: 5056, 975: 5057, 974: 5058, 973: 5059, 972: 5060, 971: 5061, 970: 5062, 969: 5063, 968: 5064, 966: 5065, 967: 5066, 964: 5067, 965: 5068, 963: 5069, 962: 5070, 961: 5071, 960: 5072, 959: 5073, 958: 5074, 957: 5075, 956: 5076, 955: 5077, 954: 5078, 953: 5079, 952: 5080, 950: 5081, 951: 5082, 949: 5083, 948: 5084, 947: 5085, 946: 5086, 945: 5087, 944: 5088, 1428: 5089, 943: 5090, 942: 5091, 941: 5092, 940: 5093, 938: 5094, 939: 5095, 937: 5096, 936: 5097, 935: 5098, 934: 5099, 933: 5100, 932: 5101, 931: 5102, 930: 5103, 929: 5104, 928: 5105, 927: 5106, 2247: 5107, 926: 5108, 925: 5109, 924: 5110, 923: 5111, 922: 5112, 921: 5113, 920: 5114, 919: 5115, 917: 5116, 916: 5117, 918: 5118, 915: 5119, 914: 5120, 913: 5121, 912: 5122, 911: 5123, 910: 5124, 909: 5125, 908: 5126, 907: 5127, 906: 5128, 905: 5129, 904: 5130, 903: 5131, 902: 5132, 901: 5133, 900: 5134, 899: 5135, 898: 5136, 897: 5137, 896: 5138, 895: 5139, 894: 5140, 893: 5141, 892: 5142, 891: 5143, 890: 5144, 889: 5145, 888: 5146, 887: 5147, 886: 5148, 885: 5149, 884: 5150, 883: 5151, 882: 5152, 881: 5153, 880: 5154, 879: 5155, 878: 5156, 877: 5157, 876: 5158, 875: 5159, 874: 5160, 873: 5161, 872: 5162, 871: 5163, 870: 5164, 869: 5165, 868: 5166, 867: 5167, 866: 5168, 865: 5169, 864: 5170, 863: 5171, 862: 5172, 861: 5173, 860: 5174, 859: 5175, 858: 5176, 857: 5177, 856: 5178, 854: 5179, 853: 5180, 852: 5181, 851: 5182, 850: 5183, 849: 5184, 848: 5185, 847: 5186, 846: 5187, 845: 5188, 844: 5189, 842: 5190, 841: 5191, 843: 5192, 840: 5193, 839: 5194, 838: 5195, 837: 5196, 836: 5197, 835: 5198, 834: 5199, 833: 5200, 832: 5201, 831: 5202, 830: 5203, 829: 5204, 828: 5205, 827: 5206, 826: 5207, 825: 5208, 824: 5209, 823: 5210, 822: 5211, 821: 5212, 820: 5213, 819: 5214, 818: 5215, 817: 5216, 816: 5217, 814: 5218, 815: 5219, 813: 5220, 811: 5221, 810: 5222, 809: 5223, 808: 5224, 807: 5225, 812: 5226, 806: 5227, 805: 5228, 804: 5229, 803: 5230, 802: 5231, 801: 5232, 800: 5233, 799: 5234, 798: 5235, 797: 5236, 796: 5237, 795: 5238, 794: 5239, 793: 5240, 792: 5241, 791: 5242, 790: 5243, 789: 5244, 788: 5245, 786: 5246, 787: 5247, 785: 5248, 784: 5249, 783: 5250, 782: 5251, 781: 5252, 780: 5253, 779: 5254, 778: 5255, 777: 5256, 775: 5257, 776: 5258, 774: 5259, 773: 5260, 772: 5261, 771: 5262, 770: 5263, 769: 5264, 768: 5265, 767: 5266, 766: 5267, 765: 5268, 764: 5269, 763: 5270, 762: 5271, 761: 5272, 760: 5273, 759: 5274, 758: 5275, 757: 5276, 756: 5277, 755: 5278, 754: 5279, 753: 5280, 752: 5281, 751: 5282, 750: 5283, 749: 5284, 748: 5285, 855: 5286, 747: 5287, 746: 5288, 745: 5289, 744: 5290, 743: 5291, 742: 5292, 741: 5293, 740: 5294, 739: 5295, 738: 5296, 737: 5297, 736: 5298, 735: 5299, 734: 5300, 733: 5301, 732: 5302, 731: 5303, 730: 5304, 729: 5305, 728: 5306, 727: 5307, 726: 5308, 725: 5309, 724: 5310, 723: 5311, 722: 5312, 721: 5313, 720: 5314, 719: 5315, 718: 5316, 717: 5317, 716: 5318, 715: 5319, 714: 5320, 713: 5321, 712: 5322, 711: 5323, 710: 5324, 709: 5325, 708: 5326, 707: 5327, 706: 5328, 705: 5329, 704: 5330, 703: 5331, 702: 5332, 701: 5333, 700: 5334, 699: 5335, 698: 5336, 697: 5337, 696: 5338, 695: 5339, 694: 5340, 693: 5341, 692: 5342, 691: 5343, 690: 5344, 689: 5345, 688: 5346, 687: 5347, 686: 5348, 685: 5349, 684: 5350, 682: 5351, 683: 5352, 681: 5353, 680: 5354, 679: 5355, 678: 5356, 677: 5357, 676: 5358, 675: 5359, 674: 5360, 673: 5361, 672: 5362, 671: 5363, 670: 5364, 669: 5365, 668: 5366, 667: 5367, 666: 5368, 665: 5369, 664: 5370, 663: 5371, 662: 5372, 661: 5373, 660: 5374, 659: 5375, 658: 5376, 657: 5377, 656: 5378, 655: 5379, 654: 5380, 653: 5381, 652: 5382, 651: 5383, 650: 5384, 649: 5385, 648: 5386, 647: 5387, 646: 5388, 645: 5389, 644: 5390, 643: 5391, 642: 5392, 641: 5393, 640: 5394, 639: 5395, 638: 5396, 637: 5397, 636: 5398, 635: 5399, 634: 5400, 633: 5401, 632: 5402, 631: 5403, 630: 5404, 628: 5405, 629: 5406, 627: 5407, 626: 5408, 625: 5409, 624: 5410, 623: 5411, 622: 5412, 621: 5413, 620: 5414, 619: 5415, 618: 5416, 617: 5417, 616: 5418, 615: 5419, 614: 5420, 613: 5421, 612: 5422, 611: 5423, 610: 5424, 609: 5425, 608: 5426, 607: 5427, 606: 5428, 605: 5429, 604: 5430, 603: 5431, 602: 5432, 601: 5433, 600: 5434, 599: 5435, 598: 5436, 597: 5437, 596: 5438, 595: 5439, 594: 5440, 593: 5441, 592: 5442, 591: 5443, 590: 5444, 589: 5445, 588: 5446, 587: 5447, 586: 5448, 585: 5449, 584: 5450, 583: 5451, 582: 5452}} {'user_id': {0: 6040, 1: 6039, 2: 6038, 3: 6037, 4: 6036, 5: 6035, 6: 6034, 7: 6033, 8: 6032, 9: 6031, 10: 6030, 11: 6029, 12: 6028, 13: 6027, 14: 6026, 15: 6025, 16: 6024, 17: 6023, 18: 6022, 19: 6021, 20: 6020, 21: 6019, 22: 6018, 23: 6017, 24: 6016, 25: 6015, 26: 6014, 27: 6013, 28: 6012, 29: 6011, 30: 6010, 31: 6009, 32: 6007, 33: 6008, 34: 6006, 35: 6005, 36: 6004, 37: 6003, 38: 6002, 39: 6001, 40: 6000, 41: 5999, 42: 5998, 43: 5997, 44: 5996, 45: 5995, 46: 5994, 47: 5993, 48: 5992, 49: 5991, 50: 5990, 51: 5989, 52: 5988, 53: 5987, 54: 5986, 55: 5984, 56: 5983, 57: 5982, 58: 5981, 59: 5979, 60: 5980, 61: 5978, 62: 5977, 63: 5976, 64: 5975, 65: 5974, 66: 5973, 67: 5972, 68: 5971, 69: 5970, 70: 5969, 71: 5968, 72: 5967, 73: 5966, 74: 5965, 75: 5964, 76: 5963, 77: 5962, 78: 5961, 79: 5960, 80: 5959, 81: 5958, 82: 5957, 83: 5956, 84: 5955, 85: 5954, 86: 5953, 87: 5952, 88: 5951, 89: 5950, 90: 5948, 91: 5947, 92: 5946, 93: 5945, 94: 5944, 95: 5943, 96: 5942, 97: 5941, 98: 5940, 99: 5939, 100: 5938, 101: 5937, 102: 5949, 103: 5936, 104: 5935, 105: 5934, 106: 5933, 107: 5932, 108: 5931, 109: 5930, 110: 5929, 111: 5928, 112: 5927, 113: 5926, 114: 5925, 115: 5924, 116: 5923, 117: 5922, 118: 5921, 119: 5920, 120: 5919, 121: 5918, 122: 5917, 123: 5916, 124: 5915, 125: 5914, 126: 5913, 127: 5912, 128: 5911, 129: 5910, 130: 5909, 131: 5908, 132: 5907, 133: 5906, 134: 5905, 135: 5904, 136: 5903, 137: 5902, 138: 5901, 139: 5900, 140: 5899, 141: 5898, 142: 5897, 143: 5896, 144: 5895, 145: 5894, 146: 5893, 147: 5892, 148: 5891, 149: 5890, 150: 5889, 151: 5888, 152: 5887, 153: 5886, 154: 5885, 155: 5884, 156: 5883, 157: 5881, 158: 5882, 159: 5880, 160: 5879, 161: 5878, 162: 5877, 163: 5876, 164: 5875, 165: 5874, 166: 5873, 167: 5872, 168: 5871, 169: 5870, 170: 5869, 171: 5868, 172: 5867, 173: 5866, 174: 5865, 175: 5864, 176: 5863, 177: 5862, 178: 5861, 179: 5860, 180: 5859, 181: 5858, 182: 5857, 183: 5856, 184: 5855, 185: 5854, 186: 5853, 187: 5852, 188: 5851, 189: 5850, 190: 5849, 191: 5848, 192: 5847, 193: 5846, 194: 5845, 195: 5844, 196: 5843, 197: 5842, 198: 5841, 199: 5840, 200: 5839, 201: 5838, 202: 5837, 203: 5836, 204: 5835, 205: 5834, 206: 5833, 207: 5832, 208: 5831, 209: 5830, 210: 5829, 211: 5828, 212: 5827, 213: 5826, 214: 5825, 215: 5824, 216: 5823, 217: 5822, 218: 5821, 219: 5820, 220: 5819, 221: 5818, 222: 5817, 223: 5816, 224: 5815, 225: 5814, 226: 5813, 227: 5812, 228: 5811, 229: 5810, 230: 5809, 231: 5808, 232: 5807, 233: 5806, 234: 5805, 235: 5804, 236: 5803, 237: 5802, 238: 5801, 239: 5800, 240: 5799, 241: 5798, 242: 5797, 243: 5796, 244: 5795, 245: 5794, 246: 5793, 247: 5792, 248: 5791, 249: 5790, 250: 5789, 251: 5788, 252: 5787, 253: 5786, 254: 5785, 255: 5784, 256: 5783, 257: 5782, 258: 5781, 259: 5780, 260: 5779, 261: 5778, 262: 5777, 263: 5776, 264: 5775, 265: 5774, 266: 5773, 267: 5772, 268: 5771, 269: 5770, 270: 5769, 271: 5768, 272: 5767, 273: 5766, 274: 5765, 275: 5764, 276: 5763, 277: 5762, 278: 5761, 279: 5760, 280: 5759, 281: 5758, 282: 5757, 283: 5756, 284: 5755, 285: 5754, 286: 5753, 287: 5752, 288: 5751, 289: 5750, 290: 5749, 291: 5748, 292: 5747, 293: 5746, 294: 5745, 295: 5744, 296: 5743, 297: 5742, 298: 5741, 299: 5740, 300: 5739, 301: 5738, 302: 5737, 303: 5736, 304: 5735, 305: 5734, 306: 5733, 307: 5732, 308: 5731, 309: 5730, 310: 5729, 311: 5728, 312: 5727, 313: 5726, 314: 5725, 315: 5724, 316: 5723, 317: 5722, 318: 5721, 319: 5720, 320: 5719, 321: 5718, 322: 5717, 323: 5716, 324: 5715, 325: 5714, 326: 5713, 327: 5712, 328: 5711, 329: 5710, 330: 5709, 331: 5708, 332: 5707, 333: 5706, 334: 5705, 335: 5704, 336: 5703, 337: 5702, 338: 5701, 339: 5700, 340: 5699, 341: 5698, 342: 5697, 343: 5696, 344: 5695, 345: 5694, 346: 5693, 347: 5692, 348: 5691, 349: 5689, 350: 5690, 351: 5688, 352: 5687, 353: 5686, 354: 5685, 355: 5684, 356: 5683, 357: 5682, 358: 5681, 359: 5680, 360: 5679, 361: 5678, 362: 5677, 363: 5676, 364: 5675, 365: 5674, 366: 5673, 367: 5672, 368: 5671, 369: 5670, 370: 5669, 371: 5668, 372: 5667, 373: 5666, 374: 5665, 375: 5664, 376: 5663, 377: 5662, 378: 5661, 379: 5660, 380: 5659, 381: 5658, 382: 5657, 383: 5656, 384: 5655, 385: 5654, 386: 5653, 387: 5652, 388: 5651, 389: 5650, 390: 5649, 391: 5648, 392: 5647, 393: 5646, 394: 5645, 395: 5644, 396: 5643, 397: 5642, 398: 5641, 399: 5640, 400: 5639, 401: 5638, 402: 5637, 403: 5636, 404: 5635, 405: 5634, 406: 5633, 407: 5632, 408: 5631, 409: 5630, 410: 5629, 411: 5628, 412: 5627, 413: 5626, 414: 5625, 415: 5624, 416: 5623, 417: 5622, 418: 5621, 419: 5620, 420: 5619, 421: 5618, 422: 5617, 423: 5616, 424: 5615, 425: 5614, 426: 5613, 427: 5612, 428: 5611, 429: 5610, 430: 5609, 431: 5608, 432: 5607, 433: 5606, 434: 5605, 435: 5604, 436: 5603, 437: 5602, 438: 5601, 439: 5600, 440: 5599, 441: 5598, 442: 5597, 443: 5596, 444: 5595, 445: 5594, 446: 5593, 447: 5592, 448: 5591, 449: 5590, 450: 5589, 451: 5588, 452: 5587, 453: 5586, 454: 5585, 455: 5584, 456: 5583, 457: 5582, 458: 5581, 459: 5580, 460: 5578, 461: 5579, 462: 5577, 463: 5576, 464: 5575, 465: 5574, 466: 5573, 467: 5572, 468: 5571, 469: 5570, 470: 5569, 471: 5568, 472: 5567, 473: 5566, 474: 5565, 475: 5564, 476: 5563, 477: 5562, 478: 5561, 479: 5560, 480: 5559, 481: 5558, 482: 5557, 483: 5556, 484: 5555, 485: 5554, 486: 5553, 487: 5552, 488: 5551, 489: 5550, 490: 5549, 491: 5548, 492: 5547, 493: 5546, 494: 5545, 495: 5544, 496: 5543, 497: 5542, 498: 5541, 499: 5540, 500: 5539, 501: 5538, 502: 5537, 503: 5536, 504: 5535, 505: 5534, 506: 5533, 507: 5532, 508: 5531, 509: 5530, 510: 5529, 511: 5528, 512: 5527, 513: 5526, 514: 5525, 515: 5524, 516: 5523, 517: 5522, 518: 5521, 519: 5520, 520: 5519, 521: 5518, 522: 5517, 523: 5516, 524: 5515, 525: 5514, 526: 5513, 527: 5512, 528: 5511, 529: 5510, 530: 5509, 531: 5508, 532: 5507, 533: 5506, 534: 5505, 535: 5504, 536: 5503, 537: 5502, 538: 5501, 539: 5500, 540: 5499, 541: 5498, 542: 5497, 543: 5496, 544: 5495, 545: 5494, 546: 5493, 547: 5491, 548: 5490, 549: 5492, 550: 5489, 551: 5488, 552: 5487, 553: 5486, 554: 5485, 555: 5484, 556: 5483, 557: 5482, 558: 5481, 559: 5480, 560: 5479, 561: 5478, 562: 5477, 563: 5476, 564: 5474, 565: 5475, 566: 5473, 567: 5472, 568: 5471, 569: 5470, 570: 5469, 571: 5468, 572: 5466, 573: 5467, 574: 5465, 575: 5464, 576: 5463, 577: 5462, 578: 5461, 579: 5460, 580: 5459, 581: 5458, 582: 5457, 583: 5456, 584: 5455, 585: 5454, 586: 5453, 587: 5452, 588: 5451, 589: 5450, 590: 5449, 591: 5448, 592: 5447, 593: 5446, 594: 5445, 595: 5444, 596: 5443, 597: 5442, 598: 5441, 599: 5440, 600: 5439, 601: 5438, 602: 5437, 603: 5436, 604: 5435, 605: 5434, 606: 5433, 607: 5432, 608: 5431, 609: 5430, 610: 5429, 611: 5428, 612: 5427, 613: 5426, 614: 5425, 615: 5424, 616: 5423, 617: 5422, 618: 5421, 619: 5420, 620: 5419, 621: 5418, 622: 5417, 623: 5416, 624: 5415, 625: 5414, 626: 5413, 627: 5412, 628: 5411, 629: 5410, 630: 5409, 631: 5408, 632: 5407, 633: 5406, 634: 5405, 635: 5404, 636: 5403, 637: 5402, 638: 5401, 639: 5400, 640: 5399, 641: 5398, 642: 5397, 643: 5396, 644: 5395, 645: 5394, 646: 5393, 647: 5392, 648: 5391, 649: 5390, 650: 5389, 651: 5388, 652: 5387, 653: 5386, 654: 5385, 655: 5384, 656: 5383, 657: 5382, 658: 5381, 659: 5380, 660: 5379, 661: 5378, 662: 5377, 663: 5376, 664: 5375, 665: 5374, 666: 5373, 667: 5372, 668: 5371, 669: 5370, 670: 5369, 671: 5368, 672: 5366, 673: 5367, 674: 5365, 675: 5364, 676: 5363, 677: 5362, 678: 5361, 679: 5360, 680: 5359, 681: 5358, 682: 5357, 683: 5355, 684: 5356, 685: 5354, 686: 5353, 687: 5352, 688: 5985, 689: 5351, 690: 5350, 691: 5349, 692: 5348, 693: 5347, 694: 5346, 695: 5345, 696: 5344, 697: 5343, 698: 5342, 699: 5341, 700: 5340, 701: 5339, 702: 5338, 703: 5337, 704: 5336, 705: 5335, 706: 5334, 707: 5333, 708: 5332, 709: 5331, 710: 5330, 711: 5329, 712: 5328, 713: 5327, 714: 5326, 715: 5325, 716: 5324, 717: 5323, 718: 5322, 719: 5321, 720: 5320, 721: 5319, 722: 5318, 723: 5317, 724: 5316, 725: 5315, 726: 5314, 727: 5313, 728: 5312, 729: 5311, 730: 5310, 731: 5309, 732: 5308, 733: 5307, 734: 5306, 735: 5305, 736: 5304, 737: 5303, 738: 5302, 739: 5301, 740: 5300, 741: 5299, 742: 5298, 743: 5297, 744: 5296, 745: 5295, 746: 5294, 747: 5293, 748: 5292, 749: 5291, 750: 5290, 751: 5289, 752: 5288, 753: 5287, 754: 5286, 755: 5285, 756: 5284, 757: 5283, 758: 5282, 759: 5281, 760: 5280, 761: 5279, 762: 5278, 763: 5277, 764: 5276, 765: 5275, 766: 5274, 767: 5273, 768: 5272, 769: 5271, 770: 5270, 771: 5269, 772: 5268, 773: 5267, 774: 5266, 775: 5265, 776: 5264, 777: 5263, 778: 5262, 779: 5261, 780: 5260, 781: 5259, 782: 5258, 783: 5257, 784: 5256, 785: 5255, 786: 5254, 787: 5253, 788: 5252, 789: 5251, 790: 5250, 791: 5249, 792: 5248, 793: 5247, 794: 5246, 795: 5245, 796: 5244, 797: 5243, 798: 5242, 799: 5241, 800: 5240, 801: 5239, 802: 5238, 803: 5237, 804: 5236, 805: 5235, 806: 5234, 807: 5233, 808: 5232, 809: 5231, 810: 5230, 811: 5229, 812: 5228, 813: 5227, 814: 5225, 815: 5224, 816: 5223, 817: 5222, 818: 5221, 819: 5220, 820: 5219, 821: 5218, 822: 5217, 823: 5216, 824: 5215, 825: 5214, 826: 5213, 827: 5226, 828: 5212, 829: 5211, 830: 5210, 831: 5209, 832: 5208, 833: 5207, 834: 5206, 835: 5205, 836: 5204, 837: 5203, 838: 5202, 839: 5201, 840: 5200, 841: 5199, 842: 5198, 843: 5197, 844: 5196, 845: 5195, 846: 5194, 847: 5193, 848: 5192, 849: 5191, 850: 5190, 851: 5189, 852: 5188, 853: 5187, 854: 5186, 855: 5185, 856: 5184, 857: 5183, 858: 5182, 859: 5181, 860: 5180, 861: 5179, 862: 5178, 863: 5177, 864: 5176, 865: 5175, 866: 5174, 867: 5173, 868: 5171, 869: 5170, 870: 5169, 871: 5168, 872: 5167, 873: 5165, 874: 5166, 875: 5164, 876: 5163, 877: 5162, 878: 5161, 879: 5160, 880: 5159, 881: 5158, 882: 5156, 883: 5157, 884: 5155, 885: 5154, 886: 5153, 887: 5152, 888: 5151, 889: 5150, 890: 5149, 891: 5148, 892: 5147, 893: 5146, 894: 5145, 895: 5144, 896: 5143, 897: 5142, 898: 5141, 899: 5140, 900: 5139, 901: 5138, 902: 5137, 903: 5136, 904: 5135, 905: 5134, 906: 5133, 907: 5132, 908: 5131, 909: 5130, 910: 5129, 911: 5128, 912: 5127, 913: 5126, 914: 5125, 915: 5124, 916: 5123, 917: 5122, 918: 5121, 919: 5120, 920: 5119, 921: 5118, 922: 5117, 923: 5116, 924: 5115, 925: 5114, 926: 5113, 927: 5112, 928: 5111, 929: 5110, 930: 5109, 931: 5108, 932: 5107, 933: 5106, 934: 5105, 935: 5104, 936: 5103, 937: 5102, 938: 5100, 939: 5101, 940: 5099, 941: 5098, 942: 5097, 943: 5096, 944: 5095, 945: 5094, 946: 5093, 947: 5092, 948: 5091, 949: 5089, 950: 5090, 951: 5088, 952: 5087, 953: 5086, 954: 5085, 955: 5084, 956: 5083, 957: 5082, 958: 5081, 959: 5080, 960: 5079, 961: 5078, 962: 5077, 963: 5076, 964: 5075, 965: 5074, 966: 5073, 967: 5072, 968: 5071, 969: 5070, 970: 5068, 971: 5067, 972: 5066, 973: 5065, 974: 5064, 975: 5063, 976: 5062, 977: 5061, 978: 5060, 979: 5058, 980: 5059, 981: 5057, 982: 5056, 983: 5055, 984: 5054, 985: 5053, 986: 5052, 987: 5051, 988: 5050, 989: 5049, 990: 5048, 991: 5047, 992: 5046, 993: 5045, 994: 5044, 995: 5043, 996: 5042, 997: 5041, 998: 5040, 999: 5039, 1000: 5038, 1001: 5037, 1002: 5036, 1003: 5035, 1004: 5034, 1005: 5033, 1006: 5032, 1007: 5031, 1008: 5030, 1009: 5029, 1010: 5028, 1011: 5027, 1012: 5026, 1013: 5025, 1014: 5069, 1015: 5024, 1016: 5023, 1017: 5022, 1018: 5021, 1019: 5020, 1020: 5019, 1021: 5018, 1022: 5017, 1023: 5016, 1024: 5015, 1025: 5013, 1026: 5014, 1027: 5012, 1028: 5011, 1029: 5010, 1030: 5008, 1031: 5009, 1032: 5007, 1033: 5006, 1034: 5005, 1035: 5004, 1036: 5003, 1037: 5002, 1038: 5001, 1039: 5000, 1040: 4999, 1041: 4998, 1042: 4997, 1043: 4996, 1044: 4995, 1045: 4993, 1046: 4994, 1047: 4992, 1048: 4991, 1049: 4990, 1050: 4989, 1051: 4988, 1052: 4986, 1053: 4987, 1054: 4985, 1055: 4984, 1056: 4983, 1057: 4982, 1058: 4981, 1059: 4980, 1060: 4979, 1061: 4978, 1062: 4977, 1063: 4976, 1064: 4975, 1065: 4974, 1066: 4973, 1067: 4972, 1068: 4971, 1069: 4970, 1070: 4968, 1071: 4969, 1072: 4967, 1073: 4966, 1074: 4965, 1075: 4964, 1076: 4963, 1077: 4962, 1078: 4961, 1079: 4960, 1080: 4959, 1081: 4958, 1082: 4957, 1083: 4956, 1084: 4955, 1085: 4954, 1086: 4953, 1087: 4952, 1088: 4951, 1089: 4950, 1090: 4949, 1091: 4948, 1092: 4947, 1093: 4946, 1094: 4945, 1095: 4944, 1096: 4943, 1097: 4942, 1098: 4941, 1099: 4940, 1100: 4939, 1101: 4938, 1102: 4937, 1103: 4936, 1104: 4935, 1105: 4934, 1106: 4933, 1107: 4932, 1108: 4931, 1109: 4930, 1110: 4929, 1111: 4928, 1112: 4927, 1113: 4926, 1114: 4925, 1115: 4924, 1116: 4923, 1117: 4922, 1118: 4921, 1119: 4920, 1120: 4919, 1121: 4918, 1122: 4917, 1123: 4916, 1124: 4915, 1125: 4914, 1126: 4913, 1127: 4912, 1128: 4911, 1129: 4910, 1130: 4909, 1131: 4908, 1132: 4907, 1133: 4906, 1134: 4905, 1135: 4904, 1136: 4903, 1137: 4902, 1138: 4901, 1139: 4900, 1140: 4899, 1141: 4898, 1142: 4897, 1143: 5172, 1144: 4895, 1145: 4894, 1146: 4893, 1147: 4892, 1148: 4891, 1149: 4890, 1150: 4889, 1151: 4888, 1152: 4887, 1153: 4886, 1154: 4885, 1155: 4884, 1156: 4883, 1157: 4882, 1158: 4881, 1159: 4880, 1160: 4879, 1161: 4878, 1162: 4877, 1163: 4876, 1164: 4875, 1165: 4874, 1166: 4873, 1167: 4871, 1168: 4872, 1169: 4870, 1170: 4869, 1171: 4868, 1172: 4867, 1173: 4866, 1174: 4865, 1175: 4864, 1176: 4863, 1177: 4862, 1178: 4861, 1179: 4860, 1180: 4859, 1181: 4858, 1182: 4857, 1183: 4856, 1184: 4855, 1185: 4854, 1186: 4853, 1187: 4852, 1188: 4851, 1189: 4849, 1190: 4848, 1191: 4850, 1192: 4847, 1193: 4846, 1194: 4845, 1195: 4844, 1196: 4843, 1197: 4842, 1198: 4841, 1199: 4840, 1200: 4839, 1201: 4838, 1202: 4837, 1203: 4836, 1204: 4835, 1205: 4834, 1206: 4833, 1207: 4832, 1208: 4831, 1209: 4830, 1210: 4829, 1211: 4828, 1212: 4827, 1213: 4826, 1214: 4825, 1215: 4824, 1216: 4823, 1217: 4822, 1218: 4821, 1219: 4820, 1220: 4819, 1221: 4818, 1222: 4817, 1223: 4816, 1224: 4815, 1225: 4814, 1226: 4813, 1227: 4812, 1228: 4811, 1229: 4810, 1230: 4809, 1231: 4808, 1232: 4807, 1233: 4806, 1234: 4805, 1235: 4804, 1236: 4803, 1237: 4802, 1238: 4801, 1239: 4800, 1240: 4799, 1241: 4798, 1242: 4797, 1243: 4796, 1244: 4795, 1245: 4794, 1246: 4793, 1247: 4792, 1248: 4791, 1249: 4790, 1250: 4788, 1251: 4789, 1252: 4787, 1253: 4786, 1254: 4785, 1255: 4784, 1256: 4783, 1257: 4782, 1258: 4781, 1259: 4780, 1260: 4779, 1261: 4778, 1262: 4777, 1263: 4776, 1264: 4775, 1265: 4774, 1266: 4773, 1267: 4772, 1268: 4771, 1269: 4770, 1270: 4769, 1271: 4768, 1272: 4767, 1273: 4766, 1274: 4765, 1275: 4764, 1276: 4763, 1277: 4762, 1278: 4761, 1279: 4760, 1280: 4759, 1281: 4758, 1282: 4757, 1283: 4756, 1284: 4755, 1285: 4754, 1286: 4753, 1287: 4752, 1288: 4751, 1289: 4750, 1290: 4749, 1291: 4748, 1292: 4747, 1293: 4746, 1294: 4745, 1295: 4744, 1296: 4743, 1297: 4742, 1298: 4741, 1299: 4740, 1300: 4739, 1301: 4738, 1302: 4737, 1303: 4736, 1304: 4735, 1305: 4734, 1306: 4733, 1307: 4732, 1308: 4731, 1309: 4730, 1310: 4729, 1311: 4728, 1312: 4727, 1313: 4726, 1314: 4725, 1315: 4724, 1316: 4723, 1317: 4722, 1318: 4721, 1319: 4720, 1320: 4719, 1321: 4718, 1322: 4716, 1323: 4715, 1324: 4714, 1325: 4713, 1326: 4712, 1327: 4711, 1328: 4717, 1329: 4710, 1330: 4709, 1331: 4708, 1332: 4707, 1333: 4706, 1334: 4705, 1335: 4704, 1336: 4703, 1337: 4702, 1338: 4701, 1339: 4700, 1340: 4699, 1341: 4698, 1342: 4697, 1343: 4696, 1344: 4695, 1345: 4694, 1346: 4693, 1347: 4692, 1348: 4691, 1349: 4690, 1350: 4689, 1351: 4688, 1352: 4687, 1353: 4686, 1354: 4685, 1355: 4684, 1356: 4683, 1357: 4682, 1358: 4681, 1359: 4680, 1360: 4679, 1361: 4678, 1362: 4677, 1363: 4676, 1364: 4675, 1365: 4674, 1366: 4673, 1367: 4672, 1368: 4671, 1369: 4670, 1370: 4669, 1371: 4668, 1372: 4896, 1373: 4667, 1374: 4666, 1375: 4665, 1376: 4664, 1377: 4663, 1378: 4662, 1379: 4661, 1380: 4660, 1381: 4659, 1382: 4658, 1383: 4657, 1384: 4656, 1385: 4655, 1386: 4654, 1387: 4653, 1388: 4652, 1389: 4651, 1390: 4650, 1391: 4649, 1392: 4648, 1393: 4647, 1394: 4646, 1395: 4645, 1396: 4644, 1397: 4643, 1398: 4642, 1399: 4641, 1400: 4640, 1401: 4639, 1402: 4638, 1403: 4637, 1404: 4636, 1405: 4635, 1406: 4634, 1407: 4633, 1408: 4632, 1409: 4631, 1410: 4630, 1411: 4629, 1412: 4628, 1413: 4627, 1414: 4626, 1415: 4625, 1416: 4624, 1417: 4622, 1418: 4621, 1419: 4620, 1420: 4619, 1421: 4618, 1422: 4617, 1423: 4616, 1424: 4615, 1425: 4614, 1426: 4613, 1427: 4612, 1428: 4611, 1429: 4610, 1430: 4609, 1431: 4608, 1432: 4607, 1433: 4606, 1434: 4605, 1435: 4604, 1436: 4603, 1437: 4602, 1438: 4601, 1439: 4600, 1440: 4599, 1441: 4598, 1442: 4623, 1443: 4597, 1444: 4596, 1445: 4595, 1446: 4594, 1447: 4593, 1448: 4592, 1449: 4591, 1450: 4590, 1451: 4589, 1452: 4588, 1453: 4587, 1454: 4586, 1455: 4585, 1456: 4584, 1457: 4583, 1458: 4582, 1459: 4581, 1460: 4580, 1461: 4579, 1462: 4578, 1463: 4577, 1464: 4575, 1465: 4574, 1466: 4573, 1467: 4572, 1468: 4576, 1469: 4571, 1470: 4570, 1471: 4569, 1472: 4568, 1473: 4567, 1474: 4566, 1475: 4565, 1476: 4564, 1477: 4563, 1478: 4562, 1479: 4561, 1480: 4560, 1481: 4559, 1482: 4558, 1483: 4557, 1484: 4556, 1485: 4555, 1486: 4554, 1487: 4553, 1488: 4552, 1489: 4551, 1490: 4550, 1491: 4549, 1492: 4548, 1493: 4547, 1494: 4546, 1495: 4545, 1496: 4544, 1497: 4543, 1498: 4542, 1499: 4541, 1500: 4540, 1501: 4539, 1502: 4538, 1503: 4537, 1504: 4536, 1505: 4535, 1506: 4534, 1507: 4533, 1508: 4532, 1509: 4531, 1510: 4530, 1511: 4529, 1512: 4528, 1513: 4527, 1514: 4526, 1515: 4525, 1516: 4524, 1517: 4523, 1518: 4522, 1519: 4521, 1520: 4520, 1521: 4519, 1522: 4518, 1523: 4517, 1524: 4516, 1525: 4513, 1526: 4512, 1527: 4511, 1528: 4510, 1529: 4509, 1530: 4508, 1531: 4507, 1532: 4506, 1533: 4505, 1534: 4503, 1535: 4502, 1536: 4501, 1537: 4515, 1538: 4500, 1539: 4499, 1540: 4498, 1541: 4497, 1542: 4496, 1543: 4495, 1544: 4494, 1545: 4493, 1546: 4492, 1547: 4491, 1548: 4490, 1549: 4489, 1550: 4488, 1551: 4504, 1552: 4487, 1553: 4486, 1554: 4485, 1555: 4484, 1556: 4483, 1557: 4482, 1558: 4481, 1559: 4480, 1560: 4479, 1561: 4478, 1562: 4477, 1563: 4476, 1564: 4475, 1565: 4474, 1566: 4473, 1567: 4471, 1568: 4472, 1569: 4470, 1570: 4469, 1571: 4468, 1572: 4467, 1573: 4466, 1574: 4465, 1575: 4464, 1576: 4463, 1577: 4462, 1578: 4461, 1579: 4460, 1580: 4459, 1581: 4458, 1582: 4457, 1583: 4456, 1584: 4455, 1585: 4454, 1586: 4453, 1587: 4451, 1588: 4452, 1589: 4449, 1590: 4450, 1591: 4448, 1592: 4447, 1593: 4446, 1594: 4445, 1595: 4444, 1596: 4443, 1597: 4442, 1598: 4441, 1599: 4440, 1600: 4439, 1601: 4438, 1602: 4437, 1603: 4436, 1604: 4435, 1605: 4434, 1606: 4433, 1607: 4432, 1608: 4431, 1609: 4430, 1610: 4429, 1611: 4428, 1612: 4427, 1613: 4426, 1614: 4425, 1615: 4424, 1616: 4423, 1617: 4422, 1618: 4421, 1619: 4420, 1620: 4419, 1621: 4418, 1622: 4417, 1623: 4416, 1624: 4415, 1625: 4414, 1626: 4413, 1627: 4412, 1628: 4411, 1629: 4410, 1630: 4409, 1631: 4408, 1632: 4407, 1633: 4406, 1634: 4405, 1635: 4404, 1636: 4403, 1637: 4402, 1638: 4401, 1639: 4398, 1640: 4396, 1641: 4397, 1642: 4399, 1643: 4400, 1644: 4395, 1645: 4394, 1646: 4392, 1647: 4393, 1648: 4391, 1649: 4390, 1650: 4389, 1651: 4388, 1652: 4386, 1653: 4387, 1654: 4385, 1655: 4384, 1656: 4383, 1657: 4382, 1658: 4381, 1659: 4380, 1660: 4379, 1661: 4378, 1662: 4377, 1663: 4376, 1664: 4375, 1665: 4374, 1666: 4373, 1667: 4372, 1668: 4371, 1669: 4370, 1670: 4369, 1671: 4368, 1672: 4367, 1673: 4366, 1674: 4365, 1675: 4364, 1676: 4363, 1677: 4362, 1678: 4361, 1679: 4360, 1680: 4359, 1681: 4358, 1682: 4357, 1683: 4356, 1684: 4355, 1685: 4354, 1686: 4353, 1687: 4352, 1688: 4351, 1689: 4350, 1690: 4349, 1691: 4348, 1692: 4347, 1693: 4346, 1694: 4345, 1695: 4344, 1696: 4343, 1697: 4342, 1698: 4341, 1699: 4340, 1700: 4339, 1701: 4338, 1702: 4337, 1703: 4336, 1704: 4335, 1705: 4334, 1706: 4333, 1707: 4332, 1708: 4331, 1709: 4330, 1710: 4329, 1711: 4328, 1712: 4327, 1713: 4326, 1714: 4325, 1715: 4324, 1716: 4323, 1717: 4322, 1718: 4321, 1719: 4320, 1720: 4319, 1721: 4317, 1722: 4316, 1723: 4315, 1724: 4314, 1725: 4313, 1726: 4311, 1727: 4312, 1728: 4310, 1729: 4309, 1730: 4308, 1731: 4307, 1732: 4306, 1733: 4305, 1734: 4304, 1735: 4303, 1736: 4514, 1737: 4302, 1738: 4301, 1739: 4300, 1740: 4299, 1741: 4298, 1742: 4297, 1743: 4296, 1744: 4295, 1745: 4293, 1746: 4294, 1747: 4292, 1748: 4291, 1749: 4290, 1750: 4289, 1751: 4288, 1752: 4287, 1753: 4286, 1754: 4285, 1755: 4284, 1756: 4283, 1757: 4282, 1758: 4281, 1759: 4280, 1760: 4279, 1761: 4278, 1762: 4277, 1763: 4276, 1764: 4275, 1765: 4274, 1766: 4272, 1767: 4273, 1768: 4271, 1769: 4269, 1770: 4270, 1771: 4268, 1772: 4267, 1773: 4266, 1774: 4265, 1775: 4264, 1776: 4263, 1777: 4262, 1778: 4261, 1779: 4260, 1780: 4259, 1781: 4258, 1782: 4256, 1783: 4257, 1784: 4255, 1785: 4254, 1786: 4252, 1787: 4253, 1788: 4251, 1789: 4250, 1790: 4249, 1791: 4248, 1792: 4247, 1793: 4246, 1794: 4245, 1795: 4244, 1796: 4242, 1797: 4241, 1798: 4240, 1799: 4239, 1800: 4238, 1801: 4243, 1802: 4237, 1803: 4236, 1804: 4235, 1805: 4234, 1806: 4233, 1807: 4232, 1808: 4231, 1809: 4230, 1810: 4229, 1811: 4227, 1812: 4226, 1813: 4225, 1814: 4228, 1815: 4224, 1816: 4222, 1817: 4223, 1818: 4221, 1819: 4220, 1820: 4219, 1821: 4218, 1822: 4217, 1823: 4216, 1824: 4215, 1825: 4214, 1826: 4213, 1827: 4212, 1828: 4211, 1829: 4210, 1830: 4209, 1831: 4208, 1832: 4206, 1833: 4205, 1834: 4207, 1835: 4204, 1836: 4202, 1837: 4203, 1838: 4201, 1839: 4200, 1840: 4199, 1841: 4198, 1842: 4197, 1843: 4196, 1844: 4195, 1845: 4194, 1846: 4193, 1847: 4192, 1848: 4191, 1849: 4190, 1850: 4189, 1851: 4188, 1852: 4187, 1853: 4186, 1854: 4184, 1855: 4183, 1856: 4182, 1857: 4181, 1858: 4180, 1859: 4178, 1860: 4179, 1861: 4177, 1862: 4176, 1863: 4175, 1864: 4174, 1865: 4173, 1866: 4172, 1867: 4171, 1868: 4170, 1869: 4169, 1870: 4167, 1871: 4165, 1872: 4166, 1873: 4168, 1874: 4164, 1875: 4163, 1876: 4162, 1877: 4161, 1878: 4160, 1879: 4185, 1880: 4159, 1881: 4158, 1882: 4157, 1883: 4155, 1884: 4156, 1885: 4318, 1886: 4154, 1887: 4153, 1888: 4152, 1889: 4151, 1890: 4150, 1891: 4149, 1892: 4148, 1893: 4147, 1894: 4146, 1895: 4145, 1896: 4144, 1897: 4143, 1898: 4142, 1899: 4141, 1900: 4140, 1901: 4138, 1902: 4139, 1903: 4137, 1904: 4136, 1905: 4135, 1906: 4134, 1907: 4133, 1908: 4132, 1909: 4131, 1910: 4130, 1911: 4129, 1912: 4128, 1913: 4127, 1914: 4126, 1915: 4125, 1916: 4124, 1917: 4122, 1918: 4123, 1919: 4121, 1920: 4120, 1921: 4119, 1922: 4118, 1923: 4117, 1924: 4116, 1925: 4115, 1926: 4114, 1927: 4113, 1928: 4112, 1929: 4111, 1930: 4110, 1931: 4109, 1932: 4108, 1933: 4107, 1934: 4106, 1935: 4105, 1936: 4104, 1937: 4103, 1938: 4102, 1939: 4101, 1940: 4100, 1941: 4099, 1942: 4098, 1943: 4097, 1944: 4096, 1945: 4095, 1946: 4094, 1947: 4093, 1948: 4092, 1949: 4091, 1950: 4090, 1951: 4089, 1952: 4088, 1953: 4087, 1954: 4086, 1955: 4085, 1956: 4084, 1957: 4083, 1958: 4082, 1959: 4081, 1960: 4080, 1961: 4079, 1962: 4077, 1963: 4078, 1964: 4076, 1965: 4075, 1966: 4074, 1967: 4073, 1968: 4072, 1969: 4071, 1970: 4070, 1971: 4069, 1972: 4068, 1973: 4067, 1974: 4066, 1975: 4065, 1976: 4064, 1977: 4063, 1978: 4062, 1979: 4061, 1980: 4060, 1981: 4059, 1982: 4058, 1983: 4057, 1984: 4056, 1985: 4055, 1986: 4053, 1987: 4054, 1988: 4052, 1989: 4051, 1990: 4050, 1991: 4049, 1992: 4048, 1993: 4047, 1994: 4046, 1995: 4045, 1996: 4044, 1997: 4043, 1998: 4042, 1999: 4041, 2000: 4040, 2001: 4039, 2002: 4038, 2003: 4037, 2004: 4036, 2005: 4035, 2006: 4034, 2007: 4033, 2008: 4032, 2009: 4031, 2010: 4030, 2011: 4029, 2012: 4028, 2013: 4027, 2014: 4026, 2015: 4025, 2016: 4024, 2017: 4023, 2018: 4022, 2019: 4021, 2020: 4020, 2021: 4019, 2022: 4018, 2023: 4017, 2024: 4016, 2025: 4015, 2026: 4014, 2027: 4013, 2028: 4012, 2029: 4011, 2030: 4010, 2031: 4009, 2032: 4008, 2033: 4007, 2034: 4006, 2035: 4005, 2036: 4004, 2037: 4003, 2038: 4002, 2039: 4001, 2040: 4000, 2041: 3999, 2042: 3998, 2043: 3997, 2044: 3996, 2045: 3995, 2046: 3994, 2047: 3993, 2048: 3992, 2049: 3991, 2050: 3990, 2051: 3989, 2052: 3988, 2053: 3987, 2054: 3986, 2055: 3985, 2056: 3984, 2057: 3983, 2058: 3982, 2059: 3981, 2060: 3980, 2061: 3979, 2062: 3978, 2063: 3977, 2064: 3976, 2065: 3975, 2066: 3974, 2067: 3973, 2068: 3972, 2069: 3971, 2070: 3970, 2071: 3969, 2072: 3968, 2073: 3967, 2074: 3966, 2075: 3965, 2076: 3964, 2077: 3963, 2078: 3962, 2079: 3961, 2080: 3960, 2081: 3959, 2082: 3958, 2083: 3957, 2084: 3956, 2085: 3955, 2086: 3954, 2087: 3953, 2088: 3952, 2089: 3951, 2090: 3950, 2091: 3949, 2092: 3948, 2093: 3947, 2094: 3946, 2095: 3945, 2096: 3944, 2097: 3943, 2098: 3942, 2099: 3941, 2100: 3940, 2101: 3939, 2102: 3938, 2103: 3937, 2104: 3936, 2105: 3935, 2106: 3934, 2107: 3933, 2108: 3932, 2109: 3931, 2110: 3930, 2111: 3929, 2112: 3928, 2113: 3927, 2114: 3926, 2115: 3925, 2116: 3924, 2117: 3922, 2118: 3923, 2119: 3921, 2120: 3920, 2121: 3919, 2122: 3918, 2123: 3917, 2124: 3916, 2125: 3914, 2126: 3915, 2127: 3913, 2128: 3912, 2129: 3911, 2130: 3910, 2131: 3909, 2132: 3908, 2133: 3907, 2134: 3906, 2135: 3905, 2136: 3904, 2137: 3903, 2138: 3902, 2139: 3901, 2140: 3900, 2141: 3899, 2142: 3898, 2143: 3897, 2144: 3896, 2145: 3895, 2146: 3894, 2147: 3893, 2148: 3892, 2149: 3891, 2150: 3890, 2151: 3889, 2152: 3887, 2153: 3886, 2154: 3885, 2155: 3884, 2156: 3883, 2157: 3882, 2158: 3881, 2159: 3880, 2160: 3879, 2161: 3878, 2162: 3877, 2163: 3876, 2164: 3875, 2165: 3874, 2166: 3873, 2167: 3872, 2168: 3871, 2169: 3870, 2170: 3869, 2171: 3868, 2172: 3867, 2173: 3866, 2174: 3865, 2175: 3864, 2176: 3863, 2177: 3862, 2178: 3861, 2179: 3860, 2180: 3859, 2181: 3857, 2182: 3858, 2183: 3856, 2184: 3855, 2185: 3854, 2186: 3853, 2187: 3852, 2188: 3850, 2189: 3851, 2190: 3849, 2191: 3848, 2192: 3847, 2193: 3846, 2194: 3845, 2195: 3844, 2196: 3843, 2197: 3842, 2198: 3841, 2199: 3839, 2200: 3840, 2201: 3838, 2202: 3837, 2203: 3836, 2204: 3835, 2205: 3834, 2206: 3833, 2207: 3832, 2208: 3831, 2209: 3830, 2210: 3829, 2211: 3828, 2212: 3827, 2213: 3826, 2214: 3825, 2215: 3824, 2216: 3823, 2217: 3822, 2218: 3821, 2219: 3820, 2220: 3819, 2221: 3818, 2222: 3817, 2223: 3816, 2224: 3815, 2225: 3814, 2226: 3813, 2227: 3812, 2228: 3811, 2229: 3810, 2230: 3809, 2231: 3808, 2232: 3807, 2233: 3806, 2234: 3805, 2235: 3804, 2236: 3803, 2237: 3802, 2238: 3801, 2239: 3800, 2240: 3799, 2241: 3798, 2242: 3797, 2243: 3796, 2244: 3795, 2245: 3794, 2246: 3793, 2247: 3792, 2248: 3791, 2249: 3790, 2250: 3788, 2251: 3789, 2252: 3787, 2253: 3786, 2254: 3785, 2255: 3784, 2256: 3782, 2257: 3783, 2258: 3781, 2259: 3780, 2260: 3779, 2261: 3778, 2262: 3777, 2263: 3776, 2264: 3775, 2265: 3774, 2266: 3773, 2267: 3772, 2268: 3771, 2269: 3770, 2270: 3769, 2271: 3768, 2272: 3767, 2273: 3766, 2274: 3765, 2275: 3764, 2276: 3763, 2277: 3762, 2278: 3761, 2279: 3760, 2280: 3759, 2281: 3758, 2282: 3757, 2283: 3756, 2284: 3755, 2285: 3754, 2286: 3753, 2287: 3752, 2288: 3751, 2289: 3750, 2290: 3749, 2291: 3748, 2292: 3747, 2293: 3746, 2294: 3888, 2295: 3745, 2296: 3744, 2297: 3743, 2298: 3742, 2299: 3741, 2300: 3740, 2301: 3739, 2302: 3738, 2303: 3737, 2304: 3736, 2305: 3735, 2306: 3734, 2307: 3733, 2308: 3732, 2309: 3731, 2310: 3730, 2311: 3729, 2312: 3728, 2313: 3727, 2314: 3725, 2315: 3726, 2316: 3724, 2317: 3722, 2318: 3721, 2319: 3720, 2320: 3719, 2321: 3718, 2322: 3717, 2323: 3716, 2324: 3715, 2325: 3714, 2326: 3713, 2327: 3712, 2328: 3711, 2329: 3710, 2330: 3709, 2331: 3708, 2332: 3707, 2333: 3706, 2334: 3705, 2335: 3704, 2336: 3703, 2337: 3702, 2338: 3701, 2339: 3700, 2340: 3699, 2341: 3698, 2342: 3697, 2343: 3696, 2344: 3695, 2345: 3694, 2346: 3693, 2347: 3692, 2348: 3691, 2349: 3690, 2350: 3689, 2351: 3688, 2352: 3687, 2353: 3686, 2354: 3685, 2355: 3684, 2356: 3683, 2357: 3682, 2358: 3681, 2359: 3680, 2360: 3679, 2361: 3678, 2362: 3677, 2363: 3676, 2364: 3675, 2365: 3674, 2366: 3673, 2367: 3672, 2368: 3671, 2369: 3670, 2370: 3669, 2371: 3668, 2372: 3667, 2373: 3666, 2374: 3665, 2375: 3664, 2376: 3663, 2377: 3662, 2378: 3661, 2379: 3660, 2380: 3659, 2381: 3658, 2382: 3657, 2383: 3656, 2384: 3655, 2385: 3654, 2386: 3653, 2387: 3652, 2388: 3651, 2389: 3650, 2390: 3649, 2391: 3648, 2392: 3647, 2393: 3646, 2394: 3645, 2395: 3644, 2396: 3643, 2397: 3642, 2398: 3641, 2399: 3640, 2400: 3639, 2401: 3638, 2402: 3637, 2403: 3636, 2404: 3635, 2405: 3634, 2406: 3633, 2407: 3632, 2408: 3631, 2409: 3630, 2410: 3629, 2411: 3628, 2412: 3627, 2413: 3626, 2414: 3625, 2415: 3624, 2416: 3623, 2417: 3622, 2418: 3621, 2419: 3620, 2420: 3619, 2421: 3618, 2422: 3617, 2423: 3616, 2424: 3615, 2425: 3613, 2426: 3614, 2427: 3612, 2428: 3611, 2429: 3610, 2430: 3609, 2431: 3608, 2432: 3606, 2433: 3607, 2434: 3605, 2435: 3604, 2436: 3603, 2437: 3601, 2438: 3600, 2439: 3599, 2440: 3598, 2441: 3597, 2442: 3596, 2443: 3595, 2444: 3594, 2445: 3593, 2446: 3592, 2447: 3591, 2448: 3590, 2449: 3589, 2450: 3588, 2451: 3587, 2452: 3586, 2453: 3585, 2454: 3584, 2455: 3583, 2456: 3582, 2457: 3581, 2458: 3580, 2459: 3579, 2460: 3578, 2461: 3577, 2462: 3576, 2463: 3575, 2464: 3574, 2465: 3573, 2466: 3572, 2467: 3571, 2468: 3570, 2469: 3569, 2470: 3568, 2471: 3567, 2472: 3566, 2473: 3565, 2474: 3564, 2475: 3563, 2476: 3562, 2477: 3561, 2478: 3560, 2479: 3559, 2480: 3558, 2481: 3557, 2482: 3556, 2483: 3555, 2484: 3554, 2485: 3553, 2486: 3552, 2487: 3551, 2488: 3550, 2489: 3549, 2490: 3548, 2491: 3547, 2492: 3546, 2493: 3545, 2494: 3544, 2495: 3543, 2496: 3542, 2497: 3541, 2498: 3540, 2499: 3539, 2500: 3538, 2501: 3537, 2502: 3536, 2503: 3535, 2504: 3534, 2505: 3533, 2506: 3532, 2507: 3530, 2508: 3529, 2509: 3528, 2510: 3527, 2511: 3526, 2512: 3525, 2513: 3524, 2514: 3523, 2515: 3531, 2516: 3522, 2517: 3521, 2518: 3520, 2519: 3519, 2520: 3518, 2521: 3517, 2522: 3516, 2523: 3515, 2524: 3514, 2525: 3513, 2526: 3512, 2527: 3511, 2528: 3510, 2529: 3509, 2530: 3508, 2531: 3507, 2532: 3506, 2533: 3505, 2534: 3504, 2535: 3503, 2536: 3502, 2537: 3501, 2538: 3500, 2539: 3499, 2540: 3498, 2541: 3497, 2542: 3602, 2543: 3496, 2544: 3495, 2545: 3494, 2546: 3493, 2547: 3492, 2548: 3491, 2549: 3490, 2550: 3489, 2551: 3488, 2552: 3487, 2553: 3486, 2554: 3485, 2555: 3484, 2556: 3483, 2557: 3482, 2558: 3481, 2559: 3480, 2560: 3479, 2561: 3478, 2562: 3477, 2563: 3476, 2564: 3475, 2565: 3474, 2566: 3473, 2567: 3472, 2568: 3723, 2569: 3471, 2570: 3470, 2571: 3469, 2572: 3468, 2573: 3467, 2574: 3466, 2575: 3465, 2576: 3464, 2577: 3463, 2578: 3462, 2579: 3461, 2580: 3460, 2581: 3459, 2582: 3458, 2583: 3457, 2584: 3456, 2585: 3455, 2586: 3454, 2587: 3453, 2588: 3452, 2589: 3451, 2590: 3450, 2591: 3449, 2592: 3448, 2593: 3447, 2594: 3446, 2595: 3445, 2596: 3444, 2597: 3443, 2598: 3442, 2599: 3441, 2600: 3440, 2601: 3439, 2602: 3438, 2603: 3437, 2604: 3436, 2605: 3435, 2606: 3434, 2607: 3433, 2608: 3431, 2609: 3432, 2610: 3430, 2611: 3429, 2612: 3428, 2613: 3427, 2614: 3426, 2615: 3425, 2616: 3424, 2617: 3423, 2618: 3422, 2619: 3420, 2620: 3419, 2621: 3418, 2622: 3417, 2623: 3416, 2624: 3415, 2625: 3414, 2626: 3413, 2627: 3412, 2628: 3421, 2629: 3411, 2630: 3410, 2631: 3409, 2632: 3408, 2633: 3407, 2634: 3406, 2635: 3405, 2636: 3404, 2637: 3403, 2638: 3402, 2639: 3401, 2640: 3400, 2641: 3399, 2642: 3398, 2643: 3397, 2644: 3396, 2645: 3395, 2646: 3394, 2647: 3393, 2648: 3392, 2649: 3391, 2650: 3390, 2651: 3389, 2652: 3388, 2653: 3387, 2654: 3386, 2655: 3385, 2656: 3384, 2657: 3383, 2658: 3382, 2659: 3381, 2660: 3380, 2661: 3379, 2662: 3378, 2663: 3377, 2664: 3376, 2665: 3375, 2666: 3374, 2667: 3373, 2668: 3372, 2669: 3371, 2670: 3370, 2671: 3369, 2672: 3367, 2673: 3368, 2674: 3366, 2675: 3365, 2676: 3364, 2677: 3363, 2678: 3362, 2679: 3361, 2680: 3359, 2681: 3360, 2682: 3358, 2683: 3357, 2684: 3356, 2685: 3355, 2686: 3354, 2687: 3353, 2688: 3352, 2689: 3351, 2690: 3350, 2691: 3349, 2692: 3348, 2693: 3347, 2694: 3346, 2695: 3345, 2696: 3344, 2697: 3343, 2698: 3342, 2699: 3341, 2700: 3340, 2701: 3339, 2702: 3338, 2703: 3337, 2704: 3336, 2705: 3335, 2706: 3334, 2707: 3333, 2708: 3332, 2709: 3331, 2710: 3330, 2711: 3329, 2712: 3328, 2713: 3327, 2714: 3326, 2715: 3325, 2716: 3324, 2717: 3323, 2718: 3322, 2719: 3321, 2720: 3320, 2721: 3319, 2722: 3318, 2723: 3317, 2724: 3316, 2725: 3315, 2726: 3314, 2727: 3313, 2728: 3312, 2729: 3311, 2730: 3310, 2731: 3309, 2732: 3308, 2733: 3307, 2734: 3306, 2735: 3305, 2736: 3304, 2737: 3303, 2738: 3302, 2739: 3301, 2740: 3300, 2741: 3299, 2742: 3298, 2743: 3297, 2744: 3296, 2745: 3295, 2746: 3294, 2747: 3293, 2748: 3292, 2749: 3291, 2750: 3290, 2751: 3289, 2752: 3288, 2753: 3287, 2754: 3286, 2755: 3285, 2756: 3284, 2757: 3283, 2758: 3282, 2759: 3281, 2760: 3280, 2761: 3279, 2762: 3278, 2763: 3277, 2764: 3276, 2765: 3275, 2766: 3274, 2767: 3273, 2768: 3272, 2769: 3271, 2770: 3270, 2771: 3269, 2772: 3268, 2773: 3267, 2774: 3266, 2775: 3265, 2776: 3264, 2777: 3263, 2778: 3262, 2779: 3261, 2780: 3260, 2781: 3259, 2782: 3258, 2783: 3257, 2784: 3256, 2785: 3255, 2786: 3254, 2787: 3253, 2788: 3252, 2789: 3251, 2790: 3249, 2791: 3250, 2792: 3248, 2793: 3247, 2794: 3246, 2795: 3245, 2796: 3244, 2797: 3243, 2798: 3242, 2799: 3241, 2800: 3240, 2801: 3239, 2802: 3238, 2803: 3237, 2804: 3236, 2805: 3235, 2806: 3234, 2807: 3233, 2808: 3232, 2809: 3231, 2810: 3230, 2811: 3229, 2812: 3228, 2813: 3227, 2814: 3226, 2815: 3225, 2816: 3224, 2817: 3223, 2818: 3222, 2819: 3221, 2820: 3220, 2821: 3218, 2822: 3217, 2823: 3216, 2824: 3215, 2825: 3219, 2826: 3214, 2827: 3213, 2828: 3212, 2829: 3211, 2830: 3210, 2831: 3209, 2832: 3208, 2833: 3207, 2834: 3206, 2835: 3205, 2836: 3204, 2837: 3203, 2838: 3202, 2839: 3201, 2840: 3200, 2841: 3199, 2842: 3198, 2843: 3197, 2844: 3196, 2845: 3195, 2846: 3194, 2847: 3193, 2848: 3192, 2849: 3191, 2850: 3190, 2851: 3189, 2852: 3188, 2853: 3187, 2854: 3186, 2855: 3185, 2856: 3184, 2857: 3183, 2858: 3182, 2859: 3181, 2860: 3179, 2861: 3180, 2862: 3178, 2863: 3177, 2864: 3176, 2865: 3175, 2866: 3174, 2867: 3173, 2868: 3172, 2869: 3171, 2870: 3170, 2871: 3169, 2872: 3168, 2873: 3167, 2874: 3166, 2875: 3165, 2876: 3164, 2877: 3163, 2878: 3162, 2879: 3161, 2880: 3160, 2881: 3159, 2882: 3158, 2883: 3157, 2884: 3156, 2885: 3155, 2886: 3154, 2887: 3153, 2888: 3152, 2889: 3151, 2890: 3150, 2891: 3149, 2892: 3148, 2893: 3147, 2894: 3146, 2895: 3145, 2896: 3144, 2897: 3143, 2898: 3142, 2899: 3141, 2900: 3140, 2901: 3139, 2902: 3138, 2903: 3137, 2904: 3136, 2905: 3135, 2906: 3134, 2907: 3133, 2908: 3132, 2909: 3131, 2910: 3130, 2911: 3129, 2912: 3128, 2913: 3126, 2914: 3125, 2915: 3127, 2916: 3124, 2917: 3123, 2918: 3122, 2919: 3121, 2920: 3120, 2921: 3119, 2922: 3118, 2923: 3117, 2924: 3116, 2925: 3114, 2926: 3113, 2927: 3112, 2928: 3111, 2929: 3110, 2930: 3109, 2931: 3108, 2932: 3107, 2933: 3106, 2934: 3105, 2935: 3104, 2936: 3103, 2937: 3102, 2938: 3101, 2939: 3100, 2940: 3099, 2941: 3115, 2942: 3098, 2943: 3097, 2944: 3096, 2945: 3095, 2946: 3094, 2947: 3093, 2948: 3092, 2949: 3091, 2950: 3090, 2951: 3089, 2952: 3088, 2953: 3087, 2954: 3086, 2955: 3085, 2956: 3084, 2957: 3083, 2958: 3082, 2959: 3081, 2960: 3080, 2961: 3079, 2962: 3078, 2963: 3077, 2964: 3076, 2965: 3075, 2966: 3074, 2967: 3073, 2968: 3072, 2969: 3071, 2970: 3070, 2971: 3069, 2972: 3068, 2973: 3067, 2974: 3066, 2975: 3065, 2976: 3064, 2977: 3063, 2978: 3062, 2979: 3061, 2980: 3060, 2981: 3059, 2982: 3058, 2983: 3057, 2984: 3056, 2985: 3055, 2986: 3054, 2987: 3053, 2988: 3052, 2989: 3050, 2990: 3051, 2991: 3049, 2992: 3048, 2993: 3047, 2994: 3046, 2995: 3045, 2996: 3044, 2997: 3043, 2998: 3042, 2999: 3040, 3000: 3041, 3001: 3039, 3002: 3038, 3003: 3037, 3004: 3036, 3005: 3035, 3006: 3034, 3007: 3033, 3008: 3032, 3009: 3031, 3010: 3030, 3011: 3029, 3012: 3028, 3013: 3027, 3014: 3026, 3015: 3025, 3016: 3024, 3017: 3023, 3018: 3022, 3019: 3021, 3020: 3020, 3021: 3019, 3022: 3018, 3023: 3017, 3024: 3016, 3025: 3015, 3026: 3014, 3027: 3013, 3028: 3012, 3029: 3011, 3030: 3010, 3031: 3009, 3032: 3008, 3033: 3007, 3034: 3006, 3035: 3005, 3036: 3004, 3037: 3002, 3038: 3001, 3039: 3000, 3040: 2999, 3041: 2998, 3042: 2997, 3043: 2996, 3044: 2995, 3045: 2994, 3046: 2993, 3047: 2992, 3048: 2991, 3049: 2990, 3050: 2989, 3051: 3003, 3052: 2988, 3053: 2987, 3054: 2986, 3055: 2985, 3056: 2984, 3057: 2983, 3058: 2982, 3059: 2981, 3060: 2979, 3061: 2978, 3062: 2977, 3063: 2976, 3064: 2975, 3065: 2974, 3066: 2973, 3067: 2972, 3068: 2971, 3069: 2970, 3070: 2969, 3071: 2968, 3072: 2967, 3073: 2966, 3074: 2965, 3075: 2964, 3076: 2963, 3077: 2962, 3078: 2961, 3079: 2960, 3080: 2959, 3081: 2958, 3082: 2957, 3083: 2956, 3084: 2955, 3085: 2954, 3086: 2953, 3087: 2952, 3088: 2951, 3089: 2950, 3090: 2949, 3091: 2948, 3092: 2946, 3093: 2945, 3094: 2944, 3095: 2943, 3096: 2942, 3097: 2941, 3098: 2940, 3099: 2939, 3100: 2938, 3101: 2937, 3102: 2936, 3103: 2935, 3104: 2934, 3105: 2933, 3106: 2932, 3107: 2931, 3108: 2930, 3109: 2929, 3110: 2928, 3111: 2927, 3112: 2926, 3113: 2925, 3114: 2924, 3115: 2923, 3116: 2922, 3117: 2921, 3118: 2920, 3119: 2919, 3120: 2918, 3121: 2917, 3122: 2916, 3123: 2915, 3124: 2914, 3125: 2913, 3126: 2912, 3127: 2911, 3128: 2909, 3129: 2908, 3130: 2907, 3131: 2906, 3132: 2905, 3133: 2904, 3134: 2903, 3135: 2902, 3136: 2901, 3137: 2900, 3138: 2899, 3139: 2898, 3140: 2897, 3141: 2895, 3142: 2896, 3143: 2894, 3144: 2893, 3145: 2892, 3146: 2891, 3147: 2890, 3148: 2889, 3149: 2888, 3150: 2887, 3151: 2886, 3152: 2885, 3153: 2884, 3154: 2882, 3155: 2881, 3156: 2883, 3157: 2880, 3158: 2879, 3159: 2878, 3160: 2877, 3161: 2876, 3162: 2875, 3163: 2874, 3164: 2873, 3165: 2872, 3166: 2871, 3167: 2870, 3168: 2869, 3169: 2868, 3170: 2867, 3171: 2866, 3172: 2865, 3173: 2864, 3174: 2863, 3175: 2862, 3176: 2861, 3177: 2860, 3178: 2859, 3179: 2858, 3180: 2857, 3181: 2856, 3182: 2855, 3183: 2854, 3184: 2853, 3185: 2852, 3186: 2851, 3187: 2850, 3188: 2849, 3189: 2848, 3190: 2847, 3191: 2846, 3192: 2845, 3193: 2844, 3194: 2843, 3195: 2842, 3196: 2841, 3197: 2840, 3198: 2839, 3199: 2838, 3200: 2837, 3201: 2836, 3202: 2835, 3203: 2834, 3204: 2833, 3205: 2832, 3206: 2831, 3207: 2830, 3208: 2829, 3209: 2828, 3210: 2827, 3211: 2826, 3212: 2825, 3213: 2824, 3214: 2823, 3215: 2822, 3216: 2821, 3217: 2820, 3218: 2819, 3219: 2818, 3220: 2817, 3221: 2816, 3222: 2815, 3223: 2814, 3224: 2813, 3225: 2812, 3226: 2811, 3227: 2810, 3228: 2809, 3229: 2808, 3230: 2807, 3231: 2806, 3232: 2805, 3233: 2804, 3234: 2803, 3235: 2802, 3236: 2801, 3237: 2800, 3238: 2799, 3239: 2798, 3240: 2797, 3241: 2796, 3242: 2795, 3243: 2794, 3244: 2793, 3245: 2792, 3246: 2791, 3247: 2790, 3248: 2789, 3249: 2788, 3250: 2787, 3251: 2786, 3252: 2785, 3253: 2784, 3254: 2783, 3255: 2782, 3256: 2781, 3257: 2780, 3258: 2779, 3259: 2778, 3260: 2777, 3261: 2776, 3262: 2775, 3263: 2774, 3264: 2773, 3265: 2772, 3266: 2771, 3267: 2770, 3268: 2769, 3269: 2768, 3270: 2767, 3271: 2766, 3272: 2765, 3273: 2764, 3274: 2763, 3275: 2762, 3276: 2761, 3277: 2760, 3278: 2759, 3279: 2758, 3280: 2757, 3281: 2756, 3282: 2755, 3283: 2754, 3284: 2753, 3285: 2752, 3286: 2751, 3287: 2750, 3288: 2749, 3289: 2748, 3290: 2747, 3291: 2746, 3292: 2745, 3293: 2744, 3294: 2743, 3295: 2742, 3296: 2741, 3297: 2740, 3298: 2739, 3299: 2738, 3300: 2737, 3301: 2736, 3302: 2735, 3303: 2734, 3304: 2733, 3305: 2732, 3306: 2731, 3307: 2730, 3308: 2729, 3309: 2728, 3310: 2727, 3311: 2726, 3312: 2725, 3313: 2724, 3314: 2723, 3315: 2722, 3316: 2721, 3317: 2720, 3318: 2719, 3319: 2718, 3320: 2716, 3321: 2714, 3322: 2717, 3323: 2715, 3324: 2713, 3325: 2712, 3326: 2711, 3327: 2710, 3328: 2709, 3329: 2708, 3330: 2707, 3331: 2706, 3332: 2705, 3333: 2704, 3334: 2703, 3335: 2702, 3336: 2701, 3337: 2700, 3338: 2699, 3339: 2698, 3340: 2697, 3341: 2696, 3342: 2695, 3343: 2694, 3344: 2693, 3345: 2692, 3346: 2691, 3347: 2690, 3348: 2689, 3349: 2688, 3350: 2687, 3351: 2686, 3352: 2685, 3353: 2684, 3354: 2683, 3355: 2682, 3356: 2681, 3357: 2680, 3358: 2679, 3359: 2678, 3360: 2677, 3361: 2676, 3362: 2675, 3363: 2674, 3364: 2673, 3365: 2672, 3366: 2671, 3367: 2670, 3368: 2669, 3369: 2668, 3370: 2667, 3371: 2666, 3372: 2665, 3373: 2664, 3374: 2663, 3375: 2662, 3376: 2661, 3377: 2660, 3378: 2659, 3379: 2658, 3380: 2657, 3381: 2656, 3382: 2655, 3383: 2653, 3384: 2652, 3385: 2651, 3386: 2650, 3387: 2649, 3388: 2648, 3389: 2654, 3390: 2647, 3391: 2646, 3392: 2645, 3393: 2644, 3394: 2643, 3395: 2642, 3396: 2641, 3397: 2640, 3398: 2639, 3399: 2638, 3400: 2637, 3401: 2636, 3402: 2635, 3403: 2634, 3404: 2633, 3405: 2632, 3406: 2631, 3407: 2630, 3408: 2629, 3409: 2628, 3410: 2627, 3411: 2626, 3412: 2625, 3413: 2624, 3414: 2623, 3415: 2622, 3416: 2621, 3417: 2620, 3418: 2619, 3419: 2618, 3420: 2617, 3421: 2616, 3422: 2615, 3423: 2614, 3424: 2613, 3425: 2612, 3426: 2611, 3427: 2610, 3428: 2609, 3429: 2608, 3430: 2607, 3431: 2606, 3432: 2605, 3433: 2604, 3434: 2603, 3435: 2602, 3436: 2600, 3437: 2599, 3438: 2598, 3439: 2597, 3440: 2601, 3441: 2596, 3442: 2595, 3443: 2594, 3444: 2593, 3445: 2592, 3446: 2591, 3447: 2590, 3448: 2589, 3449: 2588, 3450: 2587, 3451: 2586, 3452: 2584, 3453: 2585, 3454: 2583, 3455: 2582, 3456: 2581, 3457: 2580, 3458: 2579, 3459: 2578, 3460: 2577, 3461: 2576, 3462: 2575, 3463: 2574, 3464: 2573, 3465: 2572, 3466: 2571, 3467: 2570, 3468: 2569, 3469: 2568, 3470: 2567, 3471: 2566, 3472: 2565, 3473: 2564, 3474: 2563, 3475: 2562, 3476: 2561, 3477: 2560, 3478: 2559, 3479: 2558, 3480: 2557, 3481: 2556, 3482: 2555, 3483: 2554, 3484: 2553, 3485: 2552, 3486: 2551, 3487: 2550, 3488: 2549, 3489: 2548, 3490: 2547, 3491: 2546, 3492: 2545, 3493: 2544, 3494: 2543, 3495: 2542, 3496: 2541, 3497: 2540, 3498: 2539, 3499: 2538, 3500: 2537, 3501: 2535, 3502: 2536, 3503: 2534, 3504: 2533, 3505: 2532, 3506: 2531, 3507: 2530, 3508: 2529, 3509: 2528, 3510: 2527, 3511: 2526, 3512: 2525, 3513: 2524, 3514: 2523, 3515: 2522, 3516: 2521, 3517: 2520, 3518: 2519, 3519: 2518, 3520: 2517, 3521: 2516, 3522: 2515, 3523: 2514, 3524: 2513, 3525: 2512, 3526: 2511, 3527: 2510, 3528: 2509, 3529: 2508, 3530: 2507, 3531: 2506, 3532: 2505, 3533: 2504, 3534: 2503, 3535: 2502, 3536: 2501, 3537: 2500, 3538: 2499, 3539: 2498, 3540: 2497, 3541: 2496, 3542: 2495, 3543: 2494, 3544: 2493, 3545: 2492, 3546: 2491, 3547: 2490, 3548: 2489, 3549: 2488, 3550: 2487, 3551: 2486, 3552: 2485, 3553: 2484, 3554: 2483, 3555: 2482, 3556: 2481, 3557: 2480, 3558: 2479, 3559: 2478, 3560: 2476, 3561: 2477, 3562: 2475, 3563: 2474, 3564: 2473, 3565: 2472, 3566: 2471, 3567: 2470, 3568: 2469, 3569: 2468, 3570: 2467, 3571: 2466, 3572: 2465, 3573: 2464, 3574: 2462, 3575: 2463, 3576: 2461, 3577: 2460, 3578: 2459, 3579: 2458, 3580: 2457, 3581: 2456, 3582: 2455, 3583: 2454, 3584: 2453, 3585: 2452, 3586: 2451, 3587: 2450, 3588: 2449, 3589: 2448, 3590: 2447, 3591: 2446, 3592: 2445, 3593: 2444, 3594: 2443, 3595: 2442, 3596: 2441, 3597: 2440, 3598: 2439, 3599: 2438, 3600: 2436, 3601: 2435, 3602: 2433, 3603: 2437, 3604: 2431, 3605: 2430, 3606: 2432, 3607: 2434, 3608: 2429, 3609: 2428, 3610: 2427, 3611: 2426, 3612: 2424, 3613: 2423, 3614: 2422, 3615: 2421, 3616: 2420, 3617: 2425, 3618: 2419, 3619: 2418, 3620: 2417, 3621: 2415, 3622: 2416, 3623: 2414, 3624: 2413, 3625: 2412, 3626: 2411, 3627: 2410, 3628: 2409, 3629: 2408, 3630: 2407, 3631: 2406, 3632: 2405, 3633: 2404, 3634: 2403, 3635: 2402, 3636: 2401, 3637: 2400, 3638: 2399, 3639: 2398, 3640: 2397, 3641: 2396, 3642: 2395, 3643: 2394, 3644: 2393, 3645: 2392, 3646: 2391, 3647: 2390, 3648: 2389, 3649: 2388, 3650: 2387, 3651: 2386, 3652: 2385, 3653: 2384, 3654: 2383, 3655: 2382, 3656: 2381, 3657: 2380, 3658: 2378, 3659: 2379, 3660: 2377, 3661: 2376, 3662: 2375, 3663: 2374, 3664: 2373, 3665: 2372, 3666: 2371, 3667: 2370, 3668: 2369, 3669: 2368, 3670: 2367, 3671: 2366, 3672: 2365, 3673: 2364, 3674: 2363, 3675: 2362, 3676: 2361, 3677: 2360, 3678: 2359, 3679: 2358, 3680: 2357, 3681: 2356, 3682: 2355, 3683: 2354, 3684: 2352, 3685: 2353, 3686: 2351, 3687: 2350, 3688: 2348, 3689: 2349, 3690: 2347, 3691: 2346, 3692: 2345, 3693: 2344, 3694: 2342, 3695: 2343, 3696: 2341, 3697: 2340, 3698: 2339, 3699: 2338, 3700: 2337, 3701: 2336, 3702: 2335, 3703: 2334, 3704: 2333, 3705: 2332, 3706: 2331, 3707: 2330, 3708: 2329, 3709: 2328, 3710: 2327, 3711: 2326, 3712: 2325, 3713: 2324, 3714: 2323, 3715: 2322, 3716: 2321, 3717: 2320, 3718: 2319, 3719: 2318, 3720: 2317, 3721: 2316, 3722: 2315, 3723: 2314, 3724: 2313, 3725: 2312, 3726: 2311, 3727: 2310, 3728: 2309, 3729: 2308, 3730: 2307, 3731: 2306, 3732: 2305, 3733: 2304, 3734: 2303, 3735: 2302, 3736: 2301, 3737: 2300, 3738: 2299, 3739: 2298, 3740: 2297, 3741: 2296, 3742: 2295, 3743: 2294, 3744: 2293, 3745: 2292, 3746: 2291, 3747: 2290, 3748: 2289, 3749: 2288, 3750: 2287, 3751: 2286, 3752: 2285, 3753: 2284, 3754: 2283, 3755: 2282, 3756: 2281, 3757: 2280, 3758: 2279, 3759: 2278, 3760: 2277, 3761: 2276, 3762: 2275, 3763: 2274, 3764: 2273, 3765: 2272, 3766: 2271, 3767: 2270, 3768: 2269, 3769: 2268, 3770: 2267, 3771: 2266, 3772: 2265, 3773: 2264, 3774: 2263, 3775: 2262, 3776: 2261, 3777: 2260, 3778: 2259, 3779: 2258, 3780: 2257, 3781: 2256, 3782: 2255, 3783: 2254, 3784: 2253, 3785: 2252, 3786: 2250, 3787: 2251, 3788: 2248, 3789: 2246, 3790: 2244, 3791: 2243, 3792: 2242, 3793: 2241, 3794: 2249, 3795: 2245, 3796: 2240, 3797: 2239, 3798: 2238, 3799: 2237, 3800: 2235, 3801: 2236, 3802: 2234, 3803: 2233, 3804: 2232, 3805: 2231, 3806: 2230, 3807: 2229, 3808: 2228, 3809: 2227, 3810: 2226, 3811: 2224, 3812: 2225, 3813: 2223, 3814: 2222, 3815: 2221, 3816: 2220, 3817: 2219, 3818: 2218, 3819: 2217, 3820: 2216, 3821: 2215, 3822: 2214, 3823: 2212, 3824: 2213, 3825: 2211, 3826: 2210, 3827: 2209, 3828: 2208, 3829: 2207, 3830: 2206, 3831: 2205, 3832: 2203, 3833: 2204, 3834: 2202, 3835: 2201, 3836: 2200, 3837: 2199, 3838: 2197, 3839: 2198, 3840: 2196, 3841: 2195, 3842: 2192, 3843: 2191, 3844: 2193, 3845: 2194, 3846: 2190, 3847: 2189, 3848: 2188, 3849: 2186, 3850: 2185, 3851: 2187, 3852: 2184, 3853: 2182, 3854: 2183, 3855: 2181, 3856: 2180, 3857: 2179, 3858: 2178, 3859: 2177, 3860: 2175, 3861: 2176, 3862: 2174, 3863: 2173, 3864: 2172, 3865: 2171, 3866: 2169, 3867: 2170, 3868: 2168, 3869: 2167, 3870: 2166, 3871: 2165, 3872: 2164, 3873: 2163, 3874: 2162, 3875: 2161, 3876: 2160, 3877: 2159, 3878: 2158, 3879: 2157, 3880: 2156, 3881: 2155, 3882: 2154, 3883: 2153, 3884: 2152, 3885: 2150, 3886: 2151, 3887: 2149, 3888: 2148, 3889: 2147, 3890: 2146, 3891: 2145, 3892: 2144, 3893: 2143, 3894: 2142, 3895: 2141, 3896: 2140, 3897: 2139, 3898: 2138, 3899: 2137, 3900: 2136, 3901: 2135, 3902: 2134, 3903: 2133, 3904: 2132, 3905: 2131, 3906: 2130, 3907: 2129, 3908: 2128, 3909: 2127, 3910: 2126, 3911: 2125, 3912: 2123, 3913: 2124, 3914: 2122, 3915: 2121, 3916: 2120, 3917: 2119, 3918: 2118, 3919: 2117, 3920: 2116, 3921: 2115, 3922: 2114, 3923: 2113, 3924: 2112, 3925: 2111, 3926: 2110, 3927: 2109, 3928: 2108, 3929: 2107, 3930: 2106, 3931: 2105, 3932: 2104, 3933: 2103, 3934: 2102, 3935: 2101, 3936: 2100, 3937: 2099, 3938: 2098, 3939: 2097, 3940: 2096, 3941: 2095, 3942: 2093, 3943: 2094, 3944: 2092, 3945: 2091, 3946: 2090, 3947: 2088, 3948: 2089, 3949: 2087, 3950: 2085, 3951: 2086, 3952: 2084, 3953: 2083, 3954: 2082, 3955: 2081, 3956: 2080, 3957: 2079, 3958: 2078, 3959: 2077, 3960: 2075, 3961: 2076, 3962: 2074, 3963: 2073, 3964: 2072, 3965: 2071, 3966: 2070, 3967: 2069, 3968: 2068, 3969: 2067, 3970: 2066, 3971: 2064, 3972: 2065, 3973: 2063, 3974: 2062, 3975: 2061, 3976: 2060, 3977: 2059, 3978: 2057, 3979: 2058, 3980: 2056, 3981: 2055, 3982: 2054, 3983: 2053, 3984: 2052, 3985: 2051, 3986: 2050, 3987: 2049, 3988: 2048, 3989: 2047, 3990: 2046, 3991: 2045, 3992: 2044, 3993: 2043, 3994: 2042, 3995: 2041, 3996: 2039, 3997: 2040, 3998: 2038, 3999: 2036, 4000: 2037, 4001: 2035, 4002: 2034, 4003: 2033, 4004: 2032, 4005: 2031, 4006: 2030, 4007: 2029, 4008: 2028, 4009: 2027, 4010: 2026, 4011: 2025, 4012: 2024, 4013: 2023, 4014: 2022, 4015: 2020, 4016: 2021, 4017: 2019, 4018: 2018, 4019: 2017, 4020: 2016, 4021: 2015, 4022: 2014, 4023: 2013, 4024: 2012, 4025: 2011, 4026: 2010, 4027: 2009, 4028: 2008, 4029: 2005, 4030: 2007, 4031: 2006, 4032: 2004, 4033: 2002, 4034: 2003, 4035: 2001, 4036: 2000, 4037: 1999, 4038: 1998, 4039: 1997, 4040: 1996, 4041: 1995, 4042: 1994, 4043: 1993, 4044: 1992, 4045: 1991, 4046: 1990, 4047: 1989, 4048: 1988, 4049: 1985, 4050: 1986, 4051: 1987, 4052: 1983, 4053: 1984, 4054: 1982, 4055: 1981, 4056: 1980, 4057: 1979, 4058: 1978, 4059: 1977, 4060: 1974, 4061: 1975, 4062: 1973, 4063: 1976, 4064: 1971, 4065: 1972, 4066: 1969, 4067: 1968, 4068: 1967, 4069: 1970, 4070: 1966, 4071: 1965, 4072: 1964, 4073: 1963, 4074: 1962, 4075: 1961, 4076: 1960, 4077: 1959, 4078: 1958, 4079: 1957, 4080: 1956, 4081: 1955, 4082: 1952, 4083: 1951, 4084: 1954, 4085: 1948, 4086: 1945, 4087: 1946, 4088: 1953, 4089: 1944, 4090: 1937, 4091: 1949, 4092: 1950, 4093: 1943, 4094: 1941, 4095: 1942, 4096: 1938, 4097: 1935, 4098: 1939, 4099: 1947, 4100: 1940, 4101: 1934, 4102: 1931, 4103: 1928, 4104: 1926, 4105: 1929, 4106: 1927, 4107: 1924, 4108: 1925, 4109: 1923, 4110: 1921, 4111: 1920, 4112: 1922, 4113: 1936, 4114: 1919, 4115: 1930, 4116: 1917, 4117: 1918, 4118: 1916, 4119: 1914, 4120: 1912, 4121: 1909, 4122: 1911, 4123: 1906, 4124: 1904, 4125: 1908, 4126: 1905, 4127: 1903, 4128: 1907, 4129: 1902, 4130: 1901, 4131: 1900, 4132: 1933, 4133: 1915, 4134: 1910, 4135: 1894, 4136: 1896, 4137: 1898, 4138: 1899, 4139: 1893, 4140: 1892, 4141: 1895, 4142: 1913, 4143: 1891, 4144: 1889, 4145: 1890, 4146: 1888, 4147: 1886, 4148: 1885, 4149: 1897, 4150: 1887, 4151: 1882, 4152: 1881, 4153: 1880, 4154: 1883, 4155: 1879, 4156: 1884, 4157: 1932, 4158: 1878, 4159: 1876, 4160: 1873, 4161: 1874, 4162: 1872, 4163: 1871, 4164: 1870, 4165: 1869, 4166: 1868, 4167: 1867, 4168: 1866, 4169: 1865, 4170: 1864, 4171: 1863, 4172: 1862, 4173: 1859, 4174: 1861, 4175: 1860, 4176: 1858, 4177: 1857, 4178: 1856, 4179: 1855, 4180: 1854, 4181: 1852, 4182: 1851, 4183: 1850, 4184: 1849, 4185: 1846, 4186: 1844, 4187: 1843, 4188: 1848, 4189: 1847, 4190: 1842, 4191: 1841, 4192: 1840, 4193: 1839, 4194: 1838, 4195: 1837, 4196: 1833, 4197: 1835, 4198: 1834, 4199: 1830, 4200: 1824, 4201: 1832, 4202: 1836, 4203: 1826, 4204: 1845, 4205: 1822, 4206: 1829, 4207: 1828, 4208: 1823, 4209: 1827, 4210: 1820, 4211: 1819, 4212: 1818, 4213: 1817, 4214: 1816, 4215: 1814, 4216: 1812, 4217: 1811, 4218: 1813, 4219: 1821, 4220: 1809, 4221: 1808, 4222: 1810, 4223: 1807, 4224: 1831, 4225: 1805, 4226: 1804, 4227: 1806, 4228: 1815, 4229: 1803, 4230: 1802, 4231: 1801, 4232: 1800, 4233: 1798, 4234: 1799, 4235: 1797, 4236: 1796, 4237: 1793, 4238: 1795, 4239: 1792, 4240: 1794, 4241: 1790, 4242: 1791, 4243: 1787, 4244: 1875, 4245: 1789, 4246: 1788, 4247: 1784, 4248: 1783, 4249: 1785, 4250: 1782, 4251: 1781, 4252: 1780, 4253: 1779, 4254: 1778, 4255: 1786, 4256: 1777, 4257: 1773, 4258: 1776, 4259: 1775, 4260: 1774, 4261: 1772, 4262: 1771, 4263: 1769, 4264: 1768, 4265: 1770, 4266: 1767, 4267: 1762, 4268: 1766, 4269: 1764, 4270: 1763, 4271: 1765, 4272: 1760, 4273: 1759, 4274: 1758, 4275: 1756, 4276: 1757, 4277: 1761, 4278: 1755, 4279: 1753, 4280: 1752, 4281: 1754, 4282: 1751, 4283: 1749, 4284: 1750, 4285: 1747, 4286: 1746, 4287: 1745, 4288: 1748, 4289: 1744, 4290: 1743, 4291: 1742, 4292: 1740, 4293: 1739, 4294: 1738, 4295: 1737, 4296: 1736, 4297: 1735, 4298: 1733, 4299: 1734, 4300: 1732, 4301: 1729, 4302: 1730, 4303: 1731, 4304: 1728, 4305: 1725, 4306: 1726, 4307: 1727, 4308: 1722, 4309: 1719, 4310: 1721, 4311: 1720, 4312: 1724, 4313: 1723, 4314: 1718, 4315: 1717, 4316: 1715, 4317: 1741, 4318: 1714, 4319: 1716, 4320: 1713, 4321: 1712, 4322: 1711, 4323: 1710, 4324: 1709, 4325: 1708, 4326: 1707, 4327: 1706, 4328: 1705, 4329: 1704, 4330: 1703, 4331: 1700, 4332: 1701, 4333: 1698, 4334: 1697, 4335: 1702, 4336: 1695, 4337: 1699, 4338: 1694, 4339: 1693, 4340: 1696, 4341: 1691, 4342: 1692, 4343: 1688, 4344: 1686, 4345: 1687, 4346: 1685, 4347: 1684, 4348: 1689, 4349: 1683, 4350: 1682, 4351: 1681, 4352: 1690, 4353: 1680, 4354: 1679, 4355: 1678, 4356: 1676, 4357: 1677, 4358: 1675, 4359: 1674, 4360: 1672, 4361: 1673, 4362: 1669, 4363: 1671, 4364: 1668, 4365: 1670, 4366: 1667, 4367: 1666, 4368: 1665, 4369: 1664, 4370: 1663, 4371: 1662, 4372: 1661, 4373: 1660, 4374: 1659, 4375: 1658, 4376: 1654, 4377: 1655, 4378: 1657, 4379: 1656, 4380: 1653, 4381: 1652, 4382: 1651, 4383: 1650, 4384: 1649, 4385: 1648, 4386: 1647, 4387: 1646, 4388: 1645, 4389: 1644, 4390: 1641, 4391: 1643, 4392: 1642, 4393: 1640, 4394: 1639, 4395: 1638, 4396: 1637, 4397: 1636, 4398: 1634, 4399: 1635, 4400: 1633, 4401: 1632, 4402: 1631, 4403: 1628, 4404: 1629, 4405: 1630, 4406: 1627, 4407: 1626, 4408: 1625, 4409: 1624, 4410: 1623, 4411: 1622, 4412: 1621, 4413: 1620, 4414: 1617, 4415: 1618, 4416: 1619, 4417: 1616, 4418: 1614, 4419: 1615, 4420: 1613, 4421: 1612, 4422: 1611, 4423: 1610, 4424: 1609, 4425: 1608, 4426: 1825, 4427: 1607, 4428: 1606, 4429: 1605, 4430: 1604, 4431: 1603, 4432: 1602, 4433: 1601, 4434: 1600, 4435: 1599, 4436: 1598, 4437: 1597, 4438: 1596, 4439: 1595, 4440: 1594, 4441: 1593, 4442: 1592, 4443: 1591, 4444: 1590, 4445: 1589, 4446: 1588, 4447: 1587, 4448: 1586, 4449: 1585, 4450: 1584, 4451: 1583, 4452: 1579, 4453: 1582, 4454: 1580, 4455: 1578, 4456: 1577, 4457: 1576, 4458: 1574, 4459: 1575, 4460: 1573, 4461: 1572, 4462: 1571, 4463: 1570, 4464: 1569, 4465: 1568, 4466: 1567, 4467: 1566, 4468: 1564, 4469: 1565, 4470: 1563, 4471: 1562, 4472: 1561, 4473: 1560, 4474: 1559, 4475: 1558, 4476: 1556, 4477: 1555, 4478: 1554, 4479: 1553, 4480: 1552, 4481: 1550, 4482: 1549, 4483: 1548, 4484: 1551, 4485: 1547, 4486: 1546, 4487: 1545, 4488: 1544, 4489: 1543, 4490: 1542, 4491: 1540, 4492: 1541, 4493: 1539, 4494: 1538, 4495: 1537, 4496: 1535, 4497: 1536, 4498: 1534, 4499: 1533, 4500: 1532, 4501: 1531, 4502: 1530, 4503: 1529, 4504: 1528, 4505: 1527, 4506: 1526, 4507: 1525, 4508: 1524, 4509: 1523, 4510: 1521, 4511: 1522, 4512: 1520, 4513: 1519, 4514: 1517, 4515: 1518, 4516: 1516, 4517: 1515, 4518: 1514, 4519: 1513, 4520: 1512, 4521: 1511, 4522: 1510, 4523: 1509, 4524: 1508, 4525: 1507, 4526: 1506, 4527: 1581, 4528: 1504, 4529: 1503, 4530: 1501, 4531: 1500, 4532: 1502, 4533: 1499, 4534: 1497, 4535: 1498, 4536: 1496, 4537: 1495, 4538: 1493, 4539: 1494, 4540: 1492, 4541: 1491, 4542: 1490, 4543: 1489, 4544: 1488, 4545: 1487, 4546: 1486, 4547: 1484, 4548: 1485, 4549: 1483, 4550: 1482, 4551: 1481, 4552: 1479, 4553: 1478, 4554: 1476, 4555: 1477, 4556: 1474, 4557: 1473, 4558: 1475, 4559: 1472, 4560: 1470, 4561: 1471, 4562: 1469, 4563: 1468, 4564: 1467, 4565: 1480, 4566: 1466, 4567: 1465, 4568: 1463, 4569: 1464, 4570: 1462, 4571: 1461, 4572: 1460, 4573: 1459, 4574: 1458, 4575: 1457, 4576: 1456, 4577: 1454, 4578: 1453, 4579: 1452, 4580: 1451, 4581: 1455, 4582: 1450, 4583: 1448, 4584: 1446, 4585: 1445, 4586: 1447, 4587: 1449, 4588: 1443, 4589: 1444, 4590: 1442, 4591: 1441, 4592: 1440, 4593: 1439, 4594: 1438, 4595: 1437, 4596: 1436, 4597: 1435, 4598: 1434, 4599: 1433, 4600: 1432, 4601: 1430, 4602: 1429, 4603: 1431, 4604: 1427, 4605: 1426, 4606: 1423, 4607: 1425, 4608: 1424, 4609: 1422, 4610: 1421, 4611: 1420, 4612: 1419, 4613: 1418, 4614: 1416, 4615: 1415, 4616: 1417, 4617: 1414, 4618: 1413, 4619: 1412, 4620: 1411, 4621: 1409, 4622: 1408, 4623: 1407, 4624: 1406, 4625: 1405, 4626: 1404, 4627: 1403, 4628: 1402, 4629: 1401, 4630: 1410, 4631: 1400, 4632: 1399, 4633: 1397, 4634: 1398, 4635: 1396, 4636: 1393, 4637: 1394, 4638: 1395, 4639: 1392, 4640: 1390, 4641: 1389, 4642: 1388, 4643: 1391, 4644: 1387, 4645: 1386, 4646: 1385, 4647: 1384, 4648: 1383, 4649: 1381, 4650: 1380, 4651: 1382, 4652: 1378, 4653: 1379, 4654: 1377, 4655: 1376, 4656: 1375, 4657: 1374, 4658: 1373, 4659: 1372, 4660: 1371, 4661: 1370, 4662: 1369, 4663: 1368, 4664: 1367, 4665: 1366, 4666: 1364, 4667: 1363, 4668: 1365, 4669: 1362, 4670: 1361, 4671: 1360, 4672: 1359, 4673: 1358, 4674: 1357, 4675: 1356, 4676: 1355, 4677: 1354, 4678: 1353, 4679: 1352, 4680: 1351, 4681: 1350, 4682: 1349, 4683: 1348, 4684: 1347, 4685: 1346, 4686: 1345, 4687: 1344, 4688: 1343, 4689: 1342, 4690: 1341, 4691: 1340, 4692: 1338, 4693: 1339, 4694: 1337, 4695: 1336, 4696: 1335, 4697: 1334, 4698: 1333, 4699: 1332, 4700: 1331, 4701: 1330, 4702: 1329, 4703: 1328, 4704: 1325, 4705: 1326, 4706: 1324, 4707: 1327, 4708: 1323, 4709: 1322, 4710: 1321, 4711: 1320, 4712: 1319, 4713: 1316, 4714: 1317, 4715: 1318, 4716: 1315, 4717: 1314, 4718: 1313, 4719: 1312, 4720: 1311, 4721: 1310, 4722: 1309, 4723: 1308, 4724: 1307, 4725: 1306, 4726: 1305, 4727: 1304, 4728: 1303, 4729: 1301, 4730: 1299, 4731: 1300, 4732: 1302, 4733: 1298, 4734: 1297, 4735: 1296, 4736: 1295, 4737: 1293, 4738: 1294, 4739: 1292, 4740: 1291, 4741: 1290, 4742: 1289, 4743: 1288, 4744: 1286, 4745: 1285, 4746: 1284, 4747: 1282, 4748: 1281, 4749: 1280, 4750: 1279, 4751: 1283, 4752: 1278, 4753: 1277, 4754: 1276, 4755: 1275, 4756: 1274, 4757: 1273, 4758: 1272, 4759: 1271, 4760: 1270, 4761: 1269, 4762: 1268, 4763: 1267, 4764: 1266, 4765: 1264, 4766: 1263, 4767: 1262, 4768: 1261, 4769: 1557, 4770: 1260, 4771: 1259, 4772: 1258, 4773: 1255, 4774: 1256, 4775: 1257, 4776: 1254, 4777: 1253, 4778: 1252, 4779: 1251, 4780: 1250, 4781: 1249, 4782: 1248, 4783: 1247, 4784: 1246, 4785: 1245, 4786: 1244, 4787: 1243, 4788: 1242, 4789: 1241, 4790: 1240, 4791: 1239, 4792: 1237, 4793: 1238, 4794: 1236, 4795: 1235, 4796: 1234, 4797: 1233, 4798: 1232, 4799: 1230, 4800: 1229, 4801: 1227, 4802: 1231, 4803: 1228, 4804: 1226, 4805: 1225, 4806: 1223, 4807: 1222, 4808: 1224, 4809: 1221, 4810: 1220, 4811: 1219, 4812: 1218, 4813: 1217, 4814: 1216, 4815: 1215, 4816: 1211, 4817: 1214, 4818: 1212, 4819: 1213, 4820: 1210, 4821: 1209, 4822: 1208, 4823: 1207, 4824: 1206, 4825: 1205, 4826: 1204, 4827: 1203, 4828: 1202, 4829: 1201, 4830: 1200, 4831: 1199, 4832: 1198, 4833: 1197, 4834: 1196, 4835: 1195, 4836: 1194, 4837: 1193, 4838: 1192, 4839: 1190, 4840: 1189, 4841: 1191, 4842: 1186, 4843: 1188, 4844: 1187, 4845: 1185, 4846: 1184, 4847: 1183, 4848: 1182, 4849: 1181, 4850: 1180, 4851: 1179, 4852: 1178, 4853: 1177, 4854: 1176, 4855: 1175, 4856: 1174, 4857: 1173, 4858: 1172, 4859: 1171, 4860: 1170, 4861: 1169, 4862: 1168, 4863: 1167, 4864: 1166, 4865: 1165, 4866: 1163, 4867: 1164, 4868: 1162, 4869: 1161, 4870: 1160, 4871: 1159, 4872: 1158, 4873: 1157, 4874: 1156, 4875: 1155, 4876: 1154, 4877: 1153, 4878: 1152, 4879: 1151, 4880: 1853, 4881: 1150, 4882: 1149, 4883: 1148, 4884: 1147, 4885: 1146, 4886: 1145, 4887: 1144, 4888: 1143, 4889: 1141, 4890: 1142, 4891: 1139, 4892: 1140, 4893: 1138, 4894: 1137, 4895: 1136, 4896: 1135, 4897: 1134, 4898: 1133, 4899: 1132, 4900: 1131, 4901: 1130, 4902: 1128, 4903: 1129, 4904: 1127, 4905: 1126, 4906: 1125, 4907: 1124, 4908: 1123, 4909: 1122, 4910: 1121, 4911: 1120, 4912: 1119, 4913: 1117, 4914: 1116, 4915: 1115, 4916: 1114, 4917: 1113, 4918: 1112, 4919: 1111, 4920: 1109, 4921: 1108, 4922: 1110, 4923: 1107, 4924: 1106, 4925: 1105, 4926: 1104, 4927: 1103, 4928: 1102, 4929: 1101, 4930: 1100, 4931: 1099, 4932: 1118, 4933: 1098, 4934: 1097, 4935: 1096, 4936: 1095, 4937: 1094, 4938: 1093, 4939: 1092, 4940: 1091, 4941: 1090, 4942: 1089, 4943: 1088, 4944: 1087, 4945: 1086, 4946: 1085, 4947: 1084, 4948: 1083, 4949: 1081, 4950: 1082, 4951: 1080, 4952: 1079, 4953: 1078, 4954: 1077, 4955: 1075, 4956: 1076, 4957: 1074, 4958: 1073, 4959: 1071, 4960: 1070, 4961: 1072, 4962: 1069, 4963: 1068, 4964: 1067, 4965: 1066, 4966: 1065, 4967: 1064, 4968: 1063, 4969: 1062, 4970: 1061, 4971: 1060, 4972: 1059, 4973: 1058, 4974: 1057, 4975: 1056, 4976: 1055, 4977: 1054, 4978: 1053, 4979: 1505, 4980: 1052, 4981: 1051, 4982: 1050, 4983: 1049, 4984: 1048, 4985: 1047, 4986: 1046, 4987: 1045, 4988: 1044, 4989: 1043, 4990: 1042, 4991: 1041, 4992: 1040, 4993: 1039, 4994: 1038, 4995: 1037, 4996: 1036, 4997: 1035, 4998: 1034, 4999: 1033, 5000: 1032, 5001: 1031, 5002: 1030, 5003: 1029, 5004: 1028, 5005: 1027, 5006: 1025, 5007: 1026, 5008: 1024, 5009: 1023, 5010: 1022, 5011: 1021, 5012: 1020, 5013: 1019, 5014: 1018, 5015: 1017, 5016: 1016, 5017: 1015, 5018: 1014, 5019: 1013, 5020: 1011, 5021: 1010, 5022: 1009, 5023: 1008, 5024: 1007, 5025: 1006, 5026: 1005, 5027: 1003, 5028: 1002, 5029: 1004, 5030: 1001, 5031: 1000, 5032: 999, 5033: 998, 5034: 997, 5035: 996, 5036: 995, 5037: 994, 5038: 993, 5039: 1012, 5040: 992, 5041: 991, 5042: 990, 5043: 989, 5044: 988, 5045: 987, 5046: 986, 5047: 985, 5048: 984, 5049: 983, 5050: 982, 5051: 981, 5052: 980, 5053: 979, 5054: 978, 5055: 977, 5056: 976, 5057: 975, 5058: 974, 5059: 973, 5060: 972, 5061: 971, 5062: 970, 5063: 969, 5064: 968, 5065: 966, 5066: 967, 5067: 964, 5068: 965, 5069: 963, 5070: 962, 5071: 961, 5072: 960, 5073: 959, 5074: 958, 5075: 957, 5076: 956, 5077: 955, 5078: 954, 5079: 953, 5080: 952, 5081: 950, 5082: 951, 5083: 949, 5084: 948, 5085: 947, 5086: 946, 5087: 945, 5088: 944, 5089: 1428, 5090: 943, 5091: 942, 5092: 941, 5093: 940, 5094: 938, 5095: 939, 5096: 937, 5097: 936, 5098: 935, 5099: 934, 5100: 933, 5101: 932, 5102: 931, 5103: 930, 5104: 929, 5105: 928, 5106: 927, 5107: 2247, 5108: 926, 5109: 925, 5110: 924, 5111: 923, 5112: 922, 5113: 921, 5114: 920, 5115: 919, 5116: 917, 5117: 916, 5118: 918, 5119: 915, 5120: 914, 5121: 913, 5122: 912, 5123: 911, 5124: 910, 5125: 909, 5126: 908, 5127: 907, 5128: 906, 5129: 905, 5130: 904, 5131: 903, 5132: 902, 5133: 901, 5134: 900, 5135: 899, 5136: 898, 5137: 897, 5138: 896, 5139: 895, 5140: 894, 5141: 893, 5142: 892, 5143: 891, 5144: 890, 5145: 889, 5146: 888, 5147: 887, 5148: 886, 5149: 885, 5150: 884, 5151: 883, 5152: 882, 5153: 881, 5154: 880, 5155: 879, 5156: 878, 5157: 877, 5158: 876, 5159: 875, 5160: 874, 5161: 873, 5162: 872, 5163: 871, 5164: 870, 5165: 869, 5166: 868, 5167: 867, 5168: 866, 5169: 865, 5170: 864, 5171: 863, 5172: 862, 5173: 861, 5174: 860, 5175: 859, 5176: 858, 5177: 857, 5178: 856, 5179: 854, 5180: 853, 5181: 852, 5182: 851, 5183: 850, 5184: 849, 5185: 848, 5186: 847, 5187: 846, 5188: 845, 5189: 844, 5190: 842, 5191: 841, 5192: 843, 5193: 840, 5194: 839, 5195: 838, 5196: 837, 5197: 836, 5198: 835, 5199: 834, 5200: 833, 5201: 832, 5202: 831, 5203: 830, 5204: 829, 5205: 828, 5206: 827, 5207: 826, 5208: 825, 5209: 824, 5210: 823, 5211: 822, 5212: 821, 5213: 820, 5214: 819, 5215: 818, 5216: 817, 5217: 816, 5218: 814, 5219: 815, 5220: 813, 5221: 811, 5222: 810, 5223: 809, 5224: 808, 5225: 807, 5226: 812, 5227: 806, 5228: 805, 5229: 804, 5230: 803, 5231: 802, 5232: 801, 5233: 800, 5234: 799, 5235: 798, 5236: 797, 5237: 796, 5238: 795, 5239: 794, 5240: 793, 5241: 792, 5242: 791, 5243: 790, 5244: 789, 5245: 788, 5246: 786, 5247: 787, 5248: 785, 5249: 784, 5250: 783, 5251: 782, 5252: 781, 5253: 780, 5254: 779, 5255: 778, 5256: 777, 5257: 775, 5258: 776, 5259: 774, 5260: 773, 5261: 772, 5262: 771, 5263: 770, 5264: 769, 5265: 768, 5266: 767, 5267: 766, 5268: 765, 5269: 764, 5270: 763, 5271: 762, 5272: 761, 5273: 760, 5274: 759, 5275: 758, 5276: 757, 5277: 756, 5278: 755, 5279: 754, 5280: 753, 5281: 752, 5282: 751, 5283: 750, 5284: 749, 5285: 748, 5286: 855, 5287: 747, 5288: 746, 5289: 745, 5290: 744, 5291: 743, 5292: 742, 5293: 741, 5294: 740, 5295: 739, 5296: 738, 5297: 737, 5298: 736, 5299: 735, 5300: 734, 5301: 733, 5302: 732, 5303: 731, 5304: 730, 5305: 729, 5306: 728, 5307: 727, 5308: 726, 5309: 725, 5310: 724, 5311: 723, 5312: 722, 5313: 721, 5314: 720, 5315: 719, 5316: 718, 5317: 717, 5318: 716, 5319: 715, 5320: 714, 5321: 713, 5322: 712, 5323: 711, 5324: 710, 5325: 709, 5326: 708, 5327: 707, 5328: 706, 5329: 705, 5330: 704, 5331: 703, 5332: 702, 5333: 701, 5334: 700, 5335: 699, 5336: 698, 5337: 697, 5338: 696, 5339: 695, 5340: 694, 5341: 693, 5342: 692, 5343: 691, 5344: 690, 5345: 689, 5346: 688, 5347: 687, 5348: 686, 5349: 685, 5350: 684, 5351: 682, 5352: 683, 5353: 681, 5354: 680, 5355: 679, 5356: 678, 5357: 677, 5358: 676, 5359: 675, 5360: 674, 5361: 673, 5362: 672, 5363: 671, 5364: 670, 5365: 669, 5366: 668, 5367: 667, 5368: 666, 5369: 665, 5370: 664, 5371: 663, 5372: 662, 5373: 661, 5374: 660, 5375: 659, 5376: 658, 5377: 657, 5378: 656, 5379: 655, 5380: 654, 5381: 653, 5382: 652, 5383: 651, 5384: 650, 5385: 649, 5386: 648, 5387: 647, 5388: 646, 5389: 645, 5390: 644, 5391: 643, 5392: 642, 5393: 641, 5394: 640, 5395: 639, 5396: 638, 5397: 637, 5398: 636, 5399: 635, 5400: 634, 5401: 633, 5402: 632, 5403: 631, 5404: 630, 5405: 628, 5406: 629, 5407: 627, 5408: 626, 5409: 625, 5410: 624, 5411: 623, 5412: 622, 5413: 621, 5414: 620, 5415: 619, 5416: 618, 5417: 617, 5418: 616, 5419: 615, 5420: 614, 5421: 613, 5422: 612, 5423: 611, 5424: 610, 5425: 609, 5426: 608, 5427: 607, 5428: 606, 5429: 605, 5430: 604, 5431: 603, 5432: 602, 5433: 601, 5434: 600, 5435: 599, 5436: 598, 5437: 597, 5438: 596, 5439: 595, 5440: 594, 5441: 593, 5442: 592, 5443: 591, 5444: 590, 5445: 589, 5446: 588, 5447: 587, 5448: 586, 5449: 585, 5450: 584, 5451: 583, 5452: 582}}\n", + "{'item_id': {858: 0, 593: 1, 2384: 2, 2019: 3, 1961: 4, 1419: 5, 3111: 6, 573: 7, 213: 8, 3505: 9, 1734: 10, 2503: 11, 912: 12, 919: 13, 527: 14, 649: 15, 1252: 16, 318: 17, 3289: 18, 759: 19, 608: 20, 2396: 21, 2858: 22, 326: 23, 2028: 24, 1649: 25, 2762: 26, 17: 27, 34: 28, 246: 29, 2692: 30, 1617: 31, 300: 32, 1392: 33, 1111: 34, 150: 35, 562: 36, 549: 37, 1537: 38, 1554: 39, 448: 40, 265: 41, 866: 42, 1358: 43, 2324: 44, 235: 45, 446: 46, 247: 47, 1094: 48, 1704: 49, 50: 50, 162: 51, 45: 52, 348: 53, 508: 54, 1089: 55, 589: 56, 58: 57, 1694: 58, 2580: 59, 1834: 60, 2391: 61, 282: 62, 111: 63, 290: 64, 2067: 65, 1641: 66, 357: 67, 930: 68, 1230: 69, 947: 70, 3088: 71, 3133: 72, 3022: 73, 1294: 74, 3421: 75, 2804: 76, 1269: 77, 1276: 78, 1244: 79, 2622: 80, 955: 81, 2791: 82, 2300: 83, 1028: 84, 2863: 85, 3548: 86, 1197: 87, 951: 88, 1223: 89, 1211: 90, 933: 91, 1066: 92, 3072: 93, 907: 94, 2671: 95, 935: 96, 1304: 97, 3175: 98, 3035: 99, 1014: 100, 1078: 101, 3363: 102, 1270: 103, 1265: 104, 909: 105, 3396: 106, 1934: 107, 2174: 108, 911: 109, 945: 110, 2746: 111, 1188: 112, 471: 113, 3037: 114, 952: 115, 2289: 116, 916: 117, 1125: 118, 915: 119, 3028: 120, 3471: 121, 260: 122, 750: 123, 924: 124, 1210: 125, 1097: 126, 3545: 127, 2565: 128, 914: 129, 2087: 130, 918: 131, 899: 132, 1282: 133, 1022: 134, 900: 135, 364: 136, 1951: 137, 588: 138, 3549: 139, 963: 140, 1947: 141, 1081: 142, 2946: 143, 2083: 144, 1220: 145, 107: 146, 1380: 147, 2857: 148, 2096: 149, 1088: 150, 661: 151, 938: 152, 901: 153, 783: 154, 1083: 155, 2080: 156, 199: 157, 1416: 158, 48: 159, 903: 160, 1284: 161, 904: 162, 913: 163, 1212: 164, 2206: 165, 1086: 166, 950: 167, 1964: 168, 2208: 169, 906: 170, 942: 171, 2414: 172, 1680: 173, 926: 174, 1237: 175, 923: 176, 920: 177, 2146: 178, 1387: 179, 356: 180, 1079: 181, 2716: 182, 1148: 183, 232: 184, 1136: 185, 702: 186, 1882: 187, 1267: 188, 3508: 189, 3148: 190, 3543: 191, 1221: 192, 2132: 193, 1250: 194, 1193: 195, 1299: 196, 1225: 197, 3006: 198, 3196: 199, 908: 200, 1207: 201, 3469: 202, 1721: 203, 3438: 204, 2428: 205, 1883: 206, 2376: 207, 1945: 208, 3468: 209, 2728: 210, 3359: 211, 1938: 212, 1949: 213, 1231: 214, 2706: 215, 2707: 216, 2826: 217, 2492: 218, 2827: 219, 2572: 220, 2683: 221, 2699: 222, 3362: 223, 3504: 224, 1203: 225, 2501: 226, 2770: 227, 2842: 228, 3005: 229, 2555: 230, 3285: 231, 2710: 232, 2694: 233, 2975: 234, 2997: 235, 3270: 236, 3330: 237, 1233: 238, 2771: 239, 2147: 240, 3016: 241, 223: 242, 2433: 243, 2038: 244, 3068: 245, 3095: 246, 1208: 247, 1941: 248, 2919: 249, 2890: 250, 1293: 251, 1940: 252, 2678: 253, 1093: 254, 1911: 255, 2772: 256, 2546: 257, 2722: 258, 3203: 259, 2881: 260, 2759: 261, 2541: 262, 2336: 263, 2599: 264, 3113: 265, 2575: 266, 2828: 267, 2605: 268, 3408: 269, 2434: 270, 3051: 271, 1259: 272, 3467: 273, 1213: 274, 3159: 275, 2757: 276, 2712: 277, 1950: 278, 1939: 279, 1952: 280, 3526: 281, 2995: 282, 407: 283, 2676: 284, 2690: 285, 2333: 286, 2318: 287, 2719: 288, 3152: 289, 959: 290, 2303: 291, 1288: 292, 2629: 293, 2882: 294, 2713: 295, 3008: 296, 785: 297, 3160: 298, 2392: 299, 2390: 300, 2238: 301, 1953: 302, 3147: 303, 1674: 304, 3354: 305, 2900: 306, 3053: 307, 2734: 308, 2805: 309, 3379: 310, 2439: 311, 296: 312, 949: 313, 968: 314, 1959: 315, 2490: 316, 2574: 317, 2581: 318, 3325: 319, 2502: 320, 2723: 321, 3219: 322, 2901: 323, 3201: 324, 1956: 325, 3424: 326, 2906: 327, 2013: 328, 2598: 329, 299: 330, 3300: 331, 2758: 332, 24: 333, 43: 334, 2093: 335, 2395: 336, 2560: 337, 2686: 338, 1513: 339, 2485: 340, 3273: 341, 2491: 342, 2700: 343, 2841: 344, 3081: 345, 2840: 346, 2672: 347, 2070: 348, 2702: 349, 3176: 350, 2715: 351, 2693: 352, 3114: 353, 1623: 354, 2337: 355, 2701: 356, 2987: 357, 86: 358, 2600: 359, 3125: 360, 3179: 361, 3329: 362, 2010: 363, 461: 364, 1413: 365, 2024: 366, 1198: 367, 745: 368, 720: 369, 1196: 370, 1192: 371, 3149: 372, 1281: 373, 28: 374, 3307: 375, 3224: 376, 3265: 377, 1219: 378, 3128: 379, 2360: 380, 3462: 381, 3030: 382, 1348: 383, 1719: 384, 2075: 385, 541: 386, 2972: 387, 1248: 388, 1007: 389, 902: 390, 898: 391, 25: 392, 3067: 393, 922: 394, 1247: 395, 2859: 396, 2677: 397, 2186: 398, 2609: 399, 1303: 400, 1412: 401, 1104: 402, 2648: 403, 2357: 404, 2628: 405, 1228: 406, 3429: 407, 2732: 408, 1080: 409, 1584: 410, 480: 411, 32: 412, 2046: 413, 1748: 414, 2571: 415, 800: 416, 1214: 417, 3365: 418, 2664: 419, 1909: 420, 1372: 421, 1591: 422, 504: 423, 1653: 424, 2916: 425, 1356: 426, 1580: 427, 1527: 428, 1876: 429, 1396: 430, 971: 431, 2660: 432, 329: 433, 2012: 434, 788: 435, 3156: 436, 2393: 437, 512: 438, 1217: 439, 3075: 440, 3089: 441, 338: 442, 1573: 443, 1690: 444, 1150: 445, 2973: 446, 1603: 447, 1544: 448, 185: 449, 1391: 450, 1831: 451, 1320: 452, 2920: 453, 1885: 454, 1931: 455, 1240: 456, 514: 457, 1779: 458, 2808: 459, 2986: 460, 405: 461, 2053: 462, 1590: 463, 1041: 464, 2020: 465, 1056: 466, 1132: 467, 66: 468, 737: 469, 2448: 470, 256: 471, 1176: 472, 1199: 473, 3447: 474, 176: 475, 1200: 476, 1374: 477, 1657: 478, 3527: 479, 2968: 480, 1375: 481, 1274: 482, 2455: 483, 2985: 484, 1376: 485, 2011: 486, 2613: 487, 2021: 488, 2407: 489, 2105: 490, 2117: 491, 2311: 492, 2140: 493, 1253: 494, 3551: 495, 1234: 496, 3547: 497, 1965: 498, 2641: 499, 2054: 500, 1373: 501, 2364: 502, 2408: 503, 2456: 504, 2642: 505, 1254: 506, 1278: 507, 3090: 508, 3052: 509, 1397: 510, 2730: 511, 2848: 512, 1594: 513, 599: 514, 3361: 515, 3461: 516, 1077: 517, 306: 518, 1185: 519, 3418: 520, 1242: 521, 110: 522, 307: 523, 1874: 524, 1504: 525, 1258: 526, 1957: 527, 2971: 528, 2064: 529, 1243: 530, 1345: 531, 344: 532, 967: 533, 3130: 534, 249: 535, 1280: 536, 778: 537, 1784: 538, 293: 539, 590: 540, 475: 541, 1682: 542, 1179: 543, 2291: 544, 3108: 545, 1264: 546, 373: 547, 194: 548, 337: 549, 358: 550, 454: 551, 1366: 552, 1061: 553, 515: 554, 2366: 555, 961: 556, 3246: 557, 1466: 558, 62: 559, 3386: 560, 3342: 561, 3019: 562, 3426: 563, 1120: 564, 11: 565, 1268: 566, 4: 567, 1735: 568, 230: 569, 805: 570, 3255: 571, 2688: 572, 21: 573, 26: 574, 1727: 575, 280: 576, 3252: 577, 1729: 578, 3155: 579, 509: 580, 1747: 581, 224: 582, 1918: 583, 3435: 584, 2726: 585, 320: 586, 2361: 587, 3364: 588, 1442: 589, 1480: 590, 875: 591, 3334: 592, 1260: 593, 31: 594, 1711: 595, 2441: 596, 2966: 597, 1962: 598, 851: 599, 350: 600, 2002: 601, 695: 602, 1201: 603, 2059: 604, 1183: 605, 2875: 606, 1096: 607, 2288: 608, 921: 609, 1036: 610, 940: 611, 2644: 612, 253: 613, 1586: 614, 605: 615, 1027: 616, 30: 617, 42: 618, 457: 619, 1006: 620, 2908: 621, 766: 622, 1884: 623, 1801: 624, 3257: 625, 3521: 626, 3528: 627, 418: 628, 765: 629, 455: 630, 2431: 631, 1726: 632, 1340: 633, 1966: 634, 2313: 635, 3150: 636, 969: 637, 1797: 638, 3550: 639, 308: 640, 3498: 641, 92: 642, 2412: 643, 169: 644, 1595: 645, 2819: 646, 3198: 647, 2130: 648, 994: 649, 3499: 650, 2529: 651, 2102: 652, 1296: 653, 1: 654, 594: 655, 1301: 656, 1307: 657, 3132: 658, 1354: 659, 735: 660, 1954: 661, 388: 662, 1272: 663, 2302: 664, 2542: 665, 1500: 666, 2947: 667, 2355: 668, 3253: 669, 1923: 670, 1517: 671, 367: 672, 2662: 673, 3018: 674, 2739: 675, 1827: 676, 440: 677, 2124: 678, 500: 679, 1614: 680, 7: 681, 3450: 682, 2108: 683, 2926: 684, 597: 685, 1777: 686, 3263: 687, 708: 688, 236: 689, 539: 690, 216: 691, 1020: 692, 378: 693, 3208: 694, 333: 695, 1713: 696, 5: 697, 830: 698, 2004: 699, 1042: 700, 3098: 701, 3094: 702, 1409: 703, 231: 704, 372: 705, 157: 706, 1582: 707, 1944: 708, 1914: 709, 1367: 710, 2709: 711, 1377: 712, 252: 713, 784: 714, 585: 715, 1379: 716, 3086: 717, 3267: 718, 186: 719, 466: 720, 673: 721, 1702: 722, 1689: 723, 2266: 724, 1806: 725, 355: 726, 537: 727, 3: 728, 1494: 729, 1855: 730, 153: 731, 2387: 732, 1503: 733, 2335: 734, 1646: 735, 818: 736, 1581: 737, 520: 738, 1863: 739, 2016: 740, 1012: 741, 432: 742, 1602: 743, 637: 744, 2036: 745, 1431: 746, 2953: 747, 1760: 748, 1453: 749, 688: 750, 2042: 751, 374: 752, 1005: 753, 437: 754, 2720: 755, 2296: 756, 1839: 757, 429: 758, 1707: 759, 420: 760, 325: 761, 2152: 762, 870: 763, 1731: 764, 3146: 765, 2526: 766, 2670: 767, 2763: 768, 2000: 769, 3104: 770, 2729: 771, 123: 772, 1295: 773, 2329: 774, 2949: 775, 2951: 776, 1222: 777, 2944: 778, 2194: 779, 1127: 780, 733: 781, 3404: 782, 1408: 783, 592: 784, 2353: 785, 1608: 786, 349: 787, 780: 788, 3197: 789, 380: 790, 1676: 791, 292: 792, 2871: 793, 3105: 794, 1273: 795, 151: 796, 3210: 797, 339: 798, 1261: 799, 1171: 800, 1129: 801, 1189: 802, 2512: 803, 1300: 804, 2349: 805, 1090: 806, 1394: 807, 1975: 808, 1960: 809, 3039: 810, 1285: 811, 2348: 812, 2076: 813, 2312: 814, 3070: 815, 2872: 816, 2150: 817, 1246: 818, 3101: 819, 3422: 820, 2750: 821, 1321: 822, 1305: 823, 2852: 824, 2915: 825, 1291: 826, 3552: 827, 3449: 828, 2301: 829, 1663: 830, 2100: 831, 1124: 832, 2463: 833, 2989: 834, 2745: 835, 2286: 836, 2022: 837, 2369: 838, 2802: 839, 3524: 840, 1991: 841, 2134: 842, 2003: 843, 1173: 844, 1587: 845, 2111: 846, 3388: 847, 2089: 848, 680: 849, 2717: 850, 2751: 851, 2794: 852, 3169: 853, 2378: 854, 1289: 855, 1974: 856, 2411: 857, 2410: 858, 2948: 859, 1187: 860, 2553: 861, 2471: 862, 3017: 863, 1091: 864, 2241: 865, 2513: 866, 2402: 867, 2795: 868, 2321: 869, 1846: 870, 2421: 871, 999: 872, 555: 873, 272: 874, 3071: 875, 2160: 876, 2866: 877, 2065: 878, 529: 879, 2085: 880, 714: 881, 3204: 882, 731: 883, 862: 884, 1292: 885, 2467: 886, 1912: 887, 3097: 888, 1297: 889, 3011: 890, 2943: 891, 948: 892, 2104: 893, 596: 894, 628: 895, 441: 896, 1084: 897, 2014: 898, 2620: 899, 2159: 900, 892: 901, 2176: 902, 2687: 903, 3308: 904, 341: 905, 47: 906, 2797: 907, 2611: 908, 2018: 909, 2570: 910, 2427: 911, 2001: 912, 2401: 913, 1350: 914, 2377: 915, 1597: 916, 1673: 917, 551: 918, 840: 919, 2359: 920, 3350: 921, 2287: 922, 3060: 923, 188: 924, 3282: 925, 2118: 926, 1610: 927, 2874: 928, 3494: 929, 1029: 930, 1955: 931, 534: 932, 1907: 933, 1678: 934, 319: 935, 497: 936, 3044: 937, 428: 938, 1332: 939, 943: 940, 39: 941, 2071: 942, 3296: 943, 1921: 944, 1357: 945, 1968: 946, 3501: 947, 2157: 948, 3143: 949, 1013: 950, 1755: 951, 6: 952, 1611: 953, 1393: 954, 2362: 955, 2867: 956, 1082: 957, 2472: 958, 345: 959, 1355: 960, 2237: 961, 1395: 962, 1215: 963, 2048: 964, 3194: 965, 1263: 966, 3015: 967, 474: 968, 1730: 969, 3167: 970, 281: 971, 2109: 972, 2167: 973, 2155: 974, 1994: 975, 2524: 976, 2520: 977, 2877: 978, 3260: 979, 531: 980, 3546: 981, 558: 982, 1206: 983, 1010: 984, 1643: 985, 1546: 986, 728: 987, 342: 988, 3248: 989, 3157: 990, 910: 991, 1256: 992, 671: 993, 3448: 994, 1235: 995, 1238: 996, 1963: 997, 1275: 998, 8: 999, 1162: 1000, 1073: 1001, 361: 1002, 741: 1003, 553: 1004, 1648: 1005, 610: 1006, 29: 1007, 1204: 1008, 2640: 1009, 2116: 1010, 2528: 1011, 316: 1012, 965: 1013, 1249: 1014, 928: 1015, 1371: 1016, 196: 1017, 2183: 1018, 931: 1019, 1344: 1020, 3230: 1021, 3033: 1022, 2403: 1023, 2615: 1024, 2094: 1025, 1333: 1026, 1407: 1027, 2747: 1028, 1917: 1029, 442: 1030, 1037: 1031, 173: 1032, 2178: 1033, 2034: 1034, 1982: 1035, 1343: 1036, 2181: 1037, 1732: 1038, 377: 1039, 519: 1040, 2450: 1041, 546: 1042, 2781: 1043, 905: 1044, 327: 1045, 2517: 1046, 2643: 1047, 2138: 1048, 1032: 1049, 2193: 1050, 3479: 1051, 2: 1052, 2143: 1053, 1967: 1054, 2161: 1055, 2239: 1056, 2243: 1057, 653: 1058, 1126: 1059, 2253: 1060, 3489: 1061, 837: 1062, 3439: 1063, 1172: 1064, 1566: 1065, 2409: 1066, 3584: 1067, 3590: 1068, 3591: 1069, 3529: 1070, 2959: 1071, 2912: 1072, 2829: 1073, 1792: 1074, 2894: 1075, 2334: 1076, 165: 1077, 170: 1078, 1438: 1079, 227: 1080, 1287: 1081, 861: 1082, 465: 1083, 1429: 1084, 1101: 1085, 1370: 1086, 2133: 1087, 2533: 1088, 2363: 1089, 2454: 1090, 2527: 1091, 2657: 1092, 2009: 1093, 3340: 1094, 2346: 1095, 426: 1096, 1334: 1097, 3555: 1098, 1924: 1099, 674: 1100, 10: 1101, 2082: 1102, 1644: 1103, 1353: 1104, 1266: 1105, 2961: 1106, 2724: 1107, 1347: 1108, 2668: 1109, 1128: 1110, 2787: 1111, 2148: 1112, 1970: 1113, 1330: 1114, 1389: 1115, 1972: 1116, 1995: 1117, 1971: 1118, 1983: 1119, 1986: 1120, 1969: 1121, 1326: 1122, 2465: 1123, 2122: 1124, 1988: 1125, 2460: 1126, 1985: 1127, 1978: 1128, 1976: 1129, 1980: 1130, 1987: 1131, 1981: 1132, 1979: 1133, 1977: 1134, 70: 1135, 1645: 1136, 1241: 1137, 3476: 1138, 2617: 1139, 1339: 1140, 3264: 1141, 1717: 1142, 2279: 1143, 724: 1144, 1771: 1145, 2328: 1146, 273: 1147, 532: 1148, 2898: 1149, 2389: 1150, 152: 1151, 1999: 1152, 2107: 1153, 177: 1154, 1342: 1155, 2125: 1156, 3259: 1157, 2443: 1158, 2801: 1159, 1569: 1160, 1059: 1161, 3358: 1162, 543: 1163, 587: 1164, 802: 1165, 105: 1166, 1888: 1167, 2297: 1168, 1722: 1169, 852: 1170, 417: 1171, 468: 1172, 222: 1173, 3046: 1174, 353: 1175, 2424: 1176, 2496: 1177, 266: 1178, 1541: 1179, 1629: 1180, 140: 1181, 1441: 1182, 1821: 1183, 1593: 1184, 691: 1185, 1457: 1186, 237: 1187, 550: 1188, 3269: 1189, 1894: 1190, 736: 1191, 289: 1192, 207: 1193, 447: 1194, 182: 1195, 168: 1196, 195: 1197, 2316: 1198, 3261: 1199, 179: 1200, 499: 1201, 3436: 1202, 1479: 1203, 64: 1204, 2774: 1205, 258: 1206, 15: 1207, 1556: 1208, 427: 1209, 1483: 1210, 1799: 1211, 218: 1212, 3331: 1213, 3405: 1214, 2406: 1215, 2991: 1216, 3107: 1217, 2058: 1218, 648: 1219, 3082: 1220, 3443: 1221, 490: 1222, 3256: 1223, 1047: 1224, 2115: 1225, 3441: 1226, 1552: 1227, 3444: 1228, 2278: 1229, 2006: 1230, 145: 1231, 2990: 1232, 494: 1233, 2476: 1234, 303: 1235, 1385: 1236, 3274: 1237, 1687: 1238, 552: 1239, 434: 1240, 786: 1241, 1488: 1242, 459: 1243, 1833: 1244, 1100: 1245, 1769: 1246, 1616: 1247, 479: 1248, 379: 1249, 2126: 1250, 425: 1251, 1099: 1252, 986: 1253, 535: 1254, 2069: 1255, 1639: 1256, 2474: 1257, 2736: 1258, 3129: 1259, 1226: 1260, 1216: 1261, 803: 1262, 2245: 1263, 2442: 1264, 1625: 1265, 1194: 1266, 3496: 1267, 2025: 1268, 1785: 1269, 71: 1270, 464: 1271, 1810: 1272, 3029: 1273, 571: 1274, 1872: 1275, 2624: 1276, 298: 1277, 476: 1278, 1809: 1279, 2331: 1280, 2114: 1281, 3535: 1282, 3412: 1283, 993: 1284, 485: 1285, 315: 1286, 3397: 1287, 172: 1288, 204: 1289, 44: 1290, 205: 1291, 1642: 1292, 2282: 1293, 1004: 1294, 160: 1295, 694: 1296, 1497: 1297, 1681: 1298, 1794: 1299, 502: 1300, 1626: 1301, 2081: 1302, 2807: 1303, 1465: 1304, 3174: 1305, 183: 1306, 1060: 1307, 125: 1308, 3481: 1309, 2097: 1310, 2268: 1311, 1057: 1312, 2330: 1313, 2077: 1314, 1805: 1315, 493: 1316, 1620: 1317, 1399: 1318, 22: 1319, 1958: 1320, 2697: 1321, 2764: 1322, 3247: 1323, 2561: 1324, 1598: 1325, 762: 1326, 81: 1327, 2294: 1328, 3099: 1329, 3079: 1330, 3112: 1331, 3507: 1332, 3398: 1333, 1017: 1334, 198: 1335, 3518: 1336, 991: 1337, 1177: 1338, 2112: 1339, 2137: 1340, 1633: 1341, 262: 1342, 1897: 1343, 3370: 1344, 1236: 1345, 1788: 1346, 366: 1347, 2144: 1348, 3100: 1349, 3576: 1350, 1286: 1351, 1619: 1352, 1476: 1353, 1427: 1354, 1916: 1355, 574: 1356, 261: 1357, 190: 1358, 241: 1359, 2470: 1360, 1135: 1361, 2419: 1362, 269: 1363, 1650: 1364, 2941: 1365, 1298: 1366, 431: 1367, 1271: 1368, 340: 1369, 2420: 1370, 3251: 1371, 1092: 1372, 1019: 1373, 1858: 1374, 1405: 1375, 3014: 1376, 3281: 1377, 988: 1378, 2231: 1379, 616: 1380, 164: 1381, 2090: 1382, 3395: 1383, 1454: 1384, 1031: 1385, 1049: 1386, 187: 1387, 16: 1388, 2247: 1389, 1518: 1390, 1683: 1391, 1516: 1392, 1913: 1393, 492: 1394, 808: 1395, 1459: 1396, 1449: 1397, 2779: 1398, 2425: 1399, 2262: 1400, 2168: 1401, 1605: 1402, 2518: 1403, 2385: 1404, 3034: 1405, 3272: 1406, 1542: 1407, 1447: 1408, 2173: 1409, 450: 1410, 317: 1411, 410: 1412, 2625: 1413, 700: 1414, 3102: 1415, 3173: 1416, 1365: 1417, 2626: 1418, 2725: 1419, 488: 1420, 707: 1421, 1783: 1422, 748: 1423, 435: 1424, 3032: 1425, 849: 1426, 1306: 1427, 1762: 1428, 2530: 1429, 3024: 1430, 2532: 1431, 3572: 1432, 692: 1433, 2531: 1434, 611: 1435, 3573: 1436, 3401: 1437, 880: 1438, 2091: 1439, 1862: 1440, 3574: 1441, 1588: 1442, 3392: 1443, 2862: 1444, 59: 1445, 2921: 1446, 2032: 1447, 2918: 1448, 3360: 1449, 2371: 1450, 2352: 1451, 1175: 1452, 2203: 1453, 1069: 1454, 3406: 1455, 799: 1456, 524: 1457, 1562: 1458, 381: 1459, 2416: 1460, 3385: 1461, 2752: 1462, 36: 1463, 2860: 1464, 2880: 1465, 112: 1466, 1615: 1467, 577: 1468, 761: 1469, 2322: 1470, 836: 1471, 1744: 1472, 2153: 1473, 2645: 1474, 2761: 1475, 141: 1476, 2748: 1477, 2708: 1478, 3301: 1479, 3512: 1480, 3519: 1481, 954: 1482, 932: 1483, 3341: 1484, 2835: 1485, 3020: 1486, 288: 1487, 996: 1488, 3430: 1489, 95: 1490, 208: 1491, 1382: 1492, 1499: 1493, 60: 1494, 2522: 1495, 2883: 1496, 2711: 1497, 3093: 1498, 1283: 1499, 1209: 1500, 1008: 1501, 2922: 1502, 964: 1503, 368: 1504, 1378: 1505, 2478: 1506, 416: 1507, 3000: 1508, 2993: 1509, 163: 1510, 2344: 1511, 1772: 1512, 2367: 1513, 2475: 1514, 2735: 1515, 2616: 1516, 2468: 1517, 462: 1518, 1606: 1519, 1262: 1520, 2970: 1521, 314: 1522, 3168: 1523, 3153: 1524, 2135: 1525, 2822: 1526, 158: 1527, 1085: 1528, 2405: 1529, 2088: 1530, 2043: 1531, 2950: 1532, 595: 1533, 1526: 1534, 1033: 1535, 1025: 1536, 2936: 1537, 2015: 1538, 586: 1539, 2098: 1540, 1016: 1541, 3503: 1542, 2204: 1543, 3419: 1544, 2511: 1545, 2917: 1546, 2110: 1547, 1791: 1548, 2023: 1549, 3083: 1550, 3384: 1551, 1147: 1552, 2937: 1553, 2248: 1554, 495: 1555, 946: 1556, 2996: 1557, 1948: 1558, 2721: 1559, 2907: 1560, 978: 1561, 2057: 1562, 936: 1563, 1035: 1564, 52: 1565, 2283: 1566, 382: 1567, 481: 1568, 3061: 1569, 2618: 1570, 248: 1571, 2836: 1572, 2766: 1573, 489: 1574, 2718: 1575, 413: 1576, 3244: 1577, 2844: 1578, 2704: 1579, 937: 1580, 3118: 1581, 828: 1582, 1996: 1583, 953: 1584, 2383: 1585, 639: 1586, 3491: 1587, 1845: 1588, 2290: 1589, 2696: 1590, 2136: 1591, 156: 1592, 3451: 1593, 2261: 1594, 838: 1595, 2145: 1596, 2295: 1597, 3087: 1598, 1485: 1599, 3506: 1600, 3497: 1601, 2539: 1602, 2870: 1603, 2567: 1604, 2356: 1605, 3120: 1606, 371: 1607, 2558: 1608, 2469: 1609, 2780: 1610, 2372: 1611, 2072: 1612, 2793: 1613, 1440: 1614, 3045: 1615, 2796: 1616, 2374: 1617, 2375: 1618, 2413: 1619, 1474: 1620, 1461: 1621, 3343: 1622, 2891: 1623, 305: 1624, 2259: 1625, 2473: 1626, 19: 1627, 1381: 1628, 419: 1629, 3074: 1630, 2621: 1631, 2398: 1632, 1892: 1633, 73: 1634, 1545: 1635, 1997: 1636, 1873: 1637, 1693: 1638, 2154: 1639, 832: 1640, 114: 1641, 225: 1642, 2269: 1643, 89: 1644, 233: 1645, 1835: 1646, 1290: 1647, 2340: 1648, 3073: 1649, 1666: 1650, 1043: 1651, 2292: 1652, 565: 1653, 842: 1654, 2784: 1655, 879: 1656, 742: 1657, 1130: 1658, 2554: 1659, 2782: 1660, 1341: 1661, 328: 1662, 330: 1663, 1327: 1664, 2519: 1665, 2459: 1666, 220: 1667, 1346: 1668, 2121: 1669, 2149: 1670, 1388: 1671, 2451: 1672, 2338: 1673, 2113: 1674, 2163: 1675, 2119: 1676, 2430: 1677, 3036: 1678, 2370: 1679, 3345: 1680, 2537: 1681, 2851: 1682, 3062: 1683, 2273: 1684, 517: 1685, 3165: 1686, 1752: 1687, 2741: 1688, 20: 1689, 2276: 1690, 3442: 1691, 2506: 1692, 351: 1693, 46: 1694, 362: 1695, 2120: 1696, 2327: 1697, 2789: 1698, 2655: 1699, 1984: 1700, 2902: 1701, 1329: 1702, 2092: 1703, 2005: 1704, 2252: 1705, 2139: 1706, 2033: 1707, 2123: 1708, 1881: 1709, 1030: 1710, 1190: 1711, 678: 1712, 1635: 1713, 1095: 1714, 412: 1715, 1411: 1716, 1302: 1717, 3371: 1718, 1935: 1719, 2577: 1720, 1651: 1721, 1507: 1722, 2166: 1723, 1178: 1724, 2162: 1725, 3389: 1726, 2373: 1727, 501: 1728, 3317: 1729, 3262: 1730, 3538: 1731, 1227: 1732, 2792: 1733, 3206: 1734, 85: 1735, 2284: 1736, 2488: 1737, 662: 1738, 2551: 1739, 229: 1740, 2803: 1741, 259: 1742, 1184: 1743, 1425: 1744, 180: 1745, 104: 1746, 542: 1747, 719: 1748, 1410: 1749, 2423: 1750, 2066: 1751, 746: 1752, 2940: 1753, 1009: 1754, 2550: 1755, 2788: 1756, 2457: 1757, 386: 1758, 2525: 1759, 304: 1760, 3238: 1761, 3040: 1762, 1218: 1763, 3452: 1764, 69: 1765, 88: 1766, 433: 1767, 1390: 1768, 513: 1769, 2587: 1770, 3186: 1771, 376: 1772, 387: 1773, 886: 1774, 1672: 1775, 2815: 1776, 2404: 1777, 3225: 1778, 3440: 1779, 3416: 1780, 80: 1781, 668: 1782, 363: 1783, 2041: 1784, 2188: 1785, 2861: 1786, 3513: 1787, 1361: 1788, 3338: 1789, 3004: 1790, 3588: 1791, 2885: 1792, 3374: 1793, 55: 1794, 3459: 1795, 3534: 1796, 3502: 1797, 3500: 1798, 1224: 1799, 1202: 1800, 2397: 1801, 3138: 1802, 2738: 1803, 2749: 1804, 2417: 1805, 2418: 1806, 2942: 1807, 1251: 1808, 3076: 1809, 154: 1810, 1362: 1811, 2925: 1812, 3135: 1813, 3283: 1814, 3420: 1815, 2932: 1816, 2535: 1817, 3428: 1818, 2051: 1819, 2394: 1820, 3536: 1821, 3484: 1822, 1547: 1823, 1487: 1824, 3250: 1825, 2250: 1826, 3477: 1827, 1895: 1828, 3478: 1829, 3480: 1830, 3466: 1831, 2240: 1832, 1583: 1833, 1848: 1834, 1920: 1835, 1750: 1836, 491: 1837, 2432: 1838, 1515: 1839, 159: 1840, 1699: 1841, 2437: 1842, 507: 1843, 929: 1844, 506: 1845, 14: 1846, 3366: 1847, 1103: 1848, 3066: 1849, 2232: 1850, 2800: 1851, 1856: 1852, 161: 1853, 2078: 1854, 1279: 1855, 1401: 1856, 144: 1857, 518: 1858, 3284: 1859, 647: 1860, 2440: 1861, 848: 1862, 1186: 1863, 2399: 1864, 3189: 1865, 2170: 1866, 1359: 1867, 2665: 1868, 423: 1869, 2314: 1870, 1667: 1871, 2928: 1872, 1422: 1873, 2306: 1874, 2445: 1875, 2180: 1876, 743: 1877, 533: 1878, 445: 1879, 13: 1880, 2505: 1881, 801: 1882, 365: 1883, 1627: 1884, 2429: 1885, 540: 1886, 575: 1887, 2498: 1888, 370: 1889, 1417: 1890, 2052: 1891, 1665: 1892, 2977: 1893, 2354: 1894, 3387: 1895, 415: 1896, 191: 1897, 2521: 1898, 87: 1899, 2974: 1900, 2566: 1901, 1445: 1902, 3054: 1903, 747: 1904, 2386: 1905, 2612: 1906, 1942: 1907, 3347: 1908, 973: 1909, 917: 1910, 3163: 1911, 1946: 1912, 82: 1913, 2969: 1914, 444: 1915, 3327: 1916, 3182: 1917, 2846: 1918, 2905: 1919, 3134: 1920, 3091: 1921, 3096: 1922, 670: 1923, 2935: 1924, 2731: 1925, 681: 1926, 1927: 1927, 1131: 1928, 2210: 1929, 2202: 1930, 934: 1931, 976: 1932, 897: 1933, 3304: 1934, 1277: 1935, 2068: 1936, 1064: 1937, 2929: 1938, 2184: 1939, 2212: 1940, 941: 1941, 3047: 1942, 1840: 1943, 970: 1944, 2040: 1945, 2379: 1946, 3310: 1947, 12: 1948, 3368: 1949, 1609: 1950, 3475: 1951, 982: 1952, 1245: 1953, 1933: 1954, 944: 1955, 3110: 1956, 2495: 1957, 3585: 1958, 2633: 1959, 171: 1960, 3249: 1961, 2060: 1962, 309: 1963, 581: 1964, 1932: 1965, 277: 1966, 147: 1967, 564: 1968, 1589: 1969, 1034: 1970, 2927: 1971, 41: 1972, 523: 1973, 1660: 1974, 538: 1975, 2171: 1976, 846: 1977, 645: 1978, 1624: 1979, 322: 1980, 57: 1981, 271: 1982, 1836: 1983, 35: 1984, 1841: 1985, 1051: 1986, 1816: 1987, 408: 1988, 580: 1989, 94: 1990, 1943: 1991, 632: 1992, 718: 1993, 3115: 1994, 63: 1995, 2967: 1996, 3557: 1997, 3010: 1998, 1759: 1999, 2351: 2000, 2310: 2001, 1053: 2002, 2345: 2003, 621: 2004, 1023: 2005, 1844: 2006, 2820: 2007, 97: 2008, 3078: 2009, 1701: 2010, 2192: 2011, 72: 2012, 1829: 2013, 3211: 2014, 2976: 2015, 1596: 2016, 3158: 2017, 2479: 2018, 3298: 2019, 2285: 2020, 2590: 2021, 3188: 2022, 2661: 2023, 2422: 2024, 2884: 2025, 2106: 2026, 383: 2027, 1472: 2028, 2956: 2029, 1804: 2030, 521: 2031, 3409: 2032, 3266: 2033, 1523: 2034, 1743: 2035, 1310: 2036, 2689: 2037, 77: 2038, 297: 2039, 3178: 2040, 3335: 2041, 2265: 2042, 2141: 2043, 101: 2044, 1257: 2045, 663: 2046, 2500: 2047, 2249: 2048, 2447: 2049, 3243: 2050, 3254: 2051, 3544: 2052, 166: 2053, 65: 2054, 2381: 2055, 2380: 2056, 3391: 2057, 3495: 2058, 1112: 2059, 893: 2060, 1563: 2061, 175: 2062, 3437: 2063, 2435: 2064, 697: 2065, 2037: 2066, 2806: 2067, 1866: 2068, 925: 2069, 2101: 2070, 2267: 2071, 1464: 2072, 451: 2073, 2583: 2074, 335: 2075, 1754: 2076, 257: 2077, 360: 2078, 1498: 2079, 2062: 2080, 2497: 2081, 1463: 2082, 804: 2083, 1475: 2084, 2597: 2085, 270: 2086, 276: 2087, 2586: 2088, 1675: 2089, 482: 2090, 422: 2091, 2320: 2092, 554: 2093, 1003: 2094, 2326: 2095, 990: 2096, 132: 2097, 79: 2098, 640: 2099, 3516: 2100, 3600: 2101, 3564: 2102, 3602: 2103, 3604: 2104, 3520: 2105, 3605: 2106, 3608: 2107, 3610: 2108, 3457: 2109, 2156: 2110, 3200: 2111, 1937: 2112, 1414: 2113, 635: 2114, 2436: 2115, 516: 2116, 1021: 2117, 1113: 2118, 1621: 2119, 1688: 2120, 1919: 2121, 1018: 2122, 3355: 2123, 1161: 2124, 3399: 2125, 1205: 2126, 239: 2127, 2924: 2128, 2275: 2129, 704: 2130, 393: 2131, 3213: 2132, 2084: 2133, 1739: 2134, 1973: 2135, 126: 2136, 3433: 2137, 3434: 2138, 3258: 2139, 2733: 2140, 1167: 2141, 203: 2142, 234: 2143, 193: 2144, 3390: 2145, 3349: 2146, 76: 2147, 3614: 2148, 1746: 2149, 1936: 2150, 3587: 2151, 2073: 2152, 2669: 2153, 3525: 2154, 725: 2155, 3217: 2156, 2647: 2157, 3486: 2158, 2667: 2159, 3375: 2160, 242: 2161, 1925: 2162, 2939: 2163, 1684: 2164, 1468: 2165, 613: 2166, 84: 2167, 206: 2168, 1255: 2169, 2636: 2170, 2579: 2171, 511: 2172, 559: 2173, 2293: 2174, 556: 2175, 2536: 2176, 2649: 2177, 103: 2178, 2663: 2179, 332: 2180, 3488: 2181, 2656: 2182, 2637: 2183, 2638: 2184, 2634: 2185, 2646: 2186, 2814: 2187, 2652: 2188, 2654: 2189, 1337: 2190, 2651: 2191, 841: 2192, 2568: 2193, 2260: 2194, 3007: 2195, 3271: 2196, 1105: 2197, 3069: 2198, 1421: 2199, 2988: 2200, 835: 2201, 2573: 2202, 2493: 2203, 3565: 2204, 612: 2205, 1456: 2206, 122: 2207, 1599: 2208, 2582: 2209, 2368: 2210, 2783: 2211, 1331: 2212, 2740: 2213, 1655: 2214, 2868: 2215, 2790: 2216, 606: 2217, 3598: 2218, 3606: 2219, 3559: 2220, 3415: 2221, 3311: 2222, 3456: 2223, 1046: 2224, 1406: 2225, 214: 2226, 334: 2227, 1116: 2228, 1901: 2229, 3142: 2230, 1875: 2231, 2365: 2232, 2029: 2233, 2865: 2234, 1535: 2235, 414: 2236, 569: 2237, 3372: 2238, 2540: 2239, 547: 2240, 1067: 2241, 3324: 2242, 3103: 2243, 291: 2244, 3593: 2245, 421: 2246, 2453: 2247, 3145: 2248, 3038: 2249, 3533: 2250, 615: 2251, 3532: 2252, 240: 2253, 956: 2254, 2653: 2255, 2131: 2256, 2983: 2257, 1076: 2258, 2650: 2259, 927: 2260, 962: 2261, 775: 2262, 2847: 2263, 1160: 2264, 347: 2265, 2682: 2266, 1024: 2267, 2753: 2268, 3275: 2269, 2195: 2270, 456: 2271, 1511: 2272, 1446: 2273, 1733: 2274, 3106: 2275, 3328: 2276, 2246: 2277, 3221: 2278, 3571: 2279, 3570: 2280, 389: 2281, 1324: 2282, 2315: 2283, 2516: 2284, 352: 2285, 324: 2286, 1612: 2287, 1904: 2288, 2007: 2289, 570: 2290, 3049: 2291, 452: 2292, 2236: 2293, 829: 2294, 1613: 2295, 477: 2296, 268: 2297, 409: 2298, 215: 2299, 806: 2300, 2639: 2301, 1670: 2302, 1753: 2303, 3339: 2304, 2893: 2305, 2607: 2306, 3465: 2307, 2888: 2308, 184: 2309, 2978: 2310, 881: 2311, 1854: 2312, 135: 2313, 1000: 2314, 813: 2315, 312: 2316, 278: 2317, 3031: 2318, 833: 2319, 473: 2320, 472: 2321, 438: 2322, 2317: 2323, 2027: 2324, 275: 2325, 1604: 2326, 1550: 2327, 2992: 2328, 3013: 2329, 1998: 2330, 2903: 2331, 2878: 2332, 3021: 2333, 3490: 2334, 1989: 2335, 3487: 2336, 1068: 2337, 2187: 2338, 3316: 2339, 3445: 2340, 2242: 2341, 3577: 2342, 3510: 2343, 3041: 2344, 458: 2345, 3431: 2346, 3432: 2347, 2896: 2348, 487: 2349, 2055: 2350, 3427: 2351, 2458: 2352, 809: 2353, 2606: 2354, 3077: 2355, 121: 2356, 3402: 2357, 1865: 2358, 1123: 2359, 2659: 2360, 2182: 2361, 2017: 2362, 1571: 2363, 2099: 2364, 3199: 2365, 3414: 2366, 2263: 2367, 3235: 2368, 116: 2369, 2585: 2370, 709: 2371, 3393: 2372, 2151: 2373, 1647: 2374, 798: 2375, 2594: 2376, 2507: 2377, 781: 2378, 2281: 2379, 1352: 2380, 869: 2381, 210: 2382, 650: 2383, 2272: 2384, 9: 2385, 467: 2386, 189: 2387, 3425: 2388, 1703: 2389, 1900: 2390, 1812: 2391, 1585: 2392, 525: 2393, 1857: 2394, 505: 2395, 267: 2396, 2610: 2397, 2798: 2398, 449: 2399, 984: 2400, 3394: 2401, 2879: 2402, 711: 2403, 217: 2404, 3042: 2405, 1692: 2406, 2483: 2407, 1432: 2408, 3268: 2409, 2714: 2410, 1450: 2411, 2562: 2412, 2856: 2413, 2744: 2414, 1640: 2415, 957: 2416, 1152: 2417, 181: 2418, 1495: 2419, 1720: 2420, 667: 2421, 2817: 2422, 839: 2423, 2899: 2424, 1011: 2425, 2050: 2426, 2142: 2427, 631: 2428, 1654: 2429, 2079: 2430, 2035: 2431, 960: 2432, 2205: 2433, 2589: 2434, 255: 2435, 2549: 2436, 2952: 2437, 3423: 2438, 2264: 2439, 3141: 2440, 2515: 2441, 2982: 2442, 2452: 2443, 1992: 2444, 2462: 2445, 1993: 2446, 891: 2447, 3367: 2448, 2816: 2449, 627: 2450, 1929: 2451, 2938: 2452, 1477: 2453, 1460: 2454, 2962: 2455, 3292: 2456, 2773: 2457, 3622: 2458, 769: 2459, 1758: 2460, 484: 2461, 2045: 2462, 888: 2463, 3144: 2464, 2695: 2465, 3492: 2466, 238: 2467, 3578: 2468, 3509: 2469, 3286: 2470, 96: 2471, 3137: 2472, 1015: 2473, 1317: 2474, 1398: 2475, 2382: 2476, 1322: 2477, 2892: 2478, 2255: 2479, 2095: 2480, 3043: 2481, 807: 2482, 987: 2483, 1600: 2484, 3232: 2485, 2044: 2486, 1837: 2487, 710: 2488, 470: 2489, 102: 2490, 321: 2491, 1695: 2492, 3556: 2493, 3012: 2494, 1896: 2495, 3417: 2496, 2776: 2497, 2630: 2498, 1428: 2499, 3620: 2500, 2177: 2501, 2523: 2502, 1363: 2503, 1496: 2504, 3299: 2505, 1631: 2506, 1669: 2507, 302: 2508, 131: 2509, 1482: 2510, 3287: 2511, 3483: 2512, 544: 2513, 548: 2514, 2889: 2515, 1898: 2516, 201: 2517, 463: 2518, 2504: 2519, 3403: 2520, 3579: 2521, 3554: 2522, 3617: 2523, 3618: 2524, 3596: 2525, 3580: 2526, 3537: 2527, 3597: 2528, 3619: 2529, 3326: 2530, 2169: 2531, 1826: 2532, 1677: 2533, 2350: 2534, 2681: 2535, 2767: 2536, 2691: 2537, 3048: 2538, 2786: 2539, 2257: 2540, 2799: 2541, 2756: 2542, 3223: 2543, 83: 2544, 1484: 2545, 2853: 2546, 1860: 2547, 3214: 2548, 536: 2549, 3109: 2550, 23: 2551, 1906: 2552, 3218: 2553, 2965: 2554, 3613: 2555, 37: 2556, 1564: 2557, 638: 2558, 74: 2559, 301: 2560, 469: 2561, 1632: 2562, 779: 2563, 2165: 2564, 685: 2565, 2548: 2566, 1668: 2567, 2426: 2568, 3063: 2569, 3599: 2570, 61: 2571, 436: 2572, 1658: 2573, 18: 2574, 209: 2575, 93: 2576, 2809: 2577, 567: 2578, 2727: 2579, 1154: 2580, 854: 2581, 850: 2582, 669: 2583, 1351: 2584, 263: 2585, 3531: 2586, 2849: 2587, 1050: 2588, 563: 2589, 715: 2590, 343: 2591, 3539: 2592, 2305: 2593, 155: 2594, 3562: 2595, 782: 2596, 3586: 2597, 390: 2598, 3313: 2599, 211: 2600, 1404: 2601, 254: 2602, 78: 2603, 882: 2604, 424: 2605, 1044: 2606, 346: 2607, 1473: 2608, 2482: 2609, 3306: 2610, 2596: 2611, 528: 2612, 3309: 2613, 2196: 2614, 1869: 2615, 3563: 2616, 1867: 2617, 2307: 2618, 1853: 2619, 2128: 2620, 2325: 2621, 1592: 2622, 486: 2623, 656: 2624, 1679: 2625, 1439: 2626, 867: 2627, 453: 2628, 174: 2629, 2552: 2630, 810: 2631, 1798: 2632, 118: 2633, 331: 2634, 2190: 2635, 3127: 2636, 2449: 2637, 2876: 2638, 885: 2639, 2280: 2640, 716: 2641, 478: 2642, 1436: 2643, 626: 2644, 243: 2645, 3511: 2646, 2494: 2647, 618: 2648, 1661: 2649, 1686: 2650, 391: 2651, 998: 2652, 1662: 2653, 1824: 2654, 732: 2655, 2812: 2656, 1532: 2657, 283: 2658, 1601: 2659, 2271: 2660, 510: 2661, 2201: 2662, 100: 2663, 3553: 2664, 3566: 2665, 1870: 2666, 443: 2667, 3357: 2668, 3319: 2669, 3185: 2670, 1910: 2671, 2810: 2672, 2047: 2673, 336: 2674, 3639: 2675, 3634: 2676, 764: 2677, 197: 2678, 503: 2679, 633: 2680, 68: 2681, 1328: 2682, 1325: 2683, 2461: 2684, 1191: 2685, 294: 2686, 2341: 2687, 1767: 2688, 498: 2689, 703: 2690, 354: 2691, 167: 2692, 522: 2693, 27: 2694, 2400: 2695, 2256: 2696, 3344: 2697, 3026: 2698, 3638: 2699, 3633: 2700, 3635: 2701, 2614: 2702, 760: 2703, 1323: 2704, 202: 2705, 896: 2706, 2514: 2707, 1335: 2708, 2347: 2709, 2818: 2710, 3464: 2711, 1232: 2712, 2026: 2713, 3624: 2714, 2031: 2715, 3177: 2716, 3643: 2717, 3628: 2718, 3514: 2719, 1038: 2720, 3515: 2721, 3446: 2722, 3027: 2723, 3629: 2724, 3645: 2725, 1119: 2726, 483: 2727, 3594: 2728, 1525: 2729, 1756: 2730, 1990: 2731, 2754: 2732, 3453: 2733, 2049: 2734, 3181: 2735, 3470: 2736, 3636: 2737, 3644: 2738, 1822: 2739, 1426: 2740, 1164: 2741, 1902: 2742, 3240: 2743, 3623: 2744, 2323: 2745, 1349: 2746, 1336: 2747, 3241: 2748, 2833: 2749, 3117: 2750, 1151: 2751, 2008: 2752, 1087: 2753, 2886: 2754, 2737: 2755, 3474: 2756, 1180: 2757, 847: 2758, 997: 2759, 2679: 2760, 3122: 2761, 1928: 2762, 2981: 2763, 2984: 2764, 1849: 2765, 876: 2766, 1117: 2767, 1671: 2768, 1508: 2769, 1114: 2770, 1501: 2771, 53: 2772, 313: 2773, 3612: 2774, 2834: 2775, 38: 2776, 3190: 2777, 2499: 2778, 3668: 2779, 3615: 2780, 2674: 2781, 3684: 2782, 3671: 2783, 3683: 2784, 274: 2785, 117: 2786, 228: 2787, 99: 2788, 75: 2789, 3712: 2790, 3676: 2791, 128: 2792, 3704: 2793, 3702: 2794, 2446: 2795, 3649: 2796, 3697: 2797, 3706: 2798, 3681: 2799, 3654: 2800, 3686: 2801, 3708: 2802, 3703: 2803, 3688: 2804, 3685: 2805, 3698: 2806, 3700: 2807, 2342: 2808, 392: 2809, 3682: 2810, 3701: 2811, 3637: 2812, 3690: 2813, 3689: 2814, 2593: 2815, 583: 2816, 3699: 2817, 3707: 2818, 3675: 2819, 3693: 2820, 2843: 2821, 3320: 2822, 2897: 2823, 1889: 2824, 3711: 2825, 2086: 2826, 1121: 2827, 1169: 2828, 1313: 2829, 3567: 2830, 3581: 2831, 1770: 2832, 1782: 2833, 359: 2834, 1514: 2835, 3660: 2836, 3627: 2837, 3653: 2838, 3705: 2839, 3669: 2840, 3207: 2841, 753: 2842, 1415: 2843, 3632: 2844, 3713: 2845, 3678: 2846, 2831: 2847, 2945: 2848, 3677: 2849, 568: 2850, 3672: 2851, 369: 2852, 602: 2853, 219: 2854, 137: 2855, 136: 2856, 2103: 2857, 56: 2858, 146: 2859, 54: 2860, 2559: 2861, 90: 2862, 603: 2863, 877: 2864, 566: 2865, 771: 2866, 1749: 2867, 3473: 2868, 617: 2869, 406: 2870, 1420: 2871, 3680: 2872, 3674: 2873, 113: 2874, 3661: 2875, 3673: 2876, 2904: 2877, 3092: 2878, 2215: 2879, 1054: 2880, 3691: 2881, 250: 2882, 3055: 2883, 3679: 2884, 1656: 2885, 3692: 2886, 2339: 2887, 3715: 2888, 385: 2889, 2211: 2890, 974: 2891, 3139: 2892, 958: 2893, 3171: 2894, 755: 2895, 3215: 2896, 3670: 2897, 3710: 2898, 3740: 2899, 3730: 2900, 3724: 2901, 3731: 2902, 3732: 2903, 3716: 2904, 3733: 2905, 3734: 2906, 3735: 2907, 3729: 2908, 3738: 2909, 2209: 2910, 1903: 2911, 2227: 2912, 2221: 2913, 2185: 2914, 1728: 2915, 264: 2916, 1533: 2917, 3742: 2918, 3723: 2919, 3664: 2920, 3663: 2921, 3709: 2922, 106: 2923, 1696: 2924, 824: 2925, 3728: 2926, 619: 2927, 40: 2928, 2994: 2929, 3741: 2930, 1922: 2931, 1458: 2932, 3658: 2933, 384: 2934, 1423: 2935, 2627: 2936, 831: 2937, 3400: 2938, 2785: 2939, 3736: 2940, 1814: 2941, 2244: 2942, 1486: 2943, 375: 2944, 2755: 2945, 1715: 2946, 992: 2947, 2074: 2948, 2632: 2949, 1489: 2950, 3454: 2951, 1725: 2952, 1551: 2953, 3694: 2954, 3646: 2955, 609: 2956, 244: 2957, 722: 2958, 3714: 2959, 3665: 2960, 3662: 2961, 1063: 2962, 3648: 2963, 3659: 2964, 3696: 2965, 939: 2966, 3727: 2967, 3626: 2968, 1437: 2969, 811: 2970, 2778: 2971, 3725: 2972, 754: 2973, 2477: 2974, 1887: 2975, 411: 2976, 1055: 2977, 2191: 2978, 3717: 2979, 3667: 2980, 1534: 2981, 1817: 2982, 705: 2983, 3655: 2984, 1531: 2985, 3744: 2986, 2850: 2987, 2207: 2988, 2197: 2989, 2481: 2990, 1455: 2991, 1071: 2992, 1549: 2993, 2933: 2994, 3726: 2995, 2813: 2996, 3739: 2997, 1893: 2998, 2298: 2999, 1859: 3000, 1509: 3001, 3540: 3002, 3657: 3003, 3640: 3004, 863: 3005, 3719: 3006, 2837: 3007, 1879: 3008, 3124: 3009, 3302: 3010, 1567: 3011, 793: 3012, 3745: 3013, 1502: 3014, 3652: 3015, 119: 3016, 3754: 3017, 3763: 3018, 3746: 3019, 496: 3020, 310: 3021, 2824: 3022, 1864: 3023, 3751: 3024, 3303: 3025, 3753: 3026, 3764: 3027, 1170: 3028, 3782: 3029, 3781: 3030, 3771: 3031, 3766: 3032, 3773: 3033, 149: 3034, 3760: 3035, 665: 3036, 3770: 3037, 3758: 3038, 2855: 3039, 3743: 3040, 3769: 3041, 3183: 3042, 2158: 3043, 1793: 3044, 1153: 3045, 3642: 3046, 3737: 3047, 3025: 3048, 3768: 3049, 2534: 3050, 2332: 3051, 3780: 3052, 394: 3053, 2486: 3054, 1807: 3055, 2175: 3056, 2509: 3057, 3116: 3058, 600: 3059, 3774: 3060, 3463: 3061, 2864: 3062, 3752: 3063, 3791: 3064, 3784: 3065, 2914: 3066, 3788: 3067, 3767: 3068, 3695: 3069, 1538: 3070, 3789: 3071, 3755: 3072, 3792: 3073, 2200: 3074, 526: 3075, 1144: 3076, 3239: 3077, 1026: 3078, 1899: 3079, 2056: 3080, 1384: 3081, 3720: 3082, 1369: 3083, 3333: 3084, 698: 3085, 3718: 3086, 3765: 3087, 3747: 3088, 3775: 3089, 3778: 3090, 2179: 3091, 2964: 3092, 864: 3093, 3569: 3094, 1574: 3095, 430: 3096, 3064: 3097, 251: 3098, 2963: 3099, 598: 3100, 3783: 3101, 1718: 3102, 3759: 3103, 2979: 3104, 1490: 3105, 1311: 3106, 3050: 3107, 659: 3108, 1565: 3109, 2219: 3110, 2775: 3111, 3002: 3112, 3776: 3113, 178: 3114, 1002: 3115, 1850: 3116, 1493: 3117, 3058: 3118, 49: 3119, 3276: 3120, 3785: 3121, 3346: 3122, 2854: 3123, 3757: 3124, 3761: 3125, 2675: 3126, 3192: 3127, 2304: 3128, 1880: 3129, 2931: 3130, 3222: 3131, 2658: 3132, 561: 3133, 2544: 3134, 1926: 3135, 1539: 3136, 3180: 3137, 1575: 3138, 560: 3139, 2930: 3140, 1433: 3141, 200: 3142, 1741: 3143, 664: 3144, 2569: 3145, 966: 3146, 1890: 3147, 3721: 3148, 1825: 3149, 279: 3150, 2234: 3151, 2164: 3152, 1572: 3153, 1174: 3154, 1312: 3155, 1181: 3156, 2444: 3157, 726: 3158, 124: 3159, 3812: 3160, 3806: 3161, 3814: 3162, 3809: 3163, 3811: 3164, 3819: 3165, 108: 3166, 3813: 3167, 3802: 3168, 3799: 3169, 3121: 3170, 3801: 3171, 3810: 3172, 1878: 3173, 3807: 3174, 2873: 3175, 3804: 3176, 3818: 3177, 1163: 3178, 3817: 3179, 3793: 3180, 1520: 3181, 3790: 3182, 3787: 3183, 1664: 3184, 3795: 3185, 2129: 3186, 1519: 3187, 860: 3188, 3749: 3189, 2839: 3190, 287: 3191, 844: 3192, 2063: 3193, 3166: 3194, 3003: 3195, 3803: 3196, 3616: 3197, 3798: 3198, 751: 3199, 3318: 3200, 3808: 3201, 397: 3202, 2189: 3203, 3794: 3204, 3805: 3205, 3797: 3206, 1570: 3207, 3841: 3208, 3786: 3209, 3832: 3210, 3834: 3211, 3835: 3212, 3836: 3213, 3844: 3214, 3840: 3215, 3846: 3216, 1659: 3217, 3849: 3218, 2666: 3219, 3845: 3220, 3831: 3221, 3822: 3222, 3796: 3223, 3777: 3224, 2466: 3225, 3843: 3226, 3821: 3227, 3837: 3228, 3839: 3229, 3827: 3230, 3820: 3231, 2760: 3232, 2635: 3233, 2777: 3234, 3816: 3235, 3641: 3236, 3847: 3237, 3838: 3238, 2923: 3239, 3351: 3240, 3833: 3241, 3848: 3242, 2743: 3243, 1138: 3244, 1168: 3245, 1529: 3246, 3825: 3247, 874: 3248, 3850: 3249, 1811: 3250, 972: 3251, 2913: 3252, 1780: 3253, 767: 3254, 2487: 3255, 3611: 3256, 1891: 3257, 2608: 3258, 1522: 3259, 3826: 3260, 3161: 3261, 2998: 3262, 3293: 3263, 652: 3264, 148: 3265, 3824: 3266, 3864: 3267, 3859: 3268, 3861: 3269, 295: 3270, 3056: 3271, 3823: 3272, 3625: 3273, 980: 3274, 2934: 3275, 3866: 3276, 2673: 3277, 3140: 3278, 3592: 3279, 460: 3280, 1685: 3281, 3869: 3282, 3873: 3283, 3858: 3284, 3877: 3285, 3410: 3286, 2388: 3287, 3868: 3288, 3872: 3289, 2830: 3290, 1383: 3291, 3870: 3292, 1098: 3293, 3871: 3294, 3860: 3295, 2705: 3296, 3875: 3297, 3666: 3298, 2415: 3299, 3857: 3300, 2557: 3301, 3523: 3302, 3863: 3303, 815: 3304, 3830: 3305, 3884: 3306, 3852: 3307, 3880: 3308, 2233: 3309, 3874: 3310, 3878: 3311, 3886: 3312, 129: 3313, 2602: 3314, 3879: 3315, 3882: 3316, 630: 3317, 3001: 3318, 3851: 3319, 2911: 3320, 245: 3321, 3855: 3322, 3867: 3323, 3865: 3324, 3853: 3325, 2765: 3326, 2631: 3327, 1444: 3328, 3568: 3329, 614: 3330, 1058: 3331, 3897: 3332, 3893: 3333, 3889: 3334, 3925: 3335, 3936: 3336, 3942: 3337, 3941: 3338, 3940: 3339, 3939: 3340, 3938: 3341, 3937: 3342, 3927: 3343, 3926: 3344, 3908: 3345, 3917: 3346, 3918: 3347, 3921: 3348, 3922: 3349, 3919: 3350, 3930: 3351, 3901: 3352, 3920: 3353, 3903: 3354, 3895: 3355, 3910: 3356, 3915: 3357, 3932: 3358, 3929: 3359, 3896: 3360, 3898: 3361, 212: 3362, 3928: 3363, 3923: 3364, 3931: 3365, 3909: 3366, 3916: 3367, 2538: 3368, 3911: 3369, 3894: 3370, 3914: 3371, 3948: 3372, 3883: 3373, 3947: 3374, 3885: 3375, 3913: 3376, 2768: 3377, 3162: 3378, 3952: 3379, 2545: 3380, 3924: 3381, 3946: 3382, 1796: 3383, 3934: 3384, 3945: 3385, 3943: 3386, 3854: 3387, 3935: 3388, 3933: 3389, 2769: 3390, 3949: 3391, 2464: 3392, 3902: 3393, 3950: 3394, 3944: 3395, 3891: 3396, 3900: 3397, 3154: 3398, 3951: 3399, 3184: 3400, 2061: 3401, 98: 3402, 3912: 3403, 3906: 3404, 3892: 3405, 1040: 3406, 1543: 3407, 1622: 3408, 1636: 3409, 1471: 3410}} {'item_id': {0: 858, 1: 593, 2: 2384, 3: 2019, 4: 1961, 5: 1419, 6: 3111, 7: 573, 8: 213, 9: 3505, 10: 1734, 11: 2503, 12: 912, 13: 919, 14: 527, 15: 649, 16: 1252, 17: 318, 18: 3289, 19: 759, 20: 608, 21: 2396, 22: 2858, 23: 326, 24: 2028, 25: 1649, 26: 2762, 27: 17, 28: 34, 29: 246, 30: 2692, 31: 1617, 32: 300, 33: 1392, 34: 1111, 35: 150, 36: 562, 37: 549, 38: 1537, 39: 1554, 40: 448, 41: 265, 42: 866, 43: 1358, 44: 2324, 45: 235, 46: 446, 47: 247, 48: 1094, 49: 1704, 50: 50, 51: 162, 52: 45, 53: 348, 54: 508, 55: 1089, 56: 589, 57: 58, 58: 1694, 59: 2580, 60: 1834, 61: 2391, 62: 282, 63: 111, 64: 290, 65: 2067, 66: 1641, 67: 357, 68: 930, 69: 1230, 70: 947, 71: 3088, 72: 3133, 73: 3022, 74: 1294, 75: 3421, 76: 2804, 77: 1269, 78: 1276, 79: 1244, 80: 2622, 81: 955, 82: 2791, 83: 2300, 84: 1028, 85: 2863, 86: 3548, 87: 1197, 88: 951, 89: 1223, 90: 1211, 91: 933, 92: 1066, 93: 3072, 94: 907, 95: 2671, 96: 935, 97: 1304, 98: 3175, 99: 3035, 100: 1014, 101: 1078, 102: 3363, 103: 1270, 104: 1265, 105: 909, 106: 3396, 107: 1934, 108: 2174, 109: 911, 110: 945, 111: 2746, 112: 1188, 113: 471, 114: 3037, 115: 952, 116: 2289, 117: 916, 118: 1125, 119: 915, 120: 3028, 121: 3471, 122: 260, 123: 750, 124: 924, 125: 1210, 126: 1097, 127: 3545, 128: 2565, 129: 914, 130: 2087, 131: 918, 132: 899, 133: 1282, 134: 1022, 135: 900, 136: 364, 137: 1951, 138: 588, 139: 3549, 140: 963, 141: 1947, 142: 1081, 143: 2946, 144: 2083, 145: 1220, 146: 107, 147: 1380, 148: 2857, 149: 2096, 150: 1088, 151: 661, 152: 938, 153: 901, 154: 783, 155: 1083, 156: 2080, 157: 199, 158: 1416, 159: 48, 160: 903, 161: 1284, 162: 904, 163: 913, 164: 1212, 165: 2206, 166: 1086, 167: 950, 168: 1964, 169: 2208, 170: 906, 171: 942, 172: 2414, 173: 1680, 174: 926, 175: 1237, 176: 923, 177: 920, 178: 2146, 179: 1387, 180: 356, 181: 1079, 182: 2716, 183: 1148, 184: 232, 185: 1136, 186: 702, 187: 1882, 188: 1267, 189: 3508, 190: 3148, 191: 3543, 192: 1221, 193: 2132, 194: 1250, 195: 1193, 196: 1299, 197: 1225, 198: 3006, 199: 3196, 200: 908, 201: 1207, 202: 3469, 203: 1721, 204: 3438, 205: 2428, 206: 1883, 207: 2376, 208: 1945, 209: 3468, 210: 2728, 211: 3359, 212: 1938, 213: 1949, 214: 1231, 215: 2706, 216: 2707, 217: 2826, 218: 2492, 219: 2827, 220: 2572, 221: 2683, 222: 2699, 223: 3362, 224: 3504, 225: 1203, 226: 2501, 227: 2770, 228: 2842, 229: 3005, 230: 2555, 231: 3285, 232: 2710, 233: 2694, 234: 2975, 235: 2997, 236: 3270, 237: 3330, 238: 1233, 239: 2771, 240: 2147, 241: 3016, 242: 223, 243: 2433, 244: 2038, 245: 3068, 246: 3095, 247: 1208, 248: 1941, 249: 2919, 250: 2890, 251: 1293, 252: 1940, 253: 2678, 254: 1093, 255: 1911, 256: 2772, 257: 2546, 258: 2722, 259: 3203, 260: 2881, 261: 2759, 262: 2541, 263: 2336, 264: 2599, 265: 3113, 266: 2575, 267: 2828, 268: 2605, 269: 3408, 270: 2434, 271: 3051, 272: 1259, 273: 3467, 274: 1213, 275: 3159, 276: 2757, 277: 2712, 278: 1950, 279: 1939, 280: 1952, 281: 3526, 282: 2995, 283: 407, 284: 2676, 285: 2690, 286: 2333, 287: 2318, 288: 2719, 289: 3152, 290: 959, 291: 2303, 292: 1288, 293: 2629, 294: 2882, 295: 2713, 296: 3008, 297: 785, 298: 3160, 299: 2392, 300: 2390, 301: 2238, 302: 1953, 303: 3147, 304: 1674, 305: 3354, 306: 2900, 307: 3053, 308: 2734, 309: 2805, 310: 3379, 311: 2439, 312: 296, 313: 949, 314: 968, 315: 1959, 316: 2490, 317: 2574, 318: 2581, 319: 3325, 320: 2502, 321: 2723, 322: 3219, 323: 2901, 324: 3201, 325: 1956, 326: 3424, 327: 2906, 328: 2013, 329: 2598, 330: 299, 331: 3300, 332: 2758, 333: 24, 334: 43, 335: 2093, 336: 2395, 337: 2560, 338: 2686, 339: 1513, 340: 2485, 341: 3273, 342: 2491, 343: 2700, 344: 2841, 345: 3081, 346: 2840, 347: 2672, 348: 2070, 349: 2702, 350: 3176, 351: 2715, 352: 2693, 353: 3114, 354: 1623, 355: 2337, 356: 2701, 357: 2987, 358: 86, 359: 2600, 360: 3125, 361: 3179, 362: 3329, 363: 2010, 364: 461, 365: 1413, 366: 2024, 367: 1198, 368: 745, 369: 720, 370: 1196, 371: 1192, 372: 3149, 373: 1281, 374: 28, 375: 3307, 376: 3224, 377: 3265, 378: 1219, 379: 3128, 380: 2360, 381: 3462, 382: 3030, 383: 1348, 384: 1719, 385: 2075, 386: 541, 387: 2972, 388: 1248, 389: 1007, 390: 902, 391: 898, 392: 25, 393: 3067, 394: 922, 395: 1247, 396: 2859, 397: 2677, 398: 2186, 399: 2609, 400: 1303, 401: 1412, 402: 1104, 403: 2648, 404: 2357, 405: 2628, 406: 1228, 407: 3429, 408: 2732, 409: 1080, 410: 1584, 411: 480, 412: 32, 413: 2046, 414: 1748, 415: 2571, 416: 800, 417: 1214, 418: 3365, 419: 2664, 420: 1909, 421: 1372, 422: 1591, 423: 504, 424: 1653, 425: 2916, 426: 1356, 427: 1580, 428: 1527, 429: 1876, 430: 1396, 431: 971, 432: 2660, 433: 329, 434: 2012, 435: 788, 436: 3156, 437: 2393, 438: 512, 439: 1217, 440: 3075, 441: 3089, 442: 338, 443: 1573, 444: 1690, 445: 1150, 446: 2973, 447: 1603, 448: 1544, 449: 185, 450: 1391, 451: 1831, 452: 1320, 453: 2920, 454: 1885, 455: 1931, 456: 1240, 457: 514, 458: 1779, 459: 2808, 460: 2986, 461: 405, 462: 2053, 463: 1590, 464: 1041, 465: 2020, 466: 1056, 467: 1132, 468: 66, 469: 737, 470: 2448, 471: 256, 472: 1176, 473: 1199, 474: 3447, 475: 176, 476: 1200, 477: 1374, 478: 1657, 479: 3527, 480: 2968, 481: 1375, 482: 1274, 483: 2455, 484: 2985, 485: 1376, 486: 2011, 487: 2613, 488: 2021, 489: 2407, 490: 2105, 491: 2117, 492: 2311, 493: 2140, 494: 1253, 495: 3551, 496: 1234, 497: 3547, 498: 1965, 499: 2641, 500: 2054, 501: 1373, 502: 2364, 503: 2408, 504: 2456, 505: 2642, 506: 1254, 507: 1278, 508: 3090, 509: 3052, 510: 1397, 511: 2730, 512: 2848, 513: 1594, 514: 599, 515: 3361, 516: 3461, 517: 1077, 518: 306, 519: 1185, 520: 3418, 521: 1242, 522: 110, 523: 307, 524: 1874, 525: 1504, 526: 1258, 527: 1957, 528: 2971, 529: 2064, 530: 1243, 531: 1345, 532: 344, 533: 967, 534: 3130, 535: 249, 536: 1280, 537: 778, 538: 1784, 539: 293, 540: 590, 541: 475, 542: 1682, 543: 1179, 544: 2291, 545: 3108, 546: 1264, 547: 373, 548: 194, 549: 337, 550: 358, 551: 454, 552: 1366, 553: 1061, 554: 515, 555: 2366, 556: 961, 557: 3246, 558: 1466, 559: 62, 560: 3386, 561: 3342, 562: 3019, 563: 3426, 564: 1120, 565: 11, 566: 1268, 567: 4, 568: 1735, 569: 230, 570: 805, 571: 3255, 572: 2688, 573: 21, 574: 26, 575: 1727, 576: 280, 577: 3252, 578: 1729, 579: 3155, 580: 509, 581: 1747, 582: 224, 583: 1918, 584: 3435, 585: 2726, 586: 320, 587: 2361, 588: 3364, 589: 1442, 590: 1480, 591: 875, 592: 3334, 593: 1260, 594: 31, 595: 1711, 596: 2441, 597: 2966, 598: 1962, 599: 851, 600: 350, 601: 2002, 602: 695, 603: 1201, 604: 2059, 605: 1183, 606: 2875, 607: 1096, 608: 2288, 609: 921, 610: 1036, 611: 940, 612: 2644, 613: 253, 614: 1586, 615: 605, 616: 1027, 617: 30, 618: 42, 619: 457, 620: 1006, 621: 2908, 622: 766, 623: 1884, 624: 1801, 625: 3257, 626: 3521, 627: 3528, 628: 418, 629: 765, 630: 455, 631: 2431, 632: 1726, 633: 1340, 634: 1966, 635: 2313, 636: 3150, 637: 969, 638: 1797, 639: 3550, 640: 308, 641: 3498, 642: 92, 643: 2412, 644: 169, 645: 1595, 646: 2819, 647: 3198, 648: 2130, 649: 994, 650: 3499, 651: 2529, 652: 2102, 653: 1296, 654: 1, 655: 594, 656: 1301, 657: 1307, 658: 3132, 659: 1354, 660: 735, 661: 1954, 662: 388, 663: 1272, 664: 2302, 665: 2542, 666: 1500, 667: 2947, 668: 2355, 669: 3253, 670: 1923, 671: 1517, 672: 367, 673: 2662, 674: 3018, 675: 2739, 676: 1827, 677: 440, 678: 2124, 679: 500, 680: 1614, 681: 7, 682: 3450, 683: 2108, 684: 2926, 685: 597, 686: 1777, 687: 3263, 688: 708, 689: 236, 690: 539, 691: 216, 692: 1020, 693: 378, 694: 3208, 695: 333, 696: 1713, 697: 5, 698: 830, 699: 2004, 700: 1042, 701: 3098, 702: 3094, 703: 1409, 704: 231, 705: 372, 706: 157, 707: 1582, 708: 1944, 709: 1914, 710: 1367, 711: 2709, 712: 1377, 713: 252, 714: 784, 715: 585, 716: 1379, 717: 3086, 718: 3267, 719: 186, 720: 466, 721: 673, 722: 1702, 723: 1689, 724: 2266, 725: 1806, 726: 355, 727: 537, 728: 3, 729: 1494, 730: 1855, 731: 153, 732: 2387, 733: 1503, 734: 2335, 735: 1646, 736: 818, 737: 1581, 738: 520, 739: 1863, 740: 2016, 741: 1012, 742: 432, 743: 1602, 744: 637, 745: 2036, 746: 1431, 747: 2953, 748: 1760, 749: 1453, 750: 688, 751: 2042, 752: 374, 753: 1005, 754: 437, 755: 2720, 756: 2296, 757: 1839, 758: 429, 759: 1707, 760: 420, 761: 325, 762: 2152, 763: 870, 764: 1731, 765: 3146, 766: 2526, 767: 2670, 768: 2763, 769: 2000, 770: 3104, 771: 2729, 772: 123, 773: 1295, 774: 2329, 775: 2949, 776: 2951, 777: 1222, 778: 2944, 779: 2194, 780: 1127, 781: 733, 782: 3404, 783: 1408, 784: 592, 785: 2353, 786: 1608, 787: 349, 788: 780, 789: 3197, 790: 380, 791: 1676, 792: 292, 793: 2871, 794: 3105, 795: 1273, 796: 151, 797: 3210, 798: 339, 799: 1261, 800: 1171, 801: 1129, 802: 1189, 803: 2512, 804: 1300, 805: 2349, 806: 1090, 807: 1394, 808: 1975, 809: 1960, 810: 3039, 811: 1285, 812: 2348, 813: 2076, 814: 2312, 815: 3070, 816: 2872, 817: 2150, 818: 1246, 819: 3101, 820: 3422, 821: 2750, 822: 1321, 823: 1305, 824: 2852, 825: 2915, 826: 1291, 827: 3552, 828: 3449, 829: 2301, 830: 1663, 831: 2100, 832: 1124, 833: 2463, 834: 2989, 835: 2745, 836: 2286, 837: 2022, 838: 2369, 839: 2802, 840: 3524, 841: 1991, 842: 2134, 843: 2003, 844: 1173, 845: 1587, 846: 2111, 847: 3388, 848: 2089, 849: 680, 850: 2717, 851: 2751, 852: 2794, 853: 3169, 854: 2378, 855: 1289, 856: 1974, 857: 2411, 858: 2410, 859: 2948, 860: 1187, 861: 2553, 862: 2471, 863: 3017, 864: 1091, 865: 2241, 866: 2513, 867: 2402, 868: 2795, 869: 2321, 870: 1846, 871: 2421, 872: 999, 873: 555, 874: 272, 875: 3071, 876: 2160, 877: 2866, 878: 2065, 879: 529, 880: 2085, 881: 714, 882: 3204, 883: 731, 884: 862, 885: 1292, 886: 2467, 887: 1912, 888: 3097, 889: 1297, 890: 3011, 891: 2943, 892: 948, 893: 2104, 894: 596, 895: 628, 896: 441, 897: 1084, 898: 2014, 899: 2620, 900: 2159, 901: 892, 902: 2176, 903: 2687, 904: 3308, 905: 341, 906: 47, 907: 2797, 908: 2611, 909: 2018, 910: 2570, 911: 2427, 912: 2001, 913: 2401, 914: 1350, 915: 2377, 916: 1597, 917: 1673, 918: 551, 919: 840, 920: 2359, 921: 3350, 922: 2287, 923: 3060, 924: 188, 925: 3282, 926: 2118, 927: 1610, 928: 2874, 929: 3494, 930: 1029, 931: 1955, 932: 534, 933: 1907, 934: 1678, 935: 319, 936: 497, 937: 3044, 938: 428, 939: 1332, 940: 943, 941: 39, 942: 2071, 943: 3296, 944: 1921, 945: 1357, 946: 1968, 947: 3501, 948: 2157, 949: 3143, 950: 1013, 951: 1755, 952: 6, 953: 1611, 954: 1393, 955: 2362, 956: 2867, 957: 1082, 958: 2472, 959: 345, 960: 1355, 961: 2237, 962: 1395, 963: 1215, 964: 2048, 965: 3194, 966: 1263, 967: 3015, 968: 474, 969: 1730, 970: 3167, 971: 281, 972: 2109, 973: 2167, 974: 2155, 975: 1994, 976: 2524, 977: 2520, 978: 2877, 979: 3260, 980: 531, 981: 3546, 982: 558, 983: 1206, 984: 1010, 985: 1643, 986: 1546, 987: 728, 988: 342, 989: 3248, 990: 3157, 991: 910, 992: 1256, 993: 671, 994: 3448, 995: 1235, 996: 1238, 997: 1963, 998: 1275, 999: 8, 1000: 1162, 1001: 1073, 1002: 361, 1003: 741, 1004: 553, 1005: 1648, 1006: 610, 1007: 29, 1008: 1204, 1009: 2640, 1010: 2116, 1011: 2528, 1012: 316, 1013: 965, 1014: 1249, 1015: 928, 1016: 1371, 1017: 196, 1018: 2183, 1019: 931, 1020: 1344, 1021: 3230, 1022: 3033, 1023: 2403, 1024: 2615, 1025: 2094, 1026: 1333, 1027: 1407, 1028: 2747, 1029: 1917, 1030: 442, 1031: 1037, 1032: 173, 1033: 2178, 1034: 2034, 1035: 1982, 1036: 1343, 1037: 2181, 1038: 1732, 1039: 377, 1040: 519, 1041: 2450, 1042: 546, 1043: 2781, 1044: 905, 1045: 327, 1046: 2517, 1047: 2643, 1048: 2138, 1049: 1032, 1050: 2193, 1051: 3479, 1052: 2, 1053: 2143, 1054: 1967, 1055: 2161, 1056: 2239, 1057: 2243, 1058: 653, 1059: 1126, 1060: 2253, 1061: 3489, 1062: 837, 1063: 3439, 1064: 1172, 1065: 1566, 1066: 2409, 1067: 3584, 1068: 3590, 1069: 3591, 1070: 3529, 1071: 2959, 1072: 2912, 1073: 2829, 1074: 1792, 1075: 2894, 1076: 2334, 1077: 165, 1078: 170, 1079: 1438, 1080: 227, 1081: 1287, 1082: 861, 1083: 465, 1084: 1429, 1085: 1101, 1086: 1370, 1087: 2133, 1088: 2533, 1089: 2363, 1090: 2454, 1091: 2527, 1092: 2657, 1093: 2009, 1094: 3340, 1095: 2346, 1096: 426, 1097: 1334, 1098: 3555, 1099: 1924, 1100: 674, 1101: 10, 1102: 2082, 1103: 1644, 1104: 1353, 1105: 1266, 1106: 2961, 1107: 2724, 1108: 1347, 1109: 2668, 1110: 1128, 1111: 2787, 1112: 2148, 1113: 1970, 1114: 1330, 1115: 1389, 1116: 1972, 1117: 1995, 1118: 1971, 1119: 1983, 1120: 1986, 1121: 1969, 1122: 1326, 1123: 2465, 1124: 2122, 1125: 1988, 1126: 2460, 1127: 1985, 1128: 1978, 1129: 1976, 1130: 1980, 1131: 1987, 1132: 1981, 1133: 1979, 1134: 1977, 1135: 70, 1136: 1645, 1137: 1241, 1138: 3476, 1139: 2617, 1140: 1339, 1141: 3264, 1142: 1717, 1143: 2279, 1144: 724, 1145: 1771, 1146: 2328, 1147: 273, 1148: 532, 1149: 2898, 1150: 2389, 1151: 152, 1152: 1999, 1153: 2107, 1154: 177, 1155: 1342, 1156: 2125, 1157: 3259, 1158: 2443, 1159: 2801, 1160: 1569, 1161: 1059, 1162: 3358, 1163: 543, 1164: 587, 1165: 802, 1166: 105, 1167: 1888, 1168: 2297, 1169: 1722, 1170: 852, 1171: 417, 1172: 468, 1173: 222, 1174: 3046, 1175: 353, 1176: 2424, 1177: 2496, 1178: 266, 1179: 1541, 1180: 1629, 1181: 140, 1182: 1441, 1183: 1821, 1184: 1593, 1185: 691, 1186: 1457, 1187: 237, 1188: 550, 1189: 3269, 1190: 1894, 1191: 736, 1192: 289, 1193: 207, 1194: 447, 1195: 182, 1196: 168, 1197: 195, 1198: 2316, 1199: 3261, 1200: 179, 1201: 499, 1202: 3436, 1203: 1479, 1204: 64, 1205: 2774, 1206: 258, 1207: 15, 1208: 1556, 1209: 427, 1210: 1483, 1211: 1799, 1212: 218, 1213: 3331, 1214: 3405, 1215: 2406, 1216: 2991, 1217: 3107, 1218: 2058, 1219: 648, 1220: 3082, 1221: 3443, 1222: 490, 1223: 3256, 1224: 1047, 1225: 2115, 1226: 3441, 1227: 1552, 1228: 3444, 1229: 2278, 1230: 2006, 1231: 145, 1232: 2990, 1233: 494, 1234: 2476, 1235: 303, 1236: 1385, 1237: 3274, 1238: 1687, 1239: 552, 1240: 434, 1241: 786, 1242: 1488, 1243: 459, 1244: 1833, 1245: 1100, 1246: 1769, 1247: 1616, 1248: 479, 1249: 379, 1250: 2126, 1251: 425, 1252: 1099, 1253: 986, 1254: 535, 1255: 2069, 1256: 1639, 1257: 2474, 1258: 2736, 1259: 3129, 1260: 1226, 1261: 1216, 1262: 803, 1263: 2245, 1264: 2442, 1265: 1625, 1266: 1194, 1267: 3496, 1268: 2025, 1269: 1785, 1270: 71, 1271: 464, 1272: 1810, 1273: 3029, 1274: 571, 1275: 1872, 1276: 2624, 1277: 298, 1278: 476, 1279: 1809, 1280: 2331, 1281: 2114, 1282: 3535, 1283: 3412, 1284: 993, 1285: 485, 1286: 315, 1287: 3397, 1288: 172, 1289: 204, 1290: 44, 1291: 205, 1292: 1642, 1293: 2282, 1294: 1004, 1295: 160, 1296: 694, 1297: 1497, 1298: 1681, 1299: 1794, 1300: 502, 1301: 1626, 1302: 2081, 1303: 2807, 1304: 1465, 1305: 3174, 1306: 183, 1307: 1060, 1308: 125, 1309: 3481, 1310: 2097, 1311: 2268, 1312: 1057, 1313: 2330, 1314: 2077, 1315: 1805, 1316: 493, 1317: 1620, 1318: 1399, 1319: 22, 1320: 1958, 1321: 2697, 1322: 2764, 1323: 3247, 1324: 2561, 1325: 1598, 1326: 762, 1327: 81, 1328: 2294, 1329: 3099, 1330: 3079, 1331: 3112, 1332: 3507, 1333: 3398, 1334: 1017, 1335: 198, 1336: 3518, 1337: 991, 1338: 1177, 1339: 2112, 1340: 2137, 1341: 1633, 1342: 262, 1343: 1897, 1344: 3370, 1345: 1236, 1346: 1788, 1347: 366, 1348: 2144, 1349: 3100, 1350: 3576, 1351: 1286, 1352: 1619, 1353: 1476, 1354: 1427, 1355: 1916, 1356: 574, 1357: 261, 1358: 190, 1359: 241, 1360: 2470, 1361: 1135, 1362: 2419, 1363: 269, 1364: 1650, 1365: 2941, 1366: 1298, 1367: 431, 1368: 1271, 1369: 340, 1370: 2420, 1371: 3251, 1372: 1092, 1373: 1019, 1374: 1858, 1375: 1405, 1376: 3014, 1377: 3281, 1378: 988, 1379: 2231, 1380: 616, 1381: 164, 1382: 2090, 1383: 3395, 1384: 1454, 1385: 1031, 1386: 1049, 1387: 187, 1388: 16, 1389: 2247, 1390: 1518, 1391: 1683, 1392: 1516, 1393: 1913, 1394: 492, 1395: 808, 1396: 1459, 1397: 1449, 1398: 2779, 1399: 2425, 1400: 2262, 1401: 2168, 1402: 1605, 1403: 2518, 1404: 2385, 1405: 3034, 1406: 3272, 1407: 1542, 1408: 1447, 1409: 2173, 1410: 450, 1411: 317, 1412: 410, 1413: 2625, 1414: 700, 1415: 3102, 1416: 3173, 1417: 1365, 1418: 2626, 1419: 2725, 1420: 488, 1421: 707, 1422: 1783, 1423: 748, 1424: 435, 1425: 3032, 1426: 849, 1427: 1306, 1428: 1762, 1429: 2530, 1430: 3024, 1431: 2532, 1432: 3572, 1433: 692, 1434: 2531, 1435: 611, 1436: 3573, 1437: 3401, 1438: 880, 1439: 2091, 1440: 1862, 1441: 3574, 1442: 1588, 1443: 3392, 1444: 2862, 1445: 59, 1446: 2921, 1447: 2032, 1448: 2918, 1449: 3360, 1450: 2371, 1451: 2352, 1452: 1175, 1453: 2203, 1454: 1069, 1455: 3406, 1456: 799, 1457: 524, 1458: 1562, 1459: 381, 1460: 2416, 1461: 3385, 1462: 2752, 1463: 36, 1464: 2860, 1465: 2880, 1466: 112, 1467: 1615, 1468: 577, 1469: 761, 1470: 2322, 1471: 836, 1472: 1744, 1473: 2153, 1474: 2645, 1475: 2761, 1476: 141, 1477: 2748, 1478: 2708, 1479: 3301, 1480: 3512, 1481: 3519, 1482: 954, 1483: 932, 1484: 3341, 1485: 2835, 1486: 3020, 1487: 288, 1488: 996, 1489: 3430, 1490: 95, 1491: 208, 1492: 1382, 1493: 1499, 1494: 60, 1495: 2522, 1496: 2883, 1497: 2711, 1498: 3093, 1499: 1283, 1500: 1209, 1501: 1008, 1502: 2922, 1503: 964, 1504: 368, 1505: 1378, 1506: 2478, 1507: 416, 1508: 3000, 1509: 2993, 1510: 163, 1511: 2344, 1512: 1772, 1513: 2367, 1514: 2475, 1515: 2735, 1516: 2616, 1517: 2468, 1518: 462, 1519: 1606, 1520: 1262, 1521: 2970, 1522: 314, 1523: 3168, 1524: 3153, 1525: 2135, 1526: 2822, 1527: 158, 1528: 1085, 1529: 2405, 1530: 2088, 1531: 2043, 1532: 2950, 1533: 595, 1534: 1526, 1535: 1033, 1536: 1025, 1537: 2936, 1538: 2015, 1539: 586, 1540: 2098, 1541: 1016, 1542: 3503, 1543: 2204, 1544: 3419, 1545: 2511, 1546: 2917, 1547: 2110, 1548: 1791, 1549: 2023, 1550: 3083, 1551: 3384, 1552: 1147, 1553: 2937, 1554: 2248, 1555: 495, 1556: 946, 1557: 2996, 1558: 1948, 1559: 2721, 1560: 2907, 1561: 978, 1562: 2057, 1563: 936, 1564: 1035, 1565: 52, 1566: 2283, 1567: 382, 1568: 481, 1569: 3061, 1570: 2618, 1571: 248, 1572: 2836, 1573: 2766, 1574: 489, 1575: 2718, 1576: 413, 1577: 3244, 1578: 2844, 1579: 2704, 1580: 937, 1581: 3118, 1582: 828, 1583: 1996, 1584: 953, 1585: 2383, 1586: 639, 1587: 3491, 1588: 1845, 1589: 2290, 1590: 2696, 1591: 2136, 1592: 156, 1593: 3451, 1594: 2261, 1595: 838, 1596: 2145, 1597: 2295, 1598: 3087, 1599: 1485, 1600: 3506, 1601: 3497, 1602: 2539, 1603: 2870, 1604: 2567, 1605: 2356, 1606: 3120, 1607: 371, 1608: 2558, 1609: 2469, 1610: 2780, 1611: 2372, 1612: 2072, 1613: 2793, 1614: 1440, 1615: 3045, 1616: 2796, 1617: 2374, 1618: 2375, 1619: 2413, 1620: 1474, 1621: 1461, 1622: 3343, 1623: 2891, 1624: 305, 1625: 2259, 1626: 2473, 1627: 19, 1628: 1381, 1629: 419, 1630: 3074, 1631: 2621, 1632: 2398, 1633: 1892, 1634: 73, 1635: 1545, 1636: 1997, 1637: 1873, 1638: 1693, 1639: 2154, 1640: 832, 1641: 114, 1642: 225, 1643: 2269, 1644: 89, 1645: 233, 1646: 1835, 1647: 1290, 1648: 2340, 1649: 3073, 1650: 1666, 1651: 1043, 1652: 2292, 1653: 565, 1654: 842, 1655: 2784, 1656: 879, 1657: 742, 1658: 1130, 1659: 2554, 1660: 2782, 1661: 1341, 1662: 328, 1663: 330, 1664: 1327, 1665: 2519, 1666: 2459, 1667: 220, 1668: 1346, 1669: 2121, 1670: 2149, 1671: 1388, 1672: 2451, 1673: 2338, 1674: 2113, 1675: 2163, 1676: 2119, 1677: 2430, 1678: 3036, 1679: 2370, 1680: 3345, 1681: 2537, 1682: 2851, 1683: 3062, 1684: 2273, 1685: 517, 1686: 3165, 1687: 1752, 1688: 2741, 1689: 20, 1690: 2276, 1691: 3442, 1692: 2506, 1693: 351, 1694: 46, 1695: 362, 1696: 2120, 1697: 2327, 1698: 2789, 1699: 2655, 1700: 1984, 1701: 2902, 1702: 1329, 1703: 2092, 1704: 2005, 1705: 2252, 1706: 2139, 1707: 2033, 1708: 2123, 1709: 1881, 1710: 1030, 1711: 1190, 1712: 678, 1713: 1635, 1714: 1095, 1715: 412, 1716: 1411, 1717: 1302, 1718: 3371, 1719: 1935, 1720: 2577, 1721: 1651, 1722: 1507, 1723: 2166, 1724: 1178, 1725: 2162, 1726: 3389, 1727: 2373, 1728: 501, 1729: 3317, 1730: 3262, 1731: 3538, 1732: 1227, 1733: 2792, 1734: 3206, 1735: 85, 1736: 2284, 1737: 2488, 1738: 662, 1739: 2551, 1740: 229, 1741: 2803, 1742: 259, 1743: 1184, 1744: 1425, 1745: 180, 1746: 104, 1747: 542, 1748: 719, 1749: 1410, 1750: 2423, 1751: 2066, 1752: 746, 1753: 2940, 1754: 1009, 1755: 2550, 1756: 2788, 1757: 2457, 1758: 386, 1759: 2525, 1760: 304, 1761: 3238, 1762: 3040, 1763: 1218, 1764: 3452, 1765: 69, 1766: 88, 1767: 433, 1768: 1390, 1769: 513, 1770: 2587, 1771: 3186, 1772: 376, 1773: 387, 1774: 886, 1775: 1672, 1776: 2815, 1777: 2404, 1778: 3225, 1779: 3440, 1780: 3416, 1781: 80, 1782: 668, 1783: 363, 1784: 2041, 1785: 2188, 1786: 2861, 1787: 3513, 1788: 1361, 1789: 3338, 1790: 3004, 1791: 3588, 1792: 2885, 1793: 3374, 1794: 55, 1795: 3459, 1796: 3534, 1797: 3502, 1798: 3500, 1799: 1224, 1800: 1202, 1801: 2397, 1802: 3138, 1803: 2738, 1804: 2749, 1805: 2417, 1806: 2418, 1807: 2942, 1808: 1251, 1809: 3076, 1810: 154, 1811: 1362, 1812: 2925, 1813: 3135, 1814: 3283, 1815: 3420, 1816: 2932, 1817: 2535, 1818: 3428, 1819: 2051, 1820: 2394, 1821: 3536, 1822: 3484, 1823: 1547, 1824: 1487, 1825: 3250, 1826: 2250, 1827: 3477, 1828: 1895, 1829: 3478, 1830: 3480, 1831: 3466, 1832: 2240, 1833: 1583, 1834: 1848, 1835: 1920, 1836: 1750, 1837: 491, 1838: 2432, 1839: 1515, 1840: 159, 1841: 1699, 1842: 2437, 1843: 507, 1844: 929, 1845: 506, 1846: 14, 1847: 3366, 1848: 1103, 1849: 3066, 1850: 2232, 1851: 2800, 1852: 1856, 1853: 161, 1854: 2078, 1855: 1279, 1856: 1401, 1857: 144, 1858: 518, 1859: 3284, 1860: 647, 1861: 2440, 1862: 848, 1863: 1186, 1864: 2399, 1865: 3189, 1866: 2170, 1867: 1359, 1868: 2665, 1869: 423, 1870: 2314, 1871: 1667, 1872: 2928, 1873: 1422, 1874: 2306, 1875: 2445, 1876: 2180, 1877: 743, 1878: 533, 1879: 445, 1880: 13, 1881: 2505, 1882: 801, 1883: 365, 1884: 1627, 1885: 2429, 1886: 540, 1887: 575, 1888: 2498, 1889: 370, 1890: 1417, 1891: 2052, 1892: 1665, 1893: 2977, 1894: 2354, 1895: 3387, 1896: 415, 1897: 191, 1898: 2521, 1899: 87, 1900: 2974, 1901: 2566, 1902: 1445, 1903: 3054, 1904: 747, 1905: 2386, 1906: 2612, 1907: 1942, 1908: 3347, 1909: 973, 1910: 917, 1911: 3163, 1912: 1946, 1913: 82, 1914: 2969, 1915: 444, 1916: 3327, 1917: 3182, 1918: 2846, 1919: 2905, 1920: 3134, 1921: 3091, 1922: 3096, 1923: 670, 1924: 2935, 1925: 2731, 1926: 681, 1927: 1927, 1928: 1131, 1929: 2210, 1930: 2202, 1931: 934, 1932: 976, 1933: 897, 1934: 3304, 1935: 1277, 1936: 2068, 1937: 1064, 1938: 2929, 1939: 2184, 1940: 2212, 1941: 941, 1942: 3047, 1943: 1840, 1944: 970, 1945: 2040, 1946: 2379, 1947: 3310, 1948: 12, 1949: 3368, 1950: 1609, 1951: 3475, 1952: 982, 1953: 1245, 1954: 1933, 1955: 944, 1956: 3110, 1957: 2495, 1958: 3585, 1959: 2633, 1960: 171, 1961: 3249, 1962: 2060, 1963: 309, 1964: 581, 1965: 1932, 1966: 277, 1967: 147, 1968: 564, 1969: 1589, 1970: 1034, 1971: 2927, 1972: 41, 1973: 523, 1974: 1660, 1975: 538, 1976: 2171, 1977: 846, 1978: 645, 1979: 1624, 1980: 322, 1981: 57, 1982: 271, 1983: 1836, 1984: 35, 1985: 1841, 1986: 1051, 1987: 1816, 1988: 408, 1989: 580, 1990: 94, 1991: 1943, 1992: 632, 1993: 718, 1994: 3115, 1995: 63, 1996: 2967, 1997: 3557, 1998: 3010, 1999: 1759, 2000: 2351, 2001: 2310, 2002: 1053, 2003: 2345, 2004: 621, 2005: 1023, 2006: 1844, 2007: 2820, 2008: 97, 2009: 3078, 2010: 1701, 2011: 2192, 2012: 72, 2013: 1829, 2014: 3211, 2015: 2976, 2016: 1596, 2017: 3158, 2018: 2479, 2019: 3298, 2020: 2285, 2021: 2590, 2022: 3188, 2023: 2661, 2024: 2422, 2025: 2884, 2026: 2106, 2027: 383, 2028: 1472, 2029: 2956, 2030: 1804, 2031: 521, 2032: 3409, 2033: 3266, 2034: 1523, 2035: 1743, 2036: 1310, 2037: 2689, 2038: 77, 2039: 297, 2040: 3178, 2041: 3335, 2042: 2265, 2043: 2141, 2044: 101, 2045: 1257, 2046: 663, 2047: 2500, 2048: 2249, 2049: 2447, 2050: 3243, 2051: 3254, 2052: 3544, 2053: 166, 2054: 65, 2055: 2381, 2056: 2380, 2057: 3391, 2058: 3495, 2059: 1112, 2060: 893, 2061: 1563, 2062: 175, 2063: 3437, 2064: 2435, 2065: 697, 2066: 2037, 2067: 2806, 2068: 1866, 2069: 925, 2070: 2101, 2071: 2267, 2072: 1464, 2073: 451, 2074: 2583, 2075: 335, 2076: 1754, 2077: 257, 2078: 360, 2079: 1498, 2080: 2062, 2081: 2497, 2082: 1463, 2083: 804, 2084: 1475, 2085: 2597, 2086: 270, 2087: 276, 2088: 2586, 2089: 1675, 2090: 482, 2091: 422, 2092: 2320, 2093: 554, 2094: 1003, 2095: 2326, 2096: 990, 2097: 132, 2098: 79, 2099: 640, 2100: 3516, 2101: 3600, 2102: 3564, 2103: 3602, 2104: 3604, 2105: 3520, 2106: 3605, 2107: 3608, 2108: 3610, 2109: 3457, 2110: 2156, 2111: 3200, 2112: 1937, 2113: 1414, 2114: 635, 2115: 2436, 2116: 516, 2117: 1021, 2118: 1113, 2119: 1621, 2120: 1688, 2121: 1919, 2122: 1018, 2123: 3355, 2124: 1161, 2125: 3399, 2126: 1205, 2127: 239, 2128: 2924, 2129: 2275, 2130: 704, 2131: 393, 2132: 3213, 2133: 2084, 2134: 1739, 2135: 1973, 2136: 126, 2137: 3433, 2138: 3434, 2139: 3258, 2140: 2733, 2141: 1167, 2142: 203, 2143: 234, 2144: 193, 2145: 3390, 2146: 3349, 2147: 76, 2148: 3614, 2149: 1746, 2150: 1936, 2151: 3587, 2152: 2073, 2153: 2669, 2154: 3525, 2155: 725, 2156: 3217, 2157: 2647, 2158: 3486, 2159: 2667, 2160: 3375, 2161: 242, 2162: 1925, 2163: 2939, 2164: 1684, 2165: 1468, 2166: 613, 2167: 84, 2168: 206, 2169: 1255, 2170: 2636, 2171: 2579, 2172: 511, 2173: 559, 2174: 2293, 2175: 556, 2176: 2536, 2177: 2649, 2178: 103, 2179: 2663, 2180: 332, 2181: 3488, 2182: 2656, 2183: 2637, 2184: 2638, 2185: 2634, 2186: 2646, 2187: 2814, 2188: 2652, 2189: 2654, 2190: 1337, 2191: 2651, 2192: 841, 2193: 2568, 2194: 2260, 2195: 3007, 2196: 3271, 2197: 1105, 2198: 3069, 2199: 1421, 2200: 2988, 2201: 835, 2202: 2573, 2203: 2493, 2204: 3565, 2205: 612, 2206: 1456, 2207: 122, 2208: 1599, 2209: 2582, 2210: 2368, 2211: 2783, 2212: 1331, 2213: 2740, 2214: 1655, 2215: 2868, 2216: 2790, 2217: 606, 2218: 3598, 2219: 3606, 2220: 3559, 2221: 3415, 2222: 3311, 2223: 3456, 2224: 1046, 2225: 1406, 2226: 214, 2227: 334, 2228: 1116, 2229: 1901, 2230: 3142, 2231: 1875, 2232: 2365, 2233: 2029, 2234: 2865, 2235: 1535, 2236: 414, 2237: 569, 2238: 3372, 2239: 2540, 2240: 547, 2241: 1067, 2242: 3324, 2243: 3103, 2244: 291, 2245: 3593, 2246: 421, 2247: 2453, 2248: 3145, 2249: 3038, 2250: 3533, 2251: 615, 2252: 3532, 2253: 240, 2254: 956, 2255: 2653, 2256: 2131, 2257: 2983, 2258: 1076, 2259: 2650, 2260: 927, 2261: 962, 2262: 775, 2263: 2847, 2264: 1160, 2265: 347, 2266: 2682, 2267: 1024, 2268: 2753, 2269: 3275, 2270: 2195, 2271: 456, 2272: 1511, 2273: 1446, 2274: 1733, 2275: 3106, 2276: 3328, 2277: 2246, 2278: 3221, 2279: 3571, 2280: 3570, 2281: 389, 2282: 1324, 2283: 2315, 2284: 2516, 2285: 352, 2286: 324, 2287: 1612, 2288: 1904, 2289: 2007, 2290: 570, 2291: 3049, 2292: 452, 2293: 2236, 2294: 829, 2295: 1613, 2296: 477, 2297: 268, 2298: 409, 2299: 215, 2300: 806, 2301: 2639, 2302: 1670, 2303: 1753, 2304: 3339, 2305: 2893, 2306: 2607, 2307: 3465, 2308: 2888, 2309: 184, 2310: 2978, 2311: 881, 2312: 1854, 2313: 135, 2314: 1000, 2315: 813, 2316: 312, 2317: 278, 2318: 3031, 2319: 833, 2320: 473, 2321: 472, 2322: 438, 2323: 2317, 2324: 2027, 2325: 275, 2326: 1604, 2327: 1550, 2328: 2992, 2329: 3013, 2330: 1998, 2331: 2903, 2332: 2878, 2333: 3021, 2334: 3490, 2335: 1989, 2336: 3487, 2337: 1068, 2338: 2187, 2339: 3316, 2340: 3445, 2341: 2242, 2342: 3577, 2343: 3510, 2344: 3041, 2345: 458, 2346: 3431, 2347: 3432, 2348: 2896, 2349: 487, 2350: 2055, 2351: 3427, 2352: 2458, 2353: 809, 2354: 2606, 2355: 3077, 2356: 121, 2357: 3402, 2358: 1865, 2359: 1123, 2360: 2659, 2361: 2182, 2362: 2017, 2363: 1571, 2364: 2099, 2365: 3199, 2366: 3414, 2367: 2263, 2368: 3235, 2369: 116, 2370: 2585, 2371: 709, 2372: 3393, 2373: 2151, 2374: 1647, 2375: 798, 2376: 2594, 2377: 2507, 2378: 781, 2379: 2281, 2380: 1352, 2381: 869, 2382: 210, 2383: 650, 2384: 2272, 2385: 9, 2386: 467, 2387: 189, 2388: 3425, 2389: 1703, 2390: 1900, 2391: 1812, 2392: 1585, 2393: 525, 2394: 1857, 2395: 505, 2396: 267, 2397: 2610, 2398: 2798, 2399: 449, 2400: 984, 2401: 3394, 2402: 2879, 2403: 711, 2404: 217, 2405: 3042, 2406: 1692, 2407: 2483, 2408: 1432, 2409: 3268, 2410: 2714, 2411: 1450, 2412: 2562, 2413: 2856, 2414: 2744, 2415: 1640, 2416: 957, 2417: 1152, 2418: 181, 2419: 1495, 2420: 1720, 2421: 667, 2422: 2817, 2423: 839, 2424: 2899, 2425: 1011, 2426: 2050, 2427: 2142, 2428: 631, 2429: 1654, 2430: 2079, 2431: 2035, 2432: 960, 2433: 2205, 2434: 2589, 2435: 255, 2436: 2549, 2437: 2952, 2438: 3423, 2439: 2264, 2440: 3141, 2441: 2515, 2442: 2982, 2443: 2452, 2444: 1992, 2445: 2462, 2446: 1993, 2447: 891, 2448: 3367, 2449: 2816, 2450: 627, 2451: 1929, 2452: 2938, 2453: 1477, 2454: 1460, 2455: 2962, 2456: 3292, 2457: 2773, 2458: 3622, 2459: 769, 2460: 1758, 2461: 484, 2462: 2045, 2463: 888, 2464: 3144, 2465: 2695, 2466: 3492, 2467: 238, 2468: 3578, 2469: 3509, 2470: 3286, 2471: 96, 2472: 3137, 2473: 1015, 2474: 1317, 2475: 1398, 2476: 2382, 2477: 1322, 2478: 2892, 2479: 2255, 2480: 2095, 2481: 3043, 2482: 807, 2483: 987, 2484: 1600, 2485: 3232, 2486: 2044, 2487: 1837, 2488: 710, 2489: 470, 2490: 102, 2491: 321, 2492: 1695, 2493: 3556, 2494: 3012, 2495: 1896, 2496: 3417, 2497: 2776, 2498: 2630, 2499: 1428, 2500: 3620, 2501: 2177, 2502: 2523, 2503: 1363, 2504: 1496, 2505: 3299, 2506: 1631, 2507: 1669, 2508: 302, 2509: 131, 2510: 1482, 2511: 3287, 2512: 3483, 2513: 544, 2514: 548, 2515: 2889, 2516: 1898, 2517: 201, 2518: 463, 2519: 2504, 2520: 3403, 2521: 3579, 2522: 3554, 2523: 3617, 2524: 3618, 2525: 3596, 2526: 3580, 2527: 3537, 2528: 3597, 2529: 3619, 2530: 3326, 2531: 2169, 2532: 1826, 2533: 1677, 2534: 2350, 2535: 2681, 2536: 2767, 2537: 2691, 2538: 3048, 2539: 2786, 2540: 2257, 2541: 2799, 2542: 2756, 2543: 3223, 2544: 83, 2545: 1484, 2546: 2853, 2547: 1860, 2548: 3214, 2549: 536, 2550: 3109, 2551: 23, 2552: 1906, 2553: 3218, 2554: 2965, 2555: 3613, 2556: 37, 2557: 1564, 2558: 638, 2559: 74, 2560: 301, 2561: 469, 2562: 1632, 2563: 779, 2564: 2165, 2565: 685, 2566: 2548, 2567: 1668, 2568: 2426, 2569: 3063, 2570: 3599, 2571: 61, 2572: 436, 2573: 1658, 2574: 18, 2575: 209, 2576: 93, 2577: 2809, 2578: 567, 2579: 2727, 2580: 1154, 2581: 854, 2582: 850, 2583: 669, 2584: 1351, 2585: 263, 2586: 3531, 2587: 2849, 2588: 1050, 2589: 563, 2590: 715, 2591: 343, 2592: 3539, 2593: 2305, 2594: 155, 2595: 3562, 2596: 782, 2597: 3586, 2598: 390, 2599: 3313, 2600: 211, 2601: 1404, 2602: 254, 2603: 78, 2604: 882, 2605: 424, 2606: 1044, 2607: 346, 2608: 1473, 2609: 2482, 2610: 3306, 2611: 2596, 2612: 528, 2613: 3309, 2614: 2196, 2615: 1869, 2616: 3563, 2617: 1867, 2618: 2307, 2619: 1853, 2620: 2128, 2621: 2325, 2622: 1592, 2623: 486, 2624: 656, 2625: 1679, 2626: 1439, 2627: 867, 2628: 453, 2629: 174, 2630: 2552, 2631: 810, 2632: 1798, 2633: 118, 2634: 331, 2635: 2190, 2636: 3127, 2637: 2449, 2638: 2876, 2639: 885, 2640: 2280, 2641: 716, 2642: 478, 2643: 1436, 2644: 626, 2645: 243, 2646: 3511, 2647: 2494, 2648: 618, 2649: 1661, 2650: 1686, 2651: 391, 2652: 998, 2653: 1662, 2654: 1824, 2655: 732, 2656: 2812, 2657: 1532, 2658: 283, 2659: 1601, 2660: 2271, 2661: 510, 2662: 2201, 2663: 100, 2664: 3553, 2665: 3566, 2666: 1870, 2667: 443, 2668: 3357, 2669: 3319, 2670: 3185, 2671: 1910, 2672: 2810, 2673: 2047, 2674: 336, 2675: 3639, 2676: 3634, 2677: 764, 2678: 197, 2679: 503, 2680: 633, 2681: 68, 2682: 1328, 2683: 1325, 2684: 2461, 2685: 1191, 2686: 294, 2687: 2341, 2688: 1767, 2689: 498, 2690: 703, 2691: 354, 2692: 167, 2693: 522, 2694: 27, 2695: 2400, 2696: 2256, 2697: 3344, 2698: 3026, 2699: 3638, 2700: 3633, 2701: 3635, 2702: 2614, 2703: 760, 2704: 1323, 2705: 202, 2706: 896, 2707: 2514, 2708: 1335, 2709: 2347, 2710: 2818, 2711: 3464, 2712: 1232, 2713: 2026, 2714: 3624, 2715: 2031, 2716: 3177, 2717: 3643, 2718: 3628, 2719: 3514, 2720: 1038, 2721: 3515, 2722: 3446, 2723: 3027, 2724: 3629, 2725: 3645, 2726: 1119, 2727: 483, 2728: 3594, 2729: 1525, 2730: 1756, 2731: 1990, 2732: 2754, 2733: 3453, 2734: 2049, 2735: 3181, 2736: 3470, 2737: 3636, 2738: 3644, 2739: 1822, 2740: 1426, 2741: 1164, 2742: 1902, 2743: 3240, 2744: 3623, 2745: 2323, 2746: 1349, 2747: 1336, 2748: 3241, 2749: 2833, 2750: 3117, 2751: 1151, 2752: 2008, 2753: 1087, 2754: 2886, 2755: 2737, 2756: 3474, 2757: 1180, 2758: 847, 2759: 997, 2760: 2679, 2761: 3122, 2762: 1928, 2763: 2981, 2764: 2984, 2765: 1849, 2766: 876, 2767: 1117, 2768: 1671, 2769: 1508, 2770: 1114, 2771: 1501, 2772: 53, 2773: 313, 2774: 3612, 2775: 2834, 2776: 38, 2777: 3190, 2778: 2499, 2779: 3668, 2780: 3615, 2781: 2674, 2782: 3684, 2783: 3671, 2784: 3683, 2785: 274, 2786: 117, 2787: 228, 2788: 99, 2789: 75, 2790: 3712, 2791: 3676, 2792: 128, 2793: 3704, 2794: 3702, 2795: 2446, 2796: 3649, 2797: 3697, 2798: 3706, 2799: 3681, 2800: 3654, 2801: 3686, 2802: 3708, 2803: 3703, 2804: 3688, 2805: 3685, 2806: 3698, 2807: 3700, 2808: 2342, 2809: 392, 2810: 3682, 2811: 3701, 2812: 3637, 2813: 3690, 2814: 3689, 2815: 2593, 2816: 583, 2817: 3699, 2818: 3707, 2819: 3675, 2820: 3693, 2821: 2843, 2822: 3320, 2823: 2897, 2824: 1889, 2825: 3711, 2826: 2086, 2827: 1121, 2828: 1169, 2829: 1313, 2830: 3567, 2831: 3581, 2832: 1770, 2833: 1782, 2834: 359, 2835: 1514, 2836: 3660, 2837: 3627, 2838: 3653, 2839: 3705, 2840: 3669, 2841: 3207, 2842: 753, 2843: 1415, 2844: 3632, 2845: 3713, 2846: 3678, 2847: 2831, 2848: 2945, 2849: 3677, 2850: 568, 2851: 3672, 2852: 369, 2853: 602, 2854: 219, 2855: 137, 2856: 136, 2857: 2103, 2858: 56, 2859: 146, 2860: 54, 2861: 2559, 2862: 90, 2863: 603, 2864: 877, 2865: 566, 2866: 771, 2867: 1749, 2868: 3473, 2869: 617, 2870: 406, 2871: 1420, 2872: 3680, 2873: 3674, 2874: 113, 2875: 3661, 2876: 3673, 2877: 2904, 2878: 3092, 2879: 2215, 2880: 1054, 2881: 3691, 2882: 250, 2883: 3055, 2884: 3679, 2885: 1656, 2886: 3692, 2887: 2339, 2888: 3715, 2889: 385, 2890: 2211, 2891: 974, 2892: 3139, 2893: 958, 2894: 3171, 2895: 755, 2896: 3215, 2897: 3670, 2898: 3710, 2899: 3740, 2900: 3730, 2901: 3724, 2902: 3731, 2903: 3732, 2904: 3716, 2905: 3733, 2906: 3734, 2907: 3735, 2908: 3729, 2909: 3738, 2910: 2209, 2911: 1903, 2912: 2227, 2913: 2221, 2914: 2185, 2915: 1728, 2916: 264, 2917: 1533, 2918: 3742, 2919: 3723, 2920: 3664, 2921: 3663, 2922: 3709, 2923: 106, 2924: 1696, 2925: 824, 2926: 3728, 2927: 619, 2928: 40, 2929: 2994, 2930: 3741, 2931: 1922, 2932: 1458, 2933: 3658, 2934: 384, 2935: 1423, 2936: 2627, 2937: 831, 2938: 3400, 2939: 2785, 2940: 3736, 2941: 1814, 2942: 2244, 2943: 1486, 2944: 375, 2945: 2755, 2946: 1715, 2947: 992, 2948: 2074, 2949: 2632, 2950: 1489, 2951: 3454, 2952: 1725, 2953: 1551, 2954: 3694, 2955: 3646, 2956: 609, 2957: 244, 2958: 722, 2959: 3714, 2960: 3665, 2961: 3662, 2962: 1063, 2963: 3648, 2964: 3659, 2965: 3696, 2966: 939, 2967: 3727, 2968: 3626, 2969: 1437, 2970: 811, 2971: 2778, 2972: 3725, 2973: 754, 2974: 2477, 2975: 1887, 2976: 411, 2977: 1055, 2978: 2191, 2979: 3717, 2980: 3667, 2981: 1534, 2982: 1817, 2983: 705, 2984: 3655, 2985: 1531, 2986: 3744, 2987: 2850, 2988: 2207, 2989: 2197, 2990: 2481, 2991: 1455, 2992: 1071, 2993: 1549, 2994: 2933, 2995: 3726, 2996: 2813, 2997: 3739, 2998: 1893, 2999: 2298, 3000: 1859, 3001: 1509, 3002: 3540, 3003: 3657, 3004: 3640, 3005: 863, 3006: 3719, 3007: 2837, 3008: 1879, 3009: 3124, 3010: 3302, 3011: 1567, 3012: 793, 3013: 3745, 3014: 1502, 3015: 3652, 3016: 119, 3017: 3754, 3018: 3763, 3019: 3746, 3020: 496, 3021: 310, 3022: 2824, 3023: 1864, 3024: 3751, 3025: 3303, 3026: 3753, 3027: 3764, 3028: 1170, 3029: 3782, 3030: 3781, 3031: 3771, 3032: 3766, 3033: 3773, 3034: 149, 3035: 3760, 3036: 665, 3037: 3770, 3038: 3758, 3039: 2855, 3040: 3743, 3041: 3769, 3042: 3183, 3043: 2158, 3044: 1793, 3045: 1153, 3046: 3642, 3047: 3737, 3048: 3025, 3049: 3768, 3050: 2534, 3051: 2332, 3052: 3780, 3053: 394, 3054: 2486, 3055: 1807, 3056: 2175, 3057: 2509, 3058: 3116, 3059: 600, 3060: 3774, 3061: 3463, 3062: 2864, 3063: 3752, 3064: 3791, 3065: 3784, 3066: 2914, 3067: 3788, 3068: 3767, 3069: 3695, 3070: 1538, 3071: 3789, 3072: 3755, 3073: 3792, 3074: 2200, 3075: 526, 3076: 1144, 3077: 3239, 3078: 1026, 3079: 1899, 3080: 2056, 3081: 1384, 3082: 3720, 3083: 1369, 3084: 3333, 3085: 698, 3086: 3718, 3087: 3765, 3088: 3747, 3089: 3775, 3090: 3778, 3091: 2179, 3092: 2964, 3093: 864, 3094: 3569, 3095: 1574, 3096: 430, 3097: 3064, 3098: 251, 3099: 2963, 3100: 598, 3101: 3783, 3102: 1718, 3103: 3759, 3104: 2979, 3105: 1490, 3106: 1311, 3107: 3050, 3108: 659, 3109: 1565, 3110: 2219, 3111: 2775, 3112: 3002, 3113: 3776, 3114: 178, 3115: 1002, 3116: 1850, 3117: 1493, 3118: 3058, 3119: 49, 3120: 3276, 3121: 3785, 3122: 3346, 3123: 2854, 3124: 3757, 3125: 3761, 3126: 2675, 3127: 3192, 3128: 2304, 3129: 1880, 3130: 2931, 3131: 3222, 3132: 2658, 3133: 561, 3134: 2544, 3135: 1926, 3136: 1539, 3137: 3180, 3138: 1575, 3139: 560, 3140: 2930, 3141: 1433, 3142: 200, 3143: 1741, 3144: 664, 3145: 2569, 3146: 966, 3147: 1890, 3148: 3721, 3149: 1825, 3150: 279, 3151: 2234, 3152: 2164, 3153: 1572, 3154: 1174, 3155: 1312, 3156: 1181, 3157: 2444, 3158: 726, 3159: 124, 3160: 3812, 3161: 3806, 3162: 3814, 3163: 3809, 3164: 3811, 3165: 3819, 3166: 108, 3167: 3813, 3168: 3802, 3169: 3799, 3170: 3121, 3171: 3801, 3172: 3810, 3173: 1878, 3174: 3807, 3175: 2873, 3176: 3804, 3177: 3818, 3178: 1163, 3179: 3817, 3180: 3793, 3181: 1520, 3182: 3790, 3183: 3787, 3184: 1664, 3185: 3795, 3186: 2129, 3187: 1519, 3188: 860, 3189: 3749, 3190: 2839, 3191: 287, 3192: 844, 3193: 2063, 3194: 3166, 3195: 3003, 3196: 3803, 3197: 3616, 3198: 3798, 3199: 751, 3200: 3318, 3201: 3808, 3202: 397, 3203: 2189, 3204: 3794, 3205: 3805, 3206: 3797, 3207: 1570, 3208: 3841, 3209: 3786, 3210: 3832, 3211: 3834, 3212: 3835, 3213: 3836, 3214: 3844, 3215: 3840, 3216: 3846, 3217: 1659, 3218: 3849, 3219: 2666, 3220: 3845, 3221: 3831, 3222: 3822, 3223: 3796, 3224: 3777, 3225: 2466, 3226: 3843, 3227: 3821, 3228: 3837, 3229: 3839, 3230: 3827, 3231: 3820, 3232: 2760, 3233: 2635, 3234: 2777, 3235: 3816, 3236: 3641, 3237: 3847, 3238: 3838, 3239: 2923, 3240: 3351, 3241: 3833, 3242: 3848, 3243: 2743, 3244: 1138, 3245: 1168, 3246: 1529, 3247: 3825, 3248: 874, 3249: 3850, 3250: 1811, 3251: 972, 3252: 2913, 3253: 1780, 3254: 767, 3255: 2487, 3256: 3611, 3257: 1891, 3258: 2608, 3259: 1522, 3260: 3826, 3261: 3161, 3262: 2998, 3263: 3293, 3264: 652, 3265: 148, 3266: 3824, 3267: 3864, 3268: 3859, 3269: 3861, 3270: 295, 3271: 3056, 3272: 3823, 3273: 3625, 3274: 980, 3275: 2934, 3276: 3866, 3277: 2673, 3278: 3140, 3279: 3592, 3280: 460, 3281: 1685, 3282: 3869, 3283: 3873, 3284: 3858, 3285: 3877, 3286: 3410, 3287: 2388, 3288: 3868, 3289: 3872, 3290: 2830, 3291: 1383, 3292: 3870, 3293: 1098, 3294: 3871, 3295: 3860, 3296: 2705, 3297: 3875, 3298: 3666, 3299: 2415, 3300: 3857, 3301: 2557, 3302: 3523, 3303: 3863, 3304: 815, 3305: 3830, 3306: 3884, 3307: 3852, 3308: 3880, 3309: 2233, 3310: 3874, 3311: 3878, 3312: 3886, 3313: 129, 3314: 2602, 3315: 3879, 3316: 3882, 3317: 630, 3318: 3001, 3319: 3851, 3320: 2911, 3321: 245, 3322: 3855, 3323: 3867, 3324: 3865, 3325: 3853, 3326: 2765, 3327: 2631, 3328: 1444, 3329: 3568, 3330: 614, 3331: 1058, 3332: 3897, 3333: 3893, 3334: 3889, 3335: 3925, 3336: 3936, 3337: 3942, 3338: 3941, 3339: 3940, 3340: 3939, 3341: 3938, 3342: 3937, 3343: 3927, 3344: 3926, 3345: 3908, 3346: 3917, 3347: 3918, 3348: 3921, 3349: 3922, 3350: 3919, 3351: 3930, 3352: 3901, 3353: 3920, 3354: 3903, 3355: 3895, 3356: 3910, 3357: 3915, 3358: 3932, 3359: 3929, 3360: 3896, 3361: 3898, 3362: 212, 3363: 3928, 3364: 3923, 3365: 3931, 3366: 3909, 3367: 3916, 3368: 2538, 3369: 3911, 3370: 3894, 3371: 3914, 3372: 3948, 3373: 3883, 3374: 3947, 3375: 3885, 3376: 3913, 3377: 2768, 3378: 3162, 3379: 3952, 3380: 2545, 3381: 3924, 3382: 3946, 3383: 1796, 3384: 3934, 3385: 3945, 3386: 3943, 3387: 3854, 3388: 3935, 3389: 3933, 3390: 2769, 3391: 3949, 3392: 2464, 3393: 3902, 3394: 3950, 3395: 3944, 3396: 3891, 3397: 3900, 3398: 3154, 3399: 3951, 3400: 3184, 3401: 2061, 3402: 98, 3403: 3912, 3404: 3906, 3405: 3892, 3406: 1040, 3407: 1543, 3408: 1622, 3409: 1636, 3410: 1471}}\n", + "5453 3411\n" + ] + } + ], + "source": [ + "print(tokenizer.query_id_encoder.mapping, tokenizer.query_id_encoder.inverse_mapping)\n", + "print(tokenizer.item_id_encoder.mapping, tokenizer.item_id_encoder.inverse_mapping)\n", + "\n", + "print(len(tokenizer.query_id_encoder.mapping[\"user_id\"]), len(tokenizer.item_id_encoder.mapping['item_id']))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "dataset_mapping = {\n", + " \"sasrec\": (\n", + " SasRecTrainingDataset,\n", + " SasRecValidationDataset,\n", + " SasRecPredictionDataset,\n", + " ),\n", + " \"bert4rec\": (\n", + " Bert4RecTrainingDataset,\n", + " Bert4RecValidationDataset,\n", + " Bert4RecPredictionDataset,\n", + " ),\n", + "}\n", + "\n", + "if model_name.lower() in dataset_mapping:\n", + " TrainingDataset, ValidationDataset, PredictionDataset = dataset_mapping[\n", + " model_name.lower()\n", + " ]\n", + "else:\n", + " raise ValueError(\n", + " f\"Unsupported model type for dataloaders: {model_name}\"\n", + " )\n", + "\n", + "common_params = {\n", + " \"batch_size\": model_cfg[\"training_params\"][\"batch_size\"],\n", + " \"num_workers\": model_cfg[\"training_params\"][\"num_workers\"],\n", + " \"pin_memory\": True,\n", + "}\n", + "\n", + "train_dataloader = DataLoader(\n", + " dataset=TrainingDataset(\n", + " seq_train_dataset,\n", + " max_sequence_length=model_cfg[\"model_params\"][\"max_seq_len\"],\n", + " ),\n", + " shuffle=True,\n", + " **common_params,\n", + ")\n", + "val_dataloader = DataLoader(\n", + " dataset=ValidationDataset(\n", + " seq_validation_dataset,\n", + " seq_validation_gt,\n", + " seq_train_dataset,\n", + " max_sequence_length=model_cfg[\"model_params\"][\"max_seq_len\"],\n", + " ),\n", + " **common_params,\n", + ")\n", + "prediction_dataloader = DataLoader(\n", + " dataset=PredictionDataset(\n", + " seq_test_dataset,\n", + " max_sequence_length=model_cfg[\"model_params\"][\"max_seq_len\"],\n", + " ),\n", + " **common_params,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "model_config = {\n", + " \"tensor_schema\": tensor_schema,\n", + " \"optimizer_factory\": FatOptimizerFactory(\n", + " learning_rate=model_cfg[\"training_params\"][\"learning_rate\"]\n", + " ),\n", + "}\n", + "model_config.update(model_cfg[\"model_params\"])\n", + "\n", + "if model_name.lower() == \"sasrec\":\n", + " model = SasRec(**model_config)\n", + "elif model_name.lower() == \"bert4rec\":\n", + " model = Bert4Rec(**model_config)\n", + "else:\n", + " raise ValueError(f\"Unsupported model type: {model_name}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2, 2, 300, 200, 0.5)" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model._model.num_blocks, model._model.num_heads, model._model.hidden_size, model._model.max_len, model._model.dropout," + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "GPU available: True (cuda), used: True\n", + "TPU available: False, using: 0 TPU cores\n", + "IPU available: False, using: 0 IPUs\n", + "HPU available: False, using: 0 HPUs\n", + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/trainer/connectors/logger_connector/logger_connector.py:75: Starting from v1.9.0, `tensorboardX` has been removed as a dependency of the `lightning.pytorch` package, due to potential conflicts with other packages in the ML ecosystem. For this reason, `logger=True` will use `CSVLogger` as the default logger, unless the `tensorboard` or `tensorboardX` packages are found. Please `pip install lightning[extra]` or one of them to enable TensorBoard support by default\n", + "You are using a CUDA device ('NVIDIA L40') that has Tensor Cores. To properly utilize them, you should set `torch.set_float32_matmul_precision('medium' | 'high')` which will trade-off precision for performance. For more details, read https://pytorch.org/docs/stable/generated/torch.set_float32_matmul_precision.html#torch.set_float32_matmul_precision\n", + "/usr/local/lib/python3.11/site-packages/lightning/pytorch/callbacks/model_checkpoint.py:653: Checkpoint directory /root/RePlay-Accelerated/replay_benchmarks/artifacts/checkpoints exists and is not empty.\n", + "LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]\n", + "\n", + " | Name | Type | Params\n", + "--------------------------------------------\n", + "0 | _model | SasRecModel | 2.2 M \n", + "1 | _loss | CrossEntropyLoss | 0 \n", + "--------------------------------------------\n", + "2.2 M Trainable params\n", + "0 Non-trainable params\n", + "2.2 M Total params\n", + "8.682 Total estimated model params size (MB)\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e3e5c19fde084b18abb543f8a39f1b10", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sanity Checking: | | 0/? [00:00 Dict: """Load a single YAML file.""" with open(file_path, "r") as f: return yaml.safe_load(f) + + +def seed_everything(seed: int) -> None: + """Fix seed everywhere.""" + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + np.random.seed(seed) + random.seed(seed) + + torch.backends.cudnn.deterministic=True def merge_dicts(base: Dict, update: Dict) -> Dict: From 7c0bb0cc175527d7ad8ed631de006e53cdb0df46 Mon Sep 17 00:00:00 2001 From: Escape142 Date: Sun, 1 Dec 2024 18:29:33 +0000 Subject: [PATCH 18/27] decrease_memory_consumption --- main.py | 5 +- replay_benchmarks/base_runner.py | 199 +-------------- replay_benchmarks/configs/config.yaml | 6 +- .../configs/dataset/megamarket.yaml | 2 +- .../configs/dataset/movielens_1m.yaml | 2 +- .../configs/dataset/movielens_20m.yaml | 2 +- .../configs/dataset/netflix.yaml | 2 +- replay_benchmarks/configs/dataset/zvuk.yaml | 2 +- replay_benchmarks/configs/mode/train.yaml | 8 +- .../configs/model/bert4rec_megamarket.yaml | 18 ++ .../configs/model/bert4rec_movielens_1m.yaml | 15 +- .../configs/model/bert4rec_movielens_20m.yaml | 18 ++ .../configs/model/bert4rec_netflix.yaml | 18 ++ .../configs/model/bert4rec_zvuk.yaml | 9 +- replay_benchmarks/configs/model/sasrec.yaml | 5 +- .../configs/model/sasrec_megamarket.yaml | 18 ++ .../configs/model/sasrec_movielens_1m.yaml | 15 +- .../configs/model/sasrec_movielens_20m.yaml | 18 ++ .../configs/model/sasrec_netflix.yaml | 18 ++ .../configs/model/sasrec_zvuk.yaml | 14 +- replay_benchmarks/preprocessing/__init__.py | 1 + .../preprocessing/dataset_manager.py | 228 +++++++++++++++++ replay_benchmarks/train_runner.py | 233 +++++++++++++----- 23 files changed, 560 insertions(+), 296 deletions(-) create mode 100755 replay_benchmarks/configs/model/bert4rec_megamarket.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec_netflix.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_megamarket.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_movielens_20m.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_netflix.yaml create mode 100644 replay_benchmarks/preprocessing/__init__.py create mode 100644 replay_benchmarks/preprocessing/dataset_manager.py diff --git a/main.py b/main.py index fa46a603e..3663c99aa 100755 --- a/main.py +++ b/main.py @@ -8,7 +8,10 @@ from replay_benchmarks.utils.conf import load_config, seed_everything from replay_benchmarks import TrainRunner, InferRunner -logging.basicConfig(level=logging.INFO) +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", +) warnings.filterwarnings("ignore") diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 302bf253a..ec1e77895 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -3,9 +3,7 @@ from abc import ABC, abstractmethod from typing import Tuple -import pandas as pd -from rs_datasets import MovieLens, Netflix - +from replay_benchmarks.preprocessing import DatasetManager from replay.data import ( FeatureHint, FeatureInfo, @@ -14,8 +12,6 @@ FeatureType, Dataset, ) -from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter -from replay.splitters import TimeSplitter from replay.utils import DataFrameLike from replay.data.nn import ( SequenceTokenizer, @@ -25,12 +21,6 @@ TensorFeatureInfo, ) -DATASET_MAPPINGS = { - "zvuk": {"kaggle": "alexxl/zvuk-dataset", "file": "zvuk-interactions.parquet"}, - "megamarket": {"kaggle": "alexxl/megamarket", "file": "megamarket.parquet"}, -} -SUPPORTED_RS_DATASETS = ["movielens", "netflix"] - class BaseRunner(ABC): def __init__(self, config): @@ -44,180 +34,20 @@ def __init__(self, config): self.user_column = self.dataset_cfg["feature_schema"]["query_column"] self.timestamp_column = self.dataset_cfg["feature_schema"]["timestamp_column"] self.tokenizer = None - self.interactions = None - self.user_features = None - self.item_features = None + self.dataset_manager = DatasetManager(config) self.tensor_schema = self.build_tensor_schema() self.setup_environment() - def load_data( - self, - ) -> Tuple[ - DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike - ]: - """Load dataset and split into train, validation, and test sets.""" - dataset_name = self.dataset_cfg["name"] - data_path = self.dataset_cfg["path"] - interactions_file = os.path.join(data_path, "interactions.parquet") - - if not os.path.exists(interactions_file): - logging.info(f"Dataset not found at {interactions_file}. Downloading...") - self._download_dataset(data_path, dataset_name, interactions_file) - - logging.info(f"Dataset is loaded from {interactions_file}") - interactions = pd.read_parquet(interactions_file) - self.interactions = self._filter_data(interactions) - - splitter = TimeSplitter( - time_threshold=self.dataset_cfg["preprocess"]["global_split_ratio"], - drop_cold_users=True, - drop_cold_items=True, - item_column=self.item_column, - query_column=self.user_column, - timestamp_column=self.timestamp_column, - ) - - train_events, validation_events, validation_gt, test_events, test_gt = ( - self._split_data(splitter, self.interactions) + def load_data(self): + """Load preprocessed data splits.""" + splits = self.dataset_manager.load_data() + return ( + splits["train"], + splits["validation"], + splits["validation_gt"], + splits["test"], + splits["test_gt"], ) - logging.info("Data split into train, validation, and test sets") - return train_events, validation_events, validation_gt, test_events, test_gt - - def _download_dataset( - self, data_path: str, dataset_name: str, interactions_file: str - ): - """Download dataset from Kaggle or rs_datasets.""" - if dataset_name in DATASET_MAPPINGS: - self._download_kaggle_dataset(data_path, dataset_name, interactions_file) - elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS): - self._download_rs_dataset(data_path, dataset_name, interactions_file) - else: - raise ValueError(f"Unsupported dataset: {dataset_name}") - - def _download_kaggle_dataset( - self, data_path: str, dataset_name: str, interactions_file: str - ) -> None: - from kaggle.api.kaggle_api_extended import KaggleApi - - """Download dataset from Kaggle.""" - kaggle_info = DATASET_MAPPINGS[dataset_name] - kaggle_dataset = kaggle_info["kaggle"] - raw_data_file = os.path.join(data_path, kaggle_info["file"]) - - os.environ.setdefault("KAGGLE_USERNAME", "recsysaccelerate") - os.environ.setdefault("KAGGLE_KEY", "6363e91b656fea576c39e4f55dcc1d00") - - api = KaggleApi() - api.authenticate() - - api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True) - logging.info(f"Dataset downloaded and extracted to {data_path}") - - interactions = pd.read_parquet(raw_data_file) - interactions[self.timestamp_column] = interactions[ - self.timestamp_column - ].astype("int64") - if dataset_name == "megamarket": - interactions = interactions[interactions.event == 2] # take only purchase - interactions.to_parquet(interactions_file) - - def _download_rs_dataset( - self, data_path: str, dataset_name: str, interactions_file: str - ) -> None: - """Download dataset from rs_datasets.""" - if "movielens" in dataset_name: - version = dataset_name.split("_")[1] - movielens = MovieLens(version=version, path=data_path) - interactions = movielens.ratings - interactions = interactions[interactions[self.dataset_cfg["feature_schema"]["rating_column"]] > self.dataset_cfg["preprocess"]["min_rating"]] - elif dataset_name == "netflix": - netflix = Netflix(path=data_path) - interactions = pd.concat([netflix.train, netflix.test]).fillna(5).reset_index(drop=True) - interactions = interactions[interactions[self.dataset_cfg["feature_schema"]["rating_column"]] > self.dataset_cfg["preprocess"]["min_rating"]] - interactions = interactions.sort_values(by=[self.user_column, self.timestamp_column]) - interactions[self.timestamp_column] += interactions.groupby([self.user_column, self.timestamp_column]).cumcount() - else: - raise ValueError(f"Unsupported dataset: {dataset_name}") - - interactions[self.timestamp_column] = interactions[ - self.timestamp_column - ].astype("int64") - interactions.to_parquet(interactions_file) - - def _filter_data(self, interactions: pd.DataFrame): - """Filters raw data based on minimum interaction counts.""" - - def log_min_counts(data: pd.DataFrame, message_prefix: str): - user_min = data.groupby(self.user_column).size().min() - item_min = data.groupby(self.item_column).size().min() - logging.info( - f"{message_prefix} - Min items per user: {user_min}, Min users per item: {item_min}" - ) - - log_min_counts(interactions, "Before filtering") - - interactions_filtered = MinCountFilter( - num_entries=self.dataset_cfg["preprocess"]["min_users_per_item"], - groupby_column=self.item_column, - ).transform(interactions) - - interactions_filtered = MinCountFilter( - num_entries=self.dataset_cfg["preprocess"]["min_items_per_user"], - groupby_column=self.user_column, - ).transform(interactions_filtered) - - log_min_counts(interactions_filtered, "After filtering") - - return interactions_filtered - - def _split_data( - self, splitter: TimeSplitter, interactions: pd.DataFrame - ) -> Tuple[ - DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike - ]: - """Split data for training, validation, and testing.""" - test_events, test_gt = splitter.split(interactions) - validation_events, validation_gt = splitter.split(test_events) - train_events = validation_events - - test_gt = test_gt[test_gt[self.item_column].isin(train_events[self.item_column])] - test_gt = test_gt[test_gt[self.user_column].isin(train_events[self.user_column])] - - # Limit number of gt events in val and test only if max_num_test_interactions is not null - max_test_interactions = self.dataset_cfg["preprocess"]["max_num_test_interactions"] - logging.info( - f"Distribution of seq_len in validation:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - logging.info( - f"Distribution of seq_len in test:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - if max_test_interactions is not None: - - validation_gt = NumInteractionsFilter( - num_interactions=max_test_interactions, - first=True, - query_column=self.user_column, - item_column=self.item_column, - timestamp_column=self.timestamp_column, - ).transform(validation_gt) - logging.info( - f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - - test_gt = NumInteractionsFilter( - num_interactions=max_test_interactions, - first=True, - query_column=self.user_column, - item_column=self.item_column, - timestamp_column=self.timestamp_column, - ).transform(test_gt) - logging.info( - f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - else: - logging.info("max_num_test_interactions is null. Skipping filtration.") - - return train_events, validation_events, validation_gt, test_events, test_gt def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: """Prepare the feature schema based on whether ground truth is needed.""" @@ -285,16 +115,12 @@ def prepare_datasets( train_dataset = Dataset( feature_schema=feature_schema, interactions=train_events, - query_features=self.user_features, - item_features=self.item_features, check_consistency=True, categorical_encoded=False, ) validation_dataset = Dataset( feature_schema=feature_schema, interactions=validation_events, - query_features=self.user_features, - item_features=self.item_features, check_consistency=True, categorical_encoded=False, ) @@ -307,8 +133,6 @@ def prepare_datasets( test_dataset = Dataset( feature_schema=feature_schema, interactions=test_events, - query_features=self.user_features, - item_features=self.item_features, check_consistency=True, categorical_encoded=False, ) @@ -356,6 +180,7 @@ def prepare_seq_datasets( def _initialize_tokenizer(self, train_dataset: Dataset) -> SequenceTokenizer: """Initialize and fit the SequenceTokenizer.""" + logging.info("Initializing and fitting SequenceTokenizer.") tokenizer = SequenceTokenizer( self.tensor_schema, allow_collect_to_master=True, handle_unknown_rule="drop" ) diff --git a/replay_benchmarks/configs/config.yaml b/replay_benchmarks/configs/config.yaml index 54a08edc3..4ffb9b769 100755 --- a/replay_benchmarks/configs/config.yaml +++ b/replay_benchmarks/configs/config.yaml @@ -1,6 +1,6 @@ defaults: - - dataset: movielens_1m - - model: sasrec + - dataset: zvuk + - model: sasrec_zvuk - mode: train - acceleration: null @@ -12,7 +12,6 @@ env: paths: data_dir: "replay_benchmarks/data/" - model_dir: "replay_benchmarks/artifacts/models/" log_dir: "replay_benchmarks/artifacts/logs/" checkpoint_dir: "replay_benchmarks/artifacts/checkpoints/" results_dir: "replay_benchmarks/artifacts/results/" @@ -25,6 +24,7 @@ metrics: - precision - map - mrr + - coverage ks: - 1 - 5 diff --git a/replay_benchmarks/configs/dataset/megamarket.yaml b/replay_benchmarks/configs/dataset/megamarket.yaml index 5e5b9352a..4f86ffefb 100644 --- a/replay_benchmarks/configs/dataset/megamarket.yaml +++ b/replay_benchmarks/configs/dataset/megamarket.yaml @@ -10,6 +10,6 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_1m.yaml b/replay_benchmarks/configs/dataset/movielens_1m.yaml index 1ff66eff6..7ef14c925 100755 --- a/replay_benchmarks/configs/dataset/movielens_1m.yaml +++ b/replay_benchmarks/configs/dataset/movielens_1m.yaml @@ -10,7 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_20m.yaml b/replay_benchmarks/configs/dataset/movielens_20m.yaml index 5bd5c991d..bd0ccafe4 100755 --- a/replay_benchmarks/configs/dataset/movielens_20m.yaml +++ b/replay_benchmarks/configs/dataset/movielens_20m.yaml @@ -10,7 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/netflix.yaml b/replay_benchmarks/configs/dataset/netflix.yaml index 382f89b1a..4449c66ab 100755 --- a/replay_benchmarks/configs/dataset/netflix.yaml +++ b/replay_benchmarks/configs/dataset/netflix.yaml @@ -10,7 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/zvuk.yaml b/replay_benchmarks/configs/dataset/zvuk.yaml index fcbe541cd..3be21a62a 100755 --- a/replay_benchmarks/configs/dataset/zvuk.yaml +++ b/replay_benchmarks/configs/dataset/zvuk.yaml @@ -10,6 +10,6 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/mode/train.yaml b/replay_benchmarks/configs/mode/train.yaml index 468f6a738..245e0cef9 100755 --- a/replay_benchmarks/configs/mode/train.yaml +++ b/replay_benchmarks/configs/mode/train.yaml @@ -1,8 +1,6 @@ mode: name: train - trainer_params: - batch_size: 512 - num_workers: 4 - epochs: 100 - learning_rate: 0.001 \ No newline at end of file + profiler: + enabled: false + row_limit: 5 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_megamarket.yaml b/replay_benchmarks/configs/model/bert4rec_megamarket.yaml new file mode 100755 index 000000000..38eac7ed0 --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_megamarket.yaml @@ -0,0 +1,18 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 200 + hidden_size: 312 + dropout_rate: 0.15 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 500 + training_params: + embedding_dim: 312 + learning_rate: 0.001 + batch_size: 64 + num_workers: 4 + max_epochs: 100 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml index bbe88b73c..eadc0beac 100755 --- a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml @@ -4,14 +4,15 @@ model: params: model_params: block_count: 2 - head_count: 4 + head_count: 2 max_seq_len: 100 - hidden_size: 300 - dropout_rate: 0.5 + hidden_size: 128 + dropout_rate: 0.2 loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 training_params: - embedding_dim: 300 - learning_rate: 0.001 - batch_size: 512 + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 num_workers: 4 - max_epochs: 30 \ No newline at end of file + max_epochs: 200 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml new file mode 100755 index 000000000..eadc0beac --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml @@ -0,0 +1,18 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_netflix.yaml b/replay_benchmarks/configs/model/bert4rec_netflix.yaml new file mode 100755 index 000000000..eadc0beac --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_netflix.yaml @@ -0,0 +1,18 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml index b60b67828..494663b27 100755 --- a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml +++ b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml @@ -4,14 +4,15 @@ model: params: model_params: block_count: 2 - head_count: 4 - max_seq_len: 20 + head_count: 2 + max_seq_len: 200 hidden_size: 312 dropout_rate: 0.15 loss_type: CE # CE, BCE, SCE + loss_sample_count: 500 training_params: embedding_dim: 312 - learning_rate: 0.002 - batch_size: 512 + learning_rate: 0.001 + batch_size: 128 num_workers: 4 max_epochs: 100 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/sasrec.yaml b/replay_benchmarks/configs/model/sasrec.yaml index ea3ab043d..e947e4714 100755 --- a/replay_benchmarks/configs/model/sasrec.yaml +++ b/replay_benchmarks/configs/model/sasrec.yaml @@ -8,10 +8,11 @@ model: max_seq_len: 100 hidden_size: 384 dropout_rate: 0.1 - loss_type: CE # CE, BCE, SCE + loss_type: BCE # CE, BCE, SCE + loss_sample_count: 500 training_params: embedding_dim: 300 learning_rate: 0.001 batch_size: 32 num_workers: 4 - max_epochs: 100 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_megamarket.yaml b/replay_benchmarks/configs/model/sasrec_megamarket.yaml new file mode 100755 index 000000000..5ad886926 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_megamarket.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 200 + hidden_size: 312 + dropout_rate: 0.15 + loss_type: BCE # CE, BCE, SCE + loss_sample_count: 500 + training_params: + embedding_dim: 312 + learning_rate: 0.001 + batch_size: 128 + num_workers: 4 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml index 90097ae78..e93e36394 100755 --- a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml @@ -5,13 +5,14 @@ model: model_params: block_count: 2 head_count: 2 - max_seq_len: 200 - hidden_size: 300 - dropout_rate: 0.5 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 training_params: - embedding_dim: 300 - learning_rate: 0.001 - batch_size: 512 + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 num_workers: 4 - max_epochs: 30 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml new file mode 100755 index 000000000..e93e36394 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_netflix.yaml b/replay_benchmarks/configs/model/sasrec_netflix.yaml new file mode 100755 index 000000000..e93e36394 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_netflix.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_zvuk.yaml b/replay_benchmarks/configs/model/sasrec_zvuk.yaml index ef299249a..85bfaa4ff 100755 --- a/replay_benchmarks/configs/model/sasrec_zvuk.yaml +++ b/replay_benchmarks/configs/model/sasrec_zvuk.yaml @@ -4,15 +4,15 @@ model: params: model_params: block_count: 2 - head_count: 4 - max_seq_len: 400 - hidden_size: 128 - dropout_rate: 0.1 + head_count: 2 + max_seq_len: 200 + hidden_size: 312 + dropout_rate: 0.15 loss_type: BCE # CE, BCE, SCE loss_sample_count: 500 training_params: - embedding_dim: 300 + embedding_dim: 312 learning_rate: 0.001 - batch_size: 512 + batch_size: 64 num_workers: 4 - max_epochs: 10 + max_epochs: 200 diff --git a/replay_benchmarks/preprocessing/__init__.py b/replay_benchmarks/preprocessing/__init__.py new file mode 100644 index 000000000..bcf89d573 --- /dev/null +++ b/replay_benchmarks/preprocessing/__init__.py @@ -0,0 +1 @@ +from .dataset_manager import DatasetManager \ No newline at end of file diff --git a/replay_benchmarks/preprocessing/dataset_manager.py b/replay_benchmarks/preprocessing/dataset_manager.py new file mode 100644 index 000000000..8da908ab1 --- /dev/null +++ b/replay_benchmarks/preprocessing/dataset_manager.py @@ -0,0 +1,228 @@ +import os +import pandas as pd +import logging + +from rs_datasets import MovieLens, Netflix + +from replay.splitters import TimeSplitter +from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter + +DATASET_MAPPINGS = { + "zvuk": {"kaggle": "alexxl/zvuk-dataset", "file": "zvuk-interactions.parquet"}, + "megamarket": {"kaggle": "alexxl/megamarket", "file": "megamarket.parquet"}, +} +SUPPORTED_RS_DATASETS = ["movielens", "netflix"] + + +class DatasetManager: + def __init__(self, config): + self.config = config + self.data_path = config["dataset"]["path"] + self.dataset_name = config["dataset"]["name"] + self.item_column = config["dataset"]["feature_schema"]["item_column"] + self.user_column = config["dataset"]["feature_schema"]["query_column"] + self.timestamp_column = config["dataset"]["feature_schema"]["timestamp_column"] + self.split_cache_dir = os.path.join(self.data_path, "split_cache") + + os.makedirs(self.split_cache_dir, exist_ok=True) + + def load_data(self): + split_paths = { + "train": os.path.join(self.split_cache_dir, "train.parquet"), + "validation": os.path.join(self.split_cache_dir, "validation.parquet"), + "validation_gt": os.path.join(self.split_cache_dir, "validation_gt.parquet"), + "test": os.path.join(self.split_cache_dir, "test.parquet"), + "test_gt": os.path.join(self.split_cache_dir, "test_gt.parquet"), + } + + if all(os.path.exists(path) for path in split_paths.values()): + logging.info("Loading preprocessed splits from cache.") + return {key: pd.read_parquet(path) for key, path in split_paths.items()} + + logging.info("Preprocessing data as splits are not cached.") + raw_data = self._load_raw_data() + filtered_data = self._filter_data(raw_data) + splits = self._split_data(filtered_data) + + # Save preprocessed splits + for split_name, split_data in splits.items(): + split_data.to_parquet(split_paths[split_name], index=False) + + return splits + + def _load_raw_data(self): + interactions_file = os.path.join(self.data_path, "interactions.parquet") + if not os.path.exists(interactions_file): + logging.info(f"Dataset not found at {interactions_file}. Downloading...") + self._download_dataset(self.data_path, self.dataset_name, interactions_file) + logging.info(f"Loading raw dataset from {interactions_file}") + return pd.read_parquet(interactions_file) + + def _download_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ): + """Download dataset from Kaggle or rs_datasets.""" + if dataset_name in DATASET_MAPPINGS: + self._download_kaggle_dataset(data_path, dataset_name, interactions_file) + elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS): + self._download_rs_dataset(data_path, dataset_name, interactions_file) + else: + raise ValueError(f"Unsupported dataset: {dataset_name}") + + def _download_kaggle_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ) -> None: + from kaggle.api.kaggle_api_extended import KaggleApi + + """Download dataset from Kaggle.""" + kaggle_info = DATASET_MAPPINGS[dataset_name] + kaggle_dataset = kaggle_info["kaggle"] + raw_data_file = os.path.join(data_path, kaggle_info["file"]) + + os.environ.setdefault("KAGGLE_USERNAME", "recsysaccelerate") + os.environ.setdefault("KAGGLE_KEY", "6363e91b656fea576c39e4f55dcc1d00") + + api = KaggleApi() + api.authenticate() + + api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True) + logging.info(f"Dataset downloaded and extracted to {data_path}") + + interactions = pd.read_parquet(raw_data_file) + interactions[self.timestamp_column] = interactions[ + self.timestamp_column + ].astype("int64") + if dataset_name == "megamarket": + interactions = interactions[interactions.event == 2] # take only purchase + interactions.to_parquet(interactions_file) + + def _download_rs_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ) -> None: + """Download dataset from rs_datasets.""" + if "movielens" in dataset_name: + version = dataset_name.split("_")[1] + movielens = MovieLens(version=version, path=data_path) + interactions = movielens.ratings + interactions = interactions[ + interactions[self.config["dataset"]["feature_schema"]["rating_column"]] + > self.config["dataset"]["preprocess"]["min_rating"] + ] + elif dataset_name == "netflix": + netflix = Netflix(path=data_path) + interactions = ( + pd.concat([netflix.train, netflix.test]) + .fillna(5) + .reset_index(drop=True) + ) + interactions = interactions[ + interactions[self.config["dataset"]["feature_schema"]["rating_column"]] + > self.config["dataset"]["preprocess"]["min_rating"] + ] + interactions = interactions.sort_values( + by=[self.user_column, self.timestamp_column] + ) + interactions[self.timestamp_column] = pd.to_datetime(interactions[self.timestamp_column]) + interactions[self.timestamp_column] += pd.to_timedelta( + interactions.groupby([self.user_column, self.timestamp_column]).cumcount(), + unit="s" + ) + else: + raise ValueError(f"Unsupported dataset: {dataset_name}") + + interactions[self.timestamp_column] = interactions[ + self.timestamp_column + ].astype("int64") + interactions.to_parquet(interactions_file) + + def _filter_data(self, interactions: pd.DataFrame): + """Filters raw data based on minimum interaction counts.""" + + def log_min_counts(data: pd.DataFrame, message_prefix: str): + user_min = data.groupby(self.user_column).size().min() + item_min = data.groupby(self.item_column).size().min() + logging.info( + f"{message_prefix} - Min items per user: {user_min}, Min users per item: {item_min}" + ) + + log_min_counts(interactions, "Before filtering") + + interactions = MinCountFilter( + num_entries=self.config["dataset"]["preprocess"]["min_users_per_item"], + groupby_column=self.item_column, + ).transform(interactions) + + interactions = MinCountFilter( + num_entries=self.config["dataset"]["preprocess"]["min_items_per_user"], + groupby_column=self.user_column, + ).transform(interactions) + + log_min_counts(interactions, "After filtering") + + return interactions + + def _split_data(self, interactions): + """Split data for training, validation, and testing.""" + splitter = TimeSplitter( + time_threshold=self.config["dataset"]["preprocess"]["global_split_ratio"], + drop_cold_users=True, + drop_cold_items=True, + item_column=self.item_column, + query_column=self.user_column, + timestamp_column=self.timestamp_column, + ) + + test_events, test_gt = splitter.split(interactions) + validation_events, validation_gt = splitter.split(test_events) + train_events = validation_events + + test_gt = test_gt[ + test_gt[self.item_column].isin(train_events[self.item_column]) + ] + test_gt = test_gt[ + test_gt[self.user_column].isin(train_events[self.user_column]) + ] + + # Limit number of gt events in val and test only if max_num_test_interactions is not null + max_test_interactions = self.config["dataset"]["preprocess"][ + "max_num_test_interactions" + ] + logging.info( + f"Distribution of seq_len in validation:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + logging.info( + f"Distribution of seq_len in test:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + if max_test_interactions is not None: + + validation_gt = NumInteractionsFilter( + num_interactions=max_test_interactions, + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(validation_gt) + logging.info( + f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + + test_gt = NumInteractionsFilter( + num_interactions=max_test_interactions, + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(test_gt) + logging.info( + f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + else: + logging.info("max_num_test_interactions is null. Skipping filtration.") + + return { + "train": train_events, + "validation": validation_events, + "validation_gt": validation_gt, + "test": test_events, + "test_gt": test_gt, + } diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index 08c21856f..1e88e2c1c 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -1,18 +1,32 @@ import logging import os +from pathlib import Path +import torch import lightning as L -from lightning.pytorch.loggers import CSVLogger -from lightning.pytorch.callbacks import ModelCheckpoint +from lightning.pytorch.loggers import CSVLogger, TensorBoardLogger +from lightning.pytorch.callbacks import ModelCheckpoint, EarlyStopping from torch.utils.data import DataLoader -from torch.profiler import profile, record_function, ProfilerActivity, schedule +from torch.profiler import profile, ProfilerActivity from replay_benchmarks.base_runner import BaseRunner -from replay.metrics import OfflineMetrics, Recall, Precision, MAP, NDCG, HitRate, MRR +from replay.metrics import ( + OfflineMetrics, + Recall, + Precision, + MAP, + NDCG, + HitRate, + MRR, + Coverage, +) from replay.metrics.torch_metrics_builder import metrics_to_df from replay.models.nn.sequential import SasRec, Bert4Rec from replay.models.nn.optimizer_utils import FatOptimizerFactory -from replay.models.nn.sequential.callbacks import ValidationMetricsCallback +from replay.models.nn.sequential.callbacks import ( + ValidationMetricsCallback, + PandasPredictionCallback, +) from replay.models.nn.sequential.postprocessors import RemoveSeenItems from replay.models.nn.sequential.sasrec import ( SasRecTrainingDataset, @@ -29,11 +43,29 @@ class TrainRunner(BaseRunner): def __init__(self, config): super().__init__(config) - self.logger = CSVLogger( - save_dir=config["paths"]["log_dir"], name=self.model_name - ) + self.item_count = None + self.raw_test_gt = None + self.seq_val_dataset = None + self.seq_test_dataset = None + + # Loggers + log_dir = Path(config["paths"]["log_dir"]) / self.dataset_name / self.model_name + self.csv_logger = CSVLogger(save_dir=log_dir / "csv_logs") + self.tb_logger = TensorBoardLogger(save_dir=log_dir / "tb_logs") + + self._check_paths() - def initialize_model(self): + def _check_paths(self): + """Ensure all required directories exist.""" + required_paths = [ + self.config["paths"]["log_dir"], + self.config["paths"]["checkpoint_dir"], + self.config["paths"]["results_dir"], + ] + for path in required_paths: + Path(path).mkdir(parents=True, exist_ok=True) + + def _initialize_model(self): """Initialize the model based on the configuration.""" model_config = { "tensor_schema": self.tensor_schema, @@ -50,7 +82,7 @@ def initialize_model(self): else: raise ValueError(f"Unsupported model type: {self.model_name}") - def prepare_dataloaders( + def _prepare_dataloaders( self, seq_train_dataset, seq_validation_dataset, @@ -58,7 +90,8 @@ def prepare_dataloaders( seq_test_dataset, ): """Initialize dataloaders for training, validation, and testing.""" - logging.info("Preparing dataloaders objects...") + logging.info("Preparing dataloaders...") + dataset_mapping = { "sasrec": ( SasRecTrainingDataset, @@ -72,15 +105,13 @@ def prepare_dataloaders( ), } - if self.model_name.lower() in dataset_mapping: - TrainingDataset, ValidationDataset, PredictionDataset = dataset_mapping[ - self.model_name.lower() - ] - else: + datasets = dataset_mapping.get(self.model_name.lower()) + if not datasets: raise ValueError( f"Unsupported model type for dataloaders: {self.model_name}" ) + TrainingDataset, ValidationDataset, PredictionDataset = datasets common_params = { "batch_size": self.model_cfg["training_params"]["batch_size"], "num_workers": self.model_cfg["training_params"]["num_workers"], @@ -114,43 +145,20 @@ def prepare_dataloaders( return train_dataloader, val_dataloader, prediction_dataloader - def calculate_metrics(self, predictions, ground_truth): - """Calculate and return the desired metrics based on the predictions.""" - top_k = self.config["metrics"]["ks"] - metrics_list = [ - Recall(top_k), - Precision(top_k), - MAP(top_k), - NDCG(top_k), - MRR(top_k), - HitRate(top_k), - ] - init_args = {"query_column": "user_id", "rating_column": "score"} - - metrics = OfflineMetrics(metrics_list, **init_args)(predictions, ground_truth) - return metrics_to_df(metrics) - - def save_model(self, model, checkpoint_callback): - """Save the best model checkpoint to the specified directory.""" - best_model_path = checkpoint_callback.best_model_path - save_path = self.config["paths"]["model_dir"] - model.load_from_checkpoint(best_model_path).save( - f"{save_path}/{self.model_name}_best.pt" - ) - logging.info(f"Best model saved at: {save_path}/{self.model_name}_best.pt") - - def run(self): - """Execute the training pipeline.""" + def _load_dataloaders(self): + """Loads data and prepares dataloaders.""" logging.info("Preparing datasets for training.") train_events, validation_events, validation_gt, test_events, test_gt = ( self.load_data() ) + self.raw_test_gt = test_gt train_dataset, val_dataset, val_gt_dataset, test_dataset, test_gt_dataset = ( self.prepare_datasets( train_events, validation_events, validation_gt, test_events, test_gt ) ) + self.item_count = train_dataset.item_count ( seq_train_dataset, @@ -160,51 +168,140 @@ def run(self): ) = self.prepare_seq_datasets( train_dataset, val_dataset, val_gt_dataset, test_dataset, test_gt_dataset ) + self.seq_val_dataset = seq_validation_dataset + self.seq_test_dataset = seq_test_dataset + + return self._prepare_dataloaders( + seq_train_dataset, + seq_validation_dataset, + seq_validation_gt, + seq_test_dataset, + ) + + def calculate_metrics(self, predictions, ground_truth): + """Calculate and return the desired metrics based on the predictions.""" + top_k = self.config["metrics"]["ks"] + metrics_list = [ + Recall(top_k), + Precision(top_k), + MAP(top_k), + NDCG(top_k), + MRR(top_k), + HitRate(top_k), + ] + metrics = OfflineMetrics( + metrics_list, query_column="user_id", rating_column="score" + )(predictions, ground_truth) + return metrics_to_df(metrics) + + def save_model(self, trainer, best_model): + """Save the best model checkpoint to the specified directory.""" + save_path = os.path.join( + self.config["paths"]["checkpoint_dir"], + f"{self.model_name}_{self.dataset_name}", + ) + torch.save( + { + "model_state_dict": best_model.state_dict(), + "optimizer_state_dict": trainer.optimizers[0].state_dict(), + "config": self.model_cfg, + }, + f"{save_path}/{self.model_name}_checkpoint.pth", + ) + self.tokenizer.save(f"{save_path}/sequence_tokenizer") + logging.info(f"Best model saved at: {save_path}") + + def run(self): + """Execute the training pipeline.""" train_dataloader, val_dataloader, prediction_dataloader = ( - self.prepare_dataloaders( - seq_train_dataset, - seq_validation_dataset, - seq_validation_gt, - seq_test_dataset, - ) + self._load_dataloaders() ) - model = self.initialize_model() + logging.info("Initializing model...") + model = self._initialize_model() + checkpoint_callback = ModelCheckpoint( - dirpath=self.config["paths"]["checkpoint_dir"], + dirpath=os.path.join( + self.config["paths"]["checkpoint_dir"], + f"{self.model_name}_{self.dataset_name}", + ), save_top_k=1, verbose=True, - monitor="recall@10", + monitor="ndcg@10", + mode="max", + ) + + early_stopping = EarlyStopping( + monitor="ndcg@10", + patience=self.model_cfg["training_params"]["max_epochs"] // 10, mode="max", + verbose=True, ) validation_metrics_callback = ValidationMetricsCallback( metrics=self.config["metrics"]["types"], ks=self.config["metrics"]["ks"], - item_count=train_dataset.item_count, - postprocessors=[RemoveSeenItems(seq_validation_dataset)], + item_count=self.item_count, + postprocessors=[RemoveSeenItems(self.seq_val_dataset)], ) trainer = L.Trainer( max_epochs=self.model_cfg["training_params"]["max_epochs"], - callbacks=[checkpoint_callback, validation_metrics_callback], - logger=self.logger, + callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback], + logger=[self.csv_logger, self.tb_logger], ) - logging.info("Starting model training.") - with profile( - activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], - record_shapes=True, - with_flops=True, - profile_memory=True, - ) as prof: + logging.info("Starting training...") + if self.config["mode"]["profiler"]["enabled"]: + with profile( + activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], + record_shapes=True, + with_flops=True, + profile_memory=True, + ) as prof: + trainer.fit(model, train_dataloader, val_dataloader) + logging.info( + prof.key_averages().table( + sort_by="self_cuda_time_total", + row_limit=self.config["mode"]["profiler"].get("row_limit", 10), + ) + ) + prof.export_chrome_trace( + os.path.join( + self.config["paths"]["log_dir"], + f"{self.model_name}_{self.dataset_name}_profile.json", + ) + ) + else: trainer.fit(model, train_dataloader, val_dataloader) + if self.model_name.lower() == "sasrec": + best_model = SasRec.load_from_checkpoint(checkpoint_callback.best_model_path) + elif self.model_name.lower() == "bert4rec": + best_model = Bert4Rec.load_from_checkpoint(checkpoint_callback.best_model_path) + self.save_model(trainer, best_model) - prof.export_chrome_trace( + logging.info("Evaluating on test set...") + pandas_prediction_callback = PandasPredictionCallback( + top_k=max(self.config["metrics"]["ks"]), + query_column="user_id", + item_column="item_id", + rating_column="score", + postprocessors=[RemoveSeenItems(self.seq_test_dataset)], + ) + L.Trainer(callbacks=[pandas_prediction_callback], inference_mode=True).predict( + best_model, dataloaders=prediction_dataloader, return_predictions=False + ) + + result = pandas_prediction_callback.get_result() + recommendations = self.tokenizer.query_and_item_id_encoder.inverse_transform( + result + ) + test_metrics = self.calculate_metrics(recommendations, self.raw_test_gt) + logging.info(test_metrics) + test_metrics.to_csv( os.path.join( - self.config["paths"]["log_dir"], - f"{self.model_name}_{self.dataset_name}_profile.json", - ) + self.config["paths"]["results_dir"], + f"{self.model_name}_{self.dataset_name}_test_metrics.csv", + ), ) - logging.info("Training completed.") From 2dc715ca500295f245b3dcb73824142d68ddcb10 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Mon, 2 Dec 2024 11:22:25 +0000 Subject: [PATCH 19/27] debug hotfix --- replay/models/nn/sequential/bert4rec/lightning.py | 2 +- replay/models/nn/sequential/sasrec/lightning.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/replay/models/nn/sequential/bert4rec/lightning.py b/replay/models/nn/sequential/bert4rec/lightning.py index a2436ae2f..757808281 100644 --- a/replay/models/nn/sequential/bert4rec/lightning.py +++ b/replay/models/nn/sequential/bert4rec/lightning.py @@ -355,7 +355,7 @@ def _compute_loss_scalable_ce( labels_mask = (~padding_mask) + tokens_mask masked_tokens = ~labels_mask - pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + pad_token = feature_tensors[self._schema.item_id_feature_name].view(-1)[~padding_mask.view(-1)][0] emb = self._model.forward_step(feature_tensors, padding_mask, tokens_mask) hd = torch.tensor(emb.shape[-1]) diff --git a/replay/models/nn/sequential/sasrec/lightning.py b/replay/models/nn/sequential/sasrec/lightning.py index db160e79c..9b20bd578 100644 --- a/replay/models/nn/sequential/sasrec/lightning.py +++ b/replay/models/nn/sequential/sasrec/lightning.py @@ -333,7 +333,9 @@ def _compute_loss_scalable_ce( target_padding_mask: torch.BoolTensor, ) -> torch.Tensor: - pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + + print(self._schema.item_id_features, self._model.item_feature_name) + pad_token = feature_tensors[self._schema.item_id_feature_name].view(-1)[~padding_mask.view(-1)][0] emb = self._model.forward_step(feature_tensors, padding_mask)[target_padding_mask] hd = torch.tensor(emb.shape[-1]) From d3edd4e61e5f6caf04ee8a8c99ed0b7115acb6f9 Mon Sep 17 00:00:00 2001 From: Escape142 Date: Mon, 2 Dec 2024 11:45:54 +0000 Subject: [PATCH 20/27] decrease_memory_consumption --- main.py | 5 +- replay_benchmarks/base_runner.py | 199 +-------------- replay_benchmarks/configs/config.yaml | 6 +- .../configs/dataset/megamarket.yaml | 2 +- .../configs/dataset/movielens_1m.yaml | 2 +- .../configs/dataset/movielens_20m.yaml | 2 +- .../configs/dataset/netflix.yaml | 2 +- replay_benchmarks/configs/dataset/zvuk.yaml | 2 +- replay_benchmarks/configs/mode/train.yaml | 8 +- replay_benchmarks/configs/model/bert4rec.yaml | 1 + .../configs/model/bert4rec_megamarket.yaml | 18 ++ .../configs/model/bert4rec_movielens_1m.yaml | 15 +- .../configs/model/bert4rec_movielens_20m.yaml | 18 ++ .../configs/model/bert4rec_netflix.yaml | 18 ++ .../configs/model/bert4rec_zvuk.yaml | 9 +- replay_benchmarks/configs/model/sasrec.yaml | 5 +- .../configs/model/sasrec_megamarket.yaml | 18 ++ .../configs/model/sasrec_movielens_1m.yaml | 15 +- .../configs/model/sasrec_movielens_20m.yaml | 18 ++ .../configs/model/sasrec_netflix.yaml | 18 ++ .../configs/model/sasrec_zvuk.yaml | 14 +- replay_benchmarks/preprocessing/__init__.py | 1 + .../preprocessing/dataset_manager.py | 228 +++++++++++++++++ replay_benchmarks/train_runner.py | 233 +++++++++++++----- 24 files changed, 561 insertions(+), 296 deletions(-) create mode 100755 replay_benchmarks/configs/model/bert4rec_megamarket.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml create mode 100755 replay_benchmarks/configs/model/bert4rec_netflix.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_megamarket.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_movielens_20m.yaml create mode 100755 replay_benchmarks/configs/model/sasrec_netflix.yaml create mode 100644 replay_benchmarks/preprocessing/__init__.py create mode 100644 replay_benchmarks/preprocessing/dataset_manager.py diff --git a/main.py b/main.py index fa46a603e..3663c99aa 100755 --- a/main.py +++ b/main.py @@ -8,7 +8,10 @@ from replay_benchmarks.utils.conf import load_config, seed_everything from replay_benchmarks import TrainRunner, InferRunner -logging.basicConfig(level=logging.INFO) +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", +) warnings.filterwarnings("ignore") diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 302bf253a..ec1e77895 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -3,9 +3,7 @@ from abc import ABC, abstractmethod from typing import Tuple -import pandas as pd -from rs_datasets import MovieLens, Netflix - +from replay_benchmarks.preprocessing import DatasetManager from replay.data import ( FeatureHint, FeatureInfo, @@ -14,8 +12,6 @@ FeatureType, Dataset, ) -from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter -from replay.splitters import TimeSplitter from replay.utils import DataFrameLike from replay.data.nn import ( SequenceTokenizer, @@ -25,12 +21,6 @@ TensorFeatureInfo, ) -DATASET_MAPPINGS = { - "zvuk": {"kaggle": "alexxl/zvuk-dataset", "file": "zvuk-interactions.parquet"}, - "megamarket": {"kaggle": "alexxl/megamarket", "file": "megamarket.parquet"}, -} -SUPPORTED_RS_DATASETS = ["movielens", "netflix"] - class BaseRunner(ABC): def __init__(self, config): @@ -44,180 +34,20 @@ def __init__(self, config): self.user_column = self.dataset_cfg["feature_schema"]["query_column"] self.timestamp_column = self.dataset_cfg["feature_schema"]["timestamp_column"] self.tokenizer = None - self.interactions = None - self.user_features = None - self.item_features = None + self.dataset_manager = DatasetManager(config) self.tensor_schema = self.build_tensor_schema() self.setup_environment() - def load_data( - self, - ) -> Tuple[ - DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike - ]: - """Load dataset and split into train, validation, and test sets.""" - dataset_name = self.dataset_cfg["name"] - data_path = self.dataset_cfg["path"] - interactions_file = os.path.join(data_path, "interactions.parquet") - - if not os.path.exists(interactions_file): - logging.info(f"Dataset not found at {interactions_file}. Downloading...") - self._download_dataset(data_path, dataset_name, interactions_file) - - logging.info(f"Dataset is loaded from {interactions_file}") - interactions = pd.read_parquet(interactions_file) - self.interactions = self._filter_data(interactions) - - splitter = TimeSplitter( - time_threshold=self.dataset_cfg["preprocess"]["global_split_ratio"], - drop_cold_users=True, - drop_cold_items=True, - item_column=self.item_column, - query_column=self.user_column, - timestamp_column=self.timestamp_column, - ) - - train_events, validation_events, validation_gt, test_events, test_gt = ( - self._split_data(splitter, self.interactions) + def load_data(self): + """Load preprocessed data splits.""" + splits = self.dataset_manager.load_data() + return ( + splits["train"], + splits["validation"], + splits["validation_gt"], + splits["test"], + splits["test_gt"], ) - logging.info("Data split into train, validation, and test sets") - return train_events, validation_events, validation_gt, test_events, test_gt - - def _download_dataset( - self, data_path: str, dataset_name: str, interactions_file: str - ): - """Download dataset from Kaggle or rs_datasets.""" - if dataset_name in DATASET_MAPPINGS: - self._download_kaggle_dataset(data_path, dataset_name, interactions_file) - elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS): - self._download_rs_dataset(data_path, dataset_name, interactions_file) - else: - raise ValueError(f"Unsupported dataset: {dataset_name}") - - def _download_kaggle_dataset( - self, data_path: str, dataset_name: str, interactions_file: str - ) -> None: - from kaggle.api.kaggle_api_extended import KaggleApi - - """Download dataset from Kaggle.""" - kaggle_info = DATASET_MAPPINGS[dataset_name] - kaggle_dataset = kaggle_info["kaggle"] - raw_data_file = os.path.join(data_path, kaggle_info["file"]) - - os.environ.setdefault("KAGGLE_USERNAME", "recsysaccelerate") - os.environ.setdefault("KAGGLE_KEY", "6363e91b656fea576c39e4f55dcc1d00") - - api = KaggleApi() - api.authenticate() - - api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True) - logging.info(f"Dataset downloaded and extracted to {data_path}") - - interactions = pd.read_parquet(raw_data_file) - interactions[self.timestamp_column] = interactions[ - self.timestamp_column - ].astype("int64") - if dataset_name == "megamarket": - interactions = interactions[interactions.event == 2] # take only purchase - interactions.to_parquet(interactions_file) - - def _download_rs_dataset( - self, data_path: str, dataset_name: str, interactions_file: str - ) -> None: - """Download dataset from rs_datasets.""" - if "movielens" in dataset_name: - version = dataset_name.split("_")[1] - movielens = MovieLens(version=version, path=data_path) - interactions = movielens.ratings - interactions = interactions[interactions[self.dataset_cfg["feature_schema"]["rating_column"]] > self.dataset_cfg["preprocess"]["min_rating"]] - elif dataset_name == "netflix": - netflix = Netflix(path=data_path) - interactions = pd.concat([netflix.train, netflix.test]).fillna(5).reset_index(drop=True) - interactions = interactions[interactions[self.dataset_cfg["feature_schema"]["rating_column"]] > self.dataset_cfg["preprocess"]["min_rating"]] - interactions = interactions.sort_values(by=[self.user_column, self.timestamp_column]) - interactions[self.timestamp_column] += interactions.groupby([self.user_column, self.timestamp_column]).cumcount() - else: - raise ValueError(f"Unsupported dataset: {dataset_name}") - - interactions[self.timestamp_column] = interactions[ - self.timestamp_column - ].astype("int64") - interactions.to_parquet(interactions_file) - - def _filter_data(self, interactions: pd.DataFrame): - """Filters raw data based on minimum interaction counts.""" - - def log_min_counts(data: pd.DataFrame, message_prefix: str): - user_min = data.groupby(self.user_column).size().min() - item_min = data.groupby(self.item_column).size().min() - logging.info( - f"{message_prefix} - Min items per user: {user_min}, Min users per item: {item_min}" - ) - - log_min_counts(interactions, "Before filtering") - - interactions_filtered = MinCountFilter( - num_entries=self.dataset_cfg["preprocess"]["min_users_per_item"], - groupby_column=self.item_column, - ).transform(interactions) - - interactions_filtered = MinCountFilter( - num_entries=self.dataset_cfg["preprocess"]["min_items_per_user"], - groupby_column=self.user_column, - ).transform(interactions_filtered) - - log_min_counts(interactions_filtered, "After filtering") - - return interactions_filtered - - def _split_data( - self, splitter: TimeSplitter, interactions: pd.DataFrame - ) -> Tuple[ - DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike, DataFrameLike - ]: - """Split data for training, validation, and testing.""" - test_events, test_gt = splitter.split(interactions) - validation_events, validation_gt = splitter.split(test_events) - train_events = validation_events - - test_gt = test_gt[test_gt[self.item_column].isin(train_events[self.item_column])] - test_gt = test_gt[test_gt[self.user_column].isin(train_events[self.user_column])] - - # Limit number of gt events in val and test only if max_num_test_interactions is not null - max_test_interactions = self.dataset_cfg["preprocess"]["max_num_test_interactions"] - logging.info( - f"Distribution of seq_len in validation:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - logging.info( - f"Distribution of seq_len in test:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - if max_test_interactions is not None: - - validation_gt = NumInteractionsFilter( - num_interactions=max_test_interactions, - first=True, - query_column=self.user_column, - item_column=self.item_column, - timestamp_column=self.timestamp_column, - ).transform(validation_gt) - logging.info( - f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - - test_gt = NumInteractionsFilter( - num_interactions=max_test_interactions, - first=True, - query_column=self.user_column, - item_column=self.item_column, - timestamp_column=self.timestamp_column, - ).transform(test_gt) - logging.info( - f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." - ) - else: - logging.info("max_num_test_interactions is null. Skipping filtration.") - - return train_events, validation_events, validation_gt, test_events, test_gt def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: """Prepare the feature schema based on whether ground truth is needed.""" @@ -285,16 +115,12 @@ def prepare_datasets( train_dataset = Dataset( feature_schema=feature_schema, interactions=train_events, - query_features=self.user_features, - item_features=self.item_features, check_consistency=True, categorical_encoded=False, ) validation_dataset = Dataset( feature_schema=feature_schema, interactions=validation_events, - query_features=self.user_features, - item_features=self.item_features, check_consistency=True, categorical_encoded=False, ) @@ -307,8 +133,6 @@ def prepare_datasets( test_dataset = Dataset( feature_schema=feature_schema, interactions=test_events, - query_features=self.user_features, - item_features=self.item_features, check_consistency=True, categorical_encoded=False, ) @@ -356,6 +180,7 @@ def prepare_seq_datasets( def _initialize_tokenizer(self, train_dataset: Dataset) -> SequenceTokenizer: """Initialize and fit the SequenceTokenizer.""" + logging.info("Initializing and fitting SequenceTokenizer.") tokenizer = SequenceTokenizer( self.tensor_schema, allow_collect_to_master=True, handle_unknown_rule="drop" ) diff --git a/replay_benchmarks/configs/config.yaml b/replay_benchmarks/configs/config.yaml index 54a08edc3..53b632bda 100755 --- a/replay_benchmarks/configs/config.yaml +++ b/replay_benchmarks/configs/config.yaml @@ -1,6 +1,6 @@ defaults: - - dataset: movielens_1m - - model: sasrec + - dataset: zvuk + - model: bert4rec_zvuk - mode: train - acceleration: null @@ -12,7 +12,6 @@ env: paths: data_dir: "replay_benchmarks/data/" - model_dir: "replay_benchmarks/artifacts/models/" log_dir: "replay_benchmarks/artifacts/logs/" checkpoint_dir: "replay_benchmarks/artifacts/checkpoints/" results_dir: "replay_benchmarks/artifacts/results/" @@ -25,6 +24,7 @@ metrics: - precision - map - mrr + - coverage ks: - 1 - 5 diff --git a/replay_benchmarks/configs/dataset/megamarket.yaml b/replay_benchmarks/configs/dataset/megamarket.yaml index 5e5b9352a..4f86ffefb 100644 --- a/replay_benchmarks/configs/dataset/megamarket.yaml +++ b/replay_benchmarks/configs/dataset/megamarket.yaml @@ -10,6 +10,6 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_1m.yaml b/replay_benchmarks/configs/dataset/movielens_1m.yaml index 1ff66eff6..7ef14c925 100755 --- a/replay_benchmarks/configs/dataset/movielens_1m.yaml +++ b/replay_benchmarks/configs/dataset/movielens_1m.yaml @@ -10,7 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/movielens_20m.yaml b/replay_benchmarks/configs/dataset/movielens_20m.yaml index 5bd5c991d..bd0ccafe4 100755 --- a/replay_benchmarks/configs/dataset/movielens_20m.yaml +++ b/replay_benchmarks/configs/dataset/movielens_20m.yaml @@ -10,7 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/netflix.yaml b/replay_benchmarks/configs/dataset/netflix.yaml index 382f89b1a..4449c66ab 100755 --- a/replay_benchmarks/configs/dataset/netflix.yaml +++ b/replay_benchmarks/configs/dataset/netflix.yaml @@ -10,7 +10,7 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 min_rating: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/dataset/zvuk.yaml b/replay_benchmarks/configs/dataset/zvuk.yaml index fcbe541cd..3be21a62a 100755 --- a/replay_benchmarks/configs/dataset/zvuk.yaml +++ b/replay_benchmarks/configs/dataset/zvuk.yaml @@ -10,6 +10,6 @@ dataset: preprocess: global_split_ratio: 0.1 - max_num_test_interactions: Null + max_num_test_interactions: 200 min_users_per_item: 5 min_items_per_user: 3 \ No newline at end of file diff --git a/replay_benchmarks/configs/mode/train.yaml b/replay_benchmarks/configs/mode/train.yaml index 468f6a738..245e0cef9 100755 --- a/replay_benchmarks/configs/mode/train.yaml +++ b/replay_benchmarks/configs/mode/train.yaml @@ -1,8 +1,6 @@ mode: name: train - trainer_params: - batch_size: 512 - num_workers: 4 - epochs: 100 - learning_rate: 0.001 \ No newline at end of file + profiler: + enabled: false + row_limit: 5 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec.yaml b/replay_benchmarks/configs/model/bert4rec.yaml index b60b67828..627cf5fd1 100755 --- a/replay_benchmarks/configs/model/bert4rec.yaml +++ b/replay_benchmarks/configs/model/bert4rec.yaml @@ -9,6 +9,7 @@ model: hidden_size: 312 dropout_rate: 0.15 loss_type: CE # CE, BCE, SCE + loss_sample_count: Null training_params: embedding_dim: 312 learning_rate: 0.002 diff --git a/replay_benchmarks/configs/model/bert4rec_megamarket.yaml b/replay_benchmarks/configs/model/bert4rec_megamarket.yaml new file mode 100755 index 000000000..2eee43c0c --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_megamarket.yaml @@ -0,0 +1,18 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 200 + hidden_size: 312 + dropout_rate: 0.15 + loss_type: CE # CE, BCE, SCE + loss_sample_count: Null + training_params: + embedding_dim: 312 + learning_rate: 0.001 + batch_size: 8 + num_workers: 4 + max_epochs: 100 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml index bbe88b73c..0afc47696 100755 --- a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml @@ -4,14 +4,15 @@ model: params: model_params: block_count: 2 - head_count: 4 + head_count: 2 max_seq_len: 100 - hidden_size: 300 - dropout_rate: 0.5 + hidden_size: 128 + dropout_rate: 0.2 loss_type: CE # CE, BCE, SCE + loss_sample_count: Null training_params: - embedding_dim: 300 - learning_rate: 0.001 - batch_size: 512 + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 num_workers: 4 - max_epochs: 30 \ No newline at end of file + max_epochs: 200 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml new file mode 100755 index 000000000..0afc47696 --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml @@ -0,0 +1,18 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: Null + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_netflix.yaml b/replay_benchmarks/configs/model/bert4rec_netflix.yaml new file mode 100755 index 000000000..54c87b750 --- /dev/null +++ b/replay_benchmarks/configs/model/bert4rec_netflix.yaml @@ -0,0 +1,18 @@ +model: + name: bert4rec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: Null + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 8 + num_workers: 4 + max_epochs: 200 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml index b60b67828..2eee43c0c 100755 --- a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml +++ b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml @@ -4,14 +4,15 @@ model: params: model_params: block_count: 2 - head_count: 4 - max_seq_len: 20 + head_count: 2 + max_seq_len: 200 hidden_size: 312 dropout_rate: 0.15 loss_type: CE # CE, BCE, SCE + loss_sample_count: Null training_params: embedding_dim: 312 - learning_rate: 0.002 - batch_size: 512 + learning_rate: 0.001 + batch_size: 8 num_workers: 4 max_epochs: 100 \ No newline at end of file diff --git a/replay_benchmarks/configs/model/sasrec.yaml b/replay_benchmarks/configs/model/sasrec.yaml index ea3ab043d..e947e4714 100755 --- a/replay_benchmarks/configs/model/sasrec.yaml +++ b/replay_benchmarks/configs/model/sasrec.yaml @@ -8,10 +8,11 @@ model: max_seq_len: 100 hidden_size: 384 dropout_rate: 0.1 - loss_type: CE # CE, BCE, SCE + loss_type: BCE # CE, BCE, SCE + loss_sample_count: 500 training_params: embedding_dim: 300 learning_rate: 0.001 batch_size: 32 num_workers: 4 - max_epochs: 100 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_megamarket.yaml b/replay_benchmarks/configs/model/sasrec_megamarket.yaml new file mode 100755 index 000000000..5ad886926 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_megamarket.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 200 + hidden_size: 312 + dropout_rate: 0.15 + loss_type: BCE # CE, BCE, SCE + loss_sample_count: 500 + training_params: + embedding_dim: 312 + learning_rate: 0.001 + batch_size: 128 + num_workers: 4 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml index 90097ae78..e93e36394 100755 --- a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml @@ -5,13 +5,14 @@ model: model_params: block_count: 2 head_count: 2 - max_seq_len: 200 - hidden_size: 300 - dropout_rate: 0.5 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 training_params: - embedding_dim: 300 - learning_rate: 0.001 - batch_size: 512 + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 num_workers: 4 - max_epochs: 30 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml new file mode 100755 index 000000000..e93e36394 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_netflix.yaml b/replay_benchmarks/configs/model/sasrec_netflix.yaml new file mode 100755 index 000000000..e93e36394 --- /dev/null +++ b/replay_benchmarks/configs/model/sasrec_netflix.yaml @@ -0,0 +1,18 @@ +model: + name: sasrec + + params: + model_params: + block_count: 2 + head_count: 2 + max_seq_len: 100 + hidden_size: 128 + dropout_rate: 0.2 + loss_type: CE # CE, BCE, SCE + loss_sample_count: 200 + training_params: + embedding_dim: 128 + learning_rate: 0.0001 + batch_size: 256 + num_workers: 4 + max_epochs: 200 diff --git a/replay_benchmarks/configs/model/sasrec_zvuk.yaml b/replay_benchmarks/configs/model/sasrec_zvuk.yaml index ef299249a..85bfaa4ff 100755 --- a/replay_benchmarks/configs/model/sasrec_zvuk.yaml +++ b/replay_benchmarks/configs/model/sasrec_zvuk.yaml @@ -4,15 +4,15 @@ model: params: model_params: block_count: 2 - head_count: 4 - max_seq_len: 400 - hidden_size: 128 - dropout_rate: 0.1 + head_count: 2 + max_seq_len: 200 + hidden_size: 312 + dropout_rate: 0.15 loss_type: BCE # CE, BCE, SCE loss_sample_count: 500 training_params: - embedding_dim: 300 + embedding_dim: 312 learning_rate: 0.001 - batch_size: 512 + batch_size: 64 num_workers: 4 - max_epochs: 10 + max_epochs: 200 diff --git a/replay_benchmarks/preprocessing/__init__.py b/replay_benchmarks/preprocessing/__init__.py new file mode 100644 index 000000000..bcf89d573 --- /dev/null +++ b/replay_benchmarks/preprocessing/__init__.py @@ -0,0 +1 @@ +from .dataset_manager import DatasetManager \ No newline at end of file diff --git a/replay_benchmarks/preprocessing/dataset_manager.py b/replay_benchmarks/preprocessing/dataset_manager.py new file mode 100644 index 000000000..8da908ab1 --- /dev/null +++ b/replay_benchmarks/preprocessing/dataset_manager.py @@ -0,0 +1,228 @@ +import os +import pandas as pd +import logging + +from rs_datasets import MovieLens, Netflix + +from replay.splitters import TimeSplitter +from replay.preprocessing.filters import MinCountFilter, NumInteractionsFilter + +DATASET_MAPPINGS = { + "zvuk": {"kaggle": "alexxl/zvuk-dataset", "file": "zvuk-interactions.parquet"}, + "megamarket": {"kaggle": "alexxl/megamarket", "file": "megamarket.parquet"}, +} +SUPPORTED_RS_DATASETS = ["movielens", "netflix"] + + +class DatasetManager: + def __init__(self, config): + self.config = config + self.data_path = config["dataset"]["path"] + self.dataset_name = config["dataset"]["name"] + self.item_column = config["dataset"]["feature_schema"]["item_column"] + self.user_column = config["dataset"]["feature_schema"]["query_column"] + self.timestamp_column = config["dataset"]["feature_schema"]["timestamp_column"] + self.split_cache_dir = os.path.join(self.data_path, "split_cache") + + os.makedirs(self.split_cache_dir, exist_ok=True) + + def load_data(self): + split_paths = { + "train": os.path.join(self.split_cache_dir, "train.parquet"), + "validation": os.path.join(self.split_cache_dir, "validation.parquet"), + "validation_gt": os.path.join(self.split_cache_dir, "validation_gt.parquet"), + "test": os.path.join(self.split_cache_dir, "test.parquet"), + "test_gt": os.path.join(self.split_cache_dir, "test_gt.parquet"), + } + + if all(os.path.exists(path) for path in split_paths.values()): + logging.info("Loading preprocessed splits from cache.") + return {key: pd.read_parquet(path) for key, path in split_paths.items()} + + logging.info("Preprocessing data as splits are not cached.") + raw_data = self._load_raw_data() + filtered_data = self._filter_data(raw_data) + splits = self._split_data(filtered_data) + + # Save preprocessed splits + for split_name, split_data in splits.items(): + split_data.to_parquet(split_paths[split_name], index=False) + + return splits + + def _load_raw_data(self): + interactions_file = os.path.join(self.data_path, "interactions.parquet") + if not os.path.exists(interactions_file): + logging.info(f"Dataset not found at {interactions_file}. Downloading...") + self._download_dataset(self.data_path, self.dataset_name, interactions_file) + logging.info(f"Loading raw dataset from {interactions_file}") + return pd.read_parquet(interactions_file) + + def _download_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ): + """Download dataset from Kaggle or rs_datasets.""" + if dataset_name in DATASET_MAPPINGS: + self._download_kaggle_dataset(data_path, dataset_name, interactions_file) + elif any(ds in dataset_name for ds in SUPPORTED_RS_DATASETS): + self._download_rs_dataset(data_path, dataset_name, interactions_file) + else: + raise ValueError(f"Unsupported dataset: {dataset_name}") + + def _download_kaggle_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ) -> None: + from kaggle.api.kaggle_api_extended import KaggleApi + + """Download dataset from Kaggle.""" + kaggle_info = DATASET_MAPPINGS[dataset_name] + kaggle_dataset = kaggle_info["kaggle"] + raw_data_file = os.path.join(data_path, kaggle_info["file"]) + + os.environ.setdefault("KAGGLE_USERNAME", "recsysaccelerate") + os.environ.setdefault("KAGGLE_KEY", "6363e91b656fea576c39e4f55dcc1d00") + + api = KaggleApi() + api.authenticate() + + api.dataset_download_files(kaggle_dataset, path=data_path, unzip=True) + logging.info(f"Dataset downloaded and extracted to {data_path}") + + interactions = pd.read_parquet(raw_data_file) + interactions[self.timestamp_column] = interactions[ + self.timestamp_column + ].astype("int64") + if dataset_name == "megamarket": + interactions = interactions[interactions.event == 2] # take only purchase + interactions.to_parquet(interactions_file) + + def _download_rs_dataset( + self, data_path: str, dataset_name: str, interactions_file: str + ) -> None: + """Download dataset from rs_datasets.""" + if "movielens" in dataset_name: + version = dataset_name.split("_")[1] + movielens = MovieLens(version=version, path=data_path) + interactions = movielens.ratings + interactions = interactions[ + interactions[self.config["dataset"]["feature_schema"]["rating_column"]] + > self.config["dataset"]["preprocess"]["min_rating"] + ] + elif dataset_name == "netflix": + netflix = Netflix(path=data_path) + interactions = ( + pd.concat([netflix.train, netflix.test]) + .fillna(5) + .reset_index(drop=True) + ) + interactions = interactions[ + interactions[self.config["dataset"]["feature_schema"]["rating_column"]] + > self.config["dataset"]["preprocess"]["min_rating"] + ] + interactions = interactions.sort_values( + by=[self.user_column, self.timestamp_column] + ) + interactions[self.timestamp_column] = pd.to_datetime(interactions[self.timestamp_column]) + interactions[self.timestamp_column] += pd.to_timedelta( + interactions.groupby([self.user_column, self.timestamp_column]).cumcount(), + unit="s" + ) + else: + raise ValueError(f"Unsupported dataset: {dataset_name}") + + interactions[self.timestamp_column] = interactions[ + self.timestamp_column + ].astype("int64") + interactions.to_parquet(interactions_file) + + def _filter_data(self, interactions: pd.DataFrame): + """Filters raw data based on minimum interaction counts.""" + + def log_min_counts(data: pd.DataFrame, message_prefix: str): + user_min = data.groupby(self.user_column).size().min() + item_min = data.groupby(self.item_column).size().min() + logging.info( + f"{message_prefix} - Min items per user: {user_min}, Min users per item: {item_min}" + ) + + log_min_counts(interactions, "Before filtering") + + interactions = MinCountFilter( + num_entries=self.config["dataset"]["preprocess"]["min_users_per_item"], + groupby_column=self.item_column, + ).transform(interactions) + + interactions = MinCountFilter( + num_entries=self.config["dataset"]["preprocess"]["min_items_per_user"], + groupby_column=self.user_column, + ).transform(interactions) + + log_min_counts(interactions, "After filtering") + + return interactions + + def _split_data(self, interactions): + """Split data for training, validation, and testing.""" + splitter = TimeSplitter( + time_threshold=self.config["dataset"]["preprocess"]["global_split_ratio"], + drop_cold_users=True, + drop_cold_items=True, + item_column=self.item_column, + query_column=self.user_column, + timestamp_column=self.timestamp_column, + ) + + test_events, test_gt = splitter.split(interactions) + validation_events, validation_gt = splitter.split(test_events) + train_events = validation_events + + test_gt = test_gt[ + test_gt[self.item_column].isin(train_events[self.item_column]) + ] + test_gt = test_gt[ + test_gt[self.user_column].isin(train_events[self.user_column]) + ] + + # Limit number of gt events in val and test only if max_num_test_interactions is not null + max_test_interactions = self.config["dataset"]["preprocess"][ + "max_num_test_interactions" + ] + logging.info( + f"Distribution of seq_len in validation:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + logging.info( + f"Distribution of seq_len in test:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + if max_test_interactions is not None: + + validation_gt = NumInteractionsFilter( + num_interactions=max_test_interactions, + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(validation_gt) + logging.info( + f"Distribution of seq_len in validation after filtering:\n{validation_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + + test_gt = NumInteractionsFilter( + num_interactions=max_test_interactions, + first=True, + query_column=self.user_column, + item_column=self.item_column, + timestamp_column=self.timestamp_column, + ).transform(test_gt) + logging.info( + f"Distribution of seq_len in test after filtering:\n{test_gt.groupby(self.user_column)[self.item_column].agg('count').describe()}." + ) + else: + logging.info("max_num_test_interactions is null. Skipping filtration.") + + return { + "train": train_events, + "validation": validation_events, + "validation_gt": validation_gt, + "test": test_events, + "test_gt": test_gt, + } diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index 08c21856f..1e88e2c1c 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -1,18 +1,32 @@ import logging import os +from pathlib import Path +import torch import lightning as L -from lightning.pytorch.loggers import CSVLogger -from lightning.pytorch.callbacks import ModelCheckpoint +from lightning.pytorch.loggers import CSVLogger, TensorBoardLogger +from lightning.pytorch.callbacks import ModelCheckpoint, EarlyStopping from torch.utils.data import DataLoader -from torch.profiler import profile, record_function, ProfilerActivity, schedule +from torch.profiler import profile, ProfilerActivity from replay_benchmarks.base_runner import BaseRunner -from replay.metrics import OfflineMetrics, Recall, Precision, MAP, NDCG, HitRate, MRR +from replay.metrics import ( + OfflineMetrics, + Recall, + Precision, + MAP, + NDCG, + HitRate, + MRR, + Coverage, +) from replay.metrics.torch_metrics_builder import metrics_to_df from replay.models.nn.sequential import SasRec, Bert4Rec from replay.models.nn.optimizer_utils import FatOptimizerFactory -from replay.models.nn.sequential.callbacks import ValidationMetricsCallback +from replay.models.nn.sequential.callbacks import ( + ValidationMetricsCallback, + PandasPredictionCallback, +) from replay.models.nn.sequential.postprocessors import RemoveSeenItems from replay.models.nn.sequential.sasrec import ( SasRecTrainingDataset, @@ -29,11 +43,29 @@ class TrainRunner(BaseRunner): def __init__(self, config): super().__init__(config) - self.logger = CSVLogger( - save_dir=config["paths"]["log_dir"], name=self.model_name - ) + self.item_count = None + self.raw_test_gt = None + self.seq_val_dataset = None + self.seq_test_dataset = None + + # Loggers + log_dir = Path(config["paths"]["log_dir"]) / self.dataset_name / self.model_name + self.csv_logger = CSVLogger(save_dir=log_dir / "csv_logs") + self.tb_logger = TensorBoardLogger(save_dir=log_dir / "tb_logs") + + self._check_paths() - def initialize_model(self): + def _check_paths(self): + """Ensure all required directories exist.""" + required_paths = [ + self.config["paths"]["log_dir"], + self.config["paths"]["checkpoint_dir"], + self.config["paths"]["results_dir"], + ] + for path in required_paths: + Path(path).mkdir(parents=True, exist_ok=True) + + def _initialize_model(self): """Initialize the model based on the configuration.""" model_config = { "tensor_schema": self.tensor_schema, @@ -50,7 +82,7 @@ def initialize_model(self): else: raise ValueError(f"Unsupported model type: {self.model_name}") - def prepare_dataloaders( + def _prepare_dataloaders( self, seq_train_dataset, seq_validation_dataset, @@ -58,7 +90,8 @@ def prepare_dataloaders( seq_test_dataset, ): """Initialize dataloaders for training, validation, and testing.""" - logging.info("Preparing dataloaders objects...") + logging.info("Preparing dataloaders...") + dataset_mapping = { "sasrec": ( SasRecTrainingDataset, @@ -72,15 +105,13 @@ def prepare_dataloaders( ), } - if self.model_name.lower() in dataset_mapping: - TrainingDataset, ValidationDataset, PredictionDataset = dataset_mapping[ - self.model_name.lower() - ] - else: + datasets = dataset_mapping.get(self.model_name.lower()) + if not datasets: raise ValueError( f"Unsupported model type for dataloaders: {self.model_name}" ) + TrainingDataset, ValidationDataset, PredictionDataset = datasets common_params = { "batch_size": self.model_cfg["training_params"]["batch_size"], "num_workers": self.model_cfg["training_params"]["num_workers"], @@ -114,43 +145,20 @@ def prepare_dataloaders( return train_dataloader, val_dataloader, prediction_dataloader - def calculate_metrics(self, predictions, ground_truth): - """Calculate and return the desired metrics based on the predictions.""" - top_k = self.config["metrics"]["ks"] - metrics_list = [ - Recall(top_k), - Precision(top_k), - MAP(top_k), - NDCG(top_k), - MRR(top_k), - HitRate(top_k), - ] - init_args = {"query_column": "user_id", "rating_column": "score"} - - metrics = OfflineMetrics(metrics_list, **init_args)(predictions, ground_truth) - return metrics_to_df(metrics) - - def save_model(self, model, checkpoint_callback): - """Save the best model checkpoint to the specified directory.""" - best_model_path = checkpoint_callback.best_model_path - save_path = self.config["paths"]["model_dir"] - model.load_from_checkpoint(best_model_path).save( - f"{save_path}/{self.model_name}_best.pt" - ) - logging.info(f"Best model saved at: {save_path}/{self.model_name}_best.pt") - - def run(self): - """Execute the training pipeline.""" + def _load_dataloaders(self): + """Loads data and prepares dataloaders.""" logging.info("Preparing datasets for training.") train_events, validation_events, validation_gt, test_events, test_gt = ( self.load_data() ) + self.raw_test_gt = test_gt train_dataset, val_dataset, val_gt_dataset, test_dataset, test_gt_dataset = ( self.prepare_datasets( train_events, validation_events, validation_gt, test_events, test_gt ) ) + self.item_count = train_dataset.item_count ( seq_train_dataset, @@ -160,51 +168,140 @@ def run(self): ) = self.prepare_seq_datasets( train_dataset, val_dataset, val_gt_dataset, test_dataset, test_gt_dataset ) + self.seq_val_dataset = seq_validation_dataset + self.seq_test_dataset = seq_test_dataset + + return self._prepare_dataloaders( + seq_train_dataset, + seq_validation_dataset, + seq_validation_gt, + seq_test_dataset, + ) + + def calculate_metrics(self, predictions, ground_truth): + """Calculate and return the desired metrics based on the predictions.""" + top_k = self.config["metrics"]["ks"] + metrics_list = [ + Recall(top_k), + Precision(top_k), + MAP(top_k), + NDCG(top_k), + MRR(top_k), + HitRate(top_k), + ] + metrics = OfflineMetrics( + metrics_list, query_column="user_id", rating_column="score" + )(predictions, ground_truth) + return metrics_to_df(metrics) + + def save_model(self, trainer, best_model): + """Save the best model checkpoint to the specified directory.""" + save_path = os.path.join( + self.config["paths"]["checkpoint_dir"], + f"{self.model_name}_{self.dataset_name}", + ) + torch.save( + { + "model_state_dict": best_model.state_dict(), + "optimizer_state_dict": trainer.optimizers[0].state_dict(), + "config": self.model_cfg, + }, + f"{save_path}/{self.model_name}_checkpoint.pth", + ) + self.tokenizer.save(f"{save_path}/sequence_tokenizer") + logging.info(f"Best model saved at: {save_path}") + + def run(self): + """Execute the training pipeline.""" train_dataloader, val_dataloader, prediction_dataloader = ( - self.prepare_dataloaders( - seq_train_dataset, - seq_validation_dataset, - seq_validation_gt, - seq_test_dataset, - ) + self._load_dataloaders() ) - model = self.initialize_model() + logging.info("Initializing model...") + model = self._initialize_model() + checkpoint_callback = ModelCheckpoint( - dirpath=self.config["paths"]["checkpoint_dir"], + dirpath=os.path.join( + self.config["paths"]["checkpoint_dir"], + f"{self.model_name}_{self.dataset_name}", + ), save_top_k=1, verbose=True, - monitor="recall@10", + monitor="ndcg@10", + mode="max", + ) + + early_stopping = EarlyStopping( + monitor="ndcg@10", + patience=self.model_cfg["training_params"]["max_epochs"] // 10, mode="max", + verbose=True, ) validation_metrics_callback = ValidationMetricsCallback( metrics=self.config["metrics"]["types"], ks=self.config["metrics"]["ks"], - item_count=train_dataset.item_count, - postprocessors=[RemoveSeenItems(seq_validation_dataset)], + item_count=self.item_count, + postprocessors=[RemoveSeenItems(self.seq_val_dataset)], ) trainer = L.Trainer( max_epochs=self.model_cfg["training_params"]["max_epochs"], - callbacks=[checkpoint_callback, validation_metrics_callback], - logger=self.logger, + callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback], + logger=[self.csv_logger, self.tb_logger], ) - logging.info("Starting model training.") - with profile( - activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], - record_shapes=True, - with_flops=True, - profile_memory=True, - ) as prof: + logging.info("Starting training...") + if self.config["mode"]["profiler"]["enabled"]: + with profile( + activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], + record_shapes=True, + with_flops=True, + profile_memory=True, + ) as prof: + trainer.fit(model, train_dataloader, val_dataloader) + logging.info( + prof.key_averages().table( + sort_by="self_cuda_time_total", + row_limit=self.config["mode"]["profiler"].get("row_limit", 10), + ) + ) + prof.export_chrome_trace( + os.path.join( + self.config["paths"]["log_dir"], + f"{self.model_name}_{self.dataset_name}_profile.json", + ) + ) + else: trainer.fit(model, train_dataloader, val_dataloader) + if self.model_name.lower() == "sasrec": + best_model = SasRec.load_from_checkpoint(checkpoint_callback.best_model_path) + elif self.model_name.lower() == "bert4rec": + best_model = Bert4Rec.load_from_checkpoint(checkpoint_callback.best_model_path) + self.save_model(trainer, best_model) - prof.export_chrome_trace( + logging.info("Evaluating on test set...") + pandas_prediction_callback = PandasPredictionCallback( + top_k=max(self.config["metrics"]["ks"]), + query_column="user_id", + item_column="item_id", + rating_column="score", + postprocessors=[RemoveSeenItems(self.seq_test_dataset)], + ) + L.Trainer(callbacks=[pandas_prediction_callback], inference_mode=True).predict( + best_model, dataloaders=prediction_dataloader, return_predictions=False + ) + + result = pandas_prediction_callback.get_result() + recommendations = self.tokenizer.query_and_item_id_encoder.inverse_transform( + result + ) + test_metrics = self.calculate_metrics(recommendations, self.raw_test_gt) + logging.info(test_metrics) + test_metrics.to_csv( os.path.join( - self.config["paths"]["log_dir"], - f"{self.model_name}_{self.dataset_name}_profile.json", - ) + self.config["paths"]["results_dir"], + f"{self.model_name}_{self.dataset_name}_test_metrics.csv", + ), ) - logging.info("Training completed.") From 9895e19e2d6af7c54ad671d29cff3002f3b7e4b8 Mon Sep 17 00:00:00 2001 From: petrsokerin <55953039+petrsokerin@users.noreply.github.com> Date: Mon, 2 Dec 2024 15:04:18 +0300 Subject: [PATCH 21/27] Sce dev (#5) * debug hotfix --------- Co-authored-by: Escape142 --- replay/models/nn/sequential/bert4rec/lightning.py | 2 +- replay/models/nn/sequential/sasrec/lightning.py | 2 +- replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/replay/models/nn/sequential/bert4rec/lightning.py b/replay/models/nn/sequential/bert4rec/lightning.py index a2436ae2f..757808281 100644 --- a/replay/models/nn/sequential/bert4rec/lightning.py +++ b/replay/models/nn/sequential/bert4rec/lightning.py @@ -355,7 +355,7 @@ def _compute_loss_scalable_ce( labels_mask = (~padding_mask) + tokens_mask masked_tokens = ~labels_mask - pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + pad_token = feature_tensors[self._schema.item_id_feature_name].view(-1)[~padding_mask.view(-1)][0] emb = self._model.forward_step(feature_tensors, padding_mask, tokens_mask) hd = torch.tensor(emb.shape[-1]) diff --git a/replay/models/nn/sequential/sasrec/lightning.py b/replay/models/nn/sequential/sasrec/lightning.py index db160e79c..de0f061a0 100644 --- a/replay/models/nn/sequential/sasrec/lightning.py +++ b/replay/models/nn/sequential/sasrec/lightning.py @@ -333,7 +333,7 @@ def _compute_loss_scalable_ce( target_padding_mask: torch.BoolTensor, ) -> torch.Tensor: - pad_token = feature_tensors[self._model.item_feature_name].view(-1)[~padding_mask.view(-1)][0] + pad_token = feature_tensors[self._schema.item_id_feature_name].view(-1)[~padding_mask.view(-1)][0] emb = self._model.forward_step(feature_tensors, padding_mask)[target_padding_mask] hd = torch.tensor(emb.shape[-1]) diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml index 0afc47696..5d1e5aa30 100755 --- a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml @@ -15,4 +15,4 @@ model: learning_rate: 0.0001 batch_size: 256 num_workers: 4 - max_epochs: 200 \ No newline at end of file + max_epochs: 200 From c97f52e3a22df5542e3b3525af38d1076e5c1bc9 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Mon, 2 Dec 2024 17:36:17 +0000 Subject: [PATCH 22/27] add custom model name in logs and saving training time --- replay_benchmarks/base_runner.py | 1 + replay_benchmarks/configs/model/bert4rec.yaml | 1 + .../configs/model/bert4rec_megamarket.yaml | 1 + .../configs/model/bert4rec_movielens_1m.yaml | 1 + .../configs/model/bert4rec_movielens_20m.yaml | 1 + .../configs/model/bert4rec_netflix.yaml | 1 + .../configs/model/bert4rec_zvuk.yaml | 1 + replay_benchmarks/configs/model/sasrec.yaml | 1 + .../configs/model/sasrec_megamarket.yaml | 1 + .../configs/model/sasrec_movielens_1m.yaml | 1 + .../configs/model/sasrec_movielens_20m.yaml | 1 + .../configs/model/sasrec_netflix.yaml | 1 + .../configs/model/sasrec_zvuk.yaml | 1 + replay_benchmarks/train_runner.py | 29 ++++++++++++++----- 14 files changed, 35 insertions(+), 7 deletions(-) diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index ec1e77895..deeba4a43 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -26,6 +26,7 @@ class BaseRunner(ABC): def __init__(self, config): self.config = config self.model_name = config["model"]["name"] + self.model_save_name = config["model"]["save_name"] self.dataset_name = config["dataset"]["name"] self.dataset_cfg = config["dataset"] self.model_cfg = config["model"]["params"] diff --git a/replay_benchmarks/configs/model/bert4rec.yaml b/replay_benchmarks/configs/model/bert4rec.yaml index 627cf5fd1..4250b9fbe 100755 --- a/replay_benchmarks/configs/model/bert4rec.yaml +++ b/replay_benchmarks/configs/model/bert4rec.yaml @@ -1,5 +1,6 @@ model: name: bert4rec + save_name: bert4rec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/bert4rec_megamarket.yaml b/replay_benchmarks/configs/model/bert4rec_megamarket.yaml index 2eee43c0c..770e54254 100755 --- a/replay_benchmarks/configs/model/bert4rec_megamarket.yaml +++ b/replay_benchmarks/configs/model/bert4rec_megamarket.yaml @@ -1,5 +1,6 @@ model: name: bert4rec + save_name: bert4rec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml index 5d1e5aa30..90aa232f5 100755 --- a/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/bert4rec_movielens_1m.yaml @@ -1,5 +1,6 @@ model: name: bert4rec + save_name: bert4rec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml b/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml index 0afc47696..df8fbb5c3 100755 --- a/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml +++ b/replay_benchmarks/configs/model/bert4rec_movielens_20m.yaml @@ -1,5 +1,6 @@ model: name: bert4rec + save_name: bert4rec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/bert4rec_netflix.yaml b/replay_benchmarks/configs/model/bert4rec_netflix.yaml index 54c87b750..78b05b271 100755 --- a/replay_benchmarks/configs/model/bert4rec_netflix.yaml +++ b/replay_benchmarks/configs/model/bert4rec_netflix.yaml @@ -1,5 +1,6 @@ model: name: bert4rec + save_name: bert4rec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml index 2eee43c0c..770e54254 100755 --- a/replay_benchmarks/configs/model/bert4rec_zvuk.yaml +++ b/replay_benchmarks/configs/model/bert4rec_zvuk.yaml @@ -1,5 +1,6 @@ model: name: bert4rec + save_name: bert4rec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/sasrec.yaml b/replay_benchmarks/configs/model/sasrec.yaml index e947e4714..0f2bcc3dd 100755 --- a/replay_benchmarks/configs/model/sasrec.yaml +++ b/replay_benchmarks/configs/model/sasrec.yaml @@ -1,5 +1,6 @@ model: name: sasrec + save_name: sasrec_BCE params: model_params: diff --git a/replay_benchmarks/configs/model/sasrec_megamarket.yaml b/replay_benchmarks/configs/model/sasrec_megamarket.yaml index 5ad886926..e0bd4f093 100755 --- a/replay_benchmarks/configs/model/sasrec_megamarket.yaml +++ b/replay_benchmarks/configs/model/sasrec_megamarket.yaml @@ -1,5 +1,6 @@ model: name: sasrec + save_name: sasrec_BCE params: model_params: diff --git a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml index e93e36394..392926d7a 100755 --- a/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml +++ b/replay_benchmarks/configs/model/sasrec_movielens_1m.yaml @@ -1,5 +1,6 @@ model: name: sasrec + save_name: sasrec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml b/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml index e93e36394..392926d7a 100755 --- a/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml +++ b/replay_benchmarks/configs/model/sasrec_movielens_20m.yaml @@ -1,5 +1,6 @@ model: name: sasrec + save_name: sasrec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/sasrec_netflix.yaml b/replay_benchmarks/configs/model/sasrec_netflix.yaml index e93e36394..392926d7a 100755 --- a/replay_benchmarks/configs/model/sasrec_netflix.yaml +++ b/replay_benchmarks/configs/model/sasrec_netflix.yaml @@ -1,5 +1,6 @@ model: name: sasrec + save_name: sasrec_CE params: model_params: diff --git a/replay_benchmarks/configs/model/sasrec_zvuk.yaml b/replay_benchmarks/configs/model/sasrec_zvuk.yaml index 85bfaa4ff..4144db962 100755 --- a/replay_benchmarks/configs/model/sasrec_zvuk.yaml +++ b/replay_benchmarks/configs/model/sasrec_zvuk.yaml @@ -1,5 +1,6 @@ model: name: sasrec + save_name: sasrec_BCE params: model_params: diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index 1e88e2c1c..cd2fb25d1 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -1,11 +1,12 @@ import logging import os +import yaml from pathlib import Path import torch import lightning as L from lightning.pytorch.loggers import CSVLogger, TensorBoardLogger -from lightning.pytorch.callbacks import ModelCheckpoint, EarlyStopping +from lightning.pytorch.callbacks import ModelCheckpoint, EarlyStopping, Timer from torch.utils.data import DataLoader from torch.profiler import profile, ProfilerActivity @@ -49,9 +50,9 @@ def __init__(self, config): self.seq_test_dataset = None # Loggers - log_dir = Path(config["paths"]["log_dir"]) / self.dataset_name / self.model_name - self.csv_logger = CSVLogger(save_dir=log_dir / "csv_logs") - self.tb_logger = TensorBoardLogger(save_dir=log_dir / "tb_logs") + self.log_dir = Path(config["paths"]["log_dir"]) / self.dataset_name / self.model_save_name + self.csv_logger = CSVLogger(save_dir=self.log_dir / "csv_logs") + self.tb_logger = TensorBoardLogger(save_dir=self.log_dir / "tb_logs") self._check_paths() @@ -75,9 +76,9 @@ def _initialize_model(self): } model_config.update(self.model_cfg["model_params"]) - if self.model_name.lower() == "sasrec": + if "sasrec" in self.model_name.lower(): return SasRec(**model_config) - elif self.model_name.lower() == "bert4rec": + elif "bert4rec" in self.model_name.lower(): return Bert4Rec(**model_config) else: raise ValueError(f"Unsupported model type: {self.model_name}") @@ -212,6 +213,15 @@ def save_model(self, trainer, best_model): self.tokenizer.save(f"{save_path}/sequence_tokenizer") logging.info(f"Best model saved at: {save_path}") + def save_training_time(self, timer_callback): + training_valid_time = { + 'Training time, sec': round(timer_callback.time_elapsed("train"), 5), + 'Validation time, sec': round(timer_callback.time_elapsed("validate"), 5) + + } + with open(os.path.join(self.csv_logger.log_dir, "time_logs.yaml"), 'w') as file: + yaml.dump(training_valid_time, file) + def run(self): """Execute the training pipeline.""" train_dataloader, val_dataloader, prediction_dataloader = ( @@ -246,9 +256,11 @@ def run(self): postprocessors=[RemoveSeenItems(self.seq_val_dataset)], ) + timer_callback = Timer() + trainer = L.Trainer( max_epochs=self.model_cfg["training_params"]["max_epochs"], - callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback], + callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback, timer_callback], logger=[self.csv_logger, self.tb_logger], ) @@ -305,3 +317,6 @@ def run(self): f"{self.model_name}_{self.dataset_name}_test_metrics.csv", ), ) + + self.save_training_time(timer_callback) + From 606aa4e66308176e53535cabbb2897c459c6fd6a Mon Sep 17 00:00:00 2001 From: Escape142 Date: Mon, 2 Dec 2024 18:11:39 +0000 Subject: [PATCH 23/27] fix tensor schema --- replay_benchmarks/base_runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index deeba4a43..4fbfd2f71 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -56,12 +56,12 @@ def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: [ FeatureInfo( column=self.user_column, - feature_hint=FeatureHint.QUERY_ID, + feature_hint=self.user_column, feature_type=FeatureType.CATEGORICAL, ), FeatureInfo( column=self.item_column, - feature_hint=FeatureHint.ITEM_ID, + feature_hint=self.item_column, feature_type=FeatureType.CATEGORICAL, ), ] From f00e9861f2f00c590023cd4229e30b43fdbedec6 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Mon, 2 Dec 2024 18:14:03 +0000 Subject: [PATCH 24/27] add simple lightning profiler --- replay_benchmarks/train_runner.py | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index cd2fb25d1..aac717330 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -6,7 +6,8 @@ import torch import lightning as L from lightning.pytorch.loggers import CSVLogger, TensorBoardLogger -from lightning.pytorch.callbacks import ModelCheckpoint, EarlyStopping, Timer +from lightning.pytorch.callbacks import ModelCheckpoint, EarlyStopping +from lightning.pytorch.profilers import SimpleProfiler from torch.utils.data import DataLoader from torch.profiler import profile, ProfilerActivity @@ -213,15 +214,6 @@ def save_model(self, trainer, best_model): self.tokenizer.save(f"{save_path}/sequence_tokenizer") logging.info(f"Best model saved at: {save_path}") - def save_training_time(self, timer_callback): - training_valid_time = { - 'Training time, sec': round(timer_callback.time_elapsed("train"), 5), - 'Validation time, sec': round(timer_callback.time_elapsed("validate"), 5) - - } - with open(os.path.join(self.csv_logger.log_dir, "time_logs.yaml"), 'w') as file: - yaml.dump(training_valid_time, file) - def run(self): """Execute the training pipeline.""" train_dataloader, val_dataloader, prediction_dataloader = ( @@ -256,12 +248,13 @@ def run(self): postprocessors=[RemoveSeenItems(self.seq_val_dataset)], ) - timer_callback = Timer() + profiler = SimpleProfiler(dirpath = self.csv_logger.log_dir, filename = 'simple_profiler') trainer = L.Trainer( max_epochs=self.model_cfg["training_params"]["max_epochs"], callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback, timer_callback], logger=[self.csv_logger, self.tb_logger], + profiler=profiler ) logging.info("Starting training...") @@ -318,5 +311,3 @@ def run(self): ), ) - self.save_training_time(timer_callback) - From 0a136f1bf5109210f279110a035ed29aea85949f Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Mon, 2 Dec 2024 18:15:48 +0000 Subject: [PATCH 25/27] minor fix --- replay_benchmarks/train_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index aac717330..35f48ce2c 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -252,7 +252,7 @@ def run(self): trainer = L.Trainer( max_epochs=self.model_cfg["training_params"]["max_epochs"], - callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback, timer_callback], + callbacks=[checkpoint_callback, early_stopping, validation_metrics_callback], logger=[self.csv_logger, self.tb_logger], profiler=profiler ) From 5c4736f9c88482cc8266b743e81737dd17cdb520 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Mon, 2 Dec 2024 18:21:32 +0000 Subject: [PATCH 26/27] pull changes with user_item_id --- replay_benchmarks/base_runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/replay_benchmarks/base_runner.py b/replay_benchmarks/base_runner.py index 4fbfd2f71..deeba4a43 100755 --- a/replay_benchmarks/base_runner.py +++ b/replay_benchmarks/base_runner.py @@ -56,12 +56,12 @@ def prepare_feature_schema(self, is_ground_truth: bool) -> FeatureSchema: [ FeatureInfo( column=self.user_column, - feature_hint=self.user_column, + feature_hint=FeatureHint.QUERY_ID, feature_type=FeatureType.CATEGORICAL, ), FeatureInfo( column=self.item_column, - feature_hint=self.item_column, + feature_hint=FeatureHint.ITEM_ID, feature_type=FeatureType.CATEGORICAL, ), ] From 2fdb39e0f8235d69b992c5d7cef5e1191227dc78 Mon Sep 17 00:00:00 2001 From: petrsokerin Date: Mon, 2 Dec 2024 18:44:23 +0000 Subject: [PATCH 27/27] fix model_save_name --- replay_benchmarks/train_runner.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/replay_benchmarks/train_runner.py b/replay_benchmarks/train_runner.py index 35f48ce2c..2cbed048e 100755 --- a/replay_benchmarks/train_runner.py +++ b/replay_benchmarks/train_runner.py @@ -200,7 +200,7 @@ def save_model(self, trainer, best_model): """Save the best model checkpoint to the specified directory.""" save_path = os.path.join( self.config["paths"]["checkpoint_dir"], - f"{self.model_name}_{self.dataset_name}", + f"{self.model_save_name}_{self.dataset_name}", ) torch.save( { @@ -208,7 +208,7 @@ def save_model(self, trainer, best_model): "optimizer_state_dict": trainer.optimizers[0].state_dict(), "config": self.model_cfg, }, - f"{save_path}/{self.model_name}_checkpoint.pth", + f"{save_path}/{self.model_save_name}_checkpoint.pth", ) self.tokenizer.save(f"{save_path}/sequence_tokenizer") @@ -226,7 +226,7 @@ def run(self): checkpoint_callback = ModelCheckpoint( dirpath=os.path.join( self.config["paths"]["checkpoint_dir"], - f"{self.model_name}_{self.dataset_name}", + f"{self.model_save_name}_{self.dataset_name}", ), save_top_k=1, verbose=True, @@ -275,7 +275,7 @@ def run(self): prof.export_chrome_trace( os.path.join( self.config["paths"]["log_dir"], - f"{self.model_name}_{self.dataset_name}_profile.json", + f"{self.model_save_name}_{self.dataset_name}_profile.json", ) ) else: @@ -307,7 +307,7 @@ def run(self): test_metrics.to_csv( os.path.join( self.config["paths"]["results_dir"], - f"{self.model_name}_{self.dataset_name}_test_metrics.csv", + f"{self.model_save_name}_{self.dataset_name}_test_metrics.csv", ), )