From 3db6cec8b6300af6e147ac248b25451638c76109 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 27 Mar 2023 22:25:17 +0200
Subject: [PATCH 01/15] add pylint to precommit

---
 .pre-commit-config.yaml | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index fe4c8217..d7189f77 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -8,3 +8,20 @@ repos:
     rev: 22.3.0
     hooks:
       - id: black
+  - repo: local
+    hooks:
+      - id: pylint
+        name: pylint
+        entry: pylint
+        language: system
+        types: [python]
+        args:
+          [
+            "-rn",
+            "-sn",
+            "--load-plugins=pylint.extensions.docparams",
+            "--accept-no-yields-doc=no",
+            "--accept-no-return-doc=no",
+            "--accept-no-raise-doc=no",
+            "--accept-no-param-doc=no",
+          ]
-- 
GitLab


From 4527005a8a8f7c3a2964d7641230b9ab6e543baa Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 15:24:41 +0200
Subject: [PATCH 02/15] updated toml file.

---
 .gitlab-ci.yml | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index dbeb3877..c64dc913 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,12 +20,24 @@ tests:
     - pip install -r requirements.txt
     - pytest
 
+build_package:
+  stage: build
+  before_script:
+    - pip install build
+  script:
+    - rm -rf dist/
+    - python -m build
+  artifacts:
+    untracked: true
+    expire_in: 1 week
+  tags:
+    - docker
 publish_package:
   stage: publish
   image: "python:3.9"
-  script:
+  before_script:
     - pip install twine
-    - python setup.py bdist_wheel
+  script:
     - TWINE_PASSWORD=${pypln_token} TWINE_USERNAME=__token__ python -m twine upload dist/*
   tags:
     - docker
-- 
GitLab


From 6e6881840ecbaf314e080d7268c73cf81eb4702c Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 18:41:16 +0200
Subject: [PATCH 03/15] renaming PLNPCA to PlnPCAcollection and _PLNPCA to
 PlnPCA. Now PlnPCA is public. PlnPCAcollection is a collection, I implement
 all the required methods such as __getitem__ etc, and wrote tests for it.

---
 pyPLNmodels/__init__.py                       |  12 +-
 pyPLNmodels/_utils.py                         |  26 +--
 pyPLNmodels/elbos.py                          |   8 +-
 pyPLNmodels/models.py                         | 163 +++++++++---------
 pyproject.toml                                |   9 +-
 setup.py                                      |   7 +-
 tests/conftest.py                             |  28 +--
 tests/test_common.py                          |  16 +-
 tests/test_pln_full.py                        |   4 +-
 ...est_plnpca.py => test_plnpcacollection.py} |  30 ++--
 tests/test_setters.py                         |  16 +-
 11 files changed, 173 insertions(+), 146 deletions(-)
 rename tests/{test_plnpca.py => test_plnpcacollection.py} (73%)

diff --git a/pyPLNmodels/__init__.py b/pyPLNmodels/__init__.py
index d895c7cd..e619625e 100644
--- a/pyPLNmodels/__init__.py
+++ b/pyPLNmodels/__init__.py
@@ -1,22 +1,24 @@
-from .models import PLNPCA, PLN  # pylint:disable=[C0114]
+from .models import PlnPCAcollection, Pln, PlnPCA  # pylint:disable=[C0114]
+from .oaks import load_oaks
 from .elbos import profiled_elbo_pln, elbo_plnpca, elbo_pln
 from ._utils import (
     get_simulated_count_data,
     get_real_count_data,
     load_model,
-    load_plnpca,
+    load_plnpcacollection,
     load_pln,
 )
 
 __all__ = (
-    "PLNPCA",
-    "PLN",
+    "PlnPCAcollection",
+    "Pln",
+    "PlnPCA",
     "profiled_elbo_pln",
     "elbo_plnpca",
     "elbo_pln",
     "get_simulated_count_data",
     "get_real_count_data",
     "load_model",
-    "load_plnpca",
+    "load_plnpcacollection",
     "load_pln",
 )
diff --git a/pyPLNmodels/_utils.py b/pyPLNmodels/_utils.py
index 4b977e0a..9dc16713 100644
--- a/pyPLNmodels/_utils.py
+++ b/pyPLNmodels/_utils.py
@@ -93,7 +93,7 @@ def _init_covariance(
     counts: torch.Tensor, covariates: torch.Tensor, coef: torch.Tensor
 ) -> torch.Tensor:
     """
-    Initialization for covariance for the PLN model. Take the log of counts
+    Initialization for covariance for the Pln model. Take the log of counts
     (careful when counts=0), remove the covariates effects X@coef and
     then do as a MLE for Gaussians samples.
 
@@ -124,7 +124,7 @@ def _init_components(
     counts: torch.Tensor, covariates: torch.Tensor, coef: torch.Tensor, rank: int
 ) -> torch.Tensor:
     """
-    Initialization for components for the PLN model. Get a first guess for covariance
+    Initialization for components for the Pln model. Get a first guess for covariance
     that is easier to estimate and then takes the rank largest eigenvectors to get components.
 
     Parameters
@@ -235,7 +235,7 @@ def sample_pln(
     seed: int = None,
 ) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
     """
-    Sample from the Poisson Log-Normal (PLN) model.
+    Sample from the Poisson Log-Normal (Pln) model.
 
     Parameters
     ----------
@@ -273,7 +273,7 @@ def sample_pln(
     parameter = torch.exp(offsets + gaussian)
 
     if _coef_inflation is not None:
-        print("ZIPLN is sampled")
+        print("ZIPln is sampled")
         zero_inflated_mean = torch.matmul(covariates, _coef_inflation)
         ksi = torch.bernoulli(1 / (1 + torch.exp(-zero_inflated_mean)))
     else:
@@ -368,7 +368,7 @@ def log_posterior(
     coef: torch.Tensor,
 ) -> torch.Tensor:
     """
-    Compute the log posterior of the Poisson Log-Normal (PLN) model.
+    Compute the log posterior of the Poisson Log-Normal (Pln) model.
 
     Parameters
     ----------
@@ -964,39 +964,39 @@ def load_model(path_of_directory: str) -> Dict[str, Any]:
 
 def load_pln(path_of_directory: str) -> Dict[str, Any]:
     """
-    Load PLN models from the given directory.
+    Load Pln models from the given directory.
 
     Parameters
     ----------
     path_of_directory : str
-        The path to the directory containing the PLN models.
+        The path to the directory containing the Pln models.
 
     Returns
     -------
     Dict[str, Any]
-        A dictionary containing the loaded PLN models.
+        A dictionary containing the loaded Pln models.
 
     """
     return load_model(path_of_directory)
 
 
-def load_plnpca(
+def load_plnpcacollection(
     path_of_directory: str, ranks: Optional[list[int]] = None
 ) -> Dict[int, Dict[str, Any]]:
     """
-    Load PLNPCA models from the given directory.
+    Load PlnPCAcollection models from the given directory.
 
     Parameters
     ----------
     path_of_directory : str
-        The path to the directory containing the PLNPCA models.
+        The path to the directory containing the PlnPCAcollection models.
     ranks : list[int], optional
         A list of ranks specifying which models to load. If None, all models in the directory will be loaded.
 
     Returns
     -------
     Dict[int, Dict[str, Any]]
-        A dictionary containing the loaded PLNPCA models, with ranks as keys.
+        A dictionary containing the loaded PlnPCAcollection models, with ranks as keys.
 
     Raises
     ------
@@ -1019,7 +1019,7 @@ def load_plnpca(
             ranks.append(rank)
     datas = {}
     for rank in ranks:
-        datas[rank] = load_model(f"_PLNPCA_rank_{rank}")
+        datas[rank] = load_model(f"PlnPCA_rank_{rank}")
     os.chdir(working_dir)
     return datas
 
diff --git a/pyPLNmodels/elbos.py b/pyPLNmodels/elbos.py
index c5f8927c..68b73247 100644
--- a/pyPLNmodels/elbos.py
+++ b/pyPLNmodels/elbos.py
@@ -16,7 +16,7 @@ def elbo_pln(
     coef: torch.Tensor,
 ) -> torch.Tensor:
     """
-    Compute the ELBO (Evidence Lower Bound) for the PLN model.
+    Compute the ELBO (Evidence Lower Bound) for the Pln model.
 
     Parameters:
     ----------
@@ -75,7 +75,7 @@ def profiled_elbo_pln(
     latent_var: torch.Tensor,
 ) -> torch.Tensor:
     """
-    Compute the ELBO (Evidence Lower Bound) for the PLN model with profiled parameters.
+    Compute the ELBO (Evidence Lower Bound) for the Pln model with profiled parameters.
 
     Parameters:
     ----------
@@ -122,7 +122,7 @@ def elbo_plnpca(
     coef: torch.Tensor,
 ) -> torch.Tensor:
     """
-    Compute the ELBO (Evidence Lower Bound) for the PLN model with PCA parametrization.
+    Compute the ELBO (Evidence Lower Bound) for the Pln model with PCA parametrization.
 
     Parameters:
     ----------
@@ -186,7 +186,7 @@ def elbo_zi_pln(
     _coef_inflation,
     dirac,
 ):
-    """Compute the ELBO (Evidence LOwer Bound) for the Zero Inflated PLN model.
+    """Compute the ELBO (Evidence LOwer Bound) for the Zero Inflated Pln model.
     See the doc for more details on the computation.
 
     Args:
diff --git a/pyPLNmodels/models.py b/pyPLNmodels/models.py
index c3849fb9..0c6c5c37 100644
--- a/pyPLNmodels/models.py
+++ b/pyPLNmodels/models.py
@@ -50,9 +50,9 @@ else:
 NB_CHARACTERS_FOR_NICE_PLOT = 70
 
 
-class _PLN(ABC):
+class _Pln(ABC):
     """
-    Virtual class for all the PLN models.
+    Virtual class for all the Pln models.
 
     This class must be derivatived. The methods `get_covariance`, `compute_elbo`,
     `_random_init_latent_parameters` and `_list_of_parameters_needing_gradient` must
@@ -195,7 +195,7 @@ class _PLN(ABC):
         verbose=False,
     ):
         """
-        Main function of the class. Fit a PLN to the data.
+        Main function of the class. Fit a Pln to the data.
         Parameters
         ----------
         counts : torch.tensor or ndarray or DataFrame.
@@ -559,8 +559,8 @@ class _PLN(ABC):
 
 
 # need to do a good init for M and S
-class PLN(_PLN):
-    _NAME = "PLN"
+class Pln(_Pln):
+    _NAME = "Pln"
     coef: torch.Tensor
 
     @property
@@ -634,7 +634,7 @@ class PLN(_PLN):
         )
 
     def _pring_beginning_message(self):
-        print(f"Fitting a PLN model with {self._description}")
+        print(f"Fitting a Pln model with {self._description}")
 
     @property
     def latent_variables(self):
@@ -667,8 +667,9 @@ class PLN(_PLN):
         pass
 
 
-class PLNPCA:
-    _NAME = "PLNPCA"
+class PlnPCAcollection:
+    _NAME = "PlnPCAcollection"
+    _dict_models: dict
 
     def __init__(
         self,
@@ -680,6 +681,7 @@ class PLNPCA:
         dict_of_dict_initialization=None,
         take_log_offsets=False,
     ):
+        self._dict_models = {}
         self._init_data(counts, covariates, offsets, offsets_formula, take_log_offsets)
         self._init_models(ranks, dict_of_dict_initialization)
 
@@ -715,91 +717,87 @@ class PLNPCA:
 
     @property
     def covariates(self):
-        return self.list_models[0].covariates
+        return self[self.ranks[0]].covariates
 
     @property
     def counts(self):
-        return self.list_models[0].counts
+        return self[self.ranks[0]].counts
 
     @property
     def coef(self):
-        return {model.rank: model.coef for model in self.list_models}
+        return {model.rank: model.coef for model in self.values()}
 
     @property
     def components(self):
-        return {model.rank: model.components for model in self.list_models}
+        return {model.rank: model.components for model in self.values()}
 
     @property
     def latent_mean(self):
-        return {model.rank: model.latent_mean for model in self.list_models}
+        return {model.rank: model.latent_mean for model in self.values()}
 
     @property
     def latent_var(self):
-        return {model.rank: model.latent_var for model in self.list_models}
+        return {model.rank: model.latent_var for model in self.values()}
 
     @counts.setter
     @array2tensor
     def counts(self, counts):
-        for model in self.list_models:
+        for model in self.values():
             model.counts = counts
 
     @coef.setter
     @array2tensor
     def coef(self, coef):
-        for model in self.list_models:
+        for model in self.values():
             model.coef = coef
 
     @covariates.setter
     @array2tensor
     def covariates(self, covariates):
-        for model in self.list_models:
+        for model in self.values():
             model.covariates = covariates
 
     @property
     def offsets(self):
-        return self.list_models[0].offsets
+        return self[self.ranks[0]].offsets
 
     @offsets.setter
     @array2tensor
     def offsets(self, offsets):
-        for model in self.list_models:
+        for model in self.values():
             model.offsets = offsets
 
     def _init_models(self, ranks, dict_of_dict_initialization):
         if isinstance(ranks, (Iterable, np.ndarray)):
-            self.list_models = []
             for rank in ranks:
                 if isinstance(rank, (int, np.integer)):
                     dict_initialization = _get_dict_initialization(
                         rank, dict_of_dict_initialization
                     )
-                    self.list_models.append(
-                        _PLNPCA(
-                            counts=self._counts,
-                            covariates=self._covariates,
-                            offsets=self._offsets,
-                            rank=rank,
-                            dict_initialization=dict_initialization,
-                        )
+                    self._dict_models[rank] = PlnPCA(
+                        counts=self._counts,
+                        covariates=self._covariates,
+                        offsets=self._offsets,
+                        rank=rank,
+                        dict_initialization=dict_initialization,
                     )
                 else:
                     raise TypeError(
-                        f"Please instantiate with either a list "
-                        f"of integers or an integer."
+                        "Please instantiate with either a list "
+                        "of integers or an integer."
                     )
         elif isinstance(ranks, (int, np.integer)):
             dict_initialization = _get_dict_initialization(
                 ranks, dict_of_dict_initialization
             )
-            self.list_models = [
-                _PLNPCA(
-                    self._counts,
-                    self._covariates,
-                    self._offsets,
-                    ranks,
-                    dict_initialization,
-                )
-            ]
+            self._dict_models[rank] = PlnPCA(
+                self._counts,
+                self._covariates,
+                self._offsets,
+                ranks,
+                dict_initialization,
+            )
+
         else:
             raise TypeError(
                 f"Please instantiate with either a list " f"of integers or an integer."
@@ -807,14 +805,10 @@ class PLNPCA:
 
     @property
     def ranks(self):
-        return [model.rank for model in self.list_models]
-
-    @property
-    def dict_models(self):
-        return {model.rank: model for model in self.list_models}
+        return [model.rank for model in self.values()]
 
     def _pring_beginning_message(self):
-        return f"Adjusting {len(self.ranks)} PLN models for PCA analysis \n"
+        return f"Adjusting {len(self.ranks)} Pln models for PCA analysis \n"
 
     @property
     def dim(self):
@@ -825,7 +819,7 @@ class PLNPCA:
         return self[self.ranks[0]].nb_cov
 
     ## should do something for this weird init. pb: if doing the init of self._counts etc
-    ## only in PLNPCA, then we don't do it for each _PLNPCA but then PLN is not doing it.
+    ## only in PlnPCAcollection, then we don't do it for each PlnPCA but then Pln is not doing it.
     def fit(
         self,
         nb_max_iteration=100000,
@@ -836,8 +830,8 @@ class PLNPCA:
         verbose=False,
     ):
         self._pring_beginning_message()
-        for i in range(len(self.list_models)):
-            model = self.list_models[i]
+        for i in range(len(self.values())):
+            model = self[self.ranks[i]]
             model.fit(
                 nb_max_iteration,
                 lr,
@@ -846,8 +840,8 @@ class PLNPCA:
                 do_smart_init,
                 verbose,
             )
-            if i < len(self.list_models) - 1:
-                next_model = self.list_models[i + 1]
+            if i < len(self.values()) - 1:
+                next_model = self[self.ranks[i + 1]]
                 self.init_next_model_with_previous_parameters(next_model, model)
         self._print_ending_message()
 
@@ -869,26 +863,43 @@ class PLNPCA:
         return self.best_model(criterion).rank
 
     def __getitem__(self, rank):
-        if (rank in self.ranks) is False:
-            asked_rank = rank
-            rank = _closest(self.ranks, asked_rank)
-            warning_string = " \n No such a model in the collection."
-            warning_string += "Returning model with _closest value.\n"
-            warning_string += f"Requested: {asked_rank}, returned: {rank}"
-            warnings.warn(message=warning_string)
-        return self.dict_models[rank]
+        return self._dict_models[rank]
+
+    def __len__(self):
+        return len(self._dict_models)
+
+    def __iter__(self):
+        return iter(self._dict_models)
+
+    def __contains__(self, rank):
+        return rank in self._dict_models.keys()
+
+    def keys(self):
+        return self._dict_models.keys()
+
+    def get(self, key, default):
+        if key in self:
+            return self[key]
+        else:
+            return default
+
+    def values(self):
+        return self._dict_models.values()
+
+    def items(self):
+        return self._dict_models.items()
 
     @property
     def BIC(self):
-        return {model.rank: int(model.BIC) for model in self.list_models}
+        return {model.rank: int(model.BIC) for model in self.values()}
 
     @property
     def AIC(self):
-        return {model.rank: int(model.AIC) for model in self.list_models}
+        return {model.rank: int(model.AIC) for model in self.values()}
 
     @property
     def loglikes(self):
-        return {model.rank: model.loglike for model in self.list_models}
+        return {model.rank: model.loglike for model in self.values()}
 
     def show(self):
         bic = self.BIC
@@ -932,7 +943,7 @@ class PLNPCA:
     def save(self, path_of_directory="./", ranks=None):
         if ranks is None:
             ranks = self.ranks
-        for model in self.list_models:
+        for model in self.values():
             if model.rank in ranks:
                 model.save(path_of_directory)
 
@@ -942,21 +953,17 @@ class PLNPCA:
 
     @property
     def n_samples(self):
-        return self.list_models[0].n_samples
+        return self[self.ranks[0]].n_samples
 
     @property
     def _p(self):
         return self[self.ranks[0]].p
 
-    @property
-    def models(self):
-        return self.dict_models.values()
-
-    def __str__(self):
-        nb_models = len(self.list_models)
+    def __repr__(self):
+        nb_models = len(self)
         delimiter = "\n" + "-" * NB_CHARACTERS_FOR_NICE_PLOT + "\n"
         to_print = delimiter
-        to_print += f"Collection of {nb_models} PLNPCA models with \
+        to_print += f"Collection of {nb_models} PlnPCAcollection models with \
                     {self.dim} variables."
         to_print += delimiter
         to_print += f" - Ranks considered:{self.ranks}\n"
@@ -970,7 +977,7 @@ class PLNPCA:
         to_print += f"   Best model(lower AIC): \
                 {self.best_model(criterion = 'AIC')._rank}\n"
         to_print += delimiter
-        to_print += f"* Useful properties\n"
+        to_print += "* Useful properties\n"
         to_print += f"    {self._useful_properties_string}\n"
         to_print += "* Useful methods \n"
         to_print += f"    {self._useful_methods_strings}"
@@ -987,8 +994,8 @@ class PLNPCA:
 
 
 # Here, setting the value for each key in _dict_parameters
-class _PLNPCA(_PLN):
-    _NAME = "_PLNPCA"
+class PlnPCA(_Pln):
+    _NAME = "PlnPCA"
     _components: torch.Tensor
 
     def __init__(
@@ -1059,7 +1066,7 @@ class _PLNPCA(_PLN):
     @property
     def directory_name(self):
         return f"{self._NAME}_rank_{self._rank}"
-        # return f"PLNPCA_nbcov_{self.nb_cov}_dim_{self.dim}/{self._NAME}_rank_{self._rank}"
+        # return f"PlnPCAcollection_nbcov_{self.nb_cov}_dim_{self.dim}/{self._NAME}_rank_{self._rank}"
 
     @property
     def covariates(self):
@@ -1075,7 +1082,7 @@ class _PLNPCA(_PLN):
 
     @property
     def path_to_directory(self):
-        return f"PLNPCA_nbcov_{self.nb_cov}_dim_{self.dim}/"
+        return f"PlnPCAcollection_nbcov_{self.nb_cov}_dim_{self.dim}/"
 
     @property
     def rank(self):
@@ -1086,7 +1093,7 @@ class _PLNPCA(_PLN):
 
     def _pring_beginning_message(self):
         print("-" * NB_CHARACTERS_FOR_NICE_PLOT)
-        print(f"Fitting a PLNPCA model with {self._rank} components")
+        print(f"Fitting a PlnPCAcollection model with {self._rank} components")
 
     @property
     def model_parameters(self):
@@ -1224,8 +1231,8 @@ class _PLNPCA(_PLN):
         return self.latent_variables
 
 
-class ZIPLN(PLN):
-    _NAME = "ZIPLN"
+class ZIPln(Pln):
+    _NAME = "ZIPln"
 
     _pi: torch.Tensor
     _coef_inflation: torch.Tensor
diff --git a/pyproject.toml b/pyproject.toml
index 94b2dc2a..fd481fbf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -43,4 +43,11 @@ classifiers = [
         # that you indicate whether you support Python 2, Python 3 or both.
         "Programming Language :: Python :: 3 :: Only",
 ]
-dependencies = {file = ["requirements.txt"]}
+dependencies = [
+"matplotlib",
+"numpy",
+"pandas",
+"scipy",
+"seaborn",
+"torch"
+]
diff --git a/setup.py b/setup.py
index bdb83ce6..05753a23 100644
--- a/setup.py
+++ b/setup.py
@@ -1,17 +1,16 @@
 # -*- coding: utf-8 -*-
 from setuptools import setup, find_packages
 
-VERSION = "0.0.43"
+VERSION = "0.0.41"
 
 with open("README.md", "r") as fh:
     long_description = fh.read()
 with open("requirements.txt", "r") as fh:
     requirements = [line.strip() for line in fh]
-
 setup(
     name="pyPLNmodels",
     version=VERSION,
-    description="Package implementing PLN models",
+    description="Package implementing Pln models",
     project_urls={
         "Source": "https://forgemia.inra.fr/bbatardiere/pyplnmodels",
         "Documentation": "https://bbatardiere.pages.mia.inra.fr/pyplnmodels/index.html",
@@ -28,7 +27,7 @@ setup(
         "count data",
         "high dimension",
         "scRNAseq",
-        "PLN",
+        "Pln",
     ],
     install_requires=requirements,
     py_modules=[
diff --git a/tests/conftest.py b/tests/conftest.py
index f4cdbbbd..f70e6aca 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -5,8 +5,8 @@ from functools import singledispatch
 import pytest
 import torch
 from pytest_lazyfixture import lazy_fixture as lf
-from pyPLNmodels import load_model, load_plnpca
-from pyPLNmodels.models import PLN, _PLNPCA, PLNPCA
+from pyPLNmodels import load_model, load_plnpcacollection
+from pyPLNmodels.models import Pln, PlnPCA, PlnPCAcollection
 
 
 sys.path.append("../")
@@ -58,40 +58,42 @@ instances = []
 def convenient_plnpca(*args, **kwargs):
     dict_init = kwargs.pop("dict_initialization", None)
     if isinstance(args[0], str):
-        return _PLNPCA.from_formula(
+        return PlnPCA.from_formula(
             *args, **kwargs, dict_initialization=dict_init, rank=RANK
         )
     print("rank:", RANK)
-    return _PLNPCA(*args, **kwargs, dict_initialization=dict_init, rank=RANK)
+    return PlnPCA(*args, **kwargs, dict_initialization=dict_init, rank=RANK)
 
 
 def convenientplnpca(*args, **kwargs):
     dict_init = kwargs.pop("dict_initialization", None)
     if isinstance(args[0], str):
-        return PLNPCA.from_formula(
+        return PlnPCAcollection.from_formula(
             *args, **kwargs, dict_of_dict_initialization=dict_init, ranks=RANKS
         )
-    return PLNPCA(*args, **kwargs, dict_of_dict_initialization=dict_init, ranks=RANKS)
+    return PlnPCAcollection(
+        *args, **kwargs, dict_of_dict_initialization=dict_init, ranks=RANKS
+    )
 
 
 def convenientpln(*args, **kwargs):
     if isinstance(args[0], str):
-        return PLN.from_formula(*args, **kwargs)
-    return PLN(*args, **kwargs)
+        return Pln.from_formula(*args, **kwargs)
+    return Pln(*args, **kwargs)
 
 
 def generate_new_model(model, *args, **kwargs):
     name_dir = model.directory_name
     name = model._NAME
-    if name in ("PLN", "_PLNPCA"):
+    if name in ("Pln", "PlnPCA"):
         path = model.path_to_directory + name_dir
         init = load_model(path)
-        if name == "PLN":
+        if name == "Pln":
             new = convenientpln(*args, **kwargs, dict_initialization=init)
-        if name == "_PLNPCA":
+        if name == "PlnPCA":
             new = convenient_plnpca(*args, **kwargs, dict_initialization=init)
-    if name == "PLNPCA":
-        init = load_plnpca(name_dir)
+    if name == "PlnPCAcollection":
+        init = load_plnpcacollection(name_dir)
         new = convenientplnpca(*args, **kwargs, dict_initialization=init)
     return new
 
diff --git a/tests/test_common.py b/tests/test_common.py
index 4f539f0d..64cb6cae 100644
--- a/tests/test_common.py
+++ b/tests/test_common.py
@@ -10,7 +10,7 @@ from tests.import_data import true_sim_0cov, true_sim_2cov
 
 
 @pytest.mark.parametrize("any_pln", dict_fixtures["fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_properties(any_pln):
     assert hasattr(any_pln, "latent_parameters")
     assert hasattr(any_pln, "latent_variables")
@@ -24,7 +24,7 @@ def test_print(any_pln):
 
 
 @pytest.mark.parametrize("any_pln", dict_fixtures["fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_show_coef_transform_covariance_pcaprojected(any_pln):
     any_pln.show()
     any_pln._plotargs._show_loss()
@@ -39,7 +39,7 @@ def test_show_coef_transform_covariance_pcaprojected(any_pln):
 
 
 @pytest.mark.parametrize("sim_pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_predict_simulated(sim_pln):
     if sim_pln.nb_cov == 0:
         assert sim_pln.predict() is None
@@ -60,7 +60,7 @@ def test_verbose(any_instance_pln):
 @pytest.mark.parametrize(
     "simulated_fitted_any_pln", dict_fixtures["loaded_and_fitted_sim_pln"]
 )
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_find_right_covariance(simulated_fitted_any_pln):
     if simulated_fitted_any_pln.nb_cov == 0:
         true_covariance = true_sim_0cov["Sigma"]
@@ -73,7 +73,7 @@ def test_find_right_covariance(simulated_fitted_any_pln):
 @pytest.mark.parametrize(
     "real_fitted_and_loaded_pln", dict_fixtures["loaded_and_fitted_real_pln"]
 )
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_right_covariance_shape(real_fitted_and_loaded_pln):
     assert real_fitted_and_loaded_pln.covariance.shape == (100, 100)
 
@@ -81,7 +81,7 @@ def test_right_covariance_shape(real_fitted_and_loaded_pln):
 @pytest.mark.parametrize(
     "simulated_fitted_any_pln", dict_fixtures["loaded_and_fitted_pln"]
 )
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_find_right_coef(simulated_fitted_any_pln):
     if simulated_fitted_any_pln.nb_cov == 2:
         true_coef = true_sim_2cov["beta"]
@@ -92,7 +92,7 @@ def test_find_right_coef(simulated_fitted_any_pln):
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_fail_count_setter(pln):
     wrong_counts = torch.randint(size=(10, 5), low=0, high=10)
     with pytest.raises(Exception):
@@ -110,7 +110,7 @@ def test__print_end_of_fitting_message(instance):
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_fail_wrong_covariates_prediction(pln):
     X = torch.randn(pln.n_samples, pln.nb_cov + 1)
     with pytest.raises(Exception):
diff --git a/tests/test_pln_full.py b/tests/test_pln_full.py
index a9887353..0fa0e7ea 100644
--- a/tests/test_pln_full.py
+++ b/tests/test_pln_full.py
@@ -5,13 +5,13 @@ from tests.utils import filter_models
 
 
 @pytest.mark.parametrize("fitted_pln", dict_fixtures["fitted_pln"])
-@filter_models(["PLN"])
+@filter_models(["Pln"])
 def test_number_of_iterations_pln_full(fitted_pln):
     nb_iterations = len(fitted_pln._elbos_list)
     assert 50 < nb_iterations < 300
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN"])
+@filter_models(["Pln"])
 def test_latent_var_full(pln):
     assert pln.transform().shape == pln.counts.shape
diff --git a/tests/test_plnpca.py b/tests/test_plnpcacollection.py
similarity index 73%
rename from tests/test_plnpca.py
rename to tests/test_plnpcacollection.py
index 85f42885..ecb4a7ac 100644
--- a/tests/test_plnpca.py
+++ b/tests/test_plnpcacollection.py
@@ -9,14 +9,14 @@ from tests.utils import MSE, filter_models
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLNPCA"])
+@filter_models(["PlnPCAcollection"])
 def test_best_model(plnpca):
     best_model = plnpca.best_model()
     print(best_model)
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLNPCA"])
+@filter_models(["PlnPCAcollection"])
 def test_projected_variables(plnpca):
     best_model = plnpca.best_model()
     plv = best_model.projected_latent_variables
@@ -24,21 +24,21 @@ def test_projected_variables(plnpca):
 
 
 @pytest.mark.parametrize("fitted_pln", dict_fixtures["fitted_pln"])
-@filter_models(["_PLNPCA"])
+@filter_models(["PlnPCA"])
 def test_number_of_iterations_plnpca(fitted_pln):
     nb_iterations = len(fitted_pln._elbos_list)
     assert 100 < nb_iterations < 5000
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["_PLNPCA"])
+@filter_models(["PlnPCA"])
 def test_latent_var_pca(plnpca):
     assert plnpca.transform(project=False).shape == plnpca.counts.shape
     assert plnpca.transform().shape == (plnpca.n_samples, plnpca.rank)
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLNPCA"])
+@filter_models(["PlnPCAcollection"])
 def test_additional_methods_pca(plnpca):
     plnpca.show()
     plnpca.BIC
@@ -47,10 +47,9 @@ def test_additional_methods_pca(plnpca):
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLNPCA"])
+@filter_models(["PlnPCAcollection"])
 def test_viz_pca(plnpca):
-    models = plnpca.models
-    for model in models:
+    for model in plnpca.values():
         _, ax = plt.subplots()
         model.viz(ax=ax)
         plt.show()
@@ -63,14 +62,25 @@ def test_viz_pca(plnpca):
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLNPCA"])
+@filter_models(["PlnPCAcollection"])
 def test__closest(plnpca):
     with pytest.warns(UserWarning):
         plnpca[9]
 
 
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLNPCA"])
+@filter_models(["PlnPCAcollection"])
 def test_wrong_criterion(plnpca):
     with pytest.raises(ValueError):
         plnpca.best_model("AIK")
+
+
+@pytest.mark.parametrize("collection", dict_fixtures["loaded_and_fitted_pln"])
+@filter_models(["PlnPCAcollection"])
+def test_item(collection):
+    print(collection[collection.ranks[0]])
+    with pytest.raises(KeyError):
+        collection[collection.ranks[0] + 50]
+    assert collection.ranks[0] in collection
+    assert collection.ranks[0] in list(collection.keys())
+    collection.get(collection.ranks[0], None)
diff --git a/tests/test_setters.py b/tests/test_setters.py
index 727c6ac6..14ad481a 100644
--- a/tests/test_setters.py
+++ b/tests/test_setters.py
@@ -15,12 +15,12 @@ def test_data_setter_with_torch(pln):
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_parameters_setter_with_torch(pln):
     pln.latent_mean = pln.latent_mean
     pln.latent_var = pln.latent_var
     pln.coef = pln.coef
-    if pln._NAME == "_PLNPCA":
+    if pln._NAME == "PlnPCA":
         pln.components = pln.components
     pln.fit()
 
@@ -40,7 +40,7 @@ def test_data_setter_with_numpy(pln):
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_parameters_setter_with_numpy(pln):
     np_latent_mean = pln.latent_mean.numpy()
     np_latent_var = pln.latent_var.numpy()
@@ -51,7 +51,7 @@ def test_parameters_setter_with_numpy(pln):
     pln.latent_mean = np_latent_mean
     pln.latent_var = np_latent_var
     pln.coef = np_coef
-    if pln._NAME == "_PLNPCA":
+    if pln._NAME == "PlnPCA":
         pln.components = pln.components.numpy()
     pln.fit()
 
@@ -71,7 +71,7 @@ def test_data_setter_with_pandas(pln):
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_parameters_setter_with_pandas(pln):
     pd_latent_mean = pd.DataFrame(pln.latent_mean.numpy())
     pd_latent_var = pd.DataFrame(pln.latent_var.numpy())
@@ -82,7 +82,7 @@ def test_parameters_setter_with_pandas(pln):
     pln.latent_mean = pd_latent_mean
     pln.latent_var = pd_latent_var
     pln.coef = pd_coef
-    if pln._NAME == "_PLNPCA":
+    if pln._NAME == "PlnPCA":
         pln.components = pd.DataFrame(pln.components.numpy())
     pln.fit()
 
@@ -113,7 +113,7 @@ def test_fail_data_setter_with_torch(pln):
 
 
 @pytest.mark.parametrize("pln", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PLN", "_PLNPCA"])
+@filter_models(["Pln", "PlnPCA"])
 def test_fail_parameters_setter_with_torch(pln):
     n, dim_latent = pln.latent_mean.shape
     dim = pln.counts.shape[1]
@@ -130,7 +130,7 @@ def test_fail_parameters_setter_with_torch(pln):
     with pytest.raises(ValueError):
         pln.latent_var = torch.zeros(n, dim_latent + 1)
 
-    if pln._NAME == "_PLNPCA":
+    if pln._NAME == "PlnPCA":
         with pytest.raises(ValueError):
             pln.components = torch.zeros(dim, dim_latent + 1)
 
-- 
GitLab


From 736806d24141acee41e5eba1f40f303c8cdc6ef2 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 18:45:00 +0200
Subject: [PATCH 04/15] forgot to add the stage in the ci.

---
 .gitlab-ci.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c64dc913..f60ae548 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,7 @@
 
 stages:
   - checks
+  - build_package
   - publish
 
 black:
@@ -21,7 +22,7 @@ tests:
     - pytest
 
 build_package:
-  stage: build
+  stage: build_package
   before_script:
     - pip install build
   script:
@@ -32,6 +33,7 @@ build_package:
     expire_in: 1 week
   tags:
     - docker
+
 publish_package:
   stage: publish
   image: "python:3.9"
-- 
GitLab


From 9b3ccd72230ee375af2b37d150d5559eba302499 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 18:57:59 +0200
Subject: [PATCH 05/15] removed closest test and remove unused import in
 models.

---
 pyPLNmodels/models.py          | 5 -----
 tests/test_plnpcacollection.py | 7 -------
 2 files changed, 12 deletions(-)

diff --git a/pyPLNmodels/models.py b/pyPLNmodels/models.py
index 0c6c5c37..a8cce1e7 100644
--- a/pyPLNmodels/models.py
+++ b/pyPLNmodels/models.py
@@ -1,9 +1,7 @@
 import time
 from abc import ABC, abstractmethod
-import pickle
 import warnings
 import os
-from functools import singledispatchmethod
 from collections.abc import Iterable
 
 import pandas as pd
@@ -12,7 +10,6 @@ import numpy as np
 import seaborn as sns
 import matplotlib.pyplot as plt
 from sklearn.decomposition import PCA
-from patsy import dmatrices
 
 
 from ._closed_forms import (
@@ -31,9 +28,7 @@ from ._utils import (
     _format_model_param,
     _nice_string_of_dict,
     _plot_ellipse,
-    _closest,
     _check_data_shape,
-    _check_right_rank,
     _extract_data_from_formula,
     _get_dict_initialization,
     array2tensor,
diff --git a/tests/test_plnpcacollection.py b/tests/test_plnpcacollection.py
index ecb4a7ac..247335c4 100644
--- a/tests/test_plnpcacollection.py
+++ b/tests/test_plnpcacollection.py
@@ -61,13 +61,6 @@ def test_viz_pca(plnpca):
         plt.show()
 
 
-@pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
-@filter_models(["PlnPCAcollection"])
-def test__closest(plnpca):
-    with pytest.warns(UserWarning):
-        plnpca[9]
-
-
 @pytest.mark.parametrize("plnpca", dict_fixtures["loaded_and_fitted_pln"])
 @filter_models(["PlnPCAcollection"])
 def test_wrong_criterion(plnpca):
-- 
GitLab


From 83673f6eabfdb14b7280cb08dc313b27d845dd19 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 19:24:08 +0200
Subject: [PATCH 06/15] forgot the image in the ci and remove docstrings so
 that chatgpt can do it.

---
 .gitlab-ci.yml        |  1 +
 pyPLNmodels/models.py | 52 +------------------------------------------
 2 files changed, 2 insertions(+), 51 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f60ae548..926a2fa8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,6 +23,7 @@ tests:
 
 build_package:
   stage: build_package
+  image: "registry.forgemia.inra.fr/jbleger/docker-image-pandas-torch-sphinx:master"
   before_script:
     - pip install build
   script:
diff --git a/pyPLNmodels/models.py b/pyPLNmodels/models.py
index a8cce1e7..4a021d94 100644
--- a/pyPLNmodels/models.py
+++ b/pyPLNmodels/models.py
@@ -46,14 +46,6 @@ NB_CHARACTERS_FOR_NICE_PLOT = 70
 
 
 class _Pln(ABC):
-    """
-    Virtual class for all the Pln models.
-
-    This class must be derivatived. The methods `get_covariance`, `compute_elbo`,
-    `_random_init_latent_parameters` and `_list_of_parameters_needing_gradient` must
-    be defined.
-    """
-
     _WINDOW = 15
     n_samples: int
     dim: int
@@ -75,10 +67,6 @@ class _Pln(ABC):
         dict_initialization=None,
         take_log_offsets=False,
     ):
-        """
-        Simple initialization method wors fine.
-        """
-
         self._counts, self._covariates, self._offsets = _format_model_param(
             counts, covariates, offsets, offsets_formula, take_log_offsets
         )
@@ -189,19 +177,6 @@ class _Pln(ABC):
         do_smart_init=True,
         verbose=False,
     ):
-        """
-        Main function of the class. Fit a Pln to the data.
-        Parameters
-        ----------
-        counts : torch.tensor or ndarray or DataFrame.
-            2-d count data.
-        covariates : torch.tensor or ndarray or DataFrame or
-            None, default = None
-            If not `None`, the first dimension should equal the first
-            dimension of `counts`.
-        offsets : torch.tensor or ndarray or DataFrame or None, default = None
-            Model offset. If not `None`, size should be the same as `counts`.
-        """
         self._pring_beginning_message()
         self._beginning_time = time.time()
 
@@ -223,9 +198,6 @@ class _Pln(ABC):
         self._fitted = True
 
     def _trainstep(self):
-        """
-        simple docstrings with black errors
-        """
         self.optim.zero_grad()
         loss = -self.compute_elbo()
         loss.backward()
@@ -291,23 +263,6 @@ class _Pln(ABC):
         """
 
     def display_covariance(self, ax=None, savefig=False, name_file=""):
-        """
-        Display a heatmap of covariance to visualize correlations.
-
-        If covariance is too big (size is > 400), will only display the
-        first block of size (400,400).
-
-        Parameters
-        ----------
-        ax : matplotlib Axes, optional
-            Axes in which to draw the plot, otherwise use the
-            currently-active Axes.
-        savefig: bool, optional
-            If True the figure will be saved. Default is False.
-        name_file : str, optional
-            The name of the file the graphic will be saved to if saved.
-            Default is an empty string.
-        """
         if self.dim > 400:
             warnings.warn("Only displaying the first 400 variables.")
             sigma = sigma[:400, :400]
@@ -318,7 +273,7 @@ class _Pln(ABC):
             plt.savefig(name_file + self._NAME)
         plt.show()  # to avoid displaying a blanck screen
 
-    def __str__(self):
+    def __repr__(self):
         delimiter = "=" * NB_CHARACTERS_FOR_NICE_PLOT
         string = f"A multivariate Poisson Lognormal with {self._description} \n"
         string += f"{delimiter}\n"
@@ -593,11 +548,6 @@ class Pln(_Pln):
         return self.dim
 
     def compute_elbo(self):
-        """
-        Compute the Evidence Lower BOund (ELBO) that will be
-        maximized by pytorch. Here we use the profiled ELBO
-        for the full covariance matrix.
-        """
         return profiled_elbo_pln(
             self._counts,
             self._covariates,
-- 
GitLab


From 53bf11fee748954c4fd46ff2bb2c371ab1dd2a8a Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 20:14:02 +0200
Subject: [PATCH 07/15] remove setup as it was added not on purpose

---
 setup.py | 58 --------------------------------------------------------
 1 file changed, 58 deletions(-)
 delete mode 100644 setup.py

diff --git a/setup.py b/setup.py
deleted file mode 100644
index 05753a23..00000000
--- a/setup.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- coding: utf-8 -*-
-from setuptools import setup, find_packages
-
-VERSION = "0.0.41"
-
-with open("README.md", "r") as fh:
-    long_description = fh.read()
-with open("requirements.txt", "r") as fh:
-    requirements = [line.strip() for line in fh]
-setup(
-    name="pyPLNmodels",
-    version=VERSION,
-    description="Package implementing Pln models",
-    project_urls={
-        "Source": "https://forgemia.inra.fr/bbatardiere/pyplnmodels",
-        "Documentation": "https://bbatardiere.pages.mia.inra.fr/pyplnmodels/index.html",
-    },
-    author="Bastien Batardière, Julien Chiquet, Joon Kwon",
-    author_email="bastien.batardiere@gmail.com, julien.chiquet@inrae.fr, joon.kwon@inrae.fr",
-    long_description=long_description,
-    packages=find_packages(),
-    python_requires=">=3",
-    keywords=[
-        "python",
-        "count",
-        "data",
-        "count data",
-        "high dimension",
-        "scRNAseq",
-        "Pln",
-    ],
-    install_requires=requirements,
-    py_modules=[
-        "pyPLNmodels._utils",
-        "pyPLNmodels.elbos",
-        "pyPLNmodels.models",
-        "pyPLNmodels._closed_forms",
-    ],
-    long_description_content_type="text/markdown",
-    license="MIT",
-    # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
-    classifiers=[
-        # How mature is this project? Common values are
-        #   3 - Alpha
-        #   4 - Beta
-        #   5 - Production/Stable
-        "Development Status :: 3 - Alpha",
-        # Indicate who your project is intended for
-        "Intended Audience :: Science/Research",
-        # Pick your license as you wish (should match "license" above)
-        "License :: OSI Approved :: MIT License",
-        # Specify the Python versions you support here. In particular, ensure
-        # that you indicate whether you support Python 2, Python 3 or both.
-        "Programming Language :: Python :: 3 :: Only",
-    ],
-    include_package_data=True,
-    package_data={"": ["data/oaks/*.csv"]},
-)
-- 
GitLab


From 8a058b55dbbe3855dd4bc9141ae59f4fa7ffac6d Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 20:39:29 +0200
Subject: [PATCH 08/15] docstrings for _PLN

---
 pyPLNmodels/models.py | 595 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 557 insertions(+), 38 deletions(-)

diff --git a/pyPLNmodels/models.py b/pyPLNmodels/models.py
index 4a021d94..6d28425c 100644
--- a/pyPLNmodels/models.py
+++ b/pyPLNmodels/models.py
@@ -3,6 +3,7 @@ from abc import ABC, abstractmethod
 import warnings
 import os
 from collections.abc import Iterable
+from typing import Optional
 
 import pandas as pd
 import torch
@@ -60,13 +61,31 @@ class _Pln(ABC):
 
     def __init__(
         self,
-        counts,
-        covariates=None,
-        offsets=None,
-        offsets_formula="logsum",
-        dict_initialization=None,
-        take_log_offsets=False,
+        counts: torch.Tensor,
+        covariates: Optional[torch.Tensor] = None,
+        offsets: Optional[torch.Tensor] = None,
+        offsets_formula: str = "logsum",
+        dict_initialization: Optional[dict] = None,
+        take_log_offsets: bool = False,
     ):
+        """
+        Initializes the _Pln class.
+
+        Parameters
+        ----------
+        counts : torch.Tensor
+            The count data.
+        covariates : torch.Tensor, optional
+            The covariate data. Defaults to None.
+        offsets : torch.Tensor, optional
+            The offsets data. Defaults to None.
+        offsets_formula : str, optional
+            The formula for offsets. Defaults to "logsum".
+        dict_initialization : dict, optional
+            The initialization dictionary. Defaults to None.
+        take_log_offsets : bool, optional
+            Whether to take the log of offsets. Defaults to False.
+        """
         self._counts, self._covariates, self._offsets = _format_model_param(
             counts, covariates, offsets, offsets_formula, take_log_offsets
         )
@@ -81,10 +100,31 @@ class _Pln(ABC):
         cls,
         formula: str,
         data: dict,
-        offsets_formula="logsum",
-        dict_initialization=None,
-        take_log_offsets=False,
+        offsets_formula: str = "logsum",
+        dict_initialization: Optional[dict] = None,
+        take_log_offsets: bool = False,
     ):
+        """
+        Create a _Pln instance from a formula and data.
+
+        Parameters
+        ----------
+        formula : str
+            The formula.
+        data : dict
+            The data dictionary.
+        offsets_formula : str, optional
+            The formula for offsets. Defaults to "logsum".
+        dict_initialization : dict, optional
+            The initialization dictionary. Defaults to None.
+        take_log_offsets : bool, optional
+            Whether to take the log of offsets. Defaults to False.
+
+        Returns
+        -------
+        _Pln
+            The initialized _Pln instance.
+        """
         counts, covariates, offsets = _extract_data_from_formula(formula, data)
         return cls(
             counts,
@@ -95,7 +135,15 @@ class _Pln(ABC):
             take_log_offsets,
         )
 
-    def _set_init_parameters(self, dict_initialization):
+    def _set_init_parameters(self, dict_initialization: dict):
+        """
+        Set initial parameters based on a dictionary.
+
+        Parameters
+        ----------
+        dict_initialization : dict
+            The initialization dictionary.
+        """
         if "coef" not in dict_initialization.keys():
             print("No coef is initialized.")
             self.coef = None
@@ -104,51 +152,110 @@ class _Pln(ABC):
             setattr(self, key, array)
 
     @property
-    def fitted(self):
+    def fitted(self) -> bool:
+        """
+        Whether the model is fitted.
+
+        Returns
+        -------
+        bool
+            True if the model is fitted, False otherwise.
+        """
         return self._fitted
 
     @property
-    def nb_iteration_done(self):
+    def nb_iteration_done(self) -> int:
+        """
+        The number of iterations done.
+
+        Returns
+        -------
+        int
+            The number of iterations done.
+        """
         return len(self._plotargs._elbos_list)
 
     @property
-    def n_samples(self):
+    def n_samples(self) -> int:
+        """
+        The number of samples.
+
+        Returns
+        -------
+        int
+            The number of samples.
+        """
         return self._counts.shape[0]
 
     @property
-    def dim(self):
+    def dim(self) -> int:
+        """
+        The dimension.
+
+        Returns
+        -------
+        int
+            The dimension.
+        """
         return self._counts.shape[1]
 
     @property
-    def nb_cov(self):
+    def nb_cov(self) -> int:
+        """
+        The number of covariates.
+
+        Returns
+        -------
+        int
+            The number of covariates.
+        """
         if self.covariates is None:
             return 0
         return self.covariates.shape[1]
 
     def _smart_init_coef(self):
+        """
+        Initialize coefficients smartly.
+        """
         self._coef = _init_coef(self._counts, self._covariates, self._offsets)
 
     def _random_init_coef(self):
+        """
+        Randomly initialize coefficients.
+        """
         if self.nb_cov == 0:
             self._coef = None
         self._coef = torch.randn((self.nb_cov, self.dim), device=DEVICE)
 
     @abstractmethod
     def _random_init_model_parameters(self):
-        pass
-
-    @abstractmethod
-    def _smart_init_model_parameters(self):
+        """
+        Abstract method to randomly initialize model parameters.
+        """
         pass
 
     @abstractmethod
     def _random_init_latent_parameters(self):
+        """
+        Abstract method to randomly initialize latent parameters.
+        """
         pass
 
     def _smart_init_latent_parameters(self):
+        """
+        Initialize latent parameters smartly.
+        """
         pass
 
-    def _init_parameters(self, do_smart_init):
+    def _init_parameters(self, do_smart_init: bool):
+        """
+        Initialize model parameters.
+
+        Parameters
+        ----------
+        do_smart_init : bool
+            Whether to perform smart initialization.
+        """
         print("Initialization ...")
         if do_smart_init:
             self._smart_init_model_parameters()
@@ -159,24 +266,51 @@ class _Pln(ABC):
         print("Initialization finished")
 
     def _put_parameters_to_device(self):
+        """
+        Move parameters to the device.
+        """
         for parameter in self._list_of_parameters_needing_gradient:
             parameter.requires_grad_(True)
 
     @property
     def _list_of_parameters_needing_gradient(self):
         """
-        A list containing all the parameters that needs to be upgraded via a gradient step.
+        A list containing all the parameters that need to be upgraded via a gradient step.
+
+        Returns
+        -------
+        List[torch.Tensor]
+            List of parameters needing gradient.
         """
+        ...
 
     def fit(
         self,
-        nb_max_iteration=50000,
-        lr=0.01,
-        class_optimizer=torch.optim.Rprop,
-        tol=1e-3,
-        do_smart_init=True,
-        verbose=False,
+        nb_max_iteration: int = 50000,
+        lr: float = 0.01,
+        class_optimizer: torch.optim.Optimizer = torch.optim.Rprop,
+        tol: float = 1e-3,
+        do_smart_init: bool = True,
+        verbose: bool = False,
     ):
+        """
+        Fit the model.
+
+        Parameters
+        ----------
+        nb_max_iteration : int, optional
+            The maximum number of iterations. Defaults to 50000.
+        lr : float, optional
+            The learning rate. Defaults to 0.01.
+        class_optimizer : torch.optim.Optimizer, optional
+            The optimizer class. Defaults to torch.optim.Rprop.
+        tol : float, optional
+            The tolerance for convergence. Defaults to 1e-3.
+        do_smart_init : bool, optional
+            Whether to perform smart initialization. Defaults to True.
+        verbose : bool, optional
+            Whether to print training progress. Defaults to False.
+        """
         self._pring_beginning_message()
         self._beginning_time = time.time()
 
@@ -187,7 +321,7 @@ class _Pln(ABC):
         self._put_parameters_to_device()
         self.optim = class_optimizer(self._list_of_parameters_needing_gradient, lr=lr)
         stop_condition = False
-        while self.nb_iteration_done < nb_max_iteration and stop_condition == False:
+        while self.nb_iteration_done < nb_max_iteration and not stop_condition:
             loss = self._trainstep()
             criterion = self._compute_criterion_and_update_plotargs(loss, tol)
             if abs(criterion) < tol:
@@ -198,6 +332,14 @@ class _Pln(ABC):
         self._fitted = True
 
     def _trainstep(self):
+        """
+        Perform a single training step.
+
+        Returns
+        -------
+        torch.Tensor
+            The loss value.
+        """
         self.optim.zero_grad()
         loss = -self.compute_elbo()
         loss.backward()
@@ -205,7 +347,20 @@ class _Pln(ABC):
         self._update_closed_forms()
         return loss
 
-    def pca_projected_latent_variables(self, n_components=None):
+    def pca_projected_latent_variables(self, n_components: Optional[int] = None):
+        """
+        Perform PCA on the latent variables and project them onto a lower-dimensional space.
+
+        Parameters
+        ----------
+        n_components : int, optional
+            The number of components to keep. If None, all components are kept. Defaults to None.
+
+        Returns
+        -------
+        numpy.ndarray
+            The projected latent variables.
+        """
         if n_components is None:
             n_components = self._get_max_components()
         if n_components > self.dim:
@@ -218,9 +373,22 @@ class _Pln(ABC):
     @property
     @abstractmethod
     def latent_variables(self):
+        """
+        Abstract property representing the latent variables.
+        """
         pass
 
-    def _print_end_of_fitting_message(self, stop_condition, tol):
+    def _print_end_of_fitting_message(self, stop_condition: bool, tol: float):
+        """
+        Print the end-of-fitting message.
+
+        Parameters
+        ----------
+        stop_condition : bool
+            Whether the stop condition was met.
+        tol : float
+            The tolerance for convergence.
+        """
         if stop_condition is True:
             print(
                 f"Tolerance {tol} reached "
@@ -235,12 +403,30 @@ class _Pln(ABC):
             )
 
     def print_stats(self):
+        """
+        Print the training statistics.
+        """
         print("-------UPDATE-------")
         print("Iteration number: ", self._plotargs.iteration_number)
         print("Criterion: ", np.round(self._plotargs.criterions[-1], 8))
         print("ELBO:", np.round(self._plotargs._elbos_list[-1], 6))
 
     def _compute_criterion_and_update_plotargs(self, loss, tol):
+        """
+        Compute the convergence criterion and update the plot arguments.
+
+        Parameters
+        ----------
+        loss : torch.Tensor
+            The loss value.
+        tol : float
+            The tolerance for convergence.
+
+        Returns
+        -------
+        float
+            The computed criterion.
+        """
         self._plotargs._elbos_list.append(-loss.item())
         self._plotargs.running_times.append(time.time() - self._beginning_time)
         if self._plotargs.iteration_number > self._WINDOW:
@@ -253,6 +439,9 @@ class _Pln(ABC):
         return tol
 
     def _update_closed_forms(self):
+        """
+        Update closed-form expressions.
+        """
         pass
 
     @abstractmethod
@@ -261,8 +450,21 @@ class _Pln(ABC):
         Compute the Evidence Lower BOund (ELBO) that will be maximized
         by pytorch.
         """
+        pass
 
     def display_covariance(self, ax=None, savefig=False, name_file=""):
+        """
+        Display the covariance matrix.
+
+        Parameters
+        ----------
+        ax : matplotlib.axes.Axes, optional
+            The axes to plot on. If None, a new figure will be created. Defaults to None.
+        savefig : bool, optional
+            Whether to save the figure. Defaults to False.
+        name_file : str, optional
+            The name of the file to save. Defaults to "".
+        """
         if self.dim > 400:
             warnings.warn("Only displaying the first 400 variables.")
             sigma = sigma[:400, :400]
@@ -271,9 +473,17 @@ class _Pln(ABC):
             sns.heatmap(self.covariance, ax=ax)
         if savefig:
             plt.savefig(name_file + self._NAME)
-        plt.show()  # to avoid displaying a blanck screen
+        plt.show()  # to avoid displaying a blank screen
 
     def __repr__(self):
+        """
+        Generate the string representation of the object.
+
+        Returns
+        -------
+        str
+            The string representation of the object.
+        """
         delimiter = "=" * NB_CHARACTERS_FOR_NICE_PLOT
         string = f"A multivariate Poisson Lognormal with {self._description} \n"
         string += f"{delimiter}\n"
@@ -285,19 +495,33 @@ class _Pln(ABC):
         string += f"    {self._useful_methods_strings}\n"
         string += f"* Additional properties for {self._NAME}\n"
         string += f"    {self._additional_properties_string}\n"
-        string += f"* Additionial methods for {self._NAME}\n"
+        string += f"* Additional methods for {self._NAME}\n"
         string += f"    {self._additional_methods_string}"
         return string
 
     @property
     def _additional_methods_string(self):
+        """
+        Abstract property representing the additional methods string.
+        """
         pass
 
     @property
     def _additional_properties_string(self):
+        """
+        Abstract property representing the additional properties string.
+        """
         pass
 
     def show(self, axes=None):
+        """
+        Show plots.
+
+        Parameters
+        ----------
+        axes : numpy.ndarray, optional
+            The axes to plot on. If None, a new figure will be created. Defaults to None.
+        """
         print("Likelihood:", -self.loglike)
         if self._fitted is False:
             nb_axes = 1
@@ -315,10 +539,21 @@ class _Pln(ABC):
 
     @property
     def _elbos_list(self):
+        """
+        Property representing the list of ELBO values.
+        """
         return self._plotargs._elbos_list
 
     @property
     def loglike(self):
+        """
+        Property representing the log-likelihood.
+
+        Returns
+        -------
+        float
+            The log-likelihood.
+        """
         if self._fitted is False:
             t0 = time.time()
             self._plotargs._elbos_list.append(self.compute_elbo().item())
@@ -327,22 +562,62 @@ class _Pln(ABC):
 
     @property
     def BIC(self):
+        """
+        Property representing the Bayesian Information Criterion (BIC).
+
+        Returns
+        -------
+        float
+            The BIC value.
+        """
         return -self.loglike + self.number_of_parameters / 2 * np.log(self.n_samples)
 
     @property
     def AIC(self):
+        """
+        Property representing the Akaike Information Criterion (AIC).
+
+        Returns
+        -------
+        float
+            The AIC value.
+        """
         return -self.loglike + self.number_of_parameters
 
     @property
     def latent_parameters(self):
+        """
+        Property representing the latent parameters.
+
+        Returns
+        -------
+        dict
+            The dictionary of latent parameters.
+        """
         return {"latent_var": self.latent_var, "latent_mean": self.latent_mean}
 
     @property
     def model_parameters(self):
+        """
+        Property representing the model parameters.
+
+        Returns
+        -------
+        dict
+            The dictionary of model parameters.
+        """
         return {"coef": self.coef, "covariance": self.covariance}
 
     @property
     def dict_data(self):
+        """
+        Property representing the data dictionary.
+
+        Returns
+        -------
+        dict
+            The dictionary of data.
+        """
         return {
             "counts": self.counts,
             "covariates": self.covariates,
@@ -351,27 +626,80 @@ class _Pln(ABC):
 
     @property
     def _model_in_a_dict(self):
+        """
+        Property representing the model in a dictionary.
+
+        Returns
+        -------
+        dict
+            The dictionary representing the model.
+        """
         return self.dict_data | self._dict_parameters
 
     @property
     def _dict_parameters(self):
+        """
+        Property representing the dictionary of parameters.
+
+        Returns
+        -------
+        dict
+            The dictionary of parameters.
+        """
         return self.model_parameters | self.latent_parameters
 
     @property
     def coef(self):
+        """
+        Property representing the coefficients.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The coefficients or None.
+        """
         return self._cpu_attribute_or_none("_coef")
 
     @property
     def latent_mean(self):
+        """
+        Property representing the latent mean.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The latent mean or None.
+        """
         return self._cpu_attribute_or_none("_latent_mean")
 
     @property
     def latent_var(self):
+        """
+        Property representing the latent variance.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The latent variance or None.
+        """
         return self._cpu_attribute_or_none("_latent_var")
 
     @latent_mean.setter
     @array2tensor
     def latent_mean(self, latent_mean):
+        """
+        Setter for the latent mean property.
+
+        Parameters
+        ----------
+        latent_mean : torch.Tensor
+            The latent mean.
+
+        Raises
+        ------
+        ValueError
+            If the shape of the latent mean is incorrect.
+        """
         if latent_mean.shape != (self.n_samples, self.dim):
             raise ValueError(
                 f"Wrong shape. Expected {self.n_samples, self.dim}, got {latent_mean.shape}"
@@ -381,6 +709,19 @@ class _Pln(ABC):
     @latent_var.setter
     @array2tensor
     def latent_var(self, latent_var):
+        """
+        Setter for the latent variance property.
+
+        Parameters
+        ----------
+        latent_var : torch.Tensor
+            The latent variance.
+
+        Raises
+        ------
+        ValueError
+            If the shape of the latent variance is incorrect.
+        """
         if latent_var.shape != (self.n_samples, self.dim):
             raise ValueError(
                 f"Wrong shape. Expected {self.n_samples, self.dim}, got {latent_var.shape}"
@@ -388,6 +729,19 @@ class _Pln(ABC):
         self._latent_var = latent_var
 
     def _cpu_attribute_or_none(self, attribute_name):
+        """
+        Get the CPU attribute or return None.
+
+        Parameters
+        ----------
+        attribute_name : str
+            The attribute name.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The attribute value or None.
+        """
         if hasattr(self, attribute_name):
             attr = getattr(self, attribute_name)
             if isinstance(attr, torch.Tensor):
@@ -395,7 +749,15 @@ class _Pln(ABC):
             return attr
         return None
 
-    def save(self, path_of_directory="./"):
+    def save(self, path_of_directory: str = "./"):
+        """
+        Save the model parameters to disk.
+
+        Parameters
+        ----------
+        path_of_directory : str, optional
+            The path of the directory to save the parameters, by default "./".
+        """
         path = f"{path_of_directory}/{self.path_to_directory}{self.directory_name}"
         os.makedirs(path, exist_ok=True)
         for key, value in self._dict_parameters.items():
@@ -411,19 +773,56 @@ class _Pln(ABC):
 
     @property
     def counts(self):
+        """
+        Property representing the counts.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The counts or None.
+        """
         return self._cpu_attribute_or_none("_counts")
 
     @property
     def offsets(self):
+        """
+        Property representing the offsets.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The offsets or None.
+        """
         return self._cpu_attribute_or_none("_offsets")
 
     @property
     def covariates(self):
+        """
+        Property representing the covariates.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The covariates or None.
+        """
         return self._cpu_attribute_or_none("_covariates")
 
     @counts.setter
     @array2tensor
     def counts(self, counts):
+        """
+        Setter for the counts property.
+
+        Parameters
+        ----------
+        counts : torch.Tensor
+            The counts.
+
+        Raises
+        ------
+        ValueError
+            If the shape of the counts is incorrect or if the input is not integers.
+        """
         if self.counts.shape != counts.shape:
             raise ValueError(
                 f"Wrong shape for the counts. Expected {self.counts.shape}, got {counts.shape}"
@@ -435,6 +834,19 @@ class _Pln(ABC):
     @offsets.setter
     @array2tensor
     def offsets(self, offsets):
+        """
+        Setter for the offsets property.
+
+        Parameters
+        ----------
+        offsets : torch.Tensor
+            The offsets.
+
+        Raises
+        ------
+        ValueError
+            If the shape of the offsets is incorrect.
+        """
         if self.offsets.shape != offsets.shape:
             raise ValueError(
                 f"Wrong shape for the offsets. Expected {self.offsets.shape}, got {offsets.shape}"
@@ -444,12 +856,38 @@ class _Pln(ABC):
     @covariates.setter
     @array2tensor
     def covariates(self, covariates):
+        """
+        Setter for the covariates property.
+
+        Parameters
+        ----------
+        covariates : torch.Tensor
+            The covariates.
+
+        Raises
+        ------
+        ValueError
+            If the shape of the covariates or counts is incorrect.
+        """
         _check_data_shape(self.counts, covariates, self.offsets)
         self._covariates = covariates
 
     @coef.setter
     @array2tensor
     def coef(self, coef):
+        """
+        Setter for the coef property.
+
+        Parameters
+        ----------
+        coef : torch.Tensor or None
+            The coefficients.
+
+        Raises
+        ------
+        ValueError
+            If the shape of the coef is incorrect.
+        """
         if coef is None:
             pass
         elif coef.shape != (self.nb_cov, self.dim):
@@ -460,6 +898,14 @@ class _Pln(ABC):
 
     @property
     def dict_for_printing(self):
+        """
+        Property representing the dictionary for printing.
+
+        Returns
+        -------
+        dict
+            The dictionary for printing.
+        """
         return {
             "Loglike": np.round(self.loglike, 2),
             "Dimension": self.dim,
@@ -470,22 +916,79 @@ class _Pln(ABC):
 
     @property
     def optim_parameters(self):
+        """
+        Property representing the optimization parameters.
+
+        Returns
+        -------
+        dict
+            The dictionary of optimization parameters.
+        """
         return {"Number of iterations done": self.nb_iteration_done}
 
     @property
     def _useful_properties_string(self):
-        return ".latent_variables, .model_parameters, .latent_parameters, \
-.optim_parameters"
+        """
+        Property representing the useful properties as a string.
+
+        Returns
+        -------
+        str
+            The string representation of the useful properties.
+        """
+        return ".latent_variables, .model_parameters, .latent_parameters, .optim_parameters"
 
     @property
     def _useful_methods_strings(self):
-        return ".show(), .coef() .transform(), .sigma(), .predict(), \
-.pca_projected_latent_variables()"
+        """
+        Property representing the useful methods as a string.
+
+        Returns
+        -------
+        str
+            The string representation of the useful methods.
+        """
+        return ".show(), .coef() .transform(), .sigma(), .predict(), .pca_projected_latent_variables()"
 
     def sigma(self):
+        """
+        Method returning the covariance matrix.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The covariance matrix or None.
+        """
         return self.covariance
 
     def predict(self, covariates=None):
+        """
+        Method for making predictions.
+
+        Parameters
+        ----------
+        covariates : torch.Tensor, optional
+            The covariates, by default None.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The predicted values or None.
+
+        Raises
+        ------
+        AttributeError
+            If there are no covariates in the model.
+        RuntimeError
+            If the shape of thecovariates is incorrect.
+
+        Notes
+        -----
+        - If `covariates` is not provided and there are no covariates in the model, None is returned.
+        - If `covariates` is provided, it should have the shape `(n_samples, nb_cov)`, where `n_samples` is the number of samples and `nb_cov` is the number of covariates.
+        - The predicted values are obtained by multiplying the covariates by the coefficients.
+
+        """
         if covariates is not None and self.nb_cov == 0:
             raise AttributeError("No covariates in the model, can't predict")
         if covariates is None:
@@ -494,17 +997,33 @@ class _Pln(ABC):
                 return None
             return self.covariates @ self.coef
         if covariates.shape[-1] != self.nb_cov:
-            error_string = f"X has wrong shape ({covariates.shape}).Should"
+            error_string = f"X has wrong shape ({covariates.shape}). Should"
             error_string += f" be ({self.n_samples, self.nb_cov})."
             raise RuntimeError(error_string)
         return covariates @ self.coef
 
     @property
     def directory_name(self):
+        """
+        Property representing the directory name.
+
+        Returns
+        -------
+        str
+            The directory name.
+        """
         return f"{self._NAME}_nbcov_{self.nb_cov}_dim_{self.dim}"
 
     @property
     def path_to_directory(self):
+        """
+        Property representing the path to the directory.
+
+        Returns
+        -------
+        str
+            The path to the directory.
+        """
         return ""
 
 
-- 
GitLab


From e414c54818dd66518e31fd470c60429b1f6396d6 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 21:34:38 +0200
Subject: [PATCH 09/15] import data with pkg_resource.

---
 pyPLNmodels/_utils.py |  35 +++----------
 pyPLNmodels/models.py | 119 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 29 deletions(-)

diff --git a/pyPLNmodels/_utils.py b/pyPLNmodels/_utils.py
index 9dc16713..0206b3b4 100644
--- a/pyPLNmodels/_utils.py
+++ b/pyPLNmodels/_utils.py
@@ -10,6 +10,7 @@ from matplotlib.patches import Ellipse
 import matplotlib.pyplot as plt
 from patsy import dmatrices
 from typing import Optional, Dict, Any, Union
+import pkg_resources
 
 
 torch.set_default_dtype(torch.float64)
@@ -646,32 +647,6 @@ def _format_model_param(
     return counts, covariates, offsets
 
 
-def _remove_useless_intercepts(covariates: torch.Tensor) -> torch.Tensor:
-    """
-    Remove useless intercepts from covariates.
-
-    Parameters
-    ----------
-    covariates : torch.Tensor, shape (n, d)
-        Covariate data.
-
-    Returns
-    -------
-    torch.Tensor
-        Covariate data with useless intercepts removed.
-    """
-    covariates = _format_data(covariates)
-    if covariates.shape[1] < 2:
-        return covariates
-    first_column = covariates[:, 0]
-    second_column = covariates[:, 1]
-    diff = first_column - second_column
-    if torch.sum(torch.abs(diff - diff[0])) == 0:
-        print("removing one")
-        return covariates[:, 1:]
-    return covariates
-
-
 def _check_data_shape(
     counts: torch.Tensor, covariates: torch.Tensor, offsets: torch.Tensor
 ) -> None:
@@ -902,9 +877,11 @@ def get_real_count_data(n_samples: int = 270, dim: int = 100) -> np.ndarray:
             f"\nTaking the whole 100 variables. Requested:dim={dim}, returned:100"
         )
         dim = 100
-    counts = pd.read_csv("../example_data/real_data/Y_mark.csv").values[
-        :n_samples, :dim
-    ]
+    counts_stream = pkg_resources.resource_stream(__name__, "data/scRT/Y_mark.csv")
+    counts = pd.read_csv(counts_stream).values[:n_samples, :dim]
+    # counts = pd.read_csv("./pyPLNmodels/data/scRT/Y_mark.csv").values[
+    # :n_samples, :dim
+    # ]
     print(f"Returning dataset of size {counts.shape}")
     return counts
 
diff --git a/pyPLNmodels/models.py b/pyPLNmodels/models.py
index 6d28425c..e73b5fd4 100644
--- a/pyPLNmodels/models.py
+++ b/pyPLNmodels/models.py
@@ -1034,10 +1034,26 @@ class Pln(_Pln):
 
     @property
     def _description(self):
+        """
+        Property representing the description of the model.
+
+        Returns
+        -------
+        str
+            The description of the model.
+        """
         return "full covariance model."
 
     @property
     def coef(self):
+        """
+        Property representing the coefficients.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The coefficients or None.
+        """
         if (
             hasattr(self, "_latent_mean")
             and hasattr(self, "_covariates")
@@ -1048,12 +1064,26 @@ class Pln(_Pln):
 
     @coef.setter
     def coef(self, coef):
+        """
+        Setter for the coef property.
+
+        Parameters
+        ----------
+        coef : torch.Tensor
+            The coefficients.
+        """
         pass
 
     def _smart_init_latent_parameters(self):
+        """
+        Method for smartly initializing the latent parameters.
+        """
         self._random_init_latent_parameters()
 
     def _random_init_latent_parameters(self):
+        """
+        Method for randomly initializing the latent parameters.
+        """
         if not hasattr(self, "_latent_var"):
             self._latent_var = 1 / 2 * torch.ones((self.n_samples, self.dim)).to(DEVICE)
         if not hasattr(self, "_latent_mean"):
@@ -1061,12 +1091,36 @@ class Pln(_Pln):
 
     @property
     def _list_of_parameters_needing_gradient(self):
+        """
+        Property representing the list of parameters needing gradient.
+
+        Returns
+        -------
+        list
+            The list of parameters needing gradient.
+        """
         return [self._latent_mean, self._latent_var]
 
     def _get_max_components(self):
+        """
+        Method for getting the maximum number of components.
+
+        Returns
+        -------
+        int
+            The maximum number of components.
+        """
         return self.dim
 
     def compute_elbo(self):
+        """
+        Method for computing the evidence lower bound (ELBO).
+
+        Returns
+        -------
+        torch.Tensor
+            The computed ELBO.
+        """
         return profiled_elbo_pln(
             self._counts,
             self._covariates,
@@ -1076,19 +1130,41 @@ class Pln(_Pln):
         )
 
     def _smart_init_model_parameters(self):
+        """
+        Method for smartly initializing the model parameters.
+        """
         # no model parameters since we are doing a profiled ELBO
         pass
 
     def _random_init_model_parameters(self):
+        """
+        Method for randomly initializing the model parameters.
+        """
         # no model parameters since we are doing a profiled ELBO
         pass
 
     @property
     def _coef(self):
+        """
+        Property representing the coefficients.
+
+        Returns
+        -------
+        torch.Tensor
+            The coefficients.
+        """
         return _closed_formula_coef(self._covariates, self._latent_mean)
 
     @property
     def _covariance(self):
+        """
+        Property representing the covariance matrix.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The covariance matrix or None.
+        """
         return _closed_formula_covariance(
             self._covariates,
             self._latent_mean,
@@ -1098,21 +1174,56 @@ class Pln(_Pln):
         )
 
     def _pring_beginning_message(self):
+        """
+        Method for printing the beginning message.
+        """
         print(f"Fitting a Pln model with {self._description}")
 
     @property
     def latent_variables(self):
+        """
+        Property representing the latent variables.
+
+        Returns
+        -------
+        torch.Tensor
+            The latent variables.
+        """
         return self.latent_mean
 
     @property
     def number_of_parameters(self):
+        """
+        Property representing the number of parameters.
+
+        Returns
+        -------
+        int
+            The number of parameters.
+        """
         return self.dim * (self.dim + self.nb_cov)
 
     def transform(self):
+        """
+        Method for transforming the model.
+
+        Returns
+        -------
+        torch.Tensor
+            The transformed model.
+        """
         return self.latent_variables
 
     @property
     def covariance(self):
+        """
+        Property representing the covariance matrix.
+
+        Returns
+        -------
+        torch.Tensor or None
+            The covariance matrix or None.
+        """
         if all(
             hasattr(self, attr)
             for attr in [
@@ -1128,6 +1239,14 @@ class Pln(_Pln):
 
     @covariance.setter
     def covariance(self, covariance):
+        """
+        Setter for the covariance property.
+
+        Parameters
+        ----------
+        covariance : torch.Tensor
+            The covariance matrix.
+        """
         pass
 
 
-- 
GitLab


From e3ab04f6c9fb450a1fffcec70a198d6892191756 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 21:35:11 +0200
Subject: [PATCH 10/15] move data from example_data to data inside the
 module.py

---
 pyPLNmodels/data/scRT/Y_mark.csv              | 271 ++++++++++++++++++
 pyPLNmodels/data/test_data/O_test.csv         | 201 +++++++++++++
 pyPLNmodels/data/test_data/Y_test.csv         | 201 +++++++++++++
 pyPLNmodels/data/test_data/cov_test.csv       | 201 +++++++++++++
 .../true_parameters/true_Sigma_test.csv       |  51 ++++
 .../true_parameters/true_beta_test.csv        |   3 +
 6 files changed, 928 insertions(+)
 create mode 100644 pyPLNmodels/data/scRT/Y_mark.csv
 create mode 100644 pyPLNmodels/data/test_data/O_test.csv
 create mode 100644 pyPLNmodels/data/test_data/Y_test.csv
 create mode 100644 pyPLNmodels/data/test_data/cov_test.csv
 create mode 100644 pyPLNmodels/data/test_data/true_parameters/true_Sigma_test.csv
 create mode 100644 pyPLNmodels/data/test_data/true_parameters/true_beta_test.csv

diff --git a/pyPLNmodels/data/scRT/Y_mark.csv b/pyPLNmodels/data/scRT/Y_mark.csv
new file mode 100644
index 00000000..43c88887
--- /dev/null
+++ b/pyPLNmodels/data/scRT/Y_mark.csv
@@ -0,0 +1,271 @@
+0.0,0.0,0.0,0.0,1.0,3.0,1.0,0.0,2.0,1.0,0.0,1.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,12.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,2.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,1.0,0.0,1.0,5.0,0.0,1.0,0.0,0.0,3.0,2.0,2.0,1.0,2.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,6.0,4.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,1.0,0.0,6.0,5.0,0.0,12.0,0.0,3.0,1.0,1.0,0.0,10.0,2.0,2.0,9.0,2.0,15.0,14.0,0.0,6.0,0.0,8.0,9.0,0.0,0.0,17.0,1.0,0.0,1.0
+4.0,0.0,0.0,0.0,2.0,2.0,0.0,4.0,1.0,1.0,1.0,0.0,0.0,1.0,3.0,2.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,4.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,7.0,0.0,0.0,0.0,3.0,2.0,0.0,7.0,3.0,1.0,0.0,1.0,5.0,0.0,3.0,0.0,0.0,3.0,0.0,2.0,0.0,2.0,1.0,1.0,0.0,3.0,1.0,2.0,0.0,5.0,0.0,10.0,3.0,3.0,0.0,1.0,3.0,4.0,0.0,4.0,3.0,3.0,7.0,7.0,0.0,7.0,1.0,3.0,1.0,0.0,0.0,8.0,0.0,7.0,16.0,8.0,10.0,18.0,1.0,5.0,0.0,7.0,5.0,9.0,0.0,33.0,11.0,0.0,12.0
+0.0,1.0,0.0,4.0,0.0,0.0,1.0,0.0,5.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,3.0,3.0,0.0,0.0,0.0,1.0,5.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,2.0,0.0,3.0,0.0,0.0,6.0,0.0,3.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,3.0,2.0,0.0,6.0,4.0,0.0,7.0,0.0,0.0,5.0,0.0,1.0,1.0,5.0,1.0,8.0,1.0,10.0,5.0,0.0,3.0,0.0,1.0,1.0,8.0,0.0,4.0,0.0,0.0,1.0
+0.0,3.0,0.0,5.0,0.0,7.0,0.0,2.0,3.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,8.0,6.0,1.0,0.0,2.0,0.0,1.0,0.0,5.0,0.0,8.0,1.0,0.0,0.0,2.0,6.0,3.0,1.0,6.0,3.0,0.0,4.0,12.0,0.0,5.0,0.0,0.0,6.0,1.0,3.0,1.0,3.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,23.0,6.0,0.0,0.0,0.0,13.0,3.0,0.0,9.0,13.0,3.0,21.0,1.0,0.0,5.0,1.0,3.0,3.0,0.0,0.0,3.0,2.0,5.0,20.0,0.0,9.0,19.0,0.0,4.0,0.0,4.0,1.0,7.0,0.0,20.0,7.0,0.0,7.0
+0.0,4.0,0.0,1.0,0.0,3.0,0.0,0.0,3.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,1.0,0.0,2.0,4.0,5.0,0.0,2.0,0.0,2.0,0.0,5.0,1.0,5.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,3.0,0.0,2.0,4.0,0.0,0.0,0.0,3.0,0.0,4.0,2.0,1.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,17.0,3.0,3.0,0.0,1.0,1.0,2.0,0.0,2.0,14.0,3.0,4.0,6.0,0.0,3.0,0.0,4.0,1.0,0.0,0.0,3.0,0.0,0.0,13.0,2.0,25.0,6.0,0.0,4.0,0.0,1.0,1.0,10.0,0.0,19.0,5.0,0.0,5.0
+1.0,1.0,0.0,1.0,0.0,6.0,0.0,0.0,1.0,2.0,8.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,4.0,4.0,3.0,0.0,5.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,8.0,0.0,0.0,4.0,15.0,0.0,13.0,0.0,3.0,2.0,0.0,0.0,32.0,0.0,2.0,16.0,1.0,25.0,9.0,0.0,0.0,0.0,1.0,3.0,17.0,0.0,10.0,0.0,0.0,2.0
+1.0,5.0,0.0,4.0,4.0,4.0,7.0,0.0,18.0,0.0,6.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,3.0,1.0,2.0,1.0,10.0,0.0,8.0,7.0,12.0,7.0,0.0,7.0,2.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,3.0,8.0,2.0,0.0,3.0,0.0,0.0,2.0,0.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,6.0,0.0,14.0,10.0,0.0,0.0,4.0,2.0,0.0,22.0,0.0,0.0,16.0,15.0,0.0,21.0,0.0,15.0,7.0,2.0,0.0,54.0,0.0,19.0,11.0,0.0,38.0,7.0,0.0,0.0,0.0,11.0,15.0,29.0,0.0,23.0,4.0,0.0,7.0
+1.0,6.0,0.0,9.0,0.0,2.0,1.0,0.0,11.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,11.0,0.0,0.0,1.0,5.0,6.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,11.0,16.0,1.0,2.0,15.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,1.0,8.0,6.0,0.0,0.0,5.0,3.0,0.0,3.0,14.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,8.0,3.0,2.0,4.0,14.0,0.0,1.0,0.0,4.0,21.0,11.0,0.0,48.0,7.0,0.0,5.0
+5.0,4.0,0.0,10.0,11.0,7.0,10.0,8.0,5.0,7.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,4.0,4.0,1.0,1.0,5.0,7.0,15.0,1.0,7.0,7.0,0.0,0.0,7.0,0.0,4.0,0.0,2.0,11.0,6.0,5.0,5.0,13.0,12.0,0.0,4.0,23.0,0.0,8.0,0.0,6.0,8.0,1.0,5.0,0.0,4.0,0.0,2.0,0.0,0.0,6.0,1.0,0.0,3.0,5.0,11.0,18.0,9.0,0.0,0.0,8.0,4.0,0.0,15.0,10.0,11.0,11.0,9.0,0.0,16.0,0.0,13.0,3.0,0.0,3.0,36.0,6.0,5.0,21.0,4.0,33.0,45.0,1.0,0.0,0.0,36.0,45.0,14.0,0.0,86.0,2.0,0.0,8.0
+0.0,6.0,0.0,6.0,3.0,5.0,2.0,2.0,4.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,5.0,0.0,4.0,11.0,3.0,5.0,3.0,1.0,0.0,5.0,8.0,1.0,1.0,0.0,0.0,15.0,10.0,4.0,0.0,13.0,23.0,0.0,1.0,16.0,0.0,10.0,1.0,1.0,7.0,0.0,12.0,0.0,1.0,0.0,4.0,2.0,1.0,1.0,0.0,0.0,5.0,3.0,4.0,13.0,5.0,0.0,2.0,2.0,3.0,0.0,26.0,5.0,3.0,17.0,22.0,1.0,25.0,0.0,6.0,6.0,0.0,3.0,55.0,4.0,7.0,27.0,1.0,31.0,46.0,2.0,7.0,0.0,5.0,17.0,8.0,0.0,100.0,16.0,0.0,6.0
+0.0,0.0,0.0,2.0,6.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,0.0,6.0,0.0,4.0,2.0,0.0,0.0,3.0,0.0,0.0,8.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,8.0,11.0,0.0,1.0,0.0,0.0,6.0,0.0,0.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,1.0,1.0,0.0,0.0,11.0,3.0,0.0,8.0,8.0,0.0,9.0,10.0,4.0,0.0,2.0,3.0,20.0,1.0,2.0,21.0,0.0,25.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,6.0,0.0,11.0
+1.0,0.0,0.0,4.0,10.0,2.0,1.0,3.0,3.0,4.0,4.0,0.0,0.0,1.0,1.0,2.0,0.0,0.0,1.0,2.0,2.0,0.0,5.0,15.0,0.0,0.0,1.0,6.0,0.0,8.0,6.0,2.0,1.0,5.0,0.0,5.0,13.0,10.0,0.0,1.0,11.0,0.0,2.0,6.0,4.0,19.0,0.0,2.0,7.0,0.0,16.0,0.0,4.0,3.0,0.0,1.0,1.0,2.0,0.0,0.0,0.0,3.0,5.0,5.0,3.0,1.0,1.0,6.0,1.0,0.0,19.0,2.0,2.0,25.0,29.0,0.0,23.0,4.0,9.0,4.0,0.0,3.0,37.0,6.0,6.0,30.0,1.0,63.0,27.0,2.0,0.0,0.0,12.0,16.0,16.0,5.0,65.0,9.0,0.0,6.0
+0.0,4.0,0.0,1.0,0.0,3.0,0.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,1.0,4.0,0.0,0.0,0.0,2.0,3.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,2.0,2.0,13.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,1.0,1.0,2.0,2.0,1.0,13.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,11.0,1.0,11.0,10.0,0.0,6.0,0.0,7.0,0.0,0.0,0.0,0.0,2.0,0.0,15.0,0.0,22.0,7.0,4.0,0.0,0.0,0.0,5.0,6.0,0.0,9.0,2.0,0.0,8.0
+4.0,4.0,0.0,11.0,4.0,11.0,4.0,1.0,8.0,9.0,3.0,1.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,10.0,3.0,7.0,0.0,3.0,0.0,6.0,7.0,0.0,0.0,6.0,1.0,1.0,0.0,2.0,1.0,2.0,0.0,5.0,5.0,0.0,0.0,2.0,1.0,0.0,4.0,0.0,0.0,9.0,3.0,5.0,1.0,0.0,8.0,8.0,0.0,1.0,5.0,0.0,1.0,2.0,13.0,4.0,21.0,5.0,0.0,3.0,2.0,10.0,0.0,10.0,4.0,6.0,8.0,19.0,0.0,12.0,0.0,8.0,6.0,1.0,0.0,32.0,12.0,21.0,12.0,17.0,32.0,10.0,0.0,30.0,0.0,12.0,14.0,18.0,0.0,4.0,16.0,0.0,8.0
+0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,4.0,4.0,1.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,5.0,4.0,0.0,0.0,2.0,1.0,0.0,6.0,0.0,0.0,14.0,9.0,0.0,9.0,0.0,12.0,0.0,0.0,2.0,16.0,1.0,6.0,20.0,0.0,8.0,0.0,0.0,0.0,0.0,1.0,1.0,2.0,0.0,4.0,0.0,0.0,0.0
+0.0,7.0,0.0,0.0,2.0,3.0,0.0,0.0,8.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,2.0,0.0,1.0,1.0,7.0,3.0,3.0,4.0,1.0,8.0,0.0,2.0,1.0,0.0,2.0,5.0,0.0,0.0,2.0,0.0,1.0,9.0,0.0,0.0,5.0,0.0,0.0,10.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,2.0,0.0,6.0,3.0,0.0,0.0,1.0,3.0,0.0,4.0,1.0,0.0,4.0,21.0,0.0,14.0,0.0,19.0,5.0,0.0,0.0,16.0,1.0,19.0,20.0,0.0,11.0,0.0,2.0,4.0,0.0,15.0,22.0,15.0,0.0,0.0,4.0,0.0,2.0
+1.0,2.0,0.0,2.0,1.0,5.0,0.0,0.0,6.0,0.0,4.0,1.0,1.0,0.0,0.0,0.0,6.0,0.0,2.0,0.0,0.0,0.0,11.0,1.0,0.0,4.0,7.0,3.0,0.0,1.0,3.0,1.0,2.0,4.0,0.0,0.0,3.0,0.0,0.0,8.0,4.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,4.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,11.0,3.0,0.0,0.0,1.0,1.0,0.0,7.0,0.0,0.0,14.0,8.0,0.0,7.0,0.0,17.0,2.0,0.0,1.0,6.0,0.0,5.0,14.0,0.0,20.0,17.0,0.0,2.0,0.0,12.0,14.0,15.0,0.0,25.0,1.0,0.0,5.0
+2.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,0.0,3.0,2.0,0.0,2.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,2.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,1.0,1.0,2.0,1.0,2.0,0.0,0.0,3.0,11.0,6.0,1.0,2.0,12.0,0.0,13.0
+8.0,7.0,0.0,6.0,1.0,11.0,3.0,3.0,4.0,16.0,3.0,2.0,0.0,2.0,0.0,9.0,0.0,0.0,5.0,1.0,5.0,8.0,11.0,6.0,2.0,14.0,7.0,8.0,0.0,14.0,11.0,3.0,0.0,28.0,2.0,4.0,8.0,0.0,4.0,7.0,17.0,0.0,7.0,10.0,24.0,2.0,0.0,0.0,29.0,2.0,9.0,4.0,11.0,8.0,8.0,1.0,10.0,2.0,5.0,0.0,8.0,6.0,20.0,25.0,8.0,0.0,2.0,11.0,7.0,0.0,6.0,5.0,10.0,12.0,17.0,0.0,35.0,2.0,32.0,24.0,1.0,3.0,75.0,7.0,40.0,21.0,0.0,8.0,30.0,7.0,32.0,2.0,37.0,23.0,46.0,0.0,116.0,22.0,1.0,19.0
+10.0,14.0,0.0,7.0,1.0,13.0,4.0,4.0,12.0,2.0,13.0,2.0,8.0,4.0,4.0,4.0,0.0,0.0,11.0,6.0,2.0,6.0,18.0,49.0,12.0,21.0,13.0,14.0,0.0,7.0,30.0,7.0,10.0,45.0,11.0,13.0,23.0,0.0,21.0,17.0,34.0,1.0,24.0,13.0,58.0,26.0,0.0,0.0,44.0,14.0,33.0,0.0,29.0,10.0,10.0,3.0,4.0,7.0,3.0,0.0,17.0,16.0,56.0,27.0,17.0,1.0,2.0,36.0,14.0,0.0,17.0,30.0,9.0,13.0,22.0,0.0,38.0,2.0,30.0,39.0,2.0,21.0,28.0,19.0,85.0,38.0,9.0,23.0,79.0,9.0,10.0,0.0,92.0,100.0,106.0,0.0,179.0,30.0,0.0,38.0
+6.0,41.0,0.0,13.0,11.0,18.0,22.0,33.0,10.0,29.0,19.0,8.0,0.0,5.0,1.0,13.0,0.0,0.0,7.0,8.0,4.0,28.0,26.0,28.0,21.0,1.0,23.0,17.0,0.0,14.0,10.0,49.0,12.0,0.0,9.0,53.0,36.0,0.0,7.0,16.0,37.0,0.0,25.0,41.0,0.0,22.0,4.0,0.0,24.0,1.0,29.0,2.0,21.0,14.0,10.0,0.0,15.0,4.0,15.0,0.0,21.0,65.0,70.0,42.0,22.0,0.0,1.0,46.0,31.0,0.0,18.0,35.0,17.0,13.0,32.0,0.0,29.0,3.0,56.0,41.0,4.0,9.0,36.0,26.0,64.0,33.0,19.0,34.0,167.0,3.0,91.0,15.0,87.0,72.0,80.0,1.0,241.0,58.0,6.0,49.0
+9.0,23.0,1.0,18.0,11.0,11.0,15.0,2.0,17.0,26.0,19.0,0.0,0.0,4.0,2.0,10.0,2.0,0.0,0.0,8.0,6.0,2.0,27.0,23.0,7.0,22.0,23.0,28.0,0.0,6.0,5.0,36.0,3.0,0.0,4.0,41.0,35.0,0.0,3.0,20.0,47.0,0.0,8.0,44.0,0.0,25.0,0.0,0.0,20.0,2.0,24.0,0.0,2.0,8.0,1.0,1.0,3.0,7.0,1.0,0.0,5.0,44.0,72.0,44.0,10.0,0.0,0.0,19.0,17.0,0.0,7.0,90.0,5.0,18.0,17.0,0.0,10.0,1.0,30.0,23.0,2.0,0.0,44.0,8.0,29.0,13.0,10.0,24.0,117.0,1.0,25.0,0.0,24.0,69.0,44.0,2.0,215.0,26.0,4.0,28.0
+8.0,27.0,1.0,18.0,37.0,13.0,9.0,11.0,16.0,39.0,22.0,2.0,0.0,13.0,10.0,12.0,2.0,1.0,5.0,5.0,8.0,0.0,29.0,20.0,11.0,0.0,19.0,17.0,1.0,19.0,8.0,67.0,9.0,1.0,4.0,36.0,23.0,0.0,1.0,21.0,36.0,1.0,12.0,61.0,0.0,42.0,0.0,17.0,18.0,10.0,18.0,3.0,7.0,17.0,6.0,1.0,3.0,5.0,6.0,0.0,17.0,65.0,63.0,42.0,19.0,1.0,2.0,21.0,30.0,0.0,21.0,26.0,13.0,15.0,13.0,2.0,21.0,1.0,35.0,43.0,3.0,6.0,28.0,53.0,39.0,31.0,33.0,19.0,176.0,2.0,125.0,0.0,29.0,105.0,67.0,7.0,223.0,58.0,2.0,85.0
+15.0,22.0,0.0,15.0,34.0,1.0,11.0,10.0,18.0,9.0,19.0,4.0,8.0,9.0,1.0,16.0,3.0,3.0,6.0,10.0,19.0,0.0,18.0,25.0,20.0,22.0,12.0,21.0,0.0,18.0,16.0,15.0,7.0,21.0,5.0,8.0,27.0,14.0,13.0,23.0,12.0,9.0,14.0,11.0,1.0,51.0,9.0,29.0,14.0,1.0,33.0,6.0,20.0,9.0,8.0,29.0,16.0,30.0,7.0,1.0,15.0,80.0,15.0,36.0,22.0,9.0,19.0,18.0,48.0,28.0,26.0,30.0,48.0,29.0,38.0,6.0,40.0,10.0,62.0,66.0,16.0,13.0,40.0,69.0,62.0,46.0,40.0,30.0,60.0,65.0,158.0,129.0,59.0,187.0,147.0,138.0,128.0,131.0,4.0,296.0
+5.0,8.0,0.0,11.0,19.0,7.0,12.0,6.0,15.0,6.0,21.0,3.0,0.0,5.0,3.0,13.0,11.0,0.0,0.0,8.0,11.0,6.0,13.0,12.0,13.0,20.0,10.0,17.0,0.0,12.0,5.0,30.0,13.0,1.0,6.0,14.0,10.0,2.0,16.0,13.0,39.0,1.0,9.0,22.0,0.0,27.0,4.0,0.0,14.0,9.0,5.0,7.0,11.0,11.0,8.0,1.0,1.0,11.0,4.0,0.0,24.0,62.0,32.0,17.0,31.0,0.0,7.0,29.0,29.0,3.0,17.0,22.0,9.0,17.0,18.0,2.0,7.0,1.0,29.0,39.0,3.0,3.0,11.0,38.0,34.0,12.0,15.0,14.0,82.0,6.0,151.0,0.0,54.0,116.0,75.0,4.0,172.0,40.0,4.0,35.0
+8.0,23.0,5.0,14.0,4.0,13.0,18.0,5.0,5.0,16.0,21.0,12.0,0.0,13.0,0.0,8.0,16.0,0.0,4.0,7.0,4.0,20.0,22.0,0.0,4.0,2.0,19.0,12.0,0.0,10.0,2.0,20.0,10.0,1.0,16.0,27.0,10.0,1.0,9.0,12.0,37.0,0.0,15.0,35.0,0.0,2.0,14.0,0.0,18.0,9.0,6.0,17.0,13.0,5.0,14.0,0.0,28.0,5.0,18.0,0.0,5.0,44.0,70.0,29.0,18.0,4.0,5.0,32.0,14.0,5.0,21.0,50.0,11.0,12.0,31.0,2.0,16.0,0.0,46.0,22.0,22.0,6.0,6.0,22.0,17.0,26.0,42.0,36.0,128.0,6.0,15.0,2.0,55.0,85.0,36.0,2.0,184.0,41.0,16.0,27.0
+13.0,23.0,17.0,8.0,0.0,4.0,11.0,11.0,10.0,8.0,6.0,8.0,0.0,13.0,1.0,13.0,0.0,75.0,8.0,9.0,9.0,7.0,10.0,0.0,8.0,3.0,13.0,15.0,0.0,12.0,11.0,10.0,11.0,0.0,1.0,3.0,4.0,6.0,6.0,14.0,13.0,2.0,11.0,7.0,0.0,13.0,7.0,5.0,20.0,2.0,8.0,6.0,13.0,6.0,1.0,0.0,18.0,2.0,5.0,0.0,19.0,35.0,13.0,15.0,10.0,2.0,5.0,10.0,10.0,2.0,11.0,25.0,9.0,11.0,15.0,0.0,8.0,4.0,23.0,8.0,5.0,28.0,5.0,26.0,22.0,21.0,24.0,17.0,50.0,7.0,20.0,1.0,60.0,50.0,51.0,3.0,73.0,65.0,6.0,104.0
+12.0,21.0,1.0,15.0,18.0,4.0,4.0,15.0,7.0,12.0,12.0,0.0,1.0,1.0,0.0,2.0,1.0,0.0,6.0,12.0,15.0,1.0,4.0,10.0,10.0,15.0,5.0,9.0,0.0,34.0,9.0,4.0,3.0,3.0,2.0,4.0,31.0,19.0,4.0,11.0,8.0,11.0,8.0,7.0,22.0,36.0,0.0,40.0,18.0,6.0,21.0,9.0,5.0,32.0,1.0,15.0,15.0,7.0,8.0,0.0,25.0,34.0,16.0,59.0,8.0,0.0,5.0,22.0,24.0,21.0,56.0,23.0,29.0,30.0,61.0,10.0,36.0,12.0,92.0,39.0,7.0,22.0,50.0,79.0,36.0,50.0,22.0,79.0,30.0,22.0,21.0,1.0,33.0,66.0,84.0,49.0,80.0,40.0,2.0,117.0
+7.0,1.0,0.0,4.0,1.0,1.0,2.0,3.0,1.0,0.0,1.0,0.0,3.0,0.0,2.0,2.0,0.0,0.0,0.0,3.0,3.0,0.0,6.0,1.0,2.0,7.0,3.0,3.0,0.0,10.0,4.0,1.0,0.0,2.0,0.0,3.0,2.0,8.0,1.0,3.0,2.0,1.0,0.0,4.0,59.0,5.0,1.0,22.0,1.0,3.0,1.0,0.0,4.0,7.0,0.0,6.0,3.0,3.0,0.0,0.0,8.0,11.0,3.0,22.0,4.0,0.0,6.0,4.0,3.0,5.0,18.0,15.0,7.0,9.0,18.0,2.0,12.0,0.0,19.0,11.0,1.0,1.0,0.0,15.0,6.0,14.0,0.0,16.0,19.0,12.0,3.0,0.0,13.0,33.0,18.0,7.0,28.0,10.0,1.0,21.0
+1.0,6.0,0.0,3.0,6.0,1.0,2.0,3.0,3.0,0.0,7.0,0.0,0.0,2.0,0.0,3.0,2.0,0.0,2.0,1.0,0.0,0.0,14.0,5.0,3.0,9.0,6.0,3.0,1.0,8.0,3.0,0.0,3.0,0.0,0.0,0.0,8.0,0.0,1.0,3.0,6.0,0.0,5.0,4.0,0.0,18.0,0.0,1.0,15.0,4.0,6.0,0.0,3.0,3.0,1.0,1.0,5.0,7.0,3.0,0.0,2.0,11.0,1.0,5.0,7.0,0.0,0.0,2.0,8.0,7.0,18.0,0.0,2.0,15.0,10.0,0.0,3.0,0.0,9.0,12.0,0.0,2.0,10.0,16.0,15.0,8.0,3.0,22.0,14.0,15.0,0.0,4.0,5.0,25.0,21.0,2.0,17.0,20.0,104.0,4.0
+2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,3.0,0.0,2.0,0.0,2.0,1.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,2.0,4.0,0.0,4.0,9.0,0.0,2.0,1.0,2.0,4.0,0.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,3.0,1.0,5.0,2.0,1.0,9.0,1.0,4.0,6.0,3.0,1.0,2.0,1.0,5.0,5.0,13.0,1.0,7.0,7.0,14.0,10.0,14.0
+2.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,2.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,4.0,1.0,1.0,3.0,5.0,1.0,1.0,6.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,3.0,0.0,0.0,3.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,2.0,2.0,1.0,0.0,2.0,1.0,0.0,2.0,2.0,1.0,2.0,2.0,1.0,2.0,8.0,1.0,3.0,0.0,6.0,7.0,1.0,1.0,12.0,10.0,6.0,1.0,3.0,1.0,2.0,0.0,2.0,15.0,9.0,10.0,9.0,5.0,6.0,6.0,15.0,11.0
+27.0,12.0,3.0,3.0,7.0,14.0,13.0,16.0,5.0,2.0,16.0,6.0,2.0,5.0,10.0,16.0,10.0,1.0,5.0,18.0,17.0,7.0,18.0,4.0,27.0,16.0,3.0,8.0,0.0,6.0,24.0,9.0,14.0,3.0,8.0,7.0,7.0,15.0,7.0,20.0,11.0,14.0,15.0,8.0,0.0,26.0,8.0,10.0,15.0,57.0,16.0,4.0,25.0,6.0,7.0,15.0,16.0,18.0,14.0,1.0,18.0,24.0,15.0,15.0,31.0,27.0,6.0,29.0,23.0,15.0,20.0,10.0,29.0,20.0,21.0,5.0,31.0,0.0,40.0,41.0,4.0,18.0,14.0,38.0,59.0,38.0,50.0,31.0,62.0,26.0,64.0,71.0,109.0,169.0,152.0,47.0,98.0,71.0,66.0,204.0
+0.0,2.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,1.0,2.0,1.0,1.0,2.0,2.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,4.0,1.0,1.0,2.0,0.0,0.0,2.0,1.0,2.0,1.0,1.0,1.0,3.0,2.0,1.0,2.0,1.0,0.0,0.0,2.0,3.0,4.0,1.0,2.0,3.0,1.0,1.0,1.0,0.0,2.0,2.0,1.0,0.0,1.0,3.0,4.0,1.0,2.0,1.0,3.0,7.0,2.0,1.0,3.0,9.0,6.0,2.0,9.0,11.0,6.0,16.0
+3.0,6.0,0.0,2.0,3.0,4.0,2.0,2.0,3.0,4.0,11.0,0.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,1.0,1.0,1.0,3.0,1.0,6.0,0.0,2.0,4.0,0.0,4.0,1.0,1.0,2.0,1.0,0.0,2.0,5.0,0.0,0.0,0.0,10.0,1.0,3.0,6.0,0.0,18.0,1.0,0.0,6.0,2.0,3.0,1.0,0.0,3.0,3.0,0.0,2.0,4.0,1.0,0.0,5.0,4.0,1.0,18.0,8.0,0.0,1.0,1.0,4.0,0.0,6.0,6.0,6.0,12.0,19.0,1.0,6.0,0.0,16.0,6.0,8.0,0.0,1.0,7.0,8.0,15.0,4.0,8.0,44.0,5.0,6.0,0.0,21.0,30.0,20.0,4.0,13.0,17.0,18.0,16.0
+2.0,2.0,1.0,3.0,2.0,1.0,4.0,4.0,0.0,1.0,1.0,2.0,0.0,1.0,2.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,5.0,2.0,2.0,1.0,2.0,0.0,0.0,2.0,0.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,2.0,6.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,3.0,2.0,0.0,1.0,1.0,3.0,0.0,1.0,0.0,1.0,1.0,3.0,0.0,1.0,3.0,3.0,4.0,4.0,5.0,5.0,2.0,5.0,3.0,4.0,5.0,11.0,1.0,6.0,2.0,5.0,5.0,4.0,5.0,10.0,7.0,8.0,6.0,7.0,6.0,9.0,5.0,9.0,14.0,9.0,8.0,7.0,8.0,19.0,25.0
+13.0,13.0,2.0,4.0,13.0,14.0,7.0,13.0,13.0,3.0,15.0,4.0,20.0,0.0,1.0,10.0,11.0,0.0,12.0,17.0,18.0,1.0,10.0,2.0,11.0,6.0,12.0,16.0,2.0,15.0,9.0,3.0,6.0,8.0,5.0,5.0,12.0,13.0,16.0,8.0,5.0,6.0,16.0,10.0,10.0,3.0,6.0,7.0,6.0,2.0,4.0,10.0,13.0,1.0,8.0,14.0,26.0,19.0,37.0,0.0,11.0,33.0,21.0,22.0,26.0,25.0,21.0,32.0,39.0,50.0,24.0,20.0,18.0,37.0,27.0,16.0,16.0,2.0,56.0,34.0,34.0,17.0,6.0,48.0,65.0,48.0,29.0,39.0,33.0,33.0,64.0,35.0,95.0,146.0,117.0,64.0,80.0,75.0,48.0,215.0
+3.0,2.0,9.0,4.0,0.0,1.0,2.0,11.0,1.0,0.0,3.0,7.0,9.0,4.0,2.0,7.0,1.0,0.0,4.0,12.0,7.0,0.0,2.0,0.0,6.0,2.0,2.0,5.0,2.0,12.0,2.0,1.0,2.0,0.0,7.0,3.0,0.0,1.0,5.0,4.0,9.0,7.0,13.0,6.0,14.0,1.0,9.0,0.0,3.0,4.0,2.0,19.0,12.0,0.0,6.0,9.0,13.0,10.0,10.0,5.0,8.0,17.0,6.0,9.0,9.0,8.0,4.0,3.0,9.0,25.0,19.0,11.0,16.0,16.0,18.0,12.0,7.0,0.0,18.0,20.0,27.0,18.0,7.0,35.0,16.0,13.0,9.0,7.0,17.0,23.0,11.0,13.0,28.0,38.0,60.0,40.0,36.0,28.0,156.0,90.0
+1.0,0.0,2.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,4.0,5.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,5.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,4.0,0.0,2.0,0.0,1.0,1.0,3.0,1.0,0.0,3.0,6.0,0.0,1.0,0.0,1.0,2.0,4.0,0.0,1.0,4.0,3.0,12.0,3.0,0.0,2.0,1.0,1.0,2.0,1.0,1.0,4.0,2.0,6.0,5.0,2.0,7.0,1.0,0.0,5.0,3.0,10.0,9.0,4.0,10.0,55.0,9.0
+0.0,0.0,0.0,2.0,1.0,0.0,0.0,2.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,2.0,0.0,1.0,3.0,1.0,1.0,4.0,1.0,3.0,0.0,0.0,1.0,3.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,4.0,3.0,0.0,0.0,1.0,1.0,7.0,2.0,1.0,2.0,2.0,2.0,1.0,3.0,1.0,3.0,2.0,4.0,2.0,6.0,1.0,3.0,4.0,2.0,3.0,1.0,0.0,8.0,3.0,4.0,8.0,8.0,2.0,2.0,2.0,14.0,10.0,5.0,2.0,7.0,2.0,17.0,16.0
+1.0,1.0,1.0,2.0,0.0,1.0,0.0,0.0,3.0,2.0,0.0,2.0,0.0,1.0,0.0,7.0,2.0,1.0,1.0,0.0,2.0,1.0,6.0,3.0,6.0,1.0,2.0,0.0,1.0,3.0,3.0,0.0,0.0,1.0,1.0,2.0,1.0,1.0,1.0,5.0,5.0,6.0,0.0,1.0,1.0,4.0,2.0,1.0,2.0,2.0,1.0,4.0,4.0,1.0,0.0,0.0,2.0,1.0,1.0,0.0,1.0,1.0,2.0,2.0,3.0,2.0,2.0,3.0,4.0,5.0,6.0,1.0,2.0,14.0,16.0,4.0,3.0,5.0,10.0,5.0,2.0,5.0,1.0,8.0,3.0,20.0,3.0,11.0,5.0,4.0,2.0,3.0,16.0,24.0,10.0,4.0,11.0,14.0,24.0,35.0
+0.0,0.0,2.0,0.0,0.0,1.0,1.0,3.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,2.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,3.0,2.0,0.0,1.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,4.0,1.0,5.0,1.0,5.0,8.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,1.0,1.0,1.0,6.0,0.0,1.0,0.0,5.0,5.0,3.0,0.0,7.0,4.0,4.0,4.0,0.0,3.0,2.0,2.0,5.0,4.0,2.0,6.0,0.0,3.0,6.0,6.0,11.0,5.0,2.0,11.0,54.0,25.0
+1.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,2.0,2.0,3.0,0.0,3.0,0.0,2.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,2.0,3.0,2.0,0.0,1.0,0.0,2.0,3.0,4.0,0.0,0.0,0.0,4.0,0.0,1.0,2.0,2.0,2.0,3.0,1.0,1.0,0.0,3.0,6.0,6.0,2.0,1.0,4.0,5.0,4.0,2.0,1.0,7.0,3.0,3.0,3.0,7.0,9.0,17.0,1.0,3.0,7.0,20.0,11.0
+0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,2.0,2.0,2.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,7.0,1.0,0.0,0.0,2.0,3.0,0.0,1.0,1.0,4.0,0.0,1.0,1.0,2.0,0.0,2.0,1.0,2.0,0.0,1.0,0.0,2.0,4.0,2.0,1.0,1.0,9.0,1.0,0.0,0.0,0.0,4.0,3.0,0.0,6.0,2.0,2.0,3.0,3.0,1.0,10.0,7.0,8.0,4.0,9.0,8.0,16.0,19.0
+9.0,13.0,5.0,6.0,8.0,7.0,5.0,13.0,9.0,1.0,17.0,6.0,28.0,16.0,6.0,17.0,5.0,0.0,3.0,11.0,27.0,6.0,13.0,1.0,10.0,25.0,11.0,13.0,0.0,18.0,19.0,6.0,18.0,7.0,13.0,14.0,7.0,11.0,16.0,15.0,20.0,22.0,14.0,15.0,1.0,36.0,34.0,11.0,6.0,8.0,37.0,38.0,29.0,38.0,15.0,27.0,27.0,26.0,24.0,5.0,17.0,36.0,25.0,42.0,36.0,31.0,16.0,23.0,43.0,91.0,33.0,14.0,43.0,30.0,22.0,37.0,17.0,0.0,51.0,41.0,66.0,33.0,49.0,123.0,80.0,32.0,77.0,41.0,60.0,108.0,57.0,88.0,78.0,150.0,137.0,125.0,135.0,272.0,101.0,376.0
+12.0,4.0,0.0,1.0,4.0,2.0,13.0,15.0,8.0,10.0,7.0,10.0,7.0,1.0,3.0,17.0,2.0,1.0,10.0,10.0,10.0,0.0,10.0,18.0,12.0,11.0,4.0,6.0,1.0,12.0,11.0,4.0,7.0,5.0,4.0,5.0,41.0,13.0,11.0,7.0,11.0,11.0,16.0,5.0,32.0,24.0,2.0,13.0,11.0,6.0,40.0,2.0,8.0,8.0,11.0,12.0,9.0,11.0,14.0,1.0,17.0,26.0,13.0,35.0,28.0,5.0,7.0,19.0,19.0,22.0,15.0,15.0,19.0,18.0,32.0,12.0,19.0,50.0,47.0,32.0,19.0,43.0,12.0,85.0,29.0,26.0,23.0,52.0,23.0,61.0,11.0,15.0,80.0,79.0,59.0,33.0,92.0,101.0,10.0,303.0
+13.0,19.0,17.0,12.0,13.0,4.0,23.0,15.0,10.0,2.0,12.0,13.0,5.0,11.0,3.0,16.0,9.0,4.0,13.0,18.0,21.0,1.0,9.0,18.0,16.0,30.0,12.0,7.0,15.0,31.0,18.0,2.0,13.0,42.0,7.0,3.0,18.0,6.0,16.0,13.0,4.0,23.0,14.0,3.0,2.0,2.0,18.0,4.0,13.0,3.0,16.0,12.0,16.0,16.0,9.0,43.0,30.0,42.0,23.0,1.0,14.0,46.0,3.0,34.0,64.0,10.0,33.0,19.0,47.0,62.0,53.0,9.0,65.0,28.0,45.0,86.0,49.0,11.0,69.0,67.0,60.0,65.0,23.0,38.0,93.0,74.0,145.0,35.0,20.0,114.0,107.0,142.0,61.0,147.0,208.0,132.0,35.0,255.0,188.0,351.0
+2.0,5.0,0.0,3.0,3.0,5.0,5.0,6.0,3.0,7.0,12.0,6.0,6.0,1.0,2.0,4.0,2.0,1.0,0.0,8.0,18.0,1.0,3.0,8.0,3.0,12.0,3.0,1.0,1.0,18.0,3.0,7.0,4.0,0.0,6.0,10.0,8.0,7.0,7.0,8.0,5.0,10.0,1.0,3.0,0.0,6.0,10.0,6.0,6.0,6.0,2.0,4.0,4.0,1.0,2.0,8.0,8.0,10.0,13.0,1.0,3.0,28.0,18.0,13.0,8.0,0.0,2.0,8.0,16.0,18.0,26.0,6.0,28.0,21.0,18.0,15.0,6.0,0.0,26.0,23.0,22.0,35.0,6.0,28.0,27.0,24.0,37.0,12.0,62.0,30.0,48.0,22.0,10.0,78.0,72.0,53.0,83.0,92.0,2.0,190.0
+11.0,10.0,37.0,12.0,12.0,5.0,8.0,7.0,2.0,4.0,10.0,25.0,0.0,19.0,8.0,10.0,5.0,39.0,8.0,11.0,8.0,2.0,8.0,4.0,14.0,4.0,6.0,6.0,1.0,14.0,7.0,9.0,22.0,4.0,27.0,3.0,3.0,8.0,32.0,9.0,10.0,24.0,18.0,5.0,2.0,17.0,19.0,8.0,7.0,13.0,9.0,24.0,22.0,4.0,15.0,10.0,19.0,24.0,27.0,93.0,7.0,26.0,15.0,13.0,23.0,4.0,9.0,16.0,14.0,23.0,48.0,15.0,22.0,12.0,36.0,15.0,23.0,2.0,29.0,33.0,42.0,21.0,17.0,44.0,21.0,48.0,72.0,17.0,14.0,20.0,20.0,81.0,90.0,83.0,66.0,77.0,62.0,100.0,145.0,139.0
+19.0,11.0,5.0,7.0,7.0,3.0,34.0,39.0,7.0,0.0,8.0,20.0,1.0,5.0,93.0,25.0,8.0,9.0,7.0,27.0,25.0,8.0,20.0,6.0,37.0,24.0,10.0,10.0,1.0,20.0,21.0,7.0,18.0,3.0,16.0,10.0,13.0,0.0,20.0,23.0,17.0,49.0,53.0,5.0,0.0,35.0,14.0,0.0,31.0,104.0,28.0,17.0,31.0,3.0,21.0,24.0,29.0,41.0,46.0,2.0,30.0,30.0,17.0,33.0,68.0,10.0,35.0,37.0,72.0,56.0,44.0,26.0,70.0,34.0,56.0,31.0,52.0,7.0,59.0,120.0,46.0,74.0,30.0,100.0,106.0,73.0,127.0,46.0,73.0,210.0,104.0,190.0,199.0,212.0,250.0,120.0,119.0,141.0,159.0,533.0
+8.0,4.0,2.0,5.0,0.0,2.0,7.0,6.0,1.0,9.0,3.0,5.0,0.0,3.0,3.0,8.0,3.0,0.0,10.0,6.0,28.0,1.0,4.0,8.0,6.0,21.0,10.0,6.0,3.0,3.0,13.0,0.0,4.0,0.0,3.0,11.0,11.0,7.0,5.0,9.0,5.0,6.0,9.0,7.0,6.0,9.0,14.0,5.0,5.0,2.0,16.0,14.0,5.0,9.0,8.0,6.0,3.0,22.0,13.0,0.0,8.0,18.0,13.0,20.0,20.0,5.0,9.0,14.0,22.0,29.0,3.0,11.0,35.0,3.0,4.0,16.0,5.0,159.0,11.0,26.0,33.0,53.0,84.0,78.0,43.0,12.0,55.0,7.0,33.0,72.0,57.0,53.0,59.0,72.0,87.0,42.0,46.0,186.0,29.0,358.0
+15.0,16.0,9.0,6.0,8.0,5.0,16.0,15.0,2.0,7.0,2.0,18.0,13.0,20.0,4.0,15.0,5.0,18.0,13.0,11.0,10.0,9.0,10.0,6.0,23.0,20.0,5.0,13.0,0.0,22.0,9.0,0.0,32.0,1.0,13.0,0.0,15.0,12.0,13.0,16.0,2.0,16.0,45.0,6.0,16.0,14.0,3.0,15.0,14.0,7.0,19.0,7.0,10.0,12.0,11.0,14.0,6.0,26.0,15.0,3.0,12.0,29.0,4.0,15.0,39.0,1.0,17.0,38.0,26.0,17.0,41.0,6.0,18.0,19.0,57.0,4.0,33.0,4.0,53.0,39.0,56.0,43.0,82.0,66.0,41.0,37.0,33.0,75.0,14.0,101.0,38.0,190.0,189.0,155.0,81.0,26.0,53.0,109.0,412.0,344.0
+21.0,21.0,1.0,13.0,7.0,6.0,25.0,23.0,11.0,3.0,18.0,15.0,0.0,30.0,3.0,21.0,29.0,1.0,10.0,26.0,31.0,0.0,13.0,4.0,16.0,33.0,20.0,12.0,34.0,23.0,26.0,6.0,16.0,6.0,68.0,11.0,8.0,4.0,30.0,18.0,14.0,22.0,18.0,6.0,8.0,14.0,30.0,13.0,15.0,5.0,20.0,40.0,36.0,6.0,50.0,37.0,34.0,35.0,47.0,1.0,32.0,47.0,18.0,46.0,41.0,22.0,12.0,37.0,56.0,105.0,53.0,31.0,63.0,34.0,52.0,34.0,43.0,1.0,67.0,56.0,126.0,95.0,27.0,113.0,68.0,48.0,139.0,47.0,59.0,131.0,63.0,80.0,118.0,151.0,125.0,130.0,143.0,355.0,333.0,589.0
+9.0,3.0,13.0,1.0,1.0,4.0,9.0,10.0,2.0,5.0,5.0,6.0,0.0,8.0,0.0,7.0,3.0,0.0,10.0,13.0,9.0,0.0,3.0,8.0,11.0,1.0,1.0,2.0,5.0,16.0,4.0,2.0,4.0,1.0,6.0,6.0,0.0,3.0,7.0,7.0,7.0,15.0,11.0,6.0,0.0,5.0,11.0,0.0,9.0,1.0,13.0,11.0,10.0,5.0,6.0,11.0,15.0,12.0,13.0,10.0,7.0,15.0,3.0,10.0,14.0,8.0,5.0,8.0,12.0,26.0,24.0,7.0,27.0,14.0,29.0,14.0,16.0,1.0,51.0,29.0,37.0,32.0,0.0,35.0,35.0,28.0,17.0,32.0,31.0,51.0,67.0,31.0,74.0,64.0,63.0,53.0,49.0,54.0,65.0,136.0
+14.0,21.0,0.0,28.0,30.0,10.0,81.0,12.0,14.0,26.0,15.0,0.0,0.0,5.0,69.0,9.0,0.0,0.0,27.0,28.0,0.0,1.0,31.0,11.0,11.0,7.0,19.0,12.0,0.0,63.0,29.0,1.0,8.0,1.0,3.0,0.0,5.0,0.0,12.0,27.0,1.0,3.0,20.0,0.0,0.0,16.0,3.0,0.0,99.0,95.0,7.0,0.0,9.0,10.0,15.0,1.0,32.0,1.0,3.0,5.0,8.0,93.0,2.0,44.0,24.0,0.0,6.0,17.0,30.0,0.0,47.0,4.0,1.0,47.0,125.0,0.0,65.0,0.0,160.0,39.0,4.0,6.0,66.0,23.0,39.0,111.0,50.0,185.0,9.0,67.0,10.0,4.0,119.0,86.0,97.0,3.0,10.0,43.0,10.0,12.0
+9.0,15.0,0.0,10.0,0.0,3.0,8.0,5.0,3.0,1.0,11.0,4.0,0.0,0.0,1.0,6.0,4.0,0.0,2.0,3.0,14.0,2.0,10.0,3.0,10.0,1.0,9.0,5.0,0.0,15.0,7.0,5.0,12.0,0.0,10.0,0.0,9.0,0.0,6.0,12.0,18.0,0.0,17.0,6.0,1.0,8.0,2.0,0.0,19.0,6.0,10.0,3.0,7.0,5.0,4.0,0.0,2.0,9.0,4.0,0.0,7.0,27.0,16.0,21.0,10.0,0.0,3.0,15.0,36.0,0.0,19.0,26.0,8.0,22.0,24.0,1.0,22.0,5.0,28.0,27.0,2.0,2.0,16.0,54.0,25.0,26.0,3.0,23.0,27.0,0.0,29.0,2.0,64.0,38.0,70.0,1.0,53.0,44.0,0.0,59.0
+2.0,13.0,0.0,9.0,6.0,7.0,4.0,5.0,2.0,0.0,11.0,1.0,0.0,0.0,0.0,5.0,0.0,0.0,1.0,1.0,0.0,0.0,8.0,10.0,5.0,0.0,11.0,6.0,0.0,5.0,1.0,2.0,0.0,0.0,0.0,4.0,4.0,0.0,1.0,8.0,4.0,1.0,2.0,2.0,0.0,5.0,0.0,0.0,2.0,1.0,2.0,0.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,5.0,22.0,9.0,18.0,2.0,0.0,2.0,2.0,15.0,1.0,7.0,3.0,4.0,8.0,8.0,0.0,8.0,0.0,13.0,8.0,0.0,3.0,7.0,2.0,13.0,11.0,1.0,13.0,13.0,0.0,1.0,0.0,16.0,22.0,44.0,1.0,46.0,9.0,0.0,2.0
+9.0,11.0,1.0,4.0,4.0,10.0,10.0,3.0,7.0,12.0,13.0,1.0,0.0,4.0,0.0,5.0,9.0,0.0,8.0,8.0,10.0,12.0,10.0,0.0,17.0,5.0,17.0,6.0,1.0,39.0,4.0,9.0,7.0,0.0,0.0,6.0,22.0,0.0,4.0,11.0,29.0,2.0,6.0,19.0,0.0,29.0,2.0,0.0,6.0,17.0,22.0,0.0,12.0,6.0,6.0,1.0,0.0,22.0,5.0,0.0,13.0,39.0,20.0,28.0,16.0,0.0,1.0,14.0,12.0,2.0,36.0,24.0,9.0,18.0,40.0,0.0,27.0,4.0,51.0,12.0,4.0,8.0,9.0,26.0,24.0,38.0,12.0,40.0,60.0,1.0,36.0,2.0,106.0,40.0,32.0,1.0,101.0,19.0,8.0,44.0
+2.0,2.0,0.0,6.0,0.0,5.0,5.0,0.0,15.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,16.0,0.0,0.0,6.0,2.0,5.0,0.0,6.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,9.0,3.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,16.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,0.0,0.0,4.0,19.0,0.0,24.0,0.0,17.0,3.0,0.0,0.0,24.0,0.0,3.0,26.0,0.0,16.0,11.0,0.0,0.0,0.0,0.0,7.0,4.0,0.0,19.0,5.0,0.0,4.0
+0.0,3.0,0.0,12.0,1.0,8.0,1.0,0.0,14.0,3.0,8.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,1.0,10.0,4.0,0.0,5.0,1.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,7.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,1.0,0.0,0.0,6.0,0.0,0.0,5.0,0.0,0.0,4.0,3.0,0.0,12.0,0.0,4.0,0.0,0.0,0.0,27.0,0.0,4.0,15.0,0.0,8.0,15.0,0.0,0.0,0.0,4.0,2.0,3.0,0.0,17.0,2.0,0.0,1.0
+0.0,2.0,0.0,11.0,1.0,14.0,2.0,0.0,12.0,0.0,13.0,1.0,0.0,0.0,2.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,2.0,17.0,12.0,0.0,6.0,1.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,2.0,11.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,7.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,17.0,9.0,0.0,16.0,0.0,4.0,2.0,0.0,0.0,36.0,0.0,2.0,15.0,0.0,7.0,3.0,0.0,0.0,0.0,3.0,1.0,14.0,0.0,14.0,1.0,0.0,1.0
+1.0,5.0,0.0,9.0,0.0,8.0,1.0,0.0,5.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,3.0,6.0,5.0,0.0,9.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,11.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,6.0,3.0,0.0,6.0,0.0,0.0,4.0,5.0,0.0,16.0,0.0,2.0,0.0,0.0,0.0,11.0,0.0,1.0,7.0,0.0,10.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,12.0,1.0,0.0,0.0
+0.0,7.0,0.0,6.0,0.0,10.0,0.0,0.0,8.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,12.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,6.0,1.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,0.0,5.0,1.0,0.0,1.0,0.0,3.0,2.0,0.0,0.0,9.0,0.0,11.0,3.0,0.0,7.0,5.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0
+1.0,1.0,0.0,8.0,0.0,10.0,0.0,0.0,14.0,0.0,10.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,2.0,9.0,3.0,0.0,1.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,14.0,0.0,0.0,2.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,6.0,1.0,0.0,5.0
+0.0,9.0,0.0,16.0,0.0,13.0,1.0,0.0,17.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,14.0,0.0,0.0,0.0,11.0,1.0,0.0,6.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,32.0,7.0,0.0,18.0,0.0,12.0,3.0,0.0,0.0,23.0,3.0,3.0,11.0,0.0,12.0,3.0,0.0,0.0,0.0,4.0,1.0,9.0,0.0,19.0,1.0,0.0,1.0
+0.0,3.0,0.0,6.0,1.0,3.0,0.0,0.0,13.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,0.0,9.0,7.0,5.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,9.0,13.0,0.0,25.0,0.0,7.0,0.0,0.0,0.0,25.0,0.0,0.0,24.0,0.0,8.0,3.0,0.0,0.0,0.0,2.0,1.0,3.0,0.0,19.0,0.0,0.0,1.0
+5.0,4.0,0.0,6.0,0.0,15.0,2.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,19.0,2.0,0.0,1.0,6.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,13.0,0.0,11.0,0.0,4.0,0.0,0.0,0.0,11.0,0.0,2.0,8.0,0.0,15.0,3.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,10.0,1.0,0.0,1.0
+1.0,7.0,0.0,6.0,0.0,3.0,0.0,1.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,4.0,9.0,0.0,1.0,1.0,5.0,1.0,1.0,0.0,12.0,0.0,0.0,1.0,6.0,3.0,0.0,0.0,12.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,6.0,5.0,0.0,0.0,0.0,3.0,8.0,0.0,6.0,0.0,0.0,10.0,8.0,0.0,7.0,0.0,8.0,2.0,1.0,0.0,3.0,2.0,7.0,19.0,3.0,14.0,19.0,3.0,0.0,0.0,1.0,6.0,10.0,0.0,24.0,1.0,0.0,6.0
+2.0,3.0,0.0,5.0,0.0,6.0,0.0,0.0,9.0,1.0,7.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,4.0,7.0,0.0,2.0,4.0,10.0,0.0,8.0,4.0,4.0,2.0,0.0,0.0,5.0,0.0,1.0,0.0,2.0,8.0,0.0,0.0,10.0,0.0,1.0,0.0,6.0,1.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,4.0,3.0,7.0,16.0,1.0,1.0,3.0,3.0,0.0,0.0,6.0,1.0,2.0,18.0,20.0,0.0,7.0,0.0,8.0,0.0,0.0,1.0,13.0,5.0,2.0,27.0,0.0,20.0,23.0,0.0,0.0,0.0,1.0,7.0,3.0,0.0,38.0,2.0,0.0,12.0
+0.0,8.0,0.0,7.0,2.0,10.0,0.0,0.0,3.0,0.0,7.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,5.0,0.0,3.0,11.0,6.0,0.0,5.0,1.0,4.0,1.0,0.0,0.0,2.0,0.0,3.0,0.0,8.0,1.0,2.0,0.0,3.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,3.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,4.0,9.0,1.0,0.0,2.0,2.0,1.0,0.0,4.0,0.0,0.0,4.0,10.0,0.0,17.0,0.0,16.0,0.0,2.0,3.0,11.0,1.0,5.0,14.0,1.0,37.0,13.0,0.0,0.0,0.0,1.0,4.0,6.0,0.0,49.0,2.0,0.0,6.0
+0.0,5.0,0.0,4.0,1.0,2.0,1.0,0.0,12.0,0.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,1.0,1.0,5.0,4.0,5.0,0.0,23.0,4.0,0.0,0.0,0.0,0.0,7.0,0.0,2.0,2.0,11.0,4.0,0.0,3.0,10.0,0.0,0.0,0.0,6.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,9.0,5.0,4.0,23.0,0.0,0.0,0.0,2.0,1.0,0.0,12.0,17.0,3.0,31.0,16.0,0.0,19.0,0.0,12.0,3.0,0.0,6.0,30.0,0.0,5.0,20.0,0.0,17.0,17.0,0.0,6.0,0.0,5.0,4.0,8.0,0.0,45.0,4.0,0.0,18.0
+3.0,7.0,0.0,3.0,1.0,16.0,1.0,5.0,12.0,0.0,5.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,16.0,7.0,0.0,4.0,1.0,4.0,0.0,17.0,0.0,2.0,0.0,10.0,0.0,9.0,1.0,2.0,0.0,7.0,12.0,0.0,3.0,13.0,0.0,1.0,2.0,5.0,1.0,0.0,6.0,0.0,3.0,4.0,0.0,4.0,4.0,1.0,0.0,0.0,8.0,4.0,16.0,11.0,1.0,0.0,2.0,4.0,2.0,5.0,12.0,7.0,4.0,15.0,33.0,0.0,34.0,0.0,14.0,10.0,1.0,1.0,40.0,25.0,15.0,40.0,2.0,23.0,28.0,7.0,0.0,0.0,3.0,4.0,16.0,0.0,88.0,4.0,0.0,19.0
+1.0,1.0,0.0,8.0,2.0,13.0,0.0,4.0,9.0,3.0,7.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0,4.0,12.0,0.0,1.0,7.0,3.0,0.0,16.0,6.0,9.0,0.0,0.0,5.0,12.0,1.0,0.0,0.0,12.0,2.0,0.0,0.0,5.0,0.0,3.0,0.0,2.0,0.0,1.0,3.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,9.0,7.0,1.0,0.0,0.0,3.0,4.0,0.0,11.0,9.0,0.0,28.0,48.0,0.0,42.0,0.0,19.0,1.0,0.0,0.0,30.0,1.0,6.0,29.0,0.0,42.0,16.0,0.0,0.0,0.0,10.0,6.0,6.0,0.0,70.0,0.0,0.0,4.0
+2.0,0.0,0.0,3.0,0.0,2.0,2.0,3.0,0.0,0.0,10.0,3.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,6.0,9.0,0.0,2.0,6.0,4.0,0.0,6.0,5.0,1.0,1.0,2.0,0.0,3.0,4.0,1.0,2.0,3.0,1.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,1.0,0.0,4.0,0.0,4.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,7.0,6.0,8.0,0.0,0.0,0.0,2.0,1.0,0.0,8.0,4.0,2.0,9.0,18.0,0.0,9.0,0.0,15.0,6.0,0.0,0.0,27.0,0.0,0.0,3.0,0.0,10.0,31.0,2.0,0.0,0.0,11.0,6.0,17.0,0.0,34.0,1.0,0.0,4.0
+3.0,0.0,0.0,6.0,0.0,8.0,0.0,0.0,3.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,1.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,7.0,12.0,0.0,10.0,0.0,7.0,5.0,0.0,0.0,17.0,0.0,2.0,3.0,0.0,8.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,3.0
+0.0,2.0,0.0,4.0,0.0,3.0,0.0,0.0,5.0,1.0,7.0,0.0,0.0,1.0,0.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,4.0,1.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,11.0,5.0,0.0,16.0,0.0,3.0,0.0,0.0,0.0,18.0,0.0,4.0,14.0,0.0,12.0,3.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,2.0,0.0,0.0,3.0
+1.0,4.0,0.0,2.0,2.0,9.0,1.0,0.0,10.0,0.0,3.0,0.0,0.0,0.0,0.0,2.0,4.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,2.0,10.0,5.0,3.0,0.0,2.0,7.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,6.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,6.0,3.0,15.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,4.0,5.0,0.0,0.0,1.0,6.0,0.0,1.0,1.0,12.0,2.0,8.0,8.0,0.0,4.0,6.0,0.0,0.0,0.0,1.0,1.0,6.0,0.0,17.0,1.0,0.0,1.0
+3.0,9.0,0.0,14.0,2.0,6.0,1.0,2.0,2.0,2.0,7.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,15.0,0.0,1.0,1.0,6.0,8.0,0.0,1.0,5.0,1.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,12.0,0.0,0.0,2.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,1.0,0.0,0.0,2.0,0.0,0.0,8.0,0.0,0.0,17.0,10.0,0.0,2.0,0.0,11.0,5.0,0.0,0.0,18.0,0.0,6.0,10.0,0.0,19.0,4.0,0.0,1.0,1.0,3.0,10.0,14.0,0.0,18.0,1.0,0.0,4.0
+1.0,5.0,0.0,6.0,4.0,2.0,2.0,3.0,7.0,15.0,3.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,4.0,4.0,6.0,1.0,6.0,9.0,0.0,0.0,4.0,12.0,0.0,5.0,13.0,4.0,4.0,0.0,0.0,9.0,15.0,0.0,4.0,8.0,15.0,0.0,1.0,16.0,0.0,4.0,1.0,0.0,11.0,0.0,8.0,3.0,5.0,2.0,3.0,0.0,1.0,1.0,1.0,0.0,3.0,10.0,18.0,15.0,1.0,13.0,4.0,6.0,4.0,0.0,11.0,7.0,2.0,18.0,11.0,0.0,10.0,1.0,12.0,7.0,0.0,5.0,31.0,6.0,18.0,14.0,1.0,30.0,28.0,3.0,45.0,2.0,9.0,24.0,26.0,21.0,64.0,24.0,0.0,18.0
+6.0,11.0,0.0,20.0,16.0,23.0,3.0,2.0,10.0,0.0,10.0,0.0,0.0,2.0,3.0,7.0,4.0,0.0,2.0,0.0,7.0,3.0,21.0,5.0,7.0,8.0,6.0,8.0,0.0,7.0,9.0,4.0,6.0,6.0,2.0,4.0,5.0,0.0,1.0,17.0,16.0,3.0,8.0,17.0,0.0,22.0,0.0,4.0,8.0,4.0,20.0,0.0,4.0,11.0,4.0,0.0,4.0,4.0,0.0,0.0,6.0,12.0,18.0,17.0,1.0,0.0,1.0,22.0,6.0,1.0,12.0,11.0,3.0,42.0,34.0,0.0,19.0,0.0,26.0,21.0,0.0,7.0,32.0,11.0,26.0,61.0,1.0,28.0,34.0,1.0,25.0,0.0,18.0,42.0,46.0,0.0,84.0,27.0,1.0,36.0
+8.0,3.0,0.0,7.0,8.0,6.0,6.0,4.0,18.0,1.0,7.0,1.0,0.0,0.0,1.0,12.0,5.0,0.0,10.0,1.0,6.0,0.0,6.0,13.0,13.0,1.0,10.0,17.0,0.0,0.0,16.0,2.0,5.0,8.0,1.0,7.0,22.0,0.0,10.0,18.0,12.0,2.0,13.0,4.0,0.0,14.0,4.0,0.0,28.0,6.0,15.0,1.0,18.0,5.0,5.0,0.0,4.0,4.0,3.0,0.0,1.0,12.0,11.0,18.0,20.0,0.0,8.0,12.0,7.0,0.0,14.0,23.0,11.0,11.0,27.0,1.0,20.0,10.0,15.0,13.0,3.0,7.0,15.0,27.0,12.0,23.0,20.0,25.0,45.0,4.0,36.0,0.0,87.0,48.0,39.0,0.0,41.0,88.0,0.0,110.0
+2.0,3.0,0.0,8.0,8.0,7.0,3.0,1.0,16.0,6.0,8.0,7.0,0.0,3.0,0.0,5.0,0.0,0.0,0.0,1.0,7.0,2.0,2.0,5.0,5.0,3.0,3.0,4.0,0.0,2.0,5.0,2.0,6.0,0.0,2.0,4.0,9.0,0.0,2.0,6.0,13.0,0.0,2.0,10.0,0.0,8.0,0.0,0.0,2.0,2.0,10.0,2.0,4.0,15.0,1.0,0.0,1.0,5.0,0.0,0.0,2.0,1.0,11.0,11.0,5.0,0.0,0.0,1.0,1.0,0.0,5.0,7.0,2.0,9.0,20.0,0.0,6.0,1.0,17.0,3.0,0.0,0.0,44.0,7.0,15.0,10.0,5.0,27.0,42.0,1.0,16.0,0.0,27.0,13.0,11.0,0.0,45.0,35.0,0.0,8.0
+1.0,18.0,0.0,13.0,22.0,22.0,3.0,7.0,22.0,15.0,11.0,2.0,0.0,3.0,1.0,4.0,5.0,0.0,0.0,0.0,3.0,1.0,16.0,12.0,6.0,11.0,29.0,9.0,1.0,3.0,5.0,6.0,2.0,0.0,1.0,12.0,4.0,0.0,4.0,27.0,15.0,0.0,7.0,17.0,0.0,11.0,3.0,0.0,5.0,9.0,3.0,1.0,5.0,4.0,1.0,0.0,4.0,1.0,2.0,0.0,5.0,22.0,29.0,34.0,3.0,0.0,0.0,10.0,3.0,0.0,12.0,14.0,7.0,25.0,19.0,0.0,10.0,1.0,33.0,9.0,1.0,1.0,28.0,3.0,6.0,28.0,5.0,17.0,52.0,2.0,4.0,0.0,23.0,47.0,33.0,0.0,70.0,19.0,1.0,17.0
+5.0,11.0,0.0,12.0,19.0,8.0,5.0,6.0,8.0,6.0,7.0,1.0,0.0,6.0,2.0,0.0,4.0,0.0,3.0,1.0,11.0,1.0,16.0,9.0,3.0,16.0,16.0,14.0,0.0,5.0,11.0,15.0,2.0,0.0,7.0,30.0,31.0,7.0,1.0,17.0,36.0,0.0,2.0,25.0,1.0,18.0,0.0,12.0,10.0,5.0,17.0,6.0,4.0,7.0,2.0,0.0,6.0,7.0,2.0,0.0,6.0,13.0,40.0,25.0,9.0,0.0,5.0,10.0,8.0,0.0,13.0,14.0,7.0,19.0,25.0,0.0,9.0,1.0,22.0,10.0,1.0,1.0,63.0,16.0,23.0,21.0,22.0,46.0,89.0,5.0,18.0,0.0,22.0,45.0,61.0,0.0,125.0,40.0,0.0,30.0
+8.0,8.0,0.0,22.0,15.0,21.0,14.0,3.0,12.0,8.0,13.0,1.0,0.0,0.0,0.0,9.0,8.0,0.0,7.0,5.0,9.0,0.0,14.0,26.0,0.0,27.0,9.0,21.0,0.0,9.0,19.0,9.0,12.0,0.0,4.0,18.0,18.0,5.0,7.0,20.0,23.0,1.0,8.0,27.0,0.0,23.0,0.0,26.0,40.0,9.0,22.0,0.0,7.0,8.0,6.0,3.0,1.0,11.0,0.0,0.0,14.0,14.0,41.0,34.0,19.0,0.0,2.0,10.0,14.0,0.0,12.0,34.0,12.0,10.0,21.0,0.0,14.0,0.0,26.0,21.0,4.0,10.0,144.0,21.0,46.0,16.0,4.0,45.0,100.0,0.0,68.0,0.0,31.0,43.0,45.0,0.0,152.0,35.0,0.0,57.0
+0.0,3.0,0.0,6.0,3.0,8.0,1.0,2.0,3.0,1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,3.0,9.0,0.0,2.0,6.0,4.0,1.0,0.0,1.0,1.0,3.0,1.0,0.0,5.0,10.0,1.0,0.0,0.0,7.0,10.0,0.0,1.0,5.0,0.0,0.0,1.0,0.0,4.0,5.0,2.0,0.0,1.0,2.0,9.0,0.0,1.0,2.0,1.0,0.0,2.0,2.0,12.0,22.0,5.0,0.0,0.0,7.0,1.0,0.0,2.0,5.0,1.0,10.0,6.0,0.0,1.0,0.0,9.0,4.0,1.0,3.0,6.0,1.0,6.0,7.0,4.0,10.0,29.0,0.0,3.0,0.0,8.0,14.0,17.0,0.0,40.0,20.0,0.0,14.0
+5.0,4.0,0.0,8.0,9.0,8.0,1.0,3.0,15.0,15.0,5.0,5.0,0.0,1.0,2.0,5.0,9.0,0.0,8.0,3.0,3.0,0.0,6.0,6.0,10.0,7.0,5.0,7.0,0.0,2.0,7.0,3.0,15.0,0.0,3.0,9.0,10.0,0.0,1.0,11.0,8.0,0.0,8.0,7.0,0.0,12.0,10.0,0.0,12.0,0.0,4.0,3.0,6.0,19.0,9.0,0.0,4.0,6.0,2.0,0.0,5.0,12.0,20.0,14.0,4.0,0.0,3.0,3.0,1.0,0.0,4.0,3.0,5.0,10.0,15.0,1.0,5.0,2.0,12.0,11.0,3.0,12.0,13.0,14.0,17.0,14.0,8.0,24.0,57.0,13.0,18.0,0.0,39.0,48.0,35.0,0.0,79.0,83.0,0.0,28.0
+1.0,9.0,0.0,15.0,1.0,7.0,4.0,1.0,12.0,1.0,3.0,5.0,0.0,1.0,2.0,5.0,8.0,0.0,6.0,2.0,2.0,4.0,10.0,1.0,6.0,3.0,8.0,2.0,0.0,5.0,8.0,0.0,11.0,0.0,5.0,1.0,0.0,0.0,4.0,15.0,0.0,3.0,7.0,2.0,2.0,0.0,0.0,0.0,23.0,2.0,1.0,0.0,9.0,28.0,28.0,0.0,8.0,1.0,2.0,0.0,7.0,4.0,11.0,2.0,9.0,0.0,1.0,12.0,3.0,1.0,3.0,2.0,5.0,12.0,23.0,0.0,7.0,0.0,8.0,5.0,3.0,4.0,52.0,9.0,27.0,18.0,15.0,11.0,15.0,6.0,4.0,12.0,49.0,12.0,29.0,0.0,26.0,39.0,98.0,24.0
+1.0,3.0,0.0,2.0,1.0,8.0,3.0,0.0,11.0,0.0,2.0,4.0,0.0,0.0,0.0,4.0,2.0,0.0,2.0,4.0,0.0,3.0,5.0,10.0,4.0,3.0,7.0,5.0,0.0,1.0,8.0,1.0,8.0,0.0,10.0,3.0,2.0,0.0,5.0,9.0,1.0,2.0,2.0,0.0,0.0,3.0,11.0,0.0,17.0,0.0,3.0,0.0,9.0,5.0,23.0,0.0,6.0,0.0,0.0,0.0,4.0,5.0,6.0,9.0,2.0,0.0,4.0,2.0,2.0,4.0,4.0,1.0,1.0,4.0,4.0,0.0,6.0,0.0,12.0,13.0,1.0,0.0,109.0,6.0,10.0,14.0,17.0,13.0,5.0,2.0,13.0,29.0,12.0,16.0,26.0,0.0,15.0,31.0,120.0,29.0
+2.0,7.0,0.0,1.0,1.0,5.0,1.0,7.0,6.0,9.0,3.0,1.0,0.0,2.0,4.0,0.0,0.0,0.0,2.0,2.0,2.0,2.0,3.0,6.0,6.0,1.0,11.0,6.0,0.0,3.0,15.0,3.0,0.0,0.0,1.0,9.0,7.0,0.0,2.0,9.0,10.0,1.0,8.0,14.0,0.0,8.0,1.0,4.0,9.0,8.0,10.0,0.0,7.0,12.0,1.0,0.0,4.0,3.0,0.0,0.0,11.0,11.0,12.0,22.0,4.0,0.0,12.0,15.0,6.0,0.0,3.0,9.0,2.0,19.0,4.0,0.0,4.0,0.0,17.0,17.0,0.0,5.0,22.0,5.0,21.0,15.0,1.0,13.0,48.0,5.0,18.0,11.0,49.0,32.0,49.0,0.0,60.0,17.0,0.0,22.0
+5.0,5.0,0.0,16.0,6.0,25.0,6.0,12.0,16.0,10.0,5.0,0.0,0.0,2.0,1.0,3.0,0.0,0.0,0.0,3.0,4.0,24.0,19.0,13.0,5.0,24.0,13.0,13.0,0.0,4.0,23.0,5.0,3.0,0.0,0.0,6.0,18.0,2.0,3.0,24.0,21.0,1.0,3.0,27.0,0.0,16.0,0.0,10.0,21.0,3.0,14.0,0.0,5.0,11.0,6.0,4.0,2.0,1.0,0.0,0.0,8.0,18.0,24.0,50.0,6.0,0.0,3.0,9.0,8.0,0.0,6.0,15.0,15.0,14.0,11.0,0.0,9.0,0.0,19.0,13.0,0.0,6.0,44.0,20.0,20.0,13.0,8.0,41.0,66.0,4.0,11.0,0.0,36.0,46.0,60.0,0.0,142.0,21.0,0.0,50.0
+0.0,5.0,0.0,9.0,1.0,15.0,6.0,4.0,16.0,3.0,5.0,1.0,1.0,0.0,7.0,4.0,2.0,0.0,6.0,3.0,0.0,3.0,19.0,1.0,6.0,0.0,20.0,19.0,0.0,4.0,1.0,13.0,2.0,2.0,3.0,27.0,1.0,0.0,3.0,17.0,26.0,1.0,8.0,26.0,0.0,7.0,0.0,0.0,11.0,6.0,10.0,0.0,5.0,2.0,1.0,0.0,2.0,2.0,5.0,0.0,0.0,7.0,28.0,13.0,23.0,0.0,0.0,13.0,14.0,0.0,19.0,15.0,4.0,28.0,28.0,0.0,20.0,0.0,15.0,43.0,1.0,0.0,15.0,2.0,48.0,38.0,6.0,78.0,99.0,1.0,19.0,0.0,83.0,62.0,68.0,1.0,215.0,2.0,1.0,2.0
+3.0,5.0,0.0,1.0,0.0,5.0,1.0,1.0,10.0,0.0,3.0,0.0,0.0,0.0,0.0,6.0,0.0,2.0,0.0,2.0,2.0,0.0,1.0,0.0,3.0,1.0,4.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,3.0,0.0,7.0,3.0,0.0,1.0,4.0,0.0,0.0,0.0,5.0,0.0,3.0,0.0,1.0,3.0,0.0,4.0,2.0,1.0,0.0,1.0,0.0,6.0,4.0,3.0,21.0,2.0,9.0,2.0,6.0,0.0,2.0,4.0,0.0,2.0,6.0,5.0,2.0,4.0,0.0,12.0,1.0,0.0,4.0,1.0,1.0,4.0,7.0,4.0,17.0,5.0,1.0,0.0,0.0,7.0,23.0,13.0,2.0,7.0,17.0,2.0,130.0
+6.0,3.0,0.0,1.0,3.0,10.0,4.0,2.0,4.0,7.0,3.0,4.0,0.0,0.0,0.0,8.0,1.0,0.0,0.0,2.0,0.0,0.0,8.0,2.0,3.0,7.0,3.0,7.0,0.0,1.0,7.0,0.0,12.0,0.0,12.0,0.0,1.0,1.0,15.0,16.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,0.0,17.0,1.0,7.0,0.0,6.0,16.0,32.0,0.0,2.0,3.0,3.0,0.0,1.0,15.0,3.0,31.0,9.0,0.0,8.0,2.0,3.0,1.0,12.0,1.0,9.0,11.0,8.0,2.0,6.0,1.0,17.0,7.0,1.0,6.0,29.0,11.0,13.0,14.0,45.0,17.0,3.0,0.0,3.0,0.0,33.0,9.0,18.0,0.0,8.0,160.0,118.0,17.0
+10.0,19.0,0.0,14.0,3.0,20.0,5.0,2.0,25.0,17.0,1.0,4.0,0.0,0.0,0.0,5.0,5.0,0.0,1.0,2.0,29.0,1.0,21.0,1.0,12.0,21.0,13.0,12.0,0.0,9.0,12.0,1.0,10.0,1.0,12.0,4.0,3.0,0.0,11.0,25.0,4.0,2.0,6.0,5.0,0.0,26.0,0.0,0.0,35.0,4.0,19.0,0.0,16.0,13.0,21.0,2.0,7.0,9.0,3.0,0.0,15.0,9.0,9.0,54.0,10.0,0.0,3.0,17.0,16.0,0.0,18.0,9.0,14.0,30.0,33.0,0.0,27.0,2.0,48.0,24.0,0.0,4.0,30.0,38.0,34.0,42.0,19.0,59.0,17.0,2.0,130.0,0.0,46.0,33.0,83.0,0.0,34.0,30.0,1.0,41.0
+7.0,4.0,0.0,8.0,1.0,5.0,2.0,2.0,4.0,9.0,6.0,6.0,0.0,0.0,2.0,3.0,1.0,0.0,0.0,1.0,1.0,0.0,3.0,0.0,6.0,1.0,8.0,3.0,0.0,6.0,6.0,0.0,14.0,0.0,5.0,0.0,12.0,0.0,9.0,8.0,1.0,0.0,2.0,3.0,0.0,5.0,0.0,0.0,29.0,0.0,4.0,0.0,16.0,9.0,17.0,0.0,2.0,1.0,0.0,0.0,8.0,6.0,3.0,16.0,3.0,0.0,1.0,11.0,0.0,0.0,11.0,2.0,2.0,17.0,12.0,1.0,7.0,0.0,17.0,14.0,1.0,0.0,63.0,7.0,17.0,19.0,25.0,28.0,5.0,0.0,9.0,3.0,15.0,1.0,22.0,0.0,12.0,42.0,0.0,19.0
+1.0,3.0,0.0,2.0,0.0,2.0,1.0,0.0,3.0,2.0,2.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,2.0,5.0,2.0,0.0,2.0,1.0,0.0,4.0,0.0,1.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,7.0,0.0,0.0,18.0,0.0,0.0,0.0,8.0,4.0,4.0,0.0,6.0,0.0,0.0,0.0,6.0,3.0,2.0,13.0,4.0,0.0,2.0,1.0,2.0,0.0,5.0,1.0,0.0,6.0,7.0,0.0,8.0,0.0,11.0,5.0,0.0,3.0,39.0,9.0,7.0,6.0,13.0,18.0,5.0,1.0,6.0,3.0,12.0,0.0,5.0,0.0,5.0,24.0,0.0,11.0
+0.0,3.0,0.0,13.0,2.0,7.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.0,0.0,0.0,4.0,3.0,0.0,0.0,3.0,6.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,6.0,3.0,0.0,4.0,0.0,7.0,0.0,0.0,0.0,4.0,0.0,0.0,7.0,0.0,11.0,2.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,32.0,0.0,0.0,0.0
+0.0,5.0,0.0,13.0,9.0,10.0,0.0,0.0,20.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,1.0,7.0,11.0,0.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,3.0,9.0,0.0,0.0,6.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,4.0,2.0,0.0,17.0,0.0,0.0,14.0,26.0,0.0,31.0,0.0,42.0,14.0,0.0,0.0,22.0,0.0,1.0,55.0,0.0,52.0,1.0,0.0,0.0,0.0,6.0,0.0,1.0,0.0,24.0,4.0,0.0,0.0
+7.0,7.0,0.0,0.0,2.0,14.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,12.0,0.0,5.0,21.0,13.0,0.0,7.0,0.0,4.0,0.0,0.0,0.0,10.0,6.0,0.0,0.0,4.0,7.0,0.0,0.0,7.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,10.0,6.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,18.0,1.0,14.0,10.0,0.0,19.0,0.0,9.0,0.0,0.0,0.0,17.0,0.0,0.0,13.0,7.0,11.0,30.0,0.0,5.0,0.0,3.0,34.0,0.0,0.0,17.0,0.0,0.0,0.0
+8.0,25.0,0.0,59.0,35.0,70.0,9.0,12.0,40.0,3.0,57.0,1.0,0.0,2.0,0.0,11.0,0.0,0.0,0.0,8.0,2.0,41.0,77.0,68.0,11.0,81.0,94.0,81.0,0.0,35.0,21.0,34.0,0.0,0.0,0.0,86.0,32.0,10.0,0.0,58.0,51.0,2.0,13.0,43.0,0.0,23.0,9.0,10.0,9.0,4.0,35.0,0.0,8.0,2.0,8.0,0.0,0.0,4.0,0.0,0.0,3.0,14.0,52.0,71.0,14.0,4.0,1.0,29.0,23.0,0.0,73.0,16.0,0.0,71.0,56.0,0.0,102.0,0.0,110.0,18.0,5.0,2.0,78.0,3.0,30.0,89.0,9.0,168.0,82.0,3.0,7.0,0.0,57.0,94.0,115.0,12.0,345.0,9.0,0.0,30.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,9.0,0.0,0.0,1.0,0.0,0.0,1.0,5.0,0.0,0.0,0.0,0.0,2.0,0.0,12.0,0.0,0.0,0.0
+0.0,2.0,0.0,4.0,1.0,1.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,7.0,8.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,7.0,0.0,1.0,5.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,5.0,2.0,0.0,0.0
+2.0,0.0,0.0,4.0,1.0,2.0,1.0,0.0,6.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,3.0,1.0,0.0,3.0,5.0,0.0,4.0,0.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.0,1.0,0.0,0.0,4.0,1.0,0.0,1.0,0.0,0.0,2.0,4.0,2.0,0.0,0.0,7.0,0.0,0.0,0.0,3.0,0.0,2.0,6.0,0.0,10.0,1.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,7.0,0.0,0.0,0.0
+0.0,1.0,0.0,3.0,1.0,1.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,1.0,1.0,1.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0
+1.0,0.0,0.0,5.0,0.0,0.0,2.0,0.0,5.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,6.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,10.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,6.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,3.0,6.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,6.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,11.0,5.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,3.0,0.0,2.0,2.0,0.0,0.0,0.0,1.0,1.0,2.0,0.0,6.0,0.0,0.0,0.0
+0.0,3.0,0.0,0.0,0.0,6.0,0.0,0.0,10.0,3.0,3.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,4.0,14.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,2.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,10.0,0.0,1.0,3.0,1.0,7.0,0.0,0.0,0.0,0.0,3.0,4.0,6.0,0.0,7.0,0.0,0.0,0.0
+0.0,4.0,0.0,1.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,4.0,8.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,16.0,1.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,10.0,0.0,0.0,3.0,0.0,5.0,3.0,0.0,0.0,0.0,6.0,5.0,2.0,0.0,3.0,0.0,0.0,2.0
+0.0,2.0,0.0,7.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0
+1.0,8.0,0.0,2.0,1.0,12.0,0.0,0.0,8.0,8.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,0.0,11.0,0.0,1.0,2.0,3.0,0.0,0.0,0.0,4.0,4.0,4.0,0.0,5.0,4.0,0.0,0.0,9.0,0.0,1.0,0.0,5.0,2.0,1.0,1.0,0.0,2.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,6.0,4.0,16.0,0.0,0.0,0.0,2.0,1.0,0.0,2.0,5.0,0.0,11.0,3.0,0.0,9.0,0.0,0.0,1.0,0.0,1.0,29.0,2.0,5.0,9.0,0.0,8.0,15.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,42.0,2.0,0.0,9.0
+0.0,6.0,0.0,1.0,0.0,2.0,1.0,0.0,7.0,0.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,6.0,0.0,3.0,3.0,7.0,0.0,0.0,0.0,1.0,0.0,7.0,0.0,1.0,5.0,0.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,4.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,14.0,3.0,6.0,5.0,0.0,7.0,0.0,7.0,3.0,0.0,1.0,7.0,0.0,15.0,4.0,0.0,9.0,16.0,1.0,1.0,0.0,1.0,3.0,4.0,0.0,37.0,1.0,0.0,10.0
+0.0,5.0,0.0,1.0,1.0,5.0,0.0,1.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,5.0,4.0,0.0,0.0,13.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,7.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,6.0,8.0,6.0,0.0,0.0,0.0,2.0,0.0,1.0,2.0,0.0,9.0,8.0,0.0,9.0,0.0,1.0,1.0,0.0,0.0,8.0,0.0,5.0,13.0,0.0,13.0,7.0,3.0,0.0,0.0,4.0,2.0,7.0,0.0,34.0,4.0,0.0,2.0
+0.0,0.0,0.0,5.0,0.0,5.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,2.0,2.0,4.0,0.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,2.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,3.0,20.0,3.0,0.0,3.0
+0.0,2.0,0.0,0.0,1.0,5.0,4.0,0.0,3.0,0.0,4.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,4.0,1.0,4.0,4.0,3.0,0.0,1.0,2.0,3.0,3.0,0.0,0.0,1.0,0.0,4.0,0.0,9.0,6.0,1.0,0.0,4.0,0.0,0.0,0.0,6.0,0.0,5.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,4.0,12.0,5.0,0.0,0.0,1.0,3.0,0.0,2.0,4.0,0.0,15.0,3.0,0.0,12.0,2.0,7.0,1.0,0.0,0.0,14.0,1.0,7.0,6.0,0.0,18.0,17.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,46.0,1.0,0.0,1.0
+0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,3.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,7.0,8.0,0.0,3.0,11.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,2.0,7.0,0.0,13.0,13.0,0.0,0.0,0.0,3.0,1.0,1.0,0.0,21.0,0.0,0.0,1.0
+0.0,7.0,0.0,2.0,8.0,1.0,0.0,0.0,5.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,2.0,7.0,0.0,2.0,10.0,4.0,0.0,4.0,3.0,3.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,1.0,3.0,0.0,1.0,0.0,0.0,8.0,0.0,1.0,2.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,3.0,1.0,9.0,1.0,0.0,0.0,3.0,0.0,0.0,5.0,0.0,0.0,2.0,10.0,0.0,6.0,0.0,4.0,0.0,0.0,0.0,23.0,0.0,6.0,9.0,0.0,10.0,5.0,0.0,2.0,0.0,3.0,2.0,8.0,0.0,17.0,3.0,0.0,0.0
+0.0,2.0,0.0,6.0,1.0,9.0,0.0,0.0,7.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,3.0,0.0,3.0,1.0,0.0,0.0,1.0,3.0,2.0,5.0,0.0,0.0,3.0,0.0,1.0,0.0,3.0,5.0,0.0,1.0,4.0,0.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,2.0,1.0,9.0,2.0,7.0,0.0,4.0,2.0,0.0,5.0,1.0,0.0,2.0,2.0,0.0,0.0,0.0,6.0,4.0,0.0,0.0,20.0,0.0,5.0,4.0,2.0,6.0,16.0,0.0,0.0,0.0,4.0,3.0,12.0,2.0,23.0,0.0,0.0,1.0
+0.0,10.0,0.0,5.0,0.0,1.0,1.0,1.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,5.0,1.0,0.0,6.0,14.0,0.0,15.0,0.0,5.0,0.0,19.0,4.0,1.0,4.0,7.0,0.0,1.0,13.0,6.0,1.0,4.0,9.0,2.0,1.0,6.0,0.0,21.0,0.0,9.0,0.0,2.0,10.0,0.0,0.0,1.0,1.0,0.0,6.0,6.0,0.0,0.0,2.0,6.0,0.0,14.0,2.0,6.0,9.0,0.0,2.0,0.0,15.0,1.0,1.0,15.0,13.0,0.0,6.0,2.0,23.0,3.0,0.0,1.0,20.0,9.0,9.0,15.0,1.0,16.0,21.0,2.0,0.0,0.0,11.0,26.0,14.0,14.0,86.0,16.0,0.0,19.0
+2.0,2.0,0.0,1.0,2.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,4.0,2.0,2.0,4.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,9.0,4.0,2.0,2.0,3.0,0.0,0.0,0.0,4.0,0.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,0.0,1.0,3.0,0.0,5.0,0.0,0.0,4.0,9.0,0.0,3.0,1.0,14.0,8.0,2.0,3.0,0.0,2.0,1.0,13.0,0.0,6.0,8.0,4.0,0.0,0.0,6.0,8.0,7.0,0.0,13.0,2.0,0.0,4.0
+0.0,5.0,0.0,5.0,2.0,4.0,2.0,0.0,6.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,3.0,1.0,3.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,2.0,7.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,1.0,10.0,5.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,6.0,0.0,3.0,0.0,4.0,3.0,0.0,0.0,3.0,1.0,13.0,4.0,0.0,11.0,3.0,0.0,0.0,0.0,7.0,12.0,7.0,0.0,5.0,4.0,0.0,1.0
+5.0,3.0,0.0,1.0,0.0,0.0,1.0,1.0,3.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,7.0,0.0,1.0,0.0,1.0,1.0,1.0,0.0,2.0,1.0,1.0,0.0,1.0,0.0,4.0,3.0,3.0,1.0,0.0,0.0,2.0,0.0,2.0,1.0,4.0,4.0,2.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,6.0,1.0,1.0,3.0,2.0,10.0,0.0,0.0,0.0,4.0,10.0,0.0,0.0,10.0,13.0,19.0,7.0,6.0,4.0,0.0,12.0
+0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,4.0,0.0,4.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,6.0,4.0,2.0,0.0,3.0,0.0,3.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,5.0,9.0,1.0,0.0,2.0,0.0,0.0,0.0
+0.0,1.0,0.0,0.0,0.0,4.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,1.0,0.0,6.0,0.0,0.0,0.0,5.0,0.0,1.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,3.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,6.0,0.0,9.0,3.0,0.0,0.0,2.0,0.0,3.0,5.0,0.0,7.0,4.0,0.0,0.0,0.0,4.0,2.0,6.0,0.0,4.0,0.0,0.0,2.0
+0.0,1.0,0.0,0.0,1.0,0.0,4.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,2.0,1.0,0.0,0.0,2.0,1.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,2.0,14.0,0.0,6.0,0.0,0.0,0.0
+4.0,7.0,0.0,2.0,10.0,6.0,2.0,0.0,12.0,7.0,9.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,4.0,1.0,4.0,0.0,13.0,4.0,2.0,7.0,10.0,13.0,0.0,8.0,0.0,2.0,2.0,4.0,0.0,2.0,0.0,0.0,0.0,9.0,3.0,0.0,3.0,4.0,0.0,7.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,1.0,9.0,2.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,7.0,12.0,0.0,13.0,2.0,12.0,6.0,0.0,0.0,19.0,1.0,17.0,24.0,1.0,8.0,10.0,0.0,1.0,0.0,6.0,8.0,34.0,0.0,39.0,1.0,0.0,0.0
+1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,0.0,1.0,0.0,0.0,2.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,4.0,1.0,0.0,3.0,3.0,6.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,4.0,0.0,0.0,3.0,3.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,2.0,0.0,2.0,12.0,3.0,4.0,2.0,12.0,4.0,0.0,0.0,9.0,4.0,14.0,5.0,12.0,8.0,2.0,35.0
+3.0,18.0,0.0,11.0,7.0,17.0,3.0,0.0,24.0,13.0,7.0,2.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,5.0,2.0,2.0,17.0,4.0,3.0,11.0,21.0,18.0,0.0,12.0,7.0,1.0,1.0,23.0,2.0,2.0,4.0,0.0,1.0,17.0,6.0,0.0,4.0,3.0,0.0,9.0,0.0,0.0,5.0,0.0,21.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,0.0,13.0,3.0,28.0,1.0,0.0,0.0,1.0,3.0,0.0,17.0,0.0,1.0,24.0,31.0,2.0,38.0,0.0,53.0,8.0,0.0,0.0,10.0,0.0,31.0,54.0,4.0,39.0,11.0,0.0,1.0,0.0,20.0,29.0,60.0,0.0,31.0,6.0,0.0,5.0
+11.0,11.0,0.0,11.0,6.0,13.0,4.0,6.0,9.0,7.0,16.0,5.0,1.0,1.0,0.0,5.0,2.0,0.0,14.0,0.0,2.0,24.0,8.0,33.0,12.0,7.0,11.0,17.0,0.0,16.0,26.0,8.0,12.0,2.0,11.0,5.0,15.0,0.0,31.0,6.0,16.0,0.0,14.0,10.0,3.0,18.0,4.0,0.0,18.0,6.0,13.0,7.0,31.0,7.0,12.0,1.0,6.0,0.0,8.0,0.0,12.0,23.0,20.0,38.0,21.0,0.0,1.0,14.0,11.0,0.0,22.0,10.0,11.0,41.0,34.0,0.0,44.0,1.0,56.0,25.0,5.0,9.0,21.0,24.0,67.0,43.0,24.0,62.0,40.0,3.0,37.0,10.0,43.0,38.0,86.0,0.0,76.0,40.0,1.0,12.0
+3.0,4.0,0.0,5.0,9.0,8.0,10.0,4.0,4.0,11.0,9.0,3.0,0.0,0.0,3.0,15.0,0.0,0.0,24.0,3.0,5.0,10.0,9.0,8.0,27.0,5.0,8.0,7.0,0.0,2.0,15.0,0.0,14.0,1.0,15.0,0.0,42.0,0.0,38.0,13.0,4.0,0.0,15.0,1.0,9.0,28.0,0.0,0.0,32.0,4.0,30.0,15.0,27.0,23.0,23.0,0.0,10.0,0.0,11.0,0.0,8.0,9.0,9.0,9.0,9.0,0.0,10.0,13.0,5.0,0.0,8.0,7.0,11.0,14.0,13.0,1.0,35.0,0.0,39.0,15.0,1.0,20.0,21.0,28.0,51.0,25.0,29.0,27.0,15.0,21.0,33.0,8.0,64.0,21.0,63.0,0.0,31.0,86.0,0.0,46.0
+16.0,15.0,0.0,7.0,1.0,11.0,6.0,3.0,17.0,11.0,8.0,1.0,0.0,3.0,1.0,10.0,2.0,0.0,10.0,7.0,7.0,0.0,22.0,35.0,15.0,0.0,17.0,22.0,0.0,3.0,17.0,7.0,16.0,10.0,18.0,13.0,43.0,0.0,22.0,10.0,26.0,0.0,11.0,28.0,0.0,29.0,10.0,0.0,6.0,16.0,17.0,12.0,18.0,4.0,19.0,0.0,10.0,3.0,5.0,0.0,13.0,18.0,33.0,21.0,11.0,0.0,5.0,19.0,3.0,2.0,11.0,27.0,18.0,16.0,27.0,1.0,21.0,0.0,34.0,14.0,6.0,13.0,22.0,18.0,35.0,29.0,17.0,39.0,97.0,2.0,5.0,0.0,54.0,71.0,52.0,0.0,165.0,36.0,2.0,14.0
+4.0,11.0,0.0,7.0,8.0,8.0,1.0,1.0,1.0,8.0,6.0,0.0,0.0,0.0,1.0,8.0,0.0,0.0,0.0,0.0,9.0,2.0,14.0,8.0,3.0,11.0,7.0,9.0,0.0,10.0,8.0,0.0,1.0,95.0,2.0,3.0,30.0,0.0,3.0,14.0,2.0,0.0,2.0,1.0,3.0,44.0,0.0,0.0,12.0,0.0,33.0,0.0,4.0,12.0,8.0,5.0,6.0,7.0,0.0,0.0,5.0,9.0,6.0,20.0,4.0,0.0,0.0,13.0,8.0,0.0,13.0,5.0,7.0,11.0,14.0,0.0,18.0,6.0,32.0,18.0,1.0,8.0,35.0,12.0,48.0,27.0,1.0,26.0,12.0,9.0,48.0,0.0,9.0,21.0,61.0,0.0,32.0,54.0,0.0,34.0
+7.0,3.0,0.0,7.0,10.0,4.0,0.0,6.0,10.0,40.0,3.0,1.0,0.0,3.0,1.0,8.0,0.0,0.0,1.0,3.0,10.0,0.0,5.0,3.0,2.0,5.0,3.0,4.0,0.0,10.0,12.0,1.0,6.0,68.0,2.0,3.0,32.0,0.0,3.0,9.0,9.0,0.0,5.0,4.0,5.0,23.0,6.0,0.0,21.0,2.0,35.0,3.0,7.0,20.0,5.0,1.0,5.0,3.0,0.0,0.0,13.0,7.0,13.0,24.0,3.0,0.0,12.0,7.0,5.0,0.0,18.0,3.0,8.0,12.0,17.0,2.0,22.0,2.0,33.0,22.0,2.0,12.0,78.0,10.0,31.0,15.0,3.0,19.0,13.0,7.0,21.0,0.0,17.0,5.0,63.0,1.0,44.0,42.0,0.0,40.0
+1.0,1.0,0.0,2.0,1.0,0.0,1.0,0.0,1.0,5.0,1.0,0.0,2.0,0.0,0.0,5.0,0.0,0.0,3.0,1.0,1.0,41.0,0.0,0.0,4.0,1.0,1.0,2.0,0.0,10.0,3.0,0.0,3.0,42.0,7.0,2.0,4.0,0.0,18.0,1.0,1.0,0.0,0.0,0.0,3.0,17.0,0.0,0.0,3.0,6.0,8.0,6.0,22.0,7.0,3.0,1.0,2.0,0.0,1.0,0.0,7.0,1.0,1.0,4.0,5.0,0.0,2.0,22.0,2.0,0.0,7.0,2.0,1.0,6.0,6.0,0.0,19.0,2.0,35.0,4.0,7.0,2.0,29.0,1.0,10.0,18.0,0.0,7.0,1.0,1.0,5.0,0.0,9.0,20.0,38.0,0.0,15.0,13.0,0.0,16.0
+9.0,3.0,0.0,1.0,6.0,5.0,4.0,4.0,8.0,23.0,4.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,1.0,3.0,0.0,6.0,16.0,4.0,9.0,3.0,3.0,0.0,7.0,3.0,4.0,5.0,26.0,7.0,1.0,30.0,0.0,4.0,7.0,3.0,0.0,2.0,0.0,64.0,32.0,0.0,0.0,21.0,4.0,25.0,2.0,11.0,12.0,7.0,4.0,7.0,7.0,0.0,0.0,4.0,1.0,5.0,7.0,3.0,3.0,0.0,12.0,12.0,2.0,9.0,9.0,9.0,10.0,17.0,1.0,20.0,8.0,18.0,26.0,2.0,11.0,21.0,9.0,52.0,21.0,12.0,27.0,15.0,23.0,16.0,6.0,18.0,39.0,68.0,4.0,32.0,34.0,1.0,49.0
+5.0,0.0,0.0,1.0,2.0,4.0,0.0,2.0,0.0,2.0,4.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,1.0,2.0,3.0,0.0,2.0,3.0,0.0,0.0,0.0,6.0,2.0,0.0,2.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,6.0,0.0,2.0,1.0,4.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,3.0,12.0,8.0,0.0,1.0,1.0,4.0,0.0,14.0,2.0,0.0,19.0,12.0,0.0,7.0,1.0,15.0,1.0,0.0,1.0,2.0,4.0,8.0,30.0,2.0,26.0,0.0,0.0,0.0,0.0,6.0,8.0,9.0,0.0,2.0,9.0,0.0,5.0
+2.0,10.0,0.0,10.0,5.0,14.0,1.0,0.0,5.0,14.0,3.0,3.0,0.0,3.0,0.0,4.0,1.0,0.0,5.0,6.0,2.0,2.0,18.0,4.0,5.0,1.0,0.0,11.0,0.0,10.0,5.0,25.0,1.0,0.0,5.0,15.0,12.0,0.0,6.0,18.0,24.0,0.0,3.0,48.0,0.0,6.0,1.0,0.0,8.0,1.0,1.0,0.0,4.0,4.0,8.0,0.0,1.0,1.0,2.0,0.0,14.0,0.0,76.0,26.0,4.0,0.0,0.0,22.0,18.0,0.0,6.0,31.0,3.0,29.0,15.0,0.0,19.0,2.0,14.0,12.0,0.0,2.0,9.0,9.0,19.0,43.0,11.0,34.0,78.0,0.0,13.0,0.0,32.0,32.0,41.0,0.0,138.0,18.0,0.0,10.0
+1.0,8.0,0.0,5.0,1.0,3.0,1.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,7.0,6.0,1.0,0.0,2.0,4.0,0.0,4.0,0.0,10.0,2.0,2.0,0.0,0.0,0.0,0.0,4.0,0.0,2.0,1.0,2.0,2.0,2.0,2.0,0.0,2.0,0.0,3.0,8.0,0.0,7.0,0.0,0.0,9.0,2.0,0.0,1.0,4.0,1.0,0.0,3.0,0.0,0.0,7.0,3.0,0.0,0.0,4.0,6.0,0.0,20.0,5.0,0.0,37.0,13.0,0.0,18.0,1.0,10.0,8.0,0.0,1.0,19.0,4.0,16.0,28.0,1.0,31.0,3.0,0.0,1.0,0.0,12.0,6.0,13.0,0.0,15.0,4.0,0.0,4.0
+1.0,0.0,0.0,4.0,1.0,2.0,3.0,0.0,1.0,1.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,2.0,2.0,0.0,0.0,3.0,0.0,1.0,0.0,10.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,6.0,1.0,0.0,2.0,2.0,0.0,3.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,12.0,3.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,3.0,1.0,1.0,0.0,1.0,1.0,5.0,0.0,11.0,2.0,2.0,26.0,14.0,0.0,21.0,0.0,18.0,9.0,0.0,0.0,7.0,0.0,8.0,40.0,11.0,33.0,0.0,0.0,18.0,0.0,6.0,3.0,9.0,0.0,2.0,1.0,0.0,7.0
+7.0,4.0,0.0,5.0,1.0,7.0,1.0,5.0,3.0,8.0,0.0,0.0,0.0,1.0,1.0,2.0,0.0,0.0,1.0,3.0,1.0,0.0,6.0,2.0,3.0,2.0,0.0,8.0,0.0,14.0,5.0,5.0,0.0,0.0,1.0,5.0,10.0,7.0,8.0,6.0,6.0,2.0,2.0,16.0,0.0,9.0,0.0,10.0,6.0,3.0,3.0,1.0,5.0,4.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,34.0,22.0,2.0,0.0,4.0,10.0,10.0,0.0,14.0,15.0,4.0,49.0,19.0,0.0,6.0,0.0,20.0,6.0,0.0,0.0,16.0,7.0,15.0,34.0,3.0,44.0,29.0,0.0,8.0,0.0,13.0,17.0,17.0,0.0,85.0,24.0,0.0,19.0
+2.0,4.0,0.0,9.0,5.0,4.0,2.0,9.0,3.0,4.0,1.0,2.0,1.0,4.0,3.0,2.0,0.0,0.0,1.0,3.0,0.0,1.0,7.0,1.0,3.0,3.0,1.0,7.0,0.0,5.0,18.0,9.0,3.0,0.0,1.0,6.0,7.0,1.0,3.0,9.0,11.0,0.0,4.0,15.0,0.0,9.0,0.0,5.0,10.0,2.0,3.0,1.0,10.0,2.0,3.0,0.0,0.0,2.0,3.0,0.0,5.0,0.0,18.0,12.0,3.0,0.0,0.0,9.0,8.0,0.0,16.0,14.0,2.0,33.0,13.0,0.0,23.0,0.0,17.0,11.0,1.0,6.0,16.0,7.0,12.0,30.0,13.0,25.0,28.0,4.0,7.0,0.0,18.0,18.0,23.0,0.0,67.0,11.0,0.0,8.0
+1.0,2.0,0.0,1.0,0.0,1.0,0.0,1.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,1.0,0.0,3.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,1.0,2.0,0.0,3.0,0.0,0.0,15.0,0.0,3.0,6.0,2.0,4.0,0.0,3.0,0.0,0.0,0.0,5.0,5.0,1.0,0.0,3.0,1.0,0.0,3.0,1.0,7.0,4.0,0.0,1.0,0.0,4.0,2.0,0.0,16.0,10.0,0.0,1.0,1.0,6.0,2.0,0.0,3.0,12.0,4.0,4.0,15.0,0.0,21.0,9.0,5.0,1.0,0.0,5.0,6.0,12.0,6.0,22.0,8.0,0.0,4.0
+1.0,0.0,0.0,0.0,7.0,1.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,3.0,4.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,4.0,3.0,0.0,2.0,8.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,7.0,0.0,8.0,3.0,0.0,3.0,0.0,1.0,1.0,1.0,1.0,3.0,1.0,0.0,10.0,4.0,10.0,2.0,0.0,1.0,0.0,5.0,4.0,6.0,0.0,8.0,3.0,0.0,2.0
+1.0,4.0,0.0,4.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,1.0,8.0,0.0,6.0,0.0,0.0,3.0,0.0,5.0,4.0,6.0,2.0,0.0,1.0,5.0,4.0,0.0,0.0,9.0,11.0,0.0,4.0,9.0,0.0,0.0,0.0,0.0,9.0,7.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,30.0,7.0,2.0,0.0,0.0,9.0,4.0,0.0,10.0,5.0,1.0,15.0,15.0,0.0,11.0,0.0,10.0,4.0,0.0,1.0,16.0,2.0,6.0,30.0,6.0,14.0,29.0,0.0,10.0,0.0,27.0,8.0,13.0,0.0,46.0,8.0,0.0,4.0
+2.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,5.0,1.0,4.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,3.0,0.0,1.0,0.0,5.0,2.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,4.0,0.0,1.0,1.0,5.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,5.0,0.0,3.0,2.0,0.0,0.0,1.0,5.0,3.0,0.0,10.0,0.0,2.0,15.0,17.0,0.0,17.0,0.0,17.0,2.0,0.0,2.0,16.0,6.0,20.0,25.0,1.0,25.0,6.0,0.0,3.0,0.0,15.0,8.0,28.0,0.0,9.0,13.0,0.0,9.0
+6.0,2.0,0.0,11.0,0.0,2.0,2.0,0.0,8.0,4.0,0.0,2.0,0.0,2.0,1.0,4.0,1.0,0.0,1.0,1.0,0.0,0.0,10.0,0.0,6.0,1.0,0.0,3.0,0.0,5.0,3.0,4.0,12.0,0.0,2.0,6.0,5.0,0.0,5.0,13.0,8.0,1.0,5.0,14.0,0.0,2.0,0.0,0.0,4.0,6.0,1.0,1.0,6.0,1.0,3.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,22.0,8.0,5.0,0.0,1.0,15.0,2.0,0.0,10.0,10.0,2.0,16.0,19.0,0.0,16.0,0.0,11.0,0.0,2.0,3.0,5.0,2.0,2.0,28.0,15.0,43.0,22.0,0.0,8.0,0.0,18.0,21.0,13.0,0.0,43.0,5.0,0.0,6.0
+2.0,1.0,0.0,3.0,2.0,1.0,4.0,0.0,6.0,2.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,5.0,2.0,0.0,4.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,3.0,0.0,5.0,2.0,4.0,0.0,5.0,0.0,5.0,8.0,0.0,1.0,1.0,10.0,1.0,1.0,0.0,0.0,7.0,0.0,7.0,0.0,3.0,6.0,6.0,0.0,4.0,6.0,1.0,0.0,0.0,0.0,11.0,4.0,3.0,0.0,0.0,5.0,5.0,0.0,8.0,1.0,4.0,16.0,14.0,0.0,20.0,0.0,11.0,6.0,0.0,5.0,6.0,6.0,17.0,22.0,6.0,19.0,7.0,3.0,10.0,0.0,13.0,10.0,23.0,0.0,26.0,22.0,0.0,10.0
+3.0,4.0,0.0,2.0,5.0,6.0,2.0,4.0,12.0,0.0,4.0,2.0,0.0,0.0,1.0,4.0,0.0,1.0,0.0,4.0,1.0,1.0,10.0,4.0,1.0,2.0,1.0,7.0,0.0,6.0,3.0,12.0,0.0,0.0,3.0,8.0,5.0,0.0,3.0,10.0,22.0,0.0,2.0,27.0,0.0,2.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,5.0,3.0,0.0,0.0,6.0,0.0,0.0,5.0,0.0,19.0,12.0,3.0,0.0,1.0,10.0,0.0,0.0,24.0,35.0,3.0,31.0,9.0,2.0,13.0,0.0,11.0,4.0,2.0,0.0,3.0,5.0,7.0,27.0,3.0,24.0,38.0,0.0,10.0,0.0,1.0,18.0,16.0,0.0,64.0,9.0,0.0,8.0
+1.0,7.0,0.0,6.0,1.0,1.0,1.0,0.0,6.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,0.0,0.0,1.0,0.0,2.0,4.0,0.0,2.0,2.0,0.0,2.0,0.0,7.0,0.0,13.0,0.0,0.0,3.0,5.0,3.0,0.0,7.0,12.0,10.0,0.0,1.0,29.0,0.0,0.0,0.0,0.0,6.0,1.0,0.0,1.0,3.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,41.0,11.0,2.0,0.0,0.0,3.0,2.0,0.0,9.0,33.0,1.0,14.0,5.0,0.0,3.0,0.0,8.0,1.0,0.0,2.0,15.0,2.0,4.0,17.0,6.0,23.0,21.0,0.0,7.0,0.0,10.0,7.0,7.0,0.0,57.0,5.0,0.0,2.0
+2.0,1.0,0.0,1.0,0.0,3.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,6.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0,4.0,0.0,6.0,3.0,0.0,1.0,0.0,4.0,2.0,0.0,1.0,2.0,0.0,1.0,7.0,0.0,12.0,3.0,0.0,1.0,0.0,3.0,1.0,2.0,0.0,15.0,0.0,0.0,1.0
+0.0,2.0,0.0,2.0,5.0,2.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,1.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,0.0,0.0,4.0,0.0,5.0,0.0,0.0,9.0,9.0,0.0,8.0,0.0,1.0,0.0,0.0,0.0,5.0,1.0,4.0,10.0,0.0,7.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,5.0,0.0,0.0,1.0
+0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,7.0,2.0,0.0,0.0
+0.0,11.0,0.0,2.0,1.0,5.0,2.0,0.0,4.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,9.0,0.0,0.0,1.0,0.0,0.0,8.0,0.0,0.0,4.0,0.0,8.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,0.0,0.0,2.0,6.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,5.0,0.0,0.0,5.0,7.0,0.0,6.0,0.0,5.0,2.0,0.0,0.0,4.0,0.0,1.0,18.0,0.0,18.0,5.0,0.0,0.0,0.0,3.0,3.0,8.0,0.0,17.0,1.0,0.0,0.0
+0.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,1.0,1.0,4.0,0.0,5.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,4.0,2.0,0.0,0.0,0.0,3.0,0.0,5.0,0.0,0.0,17.0,9.0,0.0,9.0,0.0,4.0,2.0,0.0,0.0,2.0,0.0,1.0,10.0,0.0,12.0,1.0,0.0,0.0,0.0,0.0,1.0,7.0,0.0,4.0,2.0,0.0,0.0
+0.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,5.0,0.0,0.0,2.0,0.0,0.0,1.0,1.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,1.0,0.0,6.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,3.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,5.0,2.0,1.0,0.0,0.0,2.0,4.0,0.0,5.0,1.0,0.0,17.0,5.0,0.0,8.0,0.0,12.0,0.0,0.0,0.0,4.0,1.0,5.0,15.0,0.0,20.0,3.0,0.0,0.0,0.0,2.0,1.0,6.0,0.0,22.0,0.0,0.0,0.0
+3.0,8.0,0.0,1.0,3.0,3.0,0.0,0.0,12.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,0.0,0.0,4.0,1.0,1.0,6.0,0.0,5.0,0.0,9.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,3.0,0.0,0.0,0.0,2.0,0.0,7.0,1.0,0.0,21.0,11.0,0.0,8.0,0.0,8.0,6.0,0.0,0.0,11.0,0.0,0.0,12.0,0.0,14.0,9.0,0.0,1.0,0.0,9.0,4.0,12.0,0.0,8.0,2.0,0.0,1.0
+0.0,6.0,0.0,2.0,4.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,2.0,7.0,1.0,3.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,9.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,3.0,3.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,3.0,0.0,2.0,5.0,0.0,13.0,4.0,0.0,1.0,0.0,1.0,2.0,1.0,0.0,10.0,0.0,0.0,0.0
+0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,7.0,0.0,3.0,0.0,3.0,2.0,0.0,0.0,1.0,1.0,1.0,9.0,0.0,8.0,4.0,0.0,0.0,0.0,3.0,0.0,4.0,0.0,11.0,0.0,0.0,0.0
+0.0,1.0,0.0,5.0,2.0,3.0,1.0,0.0,4.0,5.0,4.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,7.0,1.0,0.0,7.0,0.0,3.0,0.0,7.0,3.0,1.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,5.0,1.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,5.0,3.0,0.0,0.0,0.0,5.0,1.0,0.0,3.0,0.0,0.0,11.0,17.0,0.0,4.0,0.0,9.0,0.0,0.0,0.0,2.0,0.0,2.0,10.0,1.0,23.0,2.0,0.0,0.0,0.0,2.0,0.0,4.0,0.0,22.0,0.0,0.0,1.0
+1.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,4.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,1.0,1.0,0.0,0.0,1.0,6.0,0.0,1.0,4.0,0.0,2.0,0.0,3.0,0.0,1.0,0.0,1.0,1.0,2.0,0.0,0.0,2.0,3.0,1.0,0.0,0.0,4.0,4.0,0.0,0.0,6.0,1.0,4.0,0.0,0.0,3.0,0.0,0.0,1.0,2.0,1.0,1.0,4.0,0.0,1.0,3.0,1.0,0.0,2.0,1.0,1.0,4.0,3.0,0.0,6.0,0.0,14.0,1.0,0.0,3.0,9.0,0.0,7.0,9.0,5.0,7.0,6.0,6.0,2.0,3.0,14.0,9.0,14.0,0.0,9.0,9.0,14.0,8.0
+0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,4.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,2.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,3.0,1.0,0.0,5.0,0.0,7.0,3.0,0.0,0.0,0.0,1.0,2.0,2.0,1.0,4.0,1.0,1.0,0.0,0.0,3.0,6.0,3.0,0.0,8.0,1.0,0.0,2.0
+0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,5.0,0.0,6.0,0.0,4.0,5.0,0.0,0.0,0.0,0.0,3.0,4.0,1.0,2.0,1.0,1.0,0.0,0.0,2.0,5.0,13.0,0.0,3.0,1.0,0.0,2.0
+1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,2.0,1.0,2.0,4.0,7.0,2.0,3.0,0.0,3.0,0.0,0.0,2.0,5.0,0.0,0.0,4.0,0.0,1.0,4.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,1.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,4.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,1.0,11.0,0.0,2.0,0.0,4.0,1.0,0.0,0.0,8.0,0.0,6.0,12.0,2.0,10.0,5.0,1.0,3.0,0.0,3.0,6.0,9.0,0.0,4.0,1.0,0.0,2.0
+0.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,2.0,1.0,1.0,1.0,1.0,2.0,3.0,2.0,2.0,1.0,2.0,0.0,0.0,1.0,5.0,0.0,1.0,0.0,0.0,2.0,3.0,0.0,0.0,2.0,2.0,0.0,2.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,4.0,0.0,3.0,0.0,2.0,2.0,0.0,0.0,1.0,0.0,2.0,5.0,3.0,11.0,4.0,0.0,0.0,0.0,3.0,3.0,14.0,0.0,2.0,4.0,1.0,2.0
+0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,2.0,3.0,0.0,1.0,0.0,3.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,5.0,0.0,4.0,1.0,0.0,0.0,2.0,2.0,2.0,6.0,2.0,6.0,1.0,0.0,1.0,0.0,3.0,2.0,5.0,0.0,9.0,2.0,0.0,2.0
+1.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,2.0,3.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,5.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,1.0,0.0,7.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,4.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,3.0,0.0,5.0,5.0,0.0,2.0,1.0,0.0,1.0,0.0,2.0,4.0,6.0,0.0,6.0,2.0,0.0,5.0
+0.0,8.0,0.0,9.0,0.0,10.0,1.0,0.0,24.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,14.0,0.0,0.0,10.0,12.0,6.0,0.0,3.0,1.0,0.0,0.0,19.0,1.0,0.0,0.0,0.0,1.0,9.0,4.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,9.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,7.0,0.0,0.0,0.0,2.0,3.0,0.0,13.0,0.0,0.0,11.0,6.0,0.0,5.0,0.0,10.0,5.0,0.0,0.0,12.0,2.0,6.0,30.0,0.0,8.0,9.0,0.0,0.0,0.0,1.0,5.0,6.0,0.0,13.0,2.0,0.0,4.0
+8.0,6.0,0.0,6.0,0.0,15.0,12.0,1.0,11.0,8.0,6.0,2.0,0.0,3.0,1.0,13.0,0.0,0.0,15.0,1.0,3.0,30.0,5.0,12.0,11.0,4.0,7.0,10.0,0.0,8.0,10.0,1.0,17.0,20.0,7.0,7.0,9.0,0.0,5.0,5.0,13.0,0.0,14.0,5.0,1.0,4.0,2.0,0.0,15.0,5.0,21.0,6.0,16.0,2.0,20.0,0.0,4.0,2.0,9.0,0.0,6.0,13.0,25.0,10.0,10.0,0.0,9.0,18.0,4.0,0.0,4.0,6.0,3.0,19.0,32.0,4.0,25.0,0.0,34.0,17.0,17.0,16.0,40.0,15.0,41.0,28.0,11.0,74.0,80.0,9.0,20.0,0.0,47.0,14.0,95.0,1.0,78.0,38.0,9.0,33.0
+19.0,5.0,0.0,10.0,1.0,14.0,7.0,5.0,11.0,10.0,4.0,3.0,0.0,3.0,2.0,4.0,3.0,0.0,9.0,4.0,5.0,42.0,12.0,17.0,7.0,9.0,4.0,4.0,0.0,5.0,14.0,2.0,21.0,5.0,18.0,3.0,33.0,0.0,14.0,12.0,9.0,0.0,17.0,8.0,41.0,15.0,3.0,0.0,59.0,6.0,9.0,8.0,16.0,9.0,23.0,0.0,11.0,8.0,5.0,0.0,20.0,17.0,16.0,8.0,21.0,1.0,11.0,19.0,5.0,1.0,16.0,12.0,1.0,8.0,26.0,1.0,35.0,0.0,28.0,33.0,5.0,17.0,69.0,15.0,66.0,16.0,25.0,40.0,43.0,13.0,23.0,2.0,59.0,32.0,138.0,0.0,59.0,84.0,1.0,26.0
+7.0,5.0,0.0,3.0,10.0,9.0,4.0,1.0,14.0,23.0,5.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,6.0,4.0,10.0,41.0,12.0,12.0,6.0,15.0,9.0,8.0,0.0,24.0,19.0,9.0,8.0,5.0,8.0,6.0,7.0,0.0,10.0,16.0,11.0,0.0,7.0,5.0,0.0,5.0,0.0,0.0,37.0,2.0,12.0,1.0,21.0,18.0,5.0,0.0,3.0,4.0,2.0,0.0,22.0,12.0,16.0,14.0,9.0,0.0,6.0,16.0,11.0,0.0,20.0,11.0,5.0,19.0,39.0,2.0,39.0,4.0,52.0,31.0,3.0,10.0,47.0,13.0,89.0,67.0,10.0,64.0,58.0,5.0,42.0,0.0,61.0,39.0,140.0,0.0,96.0,55.0,4.0,10.0
+8.0,12.0,0.0,11.0,5.0,12.0,4.0,1.0,9.0,31.0,5.0,2.0,0.0,0.0,0.0,5.0,2.0,0.0,5.0,2.0,14.0,31.0,10.0,1.0,4.0,26.0,22.0,15.0,0.0,11.0,6.0,2.0,9.0,20.0,3.0,2.0,21.0,0.0,16.0,14.0,6.0,1.0,2.0,7.0,0.0,14.0,0.0,0.0,11.0,2.0,18.0,0.0,10.0,16.0,8.0,1.0,1.0,9.0,6.0,0.0,7.0,34.0,20.0,32.0,5.0,0.0,6.0,13.0,9.0,0.0,11.0,7.0,10.0,6.0,18.0,0.0,17.0,3.0,37.0,11.0,1.0,13.0,19.0,23.0,58.0,38.0,12.0,47.0,24.0,5.0,99.0,0.0,49.0,30.0,78.0,0.0,48.0,34.0,0.0,26.0
+15.0,13.0,0.0,4.0,5.0,7.0,6.0,6.0,7.0,3.0,3.0,0.0,0.0,0.0,2.0,13.0,0.0,0.0,6.0,2.0,10.0,0.0,12.0,25.0,11.0,3.0,14.0,15.0,0.0,19.0,20.0,4.0,7.0,2.0,4.0,10.0,23.0,0.0,14.0,12.0,11.0,0.0,7.0,14.0,2.0,25.0,1.0,0.0,28.0,8.0,32.0,1.0,14.0,11.0,7.0,0.0,5.0,11.0,6.0,0.0,15.0,14.0,37.0,50.0,21.0,0.0,12.0,14.0,8.0,0.0,26.0,6.0,15.0,29.0,38.0,2.0,41.0,3.0,36.0,27.0,0.0,13.0,65.0,39.0,61.0,44.0,8.0,57.0,42.0,5.0,84.0,0.0,78.0,12.0,80.0,0.0,101.0,90.0,1.0,37.0
+1.0,5.0,0.0,7.0,0.0,6.0,0.0,1.0,14.0,0.0,8.0,1.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,10.0,1.0,0.0,2.0,4.0,4.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,15.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,6.0,4.0,3.0,4.0,0.0,2.0,4.0,4.0,2.0,4.0,0.0,0.0,3.0,6.0,1.0,6.0,1.0,7.0,2.0,0.0,0.0,4.0,1.0,5.0,13.0,1.0,10.0,4.0,1.0,0.0,0.0,7.0,7.0,18.0,4.0,16.0,6.0,0.0,6.0
+0.0,2.0,0.0,6.0,3.0,5.0,1.0,0.0,4.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,2.0,11.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,1.0,3.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,3.0,0.0,2.0,0.0,0.0,4.0,2.0,0.0,2.0,0.0,4.0,2.0,0.0,0.0,5.0,1.0,6.0,5.0,0.0,8.0,3.0,0.0,0.0,1.0,0.0,2.0,6.0,0.0,9.0,2.0,0.0,4.0
+0.0,3.0,0.0,8.0,6.0,3.0,2.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,6.0,0.0,1.0,3.0,0.0,0.0,6.0,1.0,0.0,3.0,7.0,5.0,0.0,1.0,4.0,1.0,0.0,0.0,1.0,3.0,0.0,1.0,0.0,8.0,1.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,7.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,0.0,0.0,5.0,3.0,0.0,4.0,0.0,5.0,3.0,1.0,0.0,6.0,0.0,5.0,5.0,0.0,10.0,16.0,0.0,0.0,0.0,2.0,1.0,4.0,0.0,22.0,4.0,1.0,0.0
+1.0,13.0,2.0,12.0,3.0,12.0,4.0,0.0,19.0,0.0,8.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,3.0,1.0,0.0,10.0,0.0,0.0,9.0,15.0,10.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,30.0,0.0,2.0,2.0,1.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,3.0,0.0,8.0,1.0,0.0,0.0,1.0,2.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,2.0,0.0,2.0,1.0,0.0,0.0,8.0,1.0,2.0,8.0,0.0,12.0,9.0,0.0,0.0,0.0,2.0,11.0,8.0,0.0,15.0,2.0,1.0,3.0
+1.0,8.0,0.0,3.0,6.0,2.0,3.0,0.0,4.0,3.0,10.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,0.0,2.0,4.0,5.0,4.0,3.0,2.0,6.0,3.0,15.0,1.0,2.0,4.0,5.0,1.0,1.0,3.0,10.0,6.0,1.0,1.0,7.0,11.0,0.0,1.0,11.0,0.0,11.0,0.0,0.0,4.0,2.0,4.0,0.0,2.0,4.0,2.0,1.0,1.0,6.0,1.0,1.0,2.0,4.0,8.0,10.0,9.0,0.0,2.0,14.0,4.0,0.0,3.0,75.0,0.0,3.0,7.0,1.0,6.0,0.0,11.0,12.0,1.0,0.0,1.0,2.0,10.0,8.0,3.0,11.0,45.0,1.0,9.0,0.0,21.0,12.0,17.0,1.0,97.0,6.0,1.0,8.0
+7.0,9.0,0.0,17.0,18.0,14.0,7.0,0.0,17.0,8.0,9.0,5.0,0.0,1.0,0.0,3.0,2.0,0.0,0.0,8.0,1.0,9.0,21.0,8.0,15.0,4.0,16.0,19.0,0.0,6.0,4.0,7.0,19.0,0.0,10.0,5.0,6.0,1.0,12.0,17.0,6.0,0.0,13.0,6.0,0.0,24.0,0.0,0.0,26.0,0.0,14.0,0.0,12.0,2.0,21.0,0.0,1.0,14.0,7.0,0.0,6.0,11.0,16.0,30.0,24.0,1.0,1.0,24.0,17.0,0.0,14.0,38.0,3.0,20.0,15.0,0.0,28.0,1.0,19.0,29.0,1.0,1.0,21.0,13.0,24.0,28.0,30.0,40.0,34.0,0.0,37.0,0.0,76.0,30.0,51.0,3.0,69.0,27.0,3.0,27.0
+10.0,24.0,0.0,20.0,16.0,33.0,9.0,4.0,27.0,16.0,35.0,6.0,0.0,3.0,2.0,4.0,7.0,0.0,1.0,1.0,7.0,1.0,19.0,8.0,12.0,1.0,31.0,25.0,0.0,9.0,6.0,44.0,15.0,0.0,7.0,35.0,8.0,0.0,11.0,28.0,47.0,0.0,11.0,50.0,0.0,10.0,0.0,0.0,25.0,2.0,23.0,1.0,5.0,7.0,13.0,2.0,5.0,8.0,4.0,0.0,21.0,20.0,32.0,57.0,16.0,0.0,4.0,43.0,18.0,0.0,26.0,120.0,11.0,31.0,38.0,0.0,32.0,0.0,46.0,27.0,6.0,1.0,22.0,14.0,32.0,34.0,45.0,31.0,107.0,2.0,17.0,1.0,69.0,46.0,46.0,4.0,222.0,43.0,2.0,17.0
+4.0,8.0,0.0,8.0,19.0,11.0,7.0,0.0,21.0,13.0,20.0,2.0,0.0,5.0,0.0,9.0,13.0,1.0,3.0,5.0,4.0,0.0,23.0,4.0,12.0,0.0,20.0,18.0,0.0,3.0,3.0,31.0,4.0,0.0,4.0,22.0,6.0,0.0,1.0,16.0,25.0,0.0,6.0,53.0,1.0,15.0,0.0,1.0,6.0,6.0,17.0,1.0,4.0,1.0,7.0,2.0,2.0,9.0,2.0,0.0,7.0,14.0,21.0,26.0,13.0,0.0,1.0,38.0,8.0,2.0,7.0,20.0,6.0,10.0,12.0,1.0,19.0,0.0,36.0,14.0,0.0,1.0,10.0,6.0,27.0,24.0,17.0,27.0,98.0,2.0,51.0,1.0,68.0,72.0,47.0,7.0,142.0,24.0,3.0,16.0
+5.0,3.0,0.0,3.0,3.0,2.0,3.0,2.0,4.0,13.0,7.0,0.0,0.0,1.0,0.0,2.0,8.0,1.0,0.0,4.0,0.0,9.0,10.0,3.0,1.0,2.0,5.0,12.0,0.0,4.0,1.0,26.0,2.0,0.0,4.0,16.0,31.0,0.0,1.0,12.0,32.0,0.0,2.0,39.0,0.0,6.0,0.0,1.0,13.0,1.0,3.0,0.0,2.0,4.0,2.0,0.0,2.0,3.0,2.0,0.0,3.0,6.0,31.0,11.0,5.0,0.0,1.0,10.0,8.0,0.0,8.0,57.0,6.0,3.0,7.0,0.0,11.0,0.0,14.0,10.0,0.0,1.0,9.0,12.0,19.0,13.0,7.0,16.0,92.0,0.0,6.0,0.0,17.0,30.0,37.0,2.0,118.0,14.0,2.0,24.0
+6.0,9.0,0.0,6.0,8.0,9.0,3.0,1.0,6.0,8.0,2.0,1.0,0.0,2.0,1.0,9.0,1.0,0.0,1.0,7.0,5.0,0.0,4.0,5.0,5.0,3.0,5.0,7.0,1.0,9.0,2.0,14.0,2.0,0.0,1.0,18.0,18.0,4.0,8.0,9.0,25.0,0.0,5.0,11.0,5.0,13.0,1.0,5.0,8.0,1.0,13.0,0.0,3.0,1.0,4.0,1.0,0.0,12.0,2.0,0.0,9.0,1.0,16.0,19.0,4.0,0.0,5.0,26.0,6.0,0.0,14.0,18.0,7.0,29.0,37.0,2.0,37.0,1.0,34.0,14.0,4.0,5.0,10.0,9.0,24.0,46.0,12.0,38.0,67.0,2.0,8.0,1.0,22.0,40.0,40.0,7.0,115.0,8.0,0.0,43.0
+3.0,5.0,0.0,1.0,0.0,0.0,0.0,4.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,2.0,1.0,0.0,2.0,0.0,1.0,1.0,4.0,1.0,0.0,0.0,3.0,1.0,0.0,2.0,0.0,1.0,1.0,0.0,2.0,2.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,3.0,0.0,2.0,1.0,0.0,0.0,5.0,2.0,0.0,0.0,1.0,0.0,2.0,3.0,0.0,0.0,0.0,4.0,1.0,0.0,1.0,1.0,5.0,0.0,5.0,0.0,5.0,3.0,0.0,0.0,7.0,14.0,10.0,8.0,0.0,16.0,2.0,1.0,23.0
+26.0,5.0,4.0,10.0,16.0,8.0,6.0,21.0,10.0,7.0,19.0,4.0,0.0,2.0,6.0,15.0,0.0,4.0,38.0,18.0,13.0,6.0,16.0,14.0,16.0,28.0,6.0,13.0,0.0,20.0,18.0,21.0,9.0,2.0,8.0,16.0,11.0,30.0,8.0,16.0,23.0,15.0,12.0,13.0,0.0,28.0,7.0,16.0,29.0,16.0,22.0,11.0,15.0,1.0,17.0,23.0,27.0,31.0,13.0,1.0,68.0,9.0,30.0,32.0,48.0,41.0,70.0,44.0,40.0,40.0,35.0,24.0,36.0,42.0,40.0,21.0,49.0,19.0,45.0,63.0,17.0,76.0,7.0,124.0,69.0,61.0,80.0,52.0,84.0,189.0,54.0,61.0,113.0,112.0,156.0,188.0,191.0,226.0,9.0,933.0
+8.0,4.0,0.0,9.0,11.0,13.0,9.0,15.0,14.0,11.0,21.0,5.0,1.0,6.0,7.0,8.0,0.0,0.0,16.0,6.0,23.0,2.0,21.0,12.0,11.0,8.0,8.0,9.0,1.0,14.0,16.0,23.0,14.0,0.0,6.0,33.0,23.0,2.0,4.0,15.0,27.0,2.0,7.0,22.0,5.0,36.0,1.0,48.0,23.0,15.0,27.0,0.0,11.0,6.0,12.0,3.0,15.0,23.0,7.0,0.0,30.0,16.0,30.0,22.0,11.0,6.0,19.0,42.0,44.0,1.0,14.0,69.0,25.0,28.0,31.0,2.0,25.0,51.0,30.0,71.0,3.0,23.0,34.0,76.0,89.0,30.0,19.0,41.0,141.0,24.0,60.0,13.0,74.0,92.0,158.0,5.0,267.0,74.0,4.0,227.0
+8.0,8.0,0.0,15.0,1.0,6.0,4.0,9.0,10.0,14.0,10.0,1.0,16.0,1.0,0.0,4.0,0.0,0.0,2.0,7.0,11.0,10.0,17.0,21.0,7.0,5.0,11.0,11.0,2.0,8.0,10.0,6.0,4.0,0.0,3.0,20.0,19.0,3.0,2.0,12.0,15.0,1.0,9.0,5.0,4.0,40.0,6.0,4.0,19.0,1.0,31.0,7.0,13.0,9.0,5.0,4.0,9.0,2.0,4.0,1.0,10.0,5.0,21.0,32.0,5.0,24.0,16.0,26.0,23.0,11.0,20.0,25.0,16.0,23.0,17.0,10.0,32.0,51.0,25.0,33.0,9.0,16.0,2.0,50.0,38.0,36.0,21.0,30.0,56.0,22.0,44.0,9.0,28.0,34.0,79.0,92.0,129.0,128.0,4.0,212.0
+8.0,3.0,0.0,3.0,2.0,8.0,4.0,11.0,3.0,3.0,10.0,6.0,5.0,3.0,4.0,7.0,2.0,0.0,17.0,7.0,11.0,0.0,14.0,9.0,5.0,4.0,10.0,5.0,0.0,4.0,25.0,11.0,3.0,6.0,2.0,20.0,14.0,10.0,2.0,22.0,19.0,3.0,8.0,25.0,2.0,33.0,1.0,22.0,18.0,5.0,27.0,3.0,9.0,8.0,9.0,4.0,13.0,7.0,7.0,2.0,12.0,14.0,15.0,27.0,15.0,2.0,8.0,10.0,35.0,8.0,20.0,23.0,19.0,11.0,34.0,3.0,25.0,185.0,31.0,54.0,5.0,45.0,12.0,127.0,65.0,43.0,17.0,32.0,65.0,52.0,7.0,1.0,48.0,40.0,116.0,65.0,151.0,105.0,4.0,343.0
+10.0,17.0,0.0,7.0,15.0,7.0,1.0,7.0,16.0,8.0,18.0,0.0,0.0,2.0,1.0,9.0,1.0,0.0,2.0,5.0,10.0,2.0,24.0,10.0,3.0,6.0,13.0,10.0,0.0,16.0,17.0,9.0,5.0,2.0,3.0,10.0,22.0,23.0,2.0,23.0,5.0,3.0,8.0,17.0,0.0,30.0,9.0,32.0,25.0,0.0,19.0,2.0,7.0,11.0,5.0,17.0,13.0,7.0,6.0,0.0,14.0,10.0,21.0,25.0,7.0,11.0,15.0,22.0,26.0,11.0,23.0,18.0,15.0,34.0,28.0,4.0,40.0,133.0,32.0,60.0,2.0,18.0,19.0,64.0,66.0,54.0,35.0,41.0,66.0,19.0,19.0,25.0,32.0,44.0,82.0,125.0,150.0,138.0,2.0,295.0
+4.0,12.0,0.0,15.0,12.0,12.0,5.0,3.0,21.0,2.0,14.0,3.0,1.0,7.0,1.0,5.0,7.0,1.0,1.0,7.0,6.0,10.0,18.0,7.0,9.0,7.0,15.0,7.0,1.0,13.0,13.0,16.0,11.0,0.0,9.0,25.0,32.0,5.0,5.0,13.0,22.0,3.0,6.0,42.0,0.0,25.0,4.0,4.0,28.0,0.0,15.0,0.0,6.0,7.0,10.0,0.0,6.0,13.0,3.0,0.0,14.0,18.0,38.0,26.0,14.0,1.0,8.0,31.0,25.0,1.0,26.0,72.0,8.0,25.0,34.0,1.0,30.0,4.0,22.0,30.0,6.0,2.0,18.0,16.0,23.0,30.0,29.0,34.0,139.0,2.0,38.0,2.0,41.0,39.0,53.0,0.0,225.0,59.0,1.0,73.0
+0.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,1.0,6.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,0.0,2.0,7.0,2.0,0.0,1.0,1.0,0.0,2.0,4.0,1.0,6.0,1.0,2.0,4.0,0.0,1.0,0.0,2.0,0.0,0.0,4.0,1.0,0.0,0.0,1.0,1.0,1.0,4.0,1.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,4.0,0.0,1.0,7.0,0.0,3.0,0.0,5.0,14.0,4.0,2.0,6.0,14.0,1.0,3.0,1.0,3.0,4.0,4.0,6.0,35.0,5.0,0.0,36.0
+10.0,19.0,0.0,22.0,16.0,15.0,15.0,11.0,18.0,5.0,33.0,28.0,66.0,6.0,6.0,22.0,1.0,13.0,18.0,20.0,12.0,54.0,12.0,5.0,32.0,10.0,18.0,24.0,10.0,19.0,28.0,13.0,25.0,4.0,19.0,15.0,24.0,12.0,54.0,24.0,25.0,8.0,25.0,19.0,21.0,9.0,6.0,14.0,12.0,25.0,25.0,7.0,23.0,23.0,39.0,23.0,20.0,22.0,39.0,1.0,30.0,23.0,29.0,46.0,33.0,8.0,19.0,57.0,39.0,15.0,23.0,16.0,25.0,34.0,31.0,15.0,31.0,6.0,32.0,34.0,14.0,60.0,31.0,83.0,48.0,43.0,172.0,48.0,79.0,74.0,59.0,181.0,124.0,122.0,89.0,101.0,161.0,274.0,12.0,344.0
+5.0,2.0,0.0,2.0,0.0,3.0,2.0,1.0,3.0,0.0,2.0,1.0,0.0,0.0,3.0,4.0,2.0,0.0,10.0,1.0,5.0,0.0,4.0,3.0,6.0,0.0,4.0,0.0,0.0,1.0,4.0,0.0,3.0,0.0,4.0,1.0,1.0,0.0,4.0,3.0,1.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,2.0,0.0,1.0,4.0,8.0,4.0,5.0,0.0,4.0,6.0,3.0,0.0,1.0,2.0,2.0,2.0,3.0,1.0,0.0,4.0,4.0,6.0,5.0,1.0,2.0,0.0,2.0,0.0,5.0,2.0,4.0,7.0,2.0,3.0,6.0,8.0,13.0,3.0,8.0,3.0,4.0,4.0,6.0,5.0,7.0,22.0,10.0,4.0,4.0,16.0,2.0,18.0
+6.0,6.0,1.0,2.0,2.0,1.0,1.0,3.0,7.0,0.0,10.0,5.0,0.0,0.0,3.0,10.0,0.0,0.0,1.0,3.0,5.0,0.0,4.0,1.0,12.0,8.0,6.0,6.0,0.0,13.0,10.0,5.0,9.0,9.0,2.0,3.0,4.0,39.0,6.0,4.0,5.0,6.0,14.0,8.0,31.0,23.0,1.0,29.0,9.0,6.0,24.0,4.0,9.0,12.0,7.0,7.0,8.0,4.0,4.0,0.0,11.0,6.0,3.0,13.0,11.0,0.0,15.0,7.0,17.0,7.0,14.0,33.0,8.0,20.0,25.0,5.0,21.0,4.0,23.0,16.0,3.0,29.0,8.0,19.0,24.0,24.0,23.0,15.0,34.0,16.0,10.0,2.0,40.0,27.0,38.0,27.0,70.0,43.0,0.0,108.0
+10.0,13.0,0.0,13.0,13.0,10.0,3.0,9.0,11.0,14.0,23.0,3.0,9.0,5.0,1.0,6.0,2.0,1.0,2.0,11.0,17.0,30.0,4.0,19.0,8.0,16.0,11.0,17.0,0.0,21.0,20.0,29.0,8.0,3.0,6.0,10.0,26.0,32.0,3.0,10.0,15.0,0.0,3.0,20.0,3.0,30.0,4.0,30.0,11.0,8.0,64.0,6.0,7.0,8.0,12.0,15.0,8.0,9.0,5.0,2.0,9.0,16.0,21.0,56.0,16.0,24.0,19.0,31.0,29.0,28.0,42.0,24.0,31.0,24.0,32.0,8.0,36.0,3.0,34.0,42.0,11.0,23.0,18.0,105.0,67.0,37.0,68.0,41.0,91.0,35.0,40.0,44.0,39.0,76.0,77.0,138.0,194.0,159.0,5.0,231.0
+8.0,6.0,0.0,9.0,2.0,18.0,5.0,9.0,11.0,11.0,7.0,0.0,8.0,0.0,2.0,4.0,0.0,1.0,3.0,3.0,7.0,2.0,10.0,3.0,8.0,10.0,8.0,8.0,0.0,21.0,8.0,2.0,3.0,1.0,0.0,2.0,12.0,29.0,4.0,22.0,3.0,3.0,3.0,4.0,13.0,16.0,0.0,25.0,16.0,9.0,4.0,2.0,5.0,3.0,2.0,21.0,11.0,8.0,1.0,0.0,10.0,7.0,7.0,39.0,9.0,0.0,13.0,16.0,24.0,6.0,58.0,23.0,13.0,59.0,68.0,3.0,103.0,81.0,84.0,28.0,1.0,24.0,31.0,50.0,41.0,115.0,15.0,123.0,29.0,16.0,3.0,3.0,32.0,35.0,65.0,63.0,63.0,95.0,4.0,280.0
+12.0,14.0,4.0,17.0,16.0,9.0,4.0,7.0,8.0,12.0,20.0,0.0,0.0,2.0,13.0,14.0,2.0,23.0,6.0,9.0,15.0,14.0,12.0,11.0,12.0,14.0,17.0,15.0,0.0,20.0,12.0,16.0,6.0,2.0,4.0,13.0,25.0,35.0,2.0,22.0,11.0,14.0,7.0,7.0,1.0,42.0,1.0,49.0,20.0,18.0,23.0,8.0,8.0,6.0,8.0,35.0,19.0,25.0,4.0,4.0,40.0,14.0,16.0,49.0,34.0,14.0,22.0,17.0,31.0,14.0,34.0,26.0,44.0,45.0,30.0,25.0,28.0,9.0,22.0,65.0,9.0,44.0,4.0,94.0,75.0,58.0,45.0,47.0,90.0,110.0,16.0,31.0,72.0,95.0,111.0,137.0,137.0,96.0,6.0,476.0
+1.0,0.0,0.0,1.0,0.0,1.0,2.0,1.0,0.0,1.0,0.0,5.0,1.0,0.0,0.0,1.0,2.0,3.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,14.0,3.0,0.0,4.0,0.0,3.0,1.0,1.0,2.0,1.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,3.0,4.0,1.0,3.0,0.0,2.0,2.0,0.0,7.0,0.0,0.0,1.0,0.0,1.0,2.0,4.0,0.0,2.0,12.0,0.0,7.0,22.0,35.0,11.0,22.0,0.0,13.0,9.0,0.0,3.0,182.0,4.0,2.0,36.0,7.0,26.0,2.0,8.0,1.0,10.0,5.0,5.0,2.0,37.0,16.0,15.0,1.0,25.0
+19.0,9.0,7.0,18.0,5.0,18.0,6.0,11.0,21.0,6.0,14.0,2.0,0.0,3.0,2.0,17.0,4.0,0.0,10.0,8.0,19.0,5.0,13.0,5.0,19.0,35.0,10.0,12.0,0.0,41.0,36.0,18.0,13.0,2.0,9.0,21.0,4.0,21.0,13.0,24.0,21.0,4.0,11.0,14.0,0.0,4.0,7.0,45.0,4.0,4.0,9.0,7.0,14.0,152.0,8.0,32.0,24.0,9.0,7.0,1.0,25.0,11.0,14.0,20.0,13.0,17.0,23.0,32.0,26.0,9.0,61.0,15.0,37.0,67.0,88.0,8.0,72.0,3.0,91.0,32.0,11.0,63.0,145.0,86.0,53.0,104.0,42.0,78.0,60.0,94.0,35.0,31.0,56.0,103.0,59.0,121.0,216.0,118.0,3.0,383.0
+0.0,1.0,0.0,1.0,9.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,2.0,3.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,2.0,5.0,5.0,1.0,0.0,2.0,1.0,1.0,1.0,0.0,5.0,0.0,1.0,0.0,3.0,3.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,4.0,0.0,3.0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,2.0,2.0,2.0,0.0,1.0,0.0,1.0,2.0,0.0,2.0,3.0,5.0,3.0,11.0,0.0,2.0,11.0,0.0,1.0,1.0,2.0,1.0,8.0,5.0,36.0,0.0,0.0,2.0
+7.0,9.0,0.0,10.0,17.0,18.0,7.0,20.0,18.0,15.0,15.0,6.0,9.0,8.0,1.0,10.0,2.0,56.0,8.0,6.0,28.0,6.0,10.0,2.0,6.0,23.0,8.0,6.0,5.0,8.0,21.0,3.0,13.0,0.0,0.0,1.0,14.0,51.0,1.0,19.0,5.0,9.0,12.0,7.0,4.0,7.0,3.0,56.0,37.0,2.0,16.0,0.0,9.0,3.0,8.0,38.0,19.0,35.0,2.0,0.0,47.0,12.0,20.0,43.0,8.0,13.0,27.0,21.0,50.0,14.0,31.0,36.0,40.0,32.0,40.0,2.0,35.0,20.0,38.0,84.0,3.0,43.0,12.0,71.0,74.0,26.0,33.0,41.0,52.0,70.0,53.0,1.0,27.0,90.0,165.0,69.0,102.0,160.0,3.0,525.0
+25.0,35.0,3.0,32.0,31.0,18.0,14.0,40.0,40.0,10.0,16.0,18.0,2.0,20.0,4.0,23.0,15.0,1.0,12.0,19.0,24.0,5.0,46.0,31.0,55.0,25.0,44.0,54.0,7.0,18.0,43.0,55.0,19.0,4.0,6.0,25.0,30.0,19.0,31.0,67.0,50.0,19.0,28.0,44.0,25.0,34.0,10.0,40.0,15.0,16.0,51.0,8.0,30.0,15.0,35.0,9.0,20.0,42.0,25.0,1.0,47.0,19.0,40.0,52.0,29.0,115.0,20.0,60.0,47.0,15.0,36.0,38.0,36.0,68.0,59.0,12.0,90.0,4.0,93.0,81.0,12.0,34.0,38.0,68.0,86.0,122.0,96.0,121.0,136.0,42.0,122.0,2.0,70.0,165.0,174.0,189.0,282.0,202.0,354.0,338.0
+4.0,7.0,2.0,9.0,4.0,12.0,4.0,16.0,11.0,13.0,11.0,1.0,10.0,1.0,1.0,4.0,0.0,0.0,8.0,6.0,7.0,11.0,13.0,21.0,4.0,11.0,9.0,18.0,0.0,2.0,13.0,13.0,7.0,3.0,5.0,20.0,21.0,17.0,3.0,15.0,14.0,1.0,4.0,15.0,2.0,22.0,6.0,38.0,11.0,3.0,38.0,0.0,5.0,3.0,0.0,11.0,3.0,14.0,2.0,1.0,9.0,5.0,11.0,31.0,9.0,7.0,10.0,24.0,32.0,5.0,17.0,19.0,17.0,21.0,28.0,4.0,10.0,5.0,18.0,55.0,5.0,11.0,13.0,57.0,37.0,33.0,25.0,30.0,76.0,11.0,15.0,16.0,32.0,69.0,103.0,129.0,150.0,13.0,0.0,132.0
+21.0,11.0,6.0,6.0,5.0,7.0,5.0,12.0,19.0,8.0,8.0,25.0,5.0,16.0,6.0,28.0,4.0,13.0,27.0,15.0,14.0,7.0,9.0,26.0,42.0,13.0,12.0,17.0,30.0,18.0,16.0,33.0,37.0,3.0,7.0,26.0,12.0,44.0,12.0,15.0,29.0,15.0,36.0,23.0,0.0,25.0,5.0,41.0,16.0,28.0,16.0,9.0,31.0,7.0,6.0,9.0,15.0,54.0,41.0,20.0,27.0,7.0,42.0,13.0,38.0,0.0,32.0,60.0,42.0,4.0,53.0,13.0,26.0,36.0,30.0,6.0,43.0,9.0,39.0,59.0,29.0,43.0,102.0,67.0,77.0,55.0,99.0,64.0,124.0,37.0,131.0,4.0,160.0,254.0,219.0,36.0,185.0,288.0,7.0,415.0
+4.0,2.0,0.0,6.0,10.0,0.0,2.0,2.0,6.0,2.0,3.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,2.0,3.0,3.0,2.0,4.0,13.0,2.0,0.0,2.0,3.0,0.0,10.0,1.0,4.0,2.0,1.0,3.0,3.0,14.0,17.0,2.0,7.0,9.0,2.0,3.0,4.0,4.0,20.0,0.0,12.0,2.0,0.0,8.0,1.0,2.0,4.0,0.0,4.0,1.0,4.0,1.0,0.0,6.0,2.0,7.0,14.0,0.0,0.0,3.0,4.0,3.0,8.0,9.0,5.0,16.0,18.0,14.0,5.0,9.0,10.0,5.0,12.0,1.0,10.0,7.0,24.0,15.0,7.0,8.0,7.0,30.0,10.0,9.0,2.0,15.0,15.0,27.0,28.0,72.0,8.0,6.0,41.0
+5.0,6.0,1.0,14.0,14.0,11.0,1.0,6.0,9.0,20.0,12.0,13.0,0.0,9.0,3.0,4.0,17.0,4.0,6.0,5.0,5.0,0.0,18.0,2.0,7.0,6.0,7.0,12.0,0.0,10.0,13.0,8.0,19.0,2.0,13.0,4.0,13.0,0.0,4.0,15.0,14.0,7.0,10.0,7.0,0.0,8.0,20.0,0.0,16.0,7.0,9.0,6.0,8.0,9.0,13.0,6.0,8.0,20.0,9.0,4.0,25.0,7.0,19.0,11.0,11.0,4.0,6.0,26.0,17.0,1.0,10.0,12.0,5.0,26.0,42.0,8.0,34.0,0.0,39.0,50.0,4.0,4.0,46.0,23.0,19.0,58.0,43.0,52.0,29.0,2.0,246.0,93.0,25.0,81.0,98.0,3.0,123.0,64.0,3.0,44.0
+7.0,6.0,0.0,5.0,22.0,8.0,5.0,10.0,8.0,20.0,3.0,1.0,2.0,3.0,1.0,1.0,0.0,0.0,2.0,12.0,11.0,0.0,3.0,24.0,3.0,9.0,7.0,9.0,0.0,13.0,14.0,5.0,0.0,9.0,2.0,4.0,30.0,28.0,1.0,14.0,13.0,1.0,4.0,6.0,16.0,19.0,0.0,56.0,18.0,2.0,23.0,1.0,3.0,3.0,2.0,2.0,13.0,14.0,1.0,0.0,10.0,3.0,10.0,17.0,1.0,1.0,9.0,7.0,33.0,2.0,13.0,35.0,10.0,19.0,11.0,0.0,20.0,4.0,21.0,58.0,4.0,7.0,24.0,42.0,33.0,28.0,4.0,39.0,53.0,10.0,13.0,1.0,20.0,31.0,75.0,45.0,160.0,12.0,4.0,65.0
+8.0,15.0,0.0,4.0,2.0,10.0,12.0,11.0,6.0,37.0,8.0,7.0,15.0,4.0,5.0,18.0,0.0,0.0,10.0,19.0,20.0,50.0,13.0,12.0,13.0,11.0,7.0,12.0,5.0,0.0,32.0,5.0,8.0,6.0,8.0,8.0,12.0,45.0,8.0,14.0,15.0,2.0,13.0,9.0,14.0,4.0,3.0,56.0,15.0,9.0,26.0,0.0,17.0,7.0,10.0,25.0,13.0,19.0,11.0,0.0,16.0,6.0,13.0,35.0,27.0,14.0,14.0,30.0,31.0,10.0,12.0,20.0,31.0,28.0,26.0,6.0,28.0,7.0,20.0,39.0,5.0,30.0,56.0,72.0,41.0,66.0,39.0,37.0,73.0,57.0,36.0,177.0,74.0,77.0,103.0,161.0,127.0,86.0,0.0,287.0
+0.0,0.0,0.0,0.0,5.0,4.0,0.0,0.0,3.0,3.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,2.0,2.0,3.0,0.0,8.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,5.0,1.0,1.0,0.0,1.0,0.0,27.0,0.0,0.0,0.0,0.0,8.0,0.0,1.0,1.0,0.0,2.0,0.0,2.0,0.0,0.0,1.0,3.0,0.0,5.0,0.0,0.0,0.0,2.0,0.0,0.0,13.0,0.0,0.0,8.0,7.0,0.0,4.0,0.0,15.0,1.0,1.0,0.0,11.0,1.0,7.0,13.0,1.0,24.0,2.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,1.0,4.0,2.0,1.0
+5.0,3.0,8.0,2.0,2.0,1.0,6.0,6.0,3.0,16.0,8.0,4.0,1.0,7.0,1.0,7.0,2.0,0.0,1.0,7.0,6.0,0.0,7.0,1.0,3.0,3.0,4.0,1.0,2.0,5.0,7.0,1.0,10.0,3.0,11.0,3.0,13.0,1.0,12.0,6.0,2.0,4.0,1.0,6.0,0.0,26.0,18.0,0.0,8.0,5.0,15.0,7.0,11.0,8.0,3.0,2.0,16.0,11.0,6.0,1.0,13.0,0.0,16.0,4.0,2.0,16.0,20.0,10.0,14.0,13.0,15.0,11.0,6.0,11.0,26.0,1.0,26.0,4.0,22.0,25.0,17.0,12.0,7.0,14.0,37.0,24.0,19.0,27.0,38.0,14.0,3.0,25.0,10.0,33.0,70.0,41.0,55.0,75.0,337.0,52.0
+8.0,3.0,2.0,3.0,5.0,13.0,1.0,4.0,10.0,4.0,0.0,12.0,0.0,3.0,0.0,3.0,7.0,4.0,3.0,16.0,2.0,0.0,19.0,0.0,10.0,3.0,0.0,8.0,0.0,5.0,9.0,0.0,7.0,0.0,5.0,0.0,1.0,0.0,4.0,7.0,0.0,10.0,11.0,0.0,0.0,4.0,10.0,0.0,4.0,0.0,5.0,6.0,10.0,1.0,2.0,8.0,22.0,18.0,9.0,4.0,5.0,0.0,0.0,9.0,21.0,13.0,12.0,10.0,18.0,14.0,5.0,3.0,8.0,9.0,4.0,15.0,14.0,2.0,12.0,19.0,31.0,22.0,7.0,8.0,45.0,10.0,24.0,25.0,0.0,25.0,11.0,20.0,19.0,69.0,46.0,16.0,2.0,18.0,222.0,54.0
+0.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,2.0,6.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,1.0,4.0,0.0,0.0,4.0,3.0,1.0,0.0,0.0,0.0,1.0,2.0,7.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,3.0,1.0,1.0,0.0,1.0,0.0,0.0,3.0,3.0,0.0,0.0,5.0,2.0,1.0,0.0,4.0,8.0,4.0,4.0,1.0,1.0,3.0,5.0,1.0,4.0,5.0,5.0,3.0,13.0,6.0,0.0,32.0
+4.0,1.0,5.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,1.0,5.0,5.0,2.0,3.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,1.0,2.0,1.0,0.0,4.0,3.0,0.0,4.0,0.0,7.0,0.0,0.0,2.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,2.0,3.0,1.0,0.0,4.0,1.0,5.0,2.0,0.0,2.0,2.0,1.0,4.0,5.0,2.0,5.0,0.0,0.0,2.0,1.0,1.0,3.0,3.0,0.0,4.0,4.0,1.0,5.0,3.0,9.0,8.0,9.0,3.0,6.0,2.0,4.0,6.0,1.0,5.0,6.0,14.0,4.0,6.0,1.0,2.0,2.0,4.0,15.0,5.0,10.0,19.0,7.0,17.0,9.0,34.0
+5.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,3.0,2.0,2.0,0.0,0.0,2.0,3.0,2.0,1.0,0.0,3.0,0.0,0.0,3.0,1.0,1.0,2.0,2.0,1.0,5.0,0.0,2.0,4.0,2.0,1.0,5.0,2.0,0.0,0.0,0.0,6.0,0.0,2.0,1.0,4.0,3.0,7.0,6.0,1.0,4.0,6.0,8.0,4.0,5.0,14.0,8.0,8.0,5.0,1.0,26.0
+2.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,4.0,3.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,2.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,2.0,1.0,4.0,0.0,2.0,1.0,0.0,2.0,2.0,0.0,2.0,1.0,1.0,0.0,0.0,6.0,4.0,2.0,2.0,2.0,1.0,4.0,2.0,6.0,0.0,3.0,0.0,1.0,4.0,1.0,0.0,2.0,5.0,4.0,8.0,2.0,1.0,7.0,5.0,4.0,3.0,1.0,2.0,1.0,5.0,5.0,7.0,1.0,7.0,7.0,6.0,3.0,2.0,7.0,11.0,1.0,4.0,3.0,9.0,10.0,14.0,27.0,12.0,3.0,44.0
+8.0,2.0,0.0,2.0,1.0,1.0,2.0,7.0,1.0,6.0,3.0,3.0,11.0,0.0,0.0,7.0,0.0,1.0,14.0,3.0,1.0,0.0,0.0,11.0,7.0,20.0,2.0,5.0,0.0,16.0,10.0,0.0,6.0,0.0,2.0,5.0,3.0,6.0,7.0,4.0,0.0,0.0,4.0,2.0,10.0,4.0,0.0,8.0,2.0,1.0,18.0,6.0,9.0,5.0,4.0,3.0,6.0,5.0,6.0,1.0,5.0,1.0,4.0,4.0,14.0,4.0,14.0,9.0,13.0,9.0,11.0,3.0,17.0,13.0,27.0,12.0,20.0,7.0,14.0,13.0,32.0,30.0,21.0,20.0,30.0,23.0,27.0,17.0,23.0,32.0,6.0,8.0,46.0,33.0,39.0,43.0,27.0,25.0,19.0,120.0
+1.0,2.0,0.0,2.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,1.0,0.0,4.0,0.0,1.0,1.0,0.0,1.0,3.0,1.0,2.0,3.0,2.0,2.0,1.0,0.0,0.0,1.0,3.0,1.0,0.0,1.0,1.0,1.0,3.0,0.0,0.0,4.0,1.0,0.0,3.0,0.0,0.0,0.0,1.0,2.0,4.0,5.0,5.0,2.0,1.0,3.0,3.0,5.0,2.0,0.0,1.0,4.0,0.0,4.0,0.0,3.0,4.0,3.0,2.0,3.0,9.0,9.0,7.0,7.0,5.0,4.0,3.0,3.0,6.0,8.0,8.0,10.0,7.0,9.0,14.0,23.0,30.0
+29.0,12.0,17.0,19.0,30.0,14.0,13.0,22.0,20.0,12.0,18.0,45.0,38.0,38.0,4.0,27.0,60.0,0.0,36.0,32.0,25.0,8.0,19.0,7.0,33.0,22.0,13.0,19.0,2.0,32.0,36.0,15.0,36.0,8.0,45.0,11.0,15.0,47.0,59.0,40.0,17.0,54.0,51.0,19.0,0.0,9.0,52.0,27.0,16.0,30.0,33.0,78.0,61.0,9.0,25.0,65.0,68.0,38.0,65.0,93.0,67.0,12.0,19.0,21.0,54.0,138.0,97.0,78.0,92.0,61.0,41.0,31.0,92.0,39.0,41.0,83.0,60.0,8.0,40.0,100.0,68.0,63.0,27.0,84.0,131.0,55.0,106.0,36.0,67.0,146.0,28.0,99.0,170.0,210.0,222.0,299.0,177.0,327.0,324.0,619.0
+0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,2.0,1.0,0.0,2.0,1.0,4.0,3.0,0.0,3.0,0.0,5.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,1.0,3.0,1.0,0.0,3.0,2.0,3.0,6.0,1.0,0.0,2.0,1.0,2.0,1.0,7.0,0.0,1.0,1.0,2.0,1.0,5.0,0.0,3.0,6.0,0.0,8.0,4.0,10.0,4.0,7.0,5.0,4.0,8.0,3.0,2.0,2.0,2.0,4.0,12.0,15.0,21.0,4.0,1.0,11.0
+0.0,0.0,0.0,7.0,3.0,0.0,1.0,0.0,1.0,1.0,2.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,2.0,0.0,1.0,1.0,0.0,3.0,0.0,0.0,1.0,1.0,3.0,0.0,1.0,3.0,0.0,0.0,1.0,1.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,5.0,0.0,1.0,1.0,2.0,1.0,0.0,1.0,0.0,1.0,1.0,4.0,0.0,1.0,3.0,1.0,0.0,2.0,7.0,0.0,0.0,1.0,0.0,0.0,2.0,3.0,0.0,1.0,1.0,5.0,2.0,4.0,0.0,1.0,3.0,8.0,3.0,3.0,5.0,2.0,2.0,4.0,3.0,6.0,3.0,7.0,3.0,9.0,1.0,4.0,20.0
+4.0,3.0,18.0,3.0,3.0,4.0,1.0,5.0,1.0,4.0,0.0,2.0,0.0,6.0,0.0,1.0,1.0,14.0,3.0,3.0,3.0,1.0,5.0,1.0,2.0,2.0,3.0,2.0,0.0,3.0,4.0,3.0,13.0,0.0,3.0,0.0,1.0,3.0,7.0,6.0,1.0,6.0,2.0,2.0,0.0,1.0,13.0,1.0,5.0,2.0,0.0,17.0,4.0,0.0,3.0,5.0,9.0,10.0,12.0,30.0,5.0,2.0,2.0,4.0,9.0,3.0,2.0,7.0,8.0,2.0,15.0,8.0,8.0,1.0,10.0,4.0,7.0,4.0,10.0,7.0,18.0,13.0,8.0,10.0,15.0,13.0,27.0,11.0,9.0,5.0,6.0,23.0,20.0,19.0,22.0,44.0,21.0,25.0,61.0,65.0
+10.0,1.0,7.0,2.0,2.0,4.0,0.0,7.0,5.0,3.0,4.0,3.0,2.0,3.0,0.0,11.0,6.0,2.0,4.0,11.0,11.0,0.0,1.0,1.0,9.0,0.0,3.0,6.0,9.0,9.0,1.0,1.0,7.0,1.0,4.0,0.0,3.0,2.0,18.0,12.0,2.0,6.0,19.0,4.0,0.0,4.0,5.0,2.0,5.0,0.0,6.0,1.0,6.0,11.0,5.0,13.0,10.0,12.0,7.0,5.0,17.0,5.0,1.0,8.0,13.0,17.0,10.0,16.0,19.0,11.0,19.0,2.0,22.0,27.0,22.0,8.0,42.0,5.0,26.0,11.0,23.0,20.0,15.0,13.0,17.0,44.0,19.0,24.0,6.0,26.0,10.0,14.0,46.0,51.0,23.0,53.0,22.0,49.0,57.0,177.0
+0.0,3.0,1.0,3.0,0.0,0.0,1.0,4.0,1.0,0.0,3.0,2.0,0.0,14.0,3.0,1.0,10.0,4.0,12.0,5.0,3.0,1.0,3.0,0.0,1.0,2.0,1.0,0.0,0.0,4.0,2.0,1.0,2.0,0.0,8.0,0.0,0.0,8.0,0.0,4.0,0.0,8.0,2.0,3.0,1.0,1.0,8.0,8.0,1.0,6.0,1.0,10.0,12.0,0.0,6.0,11.0,10.0,4.0,9.0,7.0,6.0,2.0,3.0,3.0,4.0,2.0,8.0,2.0,7.0,7.0,6.0,0.0,12.0,6.0,7.0,15.0,11.0,9.0,11.0,8.0,17.0,16.0,7.0,7.0,12.0,11.0,19.0,4.0,8.0,16.0,15.0,35.0,20.0,39.0,24.0,16.0,15.0,22.0,14.0,79.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,3.0,2.0,1.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,1.0,0.0,1.0,0.0,2.0,1.0,0.0,5.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,1.0,4.0,0.0,0.0,0.0,3.0,1.0,1.0,4.0,1.0,0.0,0.0,0.0,1.0,1.0,3.0,2.0,0.0,2.0,1.0,1.0,6.0,2.0,5.0,2.0,3.0,1.0,2.0,2.0,5.0,3.0,2.0,3.0,1.0,5.0,6.0,6.0,3.0,12.0,5.0,6.0,2.0,2.0,6.0,7.0,8.0,5.0,7.0,9.0,9.0,15.0
+6.0,0.0,5.0,4.0,0.0,1.0,2.0,8.0,13.0,3.0,3.0,4.0,0.0,5.0,0.0,8.0,6.0,0.0,7.0,12.0,5.0,0.0,4.0,1.0,5.0,0.0,2.0,2.0,10.0,4.0,12.0,0.0,10.0,0.0,11.0,0.0,1.0,0.0,7.0,2.0,1.0,8.0,10.0,0.0,4.0,7.0,2.0,0.0,11.0,1.0,5.0,3.0,11.0,3.0,21.0,10.0,8.0,8.0,9.0,1.0,18.0,3.0,1.0,8.0,27.0,11.0,24.0,18.0,3.0,17.0,2.0,5.0,19.0,15.0,17.0,6.0,18.0,0.0,19.0,23.0,27.0,59.0,1.0,11.0,25.0,32.0,25.0,26.0,3.0,23.0,5.0,5.0,36.0,21.0,25.0,23.0,8.0,52.0,100.0,193.0
+4.0,1.0,1.0,1.0,2.0,2.0,0.0,5.0,6.0,2.0,0.0,6.0,4.0,14.0,2.0,6.0,6.0,0.0,2.0,4.0,4.0,1.0,2.0,0.0,3.0,2.0,0.0,0.0,1.0,7.0,7.0,0.0,3.0,0.0,2.0,1.0,4.0,4.0,5.0,3.0,1.0,4.0,3.0,3.0,8.0,0.0,8.0,1.0,9.0,6.0,7.0,3.0,10.0,4.0,11.0,3.0,4.0,9.0,6.0,2.0,9.0,1.0,0.0,3.0,8.0,4.0,7.0,5.0,6.0,4.0,8.0,4.0,13.0,4.0,8.0,4.0,8.0,2.0,10.0,6.0,4.0,8.0,3.0,9.0,11.0,19.0,17.0,11.0,8.0,13.0,14.0,37.0,22.0,27.0,20.0,41.0,30.0,25.0,25.0,103.0
+1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,1.0,4.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,0.0,2.0,0.0,0.0,1.0,4.0,4.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,4.0,0.0,2.0,0.0,0.0,1.0,4.0,0.0,3.0,2.0,1.0,0.0,1.0,2.0,2.0,0.0,6.0,1.0,2.0,3.0,8.0,9.0,5.0,1.0,8.0,4.0,10.0,0.0,0.0,1.0,2.0,23.0,3.0,28.0,5.0,0.0,46.0
+1.0,1.0,1.0,0.0,0.0,1.0,1.0,4.0,2.0,2.0,1.0,3.0,0.0,4.0,0.0,4.0,5.0,13.0,5.0,1.0,1.0,0.0,1.0,0.0,0.0,2.0,1.0,1.0,5.0,0.0,3.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,1.0,1.0,2.0,0.0,3.0,2.0,4.0,0.0,0.0,2.0,3.0,0.0,2.0,7.0,8.0,5.0,1.0,0.0,0.0,2.0,2.0,1.0,3.0,2.0,1.0,4.0,9.0,2.0,0.0,3.0,4.0,2.0,2.0,9.0,6.0,0.0,1.0,3.0,9.0,3.0,0.0,8.0,11.0,8.0,7.0,1.0,5.0,13.0,1.0,0.0,6.0,11.0,20.0,24.0,8.0,12.0,63.0,54.0
+4.0,13.0,0.0,9.0,6.0,13.0,6.0,1.0,13.0,18.0,8.0,2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,4.0,3.0,10.0,11.0,0.0,6.0,12.0,11.0,0.0,1.0,3.0,22.0,3.0,1.0,1.0,14.0,12.0,1.0,1.0,28.0,13.0,0.0,3.0,22.0,0.0,13.0,0.0,0.0,5.0,0.0,9.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,5.0,8.0,15.0,22.0,3.0,1.0,1.0,11.0,9.0,2.0,10.0,31.0,7.0,7.0,6.0,0.0,10.0,1.0,12.0,10.0,0.0,2.0,7.0,5.0,11.0,21.0,1.0,8.0,46.0,0.0,14.0,1.0,10.0,37.0,21.0,2.0,109.0,23.0,1.0,14.0
+2.0,6.0,0.0,1.0,19.0,6.0,0.0,5.0,5.0,6.0,4.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,2.0,2.0,1.0,8.0,2.0,3.0,1.0,5.0,2.0,0.0,14.0,3.0,5.0,2.0,8.0,0.0,1.0,14.0,11.0,1.0,8.0,2.0,1.0,3.0,6.0,15.0,13.0,0.0,18.0,7.0,0.0,2.0,0.0,0.0,2.0,1.0,3.0,4.0,1.0,0.0,0.0,6.0,4.0,1.0,8.0,2.0,0.0,6.0,7.0,7.0,0.0,18.0,18.0,5.0,5.0,12.0,0.0,17.0,2.0,13.0,23.0,0.0,1.0,3.0,8.0,33.0,22.0,7.0,26.0,15.0,8.0,1.0,1.0,12.0,14.0,16.0,15.0,64.0,5.0,1.0,29.0
+25.0,7.0,10.0,10.0,10.0,7.0,4.0,11.0,7.0,7.0,22.0,13.0,25.0,24.0,1.0,16.0,1.0,0.0,9.0,10.0,29.0,11.0,6.0,12.0,9.0,4.0,9.0,15.0,55.0,23.0,20.0,0.0,21.0,0.0,18.0,0.0,6.0,11.0,17.0,13.0,7.0,20.0,19.0,1.0,3.0,13.0,21.0,15.0,8.0,5.0,19.0,15.0,17.0,7.0,22.0,51.0,14.0,27.0,19.0,7.0,26.0,13.0,4.0,34.0,31.0,18.0,32.0,25.0,18.0,67.0,41.0,22.0,37.0,35.0,45.0,42.0,54.0,4.0,66.0,20.0,70.0,48.0,9.0,45.0,36.0,56.0,66.0,48.0,20.0,49.0,24.0,75.0,65.0,112.0,126.0,111.0,34.0,118.0,325.0,451.0
+20.0,7.0,31.0,7.0,6.0,5.0,16.0,15.0,14.0,20.0,15.0,21.0,0.0,17.0,0.0,7.0,17.0,0.0,30.0,17.0,15.0,0.0,12.0,0.0,11.0,7.0,10.0,7.0,4.0,16.0,12.0,0.0,18.0,3.0,26.0,1.0,6.0,4.0,36.0,11.0,0.0,51.0,21.0,1.0,0.0,14.0,27.0,0.0,14.0,7.0,14.0,20.0,19.0,3.0,13.0,45.0,24.0,47.0,36.0,51.0,39.0,8.0,5.0,30.0,29.0,20.0,32.0,43.0,29.0,16.0,34.0,15.0,46.0,19.0,31.0,94.0,40.0,1.0,40.0,45.0,73.0,36.0,40.0,42.0,60.0,90.0,49.0,23.0,7.0,45.0,11.0,76.0,71.0,93.0,137.0,114.0,36.0,178.0,487.0,248.0
+34.0,17.0,36.0,9.0,14.0,9.0,8.0,21.0,13.0,6.0,7.0,32.0,16.0,25.0,7.0,37.0,48.0,7.0,32.0,27.0,37.0,3.0,19.0,2.0,27.0,4.0,16.0,15.0,1.0,13.0,32.0,1.0,53.0,9.0,32.0,2.0,8.0,12.0,32.0,17.0,7.0,66.0,61.0,2.0,0.0,14.0,66.0,2.0,4.0,8.0,23.0,90.0,75.0,16.0,53.0,52.0,65.0,45.0,97.0,102.0,80.0,11.0,10.0,25.0,66.0,46.0,113.0,70.0,49.0,65.0,22.0,26.0,60.0,16.0,37.0,152.0,33.0,1.0,27.0,69.0,128.0,71.0,75.0,54.0,124.0,76.0,87.0,43.0,18.0,159.0,22.0,57.0,129.0,114.0,195.0,168.0,55.0,203.0,351.0,856.0
+10.0,4.0,0.0,3.0,11.0,8.0,7.0,9.0,4.0,5.0,11.0,14.0,13.0,7.0,1.0,11.0,6.0,0.0,2.0,9.0,25.0,0.0,11.0,2.0,8.0,11.0,6.0,3.0,10.0,5.0,12.0,5.0,14.0,2.0,3.0,9.0,11.0,21.0,14.0,6.0,10.0,7.0,15.0,10.0,18.0,22.0,7.0,11.0,12.0,2.0,7.0,13.0,27.0,7.0,12.0,25.0,17.0,22.0,20.0,0.0,22.0,10.0,9.0,22.0,19.0,23.0,24.0,24.0,21.0,34.0,31.0,19.0,47.0,10.0,23.0,31.0,37.0,3.0,40.0,38.0,26.0,38.0,8.0,61.0,67.0,44.0,53.0,32.0,33.0,58.0,48.0,87.0,57.0,109.0,83.0,123.0,111.0,160.0,24.0,424.0
+19.0,8.0,15.0,13.0,14.0,10.0,25.0,31.0,5.0,2.0,5.0,34.0,0.0,36.0,18.0,32.0,58.0,21.0,43.0,27.0,26.0,1.0,23.0,4.0,14.0,4.0,8.0,11.0,84.0,27.0,32.0,4.0,42.0,5.0,27.0,0.0,2.0,17.0,16.0,25.0,2.0,46.0,47.0,3.0,0.0,2.0,51.0,8.0,6.0,22.0,10.0,52.0,43.0,5.0,47.0,73.0,58.0,37.0,62.0,35.0,45.0,7.0,2.0,29.0,75.0,23.0,57.0,37.0,56.0,40.0,49.0,37.0,62.0,44.0,50.0,139.0,70.0,0.0,41.0,54.0,106.0,120.0,27.0,30.0,92.0,87.0,104.0,72.0,12.0,112.0,20.0,112.0,140.0,157.0,163.0,153.0,33.0,249.0,486.0,558.0
+16.0,17.0,33.0,11.0,24.0,9.0,16.0,15.0,11.0,2.0,13.0,35.0,3.0,34.0,7.0,25.0,34.0,2.0,27.0,26.0,18.0,1.0,18.0,1.0,34.0,6.0,12.0,9.0,58.0,15.0,32.0,0.0,52.0,0.0,12.0,5.0,4.0,8.0,18.0,25.0,8.0,39.0,42.0,3.0,0.0,6.0,20.0,1.0,35.0,21.0,6.0,13.0,35.0,11.0,67.0,54.0,49.0,48.0,24.0,65.0,51.0,7.0,8.0,26.0,58.0,54.0,62.0,31.0,34.0,28.0,22.0,20.0,55.0,20.0,34.0,9.0,50.0,2.0,30.0,82.0,77.0,156.0,11.0,47.0,120.0,48.0,53.0,45.0,10.0,104.0,37.0,75.0,151.0,123.0,158.0,169.0,47.0,109.0,922.0,693.0
+25.0,15.0,17.0,13.0,4.0,7.0,22.0,33.0,12.0,30.0,27.0,28.0,1.0,22.0,10.0,26.0,15.0,55.0,21.0,45.0,17.0,9.0,9.0,12.0,22.0,3.0,8.0,20.0,5.0,55.0,42.0,1.0,50.0,6.0,43.0,2.0,9.0,26.0,28.0,20.0,4.0,48.0,33.0,7.0,65.0,8.0,33.0,7.0,30.0,47.0,46.0,52.0,51.0,9.0,96.0,62.0,78.0,60.0,49.0,28.0,58.0,16.0,4.0,49.0,56.0,16.0,82.0,40.0,41.0,65.0,76.0,13.0,52.0,40.0,52.0,72.0,88.0,7.0,63.0,69.0,120.0,165.0,39.0,54.0,93.0,122.0,174.0,62.0,21.0,142.0,23.0,132.0,137.0,87.0,167.0,232.0,42.0,318.0,1076.0,750.0
+11.0,11.0,30.0,8.0,12.0,8.0,11.0,13.0,11.0,20.0,11.0,24.0,1.0,33.0,2.0,22.0,13.0,2.0,20.0,12.0,33.0,2.0,22.0,2.0,8.0,8.0,11.0,8.0,2.0,13.0,18.0,6.0,27.0,2.0,24.0,6.0,9.0,0.0,26.0,11.0,4.0,6.0,12.0,4.0,1.0,11.0,64.0,1.0,6.0,16.0,13.0,19.0,22.0,8.0,15.0,19.0,19.0,62.0,17.0,27.0,22.0,11.0,5.0,15.0,10.0,4.0,20.0,48.0,26.0,16.0,28.0,17.0,15.0,33.0,43.0,113.0,61.0,0.0,45.0,40.0,30.0,26.0,36.0,29.0,38.0,59.0,67.0,57.0,24.0,20.0,210.0,17.0,39.0,49.0,216.0,24.0,55.0,103.0,58.0,113.0
+19.0,7.0,6.0,2.0,9.0,8.0,8.0,18.0,12.0,15.0,17.0,16.0,67.0,16.0,4.0,23.0,6.0,0.0,17.0,20.0,17.0,4.0,6.0,14.0,20.0,8.0,5.0,12.0,9.0,16.0,20.0,0.0,16.0,0.0,11.0,5.0,6.0,14.0,15.0,4.0,3.0,14.0,28.0,1.0,7.0,9.0,14.0,8.0,11.0,7.0,18.0,22.0,20.0,15.0,38.0,29.0,27.0,34.0,24.0,0.0,25.0,4.0,12.0,21.0,23.0,31.0,44.0,32.0,21.0,22.0,26.0,8.0,44.0,25.0,46.0,27.0,34.0,4.0,57.0,40.0,31.0,52.0,11.0,50.0,48.0,43.0,71.0,84.0,17.0,74.0,36.0,80.0,125.0,142.0,87.0,113.0,48.0,127.0,282.0,401.0
+15.0,13.0,48.0,8.0,13.0,10.0,7.0,28.0,17.0,22.0,21.0,16.0,11.0,36.0,2.0,56.0,27.0,1.0,39.0,66.0,36.0,4.0,14.0,9.0,34.0,6.0,14.0,23.0,50.0,22.0,40.0,5.0,33.0,1.0,19.0,8.0,24.0,15.0,43.0,28.0,9.0,54.0,40.0,11.0,0.0,19.0,50.0,3.0,18.0,4.0,50.0,56.0,50.0,55.0,29.0,55.0,72.0,73.0,46.0,12.0,52.0,14.0,14.0,35.0,48.0,78.0,51.0,72.0,49.0,50.0,54.0,31.0,71.0,59.0,64.0,63.0,81.0,1.0,63.0,76.0,122.0,65.0,119.0,66.0,95.0,129.0,90.0,120.0,32.0,139.0,70.0,74.0,181.0,200.0,193.0,205.0,112.0,170.0,320.0,691.0
+28.0,12.0,2.0,13.0,14.0,14.0,7.0,17.0,7.0,14.0,28.0,25.0,29.0,8.0,8.0,17.0,5.0,10.0,17.0,17.0,28.0,8.0,15.0,12.0,12.0,12.0,20.0,32.0,0.0,17.0,21.0,25.0,12.0,3.0,6.0,19.0,19.0,57.0,22.0,23.0,15.0,29.0,33.0,18.0,6.0,9.0,23.0,46.0,29.0,7.0,10.0,13.0,19.0,19.0,12.0,31.0,26.0,20.0,25.0,0.0,25.0,29.0,23.0,38.0,26.0,24.0,33.0,32.0,61.0,29.0,64.0,31.0,75.0,74.0,52.0,37.0,75.0,5.0,45.0,80.0,53.0,69.0,12.0,123.0,80.0,69.0,78.0,71.0,121.0,88.0,89.0,163.0,65.0,144.0,132.0,247.0,208.0,323.0,35.0,573.0
+20.0,4.0,15.0,7.0,17.0,10.0,6.0,17.0,14.0,20.0,10.0,27.0,10.0,33.0,1.0,25.0,11.0,0.0,24.0,23.0,34.0,6.0,11.0,17.0,12.0,36.0,10.0,23.0,19.0,6.0,20.0,6.0,31.0,7.0,16.0,16.0,16.0,14.0,24.0,35.0,15.0,15.0,21.0,8.0,0.0,28.0,34.0,21.0,12.0,3.0,42.0,6.0,40.0,17.0,17.0,27.0,27.0,50.0,49.0,11.0,34.0,8.0,13.0,30.0,17.0,30.0,31.0,49.0,48.0,13.0,23.0,9.0,53.0,23.0,40.0,21.0,49.0,10.0,43.0,95.0,40.0,36.0,73.0,65.0,101.0,83.0,58.0,41.0,53.0,46.0,117.0,150.0,112.0,162.0,160.0,176.0,105.0,198.0,104.0,413.0
+28.0,14.0,6.0,10.0,19.0,11.0,6.0,22.0,32.0,9.0,18.0,28.0,0.0,34.0,18.0,17.0,28.0,0.0,17.0,28.0,14.0,5.0,22.0,20.0,21.0,9.0,17.0,25.0,0.0,23.0,35.0,9.0,26.0,5.0,69.0,7.0,21.0,26.0,51.0,30.0,15.0,18.0,42.0,11.0,0.0,16.0,72.0,25.0,12.0,22.0,27.0,37.0,51.0,4.0,17.0,19.0,54.0,19.0,45.0,4.0,35.0,11.0,16.0,26.0,46.0,49.0,57.0,37.0,44.0,50.0,72.0,15.0,58.0,40.0,70.0,31.0,84.0,3.0,63.0,50.0,50.0,54.0,26.0,80.0,92.0,86.0,101.0,79.0,58.0,75.0,21.0,195.0,161.0,233.0,169.0,151.0,122.0,278.0,260.0,373.0
+18.0,9.0,5.0,8.0,6.0,9.0,4.0,6.0,8.0,3.0,6.0,11.0,6.0,4.0,8.0,4.0,1.0,5.0,12.0,13.0,10.0,3.0,14.0,7.0,16.0,11.0,6.0,5.0,0.0,20.0,15.0,1.0,14.0,5.0,28.0,5.0,10.0,16.0,10.0,13.0,3.0,18.0,37.0,2.0,0.0,6.0,21.0,9.0,13.0,61.0,7.0,28.0,37.0,0.0,39.0,14.0,28.0,16.0,33.0,0.0,21.0,6.0,2.0,30.0,24.0,12.0,19.0,33.0,29.0,23.0,55.0,20.0,31.0,49.0,68.0,45.0,59.0,6.0,48.0,26.0,66.0,29.0,3.0,38.0,61.0,101.0,86.0,45.0,19.0,66.0,21.0,41.0,85.0,135.0,85.0,108.0,46.0,91.0,180.0,220.0
+12.0,15.0,33.0,12.0,9.0,9.0,4.0,20.0,17.0,1.0,7.0,30.0,0.0,15.0,9.0,27.0,15.0,0.0,27.0,18.0,18.0,5.0,11.0,7.0,21.0,1.0,4.0,6.0,17.0,13.0,26.0,1.0,20.0,5.0,30.0,1.0,3.0,3.0,21.0,12.0,1.0,25.0,40.0,6.0,63.0,0.0,7.0,1.0,9.0,22.0,9.0,49.0,30.0,8.0,54.0,22.0,53.0,47.0,51.0,75.0,30.0,3.0,3.0,18.0,67.0,13.0,33.0,34.0,29.0,26.0,17.0,11.0,32.0,19.0,18.0,22.0,40.0,3.0,25.0,55.0,50.0,122.0,84.0,17.0,95.0,70.0,94.0,18.0,14.0,93.0,5.0,34.0,165.0,69.0,98.0,146.0,25.0,157.0,491.0,611.0
+10.0,5.0,35.0,7.0,8.0,8.0,5.0,16.0,5.0,0.0,3.0,13.0,0.0,18.0,0.0,8.0,11.0,1.0,14.0,21.0,7.0,1.0,11.0,4.0,12.0,1.0,5.0,2.0,23.0,6.0,21.0,0.0,19.0,4.0,13.0,0.0,1.0,1.0,7.0,7.0,0.0,29.0,13.0,0.0,64.0,1.0,21.0,3.0,24.0,2.0,0.0,4.0,20.0,5.0,24.0,39.0,28.0,45.0,20.0,5.0,30.0,6.0,0.0,7.0,12.0,17.0,19.0,12.0,31.0,15.0,17.0,14.0,23.0,11.0,18.0,19.0,36.0,1.0,17.0,35.0,34.0,57.0,12.0,24.0,58.0,27.0,39.0,24.0,1.0,34.0,9.0,58.0,45.0,26.0,70.0,63.0,8.0,79.0,671.0,334.0
+20.0,4.0,1.0,17.0,16.0,14.0,6.0,15.0,8.0,10.0,17.0,14.0,0.0,25.0,6.0,17.0,12.0,11.0,10.0,12.0,16.0,0.0,13.0,13.0,33.0,5.0,7.0,13.0,0.0,25.0,23.0,9.0,28.0,1.0,34.0,12.0,17.0,48.0,30.0,19.0,18.0,16.0,15.0,10.0,0.0,5.0,24.0,24.0,21.0,26.0,10.0,26.0,44.0,3.0,27.0,33.0,32.0,20.0,37.0,0.0,36.0,4.0,17.0,26.0,60.0,19.0,19.0,36.0,30.0,52.0,64.0,12.0,35.0,49.0,72.0,29.0,62.0,13.0,55.0,35.0,70.0,78.0,5.0,65.0,53.0,95.0,122.0,63.0,64.0,97.0,40.0,155.0,125.0,172.0,109.0,201.0,154.0,243.0,149.0,475.0
+16.0,2.0,16.0,2.0,4.0,6.0,8.0,14.0,5.0,5.0,14.0,25.0,11.0,32.0,1.0,13.0,26.0,0.0,37.0,16.0,17.0,12.0,4.0,0.0,14.0,3.0,4.0,6.0,22.0,18.0,12.0,0.0,15.0,6.0,33.0,2.0,14.0,1.0,30.0,8.0,0.0,40.0,26.0,0.0,10.0,2.0,31.0,1.0,2.0,4.0,12.0,52.0,42.0,7.0,42.0,29.0,32.0,31.0,28.0,26.0,43.0,4.0,0.0,25.0,29.0,23.0,21.0,36.0,26.0,36.0,24.0,18.0,44.0,18.0,27.0,76.0,36.0,2.0,34.0,32.0,82.0,51.0,30.0,27.0,39.0,31.0,70.0,37.0,5.0,60.0,29.0,54.0,80.0,80.0,87.0,115.0,22.0,127.0,398.0,391.0
+2.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,4.0,0.0,1.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,4.0,5.0,0.0,0.0,0.0,0.0,3.0,3.0,1.0,3.0,2.0,3.0,7.0,0.0,1.0,5.0,5.0,6.0,2.0,3.0,1.0,4.0,1.0,3.0,1.0,2.0,0.0,6.0,0.0,6.0,6.0,0.0,10.0
+5.0,19.0,1.0,20.0,4.0,11.0,21.0,6.0,27.0,11.0,14.0,9.0,0.0,4.0,6.0,13.0,11.0,0.0,5.0,6.0,9.0,8.0,14.0,10.0,15.0,1.0,11.0,12.0,0.0,12.0,13.0,7.0,18.0,0.0,24.0,5.0,9.0,1.0,23.0,26.0,14.0,0.0,19.0,10.0,1.0,5.0,12.0,0.0,11.0,9.0,12.0,3.0,16.0,8.0,13.0,1.0,8.0,6.0,13.0,0.0,13.0,18.0,12.0,29.0,14.0,0.0,2.0,18.0,27.0,0.0,13.0,21.0,6.0,22.0,12.0,0.0,31.0,1.0,15.0,28.0,4.0,9.0,28.0,56.0,31.0,29.0,139.0,33.0,35.0,0.0,15.0,33.0,76.0,27.0,62.0,2.0,67.0,38.0,44.0,58.0
+11.0,32.0,0.0,9.0,7.0,24.0,14.0,27.0,20.0,9.0,12.0,3.0,0.0,9.0,2.0,10.0,2.0,0.0,16.0,13.0,14.0,1.0,24.0,11.0,16.0,2.0,21.0,30.0,26.0,11.0,15.0,23.0,22.0,4.0,3.0,34.0,28.0,20.0,13.0,34.0,19.0,3.0,22.0,25.0,0.0,22.0,0.0,25.0,14.0,22.0,44.0,6.0,2.0,12.0,12.0,2.0,7.0,10.0,8.0,0.0,14.0,15.0,28.0,45.0,16.0,2.0,17.0,71.0,35.0,9.0,20.0,57.0,21.0,22.0,18.0,3.0,30.0,176.0,32.0,58.0,4.0,16.0,7.0,63.0,64.0,54.0,14.0,36.0,100.0,24.0,135.0,3.0,82.0,97.0,116.0,7.0,217.0,93.0,2.0,273.0
+5.0,8.0,0.0,7.0,9.0,11.0,5.0,3.0,20.0,15.0,17.0,8.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,10.0,0.0,12.0,4.0,10.0,4.0,13.0,14.0,0.0,12.0,8.0,1.0,2.0,1.0,6.0,2.0,29.0,1.0,11.0,11.0,5.0,1.0,5.0,2.0,0.0,18.0,0.0,0.0,9.0,0.0,26.0,4.0,9.0,40.0,10.0,1.0,5.0,4.0,5.0,0.0,13.0,9.0,3.0,12.0,14.0,0.0,6.0,24.0,27.0,1.0,19.0,13.0,9.0,10.0,14.0,1.0,8.0,2.0,23.0,27.0,5.0,1.0,52.0,18.0,50.0,14.0,20.0,25.0,8.0,9.0,45.0,1.0,28.0,40.0,42.0,1.0,25.0,40.0,3.0,43.0
+22.0,9.0,0.0,3.0,10.0,6.0,15.0,2.0,4.0,20.0,9.0,15.0,0.0,0.0,1.0,11.0,4.0,0.0,10.0,5.0,5.0,0.0,5.0,0.0,35.0,13.0,9.0,4.0,0.0,9.0,15.0,0.0,4.0,0.0,1.0,0.0,17.0,0.0,4.0,12.0,2.0,0.0,13.0,2.0,0.0,15.0,0.0,0.0,17.0,6.0,28.0,3.0,8.0,2.0,2.0,1.0,1.0,5.0,2.0,0.0,8.0,11.0,0.0,13.0,5.0,0.0,4.0,8.0,27.0,0.0,20.0,16.0,1.0,9.0,16.0,3.0,19.0,5.0,16.0,14.0,5.0,3.0,51.0,42.0,41.0,23.0,12.0,17.0,2.0,2.0,7.0,1.0,66.0,68.0,79.0,3.0,14.0,41.0,2.0,74.0
+15.0,14.0,0.0,14.0,22.0,11.0,3.0,2.0,19.0,7.0,9.0,9.0,1.0,2.0,1.0,9.0,3.0,1.0,4.0,5.0,19.0,11.0,7.0,0.0,11.0,7.0,11.0,12.0,0.0,8.0,10.0,3.0,12.0,1.0,5.0,3.0,8.0,0.0,14.0,11.0,8.0,0.0,8.0,9.0,0.0,14.0,1.0,1.0,18.0,0.0,11.0,1.0,8.0,43.0,11.0,3.0,0.0,12.0,7.0,0.0,12.0,11.0,7.0,25.0,10.0,0.0,10.0,18.0,11.0,0.0,11.0,12.0,10.0,13.0,10.0,2.0,18.0,3.0,20.0,25.0,0.0,7.0,28.0,34.0,43.0,11.0,18.0,18.0,20.0,7.0,79.0,0.0,41.0,28.0,35.0,0.0,42.0,50.0,1.0,48.0
+7.0,3.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,3.0,2.0,0.0,2.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,4.0,0.0,1.0,1.0,0.0,4.0,0.0,1.0,0.0,0.0,2.0,1.0,1.0,4.0,1.0,0.0,2.0,0.0,0.0,5.0,0.0,0.0,2.0,1.0,9.0,3.0,0.0,2.0,2.0,3.0,0.0,5.0,2.0,2.0,1.0,6.0,0.0,0.0,7.0,11.0,0.0,3.0,1.0,4.0,3.0,4.0,1.0,7.0,0.0,3.0,8.0,0.0,0.0,8.0,5.0,14.0,5.0,5.0,10.0,20.0,0.0,14.0,0.0,5.0,9.0,17.0,0.0,18.0,9.0,0.0,9.0
+2.0,0.0,0.0,0.0,3.0,6.0,4.0,0.0,2.0,2.0,0.0,0.0,4.0,0.0,0.0,6.0,2.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,1.0,3.0,1.0,0.0,1.0,7.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,3.0,0.0,2.0,6.0,6.0,0.0,1.0,1.0,1.0,0.0,1.0,2.0,1.0,3.0,2.0,0.0,0.0,3.0,6.0,2.0,3.0,2.0,1.0,4.0,2.0,0.0,3.0,1.0,2.0,9.0,0.0,3.0,3.0,19.0,9.0,1.0,2.0,6.0,9.0,0.0,7.0,0.0,6.0,7.0,9.0,1.0,13.0,5.0,0.0,13.0
+0.0,3.0,0.0,4.0,2.0,2.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,0.0,3.0,6.0,1.0,0.0,0.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,3.0,1.0,0.0,1.0,0.0,1.0,1.0,2.0,1.0,1.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,6.0,9.0,0.0,9.0,0.0,4.0,3.0,0.0,0.0,16.0,0.0,4.0,27.0,0.0,28.0,2.0,0.0,0.0,0.0,3.0,3.0,13.0,1.0,0.0,16.0,0.0,0.0
+7.0,17.0,0.0,28.0,5.0,15.0,8.0,6.0,24.0,6.0,14.0,7.0,0.0,1.0,2.0,8.0,11.0,2.0,5.0,9.0,13.0,8.0,15.0,2.0,16.0,11.0,13.0,25.0,0.0,24.0,9.0,4.0,5.0,2.0,1.0,1.0,6.0,0.0,18.0,42.0,6.0,0.0,9.0,5.0,0.0,4.0,0.0,4.0,2.0,0.0,12.0,1.0,2.0,5.0,3.0,0.0,5.0,5.0,1.0,3.0,9.0,4.0,2.0,28.0,12.0,0.0,3.0,11.0,8.0,1.0,45.0,12.0,3.0,86.0,92.0,0.0,67.0,0.0,31.0,23.0,1.0,0.0,79.0,17.0,43.0,128.0,10.0,186.0,30.0,4.0,2.0,3.0,18.0,28.0,86.0,1.0,34.0,14.0,0.0,45.0
+2.0,10.0,0.0,10.0,14.0,12.0,4.0,3.0,10.0,6.0,2.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,1.0,6.0,0.0,1.0,14.0,2.0,2.0,10.0,5.0,13.0,0.0,8.0,0.0,0.0,1.0,0.0,4.0,2.0,8.0,0.0,3.0,21.0,1.0,0.0,4.0,6.0,12.0,11.0,1.0,5.0,1.0,2.0,5.0,1.0,1.0,3.0,3.0,1.0,3.0,1.0,1.0,1.0,2.0,1.0,7.0,21.0,4.0,0.0,1.0,3.0,1.0,1.0,45.0,13.0,1.0,64.0,57.0,0.0,43.0,0.0,14.0,11.0,2.0,4.0,85.0,4.0,14.0,80.0,11.0,134.0,13.0,0.0,0.0,0.0,7.0,23.0,25.0,0.0,42.0,5.0,0.0,10.0
+4.0,16.0,0.0,14.0,14.0,11.0,3.0,2.0,4.0,2.0,5.0,5.0,0.0,0.0,2.0,4.0,10.0,0.0,4.0,6.0,5.0,4.0,11.0,2.0,11.0,13.0,12.0,15.0,0.0,6.0,8.0,0.0,9.0,0.0,6.0,1.0,6.0,0.0,13.0,19.0,0.0,1.0,9.0,1.0,0.0,4.0,2.0,0.0,1.0,2.0,11.0,3.0,8.0,7.0,3.0,1.0,9.0,8.0,2.0,0.0,4.0,1.0,1.0,21.0,6.0,0.0,1.0,8.0,5.0,0.0,20.0,10.0,2.0,63.0,57.0,0.0,44.0,1.0,20.0,7.0,5.0,1.0,55.0,7.0,28.0,105.0,13.0,141.0,4.0,2.0,3.0,1.0,15.0,23.0,50.0,1.0,13.0,8.0,0.0,9.0
+0.0,6.0,0.0,4.0,4.0,9.0,2.0,2.0,10.0,3.0,7.0,2.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,0.0,1.0,4.0,7.0,4.0,5.0,3.0,5.0,0.0,2.0,2.0,0.0,2.0,1.0,2.0,2.0,12.0,3.0,6.0,7.0,6.0,0.0,0.0,2.0,1.0,4.0,0.0,7.0,3.0,1.0,3.0,0.0,1.0,1.0,0.0,0.0,4.0,2.0,1.0,1.0,2.0,4.0,3.0,14.0,2.0,0.0,0.0,2.0,1.0,0.0,7.0,2.0,1.0,27.0,19.0,0.0,17.0,0.0,5.0,6.0,0.0,0.0,24.0,6.0,11.0,39.0,4.0,58.0,11.0,1.0,0.0,0.0,5.0,6.0,20.0,0.0,35.0,4.0,0.0,7.0
+5.0,11.0,0.0,15.0,5.0,6.0,3.0,2.0,11.0,6.0,9.0,1.0,0.0,2.0,0.0,4.0,0.0,0.0,3.0,6.0,1.0,3.0,7.0,20.0,8.0,12.0,14.0,16.0,0.0,10.0,4.0,1.0,2.0,2.0,2.0,7.0,9.0,8.0,2.0,21.0,11.0,1.0,3.0,15.0,0.0,17.0,1.0,8.0,7.0,4.0,19.0,1.0,7.0,6.0,4.0,0.0,3.0,1.0,2.0,5.0,3.0,1.0,9.0,27.0,15.0,0.0,1.0,10.0,6.0,0.0,36.0,11.0,3.0,94.0,54.0,0.0,45.0,0.0,15.0,11.0,1.0,3.0,80.0,7.0,13.0,102.0,8.0,169.0,41.0,1.0,0.0,1.0,14.0,16.0,51.0,0.0,95.0,6.0,0.0,14.0
+15.0,16.0,0.0,11.0,9.0,12.0,1.0,1.0,13.0,8.0,4.0,4.0,1.0,1.0,1.0,2.0,4.0,1.0,3.0,4.0,6.0,9.0,18.0,3.0,7.0,15.0,9.0,17.0,0.0,3.0,3.0,0.0,6.0,4.0,6.0,1.0,9.0,0.0,6.0,20.0,2.0,0.0,4.0,3.0,0.0,9.0,1.0,1.0,2.0,1.0,12.0,3.0,3.0,6.0,2.0,0.0,3.0,2.0,3.0,1.0,4.0,1.0,4.0,22.0,13.0,0.0,3.0,7.0,11.0,0.0,30.0,15.0,2.0,76.0,51.0,0.0,48.0,1.0,14.0,15.0,2.0,0.0,66.0,18.0,28.0,81.0,8.0,127.0,9.0,3.0,3.0,1.0,16.0,13.0,56.0,1.0,31.0,12.0,0.0,17.0
+6.0,16.0,0.0,34.0,9.0,25.0,18.0,4.0,20.0,11.0,10.0,2.0,0.0,3.0,3.0,4.0,4.0,3.0,0.0,9.0,0.0,9.0,16.0,3.0,9.0,14.0,11.0,32.0,0.0,9.0,3.0,4.0,0.0,2.0,1.0,1.0,12.0,0.0,13.0,47.0,6.0,0.0,7.0,22.0,3.0,2.0,2.0,1.0,6.0,3.0,7.0,1.0,1.0,5.0,3.0,0.0,2.0,3.0,3.0,0.0,4.0,4.0,1.0,29.0,12.0,0.0,0.0,26.0,9.0,0.0,30.0,2.0,5.0,94.0,54.0,0.0,46.0,0.0,29.0,11.0,2.0,0.0,69.0,1.0,30.0,106.0,13.0,142.0,37.0,2.0,0.0,1.0,8.0,48.0,71.0,2.0,81.0,14.0,0.0,5.0
+3.0,4.0,0.0,10.0,8.0,4.0,0.0,0.0,8.0,0.0,4.0,0.0,0.0,1.0,1.0,3.0,2.0,0.0,0.0,1.0,0.0,4.0,12.0,0.0,2.0,9.0,5.0,12.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,2.0,5.0,12.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,15.0,9.0,0.0,0.0,3.0,4.0,0.0,12.0,1.0,0.0,28.0,19.0,0.0,12.0,0.0,7.0,8.0,1.0,0.0,42.0,2.0,16.0,46.0,2.0,60.0,3.0,0.0,1.0,1.0,4.0,17.0,16.0,0.0,19.0,3.0,0.0,4.0
+0.0,21.0,0.0,17.0,4.0,7.0,3.0,2.0,16.0,8.0,6.0,3.0,3.0,3.0,2.0,2.0,5.0,8.0,4.0,6.0,0.0,9.0,16.0,2.0,1.0,12.0,7.0,26.0,0.0,8.0,5.0,0.0,2.0,0.0,1.0,0.0,8.0,0.0,5.0,29.0,4.0,1.0,6.0,2.0,1.0,3.0,0.0,1.0,5.0,4.0,6.0,2.0,3.0,5.0,2.0,0.0,5.0,1.0,3.0,7.0,0.0,5.0,1.0,26.0,16.0,0.0,0.0,12.0,13.0,0.0,26.0,3.0,3.0,81.0,49.0,0.0,46.0,0.0,15.0,14.0,1.0,2.0,70.0,0.0,39.0,89.0,4.0,134.0,11.0,1.0,0.0,0.0,5.0,17.0,73.0,0.0,11.0,2.0,0.0,3.0
+1.0,8.0,0.0,5.0,0.0,6.0,1.0,0.0,8.0,0.0,6.0,1.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,7.0,0.0,1.0,6.0,2.0,3.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,1.0,4.0,0.0,0.0,0.0,0.0,4.0,0.0,14.0,0.0,0.0,22.0,26.0,0.0,9.0,0.0,5.0,9.0,0.0,0.0,17.0,0.0,10.0,17.0,0.0,34.0,6.0,0.0,0.0,0.0,2.0,2.0,8.0,0.0,13.0,1.0,0.0,1.0
+0.0,11.0,0.0,2.0,0.0,3.0,0.0,0.0,5.0,1.0,5.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,6.0,7.0,3.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,5.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,7.0,0.0,0.0,8.0,11.0,0.0,4.0,0.0,2.0,0.0,0.0,0.0,13.0,0.0,2.0,16.0,0.0,20.0,5.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,18.0,0.0,0.0,2.0
+1.0,6.0,0.0,6.0,4.0,4.0,0.0,0.0,16.0,2.0,7.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.0,0.0,0.0,9.0,6.0,10.0,0.0,3.0,0.0,0.0,4.0,0.0,0.0,0.0,4.0,0.0,0.0,17.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,5.0,0.0,0.0,0.0,0.0,3.0,0.0,11.0,0.0,1.0,17.0,11.0,0.0,18.0,0.0,6.0,9.0,0.0,0.0,19.0,0.0,8.0,19.0,0.0,30.0,5.0,0.0,0.0,0.0,3.0,1.0,7.0,0.0,17.0,2.0,0.0,3.0
+1.0,9.0,0.0,8.0,5.0,14.0,3.0,0.0,11.0,6.0,11.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,15.0,2.0,1.0,13.0,12.0,4.0,0.0,3.0,5.0,0.0,0.0,0.0,2.0,1.0,1.0,0.0,0.0,12.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,5.0,2.0,15.0,2.0,0.0,0.0,0.0,3.0,0.0,20.0,0.0,0.0,18.0,15.0,0.0,12.0,0.0,5.0,2.0,0.0,0.0,28.0,0.0,10.0,20.0,1.0,28.0,13.0,0.0,0.0,0.0,6.0,9.0,14.0,0.0,17.0,3.0,0.0,0.0
+2.0,4.0,8.0,8.0,6.0,9.0,3.0,0.0,6.0,8.0,3.0,3.0,0.0,4.0,0.0,1.0,0.0,15.0,0.0,0.0,0.0,0.0,5.0,8.0,5.0,4.0,4.0,7.0,0.0,11.0,2.0,2.0,0.0,0.0,2.0,8.0,9.0,0.0,1.0,10.0,7.0,0.0,4.0,6.0,0.0,4.0,0.0,3.0,4.0,1.0,9.0,0.0,3.0,15.0,3.0,0.0,1.0,1.0,5.0,5.0,3.0,2.0,7.0,11.0,6.0,0.0,0.0,5.0,4.0,0.0,29.0,35.0,0.0,53.0,50.0,0.0,27.0,0.0,25.0,3.0,1.0,3.0,39.0,7.0,12.0,53.0,9.0,68.0,45.0,1.0,10.0,0.0,16.0,17.0,16.0,0.0,71.0,11.0,0.0,13.0
+5.0,4.0,0.0,4.0,13.0,6.0,7.0,2.0,11.0,3.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,13.0,6.0,1.0,3.0,7.0,7.0,0.0,7.0,12.0,4.0,0.0,1.0,2.0,5.0,5.0,0.0,6.0,9.0,4.0,0.0,4.0,11.0,0.0,9.0,0.0,0.0,3.0,1.0,11.0,0.0,1.0,3.0,3.0,0.0,1.0,2.0,0.0,0.0,6.0,1.0,3.0,16.0,1.0,0.0,3.0,4.0,1.0,0.0,26.0,7.0,1.0,17.0,20.0,0.0,17.0,2.0,20.0,3.0,0.0,3.0,66.0,2.0,8.0,18.0,4.0,41.0,29.0,0.0,1.0,2.0,9.0,8.0,18.0,0.0,66.0,5.0,0.0,6.0
diff --git a/pyPLNmodels/data/test_data/O_test.csv b/pyPLNmodels/data/test_data/O_test.csv
new file mode 100644
index 00000000..e7dc0f58
--- /dev/null
+++ b/pyPLNmodels/data/test_data/O_test.csv
@@ -0,0 +1,201 @@
+0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
+0,0,0,0,0,1,1,1,0,1,0,0,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,0,0,0
+1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0
+1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,1,1,1,1,1
+0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,1,0,0,1,1,0,0
+1,0,1,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,0,0,1,0
+1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,0
+0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1
+0,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1
+1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1
+0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0
+1,1,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,1,1
+1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1
+1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1
+1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,1,1
+1,0,1,0,1,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0
+0,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1
+1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,1
+1,1,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,0
+0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0
+0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1
+1,0,0,1,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1
+1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1
+0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1
+1,0,0,1,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0
+0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1,1,0,0
+1,0,0,1,0,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1
+0,0,0,1,1,0,0,0,1,1,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0
+0,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1
+1,0,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,1,0,1,1
+1,1,0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0
+0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0
+0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,1
+0,0,1,1,1,0,0,1,1,0,0,0,1,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0
+0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0
+0,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,0,0
+0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0
+0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0
+0,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1
+0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1
+0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1,1
+0,0,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,1
+0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1
+1,1,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0
+1,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,1,1,1
+1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,0
+1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,0
+1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,1,1,1,0,0,0,1,0,0,1,0,0,1
+1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1
+1,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,0
+1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,1,0,0,0,0,1
+0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,0,1,0,1,0,1
+1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0
+0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,1,1,0
+1,1,1,0,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,0,1,0,1
+1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0
+1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0
+0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,1
+1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,1
+0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1
+0,1,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0
+0,0,0,1,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0
+0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,0,1,1,1
+0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1
+0,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1
+1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1
+0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,1
+1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,0,0,0,0,0
+0,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1
+1,1,0,0,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0
+0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,0
+1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1
+1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0,0
+1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0
+0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0
+1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,1
+0,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,1,0,1
+1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,0
+1,1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0
+1,1,1,0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,1,0,0,1,0,0
+0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1
+1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1
+0,1,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1
+1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,1,0
+0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1
+1,1,0,1,1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,1,0
+0,0,0,0,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,1,0
+0,1,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1
+1,1,0,1,1,1,0,1,0,0,0,0,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,1,0,0,1,0,1,1,0,1
+1,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0
+1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1
+0,1,0,0,1,1,0,1,0,0,1,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,1,1
+0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1
+1,1,0,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,1,1,1,0,0
+0,0,1,0,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1
+1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0
+0,0,1,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,0,1,1,0,0
+1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,0,0,0,0,0,0
+1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1
+0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0
+0,0,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,0,1,1,1,0,1,1,1
+1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,0,1,1,1,1,1
+1,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,1,1
+1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0
+1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,0,1,1,0,1,1,1
+0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1
+0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0
+1,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,0
+1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1
+0,0,1,1,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,0,1,1,1,0,0,1
+0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0
+1,0,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0
+0,1,0,0,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1
+0,1,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,0,1,1
+0,0,1,0,1,0,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1
+0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1
+1,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1
+1,0,0,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1
+0,0,1,0,0,1,0,1,1,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1
+0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0,0,1,0,1,1,1,0
+1,1,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,0,1
+0,1,0,1,0,0,1,0,0,0,0,1,0,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1
+0,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0
+0,0,1,1,0,1,1,0,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,1,0,0,0,1,0,1
+0,1,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,1,1,1,0,0,0,0,1
+0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,1
+1,0,1,1,0,0,0,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0
+0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0
+0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0
+1,0,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,0,1,1,1,0
+0,1,0,0,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,1,0,0,0,1
+1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0
+0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,0,1,1,1,0,1,1,0,0,1,0
+1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0
+0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,1,1,1,0
+0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,0
+1,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,1
+0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,0,0
+1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1
+1,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,1,1
+0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0
+0,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,0
+0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0
+0,1,1,0,0,1,0,1,1,0,1,0,0,1,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0
+0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0
+1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,1,0
+0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1
+0,1,1,0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1
+0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0
+1,1,0,0,0,0,1,1,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,0,1
+1,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0
+1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0
+0,1,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,1
+1,1,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,1
+1,1,1,1,1,1,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,1
+0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,1,0,0,0
+0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,1,1
+0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,0
+1,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,0,0,1,0,1,0
+1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0
+1,0,0,0,0,1,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0
+1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1
+0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0
+0,0,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1
+1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0
+0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0
+0,1,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,0,0,1
+1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,1,1,0,1,1,0
+1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0
+1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,1
+0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1
+0,1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1
+0,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1
+1,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,1
+1,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1
+1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0
+0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1
+0,1,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1
+1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,0,1,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0
+0,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,0,0,0
+0,0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1
+1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,0,1
+0,1,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0
+0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1
+0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1
+1,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0
+0,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0
+0,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,1
+0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0
+0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0
+1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,0
+1,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0
+1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1
+0,0,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0
+0,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,1,0
+0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,1,1,0,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0
+1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0
+0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1
+0,0,0,0,1,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0
+0,0,1,1,0,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0
+0,1,1,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0
diff --git a/pyPLNmodels/data/test_data/Y_test.csv b/pyPLNmodels/data/test_data/Y_test.csv
new file mode 100644
index 00000000..8cb44706
--- /dev/null
+++ b/pyPLNmodels/data/test_data/Y_test.csv
@@ -0,0 +1,201 @@
+0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
+5.0,2.0,1.0,7.0,0.0,6.0,8.0,11.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,1.0,13.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,3.0,1.0,4.0,1.0,0.0,7.0,3.0,0.0,29.0,1.0,23.0,1.0,5.0,6.0,7.0,3.0,0.0,1.0,2.0,1.0,0.0,3.0
+2.0,14.0,1.0,15.0,0.0,39.0,20.0,13.0,7.0,14.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,8.0,2.0,0.0,8.0,0.0,2.0,0.0,0.0,1.0,4.0,1.0,2.0,0.0,5.0,8.0,2.0,0.0,6.0,1.0,12.0,0.0,1.0,1.0,1.0,0.0,0.0,5.0,6.0,3.0,0.0,0.0
+3.0,20.0,1.0,1.0,2.0,1.0,0.0,14.0,11.0,3.0,5.0,8.0,1.0,2.0,0.0,4.0,7.0,2.0,6.0,1.0,0.0,1.0,6.0,0.0,4.0,2.0,5.0,3.0,2.0,1.0,1.0,13.0,5.0,3.0,0.0,1.0,1.0,0.0,1.0,1.0,3.0,3.0,4.0,0.0,0.0,8.0,3.0,1.0,3.0,2.0
+1.0,4.0,1.0,5.0,0.0,3.0,2.0,2.0,1.0,7.0,1.0,1.0,2.0,0.0,0.0,3.0,0.0,1.0,1.0,2.0,2.0,0.0,6.0,0.0,3.0,0.0,0.0,1.0,1.0,0.0,2.0,1.0,2.0,6.0,0.0,2.0,2.0,2.0,6.0,0.0,1.0,2.0,8.0,11.0,3.0,8.0,11.0,8.0,13.0,9.0
+7.0,0.0,3.0,2.0,3.0,1.0,1.0,0.0,1.0,1.0,1.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,1.0,1.0,0.0,2.0,2.0,5.0,2.0,0.0,0.0,3.0,5.0,16.0,6.0,2.0,1.0,8.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,2.0,5.0,2.0,2.0,10.0,5.0,0.0
+8.0,0.0,8.0,0.0,2.0,3.0,1.0,4.0,1.0,4.0,3.0,2.0,0.0,2.0,1.0,3.0,4.0,1.0,2.0,0.0,5.0,6.0,3.0,7.0,2.0,12.0,1.0,8.0,1.0,2.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,7.0,0.0,1.0,3.0,2.0,2.0,1.0,7.0,1.0,3.0,2.0,3.0,1.0
+2.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,1.0,2.0,8.0,3.0,8.0,3.0,1.0,5.0,5.0,4.0,4.0,2.0,0.0,0.0,1.0,2.0,1.0,4.0,1.0,0.0,0.0,1.0,1.0,2.0,0.0,1.0,3.0,3.0,0.0,1.0,1.0,3.0,0.0,2.0,2.0,0.0,1.0,4.0,1.0,1.0,1.0,5.0
+1.0,0.0,0.0,2.0,1.0,1.0,0.0,0.0,1.0,1.0,2.0,4.0,1.0,2.0,2.0,0.0,1.0,2.0,0.0,1.0,5.0,4.0,0.0,1.0,2.0,1.0,0.0,4.0,2.0,1.0,1.0,4.0,10.0,2.0,3.0,7.0,10.0,5.0,2.0,2.0,2.0,0.0,2.0,0.0,4.0,1.0,1.0,3.0,4.0,1.0
+1.0,5.0,7.0,3.0,0.0,1.0,2.0,7.0,10.0,11.0,2.0,1.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,12.0,3.0,4.0,3.0,4.0,2.0,2.0,2.0,7.0,4.0,5.0,0.0,4.0,0.0,0.0,1.0,2.0,1.0,1.0,3.0,0.0,0.0,4.0,2.0,0.0,1.0,3.0,2.0,1.0,1.0
+0.0,11.0,0.0,14.0,0.0,1.0,5.0,5.0,3.0,0.0,1.0,0.0,2.0,2.0,0.0,4.0,3.0,0.0,1.0,7.0,0.0,0.0,9.0,3.0,5.0,1.0,0.0,6.0,3.0,5.0,2.0,0.0,1.0,2.0,0.0,0.0,2.0,1.0,7.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,5.0,1.0,0.0,0.0
+0.0,3.0,4.0,5.0,8.0,0.0,8.0,4.0,2.0,1.0,0.0,1.0,20.0,23.0,22.0,15.0,59.0,9.0,2.0,0.0,5.0,8.0,1.0,6.0,0.0,7.0,6.0,3.0,1.0,0.0,4.0,17.0,1.0,1.0,2.0,16.0,2.0,7.0,0.0,1.0,0.0,1.0,0.0,7.0,1.0,1.0,2.0,0.0,16.0,1.0
+0.0,72.0,28.0,14.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,44.0,19.0,2.0,12.0,38.0,5.0,2.0,0.0,0.0,2.0,0.0,3.0,0.0,1.0,1.0,26.0,0.0,1.0,6.0,8.0,0.0,6.0,0.0,12.0,0.0,0.0,0.0,0.0,2.0,4.0,0.0,10.0,0.0,13.0,0.0,0.0,114.0,15.0
+4.0,3.0,0.0,1.0,1.0,0.0,1.0,5.0,1.0,1.0,1.0,1.0,12.0,3.0,4.0,3.0,6.0,3.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,2.0,0.0,2.0,3.0,2.0,11.0,0.0,1.0,0.0,1.0,4.0,0.0,3.0,4.0,0.0,0.0,1.0,14.0,1.0,1.0,20.0,8.0
+1.0,1.0,2.0,1.0,0.0,1.0,0.0,3.0,0.0,0.0,0.0,4.0,8.0,0.0,0.0,0.0,3.0,2.0,3.0,1.0,2.0,2.0,3.0,2.0,9.0,2.0,5.0,3.0,5.0,2.0,1.0,2.0,2.0,5.0,0.0,0.0,1.0,0.0,3.0,0.0,11.0,2.0,5.0,0.0,0.0,10.0,1.0,0.0,2.0,2.0
+2.0,2.0,0.0,3.0,2.0,3.0,1.0,5.0,0.0,3.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,0.0,8.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,5.0,9.0,2.0,1.0,36.0,0.0,32.0,1.0,3.0,1.0,3.0,2.0,2.0,25.0,7.0,2.0,2.0,1.0
+0.0,1.0,0.0,0.0,1.0,1.0,2.0,8.0,1.0,7.0,6.0,0.0,4.0,8.0,4.0,4.0,1.0,2.0,0.0,1.0,1.0,2.0,0.0,9.0,0.0,6.0,7.0,1.0,1.0,3.0,3.0,6.0,2.0,1.0,1.0,0.0,2.0,1.0,0.0,3.0,6.0,2.0,7.0,4.0,3.0,0.0,1.0,6.0,8.0,7.0
+1.0,5.0,5.0,1.0,2.0,1.0,0.0,1.0,0.0,1.0,2.0,0.0,2.0,9.0,3.0,2.0,14.0,8.0,3.0,2.0,5.0,0.0,6.0,12.0,1.0,0.0,6.0,13.0,1.0,0.0,0.0,14.0,0.0,6.0,3.0,2.0,1.0,3.0,1.0,2.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,1.0,6.0,3.0
+0.0,0.0,0.0,1.0,2.0,21.0,1.0,0.0,4.0,18.0,3.0,6.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,16.0,3.0,9.0,6.0,0.0,29.0,6.0,0.0,2.0,10.0,3.0,0.0,0.0,6.0,1.0,15.0,0.0,40.0,1.0,462.0,6.0,0.0,0.0,3.0,0.0,1.0,0.0,1.0,2.0,0.0,1.0
+0.0,0.0,1.0,3.0,1.0,0.0,0.0,1.0,5.0,7.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,7.0,0.0,5.0,1.0,0.0,2.0,4.0,8.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,7.0,0.0,2.0,1.0,2.0,0.0,0.0,41.0,14.0,24.0,13.0,1.0
+0.0,6.0,16.0,7.0,11.0,0.0,15.0,8.0,0.0,0.0,7.0,6.0,21.0,73.0,11.0,4.0,2.0,0.0,1.0,0.0,8.0,2.0,0.0,5.0,0.0,1.0,0.0,4.0,1.0,3.0,1.0,12.0,0.0,1.0,1.0,11.0,0.0,1.0,0.0,0.0,0.0,5.0,5.0,3.0,3.0,0.0,2.0,11.0,66.0,22.0
+6.0,1.0,4.0,2.0,5.0,2.0,2.0,6.0,0.0,0.0,5.0,0.0,8.0,26.0,6.0,8.0,27.0,28.0,13.0,0.0,9.0,6.0,0.0,9.0,0.0,1.0,8.0,0.0,0.0,4.0,3.0,6.0,3.0,0.0,5.0,9.0,0.0,3.0,0.0,3.0,5.0,4.0,0.0,1.0,1.0,0.0,0.0,4.0,0.0,3.0
+1.0,6.0,2.0,13.0,0.0,0.0,10.0,2.0,0.0,1.0,1.0,0.0,6.0,0.0,3.0,2.0,1.0,1.0,3.0,5.0,0.0,0.0,2.0,4.0,1.0,1.0,4.0,6.0,0.0,0.0,7.0,2.0,0.0,4.0,0.0,3.0,5.0,2.0,0.0,0.0,19.0,8.0,3.0,6.0,1.0,9.0,4.0,0.0,0.0,7.0
+0.0,2.0,5.0,5.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,4.0,0.0,1.0,9.0,0.0,6.0,3.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,8.0
+2.0,10.0,15.0,5.0,0.0,0.0,1.0,4.0,0.0,0.0,2.0,2.0,9.0,26.0,24.0,25.0,103.0,5.0,2.0,0.0,6.0,1.0,1.0,11.0,1.0,7.0,22.0,5.0,0.0,7.0,0.0,38.0,0.0,2.0,0.0,21.0,0.0,1.0,0.0,0.0,5.0,26.0,0.0,11.0,10.0,1.0,0.0,0.0,20.0,1.0
+0.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,2.0,1.0,1.0,6.0,2.0,2.0,1.0,3.0,2.0,2.0,1.0,2.0,0.0,6.0,4.0,7.0,6.0,2.0,2.0,4.0,10.0,6.0,0.0,3.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,7.0,27.0,49.0,8.0,5.0,1.0,2.0
+4.0,10.0,16.0,8.0,8.0,2.0,4.0,0.0,3.0,0.0,1.0,0.0,7.0,10.0,5.0,10.0,24.0,3.0,3.0,0.0,4.0,3.0,3.0,5.0,0.0,4.0,2.0,3.0,3.0,3.0,0.0,10.0,1.0,2.0,3.0,54.0,0.0,1.0,0.0,1.0,0.0,11.0,2.0,7.0,3.0,0.0,0.0,0.0,4.0,2.0
+1.0,5.0,7.0,14.0,2.0,5.0,2.0,2.0,9.0,5.0,2.0,2.0,1.0,0.0,1.0,4.0,0.0,0.0,2.0,2.0,0.0,2.0,11.0,1.0,7.0,3.0,2.0,0.0,2.0,6.0,2.0,0.0,3.0,1.0,3.0,0.0,2.0,4.0,1.0,0.0,1.0,0.0,9.0,2.0,0.0,4.0,1.0,1.0,4.0,0.0
+0.0,6.0,2.0,0.0,1.0,0.0,0.0,1.0,2.0,0.0,1.0,2.0,1.0,6.0,6.0,0.0,0.0,2.0,2.0,2.0,2.0,0.0,1.0,6.0,4.0,4.0,10.0,24.0,3.0,1.0,2.0,0.0,3.0,2.0,3.0,1.0,3.0,1.0,2.0,1.0,8.0,2.0,5.0,0.0,0.0,4.0,0.0,0.0,2.0,1.0
+0.0,1.0,0.0,7.0,3.0,1.0,0.0,1.0,3.0,1.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,3.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,4.0,0.0,2.0,5.0,4.0,3.0,2.0,11.0,14.0,4.0,4.0,14.0
+10.0,18.0,1.0,42.0,2.0,21.0,7.0,1.0,3.0,0.0,0.0,0.0,1.0,2.0,2.0,5.0,1.0,1.0,5.0,2.0,4.0,1.0,4.0,4.0,8.0,4.0,0.0,2.0,6.0,7.0,5.0,2.0,2.0,0.0,1.0,2.0,3.0,6.0,8.0,1.0,4.0,7.0,11.0,3.0,1.0,19.0,7.0,17.0,5.0,2.0
+1.0,6.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,3.0,3.0,1.0,2.0,1.0,2.0,6.0,6.0,6.0,0.0,1.0,0.0,2.0,1.0,1.0,3.0,1.0,4.0,0.0,3.0,0.0,3.0,1.0,3.0,0.0,4.0,0.0,0.0,1.0,7.0,1.0,3.0,5.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0
+0.0,0.0,10.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,2.0,2.0,7.0,5.0,6.0,17.0,16.0,9.0,3.0,0.0,5.0,1.0,2.0,13.0,0.0,0.0,4.0,8.0,1.0,1.0,4.0,18.0,1.0,1.0,1.0,44.0,1.0,0.0,0.0,4.0,1.0,0.0,0.0,3.0,3.0,1.0,0.0,0.0,1.0,0.0
+2.0,2.0,9.0,28.0,5.0,7.0,3.0,2.0,3.0,4.0,0.0,1.0,0.0,1.0,1.0,3.0,2.0,4.0,0.0,14.0,2.0,2.0,3.0,1.0,3.0,1.0,0.0,0.0,2.0,3.0,2.0,1.0,5.0,2.0,2.0,0.0,2.0,4.0,3.0,0.0,5.0,0.0,2.0,1.0,3.0,1.0,1.0,0.0,0.0,1.0
+0.0,0.0,1.0,0.0,0.0,4.0,0.0,1.0,11.0,2.0,6.0,4.0,4.0,4.0,1.0,3.0,2.0,4.0,1.0,0.0,5.0,4.0,11.0,2.0,9.0,3.0,4.0,2.0,1.0,1.0,2.0,2.0,0.0,2.0,5.0,4.0,2.0,1.0,2.0,4.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0
+0.0,7.0,1.0,4.0,1.0,0.0,11.0,4.0,0.0,1.0,1.0,0.0,0.0,4.0,6.0,2.0,5.0,6.0,2.0,0.0,1.0,0.0,5.0,1.0,0.0,2.0,2.0,2.0,1.0,1.0,7.0,1.0,2.0,11.0,0.0,3.0,4.0,1.0,1.0,1.0,2.0,6.0,2.0,18.0,0.0,37.0,16.0,0.0,5.0,9.0
+1.0,2.0,4.0,1.0,2.0,4.0,2.0,1.0,3.0,2.0,1.0,5.0,2.0,2.0,4.0,2.0,1.0,4.0,4.0,3.0,1.0,2.0,2.0,1.0,0.0,3.0,1.0,2.0,5.0,4.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,2.0,5.0,9.0,1.0,0.0,0.0
+1.0,2.0,20.0,0.0,1.0,1.0,2.0,3.0,0.0,1.0,4.0,3.0,7.0,9.0,3.0,1.0,8.0,6.0,2.0,0.0,3.0,0.0,1.0,2.0,0.0,0.0,7.0,4.0,1.0,2.0,3.0,3.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,3.0,0.0,3.0,1.0,2.0,0.0,1.0,7.0,0.0
+0.0,0.0,4.0,0.0,4.0,0.0,2.0,3.0,0.0,1.0,1.0,1.0,9.0,3.0,3.0,3.0,19.0,1.0,0.0,0.0,3.0,0.0,1.0,7.0,0.0,0.0,4.0,2.0,0.0,2.0,8.0,13.0,4.0,4.0,1.0,8.0,1.0,0.0,0.0,2.0,2.0,5.0,2.0,7.0,0.0,1.0,1.0,0.0,24.0,4.0
+0.0,1.0,7.0,5.0,10.0,3.0,8.0,7.0,0.0,2.0,1.0,0.0,2.0,2.0,0.0,6.0,2.0,6.0,5.0,1.0,0.0,1.0,6.0,6.0,0.0,0.0,3.0,9.0,1.0,1.0,6.0,1.0,2.0,4.0,3.0,2.0,2.0,0.0,1.0,1.0,1.0,3.0,4.0,0.0,0.0,10.0,4.0,0.0,3.0,8.0
+0.0,3.0,0.0,2.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,3.0,1.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,7.0,1.0,3.0,7.0,1.0,1.0,13.0,0.0,3.0,1.0,3.0,3.0,9.0,9.0,2.0,144.0,30.0,3.0,5.0,2.0
+3.0,7.0,8.0,31.0,3.0,10.0,21.0,3.0,3.0,4.0,1.0,0.0,0.0,0.0,1.0,5.0,0.0,2.0,0.0,1.0,3.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,4.0,1.0,0.0,9.0,1.0,0.0,3.0,6.0,0.0,1.0,3.0,1.0,45.0,5.0,3.0,2.0,4.0
+2.0,0.0,0.0,2.0,1.0,3.0,1.0,3.0,10.0,3.0,0.0,2.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,2.0,3.0,1.0,8.0,3.0,8.0,2.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,2.0,0.0,1.0,10.0,4.0,9.0,0.0,17.0,1.0,30.0,22.0,3.0,10.0,16.0,4.0,1.0,1.0
+8.0,0.0,2.0,0.0,4.0,3.0,1.0,2.0,0.0,0.0,3.0,3.0,2.0,2.0,2.0,0.0,4.0,0.0,1.0,2.0,1.0,14.0,0.0,0.0,1.0,6.0,2.0,2.0,2.0,0.0,1.0,1.0,4.0,2.0,1.0,1.0,1.0,1.0,2.0,3.0,0.0,0.0,1.0,2.0,0.0,0.0,2.0,4.0,1.0,0.0
+2.0,2.0,15.0,17.0,4.0,0.0,0.0,1.0,1.0,2.0,5.0,4.0,3.0,6.0,10.0,12.0,13.0,5.0,4.0,0.0,2.0,2.0,0.0,26.0,0.0,2.0,8.0,7.0,1.0,5.0,0.0,4.0,1.0,2.0,0.0,9.0,0.0,1.0,0.0,5.0,1.0,1.0,0.0,2.0,1.0,2.0,5.0,1.0,51.0,13.0
+22.0,2.0,2.0,2.0,2.0,0.0,4.0,6.0,10.0,9.0,2.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,3.0,6.0,3.0,0.0,20.0,3.0,1.0,0.0,15.0,1.0,5.0,1.0,2.0,3.0,7.0,0.0,10.0,1.0,20.0,2.0,0.0,0.0,5.0,0.0,1.0,4.0,5.0,4.0,1.0,0.0
+1.0,1.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,4.0,1.0,0.0,2.0,7.0,4.0,8.0,2.0,3.0,1.0,2.0,1.0,6.0,1.0,1.0,4.0,2.0,1.0,3.0,4.0,0.0,2.0,6.0,2.0,5.0,3.0,3.0,0.0,6.0,0.0,0.0,1.0,1.0,0.0,5.0,5.0,2.0,0.0,0.0
+5.0,3.0,1.0,2.0,0.0,4.0,25.0,9.0,1.0,3.0,1.0,6.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,7.0,1.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,3.0,2.0,2.0,6.0,1.0,1.0,1.0,3.0,0.0,24.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,2.0,1.0,10.0
+1.0,1.0,0.0,4.0,1.0,16.0,1.0,2.0,2.0,5.0,5.0,5.0,1.0,2.0,4.0,0.0,2.0,2.0,1.0,2.0,6.0,4.0,6.0,6.0,4.0,3.0,3.0,9.0,3.0,2.0,2.0,3.0,8.0,1.0,1.0,5.0,0.0,1.0,1.0,2.0,2.0,0.0,2.0,0.0,7.0,2.0,1.0,5.0,4.0,1.0
+42.0,5.0,11.0,7.0,3.0,2.0,1.0,1.0,3.0,4.0,3.0,2.0,0.0,1.0,2.0,2.0,3.0,2.0,2.0,3.0,2.0,1.0,7.0,1.0,1.0,1.0,3.0,1.0,0.0,2.0,3.0,1.0,0.0,1.0,5.0,3.0,2.0,1.0,2.0,1.0,6.0,0.0,0.0,3.0,0.0,2.0,2.0,2.0,0.0,0.0
+0.0,6.0,5.0,2.0,4.0,5.0,2.0,4.0,2.0,0.0,2.0,6.0,1.0,4.0,3.0,0.0,5.0,4.0,2.0,0.0,9.0,7.0,1.0,5.0,4.0,1.0,6.0,3.0,1.0,0.0,1.0,0.0,6.0,0.0,1.0,2.0,0.0,2.0,0.0,2.0,1.0,2.0,0.0,1.0,7.0,1.0,0.0,1.0,15.0,4.0
+3.0,2.0,10.0,0.0,9.0,1.0,7.0,6.0,4.0,1.0,1.0,0.0,4.0,36.0,5.0,13.0,14.0,1.0,3.0,1.0,5.0,9.0,1.0,32.0,0.0,1.0,7.0,2.0,1.0,2.0,0.0,2.0,0.0,4.0,3.0,5.0,1.0,3.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,2.0,21.0,21.0,25.0
+12.0,2.0,2.0,0.0,0.0,1.0,0.0,1.0,11.0,5.0,1.0,1.0,2.0,1.0,0.0,1.0,0.0,2.0,1.0,3.0,1.0,4.0,2.0,0.0,13.0,12.0,6.0,2.0,18.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,4.0,0.0,7.0,0.0,3.0,5.0,3.0,0.0,1.0,2.0,12.0,5.0,2.0,1.0
+4.0,4.0,2.0,9.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,3.0,1.0,0.0,2.0,4.0,1.0,1.0,3.0,1.0,4.0,1.0,4.0,4.0,0.0,7.0,2.0,2.0,1.0,2.0,3.0,5.0,2.0,0.0,0.0,0.0,1.0,16.0,5.0,22.0,8.0,4.0,5.0,4.0,21.0,2.0
+4.0,3.0,1.0,0.0,0.0,0.0,0.0,7.0,1.0,2.0,2.0,1.0,3.0,3.0,0.0,22.0,10.0,14.0,2.0,2.0,2.0,2.0,0.0,7.0,3.0,0.0,9.0,2.0,0.0,1.0,1.0,2.0,0.0,4.0,0.0,3.0,2.0,4.0,0.0,1.0,9.0,6.0,9.0,60.0,2.0,8.0,4.0,6.0,6.0,3.0
+5.0,2.0,2.0,0.0,0.0,3.0,1.0,0.0,0.0,1.0,0.0,4.0,6.0,1.0,1.0,1.0,8.0,10.0,6.0,0.0,4.0,12.0,3.0,5.0,2.0,3.0,0.0,6.0,1.0,2.0,1.0,4.0,3.0,3.0,9.0,7.0,0.0,5.0,0.0,1.0,1.0,0.0,2.0,5.0,0.0,0.0,0.0,5.0,3.0,1.0
+4.0,3.0,0.0,2.0,2.0,3.0,1.0,4.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,3.0,2.0,0.0,0.0,5.0,2.0,6.0,0.0,1.0,0.0,5.0,0.0,2.0,2.0,2.0,15.0,2.0,4.0,5.0,2.0,4.0,1.0,15.0,16.0,11.0,1.0,0.0,19.0,1.0,0.0,1.0,17.0
+1.0,2.0,7.0,2.0,23.0,20.0,2.0,0.0,0.0,0.0,1.0,1.0,9.0,11.0,15.0,7.0,10.0,1.0,1.0,1.0,1.0,7.0,0.0,9.0,1.0,1.0,4.0,3.0,1.0,0.0,2.0,8.0,12.0,5.0,3.0,8.0,0.0,4.0,0.0,8.0,7.0,15.0,5.0,3.0,18.0,2.0,6.0,4.0,3.0,9.0
+0.0,0.0,9.0,1.0,1.0,0.0,5.0,16.0,4.0,4.0,4.0,14.0,32.0,275.0,21.0,47.0,126.0,26.0,2.0,0.0,12.0,11.0,1.0,48.0,0.0,4.0,17.0,20.0,0.0,2.0,3.0,31.0,4.0,9.0,2.0,72.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,26.0,2.0,0.0,0.0,0.0,2.0,3.0
+3.0,1.0,0.0,1.0,3.0,18.0,4.0,17.0,20.0,9.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,1.0,0.0,1.0,1.0,6.0,3.0,2.0,2.0,6.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,2.0,1.0,69.0,2.0,0.0,0.0,15.0,1.0,11.0,2.0,2.0,11.0,0.0,1.0
+5.0,2.0,2.0,5.0,2.0,2.0,3.0,12.0,12.0,1.0,0.0,2.0,1.0,1.0,0.0,0.0,0.0,2.0,2.0,6.0,0.0,2.0,1.0,2.0,3.0,2.0,2.0,1.0,2.0,2.0,1.0,0.0,0.0,0.0,3.0,0.0,3.0,1.0,2.0,5.0,21.0,15.0,3.0,3.0,35.0,36.0,12.0,42.0,4.0,0.0
+3.0,2.0,0.0,6.0,0.0,16.0,0.0,0.0,1.0,0.0,6.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,0.0,0.0,1.0,0.0,24.0,5.0,0.0,2.0,9.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,2.0,197.0,2.0,3.0,2.0,11.0,1.0,0.0,0.0,3.0,6.0,0.0,0.0
+0.0,5.0,18.0,4.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,2.0,2.0,2.0,2.0,4.0,0.0,3.0,0.0,0.0,2.0,1.0,4.0,15.0,1.0,1.0,6.0,3.0,1.0,6.0,0.0,4.0,2.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,6.0,6.0,2.0,7.0,0.0,0.0,3.0,5.0,36.0,27.0
+4.0,2.0,27.0,0.0,11.0,0.0,0.0,0.0,2.0,0.0,20.0,3.0,7.0,76.0,31.0,2.0,84.0,15.0,7.0,0.0,9.0,9.0,0.0,102.0,0.0,19.0,10.0,3.0,2.0,1.0,5.0,92.0,2.0,2.0,4.0,42.0,0.0,35.0,0.0,21.0,0.0,0.0,1.0,4.0,6.0,0.0,0.0,0.0,1.0,5.0
+7.0,17.0,8.0,1.0,2.0,1.0,3.0,2.0,0.0,1.0,1.0,2.0,3.0,5.0,1.0,2.0,0.0,2.0,0.0,0.0,4.0,0.0,5.0,5.0,1.0,1.0,2.0,8.0,1.0,4.0,5.0,3.0,9.0,2.0,0.0,2.0,1.0,0.0,3.0,4.0,1.0,7.0,0.0,0.0,1.0,1.0,0.0,4.0,18.0,10.0
+4.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,22.0,10.0,5.0,3.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,3.0,4.0,5.0,4.0,2.0,18.0,2.0,2.0,1.0,9.0,1.0,0.0,0.0,0.0,2.0,4.0,0.0,27.0,1.0,68.0,1.0,0.0,1.0,8.0,0.0,3.0,1.0,4.0,14.0,2.0,1.0
+0.0,0.0,4.0,0.0,3.0,4.0,0.0,0.0,0.0,5.0,1.0,4.0,4.0,9.0,17.0,6.0,5.0,4.0,3.0,0.0,0.0,4.0,0.0,7.0,1.0,8.0,10.0,0.0,0.0,0.0,0.0,1.0,6.0,5.0,3.0,7.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,1.0,6.0
+4.0,0.0,0.0,0.0,2.0,83.0,2.0,2.0,14.0,19.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,16.0,0.0,8.0,0.0,0.0,5.0,9.0,1.0,1.0,42.0,0.0,2.0,0.0,5.0,1.0,1.0,0.0,5.0,5.0,99.0,2.0,0.0,1.0,21.0,1.0,18.0,0.0,3.0,8.0,0.0,0.0
+0.0,4.0,4.0,4.0,6.0,2.0,15.0,6.0,3.0,2.0,1.0,0.0,11.0,0.0,0.0,1.0,2.0,0.0,4.0,3.0,0.0,0.0,7.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,6.0,1.0,0.0,1.0,0.0,2.0,2.0,1.0,3.0,2.0,4.0,0.0,1.0,2.0,1.0,20.0,0.0,0.0,0.0,1.0
+2.0,2.0,5.0,1.0,1.0,0.0,4.0,0.0,2.0,0.0,2.0,0.0,8.0,2.0,0.0,3.0,5.0,11.0,5.0,0.0,11.0,9.0,2.0,6.0,1.0,1.0,10.0,0.0,2.0,1.0,0.0,3.0,0.0,0.0,0.0,19.0,1.0,2.0,0.0,4.0,5.0,18.0,6.0,2.0,3.0,2.0,1.0,3.0,2.0,1.0
+2.0,1.0,0.0,2.0,2.0,9.0,3.0,0.0,2.0,3.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,2.0,2.0,1.0,11.0,1.0,1.0,0.0,2.0,1.0,0.0,0.0,3.0,2.0,12.0,0.0,9.0,5.0,57.0,0.0,3.0,0.0,1.0,0.0,1.0,0.0,2.0,3.0,1.0,1.0
+16.0,0.0,0.0,0.0,1.0,20.0,3.0,9.0,8.0,40.0,6.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,14.0,4.0,1.0,0.0,0.0,12.0,21.0,3.0,1.0,1.0,4.0,0.0,1.0,3.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,4.0,2.0,1.0,3.0,0.0,0.0,5.0
+1.0,3.0,4.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0,1.0,5.0,1.0,2.0,2.0,2.0,0.0,4.0,3.0,0.0,1.0,4.0,0.0,2.0,2.0,2.0,0.0,3.0,0.0,2.0,4.0,6.0,3.0,4.0,0.0,2.0,1.0,7.0,1.0,0.0,0.0,1.0,3.0,4.0,11.0,2.0,0.0,2.0,2.0
+9.0,4.0,4.0,0.0,1.0,3.0,2.0,4.0,7.0,3.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,2.0,0.0,0.0,3.0,3.0,0.0,1.0,7.0,1.0,0.0,2.0,1.0,0.0,5.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,1.0,1.0,1.0,0.0,2.0
+0.0,0.0,0.0,0.0,2.0,2.0,0.0,9.0,10.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,1.0,0.0,8.0,8.0,0.0,4.0,1.0,0.0,3.0,2.0,3.0,2.0,2.0,11.0,1.0,1.0,2.0,3.0,1.0,5.0,1.0,2.0,2.0,1.0,0.0,2.0,0.0,2.0,2.0,1.0,3.0
+3.0,1.0,13.0,5.0,1.0,1.0,7.0,1.0,0.0,0.0,0.0,0.0,9.0,0.0,4.0,16.0,7.0,5.0,7.0,1.0,0.0,1.0,2.0,5.0,4.0,2.0,2.0,2.0,1.0,2.0,6.0,2.0,1.0,2.0,0.0,7.0,1.0,1.0,3.0,3.0,1.0,2.0,0.0,4.0,1.0,1.0,2.0,1.0,6.0,2.0
+0.0,3.0,2.0,4.0,3.0,1.0,1.0,2.0,1.0,2.0,2.0,1.0,26.0,8.0,6.0,3.0,2.0,2.0,1.0,0.0,1.0,1.0,2.0,10.0,0.0,2.0,4.0,1.0,0.0,2.0,1.0,2.0,0.0,5.0,0.0,5.0,0.0,1.0,0.0,0.0,14.0,116.0,5.0,40.0,7.0,63.0,7.0,0.0,2.0,3.0
+8.0,1.0,2.0,2.0,6.0,1.0,0.0,1.0,1.0,2.0,2.0,5.0,2.0,6.0,1.0,0.0,3.0,5.0,4.0,0.0,6.0,13.0,3.0,14.0,1.0,6.0,3.0,6.0,0.0,0.0,0.0,2.0,1.0,0.0,12.0,1.0,2.0,2.0,4.0,15.0,0.0,3.0,3.0,10.0,0.0,0.0,2.0,3.0,0.0,2.0
+0.0,1.0,3.0,0.0,470.0,3.0,15.0,3.0,13.0,7.0,27.0,9.0,1.0,70.0,17.0,4.0,290.0,11.0,3.0,0.0,37.0,202.0,0.0,146.0,1.0,12.0,8.0,4.0,1.0,0.0,0.0,15.0,36.0,2.0,17.0,49.0,1.0,6.0,0.0,19.0,0.0,0.0,1.0,0.0,22.0,0.0,0.0,2.0,12.0,2.0
+1.0,26.0,3.0,1.0,0.0,0.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,1.0,2.0,5.0,18.0,3.0,1.0,0.0,0.0,1.0,3.0,4.0,0.0,0.0,0.0,3.0,2.0,2.0,6.0,6.0,0.0,41.0,0.0,4.0,1.0,1.0,0.0,0.0,5.0,2.0,2.0,11.0,0.0,46.0,1.0,0.0,3.0,13.0
+1.0,3.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,5.0,1.0,0.0,3.0,0.0,9.0,0.0,0.0,0.0,7.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,14.0,2.0,25.0,1.0,2.0,1.0,0.0,1.0,0.0,56.0,9.0,2.0,1.0,4.0
+19.0,2.0,4.0,3.0,1.0,27.0,9.0,13.0,39.0,32.0,14.0,5.0,0.0,2.0,1.0,4.0,2.0,3.0,1.0,3.0,5.0,3.0,1.0,0.0,0.0,5.0,2.0,3.0,4.0,0.0,1.0,3.0,11.0,2.0,1.0,2.0,2.0,5.0,9.0,13.0,1.0,0.0,0.0,0.0,8.0,0.0,0.0,5.0,0.0,1.0
+1.0,5.0,1.0,4.0,5.0,1.0,11.0,3.0,5.0,2.0,2.0,1.0,1.0,0.0,2.0,4.0,0.0,6.0,1.0,4.0,3.0,1.0,2.0,2.0,1.0,1.0,1.0,0.0,3.0,0.0,0.0,0.0,2.0,3.0,2.0,0.0,3.0,1.0,6.0,2.0,4.0,19.0,4.0,4.0,0.0,7.0,0.0,0.0,0.0,2.0
+8.0,1.0,1.0,0.0,2.0,1.0,3.0,0.0,4.0,0.0,5.0,4.0,2.0,1.0,0.0,2.0,3.0,1.0,8.0,2.0,14.0,17.0,2.0,1.0,1.0,10.0,4.0,0.0,2.0,1.0,1.0,1.0,3.0,0.0,4.0,1.0,1.0,6.0,3.0,0.0,0.0,1.0,3.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0
+0.0,8.0,2.0,2.0,1.0,0.0,0.0,4.0,7.0,3.0,0.0,7.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,5.0,2.0,4.0,6.0,0.0,2.0,1.0,4.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,1.0,5.0,1.0,8.0,6.0,2.0,1.0,0.0,2.0,0.0,10.0,0.0,3.0
+0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,3.0,2.0,8.0,1.0,7.0,0.0,1.0,0.0,5.0,4.0,3.0,6.0,3.0,0.0,1.0,2.0,5.0,0.0,0.0,4.0,0.0,0.0,3.0,5.0,2.0,1.0,2.0,3.0,0.0,3.0,1.0,0.0,4.0,0.0,2.0,2.0,0.0,3.0,0.0,0.0
+0.0,0.0,0.0,0.0,2.0,36.0,1.0,2.0,3.0,3.0,3.0,14.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,6.0,7.0,18.0,3.0,0.0,1.0,3.0,1.0,0.0,1.0,1.0,1.0,0.0,5.0,0.0,5.0,2.0,3.0,7.0,4.0,1.0,0.0,0.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0
+0.0,4.0,0.0,1.0,0.0,2.0,16.0,6.0,4.0,3.0,0.0,0.0,3.0,0.0,1.0,1.0,0.0,1.0,1.0,2.0,0.0,0.0,2.0,0.0,3.0,1.0,4.0,1.0,0.0,2.0,0.0,1.0,0.0,2.0,0.0,0.0,2.0,1.0,4.0,0.0,10.0,10.0,15.0,5.0,0.0,22.0,5.0,1.0,1.0,0.0
+0.0,0.0,0.0,5.0,7.0,1.0,0.0,0.0,1.0,0.0,2.0,3.0,6.0,7.0,2.0,2.0,10.0,1.0,5.0,0.0,11.0,5.0,2.0,10.0,0.0,4.0,0.0,2.0,0.0,3.0,0.0,3.0,6.0,0.0,3.0,1.0,0.0,0.0,0.0,1.0,3.0,3.0,0.0,4.0,7.0,0.0,1.0,7.0,1.0,16.0
+0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,2.0,29.0,11.0,7.0,14.0,84.0,10.0,2.0,0.0,0.0,0.0,1.0,11.0,0.0,2.0,24.0,23.0,1.0,0.0,0.0,18.0,0.0,1.0,0.0,28.0,0.0,2.0,0.0,0.0,0.0,11.0,0.0,17.0,6.0,3.0,2.0,1.0,13.0,6.0
+20.0,0.0,6.0,0.0,0.0,3.0,9.0,8.0,5.0,0.0,2.0,5.0,1.0,5.0,15.0,2.0,7.0,4.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,5.0,3.0,2.0,1.0,1.0,4.0,4.0,10.0,4.0,4.0,0.0,1.0,1.0,2.0,1.0,3.0,0.0,1.0,1.0,1.0,3.0,1.0,3.0,6.0
+0.0,10.0,15.0,4.0,8.0,2.0,4.0,1.0,0.0,1.0,5.0,0.0,4.0,6.0,4.0,4.0,6.0,10.0,3.0,0.0,1.0,4.0,0.0,2.0,1.0,4.0,7.0,14.0,4.0,1.0,1.0,24.0,5.0,1.0,3.0,2.0,0.0,2.0,0.0,2.0,0.0,1.0,1.0,2.0,1.0,0.0,0.0,0.0,4.0,0.0
+1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,4.0,5.0,6.0,3.0,3.0,3.0,1.0,0.0,1.0,3.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,4.0,3.0,14.0,0.0,9.0,0.0,0.0,0.0,5.0
+2.0,6.0,3.0,2.0,0.0,1.0,2.0,5.0,2.0,3.0,8.0,2.0,2.0,0.0,3.0,2.0,3.0,5.0,4.0,5.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,5.0,0.0,0.0,2.0,2.0,1.0,2.0,10.0,11.0,12.0,4.0,11.0,14.0,7.0,3.0,0.0,1.0
+1.0,1.0,5.0,2.0,5.0,9.0,16.0,13.0,2.0,0.0,0.0,0.0,7.0,4.0,2.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,2.0,3.0,1.0,3.0,4.0,3.0,6.0,3.0,3.0,0.0,1.0,0.0,7.0,3.0,2.0,0.0,1.0,0.0,3.0,1.0,8.0,0.0,13.0,4.0,0.0,0.0,0.0
+21.0,0.0,2.0,8.0,0.0,0.0,1.0,0.0,1.0,0.0,3.0,5.0,0.0,2.0,1.0,0.0,1.0,4.0,2.0,3.0,10.0,5.0,1.0,4.0,2.0,2.0,3.0,2.0,1.0,3.0,1.0,2.0,3.0,5.0,4.0,1.0,4.0,1.0,10.0,9.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0
+1.0,0.0,1.0,0.0,22.0,43.0,1.0,6.0,223.0,108.0,3.0,8.0,0.0,0.0,6.0,0.0,1.0,2.0,1.0,5.0,9.0,7.0,0.0,0.0,3.0,12.0,9.0,0.0,1.0,1.0,0.0,2.0,9.0,1.0,3.0,0.0,1.0,6.0,33.0,6.0,0.0,1.0,4.0,0.0,1.0,0.0,1.0,3.0,0.0,0.0
+1.0,0.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,16.0,8.0,1.0,2.0,12.0,0.0,0.0,1.0,2.0,0.0,2.0,7.0,0.0,2.0,1.0,1.0,1.0,0.0,2.0,2.0,1.0,6.0,0.0,20.0,2.0,1.0,1.0,0.0,4.0,7.0,1.0,5.0,0.0,1.0,0.0,0.0,1.0,2.0
+4.0,3.0,1.0,3.0,1.0,1.0,0.0,4.0,2.0,6.0,0.0,5.0,2.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,2.0,2.0,3.0,0.0,4.0,9.0,1.0,0.0,22.0,11.0,4.0,1.0,2.0,6.0,1.0,0.0,2.0,5.0,4.0,1.0,0.0,0.0,4.0,0.0,2.0,10.0,4.0,3.0,2.0,2.0
+1.0,3.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,1.0,1.0,0.0,2.0,4.0,1.0,1.0,11.0,0.0,0.0,1.0,0.0,4.0,0.0,1.0,7.0,2.0,1.0,1.0,24.0,3.0,5.0,22.0,12.0
+1.0,1.0,0.0,14.0,1.0,3.0,2.0,0.0,6.0,3.0,0.0,2.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,69.0,1.0,7.0,3.0,0.0,26.0,3.0,0.0,2.0,3.0,2.0,2.0,0.0,2.0,3.0,1.0,0.0,3.0,0.0,95.0,3.0,4.0,8.0,4.0,0.0,6.0,18.0,41.0,23.0,1.0,4.0
+7.0,0.0,0.0,0.0,4.0,5.0,2.0,1.0,9.0,3.0,0.0,3.0,0.0,4.0,3.0,1.0,2.0,3.0,2.0,1.0,15.0,3.0,1.0,1.0,1.0,11.0,1.0,1.0,6.0,0.0,4.0,0.0,7.0,1.0,10.0,0.0,2.0,2.0,6.0,1.0,2.0,7.0,1.0,2.0,4.0,1.0,2.0,5.0,7.0,8.0
+11.0,36.0,8.0,36.0,1.0,4.0,2.0,6.0,0.0,2.0,1.0,1.0,2.0,1.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,2.0,1.0,13.0,1.0,1.0,3.0,2.0,1.0,5.0,1.0,2.0,0.0,2.0,0.0,9.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,17.0,6.0,1.0,69.0,77.0
+57.0,0.0,0.0,14.0,4.0,73.0,0.0,4.0,63.0,36.0,2.0,3.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,126.0,4.0,28.0,7.0,0.0,16.0,3.0,1.0,0.0,4.0,1.0,1.0,0.0,3.0,1.0,24.0,0.0,11.0,1.0,2781.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0
+16.0,1.0,0.0,2.0,0.0,5.0,1.0,3.0,10.0,19.0,0.0,5.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,8.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,4.0,2.0,5.0,0.0,5.0,0.0,3.0,1.0,1.0,1.0,9.0,2.0,0.0,1.0,1.0,0.0,6.0,1.0,2.0,6.0,1.0,2.0
+3.0,9.0,2.0,0.0,0.0,1.0,3.0,5.0,1.0,1.0,0.0,1.0,1.0,1.0,3.0,4.0,1.0,0.0,1.0,3.0,6.0,2.0,0.0,0.0,1.0,1.0,4.0,6.0,3.0,0.0,1.0,1.0,0.0,4.0,5.0,2.0,12.0,2.0,1.0,1.0,1.0,1.0,10.0,4.0,9.0,2.0,1.0,0.0,0.0,0.0
+0.0,2.0,2.0,3.0,0.0,1.0,0.0,0.0,2.0,0.0,5.0,3.0,4.0,14.0,2.0,1.0,5.0,3.0,4.0,1.0,0.0,1.0,2.0,2.0,1.0,0.0,0.0,2.0,1.0,0.0,1.0,9.0,2.0,2.0,0.0,3.0,3.0,1.0,0.0,2.0,1.0,2.0,1.0,0.0,2.0,2.0,7.0,1.0,4.0,4.0
+0.0,0.0,3.0,0.0,0.0,1.0,5.0,3.0,0.0,1.0,0.0,0.0,6.0,8.0,1.0,4.0,15.0,4.0,3.0,2.0,2.0,0.0,0.0,6.0,4.0,1.0,1.0,1.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,9.0,1.0,2.0,2.0,34.0,1.0,1.0,6.0,1.0
+0.0,3.0,9.0,0.0,5.0,0.0,1.0,2.0,0.0,0.0,0.0,8.0,6.0,29.0,1.0,1.0,3.0,0.0,0.0,0.0,18.0,35.0,2.0,3.0,3.0,2.0,6.0,3.0,1.0,2.0,0.0,1.0,3.0,0.0,2.0,3.0,1.0,2.0,1.0,6.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,13.0,1.0,0.0
+3.0,1.0,5.0,1.0,2.0,1.0,2.0,0.0,10.0,2.0,6.0,2.0,1.0,0.0,2.0,0.0,3.0,1.0,2.0,2.0,4.0,2.0,0.0,3.0,1.0,14.0,3.0,0.0,1.0,2.0,0.0,0.0,3.0,0.0,5.0,0.0,1.0,2.0,3.0,4.0,1.0,0.0,3.0,0.0,6.0,0.0,1.0,1.0,0.0,0.0
+1.0,3.0,13.0,0.0,10.0,0.0,4.0,3.0,18.0,10.0,4.0,0.0,13.0,2.0,7.0,1.0,7.0,1.0,5.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,3.0,1.0,0.0,1.0,1.0,0.0,0.0,2.0,11.0,1.0,4.0,1.0,1.0,2.0,2.0,2.0,5.0,5.0,1.0,1.0,1.0,3.0,0.0
+0.0,0.0,0.0,0.0,6.0,0.0,1.0,0.0,0.0,0.0,1.0,4.0,5.0,6.0,20.0,9.0,1.0,2.0,4.0,0.0,2.0,1.0,1.0,8.0,1.0,0.0,12.0,3.0,0.0,0.0,1.0,4.0,2.0,2.0,0.0,2.0,2.0,7.0,0.0,0.0,0.0,2.0,0.0,3.0,13.0,6.0,0.0,5.0,1.0,4.0
+1.0,12.0,1.0,7.0,7.0,9.0,15.0,23.0,0.0,5.0,2.0,0.0,0.0,0.0,4.0,0.0,1.0,2.0,1.0,5.0,2.0,0.0,1.0,0.0,8.0,0.0,0.0,0.0,0.0,3.0,2.0,1.0,4.0,2.0,3.0,2.0,5.0,1.0,24.0,1.0,5.0,10.0,12.0,8.0,0.0,3.0,11.0,2.0,0.0,2.0
+1.0,0.0,1.0,0.0,3.0,0.0,0.0,0.0,0.0,3.0,0.0,6.0,1.0,7.0,5.0,1.0,3.0,1.0,2.0,0.0,3.0,7.0,2.0,2.0,2.0,4.0,2.0,3.0,1.0,1.0,0.0,5.0,2.0,1.0,5.0,0.0,0.0,12.0,0.0,14.0,1.0,5.0,0.0,1.0,8.0,0.0,1.0,0.0,22.0,6.0
+2.0,18.0,2.0,6.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,0.0,3.0,0.0,0.0,3.0,0.0,3.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,7.0,2.0,0.0,1.0,2.0,2.0,0.0,8.0,1.0,2.0,1.0,0.0,0.0,1.0,2.0,1.0,121.0,8.0,5.0,6.0,13.0
+1.0,1.0,2.0,4.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,3.0,0.0,3.0,2.0,2.0,0.0,11.0,6.0,1.0,4.0,2.0,3.0,3.0,0.0,3.0,6.0,1.0,2.0,3.0,2.0,0.0,2.0,2.0,1.0,1.0,2.0,5.0,2.0,1.0,1.0,1.0,0.0,6.0,8.0,1.0,1.0,3.0,2.0
+9.0,1.0,1.0,1.0,3.0,3.0,0.0,2.0,0.0,5.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,1.0,9.0,0.0,0.0,4.0,0.0,6.0,1.0,0.0,3.0,6.0,4.0,1.0,0.0,7.0,9.0,0.0,1.0,7.0,3.0,33.0,1.0,6.0,8.0,17.0,1.0,3.0,12.0,7.0,2.0,1.0,0.0
+2.0,3.0,11.0,2.0,15.0,0.0,0.0,2.0,1.0,4.0,2.0,5.0,7.0,11.0,5.0,4.0,19.0,10.0,6.0,0.0,5.0,4.0,1.0,0.0,1.0,2.0,1.0,7.0,1.0,0.0,1.0,14.0,10.0,1.0,2.0,4.0,0.0,5.0,0.0,5.0,0.0,1.0,2.0,1.0,4.0,0.0,2.0,1.0,2.0,3.0
+2.0,1.0,40.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,2.0,1.0,6.0,3.0,4.0,6.0,1.0,0.0,3.0,8.0,6.0,15.0,1.0,2.0,5.0,4.0,0.0,1.0,1.0,5.0,2.0,2.0,2.0,4.0,0.0,1.0,0.0,1.0,6.0,14.0,3.0,8.0,5.0,2.0,0.0,0.0,7.0,2.0
+1.0,3.0,5.0,0.0,3.0,2.0,1.0,2.0,2.0,5.0,1.0,5.0,0.0,0.0,0.0,3.0,1.0,0.0,3.0,9.0,2.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,5.0,1.0,7.0,4.0,0.0,0.0,6.0,1.0,11.0,2.0,4.0,1.0,1.0,2.0,0.0,0.0,3.0,6.0,5.0,1.0
+0.0,10.0,14.0,1.0,7.0,1.0,1.0,0.0,0.0,0.0,6.0,0.0,6.0,0.0,4.0,2.0,9.0,6.0,1.0,0.0,4.0,4.0,5.0,2.0,0.0,6.0,3.0,4.0,2.0,1.0,3.0,1.0,2.0,1.0,5.0,18.0,0.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,5.0,4.0
+0.0,5.0,33.0,2.0,2.0,2.0,3.0,1.0,1.0,0.0,3.0,3.0,7.0,70.0,44.0,23.0,51.0,9.0,1.0,0.0,0.0,6.0,0.0,37.0,0.0,2.0,8.0,4.0,1.0,0.0,2.0,47.0,3.0,0.0,3.0,53.0,0.0,4.0,0.0,2.0,0.0,2.0,0.0,5.0,1.0,0.0,1.0,2.0,22.0,3.0
+3.0,2.0,1.0,5.0,0.0,8.0,3.0,0.0,1.0,2.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,3.0,0.0,3.0,1.0,1.0,0.0,8.0,3.0,1.0,0.0,1.0,5.0,2.0,1.0,21.0,2.0,355.0,3.0,1.0,2.0,2.0,0.0,0.0,3.0,4.0,1.0,1.0,0.0
+5.0,0.0,10.0,4.0,4.0,10.0,0.0,0.0,3.0,1.0,3.0,8.0,0.0,0.0,2.0,1.0,1.0,2.0,5.0,7.0,3.0,34.0,1.0,1.0,15.0,15.0,4.0,0.0,8.0,4.0,0.0,5.0,5.0,0.0,4.0,1.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,2.0,3.0,5.0,6.0,3.0,3.0,1.0,1.0,3.0,0.0,7.0,7.0,1.0,2.0,0.0,0.0,0.0,3.0,8.0,5.0,5.0,4.0,1.0,5.0,7.0,7.0,0.0,4.0,7.0,8.0,5.0,0.0,2.0,1.0,1.0,3.0,1.0,2.0,6.0,1.0,1.0,3.0,2.0,0.0,0.0,0.0
+0.0,0.0,7.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,9.0,3.0,3.0,11.0,1.0,3.0,2.0,0.0,6.0,0.0,1.0,2.0,3.0,9.0,2.0,1.0,6.0,5.0,3.0,2.0,2.0,11.0,0.0,3.0,2.0,20.0,1.0,3.0,0.0,4.0,2.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,4.0,2.0
+4.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,5.0,8.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,7.0,0.0,3.0,1.0,0.0,4.0,9.0,1.0,0.0,7.0,0.0,3.0,1.0,3.0,1.0,2.0,2.0,0.0,2.0,14.0,0.0,0.0,0.0,7.0,1.0,2.0,5.0,6.0,4.0,0.0,0.0
+0.0,1.0,3.0,5.0,1.0,2.0,0.0,4.0,0.0,0.0,0.0,1.0,4.0,0.0,12.0,2.0,1.0,3.0,4.0,7.0,3.0,4.0,5.0,3.0,0.0,0.0,4.0,0.0,0.0,1.0,3.0,3.0,2.0,0.0,3.0,4.0,0.0,2.0,1.0,0.0,21.0,3.0,3.0,2.0,0.0,1.0,0.0,1.0,0.0,2.0
+4.0,2.0,0.0,5.0,1.0,14.0,0.0,1.0,28.0,5.0,13.0,4.0,1.0,2.0,0.0,0.0,0.0,0.0,5.0,19.0,2.0,3.0,5.0,1.0,5.0,2.0,0.0,1.0,27.0,10.0,1.0,1.0,0.0,0.0,4.0,0.0,10.0,0.0,103.0,5.0,3.0,0.0,13.0,1.0,6.0,1.0,0.0,3.0,0.0,0.0
+1.0,0.0,0.0,0.0,1.0,1.0,0.0,2.0,4.0,9.0,2.0,5.0,0.0,0.0,0.0,3.0,2.0,5.0,0.0,3.0,0.0,1.0,0.0,2.0,1.0,3.0,2.0,0.0,4.0,1.0,5.0,4.0,7.0,3.0,7.0,3.0,9.0,1.0,5.0,1.0,0.0,1.0,2.0,0.0,4.0,0.0,5.0,2.0,1.0,1.0
+0.0,4.0,3.0,0.0,12.0,0.0,0.0,0.0,3.0,4.0,5.0,0.0,2.0,15.0,2.0,5.0,8.0,7.0,2.0,0.0,3.0,4.0,6.0,14.0,1.0,4.0,9.0,7.0,1.0,9.0,15.0,9.0,3.0,0.0,1.0,21.0,0.0,1.0,1.0,7.0,2.0,13.0,1.0,10.0,2.0,1.0,0.0,2.0,2.0,5.0
+2.0,2.0,7.0,5.0,1.0,1.0,9.0,11.0,0.0,2.0,2.0,2.0,2.0,4.0,3.0,1.0,0.0,3.0,5.0,1.0,8.0,2.0,3.0,16.0,4.0,0.0,2.0,7.0,1.0,1.0,5.0,6.0,1.0,12.0,1.0,5.0,0.0,2.0,0.0,0.0,9.0,0.0,2.0,0.0,3.0,7.0,1.0,0.0,3.0,0.0
+1.0,0.0,8.0,7.0,3.0,1.0,1.0,0.0,2.0,0.0,6.0,0.0,2.0,17.0,4.0,10.0,12.0,12.0,6.0,0.0,4.0,5.0,0.0,13.0,1.0,5.0,29.0,1.0,0.0,4.0,0.0,15.0,1.0,2.0,0.0,4.0,0.0,0.0,1.0,2.0,3.0,4.0,1.0,6.0,4.0,1.0,1.0,1.0,17.0,6.0
+0.0,0.0,0.0,2.0,0.0,1.0,4.0,0.0,1.0,3.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,4.0,1.0,1.0,0.0,0.0,2.0,1.0,1.0,2.0,0.0,2.0,8.0,6.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,4.0,2.0,1.0,55.0,11.0,2.0,1.0,2.0
+2.0,7.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,0.0,9.0,3.0,3.0,1.0,3.0,9.0,5.0,1.0,9.0,2.0,2.0,0.0,1.0,0.0,4.0,6.0,2.0,4.0,1.0,2.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,24.0,2.0,5.0,4.0,5.0,6.0,1.0
+0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,3.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,3.0,0.0,8.0,6.0,11.0,1.0,3.0,2.0,0.0,5.0,2.0,2.0,0.0,5.0,3.0,0.0,0.0,3.0,2.0,0.0,3.0,0.0,3.0,0.0,0.0,2.0,10.0,11.0,6.0,2.0,3.0,1.0,1.0
+54.0,3.0,4.0,2.0,27.0,80.0,2.0,3.0,43.0,39.0,0.0,5.0,0.0,0.0,2.0,0.0,2.0,0.0,1.0,3.0,13.0,37.0,2.0,1.0,27.0,50.0,0.0,0.0,9.0,2.0,1.0,0.0,11.0,0.0,22.0,0.0,5.0,4.0,18.0,2.0,0.0,0.0,3.0,2.0,109.0,0.0,3.0,18.0,0.0,1.0
+0.0,1.0,6.0,5.0,11.0,3.0,7.0,12.0,0.0,4.0,0.0,0.0,4.0,1.0,3.0,0.0,2.0,5.0,5.0,0.0,1.0,2.0,4.0,2.0,0.0,3.0,7.0,3.0,4.0,0.0,0.0,2.0,2.0,2.0,0.0,3.0,0.0,3.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,0.0,2.0
+5.0,2.0,2.0,4.0,0.0,3.0,5.0,5.0,10.0,3.0,9.0,3.0,3.0,1.0,1.0,4.0,1.0,0.0,0.0,1.0,2.0,0.0,2.0,1.0,11.0,7.0,4.0,0.0,9.0,3.0,3.0,0.0,2.0,5.0,2.0,0.0,26.0,1.0,6.0,0.0,3.0,2.0,2.0,0.0,1.0,2.0,7.0,4.0,1.0,3.0
+0.0,1.0,2.0,0.0,4.0,1.0,0.0,0.0,1.0,0.0,3.0,2.0,1.0,6.0,7.0,18.0,9.0,5.0,3.0,0.0,1.0,4.0,1.0,2.0,1.0,2.0,1.0,1.0,0.0,0.0,1.0,2.0,6.0,0.0,3.0,2.0,2.0,4.0,0.0,2.0,3.0,2.0,6.0,33.0,4.0,0.0,1.0,2.0,4.0,4.0
+1.0,1.0,0.0,4.0,1.0,2.0,0.0,1.0,0.0,0.0,3.0,2.0,0.0,2.0,2.0,1.0,0.0,1.0,4.0,1.0,0.0,2.0,1.0,2.0,1.0,0.0,0.0,1.0,1.0,5.0,1.0,2.0,3.0,3.0,2.0,7.0,10.0,1.0,9.0,3.0,2.0,2.0,1.0,6.0,0.0,0.0,1.0,2.0,1.0,1.0
+25.0,1.0,0.0,2.0,13.0,64.0,3.0,0.0,14.0,9.0,17.0,51.0,0.0,5.0,2.0,0.0,0.0,1.0,1.0,24.0,15.0,13.0,3.0,0.0,11.0,0.0,0.0,0.0,11.0,2.0,4.0,0.0,2.0,0.0,26.0,0.0,5.0,6.0,63.0,5.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,11.0,0.0,0.0
+0.0,1.0,5.0,3.0,1.0,5.0,2.0,1.0,2.0,10.0,1.0,0.0,0.0,6.0,5.0,4.0,1.0,2.0,5.0,8.0,5.0,2.0,3.0,2.0,0.0,1.0,1.0,0.0,2.0,4.0,1.0,5.0,3.0,4.0,4.0,6.0,2.0,2.0,3.0,14.0,0.0,0.0,1.0,2.0,7.0,10.0,10.0,17.0,3.0,2.0
+1.0,2.0,4.0,0.0,1.0,6.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,0.0,4.0,3.0,0.0,1.0,3.0,29.0,0.0,3.0,7.0,2.0,9.0,2.0,0.0,0.0,1.0,5.0,2.0,0.0,2.0,2.0,0.0,0.0,10.0,2.0,44.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0
+5.0,25.0,1.0,14.0,0.0,0.0,0.0,4.0,13.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,2.0,2.0,0.0,6.0,0.0,0.0,9.0,0.0,1.0,5.0,1.0,0.0,0.0,3.0,4.0,1.0,1.0,2.0,2.0,1.0,6.0,1.0,5.0,0.0,1.0,2.0,2.0,3.0,1.0,8.0,1.0,3.0,0.0,0.0
+0.0,2.0,4.0,3.0,25.0,7.0,2.0,0.0,3.0,1.0,2.0,2.0,0.0,5.0,10.0,5.0,8.0,2.0,5.0,0.0,17.0,39.0,1.0,7.0,0.0,4.0,4.0,0.0,0.0,1.0,1.0,13.0,6.0,2.0,10.0,8.0,1.0,4.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,5.0,0.0
+1.0,1.0,2.0,3.0,5.0,26.0,0.0,1.0,3.0,2.0,3.0,6.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,5.0,5.0,10.0,0.0,0.0,8.0,6.0,0.0,0.0,2.0,1.0,3.0,1.0,9.0,1.0,7.0,0.0,7.0,2.0,14.0,2.0,3.0,0.0,2.0,0.0,3.0,1.0,3.0,11.0,2.0,6.0
+1.0,1.0,1.0,0.0,6.0,4.0,4.0,2.0,4.0,6.0,0.0,1.0,0.0,2.0,2.0,1.0,2.0,3.0,0.0,1.0,2.0,2.0,2.0,3.0,3.0,4.0,1.0,2.0,1.0,2.0,2.0,3.0,2.0,0.0,13.0,2.0,2.0,7.0,10.0,1.0,0.0,4.0,3.0,0.0,1.0,2.0,2.0,1.0,1.0,0.0
+2.0,6.0,0.0,0.0,2.0,3.0,3.0,7.0,2.0,2.0,1.0,1.0,4.0,5.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,1.0,3.0,0.0,5.0,1.0,0.0,3.0,2.0,18.0,4.0,1.0,1.0,9.0,1.0,0.0,12.0,0.0,10.0,1.0,36.0,27.0,7.0,13.0,0.0,53.0,6.0,6.0,3.0,2.0
+1.0,9.0,4.0,0.0,1.0,0.0,2.0,2.0,1.0,1.0,2.0,1.0,3.0,4.0,1.0,3.0,7.0,2.0,3.0,1.0,3.0,3.0,3.0,6.0,3.0,1.0,2.0,14.0,1.0,4.0,6.0,3.0,3.0,4.0,1.0,6.0,2.0,1.0,0.0,1.0,26.0,3.0,16.0,17.0,5.0,2.0,1.0,1.0,2.0,4.0
+6.0,14.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,6.0,0.0,0.0,12.0,0.0,0.0,2.0,0.0,1.0,1.0,0.0,0.0,0.0,5.0,2.0,2.0,0.0,2.0,2.0,0.0,0.0,8.0,0.0,0.0,12.0,0.0,0.0,4.0,0.0,2.0,2.0,3.0,48.0,1.0,2.0,0.0,8.0,4.0,3.0,1.0,5.0
+0.0,0.0,0.0,0.0,4.0,5.0,0.0,1.0,0.0,1.0,0.0,2.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,2.0,0.0,0.0,0.0,0.0,2.0,3.0,5.0,5.0,4.0,1.0,3.0,0.0,0.0,4.0,2.0,2.0,5.0,4.0,1.0,2.0,8.0,8.0,9.0,6.0,9.0,0.0,0.0,0.0,4.0
+1.0,1.0,2.0,5.0,9.0,0.0,0.0,1.0,6.0,3.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,2.0,3.0,1.0,0.0,1.0,2.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,3.0,1.0,5.0,4.0,0.0,4.0,2.0,4.0,9.0,9.0
+1.0,13.0,2.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,7.0,1.0,0.0,8.0,1.0,0.0,2.0,1.0,0.0,1.0,3.0,2.0,0.0,0.0,1.0,8.0,1.0,0.0,2.0,2.0,0.0,3.0,1.0,1.0,2.0,1.0,1.0,1.0,3.0,1.0,8.0,14.0,0.0,13.0,5.0,9.0,18.0,9.0
+0.0,1.0,7.0,8.0,7.0,1.0,3.0,0.0,0.0,3.0,0.0,2.0,2.0,10.0,1.0,1.0,45.0,0.0,2.0,0.0,0.0,1.0,0.0,9.0,1.0,1.0,25.0,29.0,1.0,17.0,0.0,17.0,4.0,8.0,1.0,28.0,1.0,3.0,1.0,1.0,2.0,1.0,0.0,4.0,0.0,2.0,0.0,0.0,8.0,2.0
+0.0,3.0,1.0,5.0,7.0,1.0,6.0,2.0,2.0,8.0,3.0,5.0,14.0,11.0,0.0,1.0,1.0,5.0,2.0,0.0,5.0,2.0,4.0,13.0,2.0,0.0,1.0,3.0,1.0,4.0,6.0,5.0,1.0,1.0,2.0,4.0,1.0,3.0,0.0,5.0,0.0,2.0,2.0,1.0,2.0,1.0,1.0,1.0,0.0,0.0
+0.0,2.0,1.0,0.0,14.0,4.0,2.0,2.0,4.0,3.0,1.0,1.0,2.0,6.0,6.0,4.0,4.0,13.0,2.0,1.0,3.0,22.0,3.0,8.0,5.0,11.0,7.0,2.0,4.0,0.0,0.0,6.0,1.0,0.0,4.0,4.0,1.0,5.0,0.0,1.0,0.0,2.0,10.0,1.0,5.0,1.0,0.0,1.0,1.0,0.0
+6.0,0.0,0.0,0.0,0.0,6.0,7.0,1.0,1.0,12.0,1.0,1.0,0.0,0.0,0.0,0.0,5.0,8.0,7.0,2.0,1.0,8.0,5.0,2.0,4.0,8.0,0.0,2.0,2.0,2.0,5.0,1.0,3.0,1.0,2.0,1.0,2.0,2.0,7.0,0.0,9.0,5.0,5.0,3.0,13.0,28.0,49.0,18.0,7.0,11.0
+0.0,0.0,3.0,3.0,2.0,0.0,2.0,5.0,2.0,5.0,0.0,2.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,4.0,5.0,2.0,13.0,2.0,12.0,4.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,1.0,4.0,9.0,3.0,9.0,3.0,3.0,31.0,4.0,6.0,6.0,5.0,10.0,1.0,2.0,3.0
+0.0,0.0,5.0,3.0,1.0,0.0,2.0,3.0,0.0,0.0,1.0,1.0,12.0,17.0,17.0,38.0,14.0,9.0,1.0,1.0,0.0,0.0,0.0,10.0,0.0,0.0,3.0,9.0,0.0,3.0,2.0,5.0,0.0,1.0,0.0,89.0,1.0,4.0,0.0,0.0,1.0,8.0,1.0,20.0,0.0,11.0,3.0,0.0,1.0,0.0
+0.0,3.0,2.0,3.0,0.0,0.0,3.0,1.0,3.0,1.0,3.0,1.0,4.0,1.0,1.0,0.0,0.0,0.0,2.0,1.0,1.0,1.0,10.0,2.0,0.0,0.0,1.0,4.0,5.0,4.0,10.0,0.0,0.0,3.0,0.0,2.0,1.0,1.0,2.0,0.0,2.0,1.0,0.0,3.0,0.0,51.0,1.0,0.0,1.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,2.0,2.0,0.0,5.0,4.0,0.0,1.0,2.0,1.0,1.0,1.0,0.0,0.0,1.0,3.0,0.0,0.0,2.0,3.0,2.0,4.0,0.0,1.0,0.0,2.0,0.0,6.0,18.0,7.0,11.0,3.0,6.0,3.0,0.0,8.0,1.0,37.0,10.0,6.0,21.0,11.0
+1.0,0.0,3.0,0.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,0.0,8.0,20.0,7.0,3.0,6.0,1.0,0.0,14.0,6.0,2.0,1.0,0.0,1.0,2.0,2.0,4.0,1.0,1.0,10.0,0.0,2.0,3.0,1.0,1.0,4.0,1.0,4.0,0.0,0.0,2.0,1.0,2.0,1.0,0.0,3.0,0.0,1.0
+1.0,0.0,2.0,4.0,0.0,0.0,2.0,5.0,3.0,17.0,2.0,1.0,0.0,4.0,2.0,1.0,1.0,0.0,1.0,1.0,3.0,8.0,1.0,1.0,6.0,1.0,4.0,1.0,2.0,3.0,2.0,2.0,1.0,2.0,3.0,2.0,2.0,1.0,1.0,1.0,1.0,14.0,4.0,6.0,1.0,0.0,2.0,1.0,11.0,15.0
+1.0,13.0,47.0,0.0,10.0,0.0,5.0,6.0,0.0,1.0,0.0,0.0,56.0,49.0,30.0,75.0,310.0,36.0,5.0,0.0,2.0,0.0,0.0,42.0,0.0,0.0,8.0,8.0,0.0,8.0,13.0,83.0,2.0,6.0,2.0,284.0,0.0,1.0,0.0,2.0,3.0,4.0,0.0,16.0,1.0,4.0,0.0,0.0,18.0,6.0
+1.0,1.0,2.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,1.0,0.0,10.0,3.0,2.0,5.0,1.0,0.0,0.0,5.0,10.0,1.0,1.0,1.0,3.0,2.0,7.0,13.0,6.0,0.0,5.0,0.0,5.0,0.0,1.0,0.0,2.0,2.0,2.0,1.0,4.0,2.0,7.0,4.0,0.0,5.0,1.0
+1.0,7.0,1.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,4.0,2.0,2.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,5.0,1.0,0.0,2.0,7.0,1.0,8.0,2.0,2.0,2.0,1.0,5.0,2.0,3.0,5.0,9.0,1.0,6.0,0.0,6.0,3.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,4.0
+2.0,0.0,2.0,0.0,2.0,9.0,0.0,3.0,33.0,27.0,9.0,1.0,3.0,0.0,1.0,0.0,1.0,1.0,1.0,4.0,4.0,4.0,6.0,2.0,5.0,16.0,4.0,0.0,2.0,0.0,2.0,2.0,12.0,1.0,4.0,0.0,3.0,1.0,12.0,1.0,0.0,0.0,0.0,1.0,3.0,0.0,1.0,2.0,1.0,0.0
+1.0,7.0,0.0,0.0,6.0,2.0,7.0,0.0,13.0,0.0,4.0,3.0,4.0,1.0,4.0,2.0,0.0,7.0,5.0,7.0,0.0,0.0,0.0,0.0,5.0,1.0,1.0,3.0,3.0,3.0,7.0,0.0,2.0,5.0,6.0,0.0,1.0,0.0,3.0,0.0,3.0,2.0,3.0,2.0,5.0,6.0,2.0,1.0,2.0,2.0
+1.0,2.0,0.0,0.0,0.0,1.0,3.0,1.0,5.0,2.0,0.0,0.0,0.0,10.0,4.0,7.0,4.0,3.0,7.0,3.0,0.0,0.0,0.0,5.0,2.0,2.0,2.0,6.0,5.0,26.0,3.0,5.0,7.0,2.0,1.0,2.0,1.0,2.0,2.0,4.0,5.0,10.0,15.0,5.0,3.0,4.0,4.0,15.0,1.0,7.0
+0.0,3.0,3.0,6.0,1.0,1.0,4.0,19.0,4.0,1.0,2.0,0.0,3.0,1.0,0.0,3.0,3.0,0.0,3.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,0.0,10.0,3.0,8.0,2.0,2.0,0.0,1.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,13.0,4.0,4.0,37.0,38.0
+0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,0.0,10.0,0.0,3.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,2.0,1.0,0.0,5.0,1.0,28.0,0.0,1.0,4.0,7.0,1.0,1.0,8.0,11.0,3.0,0.0,3.0
+0.0,0.0,0.0,3.0,1.0,8.0,2.0,0.0,0.0,2.0,6.0,7.0,2.0,0.0,4.0,3.0,5.0,2.0,1.0,2.0,2.0,11.0,3.0,4.0,0.0,0.0,2.0,0.0,1.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,2.0,3.0,1.0,4.0,5.0,2.0,5.0,7.0,8.0,5.0
+1.0,1.0,1.0,2.0,18.0,2.0,1.0,2.0,8.0,4.0,1.0,0.0,3.0,3.0,4.0,10.0,67.0,26.0,1.0,0.0,17.0,5.0,0.0,6.0,0.0,2.0,13.0,10.0,0.0,3.0,0.0,1.0,2.0,2.0,0.0,23.0,0.0,5.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,19.0,11.0
+21.0,11.0,2.0,3.0,4.0,1.0,0.0,0.0,1.0,1.0,0.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,4.0,3.0,1.0,4.0,4.0,1.0,6.0,1.0,1.0,1.0,3.0,1.0,1.0,2.0,2.0,2.0,5.0,9.0,0.0,3.0,10.0,3.0,0.0,1.0,4.0,0.0,2.0,2.0,2.0,5.0
+6.0,3.0,5.0,5.0,4.0,0.0,3.0,1.0,5.0,1.0,5.0,1.0,1.0,5.0,2.0,0.0,0.0,1.0,2.0,1.0,5.0,4.0,4.0,3.0,1.0,2.0,4.0,2.0,1.0,4.0,6.0,3.0,5.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,0.0,1.0,6.0,8.0,1.0,4.0,10.0,2.0,3.0
+0.0,3.0,2.0,1.0,4.0,4.0,4.0,2.0,11.0,1.0,1.0,4.0,1.0,0.0,0.0,1.0,1.0,1.0,4.0,24.0,1.0,0.0,4.0,0.0,13.0,2.0,2.0,5.0,6.0,2.0,2.0,0.0,1.0,0.0,2.0,2.0,5.0,7.0,32.0,2.0,0.0,0.0,2.0,2.0,0.0,2.0,7.0,1.0,1.0,6.0
+5.0,2.0,0.0,1.0,4.0,3.0,8.0,2.0,2.0,2.0,1.0,2.0,2.0,1.0,2.0,1.0,2.0,3.0,2.0,1.0,2.0,2.0,2.0,4.0,2.0,4.0,1.0,5.0,3.0,3.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,5.0,1.0,3.0,4.0,1.0,1.0,2.0,2.0,0.0,10.0,11.0,5.0,4.0
+2.0,0.0,1.0,0.0,30.0,29.0,4.0,20.0,86.0,524.0,4.0,14.0,0.0,18.0,12.0,2.0,2.0,4.0,9.0,4.0,7.0,33.0,1.0,4.0,5.0,2.0,4.0,0.0,1.0,0.0,1.0,1.0,1.0,1.0,37.0,1.0,1.0,1.0,2.0,9.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,8.0,0.0,0.0
+1.0,2.0,0.0,2.0,1.0,5.0,0.0,0.0,4.0,9.0,1.0,3.0,3.0,1.0,2.0,0.0,0.0,2.0,1.0,3.0,0.0,1.0,5.0,1.0,10.0,1.0,1.0,1.0,3.0,1.0,0.0,1.0,1.0,3.0,2.0,0.0,2.0,0.0,13.0,6.0,2.0,2.0,0.0,0.0,0.0,3.0,1.0,1.0,2.0,4.0
+0.0,0.0,0.0,1.0,0.0,1.0,8.0,2.0,0.0,1.0,1.0,0.0,2.0,4.0,3.0,7.0,3.0,0.0,2.0,0.0,8.0,2.0,5.0,9.0,3.0,0.0,8.0,20.0,3.0,9.0,9.0,9.0,0.0,1.0,1.0,10.0,0.0,0.0,0.0,4.0,7.0,9.0,3.0,10.0,3.0,13.0,5.0,1.0,13.0,6.0
+0.0,0.0,6.0,2.0,5.0,0.0,1.0,0.0,5.0,0.0,7.0,1.0,5.0,8.0,2.0,2.0,2.0,0.0,2.0,0.0,0.0,8.0,2.0,6.0,2.0,5.0,7.0,3.0,1.0,2.0,0.0,2.0,2.0,0.0,1.0,2.0,2.0,1.0,0.0,1.0,1.0,1.0,2.0,1.0,5.0,1.0,2.0,4.0,6.0,16.0
+2.0,12.0,1.0,2.0,8.0,0.0,1.0,1.0,1.0,0.0,3.0,10.0,12.0,2.0,0.0,2.0,14.0,7.0,3.0,0.0,1.0,0.0,1.0,3.0,1.0,2.0,1.0,1.0,0.0,1.0,4.0,3.0,3.0,1.0,1.0,15.0,1.0,5.0,0.0,1.0,6.0,15.0,2.0,6.0,0.0,1.0,2.0,0.0,5.0,2.0
+3.0,1.0,0.0,3.0,5.0,37.0,9.0,6.0,1.0,4.0,1.0,8.0,0.0,1.0,5.0,5.0,1.0,2.0,1.0,7.0,0.0,0.0,2.0,0.0,2.0,5.0,1.0,1.0,9.0,0.0,2.0,0.0,6.0,2.0,2.0,2.0,9.0,7.0,46.0,6.0,4.0,2.0,2.0,1.0,1.0,0.0,1.0,2.0,0.0,0.0
+12.0,1.0,1.0,10.0,8.0,131.0,7.0,3.0,101.0,77.0,2.0,11.0,0.0,0.0,2.0,2.0,2.0,0.0,5.0,28.0,0.0,4.0,0.0,0.0,6.0,6.0,0.0,0.0,12.0,1.0,1.0,0.0,1.0,0.0,5.0,0.0,15.0,7.0,142.0,11.0,3.0,0.0,0.0,0.0,2.0,1.0,7.0,11.0,0.0,1.0
+1.0,1.0,0.0,1.0,0.0,2.0,0.0,1.0,1.0,2.0,0.0,1.0,7.0,0.0,3.0,7.0,1.0,2.0,8.0,15.0,1.0,1.0,1.0,0.0,2.0,1.0,0.0,2.0,1.0,6.0,5.0,0.0,0.0,3.0,0.0,0.0,5.0,6.0,75.0,0.0,4.0,0.0,1.0,3.0,2.0,13.0,15.0,12.0,0.0,2.0
+2.0,0.0,0.0,1.0,47.0,23.0,2.0,3.0,11.0,3.0,4.0,6.0,1.0,2.0,7.0,0.0,2.0,3.0,1.0,1.0,9.0,180.0,2.0,13.0,4.0,3.0,3.0,1.0,0.0,0.0,0.0,3.0,11.0,1.0,22.0,1.0,0.0,14.0,4.0,6.0,0.0,0.0,6.0,0.0,14.0,0.0,0.0,29.0,3.0,1.0
+1.0,7.0,6.0,6.0,1.0,12.0,6.0,36.0,4.0,10.0,2.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,8.0,3.0,1.0,19.0,0.0,4.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,4.0,3.0,4.0,0.0,19.0,1.0,51.0,1.0,7.0,5.0,10.0,0.0,0.0,42.0,1.0,1.0,0.0,8.0
+4.0,0.0,4.0,0.0,1.0,2.0,4.0,5.0,2.0,0.0,4.0,2.0,6.0,39.0,13.0,15.0,5.0,6.0,0.0,0.0,0.0,2.0,0.0,4.0,1.0,2.0,14.0,4.0,1.0,0.0,2.0,6.0,2.0,1.0,8.0,16.0,1.0,1.0,0.0,0.0,2.0,10.0,1.0,2.0,2.0,0.0,0.0,0.0,3.0,3.0
+9.0,4.0,0.0,6.0,0.0,11.0,6.0,1.0,6.0,41.0,8.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,2.0,31.0,2.0,2.0,11.0,0.0,57.0,9.0,0.0,1.0,26.0,3.0,3.0,0.0,4.0,4.0,6.0,1.0,17.0,7.0,101.0,0.0,0.0,0.0,4.0,1.0,1.0,0.0,3.0,2.0,0.0,0.0
+4.0,0.0,0.0,4.0,1.0,5.0,4.0,8.0,6.0,15.0,3.0,2.0,1.0,0.0,3.0,0.0,0.0,2.0,2.0,13.0,0.0,6.0,2.0,2.0,6.0,2.0,2.0,0.0,2.0,3.0,1.0,1.0,2.0,4.0,1.0,1.0,10.0,5.0,13.0,1.0,0.0,0.0,3.0,1.0,2.0,1.0,2.0,6.0,0.0,0.0
+1.0,1.0,8.0,1.0,15.0,0.0,2.0,1.0,0.0,1.0,6.0,9.0,4.0,11.0,3.0,5.0,2.0,7.0,6.0,0.0,5.0,16.0,1.0,16.0,1.0,8.0,23.0,2.0,0.0,5.0,4.0,10.0,3.0,1.0,2.0,2.0,0.0,3.0,0.0,2.0,0.0,0.0,2.0,2.0,2.0,0.0,1.0,1.0,7.0,2.0
+1.0,7.0,6.0,3.0,1.0,1.0,3.0,4.0,2.0,5.0,1.0,2.0,8.0,6.0,2.0,2.0,11.0,1.0,2.0,0.0,7.0,0.0,3.0,4.0,0.0,0.0,1.0,1.0,2.0,0.0,0.0,3.0,0.0,5.0,1.0,8.0,0.0,2.0,1.0,0.0,4.0,3.0,1.0,3.0,1.0,29.0,4.0,6.0,17.0,14.0
+2.0,0.0,0.0,1.0,2.0,0.0,0.0,4.0,0.0,2.0,1.0,3.0,8.0,4.0,1.0,1.0,0.0,7.0,4.0,0.0,6.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,0.0,2.0,10.0,1.0,1.0,4.0,0.0,2.0,1.0,1.0,2.0,2.0,2.0,4.0,0.0,1.0,0.0,1.0,1.0,0.0,4.0,1.0
+10.0,10.0,4.0,12.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,2.0,1.0,0.0,0.0,1.0,7.0,2.0,1.0,9.0,0.0,3.0,1.0,0.0,0.0,4.0,6.0,3.0,0.0,0.0,6.0,2.0,3.0,7.0,0.0,83.0,1.0,2.0,7.0,1.0,1.0,2.0,27.0,24.0,8.0,8.0,1.0
+0.0,0.0,1.0,3.0,2.0,3.0,0.0,8.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,0.0,1.0,1.0,3.0,2.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,4.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,2.0,2.0,11.0,2.0,4.0,2.0,4.0,0.0,0.0,3.0,5.0,1.0,3.0,4.0
+0.0,8.0,4.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,7.0,0.0,5.0,2.0,1.0,0.0,4.0,43.0,1.0,36.0,3.0,2.0,4.0,0.0,1.0,0.0,1.0,13.0,3.0,1.0,1.0,16.0,1.0,9.0,0.0,9.0,5.0,1.0,0.0,1.0,4.0,0.0,0.0,3.0,3.0,2.0
+3.0,5.0,2.0,2.0,4.0,0.0,2.0,2.0,0.0,5.0,1.0,0.0,2.0,1.0,2.0,1.0,9.0,1.0,2.0,0.0,17.0,1.0,7.0,4.0,0.0,2.0,11.0,9.0,4.0,6.0,1.0,0.0,3.0,2.0,3.0,3.0,0.0,2.0,1.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,7.0,2.0
+1.0,0.0,1.0,0.0,5.0,3.0,0.0,3.0,10.0,12.0,2.0,4.0,1.0,5.0,5.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,4.0,1.0,2.0,0.0,0.0,0.0,2.0,0.0,2.0,1.0,2.0,0.0,4.0,1.0,5.0,2.0,3.0,6.0,6.0,2.0,2.0,1.0,1.0,0.0,18.0,7.0,5.0,0.0
+0.0,0.0,8.0,1.0,11.0,8.0,5.0,1.0,5.0,3.0,5.0,8.0,12.0,19.0,10.0,5.0,28.0,8.0,2.0,0.0,17.0,13.0,1.0,40.0,3.0,5.0,64.0,19.0,3.0,5.0,0.0,9.0,3.0,2.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,3.0,8.0,1.0,0.0,0.0,1.0,0.0,0.0
+1.0,0.0,4.0,1.0,12.0,2.0,1.0,1.0,1.0,0.0,0.0,3.0,2.0,8.0,5.0,3.0,2.0,2.0,0.0,0.0,12.0,8.0,4.0,2.0,2.0,6.0,3.0,6.0,1.0,2.0,1.0,2.0,0.0,1.0,1.0,10.0,0.0,1.0,0.0,4.0,1.0,1.0,2.0,18.0,18.0,2.0,3.0,2.0,4.0,0.0
diff --git a/pyPLNmodels/data/test_data/cov_test.csv b/pyPLNmodels/data/test_data/cov_test.csv
new file mode 100644
index 00000000..73d4b377
--- /dev/null
+++ b/pyPLNmodels/data/test_data/cov_test.csv
@@ -0,0 +1,201 @@
+0,1
+1.3559074767281298,1.019806676855191
+1.3802310236626807,0.8674155104231632
+-0.23992386036185748,0.5733452916133998
+0.9610286534039378,1.2680011865469352
+-0.5576012688513196,-0.9571713244098666
+-0.7871555986020403,-0.3474943484265752
+-0.1558800184921043,0.5520017415626246
+0.4725567884734372,-0.9137785399099807
+-0.25372993625481427,0.0981861116574053
+0.8235541733171171,1.8452600738590523
+-1.9829122493256273,0.11415588712643322
+-1.764428979838306,2.2032609153998206
+-0.038464981362582605,1.102897119341256
+0.25162247136808813,0.7197998406790596
+1.4376846926507483,1.2306448569790036
+-0.4183783321047721,-0.4496688308231611
+-1.1559455618966072,0.470164842424626
+1.9583125508204617,-1.230118677757657
+0.9834900231193416,0.8409088315994191
+-1.3687084713220103,0.2726177881953798
+-1.3071587169160095,-0.48102425739751575
+-0.22204551408961729,1.9550306799041577
+0.8134640452510316,0.7998026459782699
+-1.9898587903258036,0.4235745856631968
+0.1462840408814835,0.21120439379630646
+-1.700314527848119,-0.1235599105832989
+0.5714940194138023,0.14969129426881278
+0.07495318895160527,0.6396968026979777
+0.9809080415203726,0.3955122164393052
+0.33504116990632554,0.33126017233731125
+-0.46927992096516724,-0.09449852404432448
+-1.7115178838912186,1.089327277435425
+0.6067701184213922,-0.04823597386222898
+0.20711803771100792,-0.18026325007488594
+-0.11064859388988928,1.7467810869417801
+0.10029653489668586,0.5609744724365051
+-1.1332618550384395,0.9392388083959978
+-1.1840682190613643,0.5002200785055604
+-0.006340545469343141,1.0753383003208363
+0.43119899364384934,1.94087175681729
+0.6948637816693791,0.17822333043265257
+1.1114481013486335,0.24689129162311432
+0.12355449383996114,-0.9639502887784991
+-1.4567236564972328,0.20670707005118427
+1.5586523372802332,-0.935354735135854
+-0.07419177590684885,0.21244416667946112
+1.0222763506287407,0.09284688422809341
+-0.03009428868991184,-0.5049958887691217
+0.40958520314124025,-0.22669114559722797
+-0.8929647040310021,-0.9331535937329979
+-0.9611928971816461,-0.32134956943879406
+1.0071936557054308,-0.18441809988976565
+-0.08360794238638539,0.3806019382622602
+-0.9709685274032557,0.611075404411603
+-0.4278978706620747,-0.6737358980623379
+0.4563972098204619,1.7373943431309773
+-1.1856259984572428,-1.3244127376206183
+-2.397211425630472,-0.35663217623527893
+1.3782267329079005,-1.0054733094832586
+0.4655358790049862,-0.4172524006017726
+1.944601396946833,-0.1138862209548849
+-0.9060693337256659,0.7936752896912102
+-2.041243996979223,-1.7332970009546633
+-0.36492221458177493,0.16594938469605397
+1.5585465288337639,-0.8121580500394722
+-1.1403483791579576,-1.0737340546939529
+2.0538561930318373,-1.545942714311468
+0.12155993325075135,1.1157278792670613
+-1.1631499825578087,0.5087291993334376
+1.4228547650001941,-0.8001296979919063
+0.8864677247285909,-0.5899581109180855
+0.34246378987781606,0.29546654617742285
+0.7400018740565691,-0.13281858847165942
+0.5954675082891059,-0.4202073766805439
+-0.4669913562936848,1.1755556719373181
+-0.9828141012463142,1.357609888740107
+-0.27396458548562796,-0.853776900555637
+-2.1951636233547642,-2.6768957646955127
+-0.776003759942644,2.886902006903755
+1.6145472355831556,1.4675756782834797
+0.28486024808526794,-1.6165088873199172
+0.810714064379589,0.8114527807622148
+0.008159088578352116,-0.5938310183568001
+0.9949094162852448,0.28764654843171894
+0.222703740145335,0.021597136647540364
+0.8426015115780771,-1.9418958483586957
+0.5719612011859311,1.2470007520553585
+-0.6391795142923693,-0.9100891609821542
+-2.311536319898315,1.4364696019107153
+-0.5044215286142457,-0.16892569681500239
+-1.1076581246576902,0.07830320464888746
+-0.10005271898491243,0.8183747135006018
+0.08426926359941513,0.9947229205065793
+-0.0780720807907942,0.8273087439605386
+-0.04979632568141242,0.09984804867144363
+0.911259768678697,-2.0644473371916834
+-1.0459234603056595,1.2664619287043475
+0.8097478389754903,0.6550058091232476
+0.16289181468059216,1.2927320564485707
+1.615091662459722,-0.10250524026346854
+0.550529783998591,-1.3832374382040127
+-0.5660440144829453,1.5016245305346851
+2.4963710387422102,-1.843407942799925
+1.3075817035045236,-0.8092978685785945
+-0.03288486987259261,0.0589277310889297
+-0.6171238082078688,0.42173199540383005
+-0.6550829762587007,1.0926938327602183
+-0.5183747547854393,-0.9238077387674661
+0.12588382620784605,-1.1625269758930767
+-0.6436345822193232,0.3305956696048609
+-0.6205488093157978,-0.46054213013438117
+0.839896714468134,0.6347624777362241
+-0.634381599165787,-0.9143267046880282
+0.5174385353608655,1.0435329494388192
+0.2079156592622495,0.29077017033902713
+1.2970897062447158,0.37481415550117425
+-0.8146882588234688,-0.34390886460003
+-1.392218738514852,0.22388352608719025
+0.4834735912624373,0.127508886511524
+-0.9357872322782815,0.3930746472555183
+-2.765844440025104,-0.4590291007575658
+1.5957135396188722,0.028660843199786203
+0.4186608213893951,-1.7794343062716216
+0.5096249436700471,-0.00703043761110977
+-1.0645386985755658,0.6193776902055402
+1.0375385738622769,-0.7054784269929069
+-0.4146690693576732,0.3984401430945382
+1.5098294975489601,-0.9376627435160996
+0.07059725135971474,0.05659574544305933
+-0.9251727176833632,0.20418191128521443
+-0.29780366985653184,0.12516320947240883
+-1.0608676096292917,-0.5345962245786269
+0.8562203757764174,0.8899954375760998
+-1.0734502077895447,0.6301094240192168
+-0.4928871344008367,-0.3475040816066924
+1.2657371294573454,-3.1042973422446036
+-0.23077085334577133,0.292245780159741
+0.8968135157980862,0.07000138094946919
+-0.9783088246992886,-0.7897837622727808
+-0.0740037763280058,0.15808823926753252
+1.2320974393967783,-2.3213680151031695
+0.09193905483404273,-0.5754901523791099
+1.253554611895107,0.07274912701793312
+0.8196222368202167,0.8961248218319151
+-0.5809971108078275,-1.319930480360482
+0.9597851163952509,-1.3616748786420185
+0.28701244415995336,-0.9929151513369444
+0.6063846855576788,0.8953853166608842
+-0.792213878885655,0.8641477528211378
+0.23175159761628186,1.7692519684708168
+-0.10638995830976307,0.7558846142931387
+0.15353828977648526,-0.043945507497743945
+-0.5596337956888708,1.3701271818385365
+-1.5347100368635707,0.556747514646746
+-0.4436364718912172,-0.255387532823429
+-0.8730765378228538,-0.8888938658394483
+0.6467313218730694,-0.4261823010397399
+0.47778687677223536,0.35200894980413927
+-2.1427280673200166,1.516992605410389
+0.2425328165815453,1.268759223367159
+0.18506078984447213,1.5163723011199042
+-0.48669998338493453,-0.713752482706541
+-0.15220423973994918,-0.09359795177275802
+-3.056610876580184,1.2789615846910334
+-0.5298735237126242,1.736437574058803
+-0.6976816444818579,-0.34294616807838674
+0.7778526999246665,-1.4872580464376541
+0.8544461549273433,0.24965122181166022
+0.09823962843699204,-0.19433647312324354
+-0.35775414447947235,1.1838723033675782
+1.4338904659454865,0.2666251698954637
+0.108842119970723,-0.3933628778993958
+-1.6345838785131745,-0.3594717227248294
+-0.03673555951966839,-0.6128281713076887
+-0.03369036493261692,-0.25712943194314397
+0.6649493802778762,0.06780051213628095
+-0.315982175610265,-0.36543488983389716
+-0.41153030326127077,-2.4844687510902657
+0.8750993676558876,-0.1966472737338241
+-0.5756397163695711,0.9355295776552199
+-0.9149553496974743,-0.7800038735603262
+-0.8877916278036952,-0.14616650926009422
+1.0337451952658026,-0.37407611632235105
+1.4307815489499416,-1.8926106269403373
+0.9499788473280603,0.7511949398661918
+0.023581821865852746,-2.912862145974486
+1.1436817611915469,0.8317595369507161
+-1.292668677371475,-0.6395975249929675
+1.9202555667757581,-1.0370076411334104
+0.8329339782395739,-0.27372320177374765
+-0.9845529455983056,-0.910189063475254
+-1.0151424189464442,0.9925821934083514
+-0.22684327073232421,0.7184459113435643
+1.0212160042693121,1.2114842671394452
+0.34501192201724357,0.3189101016295363
+-1.0646077165729873,-1.2810904439833268
+-0.7897784182330162,-0.2563841141027323
+0.7375842831686851,0.07697429827503281
+-1.415124087024629,-1.2901449492168895
+-0.9041247021304609,-0.7034351429958562
diff --git a/pyPLNmodels/data/test_data/true_parameters/true_Sigma_test.csv b/pyPLNmodels/data/test_data/true_parameters/true_Sigma_test.csv
new file mode 100644
index 00000000..b75812e2
--- /dev/null
+++ b/pyPLNmodels/data/test_data/true_parameters/true_Sigma_test.csv
@@ -0,0 +1,51 @@
+0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
+1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.08849480263438086,0.0619463618440666,0.04336245329084662,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.08849480263438086,0.0619463618440666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.08849480263438086,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.08849480263438086,0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0619463618440666,0.08849480263438086,0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.04336245329084662,0.0619463618440666,0.08849480263438086,0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.02789507633970285,0.019526553437791992,0.013668587406454394,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.02789507633970285,0.019526553437791992,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.02789507633970285,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02789507633970285,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.019526553437791992,0.02789507633970285,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013668587406454394,0.019526553437791992,0.02789507633970285,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.030777170814636694,0.02154401957024568,0.015080813699171977,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.030777170814636694,0.02154401957024568,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.030777170814636694,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.030777170814636694,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02154401957024568,0.030777170814636694,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.015080813699171977,0.02154401957024568,0.030777170814636694,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.02900028682090826,0.020300200774635783,0.014210140542245049,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.02900028682090826,0.020300200774635783,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.02900028682090826,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02900028682090826,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.020300200774635783,0.02900028682090826,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014210140542245049,0.020300200774635783,0.02900028682090826,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682,0.07621342872304476,0.053349400106131324,0.03734458007429193
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682,0.07621342872304476,0.053349400106131324
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682,0.07621342872304476
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07621342872304476,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.053349400106131324,0.07621342872304476,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669
+0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03734458007429193,0.053349400106131324,0.07621342872304476,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812
diff --git a/pyPLNmodels/data/test_data/true_parameters/true_beta_test.csv b/pyPLNmodels/data/test_data/true_parameters/true_beta_test.csv
new file mode 100644
index 00000000..71739e47
--- /dev/null
+++ b/pyPLNmodels/data/test_data/true_parameters/true_beta_test.csv
@@ -0,0 +1,3 @@
+0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
+0.6448826815335704,-0.06705148383028246,-0.8059337466502478,0.28726227120809483,-0.45199792848086223,0.7971409275621775,0.03883637439791463,0.0769611700394623,0.35853158191918805,0.6456060985152733,-0.09335034607969787,0.03477162819826891,-0.9488935395444718,-1.3245424031206736,-0.8204276124842371,-0.830581023945339,-1.4864895373433586,-0.7313644655723576,-0.28952541257671166,1.3384060358788183,-0.576796495250778,-0.4615201591849763,0.39147843645088526,-1.2587151615421555,0.8124491288189661,-0.0540064348091781,-0.8600522876730134,-0.5979455262163724,0.6416747561503787,0.013881443629036323,-0.05259187922816363,-1.2369662645067068,-0.003996305797670754,0.061946341550610934,0.10802168996398591,-1.257283955370657,1.2135693886424601,-0.18909103428666854,2.4107843007949517,-0.08137344612650999,0.08612885483187023,-0.31593407498797194,0.5698500847568891,-0.6801624988388716,-0.10046352379404143,0.4737900979029001,0.6732964996086594,0.27919043728578163,-1.0043693971400856,-0.16660361125969386
+-0.1825361663498224,0.6561939377574013,-0.08713411783498594,0.37454658245767186,-0.8184755538842826,-0.811027847003693,0.14656398925870345,0.04634181999477537,-0.6945838730937708,-0.652368414546377,-0.5221643907075153,-0.7442440386062351,0.44537092310581317,-0.3313532930496876,-0.32150797273271986,0.26471361464855475,-0.12039304605334028,0.00885922337520712,-0.13544930358628202,0.022114138228844782,-0.7168062568036008,-1.3011860490924494,0.32559372712736606,-0.37074161440200565,-0.45881981367381414,-0.8178683088030576,-0.3518502660928557,0.2703246278743951,-0.19015000160710324,0.3856590426505826,0.24727271848728993,-0.2273218003212685,-0.5394712689482709,0.6681922368751265,-0.7066869994200711,0.12939891327495456,0.31531280270453,-0.6596119036906076,-0.08138855553916928,-0.5194537340157103,0.5575768569103515,0.6685327721070952,0.11280316160105659,0.5035441552702621,-0.8434094543016583,1.4619847301845788,0.36087975766917896,-0.48538159749890714,0.38075430757133794,0.36949237120558087
-- 
GitLab


From 3fa827d1bf5a3a5346dc57c93d61dac38644e0c8 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 21:35:34 +0200
Subject: [PATCH 11/15] removed data since in module/data

---
 example_data/real_data/Y_mark.csv             | 271 ------------------
 example_data/test_data/O_test.csv             | 201 -------------
 example_data/test_data/Y_test.csv             | 201 -------------
 example_data/test_data/cov_test.csv           | 201 -------------
 .../true_parameters/true_Sigma_test.csv       |  51 ----
 .../true_parameters/true_beta_test.csv        |   3 -
 6 files changed, 928 deletions(-)
 delete mode 100644 example_data/real_data/Y_mark.csv
 delete mode 100644 example_data/test_data/O_test.csv
 delete mode 100644 example_data/test_data/Y_test.csv
 delete mode 100644 example_data/test_data/cov_test.csv
 delete mode 100644 example_data/test_data/true_parameters/true_Sigma_test.csv
 delete mode 100644 example_data/test_data/true_parameters/true_beta_test.csv

diff --git a/example_data/real_data/Y_mark.csv b/example_data/real_data/Y_mark.csv
deleted file mode 100644
index 43c88887..00000000
--- a/example_data/real_data/Y_mark.csv
+++ /dev/null
@@ -1,271 +0,0 @@
-0.0,0.0,0.0,0.0,1.0,3.0,1.0,0.0,2.0,1.0,0.0,1.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,12.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,2.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,1.0,0.0,1.0,5.0,0.0,1.0,0.0,0.0,3.0,2.0,2.0,1.0,2.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,6.0,4.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,1.0,0.0,6.0,5.0,0.0,12.0,0.0,3.0,1.0,1.0,0.0,10.0,2.0,2.0,9.0,2.0,15.0,14.0,0.0,6.0,0.0,8.0,9.0,0.0,0.0,17.0,1.0,0.0,1.0
-4.0,0.0,0.0,0.0,2.0,2.0,0.0,4.0,1.0,1.0,1.0,0.0,0.0,1.0,3.0,2.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,4.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,7.0,0.0,0.0,0.0,3.0,2.0,0.0,7.0,3.0,1.0,0.0,1.0,5.0,0.0,3.0,0.0,0.0,3.0,0.0,2.0,0.0,2.0,1.0,1.0,0.0,3.0,1.0,2.0,0.0,5.0,0.0,10.0,3.0,3.0,0.0,1.0,3.0,4.0,0.0,4.0,3.0,3.0,7.0,7.0,0.0,7.0,1.0,3.0,1.0,0.0,0.0,8.0,0.0,7.0,16.0,8.0,10.0,18.0,1.0,5.0,0.0,7.0,5.0,9.0,0.0,33.0,11.0,0.0,12.0
-0.0,1.0,0.0,4.0,0.0,0.0,1.0,0.0,5.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,3.0,3.0,0.0,0.0,0.0,1.0,5.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,2.0,0.0,3.0,0.0,0.0,6.0,0.0,3.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,3.0,2.0,0.0,6.0,4.0,0.0,7.0,0.0,0.0,5.0,0.0,1.0,1.0,5.0,1.0,8.0,1.0,10.0,5.0,0.0,3.0,0.0,1.0,1.0,8.0,0.0,4.0,0.0,0.0,1.0
-0.0,3.0,0.0,5.0,0.0,7.0,0.0,2.0,3.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,8.0,6.0,1.0,0.0,2.0,0.0,1.0,0.0,5.0,0.0,8.0,1.0,0.0,0.0,2.0,6.0,3.0,1.0,6.0,3.0,0.0,4.0,12.0,0.0,5.0,0.0,0.0,6.0,1.0,3.0,1.0,3.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,23.0,6.0,0.0,0.0,0.0,13.0,3.0,0.0,9.0,13.0,3.0,21.0,1.0,0.0,5.0,1.0,3.0,3.0,0.0,0.0,3.0,2.0,5.0,20.0,0.0,9.0,19.0,0.0,4.0,0.0,4.0,1.0,7.0,0.0,20.0,7.0,0.0,7.0
-0.0,4.0,0.0,1.0,0.0,3.0,0.0,0.0,3.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,1.0,0.0,2.0,4.0,5.0,0.0,2.0,0.0,2.0,0.0,5.0,1.0,5.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,3.0,0.0,2.0,4.0,0.0,0.0,0.0,3.0,0.0,4.0,2.0,1.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,17.0,3.0,3.0,0.0,1.0,1.0,2.0,0.0,2.0,14.0,3.0,4.0,6.0,0.0,3.0,0.0,4.0,1.0,0.0,0.0,3.0,0.0,0.0,13.0,2.0,25.0,6.0,0.0,4.0,0.0,1.0,1.0,10.0,0.0,19.0,5.0,0.0,5.0
-1.0,1.0,0.0,1.0,0.0,6.0,0.0,0.0,1.0,2.0,8.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,4.0,4.0,3.0,0.0,5.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,8.0,0.0,0.0,4.0,15.0,0.0,13.0,0.0,3.0,2.0,0.0,0.0,32.0,0.0,2.0,16.0,1.0,25.0,9.0,0.0,0.0,0.0,1.0,3.0,17.0,0.0,10.0,0.0,0.0,2.0
-1.0,5.0,0.0,4.0,4.0,4.0,7.0,0.0,18.0,0.0,6.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,3.0,1.0,2.0,1.0,10.0,0.0,8.0,7.0,12.0,7.0,0.0,7.0,2.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,3.0,8.0,2.0,0.0,3.0,0.0,0.0,2.0,0.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,6.0,0.0,14.0,10.0,0.0,0.0,4.0,2.0,0.0,22.0,0.0,0.0,16.0,15.0,0.0,21.0,0.0,15.0,7.0,2.0,0.0,54.0,0.0,19.0,11.0,0.0,38.0,7.0,0.0,0.0,0.0,11.0,15.0,29.0,0.0,23.0,4.0,0.0,7.0
-1.0,6.0,0.0,9.0,0.0,2.0,1.0,0.0,11.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,11.0,0.0,0.0,1.0,5.0,6.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,11.0,16.0,1.0,2.0,15.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,1.0,8.0,6.0,0.0,0.0,5.0,3.0,0.0,3.0,14.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,8.0,3.0,2.0,4.0,14.0,0.0,1.0,0.0,4.0,21.0,11.0,0.0,48.0,7.0,0.0,5.0
-5.0,4.0,0.0,10.0,11.0,7.0,10.0,8.0,5.0,7.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,4.0,4.0,1.0,1.0,5.0,7.0,15.0,1.0,7.0,7.0,0.0,0.0,7.0,0.0,4.0,0.0,2.0,11.0,6.0,5.0,5.0,13.0,12.0,0.0,4.0,23.0,0.0,8.0,0.0,6.0,8.0,1.0,5.0,0.0,4.0,0.0,2.0,0.0,0.0,6.0,1.0,0.0,3.0,5.0,11.0,18.0,9.0,0.0,0.0,8.0,4.0,0.0,15.0,10.0,11.0,11.0,9.0,0.0,16.0,0.0,13.0,3.0,0.0,3.0,36.0,6.0,5.0,21.0,4.0,33.0,45.0,1.0,0.0,0.0,36.0,45.0,14.0,0.0,86.0,2.0,0.0,8.0
-0.0,6.0,0.0,6.0,3.0,5.0,2.0,2.0,4.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,5.0,0.0,4.0,11.0,3.0,5.0,3.0,1.0,0.0,5.0,8.0,1.0,1.0,0.0,0.0,15.0,10.0,4.0,0.0,13.0,23.0,0.0,1.0,16.0,0.0,10.0,1.0,1.0,7.0,0.0,12.0,0.0,1.0,0.0,4.0,2.0,1.0,1.0,0.0,0.0,5.0,3.0,4.0,13.0,5.0,0.0,2.0,2.0,3.0,0.0,26.0,5.0,3.0,17.0,22.0,1.0,25.0,0.0,6.0,6.0,0.0,3.0,55.0,4.0,7.0,27.0,1.0,31.0,46.0,2.0,7.0,0.0,5.0,17.0,8.0,0.0,100.0,16.0,0.0,6.0
-0.0,0.0,0.0,2.0,6.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,0.0,6.0,0.0,4.0,2.0,0.0,0.0,3.0,0.0,0.0,8.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,8.0,11.0,0.0,1.0,0.0,0.0,6.0,0.0,0.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,1.0,1.0,0.0,0.0,11.0,3.0,0.0,8.0,8.0,0.0,9.0,10.0,4.0,0.0,2.0,3.0,20.0,1.0,2.0,21.0,0.0,25.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,6.0,0.0,11.0
-1.0,0.0,0.0,4.0,10.0,2.0,1.0,3.0,3.0,4.0,4.0,0.0,0.0,1.0,1.0,2.0,0.0,0.0,1.0,2.0,2.0,0.0,5.0,15.0,0.0,0.0,1.0,6.0,0.0,8.0,6.0,2.0,1.0,5.0,0.0,5.0,13.0,10.0,0.0,1.0,11.0,0.0,2.0,6.0,4.0,19.0,0.0,2.0,7.0,0.0,16.0,0.0,4.0,3.0,0.0,1.0,1.0,2.0,0.0,0.0,0.0,3.0,5.0,5.0,3.0,1.0,1.0,6.0,1.0,0.0,19.0,2.0,2.0,25.0,29.0,0.0,23.0,4.0,9.0,4.0,0.0,3.0,37.0,6.0,6.0,30.0,1.0,63.0,27.0,2.0,0.0,0.0,12.0,16.0,16.0,5.0,65.0,9.0,0.0,6.0
-0.0,4.0,0.0,1.0,0.0,3.0,0.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,1.0,4.0,0.0,0.0,0.0,2.0,3.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,2.0,2.0,13.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,1.0,1.0,2.0,2.0,1.0,13.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,11.0,1.0,11.0,10.0,0.0,6.0,0.0,7.0,0.0,0.0,0.0,0.0,2.0,0.0,15.0,0.0,22.0,7.0,4.0,0.0,0.0,0.0,5.0,6.0,0.0,9.0,2.0,0.0,8.0
-4.0,4.0,0.0,11.0,4.0,11.0,4.0,1.0,8.0,9.0,3.0,1.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,10.0,3.0,7.0,0.0,3.0,0.0,6.0,7.0,0.0,0.0,6.0,1.0,1.0,0.0,2.0,1.0,2.0,0.0,5.0,5.0,0.0,0.0,2.0,1.0,0.0,4.0,0.0,0.0,9.0,3.0,5.0,1.0,0.0,8.0,8.0,0.0,1.0,5.0,0.0,1.0,2.0,13.0,4.0,21.0,5.0,0.0,3.0,2.0,10.0,0.0,10.0,4.0,6.0,8.0,19.0,0.0,12.0,0.0,8.0,6.0,1.0,0.0,32.0,12.0,21.0,12.0,17.0,32.0,10.0,0.0,30.0,0.0,12.0,14.0,18.0,0.0,4.0,16.0,0.0,8.0
-0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,4.0,4.0,1.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,5.0,4.0,0.0,0.0,2.0,1.0,0.0,6.0,0.0,0.0,14.0,9.0,0.0,9.0,0.0,12.0,0.0,0.0,2.0,16.0,1.0,6.0,20.0,0.0,8.0,0.0,0.0,0.0,0.0,1.0,1.0,2.0,0.0,4.0,0.0,0.0,0.0
-0.0,7.0,0.0,0.0,2.0,3.0,0.0,0.0,8.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,2.0,0.0,1.0,1.0,7.0,3.0,3.0,4.0,1.0,8.0,0.0,2.0,1.0,0.0,2.0,5.0,0.0,0.0,2.0,0.0,1.0,9.0,0.0,0.0,5.0,0.0,0.0,10.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,2.0,0.0,6.0,3.0,0.0,0.0,1.0,3.0,0.0,4.0,1.0,0.0,4.0,21.0,0.0,14.0,0.0,19.0,5.0,0.0,0.0,16.0,1.0,19.0,20.0,0.0,11.0,0.0,2.0,4.0,0.0,15.0,22.0,15.0,0.0,0.0,4.0,0.0,2.0
-1.0,2.0,0.0,2.0,1.0,5.0,0.0,0.0,6.0,0.0,4.0,1.0,1.0,0.0,0.0,0.0,6.0,0.0,2.0,0.0,0.0,0.0,11.0,1.0,0.0,4.0,7.0,3.0,0.0,1.0,3.0,1.0,2.0,4.0,0.0,0.0,3.0,0.0,0.0,8.0,4.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,4.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,11.0,3.0,0.0,0.0,1.0,1.0,0.0,7.0,0.0,0.0,14.0,8.0,0.0,7.0,0.0,17.0,2.0,0.0,1.0,6.0,0.0,5.0,14.0,0.0,20.0,17.0,0.0,2.0,0.0,12.0,14.0,15.0,0.0,25.0,1.0,0.0,5.0
-2.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,0.0,3.0,2.0,0.0,2.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,2.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,1.0,1.0,2.0,1.0,2.0,0.0,0.0,3.0,11.0,6.0,1.0,2.0,12.0,0.0,13.0
-8.0,7.0,0.0,6.0,1.0,11.0,3.0,3.0,4.0,16.0,3.0,2.0,0.0,2.0,0.0,9.0,0.0,0.0,5.0,1.0,5.0,8.0,11.0,6.0,2.0,14.0,7.0,8.0,0.0,14.0,11.0,3.0,0.0,28.0,2.0,4.0,8.0,0.0,4.0,7.0,17.0,0.0,7.0,10.0,24.0,2.0,0.0,0.0,29.0,2.0,9.0,4.0,11.0,8.0,8.0,1.0,10.0,2.0,5.0,0.0,8.0,6.0,20.0,25.0,8.0,0.0,2.0,11.0,7.0,0.0,6.0,5.0,10.0,12.0,17.0,0.0,35.0,2.0,32.0,24.0,1.0,3.0,75.0,7.0,40.0,21.0,0.0,8.0,30.0,7.0,32.0,2.0,37.0,23.0,46.0,0.0,116.0,22.0,1.0,19.0
-10.0,14.0,0.0,7.0,1.0,13.0,4.0,4.0,12.0,2.0,13.0,2.0,8.0,4.0,4.0,4.0,0.0,0.0,11.0,6.0,2.0,6.0,18.0,49.0,12.0,21.0,13.0,14.0,0.0,7.0,30.0,7.0,10.0,45.0,11.0,13.0,23.0,0.0,21.0,17.0,34.0,1.0,24.0,13.0,58.0,26.0,0.0,0.0,44.0,14.0,33.0,0.0,29.0,10.0,10.0,3.0,4.0,7.0,3.0,0.0,17.0,16.0,56.0,27.0,17.0,1.0,2.0,36.0,14.0,0.0,17.0,30.0,9.0,13.0,22.0,0.0,38.0,2.0,30.0,39.0,2.0,21.0,28.0,19.0,85.0,38.0,9.0,23.0,79.0,9.0,10.0,0.0,92.0,100.0,106.0,0.0,179.0,30.0,0.0,38.0
-6.0,41.0,0.0,13.0,11.0,18.0,22.0,33.0,10.0,29.0,19.0,8.0,0.0,5.0,1.0,13.0,0.0,0.0,7.0,8.0,4.0,28.0,26.0,28.0,21.0,1.0,23.0,17.0,0.0,14.0,10.0,49.0,12.0,0.0,9.0,53.0,36.0,0.0,7.0,16.0,37.0,0.0,25.0,41.0,0.0,22.0,4.0,0.0,24.0,1.0,29.0,2.0,21.0,14.0,10.0,0.0,15.0,4.0,15.0,0.0,21.0,65.0,70.0,42.0,22.0,0.0,1.0,46.0,31.0,0.0,18.0,35.0,17.0,13.0,32.0,0.0,29.0,3.0,56.0,41.0,4.0,9.0,36.0,26.0,64.0,33.0,19.0,34.0,167.0,3.0,91.0,15.0,87.0,72.0,80.0,1.0,241.0,58.0,6.0,49.0
-9.0,23.0,1.0,18.0,11.0,11.0,15.0,2.0,17.0,26.0,19.0,0.0,0.0,4.0,2.0,10.0,2.0,0.0,0.0,8.0,6.0,2.0,27.0,23.0,7.0,22.0,23.0,28.0,0.0,6.0,5.0,36.0,3.0,0.0,4.0,41.0,35.0,0.0,3.0,20.0,47.0,0.0,8.0,44.0,0.0,25.0,0.0,0.0,20.0,2.0,24.0,0.0,2.0,8.0,1.0,1.0,3.0,7.0,1.0,0.0,5.0,44.0,72.0,44.0,10.0,0.0,0.0,19.0,17.0,0.0,7.0,90.0,5.0,18.0,17.0,0.0,10.0,1.0,30.0,23.0,2.0,0.0,44.0,8.0,29.0,13.0,10.0,24.0,117.0,1.0,25.0,0.0,24.0,69.0,44.0,2.0,215.0,26.0,4.0,28.0
-8.0,27.0,1.0,18.0,37.0,13.0,9.0,11.0,16.0,39.0,22.0,2.0,0.0,13.0,10.0,12.0,2.0,1.0,5.0,5.0,8.0,0.0,29.0,20.0,11.0,0.0,19.0,17.0,1.0,19.0,8.0,67.0,9.0,1.0,4.0,36.0,23.0,0.0,1.0,21.0,36.0,1.0,12.0,61.0,0.0,42.0,0.0,17.0,18.0,10.0,18.0,3.0,7.0,17.0,6.0,1.0,3.0,5.0,6.0,0.0,17.0,65.0,63.0,42.0,19.0,1.0,2.0,21.0,30.0,0.0,21.0,26.0,13.0,15.0,13.0,2.0,21.0,1.0,35.0,43.0,3.0,6.0,28.0,53.0,39.0,31.0,33.0,19.0,176.0,2.0,125.0,0.0,29.0,105.0,67.0,7.0,223.0,58.0,2.0,85.0
-15.0,22.0,0.0,15.0,34.0,1.0,11.0,10.0,18.0,9.0,19.0,4.0,8.0,9.0,1.0,16.0,3.0,3.0,6.0,10.0,19.0,0.0,18.0,25.0,20.0,22.0,12.0,21.0,0.0,18.0,16.0,15.0,7.0,21.0,5.0,8.0,27.0,14.0,13.0,23.0,12.0,9.0,14.0,11.0,1.0,51.0,9.0,29.0,14.0,1.0,33.0,6.0,20.0,9.0,8.0,29.0,16.0,30.0,7.0,1.0,15.0,80.0,15.0,36.0,22.0,9.0,19.0,18.0,48.0,28.0,26.0,30.0,48.0,29.0,38.0,6.0,40.0,10.0,62.0,66.0,16.0,13.0,40.0,69.0,62.0,46.0,40.0,30.0,60.0,65.0,158.0,129.0,59.0,187.0,147.0,138.0,128.0,131.0,4.0,296.0
-5.0,8.0,0.0,11.0,19.0,7.0,12.0,6.0,15.0,6.0,21.0,3.0,0.0,5.0,3.0,13.0,11.0,0.0,0.0,8.0,11.0,6.0,13.0,12.0,13.0,20.0,10.0,17.0,0.0,12.0,5.0,30.0,13.0,1.0,6.0,14.0,10.0,2.0,16.0,13.0,39.0,1.0,9.0,22.0,0.0,27.0,4.0,0.0,14.0,9.0,5.0,7.0,11.0,11.0,8.0,1.0,1.0,11.0,4.0,0.0,24.0,62.0,32.0,17.0,31.0,0.0,7.0,29.0,29.0,3.0,17.0,22.0,9.0,17.0,18.0,2.0,7.0,1.0,29.0,39.0,3.0,3.0,11.0,38.0,34.0,12.0,15.0,14.0,82.0,6.0,151.0,0.0,54.0,116.0,75.0,4.0,172.0,40.0,4.0,35.0
-8.0,23.0,5.0,14.0,4.0,13.0,18.0,5.0,5.0,16.0,21.0,12.0,0.0,13.0,0.0,8.0,16.0,0.0,4.0,7.0,4.0,20.0,22.0,0.0,4.0,2.0,19.0,12.0,0.0,10.0,2.0,20.0,10.0,1.0,16.0,27.0,10.0,1.0,9.0,12.0,37.0,0.0,15.0,35.0,0.0,2.0,14.0,0.0,18.0,9.0,6.0,17.0,13.0,5.0,14.0,0.0,28.0,5.0,18.0,0.0,5.0,44.0,70.0,29.0,18.0,4.0,5.0,32.0,14.0,5.0,21.0,50.0,11.0,12.0,31.0,2.0,16.0,0.0,46.0,22.0,22.0,6.0,6.0,22.0,17.0,26.0,42.0,36.0,128.0,6.0,15.0,2.0,55.0,85.0,36.0,2.0,184.0,41.0,16.0,27.0
-13.0,23.0,17.0,8.0,0.0,4.0,11.0,11.0,10.0,8.0,6.0,8.0,0.0,13.0,1.0,13.0,0.0,75.0,8.0,9.0,9.0,7.0,10.0,0.0,8.0,3.0,13.0,15.0,0.0,12.0,11.0,10.0,11.0,0.0,1.0,3.0,4.0,6.0,6.0,14.0,13.0,2.0,11.0,7.0,0.0,13.0,7.0,5.0,20.0,2.0,8.0,6.0,13.0,6.0,1.0,0.0,18.0,2.0,5.0,0.0,19.0,35.0,13.0,15.0,10.0,2.0,5.0,10.0,10.0,2.0,11.0,25.0,9.0,11.0,15.0,0.0,8.0,4.0,23.0,8.0,5.0,28.0,5.0,26.0,22.0,21.0,24.0,17.0,50.0,7.0,20.0,1.0,60.0,50.0,51.0,3.0,73.0,65.0,6.0,104.0
-12.0,21.0,1.0,15.0,18.0,4.0,4.0,15.0,7.0,12.0,12.0,0.0,1.0,1.0,0.0,2.0,1.0,0.0,6.0,12.0,15.0,1.0,4.0,10.0,10.0,15.0,5.0,9.0,0.0,34.0,9.0,4.0,3.0,3.0,2.0,4.0,31.0,19.0,4.0,11.0,8.0,11.0,8.0,7.0,22.0,36.0,0.0,40.0,18.0,6.0,21.0,9.0,5.0,32.0,1.0,15.0,15.0,7.0,8.0,0.0,25.0,34.0,16.0,59.0,8.0,0.0,5.0,22.0,24.0,21.0,56.0,23.0,29.0,30.0,61.0,10.0,36.0,12.0,92.0,39.0,7.0,22.0,50.0,79.0,36.0,50.0,22.0,79.0,30.0,22.0,21.0,1.0,33.0,66.0,84.0,49.0,80.0,40.0,2.0,117.0
-7.0,1.0,0.0,4.0,1.0,1.0,2.0,3.0,1.0,0.0,1.0,0.0,3.0,0.0,2.0,2.0,0.0,0.0,0.0,3.0,3.0,0.0,6.0,1.0,2.0,7.0,3.0,3.0,0.0,10.0,4.0,1.0,0.0,2.0,0.0,3.0,2.0,8.0,1.0,3.0,2.0,1.0,0.0,4.0,59.0,5.0,1.0,22.0,1.0,3.0,1.0,0.0,4.0,7.0,0.0,6.0,3.0,3.0,0.0,0.0,8.0,11.0,3.0,22.0,4.0,0.0,6.0,4.0,3.0,5.0,18.0,15.0,7.0,9.0,18.0,2.0,12.0,0.0,19.0,11.0,1.0,1.0,0.0,15.0,6.0,14.0,0.0,16.0,19.0,12.0,3.0,0.0,13.0,33.0,18.0,7.0,28.0,10.0,1.0,21.0
-1.0,6.0,0.0,3.0,6.0,1.0,2.0,3.0,3.0,0.0,7.0,0.0,0.0,2.0,0.0,3.0,2.0,0.0,2.0,1.0,0.0,0.0,14.0,5.0,3.0,9.0,6.0,3.0,1.0,8.0,3.0,0.0,3.0,0.0,0.0,0.0,8.0,0.0,1.0,3.0,6.0,0.0,5.0,4.0,0.0,18.0,0.0,1.0,15.0,4.0,6.0,0.0,3.0,3.0,1.0,1.0,5.0,7.0,3.0,0.0,2.0,11.0,1.0,5.0,7.0,0.0,0.0,2.0,8.0,7.0,18.0,0.0,2.0,15.0,10.0,0.0,3.0,0.0,9.0,12.0,0.0,2.0,10.0,16.0,15.0,8.0,3.0,22.0,14.0,15.0,0.0,4.0,5.0,25.0,21.0,2.0,17.0,20.0,104.0,4.0
-2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,3.0,0.0,2.0,0.0,2.0,1.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,2.0,4.0,0.0,4.0,9.0,0.0,2.0,1.0,2.0,4.0,0.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,3.0,1.0,5.0,2.0,1.0,9.0,1.0,4.0,6.0,3.0,1.0,2.0,1.0,5.0,5.0,13.0,1.0,7.0,7.0,14.0,10.0,14.0
-2.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,2.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,4.0,1.0,1.0,3.0,5.0,1.0,1.0,6.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,3.0,0.0,0.0,3.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,2.0,2.0,1.0,0.0,2.0,1.0,0.0,2.0,2.0,1.0,2.0,2.0,1.0,2.0,8.0,1.0,3.0,0.0,6.0,7.0,1.0,1.0,12.0,10.0,6.0,1.0,3.0,1.0,2.0,0.0,2.0,15.0,9.0,10.0,9.0,5.0,6.0,6.0,15.0,11.0
-27.0,12.0,3.0,3.0,7.0,14.0,13.0,16.0,5.0,2.0,16.0,6.0,2.0,5.0,10.0,16.0,10.0,1.0,5.0,18.0,17.0,7.0,18.0,4.0,27.0,16.0,3.0,8.0,0.0,6.0,24.0,9.0,14.0,3.0,8.0,7.0,7.0,15.0,7.0,20.0,11.0,14.0,15.0,8.0,0.0,26.0,8.0,10.0,15.0,57.0,16.0,4.0,25.0,6.0,7.0,15.0,16.0,18.0,14.0,1.0,18.0,24.0,15.0,15.0,31.0,27.0,6.0,29.0,23.0,15.0,20.0,10.0,29.0,20.0,21.0,5.0,31.0,0.0,40.0,41.0,4.0,18.0,14.0,38.0,59.0,38.0,50.0,31.0,62.0,26.0,64.0,71.0,109.0,169.0,152.0,47.0,98.0,71.0,66.0,204.0
-0.0,2.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,1.0,2.0,1.0,1.0,2.0,2.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,4.0,1.0,1.0,2.0,0.0,0.0,2.0,1.0,2.0,1.0,1.0,1.0,3.0,2.0,1.0,2.0,1.0,0.0,0.0,2.0,3.0,4.0,1.0,2.0,3.0,1.0,1.0,1.0,0.0,2.0,2.0,1.0,0.0,1.0,3.0,4.0,1.0,2.0,1.0,3.0,7.0,2.0,1.0,3.0,9.0,6.0,2.0,9.0,11.0,6.0,16.0
-3.0,6.0,0.0,2.0,3.0,4.0,2.0,2.0,3.0,4.0,11.0,0.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,1.0,1.0,1.0,3.0,1.0,6.0,0.0,2.0,4.0,0.0,4.0,1.0,1.0,2.0,1.0,0.0,2.0,5.0,0.0,0.0,0.0,10.0,1.0,3.0,6.0,0.0,18.0,1.0,0.0,6.0,2.0,3.0,1.0,0.0,3.0,3.0,0.0,2.0,4.0,1.0,0.0,5.0,4.0,1.0,18.0,8.0,0.0,1.0,1.0,4.0,0.0,6.0,6.0,6.0,12.0,19.0,1.0,6.0,0.0,16.0,6.0,8.0,0.0,1.0,7.0,8.0,15.0,4.0,8.0,44.0,5.0,6.0,0.0,21.0,30.0,20.0,4.0,13.0,17.0,18.0,16.0
-2.0,2.0,1.0,3.0,2.0,1.0,4.0,4.0,0.0,1.0,1.0,2.0,0.0,1.0,2.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,5.0,2.0,2.0,1.0,2.0,0.0,0.0,2.0,0.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,2.0,6.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,3.0,2.0,0.0,1.0,1.0,3.0,0.0,1.0,0.0,1.0,1.0,3.0,0.0,1.0,3.0,3.0,4.0,4.0,5.0,5.0,2.0,5.0,3.0,4.0,5.0,11.0,1.0,6.0,2.0,5.0,5.0,4.0,5.0,10.0,7.0,8.0,6.0,7.0,6.0,9.0,5.0,9.0,14.0,9.0,8.0,7.0,8.0,19.0,25.0
-13.0,13.0,2.0,4.0,13.0,14.0,7.0,13.0,13.0,3.0,15.0,4.0,20.0,0.0,1.0,10.0,11.0,0.0,12.0,17.0,18.0,1.0,10.0,2.0,11.0,6.0,12.0,16.0,2.0,15.0,9.0,3.0,6.0,8.0,5.0,5.0,12.0,13.0,16.0,8.0,5.0,6.0,16.0,10.0,10.0,3.0,6.0,7.0,6.0,2.0,4.0,10.0,13.0,1.0,8.0,14.0,26.0,19.0,37.0,0.0,11.0,33.0,21.0,22.0,26.0,25.0,21.0,32.0,39.0,50.0,24.0,20.0,18.0,37.0,27.0,16.0,16.0,2.0,56.0,34.0,34.0,17.0,6.0,48.0,65.0,48.0,29.0,39.0,33.0,33.0,64.0,35.0,95.0,146.0,117.0,64.0,80.0,75.0,48.0,215.0
-3.0,2.0,9.0,4.0,0.0,1.0,2.0,11.0,1.0,0.0,3.0,7.0,9.0,4.0,2.0,7.0,1.0,0.0,4.0,12.0,7.0,0.0,2.0,0.0,6.0,2.0,2.0,5.0,2.0,12.0,2.0,1.0,2.0,0.0,7.0,3.0,0.0,1.0,5.0,4.0,9.0,7.0,13.0,6.0,14.0,1.0,9.0,0.0,3.0,4.0,2.0,19.0,12.0,0.0,6.0,9.0,13.0,10.0,10.0,5.0,8.0,17.0,6.0,9.0,9.0,8.0,4.0,3.0,9.0,25.0,19.0,11.0,16.0,16.0,18.0,12.0,7.0,0.0,18.0,20.0,27.0,18.0,7.0,35.0,16.0,13.0,9.0,7.0,17.0,23.0,11.0,13.0,28.0,38.0,60.0,40.0,36.0,28.0,156.0,90.0
-1.0,0.0,2.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,4.0,5.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,5.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,4.0,0.0,2.0,0.0,1.0,1.0,3.0,1.0,0.0,3.0,6.0,0.0,1.0,0.0,1.0,2.0,4.0,0.0,1.0,4.0,3.0,12.0,3.0,0.0,2.0,1.0,1.0,2.0,1.0,1.0,4.0,2.0,6.0,5.0,2.0,7.0,1.0,0.0,5.0,3.0,10.0,9.0,4.0,10.0,55.0,9.0
-0.0,0.0,0.0,2.0,1.0,0.0,0.0,2.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,2.0,0.0,1.0,3.0,1.0,1.0,4.0,1.0,3.0,0.0,0.0,1.0,3.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,4.0,3.0,0.0,0.0,1.0,1.0,7.0,2.0,1.0,2.0,2.0,2.0,1.0,3.0,1.0,3.0,2.0,4.0,2.0,6.0,1.0,3.0,4.0,2.0,3.0,1.0,0.0,8.0,3.0,4.0,8.0,8.0,2.0,2.0,2.0,14.0,10.0,5.0,2.0,7.0,2.0,17.0,16.0
-1.0,1.0,1.0,2.0,0.0,1.0,0.0,0.0,3.0,2.0,0.0,2.0,0.0,1.0,0.0,7.0,2.0,1.0,1.0,0.0,2.0,1.0,6.0,3.0,6.0,1.0,2.0,0.0,1.0,3.0,3.0,0.0,0.0,1.0,1.0,2.0,1.0,1.0,1.0,5.0,5.0,6.0,0.0,1.0,1.0,4.0,2.0,1.0,2.0,2.0,1.0,4.0,4.0,1.0,0.0,0.0,2.0,1.0,1.0,0.0,1.0,1.0,2.0,2.0,3.0,2.0,2.0,3.0,4.0,5.0,6.0,1.0,2.0,14.0,16.0,4.0,3.0,5.0,10.0,5.0,2.0,5.0,1.0,8.0,3.0,20.0,3.0,11.0,5.0,4.0,2.0,3.0,16.0,24.0,10.0,4.0,11.0,14.0,24.0,35.0
-0.0,0.0,2.0,0.0,0.0,1.0,1.0,3.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,2.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,3.0,2.0,0.0,1.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,4.0,1.0,5.0,1.0,5.0,8.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,1.0,1.0,1.0,6.0,0.0,1.0,0.0,5.0,5.0,3.0,0.0,7.0,4.0,4.0,4.0,0.0,3.0,2.0,2.0,5.0,4.0,2.0,6.0,0.0,3.0,6.0,6.0,11.0,5.0,2.0,11.0,54.0,25.0
-1.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,2.0,2.0,3.0,0.0,3.0,0.0,2.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,2.0,3.0,2.0,0.0,1.0,0.0,2.0,3.0,4.0,0.0,0.0,0.0,4.0,0.0,1.0,2.0,2.0,2.0,3.0,1.0,1.0,0.0,3.0,6.0,6.0,2.0,1.0,4.0,5.0,4.0,2.0,1.0,7.0,3.0,3.0,3.0,7.0,9.0,17.0,1.0,3.0,7.0,20.0,11.0
-0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,2.0,2.0,2.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,7.0,1.0,0.0,0.0,2.0,3.0,0.0,1.0,1.0,4.0,0.0,1.0,1.0,2.0,0.0,2.0,1.0,2.0,0.0,1.0,0.0,2.0,4.0,2.0,1.0,1.0,9.0,1.0,0.0,0.0,0.0,4.0,3.0,0.0,6.0,2.0,2.0,3.0,3.0,1.0,10.0,7.0,8.0,4.0,9.0,8.0,16.0,19.0
-9.0,13.0,5.0,6.0,8.0,7.0,5.0,13.0,9.0,1.0,17.0,6.0,28.0,16.0,6.0,17.0,5.0,0.0,3.0,11.0,27.0,6.0,13.0,1.0,10.0,25.0,11.0,13.0,0.0,18.0,19.0,6.0,18.0,7.0,13.0,14.0,7.0,11.0,16.0,15.0,20.0,22.0,14.0,15.0,1.0,36.0,34.0,11.0,6.0,8.0,37.0,38.0,29.0,38.0,15.0,27.0,27.0,26.0,24.0,5.0,17.0,36.0,25.0,42.0,36.0,31.0,16.0,23.0,43.0,91.0,33.0,14.0,43.0,30.0,22.0,37.0,17.0,0.0,51.0,41.0,66.0,33.0,49.0,123.0,80.0,32.0,77.0,41.0,60.0,108.0,57.0,88.0,78.0,150.0,137.0,125.0,135.0,272.0,101.0,376.0
-12.0,4.0,0.0,1.0,4.0,2.0,13.0,15.0,8.0,10.0,7.0,10.0,7.0,1.0,3.0,17.0,2.0,1.0,10.0,10.0,10.0,0.0,10.0,18.0,12.0,11.0,4.0,6.0,1.0,12.0,11.0,4.0,7.0,5.0,4.0,5.0,41.0,13.0,11.0,7.0,11.0,11.0,16.0,5.0,32.0,24.0,2.0,13.0,11.0,6.0,40.0,2.0,8.0,8.0,11.0,12.0,9.0,11.0,14.0,1.0,17.0,26.0,13.0,35.0,28.0,5.0,7.0,19.0,19.0,22.0,15.0,15.0,19.0,18.0,32.0,12.0,19.0,50.0,47.0,32.0,19.0,43.0,12.0,85.0,29.0,26.0,23.0,52.0,23.0,61.0,11.0,15.0,80.0,79.0,59.0,33.0,92.0,101.0,10.0,303.0
-13.0,19.0,17.0,12.0,13.0,4.0,23.0,15.0,10.0,2.0,12.0,13.0,5.0,11.0,3.0,16.0,9.0,4.0,13.0,18.0,21.0,1.0,9.0,18.0,16.0,30.0,12.0,7.0,15.0,31.0,18.0,2.0,13.0,42.0,7.0,3.0,18.0,6.0,16.0,13.0,4.0,23.0,14.0,3.0,2.0,2.0,18.0,4.0,13.0,3.0,16.0,12.0,16.0,16.0,9.0,43.0,30.0,42.0,23.0,1.0,14.0,46.0,3.0,34.0,64.0,10.0,33.0,19.0,47.0,62.0,53.0,9.0,65.0,28.0,45.0,86.0,49.0,11.0,69.0,67.0,60.0,65.0,23.0,38.0,93.0,74.0,145.0,35.0,20.0,114.0,107.0,142.0,61.0,147.0,208.0,132.0,35.0,255.0,188.0,351.0
-2.0,5.0,0.0,3.0,3.0,5.0,5.0,6.0,3.0,7.0,12.0,6.0,6.0,1.0,2.0,4.0,2.0,1.0,0.0,8.0,18.0,1.0,3.0,8.0,3.0,12.0,3.0,1.0,1.0,18.0,3.0,7.0,4.0,0.0,6.0,10.0,8.0,7.0,7.0,8.0,5.0,10.0,1.0,3.0,0.0,6.0,10.0,6.0,6.0,6.0,2.0,4.0,4.0,1.0,2.0,8.0,8.0,10.0,13.0,1.0,3.0,28.0,18.0,13.0,8.0,0.0,2.0,8.0,16.0,18.0,26.0,6.0,28.0,21.0,18.0,15.0,6.0,0.0,26.0,23.0,22.0,35.0,6.0,28.0,27.0,24.0,37.0,12.0,62.0,30.0,48.0,22.0,10.0,78.0,72.0,53.0,83.0,92.0,2.0,190.0
-11.0,10.0,37.0,12.0,12.0,5.0,8.0,7.0,2.0,4.0,10.0,25.0,0.0,19.0,8.0,10.0,5.0,39.0,8.0,11.0,8.0,2.0,8.0,4.0,14.0,4.0,6.0,6.0,1.0,14.0,7.0,9.0,22.0,4.0,27.0,3.0,3.0,8.0,32.0,9.0,10.0,24.0,18.0,5.0,2.0,17.0,19.0,8.0,7.0,13.0,9.0,24.0,22.0,4.0,15.0,10.0,19.0,24.0,27.0,93.0,7.0,26.0,15.0,13.0,23.0,4.0,9.0,16.0,14.0,23.0,48.0,15.0,22.0,12.0,36.0,15.0,23.0,2.0,29.0,33.0,42.0,21.0,17.0,44.0,21.0,48.0,72.0,17.0,14.0,20.0,20.0,81.0,90.0,83.0,66.0,77.0,62.0,100.0,145.0,139.0
-19.0,11.0,5.0,7.0,7.0,3.0,34.0,39.0,7.0,0.0,8.0,20.0,1.0,5.0,93.0,25.0,8.0,9.0,7.0,27.0,25.0,8.0,20.0,6.0,37.0,24.0,10.0,10.0,1.0,20.0,21.0,7.0,18.0,3.0,16.0,10.0,13.0,0.0,20.0,23.0,17.0,49.0,53.0,5.0,0.0,35.0,14.0,0.0,31.0,104.0,28.0,17.0,31.0,3.0,21.0,24.0,29.0,41.0,46.0,2.0,30.0,30.0,17.0,33.0,68.0,10.0,35.0,37.0,72.0,56.0,44.0,26.0,70.0,34.0,56.0,31.0,52.0,7.0,59.0,120.0,46.0,74.0,30.0,100.0,106.0,73.0,127.0,46.0,73.0,210.0,104.0,190.0,199.0,212.0,250.0,120.0,119.0,141.0,159.0,533.0
-8.0,4.0,2.0,5.0,0.0,2.0,7.0,6.0,1.0,9.0,3.0,5.0,0.0,3.0,3.0,8.0,3.0,0.0,10.0,6.0,28.0,1.0,4.0,8.0,6.0,21.0,10.0,6.0,3.0,3.0,13.0,0.0,4.0,0.0,3.0,11.0,11.0,7.0,5.0,9.0,5.0,6.0,9.0,7.0,6.0,9.0,14.0,5.0,5.0,2.0,16.0,14.0,5.0,9.0,8.0,6.0,3.0,22.0,13.0,0.0,8.0,18.0,13.0,20.0,20.0,5.0,9.0,14.0,22.0,29.0,3.0,11.0,35.0,3.0,4.0,16.0,5.0,159.0,11.0,26.0,33.0,53.0,84.0,78.0,43.0,12.0,55.0,7.0,33.0,72.0,57.0,53.0,59.0,72.0,87.0,42.0,46.0,186.0,29.0,358.0
-15.0,16.0,9.0,6.0,8.0,5.0,16.0,15.0,2.0,7.0,2.0,18.0,13.0,20.0,4.0,15.0,5.0,18.0,13.0,11.0,10.0,9.0,10.0,6.0,23.0,20.0,5.0,13.0,0.0,22.0,9.0,0.0,32.0,1.0,13.0,0.0,15.0,12.0,13.0,16.0,2.0,16.0,45.0,6.0,16.0,14.0,3.0,15.0,14.0,7.0,19.0,7.0,10.0,12.0,11.0,14.0,6.0,26.0,15.0,3.0,12.0,29.0,4.0,15.0,39.0,1.0,17.0,38.0,26.0,17.0,41.0,6.0,18.0,19.0,57.0,4.0,33.0,4.0,53.0,39.0,56.0,43.0,82.0,66.0,41.0,37.0,33.0,75.0,14.0,101.0,38.0,190.0,189.0,155.0,81.0,26.0,53.0,109.0,412.0,344.0
-21.0,21.0,1.0,13.0,7.0,6.0,25.0,23.0,11.0,3.0,18.0,15.0,0.0,30.0,3.0,21.0,29.0,1.0,10.0,26.0,31.0,0.0,13.0,4.0,16.0,33.0,20.0,12.0,34.0,23.0,26.0,6.0,16.0,6.0,68.0,11.0,8.0,4.0,30.0,18.0,14.0,22.0,18.0,6.0,8.0,14.0,30.0,13.0,15.0,5.0,20.0,40.0,36.0,6.0,50.0,37.0,34.0,35.0,47.0,1.0,32.0,47.0,18.0,46.0,41.0,22.0,12.0,37.0,56.0,105.0,53.0,31.0,63.0,34.0,52.0,34.0,43.0,1.0,67.0,56.0,126.0,95.0,27.0,113.0,68.0,48.0,139.0,47.0,59.0,131.0,63.0,80.0,118.0,151.0,125.0,130.0,143.0,355.0,333.0,589.0
-9.0,3.0,13.0,1.0,1.0,4.0,9.0,10.0,2.0,5.0,5.0,6.0,0.0,8.0,0.0,7.0,3.0,0.0,10.0,13.0,9.0,0.0,3.0,8.0,11.0,1.0,1.0,2.0,5.0,16.0,4.0,2.0,4.0,1.0,6.0,6.0,0.0,3.0,7.0,7.0,7.0,15.0,11.0,6.0,0.0,5.0,11.0,0.0,9.0,1.0,13.0,11.0,10.0,5.0,6.0,11.0,15.0,12.0,13.0,10.0,7.0,15.0,3.0,10.0,14.0,8.0,5.0,8.0,12.0,26.0,24.0,7.0,27.0,14.0,29.0,14.0,16.0,1.0,51.0,29.0,37.0,32.0,0.0,35.0,35.0,28.0,17.0,32.0,31.0,51.0,67.0,31.0,74.0,64.0,63.0,53.0,49.0,54.0,65.0,136.0
-14.0,21.0,0.0,28.0,30.0,10.0,81.0,12.0,14.0,26.0,15.0,0.0,0.0,5.0,69.0,9.0,0.0,0.0,27.0,28.0,0.0,1.0,31.0,11.0,11.0,7.0,19.0,12.0,0.0,63.0,29.0,1.0,8.0,1.0,3.0,0.0,5.0,0.0,12.0,27.0,1.0,3.0,20.0,0.0,0.0,16.0,3.0,0.0,99.0,95.0,7.0,0.0,9.0,10.0,15.0,1.0,32.0,1.0,3.0,5.0,8.0,93.0,2.0,44.0,24.0,0.0,6.0,17.0,30.0,0.0,47.0,4.0,1.0,47.0,125.0,0.0,65.0,0.0,160.0,39.0,4.0,6.0,66.0,23.0,39.0,111.0,50.0,185.0,9.0,67.0,10.0,4.0,119.0,86.0,97.0,3.0,10.0,43.0,10.0,12.0
-9.0,15.0,0.0,10.0,0.0,3.0,8.0,5.0,3.0,1.0,11.0,4.0,0.0,0.0,1.0,6.0,4.0,0.0,2.0,3.0,14.0,2.0,10.0,3.0,10.0,1.0,9.0,5.0,0.0,15.0,7.0,5.0,12.0,0.0,10.0,0.0,9.0,0.0,6.0,12.0,18.0,0.0,17.0,6.0,1.0,8.0,2.0,0.0,19.0,6.0,10.0,3.0,7.0,5.0,4.0,0.0,2.0,9.0,4.0,0.0,7.0,27.0,16.0,21.0,10.0,0.0,3.0,15.0,36.0,0.0,19.0,26.0,8.0,22.0,24.0,1.0,22.0,5.0,28.0,27.0,2.0,2.0,16.0,54.0,25.0,26.0,3.0,23.0,27.0,0.0,29.0,2.0,64.0,38.0,70.0,1.0,53.0,44.0,0.0,59.0
-2.0,13.0,0.0,9.0,6.0,7.0,4.0,5.0,2.0,0.0,11.0,1.0,0.0,0.0,0.0,5.0,0.0,0.0,1.0,1.0,0.0,0.0,8.0,10.0,5.0,0.0,11.0,6.0,0.0,5.0,1.0,2.0,0.0,0.0,0.0,4.0,4.0,0.0,1.0,8.0,4.0,1.0,2.0,2.0,0.0,5.0,0.0,0.0,2.0,1.0,2.0,0.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,5.0,22.0,9.0,18.0,2.0,0.0,2.0,2.0,15.0,1.0,7.0,3.0,4.0,8.0,8.0,0.0,8.0,0.0,13.0,8.0,0.0,3.0,7.0,2.0,13.0,11.0,1.0,13.0,13.0,0.0,1.0,0.0,16.0,22.0,44.0,1.0,46.0,9.0,0.0,2.0
-9.0,11.0,1.0,4.0,4.0,10.0,10.0,3.0,7.0,12.0,13.0,1.0,0.0,4.0,0.0,5.0,9.0,0.0,8.0,8.0,10.0,12.0,10.0,0.0,17.0,5.0,17.0,6.0,1.0,39.0,4.0,9.0,7.0,0.0,0.0,6.0,22.0,0.0,4.0,11.0,29.0,2.0,6.0,19.0,0.0,29.0,2.0,0.0,6.0,17.0,22.0,0.0,12.0,6.0,6.0,1.0,0.0,22.0,5.0,0.0,13.0,39.0,20.0,28.0,16.0,0.0,1.0,14.0,12.0,2.0,36.0,24.0,9.0,18.0,40.0,0.0,27.0,4.0,51.0,12.0,4.0,8.0,9.0,26.0,24.0,38.0,12.0,40.0,60.0,1.0,36.0,2.0,106.0,40.0,32.0,1.0,101.0,19.0,8.0,44.0
-2.0,2.0,0.0,6.0,0.0,5.0,5.0,0.0,15.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,16.0,0.0,0.0,6.0,2.0,5.0,0.0,6.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,9.0,3.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,16.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,0.0,0.0,4.0,19.0,0.0,24.0,0.0,17.0,3.0,0.0,0.0,24.0,0.0,3.0,26.0,0.0,16.0,11.0,0.0,0.0,0.0,0.0,7.0,4.0,0.0,19.0,5.0,0.0,4.0
-0.0,3.0,0.0,12.0,1.0,8.0,1.0,0.0,14.0,3.0,8.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,1.0,10.0,4.0,0.0,5.0,1.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,7.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,1.0,0.0,0.0,6.0,0.0,0.0,5.0,0.0,0.0,4.0,3.0,0.0,12.0,0.0,4.0,0.0,0.0,0.0,27.0,0.0,4.0,15.0,0.0,8.0,15.0,0.0,0.0,0.0,4.0,2.0,3.0,0.0,17.0,2.0,0.0,1.0
-0.0,2.0,0.0,11.0,1.0,14.0,2.0,0.0,12.0,0.0,13.0,1.0,0.0,0.0,2.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,2.0,17.0,12.0,0.0,6.0,1.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,2.0,11.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,7.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,17.0,9.0,0.0,16.0,0.0,4.0,2.0,0.0,0.0,36.0,0.0,2.0,15.0,0.0,7.0,3.0,0.0,0.0,0.0,3.0,1.0,14.0,0.0,14.0,1.0,0.0,1.0
-1.0,5.0,0.0,9.0,0.0,8.0,1.0,0.0,5.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,3.0,6.0,5.0,0.0,9.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,11.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,6.0,3.0,0.0,6.0,0.0,0.0,4.0,5.0,0.0,16.0,0.0,2.0,0.0,0.0,0.0,11.0,0.0,1.0,7.0,0.0,10.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,12.0,1.0,0.0,0.0
-0.0,7.0,0.0,6.0,0.0,10.0,0.0,0.0,8.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,12.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,6.0,1.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,0.0,5.0,1.0,0.0,1.0,0.0,3.0,2.0,0.0,0.0,9.0,0.0,11.0,3.0,0.0,7.0,5.0,0.0,0.0,0.0,3.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0
-1.0,1.0,0.0,8.0,0.0,10.0,0.0,0.0,14.0,0.0,10.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,2.0,9.0,3.0,0.0,1.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,14.0,0.0,0.0,2.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,6.0,1.0,0.0,5.0
-0.0,9.0,0.0,16.0,0.0,13.0,1.0,0.0,17.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,14.0,0.0,0.0,0.0,11.0,1.0,0.0,6.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,32.0,7.0,0.0,18.0,0.0,12.0,3.0,0.0,0.0,23.0,3.0,3.0,11.0,0.0,12.0,3.0,0.0,0.0,0.0,4.0,1.0,9.0,0.0,19.0,1.0,0.0,1.0
-0.0,3.0,0.0,6.0,1.0,3.0,0.0,0.0,13.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,0.0,9.0,7.0,5.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,9.0,13.0,0.0,25.0,0.0,7.0,0.0,0.0,0.0,25.0,0.0,0.0,24.0,0.0,8.0,3.0,0.0,0.0,0.0,2.0,1.0,3.0,0.0,19.0,0.0,0.0,1.0
-5.0,4.0,0.0,6.0,0.0,15.0,2.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,19.0,2.0,0.0,1.0,6.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,13.0,0.0,11.0,0.0,4.0,0.0,0.0,0.0,11.0,0.0,2.0,8.0,0.0,15.0,3.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,10.0,1.0,0.0,1.0
-1.0,7.0,0.0,6.0,0.0,3.0,0.0,1.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,4.0,9.0,0.0,1.0,1.0,5.0,1.0,1.0,0.0,12.0,0.0,0.0,1.0,6.0,3.0,0.0,0.0,12.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,6.0,5.0,0.0,0.0,0.0,3.0,8.0,0.0,6.0,0.0,0.0,10.0,8.0,0.0,7.0,0.0,8.0,2.0,1.0,0.0,3.0,2.0,7.0,19.0,3.0,14.0,19.0,3.0,0.0,0.0,1.0,6.0,10.0,0.0,24.0,1.0,0.0,6.0
-2.0,3.0,0.0,5.0,0.0,6.0,0.0,0.0,9.0,1.0,7.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,4.0,7.0,0.0,2.0,4.0,10.0,0.0,8.0,4.0,4.0,2.0,0.0,0.0,5.0,0.0,1.0,0.0,2.0,8.0,0.0,0.0,10.0,0.0,1.0,0.0,6.0,1.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,4.0,3.0,7.0,16.0,1.0,1.0,3.0,3.0,0.0,0.0,6.0,1.0,2.0,18.0,20.0,0.0,7.0,0.0,8.0,0.0,0.0,1.0,13.0,5.0,2.0,27.0,0.0,20.0,23.0,0.0,0.0,0.0,1.0,7.0,3.0,0.0,38.0,2.0,0.0,12.0
-0.0,8.0,0.0,7.0,2.0,10.0,0.0,0.0,3.0,0.0,7.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,5.0,0.0,3.0,11.0,6.0,0.0,5.0,1.0,4.0,1.0,0.0,0.0,2.0,0.0,3.0,0.0,8.0,1.0,2.0,0.0,3.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,3.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,4.0,9.0,1.0,0.0,2.0,2.0,1.0,0.0,4.0,0.0,0.0,4.0,10.0,0.0,17.0,0.0,16.0,0.0,2.0,3.0,11.0,1.0,5.0,14.0,1.0,37.0,13.0,0.0,0.0,0.0,1.0,4.0,6.0,0.0,49.0,2.0,0.0,6.0
-0.0,5.0,0.0,4.0,1.0,2.0,1.0,0.0,12.0,0.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,1.0,1.0,5.0,4.0,5.0,0.0,23.0,4.0,0.0,0.0,0.0,0.0,7.0,0.0,2.0,2.0,11.0,4.0,0.0,3.0,10.0,0.0,0.0,0.0,6.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,9.0,5.0,4.0,23.0,0.0,0.0,0.0,2.0,1.0,0.0,12.0,17.0,3.0,31.0,16.0,0.0,19.0,0.0,12.0,3.0,0.0,6.0,30.0,0.0,5.0,20.0,0.0,17.0,17.0,0.0,6.0,0.0,5.0,4.0,8.0,0.0,45.0,4.0,0.0,18.0
-3.0,7.0,0.0,3.0,1.0,16.0,1.0,5.0,12.0,0.0,5.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,16.0,7.0,0.0,4.0,1.0,4.0,0.0,17.0,0.0,2.0,0.0,10.0,0.0,9.0,1.0,2.0,0.0,7.0,12.0,0.0,3.0,13.0,0.0,1.0,2.0,5.0,1.0,0.0,6.0,0.0,3.0,4.0,0.0,4.0,4.0,1.0,0.0,0.0,8.0,4.0,16.0,11.0,1.0,0.0,2.0,4.0,2.0,5.0,12.0,7.0,4.0,15.0,33.0,0.0,34.0,0.0,14.0,10.0,1.0,1.0,40.0,25.0,15.0,40.0,2.0,23.0,28.0,7.0,0.0,0.0,3.0,4.0,16.0,0.0,88.0,4.0,0.0,19.0
-1.0,1.0,0.0,8.0,2.0,13.0,0.0,4.0,9.0,3.0,7.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0,4.0,12.0,0.0,1.0,7.0,3.0,0.0,16.0,6.0,9.0,0.0,0.0,5.0,12.0,1.0,0.0,0.0,12.0,2.0,0.0,0.0,5.0,0.0,3.0,0.0,2.0,0.0,1.0,3.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,9.0,7.0,1.0,0.0,0.0,3.0,4.0,0.0,11.0,9.0,0.0,28.0,48.0,0.0,42.0,0.0,19.0,1.0,0.0,0.0,30.0,1.0,6.0,29.0,0.0,42.0,16.0,0.0,0.0,0.0,10.0,6.0,6.0,0.0,70.0,0.0,0.0,4.0
-2.0,0.0,0.0,3.0,0.0,2.0,2.0,3.0,0.0,0.0,10.0,3.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,6.0,9.0,0.0,2.0,6.0,4.0,0.0,6.0,5.0,1.0,1.0,2.0,0.0,3.0,4.0,1.0,2.0,3.0,1.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,1.0,0.0,4.0,0.0,4.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,7.0,6.0,8.0,0.0,0.0,0.0,2.0,1.0,0.0,8.0,4.0,2.0,9.0,18.0,0.0,9.0,0.0,15.0,6.0,0.0,0.0,27.0,0.0,0.0,3.0,0.0,10.0,31.0,2.0,0.0,0.0,11.0,6.0,17.0,0.0,34.0,1.0,0.0,4.0
-3.0,0.0,0.0,6.0,0.0,8.0,0.0,0.0,3.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,1.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,7.0,12.0,0.0,10.0,0.0,7.0,5.0,0.0,0.0,17.0,0.0,2.0,3.0,0.0,8.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,3.0
-0.0,2.0,0.0,4.0,0.0,3.0,0.0,0.0,5.0,1.0,7.0,0.0,0.0,1.0,0.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,4.0,1.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,11.0,5.0,0.0,16.0,0.0,3.0,0.0,0.0,0.0,18.0,0.0,4.0,14.0,0.0,12.0,3.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,2.0,0.0,0.0,3.0
-1.0,4.0,0.0,2.0,2.0,9.0,1.0,0.0,10.0,0.0,3.0,0.0,0.0,0.0,0.0,2.0,4.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,2.0,10.0,5.0,3.0,0.0,2.0,7.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,6.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,6.0,3.0,15.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,4.0,5.0,0.0,0.0,1.0,6.0,0.0,1.0,1.0,12.0,2.0,8.0,8.0,0.0,4.0,6.0,0.0,0.0,0.0,1.0,1.0,6.0,0.0,17.0,1.0,0.0,1.0
-3.0,9.0,0.0,14.0,2.0,6.0,1.0,2.0,2.0,2.0,7.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,15.0,0.0,1.0,1.0,6.0,8.0,0.0,1.0,5.0,1.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,12.0,0.0,0.0,2.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,1.0,0.0,0.0,2.0,0.0,0.0,8.0,0.0,0.0,17.0,10.0,0.0,2.0,0.0,11.0,5.0,0.0,0.0,18.0,0.0,6.0,10.0,0.0,19.0,4.0,0.0,1.0,1.0,3.0,10.0,14.0,0.0,18.0,1.0,0.0,4.0
-1.0,5.0,0.0,6.0,4.0,2.0,2.0,3.0,7.0,15.0,3.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,4.0,4.0,6.0,1.0,6.0,9.0,0.0,0.0,4.0,12.0,0.0,5.0,13.0,4.0,4.0,0.0,0.0,9.0,15.0,0.0,4.0,8.0,15.0,0.0,1.0,16.0,0.0,4.0,1.0,0.0,11.0,0.0,8.0,3.0,5.0,2.0,3.0,0.0,1.0,1.0,1.0,0.0,3.0,10.0,18.0,15.0,1.0,13.0,4.0,6.0,4.0,0.0,11.0,7.0,2.0,18.0,11.0,0.0,10.0,1.0,12.0,7.0,0.0,5.0,31.0,6.0,18.0,14.0,1.0,30.0,28.0,3.0,45.0,2.0,9.0,24.0,26.0,21.0,64.0,24.0,0.0,18.0
-6.0,11.0,0.0,20.0,16.0,23.0,3.0,2.0,10.0,0.0,10.0,0.0,0.0,2.0,3.0,7.0,4.0,0.0,2.0,0.0,7.0,3.0,21.0,5.0,7.0,8.0,6.0,8.0,0.0,7.0,9.0,4.0,6.0,6.0,2.0,4.0,5.0,0.0,1.0,17.0,16.0,3.0,8.0,17.0,0.0,22.0,0.0,4.0,8.0,4.0,20.0,0.0,4.0,11.0,4.0,0.0,4.0,4.0,0.0,0.0,6.0,12.0,18.0,17.0,1.0,0.0,1.0,22.0,6.0,1.0,12.0,11.0,3.0,42.0,34.0,0.0,19.0,0.0,26.0,21.0,0.0,7.0,32.0,11.0,26.0,61.0,1.0,28.0,34.0,1.0,25.0,0.0,18.0,42.0,46.0,0.0,84.0,27.0,1.0,36.0
-8.0,3.0,0.0,7.0,8.0,6.0,6.0,4.0,18.0,1.0,7.0,1.0,0.0,0.0,1.0,12.0,5.0,0.0,10.0,1.0,6.0,0.0,6.0,13.0,13.0,1.0,10.0,17.0,0.0,0.0,16.0,2.0,5.0,8.0,1.0,7.0,22.0,0.0,10.0,18.0,12.0,2.0,13.0,4.0,0.0,14.0,4.0,0.0,28.0,6.0,15.0,1.0,18.0,5.0,5.0,0.0,4.0,4.0,3.0,0.0,1.0,12.0,11.0,18.0,20.0,0.0,8.0,12.0,7.0,0.0,14.0,23.0,11.0,11.0,27.0,1.0,20.0,10.0,15.0,13.0,3.0,7.0,15.0,27.0,12.0,23.0,20.0,25.0,45.0,4.0,36.0,0.0,87.0,48.0,39.0,0.0,41.0,88.0,0.0,110.0
-2.0,3.0,0.0,8.0,8.0,7.0,3.0,1.0,16.0,6.0,8.0,7.0,0.0,3.0,0.0,5.0,0.0,0.0,0.0,1.0,7.0,2.0,2.0,5.0,5.0,3.0,3.0,4.0,0.0,2.0,5.0,2.0,6.0,0.0,2.0,4.0,9.0,0.0,2.0,6.0,13.0,0.0,2.0,10.0,0.0,8.0,0.0,0.0,2.0,2.0,10.0,2.0,4.0,15.0,1.0,0.0,1.0,5.0,0.0,0.0,2.0,1.0,11.0,11.0,5.0,0.0,0.0,1.0,1.0,0.0,5.0,7.0,2.0,9.0,20.0,0.0,6.0,1.0,17.0,3.0,0.0,0.0,44.0,7.0,15.0,10.0,5.0,27.0,42.0,1.0,16.0,0.0,27.0,13.0,11.0,0.0,45.0,35.0,0.0,8.0
-1.0,18.0,0.0,13.0,22.0,22.0,3.0,7.0,22.0,15.0,11.0,2.0,0.0,3.0,1.0,4.0,5.0,0.0,0.0,0.0,3.0,1.0,16.0,12.0,6.0,11.0,29.0,9.0,1.0,3.0,5.0,6.0,2.0,0.0,1.0,12.0,4.0,0.0,4.0,27.0,15.0,0.0,7.0,17.0,0.0,11.0,3.0,0.0,5.0,9.0,3.0,1.0,5.0,4.0,1.0,0.0,4.0,1.0,2.0,0.0,5.0,22.0,29.0,34.0,3.0,0.0,0.0,10.0,3.0,0.0,12.0,14.0,7.0,25.0,19.0,0.0,10.0,1.0,33.0,9.0,1.0,1.0,28.0,3.0,6.0,28.0,5.0,17.0,52.0,2.0,4.0,0.0,23.0,47.0,33.0,0.0,70.0,19.0,1.0,17.0
-5.0,11.0,0.0,12.0,19.0,8.0,5.0,6.0,8.0,6.0,7.0,1.0,0.0,6.0,2.0,0.0,4.0,0.0,3.0,1.0,11.0,1.0,16.0,9.0,3.0,16.0,16.0,14.0,0.0,5.0,11.0,15.0,2.0,0.0,7.0,30.0,31.0,7.0,1.0,17.0,36.0,0.0,2.0,25.0,1.0,18.0,0.0,12.0,10.0,5.0,17.0,6.0,4.0,7.0,2.0,0.0,6.0,7.0,2.0,0.0,6.0,13.0,40.0,25.0,9.0,0.0,5.0,10.0,8.0,0.0,13.0,14.0,7.0,19.0,25.0,0.0,9.0,1.0,22.0,10.0,1.0,1.0,63.0,16.0,23.0,21.0,22.0,46.0,89.0,5.0,18.0,0.0,22.0,45.0,61.0,0.0,125.0,40.0,0.0,30.0
-8.0,8.0,0.0,22.0,15.0,21.0,14.0,3.0,12.0,8.0,13.0,1.0,0.0,0.0,0.0,9.0,8.0,0.0,7.0,5.0,9.0,0.0,14.0,26.0,0.0,27.0,9.0,21.0,0.0,9.0,19.0,9.0,12.0,0.0,4.0,18.0,18.0,5.0,7.0,20.0,23.0,1.0,8.0,27.0,0.0,23.0,0.0,26.0,40.0,9.0,22.0,0.0,7.0,8.0,6.0,3.0,1.0,11.0,0.0,0.0,14.0,14.0,41.0,34.0,19.0,0.0,2.0,10.0,14.0,0.0,12.0,34.0,12.0,10.0,21.0,0.0,14.0,0.0,26.0,21.0,4.0,10.0,144.0,21.0,46.0,16.0,4.0,45.0,100.0,0.0,68.0,0.0,31.0,43.0,45.0,0.0,152.0,35.0,0.0,57.0
-0.0,3.0,0.0,6.0,3.0,8.0,1.0,2.0,3.0,1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,3.0,9.0,0.0,2.0,6.0,4.0,1.0,0.0,1.0,1.0,3.0,1.0,0.0,5.0,10.0,1.0,0.0,0.0,7.0,10.0,0.0,1.0,5.0,0.0,0.0,1.0,0.0,4.0,5.0,2.0,0.0,1.0,2.0,9.0,0.0,1.0,2.0,1.0,0.0,2.0,2.0,12.0,22.0,5.0,0.0,0.0,7.0,1.0,0.0,2.0,5.0,1.0,10.0,6.0,0.0,1.0,0.0,9.0,4.0,1.0,3.0,6.0,1.0,6.0,7.0,4.0,10.0,29.0,0.0,3.0,0.0,8.0,14.0,17.0,0.0,40.0,20.0,0.0,14.0
-5.0,4.0,0.0,8.0,9.0,8.0,1.0,3.0,15.0,15.0,5.0,5.0,0.0,1.0,2.0,5.0,9.0,0.0,8.0,3.0,3.0,0.0,6.0,6.0,10.0,7.0,5.0,7.0,0.0,2.0,7.0,3.0,15.0,0.0,3.0,9.0,10.0,0.0,1.0,11.0,8.0,0.0,8.0,7.0,0.0,12.0,10.0,0.0,12.0,0.0,4.0,3.0,6.0,19.0,9.0,0.0,4.0,6.0,2.0,0.0,5.0,12.0,20.0,14.0,4.0,0.0,3.0,3.0,1.0,0.0,4.0,3.0,5.0,10.0,15.0,1.0,5.0,2.0,12.0,11.0,3.0,12.0,13.0,14.0,17.0,14.0,8.0,24.0,57.0,13.0,18.0,0.0,39.0,48.0,35.0,0.0,79.0,83.0,0.0,28.0
-1.0,9.0,0.0,15.0,1.0,7.0,4.0,1.0,12.0,1.0,3.0,5.0,0.0,1.0,2.0,5.0,8.0,0.0,6.0,2.0,2.0,4.0,10.0,1.0,6.0,3.0,8.0,2.0,0.0,5.0,8.0,0.0,11.0,0.0,5.0,1.0,0.0,0.0,4.0,15.0,0.0,3.0,7.0,2.0,2.0,0.0,0.0,0.0,23.0,2.0,1.0,0.0,9.0,28.0,28.0,0.0,8.0,1.0,2.0,0.0,7.0,4.0,11.0,2.0,9.0,0.0,1.0,12.0,3.0,1.0,3.0,2.0,5.0,12.0,23.0,0.0,7.0,0.0,8.0,5.0,3.0,4.0,52.0,9.0,27.0,18.0,15.0,11.0,15.0,6.0,4.0,12.0,49.0,12.0,29.0,0.0,26.0,39.0,98.0,24.0
-1.0,3.0,0.0,2.0,1.0,8.0,3.0,0.0,11.0,0.0,2.0,4.0,0.0,0.0,0.0,4.0,2.0,0.0,2.0,4.0,0.0,3.0,5.0,10.0,4.0,3.0,7.0,5.0,0.0,1.0,8.0,1.0,8.0,0.0,10.0,3.0,2.0,0.0,5.0,9.0,1.0,2.0,2.0,0.0,0.0,3.0,11.0,0.0,17.0,0.0,3.0,0.0,9.0,5.0,23.0,0.0,6.0,0.0,0.0,0.0,4.0,5.0,6.0,9.0,2.0,0.0,4.0,2.0,2.0,4.0,4.0,1.0,1.0,4.0,4.0,0.0,6.0,0.0,12.0,13.0,1.0,0.0,109.0,6.0,10.0,14.0,17.0,13.0,5.0,2.0,13.0,29.0,12.0,16.0,26.0,0.0,15.0,31.0,120.0,29.0
-2.0,7.0,0.0,1.0,1.0,5.0,1.0,7.0,6.0,9.0,3.0,1.0,0.0,2.0,4.0,0.0,0.0,0.0,2.0,2.0,2.0,2.0,3.0,6.0,6.0,1.0,11.0,6.0,0.0,3.0,15.0,3.0,0.0,0.0,1.0,9.0,7.0,0.0,2.0,9.0,10.0,1.0,8.0,14.0,0.0,8.0,1.0,4.0,9.0,8.0,10.0,0.0,7.0,12.0,1.0,0.0,4.0,3.0,0.0,0.0,11.0,11.0,12.0,22.0,4.0,0.0,12.0,15.0,6.0,0.0,3.0,9.0,2.0,19.0,4.0,0.0,4.0,0.0,17.0,17.0,0.0,5.0,22.0,5.0,21.0,15.0,1.0,13.0,48.0,5.0,18.0,11.0,49.0,32.0,49.0,0.0,60.0,17.0,0.0,22.0
-5.0,5.0,0.0,16.0,6.0,25.0,6.0,12.0,16.0,10.0,5.0,0.0,0.0,2.0,1.0,3.0,0.0,0.0,0.0,3.0,4.0,24.0,19.0,13.0,5.0,24.0,13.0,13.0,0.0,4.0,23.0,5.0,3.0,0.0,0.0,6.0,18.0,2.0,3.0,24.0,21.0,1.0,3.0,27.0,0.0,16.0,0.0,10.0,21.0,3.0,14.0,0.0,5.0,11.0,6.0,4.0,2.0,1.0,0.0,0.0,8.0,18.0,24.0,50.0,6.0,0.0,3.0,9.0,8.0,0.0,6.0,15.0,15.0,14.0,11.0,0.0,9.0,0.0,19.0,13.0,0.0,6.0,44.0,20.0,20.0,13.0,8.0,41.0,66.0,4.0,11.0,0.0,36.0,46.0,60.0,0.0,142.0,21.0,0.0,50.0
-0.0,5.0,0.0,9.0,1.0,15.0,6.0,4.0,16.0,3.0,5.0,1.0,1.0,0.0,7.0,4.0,2.0,0.0,6.0,3.0,0.0,3.0,19.0,1.0,6.0,0.0,20.0,19.0,0.0,4.0,1.0,13.0,2.0,2.0,3.0,27.0,1.0,0.0,3.0,17.0,26.0,1.0,8.0,26.0,0.0,7.0,0.0,0.0,11.0,6.0,10.0,0.0,5.0,2.0,1.0,0.0,2.0,2.0,5.0,0.0,0.0,7.0,28.0,13.0,23.0,0.0,0.0,13.0,14.0,0.0,19.0,15.0,4.0,28.0,28.0,0.0,20.0,0.0,15.0,43.0,1.0,0.0,15.0,2.0,48.0,38.0,6.0,78.0,99.0,1.0,19.0,0.0,83.0,62.0,68.0,1.0,215.0,2.0,1.0,2.0
-3.0,5.0,0.0,1.0,0.0,5.0,1.0,1.0,10.0,0.0,3.0,0.0,0.0,0.0,0.0,6.0,0.0,2.0,0.0,2.0,2.0,0.0,1.0,0.0,3.0,1.0,4.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,3.0,0.0,7.0,3.0,0.0,1.0,4.0,0.0,0.0,0.0,5.0,0.0,3.0,0.0,1.0,3.0,0.0,4.0,2.0,1.0,0.0,1.0,0.0,6.0,4.0,3.0,21.0,2.0,9.0,2.0,6.0,0.0,2.0,4.0,0.0,2.0,6.0,5.0,2.0,4.0,0.0,12.0,1.0,0.0,4.0,1.0,1.0,4.0,7.0,4.0,17.0,5.0,1.0,0.0,0.0,7.0,23.0,13.0,2.0,7.0,17.0,2.0,130.0
-6.0,3.0,0.0,1.0,3.0,10.0,4.0,2.0,4.0,7.0,3.0,4.0,0.0,0.0,0.0,8.0,1.0,0.0,0.0,2.0,0.0,0.0,8.0,2.0,3.0,7.0,3.0,7.0,0.0,1.0,7.0,0.0,12.0,0.0,12.0,0.0,1.0,1.0,15.0,16.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,0.0,17.0,1.0,7.0,0.0,6.0,16.0,32.0,0.0,2.0,3.0,3.0,0.0,1.0,15.0,3.0,31.0,9.0,0.0,8.0,2.0,3.0,1.0,12.0,1.0,9.0,11.0,8.0,2.0,6.0,1.0,17.0,7.0,1.0,6.0,29.0,11.0,13.0,14.0,45.0,17.0,3.0,0.0,3.0,0.0,33.0,9.0,18.0,0.0,8.0,160.0,118.0,17.0
-10.0,19.0,0.0,14.0,3.0,20.0,5.0,2.0,25.0,17.0,1.0,4.0,0.0,0.0,0.0,5.0,5.0,0.0,1.0,2.0,29.0,1.0,21.0,1.0,12.0,21.0,13.0,12.0,0.0,9.0,12.0,1.0,10.0,1.0,12.0,4.0,3.0,0.0,11.0,25.0,4.0,2.0,6.0,5.0,0.0,26.0,0.0,0.0,35.0,4.0,19.0,0.0,16.0,13.0,21.0,2.0,7.0,9.0,3.0,0.0,15.0,9.0,9.0,54.0,10.0,0.0,3.0,17.0,16.0,0.0,18.0,9.0,14.0,30.0,33.0,0.0,27.0,2.0,48.0,24.0,0.0,4.0,30.0,38.0,34.0,42.0,19.0,59.0,17.0,2.0,130.0,0.0,46.0,33.0,83.0,0.0,34.0,30.0,1.0,41.0
-7.0,4.0,0.0,8.0,1.0,5.0,2.0,2.0,4.0,9.0,6.0,6.0,0.0,0.0,2.0,3.0,1.0,0.0,0.0,1.0,1.0,0.0,3.0,0.0,6.0,1.0,8.0,3.0,0.0,6.0,6.0,0.0,14.0,0.0,5.0,0.0,12.0,0.0,9.0,8.0,1.0,0.0,2.0,3.0,0.0,5.0,0.0,0.0,29.0,0.0,4.0,0.0,16.0,9.0,17.0,0.0,2.0,1.0,0.0,0.0,8.0,6.0,3.0,16.0,3.0,0.0,1.0,11.0,0.0,0.0,11.0,2.0,2.0,17.0,12.0,1.0,7.0,0.0,17.0,14.0,1.0,0.0,63.0,7.0,17.0,19.0,25.0,28.0,5.0,0.0,9.0,3.0,15.0,1.0,22.0,0.0,12.0,42.0,0.0,19.0
-1.0,3.0,0.0,2.0,0.0,2.0,1.0,0.0,3.0,2.0,2.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,2.0,5.0,2.0,0.0,2.0,1.0,0.0,4.0,0.0,1.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,7.0,0.0,0.0,18.0,0.0,0.0,0.0,8.0,4.0,4.0,0.0,6.0,0.0,0.0,0.0,6.0,3.0,2.0,13.0,4.0,0.0,2.0,1.0,2.0,0.0,5.0,1.0,0.0,6.0,7.0,0.0,8.0,0.0,11.0,5.0,0.0,3.0,39.0,9.0,7.0,6.0,13.0,18.0,5.0,1.0,6.0,3.0,12.0,0.0,5.0,0.0,5.0,24.0,0.0,11.0
-0.0,3.0,0.0,13.0,2.0,7.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.0,0.0,0.0,4.0,3.0,0.0,0.0,3.0,6.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,6.0,3.0,0.0,4.0,0.0,7.0,0.0,0.0,0.0,4.0,0.0,0.0,7.0,0.0,11.0,2.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,32.0,0.0,0.0,0.0
-0.0,5.0,0.0,13.0,9.0,10.0,0.0,0.0,20.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,1.0,7.0,11.0,0.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,3.0,9.0,0.0,0.0,6.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,4.0,2.0,0.0,17.0,0.0,0.0,14.0,26.0,0.0,31.0,0.0,42.0,14.0,0.0,0.0,22.0,0.0,1.0,55.0,0.0,52.0,1.0,0.0,0.0,0.0,6.0,0.0,1.0,0.0,24.0,4.0,0.0,0.0
-7.0,7.0,0.0,0.0,2.0,14.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,12.0,0.0,5.0,21.0,13.0,0.0,7.0,0.0,4.0,0.0,0.0,0.0,10.0,6.0,0.0,0.0,4.0,7.0,0.0,0.0,7.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,10.0,6.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,18.0,1.0,14.0,10.0,0.0,19.0,0.0,9.0,0.0,0.0,0.0,17.0,0.0,0.0,13.0,7.0,11.0,30.0,0.0,5.0,0.0,3.0,34.0,0.0,0.0,17.0,0.0,0.0,0.0
-8.0,25.0,0.0,59.0,35.0,70.0,9.0,12.0,40.0,3.0,57.0,1.0,0.0,2.0,0.0,11.0,0.0,0.0,0.0,8.0,2.0,41.0,77.0,68.0,11.0,81.0,94.0,81.0,0.0,35.0,21.0,34.0,0.0,0.0,0.0,86.0,32.0,10.0,0.0,58.0,51.0,2.0,13.0,43.0,0.0,23.0,9.0,10.0,9.0,4.0,35.0,0.0,8.0,2.0,8.0,0.0,0.0,4.0,0.0,0.0,3.0,14.0,52.0,71.0,14.0,4.0,1.0,29.0,23.0,0.0,73.0,16.0,0.0,71.0,56.0,0.0,102.0,0.0,110.0,18.0,5.0,2.0,78.0,3.0,30.0,89.0,9.0,168.0,82.0,3.0,7.0,0.0,57.0,94.0,115.0,12.0,345.0,9.0,0.0,30.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,9.0,0.0,0.0,1.0,0.0,0.0,1.0,5.0,0.0,0.0,0.0,0.0,2.0,0.0,12.0,0.0,0.0,0.0
-0.0,2.0,0.0,4.0,1.0,1.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,7.0,8.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,7.0,0.0,1.0,5.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,5.0,2.0,0.0,0.0
-2.0,0.0,0.0,4.0,1.0,2.0,1.0,0.0,6.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,3.0,1.0,0.0,3.0,5.0,0.0,4.0,0.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.0,1.0,0.0,0.0,4.0,1.0,0.0,1.0,0.0,0.0,2.0,4.0,2.0,0.0,0.0,7.0,0.0,0.0,0.0,3.0,0.0,2.0,6.0,0.0,10.0,1.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,7.0,0.0,0.0,0.0
-0.0,1.0,0.0,3.0,1.0,1.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,1.0,1.0,1.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0
-1.0,0.0,0.0,5.0,0.0,0.0,2.0,0.0,5.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,6.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,10.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,6.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,3.0,6.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,6.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,11.0,5.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,3.0,0.0,2.0,2.0,0.0,0.0,0.0,1.0,1.0,2.0,0.0,6.0,0.0,0.0,0.0
-0.0,3.0,0.0,0.0,0.0,6.0,0.0,0.0,10.0,3.0,3.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,4.0,14.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,2.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,10.0,0.0,1.0,3.0,1.0,7.0,0.0,0.0,0.0,0.0,3.0,4.0,6.0,0.0,7.0,0.0,0.0,0.0
-0.0,4.0,0.0,1.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,4.0,8.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,16.0,1.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,10.0,0.0,0.0,3.0,0.0,5.0,3.0,0.0,0.0,0.0,6.0,5.0,2.0,0.0,3.0,0.0,0.0,2.0
-0.0,2.0,0.0,7.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0
-1.0,8.0,0.0,2.0,1.0,12.0,0.0,0.0,8.0,8.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,0.0,0.0,11.0,0.0,1.0,2.0,3.0,0.0,0.0,0.0,4.0,4.0,4.0,0.0,5.0,4.0,0.0,0.0,9.0,0.0,1.0,0.0,5.0,2.0,1.0,1.0,0.0,2.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,6.0,4.0,16.0,0.0,0.0,0.0,2.0,1.0,0.0,2.0,5.0,0.0,11.0,3.0,0.0,9.0,0.0,0.0,1.0,0.0,1.0,29.0,2.0,5.0,9.0,0.0,8.0,15.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,42.0,2.0,0.0,9.0
-0.0,6.0,0.0,1.0,0.0,2.0,1.0,0.0,7.0,0.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,6.0,0.0,3.0,3.0,7.0,0.0,0.0,0.0,1.0,0.0,7.0,0.0,1.0,5.0,0.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,4.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,14.0,3.0,6.0,5.0,0.0,7.0,0.0,7.0,3.0,0.0,1.0,7.0,0.0,15.0,4.0,0.0,9.0,16.0,1.0,1.0,0.0,1.0,3.0,4.0,0.0,37.0,1.0,0.0,10.0
-0.0,5.0,0.0,1.0,1.0,5.0,0.0,1.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,5.0,4.0,0.0,0.0,13.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,7.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,6.0,8.0,6.0,0.0,0.0,0.0,2.0,0.0,1.0,2.0,0.0,9.0,8.0,0.0,9.0,0.0,1.0,1.0,0.0,0.0,8.0,0.0,5.0,13.0,0.0,13.0,7.0,3.0,0.0,0.0,4.0,2.0,7.0,0.0,34.0,4.0,0.0,2.0
-0.0,0.0,0.0,5.0,0.0,5.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,2.0,2.0,4.0,0.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,2.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,3.0,20.0,3.0,0.0,3.0
-0.0,2.0,0.0,0.0,1.0,5.0,4.0,0.0,3.0,0.0,4.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,4.0,1.0,4.0,4.0,3.0,0.0,1.0,2.0,3.0,3.0,0.0,0.0,1.0,0.0,4.0,0.0,9.0,6.0,1.0,0.0,4.0,0.0,0.0,0.0,6.0,0.0,5.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,4.0,12.0,5.0,0.0,0.0,1.0,3.0,0.0,2.0,4.0,0.0,15.0,3.0,0.0,12.0,2.0,7.0,1.0,0.0,0.0,14.0,1.0,7.0,6.0,0.0,18.0,17.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,46.0,1.0,0.0,1.0
-0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,3.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,7.0,8.0,0.0,3.0,11.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,2.0,7.0,0.0,13.0,13.0,0.0,0.0,0.0,3.0,1.0,1.0,0.0,21.0,0.0,0.0,1.0
-0.0,7.0,0.0,2.0,8.0,1.0,0.0,0.0,5.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,2.0,7.0,0.0,2.0,10.0,4.0,0.0,4.0,3.0,3.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,1.0,3.0,0.0,1.0,0.0,0.0,8.0,0.0,1.0,2.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,3.0,1.0,9.0,1.0,0.0,0.0,3.0,0.0,0.0,5.0,0.0,0.0,2.0,10.0,0.0,6.0,0.0,4.0,0.0,0.0,0.0,23.0,0.0,6.0,9.0,0.0,10.0,5.0,0.0,2.0,0.0,3.0,2.0,8.0,0.0,17.0,3.0,0.0,0.0
-0.0,2.0,0.0,6.0,1.0,9.0,0.0,0.0,7.0,0.0,9.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,3.0,0.0,3.0,1.0,0.0,0.0,1.0,3.0,2.0,5.0,0.0,0.0,3.0,0.0,1.0,0.0,3.0,5.0,0.0,1.0,4.0,0.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,2.0,1.0,9.0,2.0,7.0,0.0,4.0,2.0,0.0,5.0,1.0,0.0,2.0,2.0,0.0,0.0,0.0,6.0,4.0,0.0,0.0,20.0,0.0,5.0,4.0,2.0,6.0,16.0,0.0,0.0,0.0,4.0,3.0,12.0,2.0,23.0,0.0,0.0,1.0
-0.0,10.0,0.0,5.0,0.0,1.0,1.0,1.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,5.0,1.0,0.0,6.0,14.0,0.0,15.0,0.0,5.0,0.0,19.0,4.0,1.0,4.0,7.0,0.0,1.0,13.0,6.0,1.0,4.0,9.0,2.0,1.0,6.0,0.0,21.0,0.0,9.0,0.0,2.0,10.0,0.0,0.0,1.0,1.0,0.0,6.0,6.0,0.0,0.0,2.0,6.0,0.0,14.0,2.0,6.0,9.0,0.0,2.0,0.0,15.0,1.0,1.0,15.0,13.0,0.0,6.0,2.0,23.0,3.0,0.0,1.0,20.0,9.0,9.0,15.0,1.0,16.0,21.0,2.0,0.0,0.0,11.0,26.0,14.0,14.0,86.0,16.0,0.0,19.0
-2.0,2.0,0.0,1.0,2.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,4.0,2.0,2.0,4.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,9.0,4.0,2.0,2.0,3.0,0.0,0.0,0.0,4.0,0.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,0.0,1.0,3.0,0.0,5.0,0.0,0.0,4.0,9.0,0.0,3.0,1.0,14.0,8.0,2.0,3.0,0.0,2.0,1.0,13.0,0.0,6.0,8.0,4.0,0.0,0.0,6.0,8.0,7.0,0.0,13.0,2.0,0.0,4.0
-0.0,5.0,0.0,5.0,2.0,4.0,2.0,0.0,6.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,3.0,1.0,3.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,2.0,7.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,1.0,10.0,5.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,6.0,0.0,3.0,0.0,4.0,3.0,0.0,0.0,3.0,1.0,13.0,4.0,0.0,11.0,3.0,0.0,0.0,0.0,7.0,12.0,7.0,0.0,5.0,4.0,0.0,1.0
-5.0,3.0,0.0,1.0,0.0,0.0,1.0,1.0,3.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,7.0,0.0,1.0,0.0,1.0,1.0,1.0,0.0,2.0,1.0,1.0,0.0,1.0,0.0,4.0,3.0,3.0,1.0,0.0,0.0,2.0,0.0,2.0,1.0,4.0,4.0,2.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,6.0,1.0,1.0,3.0,2.0,10.0,0.0,0.0,0.0,4.0,10.0,0.0,0.0,10.0,13.0,19.0,7.0,6.0,4.0,0.0,12.0
-0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,4.0,0.0,4.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,6.0,4.0,2.0,0.0,3.0,0.0,3.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,5.0,9.0,1.0,0.0,2.0,0.0,0.0,0.0
-0.0,1.0,0.0,0.0,0.0,4.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,1.0,0.0,6.0,0.0,0.0,0.0,5.0,0.0,1.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,3.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,6.0,0.0,9.0,3.0,0.0,0.0,2.0,0.0,3.0,5.0,0.0,7.0,4.0,0.0,0.0,0.0,4.0,2.0,6.0,0.0,4.0,0.0,0.0,2.0
-0.0,1.0,0.0,0.0,1.0,0.0,4.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,2.0,1.0,0.0,0.0,2.0,1.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,2.0,14.0,0.0,6.0,0.0,0.0,0.0
-4.0,7.0,0.0,2.0,10.0,6.0,2.0,0.0,12.0,7.0,9.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,4.0,1.0,4.0,0.0,13.0,4.0,2.0,7.0,10.0,13.0,0.0,8.0,0.0,2.0,2.0,4.0,0.0,2.0,0.0,0.0,0.0,9.0,3.0,0.0,3.0,4.0,0.0,7.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,1.0,9.0,2.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,7.0,12.0,0.0,13.0,2.0,12.0,6.0,0.0,0.0,19.0,1.0,17.0,24.0,1.0,8.0,10.0,0.0,1.0,0.0,6.0,8.0,34.0,0.0,39.0,1.0,0.0,0.0
-1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,0.0,1.0,0.0,0.0,2.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,1.0,4.0,1.0,0.0,3.0,3.0,6.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,4.0,0.0,0.0,3.0,3.0,0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,2.0,0.0,2.0,12.0,3.0,4.0,2.0,12.0,4.0,0.0,0.0,9.0,4.0,14.0,5.0,12.0,8.0,2.0,35.0
-3.0,18.0,0.0,11.0,7.0,17.0,3.0,0.0,24.0,13.0,7.0,2.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,5.0,2.0,2.0,17.0,4.0,3.0,11.0,21.0,18.0,0.0,12.0,7.0,1.0,1.0,23.0,2.0,2.0,4.0,0.0,1.0,17.0,6.0,0.0,4.0,3.0,0.0,9.0,0.0,0.0,5.0,0.0,21.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,0.0,13.0,3.0,28.0,1.0,0.0,0.0,1.0,3.0,0.0,17.0,0.0,1.0,24.0,31.0,2.0,38.0,0.0,53.0,8.0,0.0,0.0,10.0,0.0,31.0,54.0,4.0,39.0,11.0,0.0,1.0,0.0,20.0,29.0,60.0,0.0,31.0,6.0,0.0,5.0
-11.0,11.0,0.0,11.0,6.0,13.0,4.0,6.0,9.0,7.0,16.0,5.0,1.0,1.0,0.0,5.0,2.0,0.0,14.0,0.0,2.0,24.0,8.0,33.0,12.0,7.0,11.0,17.0,0.0,16.0,26.0,8.0,12.0,2.0,11.0,5.0,15.0,0.0,31.0,6.0,16.0,0.0,14.0,10.0,3.0,18.0,4.0,0.0,18.0,6.0,13.0,7.0,31.0,7.0,12.0,1.0,6.0,0.0,8.0,0.0,12.0,23.0,20.0,38.0,21.0,0.0,1.0,14.0,11.0,0.0,22.0,10.0,11.0,41.0,34.0,0.0,44.0,1.0,56.0,25.0,5.0,9.0,21.0,24.0,67.0,43.0,24.0,62.0,40.0,3.0,37.0,10.0,43.0,38.0,86.0,0.0,76.0,40.0,1.0,12.0
-3.0,4.0,0.0,5.0,9.0,8.0,10.0,4.0,4.0,11.0,9.0,3.0,0.0,0.0,3.0,15.0,0.0,0.0,24.0,3.0,5.0,10.0,9.0,8.0,27.0,5.0,8.0,7.0,0.0,2.0,15.0,0.0,14.0,1.0,15.0,0.0,42.0,0.0,38.0,13.0,4.0,0.0,15.0,1.0,9.0,28.0,0.0,0.0,32.0,4.0,30.0,15.0,27.0,23.0,23.0,0.0,10.0,0.0,11.0,0.0,8.0,9.0,9.0,9.0,9.0,0.0,10.0,13.0,5.0,0.0,8.0,7.0,11.0,14.0,13.0,1.0,35.0,0.0,39.0,15.0,1.0,20.0,21.0,28.0,51.0,25.0,29.0,27.0,15.0,21.0,33.0,8.0,64.0,21.0,63.0,0.0,31.0,86.0,0.0,46.0
-16.0,15.0,0.0,7.0,1.0,11.0,6.0,3.0,17.0,11.0,8.0,1.0,0.0,3.0,1.0,10.0,2.0,0.0,10.0,7.0,7.0,0.0,22.0,35.0,15.0,0.0,17.0,22.0,0.0,3.0,17.0,7.0,16.0,10.0,18.0,13.0,43.0,0.0,22.0,10.0,26.0,0.0,11.0,28.0,0.0,29.0,10.0,0.0,6.0,16.0,17.0,12.0,18.0,4.0,19.0,0.0,10.0,3.0,5.0,0.0,13.0,18.0,33.0,21.0,11.0,0.0,5.0,19.0,3.0,2.0,11.0,27.0,18.0,16.0,27.0,1.0,21.0,0.0,34.0,14.0,6.0,13.0,22.0,18.0,35.0,29.0,17.0,39.0,97.0,2.0,5.0,0.0,54.0,71.0,52.0,0.0,165.0,36.0,2.0,14.0
-4.0,11.0,0.0,7.0,8.0,8.0,1.0,1.0,1.0,8.0,6.0,0.0,0.0,0.0,1.0,8.0,0.0,0.0,0.0,0.0,9.0,2.0,14.0,8.0,3.0,11.0,7.0,9.0,0.0,10.0,8.0,0.0,1.0,95.0,2.0,3.0,30.0,0.0,3.0,14.0,2.0,0.0,2.0,1.0,3.0,44.0,0.0,0.0,12.0,0.0,33.0,0.0,4.0,12.0,8.0,5.0,6.0,7.0,0.0,0.0,5.0,9.0,6.0,20.0,4.0,0.0,0.0,13.0,8.0,0.0,13.0,5.0,7.0,11.0,14.0,0.0,18.0,6.0,32.0,18.0,1.0,8.0,35.0,12.0,48.0,27.0,1.0,26.0,12.0,9.0,48.0,0.0,9.0,21.0,61.0,0.0,32.0,54.0,0.0,34.0
-7.0,3.0,0.0,7.0,10.0,4.0,0.0,6.0,10.0,40.0,3.0,1.0,0.0,3.0,1.0,8.0,0.0,0.0,1.0,3.0,10.0,0.0,5.0,3.0,2.0,5.0,3.0,4.0,0.0,10.0,12.0,1.0,6.0,68.0,2.0,3.0,32.0,0.0,3.0,9.0,9.0,0.0,5.0,4.0,5.0,23.0,6.0,0.0,21.0,2.0,35.0,3.0,7.0,20.0,5.0,1.0,5.0,3.0,0.0,0.0,13.0,7.0,13.0,24.0,3.0,0.0,12.0,7.0,5.0,0.0,18.0,3.0,8.0,12.0,17.0,2.0,22.0,2.0,33.0,22.0,2.0,12.0,78.0,10.0,31.0,15.0,3.0,19.0,13.0,7.0,21.0,0.0,17.0,5.0,63.0,1.0,44.0,42.0,0.0,40.0
-1.0,1.0,0.0,2.0,1.0,0.0,1.0,0.0,1.0,5.0,1.0,0.0,2.0,0.0,0.0,5.0,0.0,0.0,3.0,1.0,1.0,41.0,0.0,0.0,4.0,1.0,1.0,2.0,0.0,10.0,3.0,0.0,3.0,42.0,7.0,2.0,4.0,0.0,18.0,1.0,1.0,0.0,0.0,0.0,3.0,17.0,0.0,0.0,3.0,6.0,8.0,6.0,22.0,7.0,3.0,1.0,2.0,0.0,1.0,0.0,7.0,1.0,1.0,4.0,5.0,0.0,2.0,22.0,2.0,0.0,7.0,2.0,1.0,6.0,6.0,0.0,19.0,2.0,35.0,4.0,7.0,2.0,29.0,1.0,10.0,18.0,0.0,7.0,1.0,1.0,5.0,0.0,9.0,20.0,38.0,0.0,15.0,13.0,0.0,16.0
-9.0,3.0,0.0,1.0,6.0,5.0,4.0,4.0,8.0,23.0,4.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,1.0,3.0,0.0,6.0,16.0,4.0,9.0,3.0,3.0,0.0,7.0,3.0,4.0,5.0,26.0,7.0,1.0,30.0,0.0,4.0,7.0,3.0,0.0,2.0,0.0,64.0,32.0,0.0,0.0,21.0,4.0,25.0,2.0,11.0,12.0,7.0,4.0,7.0,7.0,0.0,0.0,4.0,1.0,5.0,7.0,3.0,3.0,0.0,12.0,12.0,2.0,9.0,9.0,9.0,10.0,17.0,1.0,20.0,8.0,18.0,26.0,2.0,11.0,21.0,9.0,52.0,21.0,12.0,27.0,15.0,23.0,16.0,6.0,18.0,39.0,68.0,4.0,32.0,34.0,1.0,49.0
-5.0,0.0,0.0,1.0,2.0,4.0,0.0,2.0,0.0,2.0,4.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,1.0,2.0,3.0,0.0,2.0,3.0,0.0,0.0,0.0,6.0,2.0,0.0,2.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,6.0,0.0,2.0,1.0,4.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,3.0,12.0,8.0,0.0,1.0,1.0,4.0,0.0,14.0,2.0,0.0,19.0,12.0,0.0,7.0,1.0,15.0,1.0,0.0,1.0,2.0,4.0,8.0,30.0,2.0,26.0,0.0,0.0,0.0,0.0,6.0,8.0,9.0,0.0,2.0,9.0,0.0,5.0
-2.0,10.0,0.0,10.0,5.0,14.0,1.0,0.0,5.0,14.0,3.0,3.0,0.0,3.0,0.0,4.0,1.0,0.0,5.0,6.0,2.0,2.0,18.0,4.0,5.0,1.0,0.0,11.0,0.0,10.0,5.0,25.0,1.0,0.0,5.0,15.0,12.0,0.0,6.0,18.0,24.0,0.0,3.0,48.0,0.0,6.0,1.0,0.0,8.0,1.0,1.0,0.0,4.0,4.0,8.0,0.0,1.0,1.0,2.0,0.0,14.0,0.0,76.0,26.0,4.0,0.0,0.0,22.0,18.0,0.0,6.0,31.0,3.0,29.0,15.0,0.0,19.0,2.0,14.0,12.0,0.0,2.0,9.0,9.0,19.0,43.0,11.0,34.0,78.0,0.0,13.0,0.0,32.0,32.0,41.0,0.0,138.0,18.0,0.0,10.0
-1.0,8.0,0.0,5.0,1.0,3.0,1.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,7.0,6.0,1.0,0.0,2.0,4.0,0.0,4.0,0.0,10.0,2.0,2.0,0.0,0.0,0.0,0.0,4.0,0.0,2.0,1.0,2.0,2.0,2.0,2.0,0.0,2.0,0.0,3.0,8.0,0.0,7.0,0.0,0.0,9.0,2.0,0.0,1.0,4.0,1.0,0.0,3.0,0.0,0.0,7.0,3.0,0.0,0.0,4.0,6.0,0.0,20.0,5.0,0.0,37.0,13.0,0.0,18.0,1.0,10.0,8.0,0.0,1.0,19.0,4.0,16.0,28.0,1.0,31.0,3.0,0.0,1.0,0.0,12.0,6.0,13.0,0.0,15.0,4.0,0.0,4.0
-1.0,0.0,0.0,4.0,1.0,2.0,3.0,0.0,1.0,1.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,2.0,2.0,0.0,0.0,3.0,0.0,1.0,0.0,10.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,6.0,1.0,0.0,2.0,2.0,0.0,3.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,12.0,3.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,3.0,1.0,1.0,0.0,1.0,1.0,5.0,0.0,11.0,2.0,2.0,26.0,14.0,0.0,21.0,0.0,18.0,9.0,0.0,0.0,7.0,0.0,8.0,40.0,11.0,33.0,0.0,0.0,18.0,0.0,6.0,3.0,9.0,0.0,2.0,1.0,0.0,7.0
-7.0,4.0,0.0,5.0,1.0,7.0,1.0,5.0,3.0,8.0,0.0,0.0,0.0,1.0,1.0,2.0,0.0,0.0,1.0,3.0,1.0,0.0,6.0,2.0,3.0,2.0,0.0,8.0,0.0,14.0,5.0,5.0,0.0,0.0,1.0,5.0,10.0,7.0,8.0,6.0,6.0,2.0,2.0,16.0,0.0,9.0,0.0,10.0,6.0,3.0,3.0,1.0,5.0,4.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,34.0,22.0,2.0,0.0,4.0,10.0,10.0,0.0,14.0,15.0,4.0,49.0,19.0,0.0,6.0,0.0,20.0,6.0,0.0,0.0,16.0,7.0,15.0,34.0,3.0,44.0,29.0,0.0,8.0,0.0,13.0,17.0,17.0,0.0,85.0,24.0,0.0,19.0
-2.0,4.0,0.0,9.0,5.0,4.0,2.0,9.0,3.0,4.0,1.0,2.0,1.0,4.0,3.0,2.0,0.0,0.0,1.0,3.0,0.0,1.0,7.0,1.0,3.0,3.0,1.0,7.0,0.0,5.0,18.0,9.0,3.0,0.0,1.0,6.0,7.0,1.0,3.0,9.0,11.0,0.0,4.0,15.0,0.0,9.0,0.0,5.0,10.0,2.0,3.0,1.0,10.0,2.0,3.0,0.0,0.0,2.0,3.0,0.0,5.0,0.0,18.0,12.0,3.0,0.0,0.0,9.0,8.0,0.0,16.0,14.0,2.0,33.0,13.0,0.0,23.0,0.0,17.0,11.0,1.0,6.0,16.0,7.0,12.0,30.0,13.0,25.0,28.0,4.0,7.0,0.0,18.0,18.0,23.0,0.0,67.0,11.0,0.0,8.0
-1.0,2.0,0.0,1.0,0.0,1.0,0.0,1.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,23.0,0.0,0.0,0.0,1.0,0.0,3.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,1.0,2.0,0.0,3.0,0.0,0.0,15.0,0.0,3.0,6.0,2.0,4.0,0.0,3.0,0.0,0.0,0.0,5.0,5.0,1.0,0.0,3.0,1.0,0.0,3.0,1.0,7.0,4.0,0.0,1.0,0.0,4.0,2.0,0.0,16.0,10.0,0.0,1.0,1.0,6.0,2.0,0.0,3.0,12.0,4.0,4.0,15.0,0.0,21.0,9.0,5.0,1.0,0.0,5.0,6.0,12.0,6.0,22.0,8.0,0.0,4.0
-1.0,0.0,0.0,0.0,7.0,1.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,3.0,4.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,4.0,3.0,0.0,2.0,8.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,7.0,0.0,8.0,3.0,0.0,3.0,0.0,1.0,1.0,1.0,1.0,3.0,1.0,0.0,10.0,4.0,10.0,2.0,0.0,1.0,0.0,5.0,4.0,6.0,0.0,8.0,3.0,0.0,2.0
-1.0,4.0,0.0,4.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,1.0,8.0,0.0,6.0,0.0,0.0,3.0,0.0,5.0,4.0,6.0,2.0,0.0,1.0,5.0,4.0,0.0,0.0,9.0,11.0,0.0,4.0,9.0,0.0,0.0,0.0,0.0,9.0,7.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,30.0,7.0,2.0,0.0,0.0,9.0,4.0,0.0,10.0,5.0,1.0,15.0,15.0,0.0,11.0,0.0,10.0,4.0,0.0,1.0,16.0,2.0,6.0,30.0,6.0,14.0,29.0,0.0,10.0,0.0,27.0,8.0,13.0,0.0,46.0,8.0,0.0,4.0
-2.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,5.0,1.0,4.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,3.0,0.0,1.0,0.0,5.0,2.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,4.0,0.0,1.0,1.0,5.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,5.0,0.0,3.0,2.0,0.0,0.0,1.0,5.0,3.0,0.0,10.0,0.0,2.0,15.0,17.0,0.0,17.0,0.0,17.0,2.0,0.0,2.0,16.0,6.0,20.0,25.0,1.0,25.0,6.0,0.0,3.0,0.0,15.0,8.0,28.0,0.0,9.0,13.0,0.0,9.0
-6.0,2.0,0.0,11.0,0.0,2.0,2.0,0.0,8.0,4.0,0.0,2.0,0.0,2.0,1.0,4.0,1.0,0.0,1.0,1.0,0.0,0.0,10.0,0.0,6.0,1.0,0.0,3.0,0.0,5.0,3.0,4.0,12.0,0.0,2.0,6.0,5.0,0.0,5.0,13.0,8.0,1.0,5.0,14.0,0.0,2.0,0.0,0.0,4.0,6.0,1.0,1.0,6.0,1.0,3.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,22.0,8.0,5.0,0.0,1.0,15.0,2.0,0.0,10.0,10.0,2.0,16.0,19.0,0.0,16.0,0.0,11.0,0.0,2.0,3.0,5.0,2.0,2.0,28.0,15.0,43.0,22.0,0.0,8.0,0.0,18.0,21.0,13.0,0.0,43.0,5.0,0.0,6.0
-2.0,1.0,0.0,3.0,2.0,1.0,4.0,0.0,6.0,2.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,5.0,2.0,0.0,4.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,3.0,0.0,5.0,2.0,4.0,0.0,5.0,0.0,5.0,8.0,0.0,1.0,1.0,10.0,1.0,1.0,0.0,0.0,7.0,0.0,7.0,0.0,3.0,6.0,6.0,0.0,4.0,6.0,1.0,0.0,0.0,0.0,11.0,4.0,3.0,0.0,0.0,5.0,5.0,0.0,8.0,1.0,4.0,16.0,14.0,0.0,20.0,0.0,11.0,6.0,0.0,5.0,6.0,6.0,17.0,22.0,6.0,19.0,7.0,3.0,10.0,0.0,13.0,10.0,23.0,0.0,26.0,22.0,0.0,10.0
-3.0,4.0,0.0,2.0,5.0,6.0,2.0,4.0,12.0,0.0,4.0,2.0,0.0,0.0,1.0,4.0,0.0,1.0,0.0,4.0,1.0,1.0,10.0,4.0,1.0,2.0,1.0,7.0,0.0,6.0,3.0,12.0,0.0,0.0,3.0,8.0,5.0,0.0,3.0,10.0,22.0,0.0,2.0,27.0,0.0,2.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,5.0,3.0,0.0,0.0,6.0,0.0,0.0,5.0,0.0,19.0,12.0,3.0,0.0,1.0,10.0,0.0,0.0,24.0,35.0,3.0,31.0,9.0,2.0,13.0,0.0,11.0,4.0,2.0,0.0,3.0,5.0,7.0,27.0,3.0,24.0,38.0,0.0,10.0,0.0,1.0,18.0,16.0,0.0,64.0,9.0,0.0,8.0
-1.0,7.0,0.0,6.0,1.0,1.0,1.0,0.0,6.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,0.0,0.0,1.0,0.0,2.0,4.0,0.0,2.0,2.0,0.0,2.0,0.0,7.0,0.0,13.0,0.0,0.0,3.0,5.0,3.0,0.0,7.0,12.0,10.0,0.0,1.0,29.0,0.0,0.0,0.0,0.0,6.0,1.0,0.0,1.0,3.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,41.0,11.0,2.0,0.0,0.0,3.0,2.0,0.0,9.0,33.0,1.0,14.0,5.0,0.0,3.0,0.0,8.0,1.0,0.0,2.0,15.0,2.0,4.0,17.0,6.0,23.0,21.0,0.0,7.0,0.0,10.0,7.0,7.0,0.0,57.0,5.0,0.0,2.0
-2.0,1.0,0.0,1.0,0.0,3.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,6.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0,4.0,0.0,6.0,3.0,0.0,1.0,0.0,4.0,2.0,0.0,1.0,2.0,0.0,1.0,7.0,0.0,12.0,3.0,0.0,1.0,0.0,3.0,1.0,2.0,0.0,15.0,0.0,0.0,1.0
-0.0,2.0,0.0,2.0,5.0,2.0,0.0,0.0,3.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,1.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,0.0,0.0,4.0,0.0,5.0,0.0,0.0,9.0,9.0,0.0,8.0,0.0,1.0,0.0,0.0,0.0,5.0,1.0,4.0,10.0,0.0,7.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,5.0,0.0,0.0,1.0
-0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,2.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,7.0,2.0,0.0,0.0
-0.0,11.0,0.0,2.0,1.0,5.0,2.0,0.0,4.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,9.0,0.0,0.0,1.0,0.0,0.0,8.0,0.0,0.0,4.0,0.0,8.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,0.0,0.0,2.0,6.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,5.0,0.0,0.0,5.0,7.0,0.0,6.0,0.0,5.0,2.0,0.0,0.0,4.0,0.0,1.0,18.0,0.0,18.0,5.0,0.0,0.0,0.0,3.0,3.0,8.0,0.0,17.0,1.0,0.0,0.0
-0.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,1.0,1.0,4.0,0.0,5.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,4.0,2.0,0.0,0.0,0.0,3.0,0.0,5.0,0.0,0.0,17.0,9.0,0.0,9.0,0.0,4.0,2.0,0.0,0.0,2.0,0.0,1.0,10.0,0.0,12.0,1.0,0.0,0.0,0.0,0.0,1.0,7.0,0.0,4.0,2.0,0.0,0.0
-0.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,5.0,0.0,0.0,2.0,0.0,0.0,1.0,1.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,1.0,0.0,6.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,3.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,5.0,2.0,1.0,0.0,0.0,2.0,4.0,0.0,5.0,1.0,0.0,17.0,5.0,0.0,8.0,0.0,12.0,0.0,0.0,0.0,4.0,1.0,5.0,15.0,0.0,20.0,3.0,0.0,0.0,0.0,2.0,1.0,6.0,0.0,22.0,0.0,0.0,0.0
-3.0,8.0,0.0,1.0,3.0,3.0,0.0,0.0,12.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,0.0,0.0,4.0,1.0,1.0,6.0,0.0,5.0,0.0,9.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,3.0,0.0,0.0,0.0,2.0,0.0,7.0,1.0,0.0,21.0,11.0,0.0,8.0,0.0,8.0,6.0,0.0,0.0,11.0,0.0,0.0,12.0,0.0,14.0,9.0,0.0,1.0,0.0,9.0,4.0,12.0,0.0,8.0,2.0,0.0,1.0
-0.0,6.0,0.0,2.0,4.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,2.0,7.0,1.0,3.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,9.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,3.0,3.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,3.0,0.0,2.0,5.0,0.0,13.0,4.0,0.0,1.0,0.0,1.0,2.0,1.0,0.0,10.0,0.0,0.0,0.0
-0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,4.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,7.0,0.0,3.0,0.0,3.0,2.0,0.0,0.0,1.0,1.0,1.0,9.0,0.0,8.0,4.0,0.0,0.0,0.0,3.0,0.0,4.0,0.0,11.0,0.0,0.0,0.0
-0.0,1.0,0.0,5.0,2.0,3.0,1.0,0.0,4.0,5.0,4.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,7.0,1.0,0.0,7.0,0.0,3.0,0.0,7.0,3.0,1.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,5.0,1.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,5.0,3.0,0.0,0.0,0.0,5.0,1.0,0.0,3.0,0.0,0.0,11.0,17.0,0.0,4.0,0.0,9.0,0.0,0.0,0.0,2.0,0.0,2.0,10.0,1.0,23.0,2.0,0.0,0.0,0.0,2.0,0.0,4.0,0.0,22.0,0.0,0.0,1.0
-1.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,4.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,1.0,1.0,0.0,0.0,1.0,6.0,0.0,1.0,4.0,0.0,2.0,0.0,3.0,0.0,1.0,0.0,1.0,1.0,2.0,0.0,0.0,2.0,3.0,1.0,0.0,0.0,4.0,4.0,0.0,0.0,6.0,1.0,4.0,0.0,0.0,3.0,0.0,0.0,1.0,2.0,1.0,1.0,4.0,0.0,1.0,3.0,1.0,0.0,2.0,1.0,1.0,4.0,3.0,0.0,6.0,0.0,14.0,1.0,0.0,3.0,9.0,0.0,7.0,9.0,5.0,7.0,6.0,6.0,2.0,3.0,14.0,9.0,14.0,0.0,9.0,9.0,14.0,8.0
-0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,4.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,2.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,3.0,1.0,0.0,5.0,0.0,7.0,3.0,0.0,0.0,0.0,1.0,2.0,2.0,1.0,4.0,1.0,1.0,0.0,0.0,3.0,6.0,3.0,0.0,8.0,1.0,0.0,2.0
-0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,1.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,5.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,5.0,0.0,6.0,0.0,4.0,5.0,0.0,0.0,0.0,0.0,3.0,4.0,1.0,2.0,1.0,1.0,0.0,0.0,2.0,5.0,13.0,0.0,3.0,1.0,0.0,2.0
-1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,2.0,1.0,2.0,4.0,7.0,2.0,3.0,0.0,3.0,0.0,0.0,2.0,5.0,0.0,0.0,4.0,0.0,1.0,4.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,1.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,4.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,1.0,11.0,0.0,2.0,0.0,4.0,1.0,0.0,0.0,8.0,0.0,6.0,12.0,2.0,10.0,5.0,1.0,3.0,0.0,3.0,6.0,9.0,0.0,4.0,1.0,0.0,2.0
-0.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,2.0,1.0,1.0,1.0,1.0,2.0,3.0,2.0,2.0,1.0,2.0,0.0,0.0,1.0,5.0,0.0,1.0,0.0,0.0,2.0,3.0,0.0,0.0,2.0,2.0,0.0,2.0,1.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,4.0,0.0,3.0,0.0,2.0,2.0,0.0,0.0,1.0,0.0,2.0,5.0,3.0,11.0,4.0,0.0,0.0,0.0,3.0,3.0,14.0,0.0,2.0,4.0,1.0,2.0
-0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,2.0,3.0,0.0,1.0,0.0,3.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,5.0,0.0,4.0,1.0,0.0,0.0,2.0,2.0,2.0,6.0,2.0,6.0,1.0,0.0,1.0,0.0,3.0,2.0,5.0,0.0,9.0,2.0,0.0,2.0
-1.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,2.0,3.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,5.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,1.0,0.0,7.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,4.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,3.0,0.0,5.0,5.0,0.0,2.0,1.0,0.0,1.0,0.0,2.0,4.0,6.0,0.0,6.0,2.0,0.0,5.0
-0.0,8.0,0.0,9.0,0.0,10.0,1.0,0.0,24.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,14.0,0.0,0.0,10.0,12.0,6.0,0.0,3.0,1.0,0.0,0.0,19.0,1.0,0.0,0.0,0.0,1.0,9.0,4.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,9.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,0.0,7.0,0.0,0.0,0.0,2.0,3.0,0.0,13.0,0.0,0.0,11.0,6.0,0.0,5.0,0.0,10.0,5.0,0.0,0.0,12.0,2.0,6.0,30.0,0.0,8.0,9.0,0.0,0.0,0.0,1.0,5.0,6.0,0.0,13.0,2.0,0.0,4.0
-8.0,6.0,0.0,6.0,0.0,15.0,12.0,1.0,11.0,8.0,6.0,2.0,0.0,3.0,1.0,13.0,0.0,0.0,15.0,1.0,3.0,30.0,5.0,12.0,11.0,4.0,7.0,10.0,0.0,8.0,10.0,1.0,17.0,20.0,7.0,7.0,9.0,0.0,5.0,5.0,13.0,0.0,14.0,5.0,1.0,4.0,2.0,0.0,15.0,5.0,21.0,6.0,16.0,2.0,20.0,0.0,4.0,2.0,9.0,0.0,6.0,13.0,25.0,10.0,10.0,0.0,9.0,18.0,4.0,0.0,4.0,6.0,3.0,19.0,32.0,4.0,25.0,0.0,34.0,17.0,17.0,16.0,40.0,15.0,41.0,28.0,11.0,74.0,80.0,9.0,20.0,0.0,47.0,14.0,95.0,1.0,78.0,38.0,9.0,33.0
-19.0,5.0,0.0,10.0,1.0,14.0,7.0,5.0,11.0,10.0,4.0,3.0,0.0,3.0,2.0,4.0,3.0,0.0,9.0,4.0,5.0,42.0,12.0,17.0,7.0,9.0,4.0,4.0,0.0,5.0,14.0,2.0,21.0,5.0,18.0,3.0,33.0,0.0,14.0,12.0,9.0,0.0,17.0,8.0,41.0,15.0,3.0,0.0,59.0,6.0,9.0,8.0,16.0,9.0,23.0,0.0,11.0,8.0,5.0,0.0,20.0,17.0,16.0,8.0,21.0,1.0,11.0,19.0,5.0,1.0,16.0,12.0,1.0,8.0,26.0,1.0,35.0,0.0,28.0,33.0,5.0,17.0,69.0,15.0,66.0,16.0,25.0,40.0,43.0,13.0,23.0,2.0,59.0,32.0,138.0,0.0,59.0,84.0,1.0,26.0
-7.0,5.0,0.0,3.0,10.0,9.0,4.0,1.0,14.0,23.0,5.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,6.0,4.0,10.0,41.0,12.0,12.0,6.0,15.0,9.0,8.0,0.0,24.0,19.0,9.0,8.0,5.0,8.0,6.0,7.0,0.0,10.0,16.0,11.0,0.0,7.0,5.0,0.0,5.0,0.0,0.0,37.0,2.0,12.0,1.0,21.0,18.0,5.0,0.0,3.0,4.0,2.0,0.0,22.0,12.0,16.0,14.0,9.0,0.0,6.0,16.0,11.0,0.0,20.0,11.0,5.0,19.0,39.0,2.0,39.0,4.0,52.0,31.0,3.0,10.0,47.0,13.0,89.0,67.0,10.0,64.0,58.0,5.0,42.0,0.0,61.0,39.0,140.0,0.0,96.0,55.0,4.0,10.0
-8.0,12.0,0.0,11.0,5.0,12.0,4.0,1.0,9.0,31.0,5.0,2.0,0.0,0.0,0.0,5.0,2.0,0.0,5.0,2.0,14.0,31.0,10.0,1.0,4.0,26.0,22.0,15.0,0.0,11.0,6.0,2.0,9.0,20.0,3.0,2.0,21.0,0.0,16.0,14.0,6.0,1.0,2.0,7.0,0.0,14.0,0.0,0.0,11.0,2.0,18.0,0.0,10.0,16.0,8.0,1.0,1.0,9.0,6.0,0.0,7.0,34.0,20.0,32.0,5.0,0.0,6.0,13.0,9.0,0.0,11.0,7.0,10.0,6.0,18.0,0.0,17.0,3.0,37.0,11.0,1.0,13.0,19.0,23.0,58.0,38.0,12.0,47.0,24.0,5.0,99.0,0.0,49.0,30.0,78.0,0.0,48.0,34.0,0.0,26.0
-15.0,13.0,0.0,4.0,5.0,7.0,6.0,6.0,7.0,3.0,3.0,0.0,0.0,0.0,2.0,13.0,0.0,0.0,6.0,2.0,10.0,0.0,12.0,25.0,11.0,3.0,14.0,15.0,0.0,19.0,20.0,4.0,7.0,2.0,4.0,10.0,23.0,0.0,14.0,12.0,11.0,0.0,7.0,14.0,2.0,25.0,1.0,0.0,28.0,8.0,32.0,1.0,14.0,11.0,7.0,0.0,5.0,11.0,6.0,0.0,15.0,14.0,37.0,50.0,21.0,0.0,12.0,14.0,8.0,0.0,26.0,6.0,15.0,29.0,38.0,2.0,41.0,3.0,36.0,27.0,0.0,13.0,65.0,39.0,61.0,44.0,8.0,57.0,42.0,5.0,84.0,0.0,78.0,12.0,80.0,0.0,101.0,90.0,1.0,37.0
-1.0,5.0,0.0,7.0,0.0,6.0,0.0,1.0,14.0,0.0,8.0,1.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,10.0,1.0,0.0,2.0,4.0,4.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,15.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,6.0,4.0,3.0,4.0,0.0,2.0,4.0,4.0,2.0,4.0,0.0,0.0,3.0,6.0,1.0,6.0,1.0,7.0,2.0,0.0,0.0,4.0,1.0,5.0,13.0,1.0,10.0,4.0,1.0,0.0,0.0,7.0,7.0,18.0,4.0,16.0,6.0,0.0,6.0
-0.0,2.0,0.0,6.0,3.0,5.0,1.0,0.0,4.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,0.0,2.0,11.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,1.0,3.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,3.0,0.0,2.0,0.0,0.0,4.0,2.0,0.0,2.0,0.0,4.0,2.0,0.0,0.0,5.0,1.0,6.0,5.0,0.0,8.0,3.0,0.0,0.0,1.0,0.0,2.0,6.0,0.0,9.0,2.0,0.0,4.0
-0.0,3.0,0.0,8.0,6.0,3.0,2.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,6.0,0.0,1.0,3.0,0.0,0.0,6.0,1.0,0.0,3.0,7.0,5.0,0.0,1.0,4.0,1.0,0.0,0.0,1.0,3.0,0.0,1.0,0.0,8.0,1.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,7.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,0.0,0.0,5.0,3.0,0.0,4.0,0.0,5.0,3.0,1.0,0.0,6.0,0.0,5.0,5.0,0.0,10.0,16.0,0.0,0.0,0.0,2.0,1.0,4.0,0.0,22.0,4.0,1.0,0.0
-1.0,13.0,2.0,12.0,3.0,12.0,4.0,0.0,19.0,0.0,8.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,3.0,1.0,0.0,10.0,0.0,0.0,9.0,15.0,10.0,0.0,0.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,30.0,0.0,2.0,2.0,1.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,3.0,0.0,8.0,1.0,0.0,0.0,1.0,2.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,2.0,0.0,2.0,1.0,0.0,0.0,8.0,1.0,2.0,8.0,0.0,12.0,9.0,0.0,0.0,0.0,2.0,11.0,8.0,0.0,15.0,2.0,1.0,3.0
-1.0,8.0,0.0,3.0,6.0,2.0,3.0,0.0,4.0,3.0,10.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,0.0,2.0,4.0,5.0,4.0,3.0,2.0,6.0,3.0,15.0,1.0,2.0,4.0,5.0,1.0,1.0,3.0,10.0,6.0,1.0,1.0,7.0,11.0,0.0,1.0,11.0,0.0,11.0,0.0,0.0,4.0,2.0,4.0,0.0,2.0,4.0,2.0,1.0,1.0,6.0,1.0,1.0,2.0,4.0,8.0,10.0,9.0,0.0,2.0,14.0,4.0,0.0,3.0,75.0,0.0,3.0,7.0,1.0,6.0,0.0,11.0,12.0,1.0,0.0,1.0,2.0,10.0,8.0,3.0,11.0,45.0,1.0,9.0,0.0,21.0,12.0,17.0,1.0,97.0,6.0,1.0,8.0
-7.0,9.0,0.0,17.0,18.0,14.0,7.0,0.0,17.0,8.0,9.0,5.0,0.0,1.0,0.0,3.0,2.0,0.0,0.0,8.0,1.0,9.0,21.0,8.0,15.0,4.0,16.0,19.0,0.0,6.0,4.0,7.0,19.0,0.0,10.0,5.0,6.0,1.0,12.0,17.0,6.0,0.0,13.0,6.0,0.0,24.0,0.0,0.0,26.0,0.0,14.0,0.0,12.0,2.0,21.0,0.0,1.0,14.0,7.0,0.0,6.0,11.0,16.0,30.0,24.0,1.0,1.0,24.0,17.0,0.0,14.0,38.0,3.0,20.0,15.0,0.0,28.0,1.0,19.0,29.0,1.0,1.0,21.0,13.0,24.0,28.0,30.0,40.0,34.0,0.0,37.0,0.0,76.0,30.0,51.0,3.0,69.0,27.0,3.0,27.0
-10.0,24.0,0.0,20.0,16.0,33.0,9.0,4.0,27.0,16.0,35.0,6.0,0.0,3.0,2.0,4.0,7.0,0.0,1.0,1.0,7.0,1.0,19.0,8.0,12.0,1.0,31.0,25.0,0.0,9.0,6.0,44.0,15.0,0.0,7.0,35.0,8.0,0.0,11.0,28.0,47.0,0.0,11.0,50.0,0.0,10.0,0.0,0.0,25.0,2.0,23.0,1.0,5.0,7.0,13.0,2.0,5.0,8.0,4.0,0.0,21.0,20.0,32.0,57.0,16.0,0.0,4.0,43.0,18.0,0.0,26.0,120.0,11.0,31.0,38.0,0.0,32.0,0.0,46.0,27.0,6.0,1.0,22.0,14.0,32.0,34.0,45.0,31.0,107.0,2.0,17.0,1.0,69.0,46.0,46.0,4.0,222.0,43.0,2.0,17.0
-4.0,8.0,0.0,8.0,19.0,11.0,7.0,0.0,21.0,13.0,20.0,2.0,0.0,5.0,0.0,9.0,13.0,1.0,3.0,5.0,4.0,0.0,23.0,4.0,12.0,0.0,20.0,18.0,0.0,3.0,3.0,31.0,4.0,0.0,4.0,22.0,6.0,0.0,1.0,16.0,25.0,0.0,6.0,53.0,1.0,15.0,0.0,1.0,6.0,6.0,17.0,1.0,4.0,1.0,7.0,2.0,2.0,9.0,2.0,0.0,7.0,14.0,21.0,26.0,13.0,0.0,1.0,38.0,8.0,2.0,7.0,20.0,6.0,10.0,12.0,1.0,19.0,0.0,36.0,14.0,0.0,1.0,10.0,6.0,27.0,24.0,17.0,27.0,98.0,2.0,51.0,1.0,68.0,72.0,47.0,7.0,142.0,24.0,3.0,16.0
-5.0,3.0,0.0,3.0,3.0,2.0,3.0,2.0,4.0,13.0,7.0,0.0,0.0,1.0,0.0,2.0,8.0,1.0,0.0,4.0,0.0,9.0,10.0,3.0,1.0,2.0,5.0,12.0,0.0,4.0,1.0,26.0,2.0,0.0,4.0,16.0,31.0,0.0,1.0,12.0,32.0,0.0,2.0,39.0,0.0,6.0,0.0,1.0,13.0,1.0,3.0,0.0,2.0,4.0,2.0,0.0,2.0,3.0,2.0,0.0,3.0,6.0,31.0,11.0,5.0,0.0,1.0,10.0,8.0,0.0,8.0,57.0,6.0,3.0,7.0,0.0,11.0,0.0,14.0,10.0,0.0,1.0,9.0,12.0,19.0,13.0,7.0,16.0,92.0,0.0,6.0,0.0,17.0,30.0,37.0,2.0,118.0,14.0,2.0,24.0
-6.0,9.0,0.0,6.0,8.0,9.0,3.0,1.0,6.0,8.0,2.0,1.0,0.0,2.0,1.0,9.0,1.0,0.0,1.0,7.0,5.0,0.0,4.0,5.0,5.0,3.0,5.0,7.0,1.0,9.0,2.0,14.0,2.0,0.0,1.0,18.0,18.0,4.0,8.0,9.0,25.0,0.0,5.0,11.0,5.0,13.0,1.0,5.0,8.0,1.0,13.0,0.0,3.0,1.0,4.0,1.0,0.0,12.0,2.0,0.0,9.0,1.0,16.0,19.0,4.0,0.0,5.0,26.0,6.0,0.0,14.0,18.0,7.0,29.0,37.0,2.0,37.0,1.0,34.0,14.0,4.0,5.0,10.0,9.0,24.0,46.0,12.0,38.0,67.0,2.0,8.0,1.0,22.0,40.0,40.0,7.0,115.0,8.0,0.0,43.0
-3.0,5.0,0.0,1.0,0.0,0.0,0.0,4.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,2.0,1.0,0.0,2.0,0.0,1.0,1.0,4.0,1.0,0.0,0.0,3.0,1.0,0.0,2.0,0.0,1.0,1.0,0.0,2.0,2.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,3.0,0.0,2.0,1.0,0.0,0.0,5.0,2.0,0.0,0.0,1.0,0.0,2.0,3.0,0.0,0.0,0.0,4.0,1.0,0.0,1.0,1.0,5.0,0.0,5.0,0.0,5.0,3.0,0.0,0.0,7.0,14.0,10.0,8.0,0.0,16.0,2.0,1.0,23.0
-26.0,5.0,4.0,10.0,16.0,8.0,6.0,21.0,10.0,7.0,19.0,4.0,0.0,2.0,6.0,15.0,0.0,4.0,38.0,18.0,13.0,6.0,16.0,14.0,16.0,28.0,6.0,13.0,0.0,20.0,18.0,21.0,9.0,2.0,8.0,16.0,11.0,30.0,8.0,16.0,23.0,15.0,12.0,13.0,0.0,28.0,7.0,16.0,29.0,16.0,22.0,11.0,15.0,1.0,17.0,23.0,27.0,31.0,13.0,1.0,68.0,9.0,30.0,32.0,48.0,41.0,70.0,44.0,40.0,40.0,35.0,24.0,36.0,42.0,40.0,21.0,49.0,19.0,45.0,63.0,17.0,76.0,7.0,124.0,69.0,61.0,80.0,52.0,84.0,189.0,54.0,61.0,113.0,112.0,156.0,188.0,191.0,226.0,9.0,933.0
-8.0,4.0,0.0,9.0,11.0,13.0,9.0,15.0,14.0,11.0,21.0,5.0,1.0,6.0,7.0,8.0,0.0,0.0,16.0,6.0,23.0,2.0,21.0,12.0,11.0,8.0,8.0,9.0,1.0,14.0,16.0,23.0,14.0,0.0,6.0,33.0,23.0,2.0,4.0,15.0,27.0,2.0,7.0,22.0,5.0,36.0,1.0,48.0,23.0,15.0,27.0,0.0,11.0,6.0,12.0,3.0,15.0,23.0,7.0,0.0,30.0,16.0,30.0,22.0,11.0,6.0,19.0,42.0,44.0,1.0,14.0,69.0,25.0,28.0,31.0,2.0,25.0,51.0,30.0,71.0,3.0,23.0,34.0,76.0,89.0,30.0,19.0,41.0,141.0,24.0,60.0,13.0,74.0,92.0,158.0,5.0,267.0,74.0,4.0,227.0
-8.0,8.0,0.0,15.0,1.0,6.0,4.0,9.0,10.0,14.0,10.0,1.0,16.0,1.0,0.0,4.0,0.0,0.0,2.0,7.0,11.0,10.0,17.0,21.0,7.0,5.0,11.0,11.0,2.0,8.0,10.0,6.0,4.0,0.0,3.0,20.0,19.0,3.0,2.0,12.0,15.0,1.0,9.0,5.0,4.0,40.0,6.0,4.0,19.0,1.0,31.0,7.0,13.0,9.0,5.0,4.0,9.0,2.0,4.0,1.0,10.0,5.0,21.0,32.0,5.0,24.0,16.0,26.0,23.0,11.0,20.0,25.0,16.0,23.0,17.0,10.0,32.0,51.0,25.0,33.0,9.0,16.0,2.0,50.0,38.0,36.0,21.0,30.0,56.0,22.0,44.0,9.0,28.0,34.0,79.0,92.0,129.0,128.0,4.0,212.0
-8.0,3.0,0.0,3.0,2.0,8.0,4.0,11.0,3.0,3.0,10.0,6.0,5.0,3.0,4.0,7.0,2.0,0.0,17.0,7.0,11.0,0.0,14.0,9.0,5.0,4.0,10.0,5.0,0.0,4.0,25.0,11.0,3.0,6.0,2.0,20.0,14.0,10.0,2.0,22.0,19.0,3.0,8.0,25.0,2.0,33.0,1.0,22.0,18.0,5.0,27.0,3.0,9.0,8.0,9.0,4.0,13.0,7.0,7.0,2.0,12.0,14.0,15.0,27.0,15.0,2.0,8.0,10.0,35.0,8.0,20.0,23.0,19.0,11.0,34.0,3.0,25.0,185.0,31.0,54.0,5.0,45.0,12.0,127.0,65.0,43.0,17.0,32.0,65.0,52.0,7.0,1.0,48.0,40.0,116.0,65.0,151.0,105.0,4.0,343.0
-10.0,17.0,0.0,7.0,15.0,7.0,1.0,7.0,16.0,8.0,18.0,0.0,0.0,2.0,1.0,9.0,1.0,0.0,2.0,5.0,10.0,2.0,24.0,10.0,3.0,6.0,13.0,10.0,0.0,16.0,17.0,9.0,5.0,2.0,3.0,10.0,22.0,23.0,2.0,23.0,5.0,3.0,8.0,17.0,0.0,30.0,9.0,32.0,25.0,0.0,19.0,2.0,7.0,11.0,5.0,17.0,13.0,7.0,6.0,0.0,14.0,10.0,21.0,25.0,7.0,11.0,15.0,22.0,26.0,11.0,23.0,18.0,15.0,34.0,28.0,4.0,40.0,133.0,32.0,60.0,2.0,18.0,19.0,64.0,66.0,54.0,35.0,41.0,66.0,19.0,19.0,25.0,32.0,44.0,82.0,125.0,150.0,138.0,2.0,295.0
-4.0,12.0,0.0,15.0,12.0,12.0,5.0,3.0,21.0,2.0,14.0,3.0,1.0,7.0,1.0,5.0,7.0,1.0,1.0,7.0,6.0,10.0,18.0,7.0,9.0,7.0,15.0,7.0,1.0,13.0,13.0,16.0,11.0,0.0,9.0,25.0,32.0,5.0,5.0,13.0,22.0,3.0,6.0,42.0,0.0,25.0,4.0,4.0,28.0,0.0,15.0,0.0,6.0,7.0,10.0,0.0,6.0,13.0,3.0,0.0,14.0,18.0,38.0,26.0,14.0,1.0,8.0,31.0,25.0,1.0,26.0,72.0,8.0,25.0,34.0,1.0,30.0,4.0,22.0,30.0,6.0,2.0,18.0,16.0,23.0,30.0,29.0,34.0,139.0,2.0,38.0,2.0,41.0,39.0,53.0,0.0,225.0,59.0,1.0,73.0
-0.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,1.0,6.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,0.0,2.0,7.0,2.0,0.0,1.0,1.0,0.0,2.0,4.0,1.0,6.0,1.0,2.0,4.0,0.0,1.0,0.0,2.0,0.0,0.0,4.0,1.0,0.0,0.0,1.0,1.0,1.0,4.0,1.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,4.0,0.0,1.0,7.0,0.0,3.0,0.0,5.0,14.0,4.0,2.0,6.0,14.0,1.0,3.0,1.0,3.0,4.0,4.0,6.0,35.0,5.0,0.0,36.0
-10.0,19.0,0.0,22.0,16.0,15.0,15.0,11.0,18.0,5.0,33.0,28.0,66.0,6.0,6.0,22.0,1.0,13.0,18.0,20.0,12.0,54.0,12.0,5.0,32.0,10.0,18.0,24.0,10.0,19.0,28.0,13.0,25.0,4.0,19.0,15.0,24.0,12.0,54.0,24.0,25.0,8.0,25.0,19.0,21.0,9.0,6.0,14.0,12.0,25.0,25.0,7.0,23.0,23.0,39.0,23.0,20.0,22.0,39.0,1.0,30.0,23.0,29.0,46.0,33.0,8.0,19.0,57.0,39.0,15.0,23.0,16.0,25.0,34.0,31.0,15.0,31.0,6.0,32.0,34.0,14.0,60.0,31.0,83.0,48.0,43.0,172.0,48.0,79.0,74.0,59.0,181.0,124.0,122.0,89.0,101.0,161.0,274.0,12.0,344.0
-5.0,2.0,0.0,2.0,0.0,3.0,2.0,1.0,3.0,0.0,2.0,1.0,0.0,0.0,3.0,4.0,2.0,0.0,10.0,1.0,5.0,0.0,4.0,3.0,6.0,0.0,4.0,0.0,0.0,1.0,4.0,0.0,3.0,0.0,4.0,1.0,1.0,0.0,4.0,3.0,1.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,2.0,0.0,1.0,4.0,8.0,4.0,5.0,0.0,4.0,6.0,3.0,0.0,1.0,2.0,2.0,2.0,3.0,1.0,0.0,4.0,4.0,6.0,5.0,1.0,2.0,0.0,2.0,0.0,5.0,2.0,4.0,7.0,2.0,3.0,6.0,8.0,13.0,3.0,8.0,3.0,4.0,4.0,6.0,5.0,7.0,22.0,10.0,4.0,4.0,16.0,2.0,18.0
-6.0,6.0,1.0,2.0,2.0,1.0,1.0,3.0,7.0,0.0,10.0,5.0,0.0,0.0,3.0,10.0,0.0,0.0,1.0,3.0,5.0,0.0,4.0,1.0,12.0,8.0,6.0,6.0,0.0,13.0,10.0,5.0,9.0,9.0,2.0,3.0,4.0,39.0,6.0,4.0,5.0,6.0,14.0,8.0,31.0,23.0,1.0,29.0,9.0,6.0,24.0,4.0,9.0,12.0,7.0,7.0,8.0,4.0,4.0,0.0,11.0,6.0,3.0,13.0,11.0,0.0,15.0,7.0,17.0,7.0,14.0,33.0,8.0,20.0,25.0,5.0,21.0,4.0,23.0,16.0,3.0,29.0,8.0,19.0,24.0,24.0,23.0,15.0,34.0,16.0,10.0,2.0,40.0,27.0,38.0,27.0,70.0,43.0,0.0,108.0
-10.0,13.0,0.0,13.0,13.0,10.0,3.0,9.0,11.0,14.0,23.0,3.0,9.0,5.0,1.0,6.0,2.0,1.0,2.0,11.0,17.0,30.0,4.0,19.0,8.0,16.0,11.0,17.0,0.0,21.0,20.0,29.0,8.0,3.0,6.0,10.0,26.0,32.0,3.0,10.0,15.0,0.0,3.0,20.0,3.0,30.0,4.0,30.0,11.0,8.0,64.0,6.0,7.0,8.0,12.0,15.0,8.0,9.0,5.0,2.0,9.0,16.0,21.0,56.0,16.0,24.0,19.0,31.0,29.0,28.0,42.0,24.0,31.0,24.0,32.0,8.0,36.0,3.0,34.0,42.0,11.0,23.0,18.0,105.0,67.0,37.0,68.0,41.0,91.0,35.0,40.0,44.0,39.0,76.0,77.0,138.0,194.0,159.0,5.0,231.0
-8.0,6.0,0.0,9.0,2.0,18.0,5.0,9.0,11.0,11.0,7.0,0.0,8.0,0.0,2.0,4.0,0.0,1.0,3.0,3.0,7.0,2.0,10.0,3.0,8.0,10.0,8.0,8.0,0.0,21.0,8.0,2.0,3.0,1.0,0.0,2.0,12.0,29.0,4.0,22.0,3.0,3.0,3.0,4.0,13.0,16.0,0.0,25.0,16.0,9.0,4.0,2.0,5.0,3.0,2.0,21.0,11.0,8.0,1.0,0.0,10.0,7.0,7.0,39.0,9.0,0.0,13.0,16.0,24.0,6.0,58.0,23.0,13.0,59.0,68.0,3.0,103.0,81.0,84.0,28.0,1.0,24.0,31.0,50.0,41.0,115.0,15.0,123.0,29.0,16.0,3.0,3.0,32.0,35.0,65.0,63.0,63.0,95.0,4.0,280.0
-12.0,14.0,4.0,17.0,16.0,9.0,4.0,7.0,8.0,12.0,20.0,0.0,0.0,2.0,13.0,14.0,2.0,23.0,6.0,9.0,15.0,14.0,12.0,11.0,12.0,14.0,17.0,15.0,0.0,20.0,12.0,16.0,6.0,2.0,4.0,13.0,25.0,35.0,2.0,22.0,11.0,14.0,7.0,7.0,1.0,42.0,1.0,49.0,20.0,18.0,23.0,8.0,8.0,6.0,8.0,35.0,19.0,25.0,4.0,4.0,40.0,14.0,16.0,49.0,34.0,14.0,22.0,17.0,31.0,14.0,34.0,26.0,44.0,45.0,30.0,25.0,28.0,9.0,22.0,65.0,9.0,44.0,4.0,94.0,75.0,58.0,45.0,47.0,90.0,110.0,16.0,31.0,72.0,95.0,111.0,137.0,137.0,96.0,6.0,476.0
-1.0,0.0,0.0,1.0,0.0,1.0,2.0,1.0,0.0,1.0,0.0,5.0,1.0,0.0,0.0,1.0,2.0,3.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,14.0,3.0,0.0,4.0,0.0,3.0,1.0,1.0,2.0,1.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,3.0,4.0,1.0,3.0,0.0,2.0,2.0,0.0,7.0,0.0,0.0,1.0,0.0,1.0,2.0,4.0,0.0,2.0,12.0,0.0,7.0,22.0,35.0,11.0,22.0,0.0,13.0,9.0,0.0,3.0,182.0,4.0,2.0,36.0,7.0,26.0,2.0,8.0,1.0,10.0,5.0,5.0,2.0,37.0,16.0,15.0,1.0,25.0
-19.0,9.0,7.0,18.0,5.0,18.0,6.0,11.0,21.0,6.0,14.0,2.0,0.0,3.0,2.0,17.0,4.0,0.0,10.0,8.0,19.0,5.0,13.0,5.0,19.0,35.0,10.0,12.0,0.0,41.0,36.0,18.0,13.0,2.0,9.0,21.0,4.0,21.0,13.0,24.0,21.0,4.0,11.0,14.0,0.0,4.0,7.0,45.0,4.0,4.0,9.0,7.0,14.0,152.0,8.0,32.0,24.0,9.0,7.0,1.0,25.0,11.0,14.0,20.0,13.0,17.0,23.0,32.0,26.0,9.0,61.0,15.0,37.0,67.0,88.0,8.0,72.0,3.0,91.0,32.0,11.0,63.0,145.0,86.0,53.0,104.0,42.0,78.0,60.0,94.0,35.0,31.0,56.0,103.0,59.0,121.0,216.0,118.0,3.0,383.0
-0.0,1.0,0.0,1.0,9.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,2.0,3.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,2.0,5.0,5.0,1.0,0.0,2.0,1.0,1.0,1.0,0.0,5.0,0.0,1.0,0.0,3.0,3.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,4.0,0.0,3.0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,2.0,2.0,2.0,0.0,1.0,0.0,1.0,2.0,0.0,2.0,3.0,5.0,3.0,11.0,0.0,2.0,11.0,0.0,1.0,1.0,2.0,1.0,8.0,5.0,36.0,0.0,0.0,2.0
-7.0,9.0,0.0,10.0,17.0,18.0,7.0,20.0,18.0,15.0,15.0,6.0,9.0,8.0,1.0,10.0,2.0,56.0,8.0,6.0,28.0,6.0,10.0,2.0,6.0,23.0,8.0,6.0,5.0,8.0,21.0,3.0,13.0,0.0,0.0,1.0,14.0,51.0,1.0,19.0,5.0,9.0,12.0,7.0,4.0,7.0,3.0,56.0,37.0,2.0,16.0,0.0,9.0,3.0,8.0,38.0,19.0,35.0,2.0,0.0,47.0,12.0,20.0,43.0,8.0,13.0,27.0,21.0,50.0,14.0,31.0,36.0,40.0,32.0,40.0,2.0,35.0,20.0,38.0,84.0,3.0,43.0,12.0,71.0,74.0,26.0,33.0,41.0,52.0,70.0,53.0,1.0,27.0,90.0,165.0,69.0,102.0,160.0,3.0,525.0
-25.0,35.0,3.0,32.0,31.0,18.0,14.0,40.0,40.0,10.0,16.0,18.0,2.0,20.0,4.0,23.0,15.0,1.0,12.0,19.0,24.0,5.0,46.0,31.0,55.0,25.0,44.0,54.0,7.0,18.0,43.0,55.0,19.0,4.0,6.0,25.0,30.0,19.0,31.0,67.0,50.0,19.0,28.0,44.0,25.0,34.0,10.0,40.0,15.0,16.0,51.0,8.0,30.0,15.0,35.0,9.0,20.0,42.0,25.0,1.0,47.0,19.0,40.0,52.0,29.0,115.0,20.0,60.0,47.0,15.0,36.0,38.0,36.0,68.0,59.0,12.0,90.0,4.0,93.0,81.0,12.0,34.0,38.0,68.0,86.0,122.0,96.0,121.0,136.0,42.0,122.0,2.0,70.0,165.0,174.0,189.0,282.0,202.0,354.0,338.0
-4.0,7.0,2.0,9.0,4.0,12.0,4.0,16.0,11.0,13.0,11.0,1.0,10.0,1.0,1.0,4.0,0.0,0.0,8.0,6.0,7.0,11.0,13.0,21.0,4.0,11.0,9.0,18.0,0.0,2.0,13.0,13.0,7.0,3.0,5.0,20.0,21.0,17.0,3.0,15.0,14.0,1.0,4.0,15.0,2.0,22.0,6.0,38.0,11.0,3.0,38.0,0.0,5.0,3.0,0.0,11.0,3.0,14.0,2.0,1.0,9.0,5.0,11.0,31.0,9.0,7.0,10.0,24.0,32.0,5.0,17.0,19.0,17.0,21.0,28.0,4.0,10.0,5.0,18.0,55.0,5.0,11.0,13.0,57.0,37.0,33.0,25.0,30.0,76.0,11.0,15.0,16.0,32.0,69.0,103.0,129.0,150.0,13.0,0.0,132.0
-21.0,11.0,6.0,6.0,5.0,7.0,5.0,12.0,19.0,8.0,8.0,25.0,5.0,16.0,6.0,28.0,4.0,13.0,27.0,15.0,14.0,7.0,9.0,26.0,42.0,13.0,12.0,17.0,30.0,18.0,16.0,33.0,37.0,3.0,7.0,26.0,12.0,44.0,12.0,15.0,29.0,15.0,36.0,23.0,0.0,25.0,5.0,41.0,16.0,28.0,16.0,9.0,31.0,7.0,6.0,9.0,15.0,54.0,41.0,20.0,27.0,7.0,42.0,13.0,38.0,0.0,32.0,60.0,42.0,4.0,53.0,13.0,26.0,36.0,30.0,6.0,43.0,9.0,39.0,59.0,29.0,43.0,102.0,67.0,77.0,55.0,99.0,64.0,124.0,37.0,131.0,4.0,160.0,254.0,219.0,36.0,185.0,288.0,7.0,415.0
-4.0,2.0,0.0,6.0,10.0,0.0,2.0,2.0,6.0,2.0,3.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,2.0,3.0,3.0,2.0,4.0,13.0,2.0,0.0,2.0,3.0,0.0,10.0,1.0,4.0,2.0,1.0,3.0,3.0,14.0,17.0,2.0,7.0,9.0,2.0,3.0,4.0,4.0,20.0,0.0,12.0,2.0,0.0,8.0,1.0,2.0,4.0,0.0,4.0,1.0,4.0,1.0,0.0,6.0,2.0,7.0,14.0,0.0,0.0,3.0,4.0,3.0,8.0,9.0,5.0,16.0,18.0,14.0,5.0,9.0,10.0,5.0,12.0,1.0,10.0,7.0,24.0,15.0,7.0,8.0,7.0,30.0,10.0,9.0,2.0,15.0,15.0,27.0,28.0,72.0,8.0,6.0,41.0
-5.0,6.0,1.0,14.0,14.0,11.0,1.0,6.0,9.0,20.0,12.0,13.0,0.0,9.0,3.0,4.0,17.0,4.0,6.0,5.0,5.0,0.0,18.0,2.0,7.0,6.0,7.0,12.0,0.0,10.0,13.0,8.0,19.0,2.0,13.0,4.0,13.0,0.0,4.0,15.0,14.0,7.0,10.0,7.0,0.0,8.0,20.0,0.0,16.0,7.0,9.0,6.0,8.0,9.0,13.0,6.0,8.0,20.0,9.0,4.0,25.0,7.0,19.0,11.0,11.0,4.0,6.0,26.0,17.0,1.0,10.0,12.0,5.0,26.0,42.0,8.0,34.0,0.0,39.0,50.0,4.0,4.0,46.0,23.0,19.0,58.0,43.0,52.0,29.0,2.0,246.0,93.0,25.0,81.0,98.0,3.0,123.0,64.0,3.0,44.0
-7.0,6.0,0.0,5.0,22.0,8.0,5.0,10.0,8.0,20.0,3.0,1.0,2.0,3.0,1.0,1.0,0.0,0.0,2.0,12.0,11.0,0.0,3.0,24.0,3.0,9.0,7.0,9.0,0.0,13.0,14.0,5.0,0.0,9.0,2.0,4.0,30.0,28.0,1.0,14.0,13.0,1.0,4.0,6.0,16.0,19.0,0.0,56.0,18.0,2.0,23.0,1.0,3.0,3.0,2.0,2.0,13.0,14.0,1.0,0.0,10.0,3.0,10.0,17.0,1.0,1.0,9.0,7.0,33.0,2.0,13.0,35.0,10.0,19.0,11.0,0.0,20.0,4.0,21.0,58.0,4.0,7.0,24.0,42.0,33.0,28.0,4.0,39.0,53.0,10.0,13.0,1.0,20.0,31.0,75.0,45.0,160.0,12.0,4.0,65.0
-8.0,15.0,0.0,4.0,2.0,10.0,12.0,11.0,6.0,37.0,8.0,7.0,15.0,4.0,5.0,18.0,0.0,0.0,10.0,19.0,20.0,50.0,13.0,12.0,13.0,11.0,7.0,12.0,5.0,0.0,32.0,5.0,8.0,6.0,8.0,8.0,12.0,45.0,8.0,14.0,15.0,2.0,13.0,9.0,14.0,4.0,3.0,56.0,15.0,9.0,26.0,0.0,17.0,7.0,10.0,25.0,13.0,19.0,11.0,0.0,16.0,6.0,13.0,35.0,27.0,14.0,14.0,30.0,31.0,10.0,12.0,20.0,31.0,28.0,26.0,6.0,28.0,7.0,20.0,39.0,5.0,30.0,56.0,72.0,41.0,66.0,39.0,37.0,73.0,57.0,36.0,177.0,74.0,77.0,103.0,161.0,127.0,86.0,0.0,287.0
-0.0,0.0,0.0,0.0,5.0,4.0,0.0,0.0,3.0,3.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,2.0,2.0,3.0,0.0,8.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,5.0,1.0,1.0,0.0,1.0,0.0,27.0,0.0,0.0,0.0,0.0,8.0,0.0,1.0,1.0,0.0,2.0,0.0,2.0,0.0,0.0,1.0,3.0,0.0,5.0,0.0,0.0,0.0,2.0,0.0,0.0,13.0,0.0,0.0,8.0,7.0,0.0,4.0,0.0,15.0,1.0,1.0,0.0,11.0,1.0,7.0,13.0,1.0,24.0,2.0,0.0,2.0,0.0,0.0,2.0,1.0,0.0,1.0,4.0,2.0,1.0
-5.0,3.0,8.0,2.0,2.0,1.0,6.0,6.0,3.0,16.0,8.0,4.0,1.0,7.0,1.0,7.0,2.0,0.0,1.0,7.0,6.0,0.0,7.0,1.0,3.0,3.0,4.0,1.0,2.0,5.0,7.0,1.0,10.0,3.0,11.0,3.0,13.0,1.0,12.0,6.0,2.0,4.0,1.0,6.0,0.0,26.0,18.0,0.0,8.0,5.0,15.0,7.0,11.0,8.0,3.0,2.0,16.0,11.0,6.0,1.0,13.0,0.0,16.0,4.0,2.0,16.0,20.0,10.0,14.0,13.0,15.0,11.0,6.0,11.0,26.0,1.0,26.0,4.0,22.0,25.0,17.0,12.0,7.0,14.0,37.0,24.0,19.0,27.0,38.0,14.0,3.0,25.0,10.0,33.0,70.0,41.0,55.0,75.0,337.0,52.0
-8.0,3.0,2.0,3.0,5.0,13.0,1.0,4.0,10.0,4.0,0.0,12.0,0.0,3.0,0.0,3.0,7.0,4.0,3.0,16.0,2.0,0.0,19.0,0.0,10.0,3.0,0.0,8.0,0.0,5.0,9.0,0.0,7.0,0.0,5.0,0.0,1.0,0.0,4.0,7.0,0.0,10.0,11.0,0.0,0.0,4.0,10.0,0.0,4.0,0.0,5.0,6.0,10.0,1.0,2.0,8.0,22.0,18.0,9.0,4.0,5.0,0.0,0.0,9.0,21.0,13.0,12.0,10.0,18.0,14.0,5.0,3.0,8.0,9.0,4.0,15.0,14.0,2.0,12.0,19.0,31.0,22.0,7.0,8.0,45.0,10.0,24.0,25.0,0.0,25.0,11.0,20.0,19.0,69.0,46.0,16.0,2.0,18.0,222.0,54.0
-0.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,2.0,6.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,1.0,4.0,0.0,0.0,4.0,3.0,1.0,0.0,0.0,0.0,1.0,2.0,7.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,3.0,1.0,1.0,0.0,1.0,0.0,0.0,3.0,3.0,0.0,0.0,5.0,2.0,1.0,0.0,4.0,8.0,4.0,4.0,1.0,1.0,3.0,5.0,1.0,4.0,5.0,5.0,3.0,13.0,6.0,0.0,32.0
-4.0,1.0,5.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,1.0,5.0,5.0,2.0,3.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,1.0,2.0,1.0,0.0,4.0,3.0,0.0,4.0,0.0,7.0,0.0,0.0,2.0,1.0,0.0,0.0,2.0,1.0,0.0,0.0,2.0,3.0,1.0,0.0,4.0,1.0,5.0,2.0,0.0,2.0,2.0,1.0,4.0,5.0,2.0,5.0,0.0,0.0,2.0,1.0,1.0,3.0,3.0,0.0,4.0,4.0,1.0,5.0,3.0,9.0,8.0,9.0,3.0,6.0,2.0,4.0,6.0,1.0,5.0,6.0,14.0,4.0,6.0,1.0,2.0,2.0,4.0,15.0,5.0,10.0,19.0,7.0,17.0,9.0,34.0
-5.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,3.0,2.0,2.0,0.0,0.0,2.0,3.0,2.0,1.0,0.0,3.0,0.0,0.0,3.0,1.0,1.0,2.0,2.0,1.0,5.0,0.0,2.0,4.0,2.0,1.0,5.0,2.0,0.0,0.0,0.0,6.0,0.0,2.0,1.0,4.0,3.0,7.0,6.0,1.0,4.0,6.0,8.0,4.0,5.0,14.0,8.0,8.0,5.0,1.0,26.0
-2.0,2.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,4.0,3.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,2.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,2.0,1.0,4.0,0.0,2.0,1.0,0.0,2.0,2.0,0.0,2.0,1.0,1.0,0.0,0.0,6.0,4.0,2.0,2.0,2.0,1.0,4.0,2.0,6.0,0.0,3.0,0.0,1.0,4.0,1.0,0.0,2.0,5.0,4.0,8.0,2.0,1.0,7.0,5.0,4.0,3.0,1.0,2.0,1.0,5.0,5.0,7.0,1.0,7.0,7.0,6.0,3.0,2.0,7.0,11.0,1.0,4.0,3.0,9.0,10.0,14.0,27.0,12.0,3.0,44.0
-8.0,2.0,0.0,2.0,1.0,1.0,2.0,7.0,1.0,6.0,3.0,3.0,11.0,0.0,0.0,7.0,0.0,1.0,14.0,3.0,1.0,0.0,0.0,11.0,7.0,20.0,2.0,5.0,0.0,16.0,10.0,0.0,6.0,0.0,2.0,5.0,3.0,6.0,7.0,4.0,0.0,0.0,4.0,2.0,10.0,4.0,0.0,8.0,2.0,1.0,18.0,6.0,9.0,5.0,4.0,3.0,6.0,5.0,6.0,1.0,5.0,1.0,4.0,4.0,14.0,4.0,14.0,9.0,13.0,9.0,11.0,3.0,17.0,13.0,27.0,12.0,20.0,7.0,14.0,13.0,32.0,30.0,21.0,20.0,30.0,23.0,27.0,17.0,23.0,32.0,6.0,8.0,46.0,33.0,39.0,43.0,27.0,25.0,19.0,120.0
-1.0,2.0,0.0,2.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,1.0,0.0,4.0,0.0,1.0,1.0,0.0,1.0,3.0,1.0,2.0,3.0,2.0,2.0,1.0,0.0,0.0,1.0,3.0,1.0,0.0,1.0,1.0,1.0,3.0,0.0,0.0,4.0,1.0,0.0,3.0,0.0,0.0,0.0,1.0,2.0,4.0,5.0,5.0,2.0,1.0,3.0,3.0,5.0,2.0,0.0,1.0,4.0,0.0,4.0,0.0,3.0,4.0,3.0,2.0,3.0,9.0,9.0,7.0,7.0,5.0,4.0,3.0,3.0,6.0,8.0,8.0,10.0,7.0,9.0,14.0,23.0,30.0
-29.0,12.0,17.0,19.0,30.0,14.0,13.0,22.0,20.0,12.0,18.0,45.0,38.0,38.0,4.0,27.0,60.0,0.0,36.0,32.0,25.0,8.0,19.0,7.0,33.0,22.0,13.0,19.0,2.0,32.0,36.0,15.0,36.0,8.0,45.0,11.0,15.0,47.0,59.0,40.0,17.0,54.0,51.0,19.0,0.0,9.0,52.0,27.0,16.0,30.0,33.0,78.0,61.0,9.0,25.0,65.0,68.0,38.0,65.0,93.0,67.0,12.0,19.0,21.0,54.0,138.0,97.0,78.0,92.0,61.0,41.0,31.0,92.0,39.0,41.0,83.0,60.0,8.0,40.0,100.0,68.0,63.0,27.0,84.0,131.0,55.0,106.0,36.0,67.0,146.0,28.0,99.0,170.0,210.0,222.0,299.0,177.0,327.0,324.0,619.0
-0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,2.0,1.0,0.0,2.0,1.0,4.0,3.0,0.0,3.0,0.0,5.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,1.0,3.0,1.0,0.0,3.0,2.0,3.0,6.0,1.0,0.0,2.0,1.0,2.0,1.0,7.0,0.0,1.0,1.0,2.0,1.0,5.0,0.0,3.0,6.0,0.0,8.0,4.0,10.0,4.0,7.0,5.0,4.0,8.0,3.0,2.0,2.0,2.0,4.0,12.0,15.0,21.0,4.0,1.0,11.0
-0.0,0.0,0.0,7.0,3.0,0.0,1.0,0.0,1.0,1.0,2.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,2.0,2.0,0.0,1.0,1.0,0.0,3.0,0.0,0.0,1.0,1.0,3.0,0.0,1.0,3.0,0.0,0.0,1.0,1.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,5.0,0.0,1.0,1.0,2.0,1.0,0.0,1.0,0.0,1.0,1.0,4.0,0.0,1.0,3.0,1.0,0.0,2.0,7.0,0.0,0.0,1.0,0.0,0.0,2.0,3.0,0.0,1.0,1.0,5.0,2.0,4.0,0.0,1.0,3.0,8.0,3.0,3.0,5.0,2.0,2.0,4.0,3.0,6.0,3.0,7.0,3.0,9.0,1.0,4.0,20.0
-4.0,3.0,18.0,3.0,3.0,4.0,1.0,5.0,1.0,4.0,0.0,2.0,0.0,6.0,0.0,1.0,1.0,14.0,3.0,3.0,3.0,1.0,5.0,1.0,2.0,2.0,3.0,2.0,0.0,3.0,4.0,3.0,13.0,0.0,3.0,0.0,1.0,3.0,7.0,6.0,1.0,6.0,2.0,2.0,0.0,1.0,13.0,1.0,5.0,2.0,0.0,17.0,4.0,0.0,3.0,5.0,9.0,10.0,12.0,30.0,5.0,2.0,2.0,4.0,9.0,3.0,2.0,7.0,8.0,2.0,15.0,8.0,8.0,1.0,10.0,4.0,7.0,4.0,10.0,7.0,18.0,13.0,8.0,10.0,15.0,13.0,27.0,11.0,9.0,5.0,6.0,23.0,20.0,19.0,22.0,44.0,21.0,25.0,61.0,65.0
-10.0,1.0,7.0,2.0,2.0,4.0,0.0,7.0,5.0,3.0,4.0,3.0,2.0,3.0,0.0,11.0,6.0,2.0,4.0,11.0,11.0,0.0,1.0,1.0,9.0,0.0,3.0,6.0,9.0,9.0,1.0,1.0,7.0,1.0,4.0,0.0,3.0,2.0,18.0,12.0,2.0,6.0,19.0,4.0,0.0,4.0,5.0,2.0,5.0,0.0,6.0,1.0,6.0,11.0,5.0,13.0,10.0,12.0,7.0,5.0,17.0,5.0,1.0,8.0,13.0,17.0,10.0,16.0,19.0,11.0,19.0,2.0,22.0,27.0,22.0,8.0,42.0,5.0,26.0,11.0,23.0,20.0,15.0,13.0,17.0,44.0,19.0,24.0,6.0,26.0,10.0,14.0,46.0,51.0,23.0,53.0,22.0,49.0,57.0,177.0
-0.0,3.0,1.0,3.0,0.0,0.0,1.0,4.0,1.0,0.0,3.0,2.0,0.0,14.0,3.0,1.0,10.0,4.0,12.0,5.0,3.0,1.0,3.0,0.0,1.0,2.0,1.0,0.0,0.0,4.0,2.0,1.0,2.0,0.0,8.0,0.0,0.0,8.0,0.0,4.0,0.0,8.0,2.0,3.0,1.0,1.0,8.0,8.0,1.0,6.0,1.0,10.0,12.0,0.0,6.0,11.0,10.0,4.0,9.0,7.0,6.0,2.0,3.0,3.0,4.0,2.0,8.0,2.0,7.0,7.0,6.0,0.0,12.0,6.0,7.0,15.0,11.0,9.0,11.0,8.0,17.0,16.0,7.0,7.0,12.0,11.0,19.0,4.0,8.0,16.0,15.0,35.0,20.0,39.0,24.0,16.0,15.0,22.0,14.0,79.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,3.0,2.0,1.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,1.0,0.0,1.0,0.0,2.0,1.0,0.0,5.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,0.0,1.0,4.0,0.0,0.0,0.0,3.0,1.0,1.0,4.0,1.0,0.0,0.0,0.0,1.0,1.0,3.0,2.0,0.0,2.0,1.0,1.0,6.0,2.0,5.0,2.0,3.0,1.0,2.0,2.0,5.0,3.0,2.0,3.0,1.0,5.0,6.0,6.0,3.0,12.0,5.0,6.0,2.0,2.0,6.0,7.0,8.0,5.0,7.0,9.0,9.0,15.0
-6.0,0.0,5.0,4.0,0.0,1.0,2.0,8.0,13.0,3.0,3.0,4.0,0.0,5.0,0.0,8.0,6.0,0.0,7.0,12.0,5.0,0.0,4.0,1.0,5.0,0.0,2.0,2.0,10.0,4.0,12.0,0.0,10.0,0.0,11.0,0.0,1.0,0.0,7.0,2.0,1.0,8.0,10.0,0.0,4.0,7.0,2.0,0.0,11.0,1.0,5.0,3.0,11.0,3.0,21.0,10.0,8.0,8.0,9.0,1.0,18.0,3.0,1.0,8.0,27.0,11.0,24.0,18.0,3.0,17.0,2.0,5.0,19.0,15.0,17.0,6.0,18.0,0.0,19.0,23.0,27.0,59.0,1.0,11.0,25.0,32.0,25.0,26.0,3.0,23.0,5.0,5.0,36.0,21.0,25.0,23.0,8.0,52.0,100.0,193.0
-4.0,1.0,1.0,1.0,2.0,2.0,0.0,5.0,6.0,2.0,0.0,6.0,4.0,14.0,2.0,6.0,6.0,0.0,2.0,4.0,4.0,1.0,2.0,0.0,3.0,2.0,0.0,0.0,1.0,7.0,7.0,0.0,3.0,0.0,2.0,1.0,4.0,4.0,5.0,3.0,1.0,4.0,3.0,3.0,8.0,0.0,8.0,1.0,9.0,6.0,7.0,3.0,10.0,4.0,11.0,3.0,4.0,9.0,6.0,2.0,9.0,1.0,0.0,3.0,8.0,4.0,7.0,5.0,6.0,4.0,8.0,4.0,13.0,4.0,8.0,4.0,8.0,2.0,10.0,6.0,4.0,8.0,3.0,9.0,11.0,19.0,17.0,11.0,8.0,13.0,14.0,37.0,22.0,27.0,20.0,41.0,30.0,25.0,25.0,103.0
-1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,1.0,4.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,0.0,2.0,0.0,0.0,1.0,4.0,4.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,4.0,0.0,2.0,0.0,0.0,1.0,4.0,0.0,3.0,2.0,1.0,0.0,1.0,2.0,2.0,0.0,6.0,1.0,2.0,3.0,8.0,9.0,5.0,1.0,8.0,4.0,10.0,0.0,0.0,1.0,2.0,23.0,3.0,28.0,5.0,0.0,46.0
-1.0,1.0,1.0,0.0,0.0,1.0,1.0,4.0,2.0,2.0,1.0,3.0,0.0,4.0,0.0,4.0,5.0,13.0,5.0,1.0,1.0,0.0,1.0,0.0,0.0,2.0,1.0,1.0,5.0,0.0,3.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,2.0,1.0,1.0,2.0,0.0,3.0,2.0,4.0,0.0,0.0,2.0,3.0,0.0,2.0,7.0,8.0,5.0,1.0,0.0,0.0,2.0,2.0,1.0,3.0,2.0,1.0,4.0,9.0,2.0,0.0,3.0,4.0,2.0,2.0,9.0,6.0,0.0,1.0,3.0,9.0,3.0,0.0,8.0,11.0,8.0,7.0,1.0,5.0,13.0,1.0,0.0,6.0,11.0,20.0,24.0,8.0,12.0,63.0,54.0
-4.0,13.0,0.0,9.0,6.0,13.0,6.0,1.0,13.0,18.0,8.0,2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,1.0,4.0,3.0,10.0,11.0,0.0,6.0,12.0,11.0,0.0,1.0,3.0,22.0,3.0,1.0,1.0,14.0,12.0,1.0,1.0,28.0,13.0,0.0,3.0,22.0,0.0,13.0,0.0,0.0,5.0,0.0,9.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,1.0,5.0,8.0,15.0,22.0,3.0,1.0,1.0,11.0,9.0,2.0,10.0,31.0,7.0,7.0,6.0,0.0,10.0,1.0,12.0,10.0,0.0,2.0,7.0,5.0,11.0,21.0,1.0,8.0,46.0,0.0,14.0,1.0,10.0,37.0,21.0,2.0,109.0,23.0,1.0,14.0
-2.0,6.0,0.0,1.0,19.0,6.0,0.0,5.0,5.0,6.0,4.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,2.0,2.0,1.0,8.0,2.0,3.0,1.0,5.0,2.0,0.0,14.0,3.0,5.0,2.0,8.0,0.0,1.0,14.0,11.0,1.0,8.0,2.0,1.0,3.0,6.0,15.0,13.0,0.0,18.0,7.0,0.0,2.0,0.0,0.0,2.0,1.0,3.0,4.0,1.0,0.0,0.0,6.0,4.0,1.0,8.0,2.0,0.0,6.0,7.0,7.0,0.0,18.0,18.0,5.0,5.0,12.0,0.0,17.0,2.0,13.0,23.0,0.0,1.0,3.0,8.0,33.0,22.0,7.0,26.0,15.0,8.0,1.0,1.0,12.0,14.0,16.0,15.0,64.0,5.0,1.0,29.0
-25.0,7.0,10.0,10.0,10.0,7.0,4.0,11.0,7.0,7.0,22.0,13.0,25.0,24.0,1.0,16.0,1.0,0.0,9.0,10.0,29.0,11.0,6.0,12.0,9.0,4.0,9.0,15.0,55.0,23.0,20.0,0.0,21.0,0.0,18.0,0.0,6.0,11.0,17.0,13.0,7.0,20.0,19.0,1.0,3.0,13.0,21.0,15.0,8.0,5.0,19.0,15.0,17.0,7.0,22.0,51.0,14.0,27.0,19.0,7.0,26.0,13.0,4.0,34.0,31.0,18.0,32.0,25.0,18.0,67.0,41.0,22.0,37.0,35.0,45.0,42.0,54.0,4.0,66.0,20.0,70.0,48.0,9.0,45.0,36.0,56.0,66.0,48.0,20.0,49.0,24.0,75.0,65.0,112.0,126.0,111.0,34.0,118.0,325.0,451.0
-20.0,7.0,31.0,7.0,6.0,5.0,16.0,15.0,14.0,20.0,15.0,21.0,0.0,17.0,0.0,7.0,17.0,0.0,30.0,17.0,15.0,0.0,12.0,0.0,11.0,7.0,10.0,7.0,4.0,16.0,12.0,0.0,18.0,3.0,26.0,1.0,6.0,4.0,36.0,11.0,0.0,51.0,21.0,1.0,0.0,14.0,27.0,0.0,14.0,7.0,14.0,20.0,19.0,3.0,13.0,45.0,24.0,47.0,36.0,51.0,39.0,8.0,5.0,30.0,29.0,20.0,32.0,43.0,29.0,16.0,34.0,15.0,46.0,19.0,31.0,94.0,40.0,1.0,40.0,45.0,73.0,36.0,40.0,42.0,60.0,90.0,49.0,23.0,7.0,45.0,11.0,76.0,71.0,93.0,137.0,114.0,36.0,178.0,487.0,248.0
-34.0,17.0,36.0,9.0,14.0,9.0,8.0,21.0,13.0,6.0,7.0,32.0,16.0,25.0,7.0,37.0,48.0,7.0,32.0,27.0,37.0,3.0,19.0,2.0,27.0,4.0,16.0,15.0,1.0,13.0,32.0,1.0,53.0,9.0,32.0,2.0,8.0,12.0,32.0,17.0,7.0,66.0,61.0,2.0,0.0,14.0,66.0,2.0,4.0,8.0,23.0,90.0,75.0,16.0,53.0,52.0,65.0,45.0,97.0,102.0,80.0,11.0,10.0,25.0,66.0,46.0,113.0,70.0,49.0,65.0,22.0,26.0,60.0,16.0,37.0,152.0,33.0,1.0,27.0,69.0,128.0,71.0,75.0,54.0,124.0,76.0,87.0,43.0,18.0,159.0,22.0,57.0,129.0,114.0,195.0,168.0,55.0,203.0,351.0,856.0
-10.0,4.0,0.0,3.0,11.0,8.0,7.0,9.0,4.0,5.0,11.0,14.0,13.0,7.0,1.0,11.0,6.0,0.0,2.0,9.0,25.0,0.0,11.0,2.0,8.0,11.0,6.0,3.0,10.0,5.0,12.0,5.0,14.0,2.0,3.0,9.0,11.0,21.0,14.0,6.0,10.0,7.0,15.0,10.0,18.0,22.0,7.0,11.0,12.0,2.0,7.0,13.0,27.0,7.0,12.0,25.0,17.0,22.0,20.0,0.0,22.0,10.0,9.0,22.0,19.0,23.0,24.0,24.0,21.0,34.0,31.0,19.0,47.0,10.0,23.0,31.0,37.0,3.0,40.0,38.0,26.0,38.0,8.0,61.0,67.0,44.0,53.0,32.0,33.0,58.0,48.0,87.0,57.0,109.0,83.0,123.0,111.0,160.0,24.0,424.0
-19.0,8.0,15.0,13.0,14.0,10.0,25.0,31.0,5.0,2.0,5.0,34.0,0.0,36.0,18.0,32.0,58.0,21.0,43.0,27.0,26.0,1.0,23.0,4.0,14.0,4.0,8.0,11.0,84.0,27.0,32.0,4.0,42.0,5.0,27.0,0.0,2.0,17.0,16.0,25.0,2.0,46.0,47.0,3.0,0.0,2.0,51.0,8.0,6.0,22.0,10.0,52.0,43.0,5.0,47.0,73.0,58.0,37.0,62.0,35.0,45.0,7.0,2.0,29.0,75.0,23.0,57.0,37.0,56.0,40.0,49.0,37.0,62.0,44.0,50.0,139.0,70.0,0.0,41.0,54.0,106.0,120.0,27.0,30.0,92.0,87.0,104.0,72.0,12.0,112.0,20.0,112.0,140.0,157.0,163.0,153.0,33.0,249.0,486.0,558.0
-16.0,17.0,33.0,11.0,24.0,9.0,16.0,15.0,11.0,2.0,13.0,35.0,3.0,34.0,7.0,25.0,34.0,2.0,27.0,26.0,18.0,1.0,18.0,1.0,34.0,6.0,12.0,9.0,58.0,15.0,32.0,0.0,52.0,0.0,12.0,5.0,4.0,8.0,18.0,25.0,8.0,39.0,42.0,3.0,0.0,6.0,20.0,1.0,35.0,21.0,6.0,13.0,35.0,11.0,67.0,54.0,49.0,48.0,24.0,65.0,51.0,7.0,8.0,26.0,58.0,54.0,62.0,31.0,34.0,28.0,22.0,20.0,55.0,20.0,34.0,9.0,50.0,2.0,30.0,82.0,77.0,156.0,11.0,47.0,120.0,48.0,53.0,45.0,10.0,104.0,37.0,75.0,151.0,123.0,158.0,169.0,47.0,109.0,922.0,693.0
-25.0,15.0,17.0,13.0,4.0,7.0,22.0,33.0,12.0,30.0,27.0,28.0,1.0,22.0,10.0,26.0,15.0,55.0,21.0,45.0,17.0,9.0,9.0,12.0,22.0,3.0,8.0,20.0,5.0,55.0,42.0,1.0,50.0,6.0,43.0,2.0,9.0,26.0,28.0,20.0,4.0,48.0,33.0,7.0,65.0,8.0,33.0,7.0,30.0,47.0,46.0,52.0,51.0,9.0,96.0,62.0,78.0,60.0,49.0,28.0,58.0,16.0,4.0,49.0,56.0,16.0,82.0,40.0,41.0,65.0,76.0,13.0,52.0,40.0,52.0,72.0,88.0,7.0,63.0,69.0,120.0,165.0,39.0,54.0,93.0,122.0,174.0,62.0,21.0,142.0,23.0,132.0,137.0,87.0,167.0,232.0,42.0,318.0,1076.0,750.0
-11.0,11.0,30.0,8.0,12.0,8.0,11.0,13.0,11.0,20.0,11.0,24.0,1.0,33.0,2.0,22.0,13.0,2.0,20.0,12.0,33.0,2.0,22.0,2.0,8.0,8.0,11.0,8.0,2.0,13.0,18.0,6.0,27.0,2.0,24.0,6.0,9.0,0.0,26.0,11.0,4.0,6.0,12.0,4.0,1.0,11.0,64.0,1.0,6.0,16.0,13.0,19.0,22.0,8.0,15.0,19.0,19.0,62.0,17.0,27.0,22.0,11.0,5.0,15.0,10.0,4.0,20.0,48.0,26.0,16.0,28.0,17.0,15.0,33.0,43.0,113.0,61.0,0.0,45.0,40.0,30.0,26.0,36.0,29.0,38.0,59.0,67.0,57.0,24.0,20.0,210.0,17.0,39.0,49.0,216.0,24.0,55.0,103.0,58.0,113.0
-19.0,7.0,6.0,2.0,9.0,8.0,8.0,18.0,12.0,15.0,17.0,16.0,67.0,16.0,4.0,23.0,6.0,0.0,17.0,20.0,17.0,4.0,6.0,14.0,20.0,8.0,5.0,12.0,9.0,16.0,20.0,0.0,16.0,0.0,11.0,5.0,6.0,14.0,15.0,4.0,3.0,14.0,28.0,1.0,7.0,9.0,14.0,8.0,11.0,7.0,18.0,22.0,20.0,15.0,38.0,29.0,27.0,34.0,24.0,0.0,25.0,4.0,12.0,21.0,23.0,31.0,44.0,32.0,21.0,22.0,26.0,8.0,44.0,25.0,46.0,27.0,34.0,4.0,57.0,40.0,31.0,52.0,11.0,50.0,48.0,43.0,71.0,84.0,17.0,74.0,36.0,80.0,125.0,142.0,87.0,113.0,48.0,127.0,282.0,401.0
-15.0,13.0,48.0,8.0,13.0,10.0,7.0,28.0,17.0,22.0,21.0,16.0,11.0,36.0,2.0,56.0,27.0,1.0,39.0,66.0,36.0,4.0,14.0,9.0,34.0,6.0,14.0,23.0,50.0,22.0,40.0,5.0,33.0,1.0,19.0,8.0,24.0,15.0,43.0,28.0,9.0,54.0,40.0,11.0,0.0,19.0,50.0,3.0,18.0,4.0,50.0,56.0,50.0,55.0,29.0,55.0,72.0,73.0,46.0,12.0,52.0,14.0,14.0,35.0,48.0,78.0,51.0,72.0,49.0,50.0,54.0,31.0,71.0,59.0,64.0,63.0,81.0,1.0,63.0,76.0,122.0,65.0,119.0,66.0,95.0,129.0,90.0,120.0,32.0,139.0,70.0,74.0,181.0,200.0,193.0,205.0,112.0,170.0,320.0,691.0
-28.0,12.0,2.0,13.0,14.0,14.0,7.0,17.0,7.0,14.0,28.0,25.0,29.0,8.0,8.0,17.0,5.0,10.0,17.0,17.0,28.0,8.0,15.0,12.0,12.0,12.0,20.0,32.0,0.0,17.0,21.0,25.0,12.0,3.0,6.0,19.0,19.0,57.0,22.0,23.0,15.0,29.0,33.0,18.0,6.0,9.0,23.0,46.0,29.0,7.0,10.0,13.0,19.0,19.0,12.0,31.0,26.0,20.0,25.0,0.0,25.0,29.0,23.0,38.0,26.0,24.0,33.0,32.0,61.0,29.0,64.0,31.0,75.0,74.0,52.0,37.0,75.0,5.0,45.0,80.0,53.0,69.0,12.0,123.0,80.0,69.0,78.0,71.0,121.0,88.0,89.0,163.0,65.0,144.0,132.0,247.0,208.0,323.0,35.0,573.0
-20.0,4.0,15.0,7.0,17.0,10.0,6.0,17.0,14.0,20.0,10.0,27.0,10.0,33.0,1.0,25.0,11.0,0.0,24.0,23.0,34.0,6.0,11.0,17.0,12.0,36.0,10.0,23.0,19.0,6.0,20.0,6.0,31.0,7.0,16.0,16.0,16.0,14.0,24.0,35.0,15.0,15.0,21.0,8.0,0.0,28.0,34.0,21.0,12.0,3.0,42.0,6.0,40.0,17.0,17.0,27.0,27.0,50.0,49.0,11.0,34.0,8.0,13.0,30.0,17.0,30.0,31.0,49.0,48.0,13.0,23.0,9.0,53.0,23.0,40.0,21.0,49.0,10.0,43.0,95.0,40.0,36.0,73.0,65.0,101.0,83.0,58.0,41.0,53.0,46.0,117.0,150.0,112.0,162.0,160.0,176.0,105.0,198.0,104.0,413.0
-28.0,14.0,6.0,10.0,19.0,11.0,6.0,22.0,32.0,9.0,18.0,28.0,0.0,34.0,18.0,17.0,28.0,0.0,17.0,28.0,14.0,5.0,22.0,20.0,21.0,9.0,17.0,25.0,0.0,23.0,35.0,9.0,26.0,5.0,69.0,7.0,21.0,26.0,51.0,30.0,15.0,18.0,42.0,11.0,0.0,16.0,72.0,25.0,12.0,22.0,27.0,37.0,51.0,4.0,17.0,19.0,54.0,19.0,45.0,4.0,35.0,11.0,16.0,26.0,46.0,49.0,57.0,37.0,44.0,50.0,72.0,15.0,58.0,40.0,70.0,31.0,84.0,3.0,63.0,50.0,50.0,54.0,26.0,80.0,92.0,86.0,101.0,79.0,58.0,75.0,21.0,195.0,161.0,233.0,169.0,151.0,122.0,278.0,260.0,373.0
-18.0,9.0,5.0,8.0,6.0,9.0,4.0,6.0,8.0,3.0,6.0,11.0,6.0,4.0,8.0,4.0,1.0,5.0,12.0,13.0,10.0,3.0,14.0,7.0,16.0,11.0,6.0,5.0,0.0,20.0,15.0,1.0,14.0,5.0,28.0,5.0,10.0,16.0,10.0,13.0,3.0,18.0,37.0,2.0,0.0,6.0,21.0,9.0,13.0,61.0,7.0,28.0,37.0,0.0,39.0,14.0,28.0,16.0,33.0,0.0,21.0,6.0,2.0,30.0,24.0,12.0,19.0,33.0,29.0,23.0,55.0,20.0,31.0,49.0,68.0,45.0,59.0,6.0,48.0,26.0,66.0,29.0,3.0,38.0,61.0,101.0,86.0,45.0,19.0,66.0,21.0,41.0,85.0,135.0,85.0,108.0,46.0,91.0,180.0,220.0
-12.0,15.0,33.0,12.0,9.0,9.0,4.0,20.0,17.0,1.0,7.0,30.0,0.0,15.0,9.0,27.0,15.0,0.0,27.0,18.0,18.0,5.0,11.0,7.0,21.0,1.0,4.0,6.0,17.0,13.0,26.0,1.0,20.0,5.0,30.0,1.0,3.0,3.0,21.0,12.0,1.0,25.0,40.0,6.0,63.0,0.0,7.0,1.0,9.0,22.0,9.0,49.0,30.0,8.0,54.0,22.0,53.0,47.0,51.0,75.0,30.0,3.0,3.0,18.0,67.0,13.0,33.0,34.0,29.0,26.0,17.0,11.0,32.0,19.0,18.0,22.0,40.0,3.0,25.0,55.0,50.0,122.0,84.0,17.0,95.0,70.0,94.0,18.0,14.0,93.0,5.0,34.0,165.0,69.0,98.0,146.0,25.0,157.0,491.0,611.0
-10.0,5.0,35.0,7.0,8.0,8.0,5.0,16.0,5.0,0.0,3.0,13.0,0.0,18.0,0.0,8.0,11.0,1.0,14.0,21.0,7.0,1.0,11.0,4.0,12.0,1.0,5.0,2.0,23.0,6.0,21.0,0.0,19.0,4.0,13.0,0.0,1.0,1.0,7.0,7.0,0.0,29.0,13.0,0.0,64.0,1.0,21.0,3.0,24.0,2.0,0.0,4.0,20.0,5.0,24.0,39.0,28.0,45.0,20.0,5.0,30.0,6.0,0.0,7.0,12.0,17.0,19.0,12.0,31.0,15.0,17.0,14.0,23.0,11.0,18.0,19.0,36.0,1.0,17.0,35.0,34.0,57.0,12.0,24.0,58.0,27.0,39.0,24.0,1.0,34.0,9.0,58.0,45.0,26.0,70.0,63.0,8.0,79.0,671.0,334.0
-20.0,4.0,1.0,17.0,16.0,14.0,6.0,15.0,8.0,10.0,17.0,14.0,0.0,25.0,6.0,17.0,12.0,11.0,10.0,12.0,16.0,0.0,13.0,13.0,33.0,5.0,7.0,13.0,0.0,25.0,23.0,9.0,28.0,1.0,34.0,12.0,17.0,48.0,30.0,19.0,18.0,16.0,15.0,10.0,0.0,5.0,24.0,24.0,21.0,26.0,10.0,26.0,44.0,3.0,27.0,33.0,32.0,20.0,37.0,0.0,36.0,4.0,17.0,26.0,60.0,19.0,19.0,36.0,30.0,52.0,64.0,12.0,35.0,49.0,72.0,29.0,62.0,13.0,55.0,35.0,70.0,78.0,5.0,65.0,53.0,95.0,122.0,63.0,64.0,97.0,40.0,155.0,125.0,172.0,109.0,201.0,154.0,243.0,149.0,475.0
-16.0,2.0,16.0,2.0,4.0,6.0,8.0,14.0,5.0,5.0,14.0,25.0,11.0,32.0,1.0,13.0,26.0,0.0,37.0,16.0,17.0,12.0,4.0,0.0,14.0,3.0,4.0,6.0,22.0,18.0,12.0,0.0,15.0,6.0,33.0,2.0,14.0,1.0,30.0,8.0,0.0,40.0,26.0,0.0,10.0,2.0,31.0,1.0,2.0,4.0,12.0,52.0,42.0,7.0,42.0,29.0,32.0,31.0,28.0,26.0,43.0,4.0,0.0,25.0,29.0,23.0,21.0,36.0,26.0,36.0,24.0,18.0,44.0,18.0,27.0,76.0,36.0,2.0,34.0,32.0,82.0,51.0,30.0,27.0,39.0,31.0,70.0,37.0,5.0,60.0,29.0,54.0,80.0,80.0,87.0,115.0,22.0,127.0,398.0,391.0
-2.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,4.0,0.0,1.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,4.0,5.0,0.0,0.0,0.0,0.0,3.0,3.0,1.0,3.0,2.0,3.0,7.0,0.0,1.0,5.0,5.0,6.0,2.0,3.0,1.0,4.0,1.0,3.0,1.0,2.0,0.0,6.0,0.0,6.0,6.0,0.0,10.0
-5.0,19.0,1.0,20.0,4.0,11.0,21.0,6.0,27.0,11.0,14.0,9.0,0.0,4.0,6.0,13.0,11.0,0.0,5.0,6.0,9.0,8.0,14.0,10.0,15.0,1.0,11.0,12.0,0.0,12.0,13.0,7.0,18.0,0.0,24.0,5.0,9.0,1.0,23.0,26.0,14.0,0.0,19.0,10.0,1.0,5.0,12.0,0.0,11.0,9.0,12.0,3.0,16.0,8.0,13.0,1.0,8.0,6.0,13.0,0.0,13.0,18.0,12.0,29.0,14.0,0.0,2.0,18.0,27.0,0.0,13.0,21.0,6.0,22.0,12.0,0.0,31.0,1.0,15.0,28.0,4.0,9.0,28.0,56.0,31.0,29.0,139.0,33.0,35.0,0.0,15.0,33.0,76.0,27.0,62.0,2.0,67.0,38.0,44.0,58.0
-11.0,32.0,0.0,9.0,7.0,24.0,14.0,27.0,20.0,9.0,12.0,3.0,0.0,9.0,2.0,10.0,2.0,0.0,16.0,13.0,14.0,1.0,24.0,11.0,16.0,2.0,21.0,30.0,26.0,11.0,15.0,23.0,22.0,4.0,3.0,34.0,28.0,20.0,13.0,34.0,19.0,3.0,22.0,25.0,0.0,22.0,0.0,25.0,14.0,22.0,44.0,6.0,2.0,12.0,12.0,2.0,7.0,10.0,8.0,0.0,14.0,15.0,28.0,45.0,16.0,2.0,17.0,71.0,35.0,9.0,20.0,57.0,21.0,22.0,18.0,3.0,30.0,176.0,32.0,58.0,4.0,16.0,7.0,63.0,64.0,54.0,14.0,36.0,100.0,24.0,135.0,3.0,82.0,97.0,116.0,7.0,217.0,93.0,2.0,273.0
-5.0,8.0,0.0,7.0,9.0,11.0,5.0,3.0,20.0,15.0,17.0,8.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,1.0,10.0,0.0,12.0,4.0,10.0,4.0,13.0,14.0,0.0,12.0,8.0,1.0,2.0,1.0,6.0,2.0,29.0,1.0,11.0,11.0,5.0,1.0,5.0,2.0,0.0,18.0,0.0,0.0,9.0,0.0,26.0,4.0,9.0,40.0,10.0,1.0,5.0,4.0,5.0,0.0,13.0,9.0,3.0,12.0,14.0,0.0,6.0,24.0,27.0,1.0,19.0,13.0,9.0,10.0,14.0,1.0,8.0,2.0,23.0,27.0,5.0,1.0,52.0,18.0,50.0,14.0,20.0,25.0,8.0,9.0,45.0,1.0,28.0,40.0,42.0,1.0,25.0,40.0,3.0,43.0
-22.0,9.0,0.0,3.0,10.0,6.0,15.0,2.0,4.0,20.0,9.0,15.0,0.0,0.0,1.0,11.0,4.0,0.0,10.0,5.0,5.0,0.0,5.0,0.0,35.0,13.0,9.0,4.0,0.0,9.0,15.0,0.0,4.0,0.0,1.0,0.0,17.0,0.0,4.0,12.0,2.0,0.0,13.0,2.0,0.0,15.0,0.0,0.0,17.0,6.0,28.0,3.0,8.0,2.0,2.0,1.0,1.0,5.0,2.0,0.0,8.0,11.0,0.0,13.0,5.0,0.0,4.0,8.0,27.0,0.0,20.0,16.0,1.0,9.0,16.0,3.0,19.0,5.0,16.0,14.0,5.0,3.0,51.0,42.0,41.0,23.0,12.0,17.0,2.0,2.0,7.0,1.0,66.0,68.0,79.0,3.0,14.0,41.0,2.0,74.0
-15.0,14.0,0.0,14.0,22.0,11.0,3.0,2.0,19.0,7.0,9.0,9.0,1.0,2.0,1.0,9.0,3.0,1.0,4.0,5.0,19.0,11.0,7.0,0.0,11.0,7.0,11.0,12.0,0.0,8.0,10.0,3.0,12.0,1.0,5.0,3.0,8.0,0.0,14.0,11.0,8.0,0.0,8.0,9.0,0.0,14.0,1.0,1.0,18.0,0.0,11.0,1.0,8.0,43.0,11.0,3.0,0.0,12.0,7.0,0.0,12.0,11.0,7.0,25.0,10.0,0.0,10.0,18.0,11.0,0.0,11.0,12.0,10.0,13.0,10.0,2.0,18.0,3.0,20.0,25.0,0.0,7.0,28.0,34.0,43.0,11.0,18.0,18.0,20.0,7.0,79.0,0.0,41.0,28.0,35.0,0.0,42.0,50.0,1.0,48.0
-7.0,3.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,3.0,2.0,0.0,2.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,4.0,0.0,1.0,1.0,0.0,4.0,0.0,1.0,0.0,0.0,2.0,1.0,1.0,4.0,1.0,0.0,2.0,0.0,0.0,5.0,0.0,0.0,2.0,1.0,9.0,3.0,0.0,2.0,2.0,3.0,0.0,5.0,2.0,2.0,1.0,6.0,0.0,0.0,7.0,11.0,0.0,3.0,1.0,4.0,3.0,4.0,1.0,7.0,0.0,3.0,8.0,0.0,0.0,8.0,5.0,14.0,5.0,5.0,10.0,20.0,0.0,14.0,0.0,5.0,9.0,17.0,0.0,18.0,9.0,0.0,9.0
-2.0,0.0,0.0,0.0,3.0,6.0,4.0,0.0,2.0,2.0,0.0,0.0,4.0,0.0,0.0,6.0,2.0,0.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,1.0,3.0,1.0,0.0,1.0,7.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,3.0,0.0,2.0,6.0,6.0,0.0,1.0,1.0,1.0,0.0,1.0,2.0,1.0,3.0,2.0,0.0,0.0,3.0,6.0,2.0,3.0,2.0,1.0,4.0,2.0,0.0,3.0,1.0,2.0,9.0,0.0,3.0,3.0,19.0,9.0,1.0,2.0,6.0,9.0,0.0,7.0,0.0,6.0,7.0,9.0,1.0,13.0,5.0,0.0,13.0
-0.0,3.0,0.0,4.0,2.0,2.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,0.0,3.0,6.0,1.0,0.0,0.0,2.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,3.0,1.0,0.0,1.0,0.0,1.0,1.0,2.0,1.0,1.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,6.0,9.0,0.0,9.0,0.0,4.0,3.0,0.0,0.0,16.0,0.0,4.0,27.0,0.0,28.0,2.0,0.0,0.0,0.0,3.0,3.0,13.0,1.0,0.0,16.0,0.0,0.0
-7.0,17.0,0.0,28.0,5.0,15.0,8.0,6.0,24.0,6.0,14.0,7.0,0.0,1.0,2.0,8.0,11.0,2.0,5.0,9.0,13.0,8.0,15.0,2.0,16.0,11.0,13.0,25.0,0.0,24.0,9.0,4.0,5.0,2.0,1.0,1.0,6.0,0.0,18.0,42.0,6.0,0.0,9.0,5.0,0.0,4.0,0.0,4.0,2.0,0.0,12.0,1.0,2.0,5.0,3.0,0.0,5.0,5.0,1.0,3.0,9.0,4.0,2.0,28.0,12.0,0.0,3.0,11.0,8.0,1.0,45.0,12.0,3.0,86.0,92.0,0.0,67.0,0.0,31.0,23.0,1.0,0.0,79.0,17.0,43.0,128.0,10.0,186.0,30.0,4.0,2.0,3.0,18.0,28.0,86.0,1.0,34.0,14.0,0.0,45.0
-2.0,10.0,0.0,10.0,14.0,12.0,4.0,3.0,10.0,6.0,2.0,1.0,1.0,0.0,1.0,0.0,1.0,1.0,1.0,6.0,0.0,1.0,14.0,2.0,2.0,10.0,5.0,13.0,0.0,8.0,0.0,0.0,1.0,0.0,4.0,2.0,8.0,0.0,3.0,21.0,1.0,0.0,4.0,6.0,12.0,11.0,1.0,5.0,1.0,2.0,5.0,1.0,1.0,3.0,3.0,1.0,3.0,1.0,1.0,1.0,2.0,1.0,7.0,21.0,4.0,0.0,1.0,3.0,1.0,1.0,45.0,13.0,1.0,64.0,57.0,0.0,43.0,0.0,14.0,11.0,2.0,4.0,85.0,4.0,14.0,80.0,11.0,134.0,13.0,0.0,0.0,0.0,7.0,23.0,25.0,0.0,42.0,5.0,0.0,10.0
-4.0,16.0,0.0,14.0,14.0,11.0,3.0,2.0,4.0,2.0,5.0,5.0,0.0,0.0,2.0,4.0,10.0,0.0,4.0,6.0,5.0,4.0,11.0,2.0,11.0,13.0,12.0,15.0,0.0,6.0,8.0,0.0,9.0,0.0,6.0,1.0,6.0,0.0,13.0,19.0,0.0,1.0,9.0,1.0,0.0,4.0,2.0,0.0,1.0,2.0,11.0,3.0,8.0,7.0,3.0,1.0,9.0,8.0,2.0,0.0,4.0,1.0,1.0,21.0,6.0,0.0,1.0,8.0,5.0,0.0,20.0,10.0,2.0,63.0,57.0,0.0,44.0,1.0,20.0,7.0,5.0,1.0,55.0,7.0,28.0,105.0,13.0,141.0,4.0,2.0,3.0,1.0,15.0,23.0,50.0,1.0,13.0,8.0,0.0,9.0
-0.0,6.0,0.0,4.0,4.0,9.0,2.0,2.0,10.0,3.0,7.0,2.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,0.0,1.0,4.0,7.0,4.0,5.0,3.0,5.0,0.0,2.0,2.0,0.0,2.0,1.0,2.0,2.0,12.0,3.0,6.0,7.0,6.0,0.0,0.0,2.0,1.0,4.0,0.0,7.0,3.0,1.0,3.0,0.0,1.0,1.0,0.0,0.0,4.0,2.0,1.0,1.0,2.0,4.0,3.0,14.0,2.0,0.0,0.0,2.0,1.0,0.0,7.0,2.0,1.0,27.0,19.0,0.0,17.0,0.0,5.0,6.0,0.0,0.0,24.0,6.0,11.0,39.0,4.0,58.0,11.0,1.0,0.0,0.0,5.0,6.0,20.0,0.0,35.0,4.0,0.0,7.0
-5.0,11.0,0.0,15.0,5.0,6.0,3.0,2.0,11.0,6.0,9.0,1.0,0.0,2.0,0.0,4.0,0.0,0.0,3.0,6.0,1.0,3.0,7.0,20.0,8.0,12.0,14.0,16.0,0.0,10.0,4.0,1.0,2.0,2.0,2.0,7.0,9.0,8.0,2.0,21.0,11.0,1.0,3.0,15.0,0.0,17.0,1.0,8.0,7.0,4.0,19.0,1.0,7.0,6.0,4.0,0.0,3.0,1.0,2.0,5.0,3.0,1.0,9.0,27.0,15.0,0.0,1.0,10.0,6.0,0.0,36.0,11.0,3.0,94.0,54.0,0.0,45.0,0.0,15.0,11.0,1.0,3.0,80.0,7.0,13.0,102.0,8.0,169.0,41.0,1.0,0.0,1.0,14.0,16.0,51.0,0.0,95.0,6.0,0.0,14.0
-15.0,16.0,0.0,11.0,9.0,12.0,1.0,1.0,13.0,8.0,4.0,4.0,1.0,1.0,1.0,2.0,4.0,1.0,3.0,4.0,6.0,9.0,18.0,3.0,7.0,15.0,9.0,17.0,0.0,3.0,3.0,0.0,6.0,4.0,6.0,1.0,9.0,0.0,6.0,20.0,2.0,0.0,4.0,3.0,0.0,9.0,1.0,1.0,2.0,1.0,12.0,3.0,3.0,6.0,2.0,0.0,3.0,2.0,3.0,1.0,4.0,1.0,4.0,22.0,13.0,0.0,3.0,7.0,11.0,0.0,30.0,15.0,2.0,76.0,51.0,0.0,48.0,1.0,14.0,15.0,2.0,0.0,66.0,18.0,28.0,81.0,8.0,127.0,9.0,3.0,3.0,1.0,16.0,13.0,56.0,1.0,31.0,12.0,0.0,17.0
-6.0,16.0,0.0,34.0,9.0,25.0,18.0,4.0,20.0,11.0,10.0,2.0,0.0,3.0,3.0,4.0,4.0,3.0,0.0,9.0,0.0,9.0,16.0,3.0,9.0,14.0,11.0,32.0,0.0,9.0,3.0,4.0,0.0,2.0,1.0,1.0,12.0,0.0,13.0,47.0,6.0,0.0,7.0,22.0,3.0,2.0,2.0,1.0,6.0,3.0,7.0,1.0,1.0,5.0,3.0,0.0,2.0,3.0,3.0,0.0,4.0,4.0,1.0,29.0,12.0,0.0,0.0,26.0,9.0,0.0,30.0,2.0,5.0,94.0,54.0,0.0,46.0,0.0,29.0,11.0,2.0,0.0,69.0,1.0,30.0,106.0,13.0,142.0,37.0,2.0,0.0,1.0,8.0,48.0,71.0,2.0,81.0,14.0,0.0,5.0
-3.0,4.0,0.0,10.0,8.0,4.0,0.0,0.0,8.0,0.0,4.0,0.0,0.0,1.0,1.0,3.0,2.0,0.0,0.0,1.0,0.0,4.0,12.0,0.0,2.0,9.0,5.0,12.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,2.0,5.0,12.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,15.0,9.0,0.0,0.0,3.0,4.0,0.0,12.0,1.0,0.0,28.0,19.0,0.0,12.0,0.0,7.0,8.0,1.0,0.0,42.0,2.0,16.0,46.0,2.0,60.0,3.0,0.0,1.0,1.0,4.0,17.0,16.0,0.0,19.0,3.0,0.0,4.0
-0.0,21.0,0.0,17.0,4.0,7.0,3.0,2.0,16.0,8.0,6.0,3.0,3.0,3.0,2.0,2.0,5.0,8.0,4.0,6.0,0.0,9.0,16.0,2.0,1.0,12.0,7.0,26.0,0.0,8.0,5.0,0.0,2.0,0.0,1.0,0.0,8.0,0.0,5.0,29.0,4.0,1.0,6.0,2.0,1.0,3.0,0.0,1.0,5.0,4.0,6.0,2.0,3.0,5.0,2.0,0.0,5.0,1.0,3.0,7.0,0.0,5.0,1.0,26.0,16.0,0.0,0.0,12.0,13.0,0.0,26.0,3.0,3.0,81.0,49.0,0.0,46.0,0.0,15.0,14.0,1.0,2.0,70.0,0.0,39.0,89.0,4.0,134.0,11.0,1.0,0.0,0.0,5.0,17.0,73.0,0.0,11.0,2.0,0.0,3.0
-1.0,8.0,0.0,5.0,0.0,6.0,1.0,0.0,8.0,0.0,6.0,1.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,7.0,0.0,1.0,6.0,2.0,3.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,1.0,4.0,0.0,0.0,0.0,0.0,4.0,0.0,14.0,0.0,0.0,22.0,26.0,0.0,9.0,0.0,5.0,9.0,0.0,0.0,17.0,0.0,10.0,17.0,0.0,34.0,6.0,0.0,0.0,0.0,2.0,2.0,8.0,0.0,13.0,1.0,0.0,1.0
-0.0,11.0,0.0,2.0,0.0,3.0,0.0,0.0,5.0,1.0,5.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,6.0,7.0,3.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,5.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,7.0,0.0,0.0,8.0,11.0,0.0,4.0,0.0,2.0,0.0,0.0,0.0,13.0,0.0,2.0,16.0,0.0,20.0,5.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,18.0,0.0,0.0,2.0
-1.0,6.0,0.0,6.0,4.0,4.0,0.0,0.0,16.0,2.0,7.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.0,0.0,0.0,9.0,6.0,10.0,0.0,3.0,0.0,0.0,4.0,0.0,0.0,0.0,4.0,0.0,0.0,17.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,0.0,5.0,0.0,0.0,0.0,0.0,3.0,0.0,11.0,0.0,1.0,17.0,11.0,0.0,18.0,0.0,6.0,9.0,0.0,0.0,19.0,0.0,8.0,19.0,0.0,30.0,5.0,0.0,0.0,0.0,3.0,1.0,7.0,0.0,17.0,2.0,0.0,3.0
-1.0,9.0,0.0,8.0,5.0,14.0,3.0,0.0,11.0,6.0,11.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,15.0,2.0,1.0,13.0,12.0,4.0,0.0,3.0,5.0,0.0,0.0,0.0,2.0,1.0,1.0,0.0,0.0,12.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,5.0,2.0,15.0,2.0,0.0,0.0,0.0,3.0,0.0,20.0,0.0,0.0,18.0,15.0,0.0,12.0,0.0,5.0,2.0,0.0,0.0,28.0,0.0,10.0,20.0,1.0,28.0,13.0,0.0,0.0,0.0,6.0,9.0,14.0,0.0,17.0,3.0,0.0,0.0
-2.0,4.0,8.0,8.0,6.0,9.0,3.0,0.0,6.0,8.0,3.0,3.0,0.0,4.0,0.0,1.0,0.0,15.0,0.0,0.0,0.0,0.0,5.0,8.0,5.0,4.0,4.0,7.0,0.0,11.0,2.0,2.0,0.0,0.0,2.0,8.0,9.0,0.0,1.0,10.0,7.0,0.0,4.0,6.0,0.0,4.0,0.0,3.0,4.0,1.0,9.0,0.0,3.0,15.0,3.0,0.0,1.0,1.0,5.0,5.0,3.0,2.0,7.0,11.0,6.0,0.0,0.0,5.0,4.0,0.0,29.0,35.0,0.0,53.0,50.0,0.0,27.0,0.0,25.0,3.0,1.0,3.0,39.0,7.0,12.0,53.0,9.0,68.0,45.0,1.0,10.0,0.0,16.0,17.0,16.0,0.0,71.0,11.0,0.0,13.0
-5.0,4.0,0.0,4.0,13.0,6.0,7.0,2.0,11.0,3.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,13.0,6.0,1.0,3.0,7.0,7.0,0.0,7.0,12.0,4.0,0.0,1.0,2.0,5.0,5.0,0.0,6.0,9.0,4.0,0.0,4.0,11.0,0.0,9.0,0.0,0.0,3.0,1.0,11.0,0.0,1.0,3.0,3.0,0.0,1.0,2.0,0.0,0.0,6.0,1.0,3.0,16.0,1.0,0.0,3.0,4.0,1.0,0.0,26.0,7.0,1.0,17.0,20.0,0.0,17.0,2.0,20.0,3.0,0.0,3.0,66.0,2.0,8.0,18.0,4.0,41.0,29.0,0.0,1.0,2.0,9.0,8.0,18.0,0.0,66.0,5.0,0.0,6.0
diff --git a/example_data/test_data/O_test.csv b/example_data/test_data/O_test.csv
deleted file mode 100644
index e7dc0f58..00000000
--- a/example_data/test_data/O_test.csv
+++ /dev/null
@@ -1,201 +0,0 @@
-0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
-0,0,0,0,0,1,1,1,0,1,0,0,1,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,0,0,0
-1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0
-1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,1,1,1,1,1
-0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,0,0,1,0,0,1,1,0,0
-1,0,1,1,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,0,0,1,0
-1,0,1,1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,0
-0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1
-0,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1
-1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,1,0,0,1
-0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0
-1,1,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,1,1
-1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1
-1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,1,1
-1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,1,1
-1,0,1,0,1,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0
-0,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1
-1,0,0,1,1,1,0,1,0,0,1,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,1
-1,1,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,0
-0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0
-0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,1,1
-1,0,0,1,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1
-1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1
-0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1
-1,0,0,1,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0
-0,0,0,0,0,0,1,0,0,1,0,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1,1,0,0
-1,0,0,1,0,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1
-0,0,0,1,1,0,0,0,1,1,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0
-0,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1
-1,0,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,1,0,1,1
-1,1,0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0
-0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0
-0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,1
-0,0,1,1,1,0,0,1,1,0,0,0,1,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0
-0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0
-0,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,0,0
-0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0
-0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0
-0,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,1,1
-0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1
-0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,1,1,1
-0,0,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,1,0,0,1,0,1,0,0,0,1
-0,0,0,0,0,1,0,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1
-1,1,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0
-1,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,1,1,1,1
-1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,0
-1,0,0,1,1,1,0,0,0,0,0,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,0
-1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,1,1,1,0,0,0,1,0,0,1,0,0,1
-1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1
-1,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,0
-1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,1,0,0,0,0,1
-0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,0,0,1,0,1,0,1
-1,1,0,1,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0
-0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,1,1,0
-1,1,1,0,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,1,0,1,0,1
-1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0
-1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0
-0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,1
-1,1,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,1
-0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1
-0,1,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,0,0,1,1,0,1,1,0
-0,0,0,1,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0
-0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,1,0,0,0,1,1,1
-0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,0,0,1
-0,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1
-1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,1,0,1,1,1
-0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,1
-1,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,0,0,0,0,0
-0,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1
-1,1,0,0,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0
-0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,0
-1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1
-1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,1,1,1,0,0,0
-1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0
-0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0
-1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,1
-0,1,0,1,1,1,0,1,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,1,1,1,0,1
-1,0,1,0,1,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,1,1,1,1,0,1,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1,1,1,0,0
-1,1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0
-1,1,1,0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,1,0,0,1,0,0
-0,1,1,0,1,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1
-1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1
-0,1,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0,1
-1,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,1,0
-0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1
-1,1,0,1,1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,1,0
-0,0,0,0,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,1,0
-0,1,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1
-1,1,0,1,1,1,0,1,0,0,0,0,1,1,0,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,1,0,0,1,0,1,1,0,1
-1,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0
-1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1
-0,1,0,0,1,1,0,1,0,0,1,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,1,1
-0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1
-1,1,0,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,1,1,1,0,0
-0,0,1,0,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1
-1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,0,1,1,0
-0,0,1,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,0,0,1,1,0,0
-1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,0,0,0,0,0,0
-1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1
-0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0
-0,0,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,0,1,1,1,0,1,1,1
-1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,0,1,1,1,1,1
-1,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,1,1
-1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0
-1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,0,1,1,0,0,0,1,1,0,1,1,1
-0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1
-0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0
-1,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,0
-1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1
-0,0,1,1,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,0,1,1,1,0,0,1
-0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0
-1,0,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0
-0,1,0,0,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,1
-0,1,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,1,1,0,1,1
-0,0,1,0,1,0,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1
-0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,1
-1,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1
-1,0,0,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1
-0,0,1,0,0,1,0,1,1,0,1,0,0,0,1,0,1,1,0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1
-0,1,1,0,1,0,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0,0,1,0,1,1,1,0
-1,1,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,0,1
-0,1,0,1,0,0,1,0,0,0,0,1,0,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1
-0,1,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1,0
-0,0,1,1,0,1,1,0,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,1,0,0,0,1,0,1
-0,1,1,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,1,1,1,0,0,0,0,1
-0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,1
-1,0,1,1,0,0,0,0,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0
-0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0
-0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0
-1,0,0,1,1,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,0,1,1,1,0
-0,1,0,0,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,1,0,0,0,1
-1,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,1,0,1,0,0,0,0,1,1,1,0,0
-0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,0,1,1,1,0,1,1,0,0,1,0
-1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0
-0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,1,1,1,0
-0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,0
-1,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,0,0,1
-0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,1,1,0,0
-1,1,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,1
-1,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,1,1
-0,0,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0
-0,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,0
-0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0
-0,1,1,0,0,1,0,1,1,0,1,0,0,1,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0
-0,1,0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0
-1,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,1,0
-0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1
-0,1,1,0,1,0,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1
-0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0
-1,1,0,0,0,0,1,1,1,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,0,1
-1,1,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0
-1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0
-0,1,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,1
-1,1,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,1
-1,1,1,1,1,1,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,1
-0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,1,0,0,0
-0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,0,1,1,1,1
-0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,0
-1,1,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,0,1,0,1,0,0,1,0,1,0
-1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0
-1,0,0,0,0,1,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0
-1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,1,0,1,1
-0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0
-0,0,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,1
-1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0
-0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0
-0,1,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,1,0,1,1,1,1,0,0,1
-1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,1,1,0,1,1,0
-1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0
-1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,1
-0,1,1,0,0,0,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1
-0,1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1
-0,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,1,0,1,1
-1,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,1
-1,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1
-1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0
-0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,1
-0,1,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,1
-1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,0,1,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0
-0,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,0,0,0
-0,0,0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1
-1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,0,1
-0,1,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0
-0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1
-0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1
-1,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0
-0,0,0,1,1,0,1,1,0,0,1,0,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,0
-0,1,1,1,0,1,1,1,0,1,1,1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,1
-0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0
-0,1,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,0,1,1,0,0
-1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,0
-1,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0
-1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1
-0,0,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,1,0
-0,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,1,0
-0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,1,1,0,1,0,0,1,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0
-1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0
-0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1
-0,0,0,0,1,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0
-0,0,1,1,0,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0
-0,1,1,0,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0
diff --git a/example_data/test_data/Y_test.csv b/example_data/test_data/Y_test.csv
deleted file mode 100644
index 8cb44706..00000000
--- a/example_data/test_data/Y_test.csv
+++ /dev/null
@@ -1,201 +0,0 @@
-0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
-5.0,2.0,1.0,7.0,0.0,6.0,8.0,11.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,1.0,13.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,3.0,1.0,4.0,1.0,0.0,7.0,3.0,0.0,29.0,1.0,23.0,1.0,5.0,6.0,7.0,3.0,0.0,1.0,2.0,1.0,0.0,3.0
-2.0,14.0,1.0,15.0,0.0,39.0,20.0,13.0,7.0,14.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,8.0,2.0,0.0,8.0,0.0,2.0,0.0,0.0,1.0,4.0,1.0,2.0,0.0,5.0,8.0,2.0,0.0,6.0,1.0,12.0,0.0,1.0,1.0,1.0,0.0,0.0,5.0,6.0,3.0,0.0,0.0
-3.0,20.0,1.0,1.0,2.0,1.0,0.0,14.0,11.0,3.0,5.0,8.0,1.0,2.0,0.0,4.0,7.0,2.0,6.0,1.0,0.0,1.0,6.0,0.0,4.0,2.0,5.0,3.0,2.0,1.0,1.0,13.0,5.0,3.0,0.0,1.0,1.0,0.0,1.0,1.0,3.0,3.0,4.0,0.0,0.0,8.0,3.0,1.0,3.0,2.0
-1.0,4.0,1.0,5.0,0.0,3.0,2.0,2.0,1.0,7.0,1.0,1.0,2.0,0.0,0.0,3.0,0.0,1.0,1.0,2.0,2.0,0.0,6.0,0.0,3.0,0.0,0.0,1.0,1.0,0.0,2.0,1.0,2.0,6.0,0.0,2.0,2.0,2.0,6.0,0.0,1.0,2.0,8.0,11.0,3.0,8.0,11.0,8.0,13.0,9.0
-7.0,0.0,3.0,2.0,3.0,1.0,1.0,0.0,1.0,1.0,1.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,1.0,1.0,0.0,2.0,2.0,5.0,2.0,0.0,0.0,3.0,5.0,16.0,6.0,2.0,1.0,8.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,2.0,5.0,2.0,2.0,10.0,5.0,0.0
-8.0,0.0,8.0,0.0,2.0,3.0,1.0,4.0,1.0,4.0,3.0,2.0,0.0,2.0,1.0,3.0,4.0,1.0,2.0,0.0,5.0,6.0,3.0,7.0,2.0,12.0,1.0,8.0,1.0,2.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,7.0,0.0,1.0,3.0,2.0,2.0,1.0,7.0,1.0,3.0,2.0,3.0,1.0
-2.0,0.0,1.0,2.0,0.0,0.0,0.0,2.0,1.0,2.0,8.0,3.0,8.0,3.0,1.0,5.0,5.0,4.0,4.0,2.0,0.0,0.0,1.0,2.0,1.0,4.0,1.0,0.0,0.0,1.0,1.0,2.0,0.0,1.0,3.0,3.0,0.0,1.0,1.0,3.0,0.0,2.0,2.0,0.0,1.0,4.0,1.0,1.0,1.0,5.0
-1.0,0.0,0.0,2.0,1.0,1.0,0.0,0.0,1.0,1.0,2.0,4.0,1.0,2.0,2.0,0.0,1.0,2.0,0.0,1.0,5.0,4.0,0.0,1.0,2.0,1.0,0.0,4.0,2.0,1.0,1.0,4.0,10.0,2.0,3.0,7.0,10.0,5.0,2.0,2.0,2.0,0.0,2.0,0.0,4.0,1.0,1.0,3.0,4.0,1.0
-1.0,5.0,7.0,3.0,0.0,1.0,2.0,7.0,10.0,11.0,2.0,1.0,4.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,12.0,3.0,4.0,3.0,4.0,2.0,2.0,2.0,7.0,4.0,5.0,0.0,4.0,0.0,0.0,1.0,2.0,1.0,1.0,3.0,0.0,0.0,4.0,2.0,0.0,1.0,3.0,2.0,1.0,1.0
-0.0,11.0,0.0,14.0,0.0,1.0,5.0,5.0,3.0,0.0,1.0,0.0,2.0,2.0,0.0,4.0,3.0,0.0,1.0,7.0,0.0,0.0,9.0,3.0,5.0,1.0,0.0,6.0,3.0,5.0,2.0,0.0,1.0,2.0,0.0,0.0,2.0,1.0,7.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,5.0,1.0,0.0,0.0
-0.0,3.0,4.0,5.0,8.0,0.0,8.0,4.0,2.0,1.0,0.0,1.0,20.0,23.0,22.0,15.0,59.0,9.0,2.0,0.0,5.0,8.0,1.0,6.0,0.0,7.0,6.0,3.0,1.0,0.0,4.0,17.0,1.0,1.0,2.0,16.0,2.0,7.0,0.0,1.0,0.0,1.0,0.0,7.0,1.0,1.0,2.0,0.0,16.0,1.0
-0.0,72.0,28.0,14.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,44.0,19.0,2.0,12.0,38.0,5.0,2.0,0.0,0.0,2.0,0.0,3.0,0.0,1.0,1.0,26.0,0.0,1.0,6.0,8.0,0.0,6.0,0.0,12.0,0.0,0.0,0.0,0.0,2.0,4.0,0.0,10.0,0.0,13.0,0.0,0.0,114.0,15.0
-4.0,3.0,0.0,1.0,1.0,0.0,1.0,5.0,1.0,1.0,1.0,1.0,12.0,3.0,4.0,3.0,6.0,3.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,2.0,0.0,2.0,3.0,2.0,11.0,0.0,1.0,0.0,1.0,4.0,0.0,3.0,4.0,0.0,0.0,1.0,14.0,1.0,1.0,20.0,8.0
-1.0,1.0,2.0,1.0,0.0,1.0,0.0,3.0,0.0,0.0,0.0,4.0,8.0,0.0,0.0,0.0,3.0,2.0,3.0,1.0,2.0,2.0,3.0,2.0,9.0,2.0,5.0,3.0,5.0,2.0,1.0,2.0,2.0,5.0,0.0,0.0,1.0,0.0,3.0,0.0,11.0,2.0,5.0,0.0,0.0,10.0,1.0,0.0,2.0,2.0
-2.0,2.0,0.0,3.0,2.0,3.0,1.0,5.0,0.0,3.0,1.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,0.0,0.0,8.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,5.0,9.0,2.0,1.0,36.0,0.0,32.0,1.0,3.0,1.0,3.0,2.0,2.0,25.0,7.0,2.0,2.0,1.0
-0.0,1.0,0.0,0.0,1.0,1.0,2.0,8.0,1.0,7.0,6.0,0.0,4.0,8.0,4.0,4.0,1.0,2.0,0.0,1.0,1.0,2.0,0.0,9.0,0.0,6.0,7.0,1.0,1.0,3.0,3.0,6.0,2.0,1.0,1.0,0.0,2.0,1.0,0.0,3.0,6.0,2.0,7.0,4.0,3.0,0.0,1.0,6.0,8.0,7.0
-1.0,5.0,5.0,1.0,2.0,1.0,0.0,1.0,0.0,1.0,2.0,0.0,2.0,9.0,3.0,2.0,14.0,8.0,3.0,2.0,5.0,0.0,6.0,12.0,1.0,0.0,6.0,13.0,1.0,0.0,0.0,14.0,0.0,6.0,3.0,2.0,1.0,3.0,1.0,2.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,1.0,6.0,3.0
-0.0,0.0,0.0,1.0,2.0,21.0,1.0,0.0,4.0,18.0,3.0,6.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,16.0,3.0,9.0,6.0,0.0,29.0,6.0,0.0,2.0,10.0,3.0,0.0,0.0,6.0,1.0,15.0,0.0,40.0,1.0,462.0,6.0,0.0,0.0,3.0,0.0,1.0,0.0,1.0,2.0,0.0,1.0
-0.0,0.0,1.0,3.0,1.0,0.0,0.0,1.0,5.0,7.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,2.0,0.0,0.0,7.0,0.0,5.0,1.0,0.0,2.0,4.0,8.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,7.0,0.0,2.0,1.0,2.0,0.0,0.0,41.0,14.0,24.0,13.0,1.0
-0.0,6.0,16.0,7.0,11.0,0.0,15.0,8.0,0.0,0.0,7.0,6.0,21.0,73.0,11.0,4.0,2.0,0.0,1.0,0.0,8.0,2.0,0.0,5.0,0.0,1.0,0.0,4.0,1.0,3.0,1.0,12.0,0.0,1.0,1.0,11.0,0.0,1.0,0.0,0.0,0.0,5.0,5.0,3.0,3.0,0.0,2.0,11.0,66.0,22.0
-6.0,1.0,4.0,2.0,5.0,2.0,2.0,6.0,0.0,0.0,5.0,0.0,8.0,26.0,6.0,8.0,27.0,28.0,13.0,0.0,9.0,6.0,0.0,9.0,0.0,1.0,8.0,0.0,0.0,4.0,3.0,6.0,3.0,0.0,5.0,9.0,0.0,3.0,0.0,3.0,5.0,4.0,0.0,1.0,1.0,0.0,0.0,4.0,0.0,3.0
-1.0,6.0,2.0,13.0,0.0,0.0,10.0,2.0,0.0,1.0,1.0,0.0,6.0,0.0,3.0,2.0,1.0,1.0,3.0,5.0,0.0,0.0,2.0,4.0,1.0,1.0,4.0,6.0,0.0,0.0,7.0,2.0,0.0,4.0,0.0,3.0,5.0,2.0,0.0,0.0,19.0,8.0,3.0,6.0,1.0,9.0,4.0,0.0,0.0,7.0
-0.0,2.0,5.0,5.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,4.0,0.0,1.0,9.0,0.0,6.0,3.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,8.0
-2.0,10.0,15.0,5.0,0.0,0.0,1.0,4.0,0.0,0.0,2.0,2.0,9.0,26.0,24.0,25.0,103.0,5.0,2.0,0.0,6.0,1.0,1.0,11.0,1.0,7.0,22.0,5.0,0.0,7.0,0.0,38.0,0.0,2.0,0.0,21.0,0.0,1.0,0.0,0.0,5.0,26.0,0.0,11.0,10.0,1.0,0.0,0.0,20.0,1.0
-0.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,2.0,1.0,1.0,6.0,2.0,2.0,1.0,3.0,2.0,2.0,1.0,2.0,0.0,6.0,4.0,7.0,6.0,2.0,2.0,4.0,10.0,6.0,0.0,3.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,7.0,27.0,49.0,8.0,5.0,1.0,2.0
-4.0,10.0,16.0,8.0,8.0,2.0,4.0,0.0,3.0,0.0,1.0,0.0,7.0,10.0,5.0,10.0,24.0,3.0,3.0,0.0,4.0,3.0,3.0,5.0,0.0,4.0,2.0,3.0,3.0,3.0,0.0,10.0,1.0,2.0,3.0,54.0,0.0,1.0,0.0,1.0,0.0,11.0,2.0,7.0,3.0,0.0,0.0,0.0,4.0,2.0
-1.0,5.0,7.0,14.0,2.0,5.0,2.0,2.0,9.0,5.0,2.0,2.0,1.0,0.0,1.0,4.0,0.0,0.0,2.0,2.0,0.0,2.0,11.0,1.0,7.0,3.0,2.0,0.0,2.0,6.0,2.0,0.0,3.0,1.0,3.0,0.0,2.0,4.0,1.0,0.0,1.0,0.0,9.0,2.0,0.0,4.0,1.0,1.0,4.0,0.0
-0.0,6.0,2.0,0.0,1.0,0.0,0.0,1.0,2.0,0.0,1.0,2.0,1.0,6.0,6.0,0.0,0.0,2.0,2.0,2.0,2.0,0.0,1.0,6.0,4.0,4.0,10.0,24.0,3.0,1.0,2.0,0.0,3.0,2.0,3.0,1.0,3.0,1.0,2.0,1.0,8.0,2.0,5.0,0.0,0.0,4.0,0.0,0.0,2.0,1.0
-0.0,1.0,0.0,7.0,3.0,1.0,0.0,1.0,3.0,1.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,3.0,0.0,0.0,2.0,1.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,2.0,0.0,1.0,0.0,0.0,2.0,0.0,4.0,0.0,2.0,5.0,4.0,3.0,2.0,11.0,14.0,4.0,4.0,14.0
-10.0,18.0,1.0,42.0,2.0,21.0,7.0,1.0,3.0,0.0,0.0,0.0,1.0,2.0,2.0,5.0,1.0,1.0,5.0,2.0,4.0,1.0,4.0,4.0,8.0,4.0,0.0,2.0,6.0,7.0,5.0,2.0,2.0,0.0,1.0,2.0,3.0,6.0,8.0,1.0,4.0,7.0,11.0,3.0,1.0,19.0,7.0,17.0,5.0,2.0
-1.0,6.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,3.0,3.0,1.0,2.0,1.0,2.0,6.0,6.0,6.0,0.0,1.0,0.0,2.0,1.0,1.0,3.0,1.0,4.0,0.0,3.0,0.0,3.0,1.0,3.0,0.0,4.0,0.0,0.0,1.0,7.0,1.0,3.0,5.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0
-0.0,0.0,10.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,2.0,2.0,7.0,5.0,6.0,17.0,16.0,9.0,3.0,0.0,5.0,1.0,2.0,13.0,0.0,0.0,4.0,8.0,1.0,1.0,4.0,18.0,1.0,1.0,1.0,44.0,1.0,0.0,0.0,4.0,1.0,0.0,0.0,3.0,3.0,1.0,0.0,0.0,1.0,0.0
-2.0,2.0,9.0,28.0,5.0,7.0,3.0,2.0,3.0,4.0,0.0,1.0,0.0,1.0,1.0,3.0,2.0,4.0,0.0,14.0,2.0,2.0,3.0,1.0,3.0,1.0,0.0,0.0,2.0,3.0,2.0,1.0,5.0,2.0,2.0,0.0,2.0,4.0,3.0,0.0,5.0,0.0,2.0,1.0,3.0,1.0,1.0,0.0,0.0,1.0
-0.0,0.0,1.0,0.0,0.0,4.0,0.0,1.0,11.0,2.0,6.0,4.0,4.0,4.0,1.0,3.0,2.0,4.0,1.0,0.0,5.0,4.0,11.0,2.0,9.0,3.0,4.0,2.0,1.0,1.0,2.0,2.0,0.0,2.0,5.0,4.0,2.0,1.0,2.0,4.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0
-0.0,7.0,1.0,4.0,1.0,0.0,11.0,4.0,0.0,1.0,1.0,0.0,0.0,4.0,6.0,2.0,5.0,6.0,2.0,0.0,1.0,0.0,5.0,1.0,0.0,2.0,2.0,2.0,1.0,1.0,7.0,1.0,2.0,11.0,0.0,3.0,4.0,1.0,1.0,1.0,2.0,6.0,2.0,18.0,0.0,37.0,16.0,0.0,5.0,9.0
-1.0,2.0,4.0,1.0,2.0,4.0,2.0,1.0,3.0,2.0,1.0,5.0,2.0,2.0,4.0,2.0,1.0,4.0,4.0,3.0,1.0,2.0,2.0,1.0,0.0,3.0,1.0,2.0,5.0,4.0,1.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,2.0,5.0,9.0,1.0,0.0,0.0
-1.0,2.0,20.0,0.0,1.0,1.0,2.0,3.0,0.0,1.0,4.0,3.0,7.0,9.0,3.0,1.0,8.0,6.0,2.0,0.0,3.0,0.0,1.0,2.0,0.0,0.0,7.0,4.0,1.0,2.0,3.0,3.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,3.0,0.0,3.0,1.0,2.0,0.0,1.0,7.0,0.0
-0.0,0.0,4.0,0.0,4.0,0.0,2.0,3.0,0.0,1.0,1.0,1.0,9.0,3.0,3.0,3.0,19.0,1.0,0.0,0.0,3.0,0.0,1.0,7.0,0.0,0.0,4.0,2.0,0.0,2.0,8.0,13.0,4.0,4.0,1.0,8.0,1.0,0.0,0.0,2.0,2.0,5.0,2.0,7.0,0.0,1.0,1.0,0.0,24.0,4.0
-0.0,1.0,7.0,5.0,10.0,3.0,8.0,7.0,0.0,2.0,1.0,0.0,2.0,2.0,0.0,6.0,2.0,6.0,5.0,1.0,0.0,1.0,6.0,6.0,0.0,0.0,3.0,9.0,1.0,1.0,6.0,1.0,2.0,4.0,3.0,2.0,2.0,0.0,1.0,1.0,1.0,3.0,4.0,0.0,0.0,10.0,4.0,0.0,3.0,8.0
-0.0,3.0,0.0,2.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,3.0,1.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,7.0,1.0,3.0,7.0,1.0,1.0,13.0,0.0,3.0,1.0,3.0,3.0,9.0,9.0,2.0,144.0,30.0,3.0,5.0,2.0
-3.0,7.0,8.0,31.0,3.0,10.0,21.0,3.0,3.0,4.0,1.0,0.0,0.0,0.0,1.0,5.0,0.0,2.0,0.0,1.0,3.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,1.0,1.0,0.0,1.0,4.0,1.0,0.0,9.0,1.0,0.0,3.0,6.0,0.0,1.0,3.0,1.0,45.0,5.0,3.0,2.0,4.0
-2.0,0.0,0.0,2.0,1.0,3.0,1.0,3.0,10.0,3.0,0.0,2.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,2.0,3.0,1.0,8.0,3.0,8.0,2.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,2.0,0.0,1.0,10.0,4.0,9.0,0.0,17.0,1.0,30.0,22.0,3.0,10.0,16.0,4.0,1.0,1.0
-8.0,0.0,2.0,0.0,4.0,3.0,1.0,2.0,0.0,0.0,3.0,3.0,2.0,2.0,2.0,0.0,4.0,0.0,1.0,2.0,1.0,14.0,0.0,0.0,1.0,6.0,2.0,2.0,2.0,0.0,1.0,1.0,4.0,2.0,1.0,1.0,1.0,1.0,2.0,3.0,0.0,0.0,1.0,2.0,0.0,0.0,2.0,4.0,1.0,0.0
-2.0,2.0,15.0,17.0,4.0,0.0,0.0,1.0,1.0,2.0,5.0,4.0,3.0,6.0,10.0,12.0,13.0,5.0,4.0,0.0,2.0,2.0,0.0,26.0,0.0,2.0,8.0,7.0,1.0,5.0,0.0,4.0,1.0,2.0,0.0,9.0,0.0,1.0,0.0,5.0,1.0,1.0,0.0,2.0,1.0,2.0,5.0,1.0,51.0,13.0
-22.0,2.0,2.0,2.0,2.0,0.0,4.0,6.0,10.0,9.0,2.0,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,3.0,6.0,3.0,0.0,20.0,3.0,1.0,0.0,15.0,1.0,5.0,1.0,2.0,3.0,7.0,0.0,10.0,1.0,20.0,2.0,0.0,0.0,5.0,0.0,1.0,4.0,5.0,4.0,1.0,0.0
-1.0,1.0,2.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,4.0,1.0,0.0,2.0,7.0,4.0,8.0,2.0,3.0,1.0,2.0,1.0,6.0,1.0,1.0,4.0,2.0,1.0,3.0,4.0,0.0,2.0,6.0,2.0,5.0,3.0,3.0,0.0,6.0,0.0,0.0,1.0,1.0,0.0,5.0,5.0,2.0,0.0,0.0
-5.0,3.0,1.0,2.0,0.0,4.0,25.0,9.0,1.0,3.0,1.0,6.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,7.0,1.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,2.0,3.0,2.0,2.0,6.0,1.0,1.0,1.0,3.0,0.0,24.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,2.0,1.0,10.0
-1.0,1.0,0.0,4.0,1.0,16.0,1.0,2.0,2.0,5.0,5.0,5.0,1.0,2.0,4.0,0.0,2.0,2.0,1.0,2.0,6.0,4.0,6.0,6.0,4.0,3.0,3.0,9.0,3.0,2.0,2.0,3.0,8.0,1.0,1.0,5.0,0.0,1.0,1.0,2.0,2.0,0.0,2.0,0.0,7.0,2.0,1.0,5.0,4.0,1.0
-42.0,5.0,11.0,7.0,3.0,2.0,1.0,1.0,3.0,4.0,3.0,2.0,0.0,1.0,2.0,2.0,3.0,2.0,2.0,3.0,2.0,1.0,7.0,1.0,1.0,1.0,3.0,1.0,0.0,2.0,3.0,1.0,0.0,1.0,5.0,3.0,2.0,1.0,2.0,1.0,6.0,0.0,0.0,3.0,0.0,2.0,2.0,2.0,0.0,0.0
-0.0,6.0,5.0,2.0,4.0,5.0,2.0,4.0,2.0,0.0,2.0,6.0,1.0,4.0,3.0,0.0,5.0,4.0,2.0,0.0,9.0,7.0,1.0,5.0,4.0,1.0,6.0,3.0,1.0,0.0,1.0,0.0,6.0,0.0,1.0,2.0,0.0,2.0,0.0,2.0,1.0,2.0,0.0,1.0,7.0,1.0,0.0,1.0,15.0,4.0
-3.0,2.0,10.0,0.0,9.0,1.0,7.0,6.0,4.0,1.0,1.0,0.0,4.0,36.0,5.0,13.0,14.0,1.0,3.0,1.0,5.0,9.0,1.0,32.0,0.0,1.0,7.0,2.0,1.0,2.0,0.0,2.0,0.0,4.0,3.0,5.0,1.0,3.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0,2.0,21.0,21.0,25.0
-12.0,2.0,2.0,0.0,0.0,1.0,0.0,1.0,11.0,5.0,1.0,1.0,2.0,1.0,0.0,1.0,0.0,2.0,1.0,3.0,1.0,4.0,2.0,0.0,13.0,12.0,6.0,2.0,18.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,4.0,0.0,7.0,0.0,3.0,5.0,3.0,0.0,1.0,2.0,12.0,5.0,2.0,1.0
-4.0,4.0,2.0,9.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,3.0,1.0,0.0,2.0,4.0,1.0,1.0,3.0,1.0,4.0,1.0,4.0,4.0,0.0,7.0,2.0,2.0,1.0,2.0,3.0,5.0,2.0,0.0,0.0,0.0,1.0,16.0,5.0,22.0,8.0,4.0,5.0,4.0,21.0,2.0
-4.0,3.0,1.0,0.0,0.0,0.0,0.0,7.0,1.0,2.0,2.0,1.0,3.0,3.0,0.0,22.0,10.0,14.0,2.0,2.0,2.0,2.0,0.0,7.0,3.0,0.0,9.0,2.0,0.0,1.0,1.0,2.0,0.0,4.0,0.0,3.0,2.0,4.0,0.0,1.0,9.0,6.0,9.0,60.0,2.0,8.0,4.0,6.0,6.0,3.0
-5.0,2.0,2.0,0.0,0.0,3.0,1.0,0.0,0.0,1.0,0.0,4.0,6.0,1.0,1.0,1.0,8.0,10.0,6.0,0.0,4.0,12.0,3.0,5.0,2.0,3.0,0.0,6.0,1.0,2.0,1.0,4.0,3.0,3.0,9.0,7.0,0.0,5.0,0.0,1.0,1.0,0.0,2.0,5.0,0.0,0.0,0.0,5.0,3.0,1.0
-4.0,3.0,0.0,2.0,2.0,3.0,1.0,4.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0,3.0,2.0,0.0,0.0,5.0,2.0,6.0,0.0,1.0,0.0,5.0,0.0,2.0,2.0,2.0,15.0,2.0,4.0,5.0,2.0,4.0,1.0,15.0,16.0,11.0,1.0,0.0,19.0,1.0,0.0,1.0,17.0
-1.0,2.0,7.0,2.0,23.0,20.0,2.0,0.0,0.0,0.0,1.0,1.0,9.0,11.0,15.0,7.0,10.0,1.0,1.0,1.0,1.0,7.0,0.0,9.0,1.0,1.0,4.0,3.0,1.0,0.0,2.0,8.0,12.0,5.0,3.0,8.0,0.0,4.0,0.0,8.0,7.0,15.0,5.0,3.0,18.0,2.0,6.0,4.0,3.0,9.0
-0.0,0.0,9.0,1.0,1.0,0.0,5.0,16.0,4.0,4.0,4.0,14.0,32.0,275.0,21.0,47.0,126.0,26.0,2.0,0.0,12.0,11.0,1.0,48.0,0.0,4.0,17.0,20.0,0.0,2.0,3.0,31.0,4.0,9.0,2.0,72.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,26.0,2.0,0.0,0.0,0.0,2.0,3.0
-3.0,1.0,0.0,1.0,3.0,18.0,4.0,17.0,20.0,9.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,1.0,0.0,1.0,1.0,6.0,3.0,2.0,2.0,6.0,1.0,0.0,0.0,0.0,0.0,4.0,0.0,2.0,1.0,69.0,2.0,0.0,0.0,15.0,1.0,11.0,2.0,2.0,11.0,0.0,1.0
-5.0,2.0,2.0,5.0,2.0,2.0,3.0,12.0,12.0,1.0,0.0,2.0,1.0,1.0,0.0,0.0,0.0,2.0,2.0,6.0,0.0,2.0,1.0,2.0,3.0,2.0,2.0,1.0,2.0,2.0,1.0,0.0,0.0,0.0,3.0,0.0,3.0,1.0,2.0,5.0,21.0,15.0,3.0,3.0,35.0,36.0,12.0,42.0,4.0,0.0
-3.0,2.0,0.0,6.0,0.0,16.0,0.0,0.0,1.0,0.0,6.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,0.0,0.0,1.0,0.0,24.0,5.0,0.0,2.0,9.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,2.0,197.0,2.0,3.0,2.0,11.0,1.0,0.0,0.0,3.0,6.0,0.0,0.0
-0.0,5.0,18.0,4.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,2.0,2.0,2.0,2.0,4.0,0.0,3.0,0.0,0.0,2.0,1.0,4.0,15.0,1.0,1.0,6.0,3.0,1.0,6.0,0.0,4.0,2.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,6.0,6.0,2.0,7.0,0.0,0.0,3.0,5.0,36.0,27.0
-4.0,2.0,27.0,0.0,11.0,0.0,0.0,0.0,2.0,0.0,20.0,3.0,7.0,76.0,31.0,2.0,84.0,15.0,7.0,0.0,9.0,9.0,0.0,102.0,0.0,19.0,10.0,3.0,2.0,1.0,5.0,92.0,2.0,2.0,4.0,42.0,0.0,35.0,0.0,21.0,0.0,0.0,1.0,4.0,6.0,0.0,0.0,0.0,1.0,5.0
-7.0,17.0,8.0,1.0,2.0,1.0,3.0,2.0,0.0,1.0,1.0,2.0,3.0,5.0,1.0,2.0,0.0,2.0,0.0,0.0,4.0,0.0,5.0,5.0,1.0,1.0,2.0,8.0,1.0,4.0,5.0,3.0,9.0,2.0,0.0,2.0,1.0,0.0,3.0,4.0,1.0,7.0,0.0,0.0,1.0,1.0,0.0,4.0,18.0,10.0
-4.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,22.0,10.0,5.0,3.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,3.0,4.0,5.0,4.0,2.0,18.0,2.0,2.0,1.0,9.0,1.0,0.0,0.0,0.0,2.0,4.0,0.0,27.0,1.0,68.0,1.0,0.0,1.0,8.0,0.0,3.0,1.0,4.0,14.0,2.0,1.0
-0.0,0.0,4.0,0.0,3.0,4.0,0.0,0.0,0.0,5.0,1.0,4.0,4.0,9.0,17.0,6.0,5.0,4.0,3.0,0.0,0.0,4.0,0.0,7.0,1.0,8.0,10.0,0.0,0.0,0.0,0.0,1.0,6.0,5.0,3.0,7.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,1.0,6.0
-4.0,0.0,0.0,0.0,2.0,83.0,2.0,2.0,14.0,19.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,16.0,0.0,8.0,0.0,0.0,5.0,9.0,1.0,1.0,42.0,0.0,2.0,0.0,5.0,1.0,1.0,0.0,5.0,5.0,99.0,2.0,0.0,1.0,21.0,1.0,18.0,0.0,3.0,8.0,0.0,0.0
-0.0,4.0,4.0,4.0,6.0,2.0,15.0,6.0,3.0,2.0,1.0,0.0,11.0,0.0,0.0,1.0,2.0,0.0,4.0,3.0,0.0,0.0,7.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,6.0,1.0,0.0,1.0,0.0,2.0,2.0,1.0,3.0,2.0,4.0,0.0,1.0,2.0,1.0,20.0,0.0,0.0,0.0,1.0
-2.0,2.0,5.0,1.0,1.0,0.0,4.0,0.0,2.0,0.0,2.0,0.0,8.0,2.0,0.0,3.0,5.0,11.0,5.0,0.0,11.0,9.0,2.0,6.0,1.0,1.0,10.0,0.0,2.0,1.0,0.0,3.0,0.0,0.0,0.0,19.0,1.0,2.0,0.0,4.0,5.0,18.0,6.0,2.0,3.0,2.0,1.0,3.0,2.0,1.0
-2.0,1.0,0.0,2.0,2.0,9.0,3.0,0.0,2.0,3.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,2.0,2.0,1.0,11.0,1.0,1.0,0.0,2.0,1.0,0.0,0.0,3.0,2.0,12.0,0.0,9.0,5.0,57.0,0.0,3.0,0.0,1.0,0.0,1.0,0.0,2.0,3.0,1.0,1.0
-16.0,0.0,0.0,0.0,1.0,20.0,3.0,9.0,8.0,40.0,6.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,14.0,4.0,1.0,0.0,0.0,12.0,21.0,3.0,1.0,1.0,4.0,0.0,1.0,3.0,1.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,4.0,2.0,1.0,3.0,0.0,0.0,5.0
-1.0,3.0,4.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,6.0,1.0,5.0,1.0,2.0,2.0,2.0,0.0,4.0,3.0,0.0,1.0,4.0,0.0,2.0,2.0,2.0,0.0,3.0,0.0,2.0,4.0,6.0,3.0,4.0,0.0,2.0,1.0,7.0,1.0,0.0,0.0,1.0,3.0,4.0,11.0,2.0,0.0,2.0,2.0
-9.0,4.0,4.0,0.0,1.0,3.0,2.0,4.0,7.0,3.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,2.0,0.0,0.0,3.0,3.0,0.0,1.0,7.0,1.0,0.0,2.0,1.0,0.0,5.0,0.0,2.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,1.0,1.0,1.0,0.0,2.0
-0.0,0.0,0.0,0.0,2.0,2.0,0.0,9.0,10.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,1.0,1.0,0.0,8.0,8.0,0.0,4.0,1.0,0.0,3.0,2.0,3.0,2.0,2.0,11.0,1.0,1.0,2.0,3.0,1.0,5.0,1.0,2.0,2.0,1.0,0.0,2.0,0.0,2.0,2.0,1.0,3.0
-3.0,1.0,13.0,5.0,1.0,1.0,7.0,1.0,0.0,0.0,0.0,0.0,9.0,0.0,4.0,16.0,7.0,5.0,7.0,1.0,0.0,1.0,2.0,5.0,4.0,2.0,2.0,2.0,1.0,2.0,6.0,2.0,1.0,2.0,0.0,7.0,1.0,1.0,3.0,3.0,1.0,2.0,0.0,4.0,1.0,1.0,2.0,1.0,6.0,2.0
-0.0,3.0,2.0,4.0,3.0,1.0,1.0,2.0,1.0,2.0,2.0,1.0,26.0,8.0,6.0,3.0,2.0,2.0,1.0,0.0,1.0,1.0,2.0,10.0,0.0,2.0,4.0,1.0,0.0,2.0,1.0,2.0,0.0,5.0,0.0,5.0,0.0,1.0,0.0,0.0,14.0,116.0,5.0,40.0,7.0,63.0,7.0,0.0,2.0,3.0
-8.0,1.0,2.0,2.0,6.0,1.0,0.0,1.0,1.0,2.0,2.0,5.0,2.0,6.0,1.0,0.0,3.0,5.0,4.0,0.0,6.0,13.0,3.0,14.0,1.0,6.0,3.0,6.0,0.0,0.0,0.0,2.0,1.0,0.0,12.0,1.0,2.0,2.0,4.0,15.0,0.0,3.0,3.0,10.0,0.0,0.0,2.0,3.0,0.0,2.0
-0.0,1.0,3.0,0.0,470.0,3.0,15.0,3.0,13.0,7.0,27.0,9.0,1.0,70.0,17.0,4.0,290.0,11.0,3.0,0.0,37.0,202.0,0.0,146.0,1.0,12.0,8.0,4.0,1.0,0.0,0.0,15.0,36.0,2.0,17.0,49.0,1.0,6.0,0.0,19.0,0.0,0.0,1.0,0.0,22.0,0.0,0.0,2.0,12.0,2.0
-1.0,26.0,3.0,1.0,0.0,0.0,0.0,3.0,1.0,0.0,1.0,0.0,0.0,1.0,2.0,5.0,18.0,3.0,1.0,0.0,0.0,1.0,3.0,4.0,0.0,0.0,0.0,3.0,2.0,2.0,6.0,6.0,0.0,41.0,0.0,4.0,1.0,1.0,0.0,0.0,5.0,2.0,2.0,11.0,0.0,46.0,1.0,0.0,3.0,13.0
-1.0,3.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,5.0,1.0,0.0,3.0,0.0,9.0,0.0,0.0,0.0,7.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,14.0,2.0,25.0,1.0,2.0,1.0,0.0,1.0,0.0,56.0,9.0,2.0,1.0,4.0
-19.0,2.0,4.0,3.0,1.0,27.0,9.0,13.0,39.0,32.0,14.0,5.0,0.0,2.0,1.0,4.0,2.0,3.0,1.0,3.0,5.0,3.0,1.0,0.0,0.0,5.0,2.0,3.0,4.0,0.0,1.0,3.0,11.0,2.0,1.0,2.0,2.0,5.0,9.0,13.0,1.0,0.0,0.0,0.0,8.0,0.0,0.0,5.0,0.0,1.0
-1.0,5.0,1.0,4.0,5.0,1.0,11.0,3.0,5.0,2.0,2.0,1.0,1.0,0.0,2.0,4.0,0.0,6.0,1.0,4.0,3.0,1.0,2.0,2.0,1.0,1.0,1.0,0.0,3.0,0.0,0.0,0.0,2.0,3.0,2.0,0.0,3.0,1.0,6.0,2.0,4.0,19.0,4.0,4.0,0.0,7.0,0.0,0.0,0.0,2.0
-8.0,1.0,1.0,0.0,2.0,1.0,3.0,0.0,4.0,0.0,5.0,4.0,2.0,1.0,0.0,2.0,3.0,1.0,8.0,2.0,14.0,17.0,2.0,1.0,1.0,10.0,4.0,0.0,2.0,1.0,1.0,1.0,3.0,0.0,4.0,1.0,1.0,6.0,3.0,0.0,0.0,1.0,3.0,0.0,1.0,0.0,0.0,2.0,1.0,0.0
-0.0,8.0,2.0,2.0,1.0,0.0,0.0,4.0,7.0,3.0,0.0,7.0,2.0,0.0,0.0,1.0,0.0,1.0,0.0,5.0,2.0,4.0,6.0,0.0,2.0,1.0,4.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,1.0,5.0,1.0,8.0,6.0,2.0,1.0,0.0,2.0,0.0,10.0,0.0,3.0
-0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,3.0,2.0,8.0,1.0,7.0,0.0,1.0,0.0,5.0,4.0,3.0,6.0,3.0,0.0,1.0,2.0,5.0,0.0,0.0,4.0,0.0,0.0,3.0,5.0,2.0,1.0,2.0,3.0,0.0,3.0,1.0,0.0,4.0,0.0,2.0,2.0,0.0,3.0,0.0,0.0
-0.0,0.0,0.0,0.0,2.0,36.0,1.0,2.0,3.0,3.0,3.0,14.0,1.0,1.0,1.0,1.0,0.0,0.0,1.0,6.0,7.0,18.0,3.0,0.0,1.0,3.0,1.0,0.0,1.0,1.0,1.0,0.0,5.0,0.0,5.0,2.0,3.0,7.0,4.0,1.0,0.0,0.0,1.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0
-0.0,4.0,0.0,1.0,0.0,2.0,16.0,6.0,4.0,3.0,0.0,0.0,3.0,0.0,1.0,1.0,0.0,1.0,1.0,2.0,0.0,0.0,2.0,0.0,3.0,1.0,4.0,1.0,0.0,2.0,0.0,1.0,0.0,2.0,0.0,0.0,2.0,1.0,4.0,0.0,10.0,10.0,15.0,5.0,0.0,22.0,5.0,1.0,1.0,0.0
-0.0,0.0,0.0,5.0,7.0,1.0,0.0,0.0,1.0,0.0,2.0,3.0,6.0,7.0,2.0,2.0,10.0,1.0,5.0,0.0,11.0,5.0,2.0,10.0,0.0,4.0,0.0,2.0,0.0,3.0,0.0,3.0,6.0,0.0,3.0,1.0,0.0,0.0,0.0,1.0,3.0,3.0,0.0,4.0,7.0,0.0,1.0,7.0,1.0,16.0
-0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,2.0,29.0,11.0,7.0,14.0,84.0,10.0,2.0,0.0,0.0,0.0,1.0,11.0,0.0,2.0,24.0,23.0,1.0,0.0,0.0,18.0,0.0,1.0,0.0,28.0,0.0,2.0,0.0,0.0,0.0,11.0,0.0,17.0,6.0,3.0,2.0,1.0,13.0,6.0
-20.0,0.0,6.0,0.0,0.0,3.0,9.0,8.0,5.0,0.0,2.0,5.0,1.0,5.0,15.0,2.0,7.0,4.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,5.0,3.0,2.0,1.0,1.0,4.0,4.0,10.0,4.0,4.0,0.0,1.0,1.0,2.0,1.0,3.0,0.0,1.0,1.0,1.0,3.0,1.0,3.0,6.0
-0.0,10.0,15.0,4.0,8.0,2.0,4.0,1.0,0.0,1.0,5.0,0.0,4.0,6.0,4.0,4.0,6.0,10.0,3.0,0.0,1.0,4.0,0.0,2.0,1.0,4.0,7.0,14.0,4.0,1.0,1.0,24.0,5.0,1.0,3.0,2.0,0.0,2.0,0.0,2.0,0.0,1.0,1.0,2.0,1.0,0.0,0.0,0.0,4.0,0.0
-1.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,4.0,5.0,6.0,3.0,3.0,3.0,1.0,0.0,1.0,3.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0,4.0,3.0,14.0,0.0,9.0,0.0,0.0,0.0,5.0
-2.0,6.0,3.0,2.0,0.0,1.0,2.0,5.0,2.0,3.0,8.0,2.0,2.0,0.0,3.0,2.0,3.0,5.0,4.0,5.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,5.0,0.0,0.0,2.0,2.0,1.0,2.0,10.0,11.0,12.0,4.0,11.0,14.0,7.0,3.0,0.0,1.0
-1.0,1.0,5.0,2.0,5.0,9.0,16.0,13.0,2.0,0.0,0.0,0.0,7.0,4.0,2.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,1.0,2.0,3.0,1.0,3.0,4.0,3.0,6.0,3.0,3.0,0.0,1.0,0.0,7.0,3.0,2.0,0.0,1.0,0.0,3.0,1.0,8.0,0.0,13.0,4.0,0.0,0.0,0.0
-21.0,0.0,2.0,8.0,0.0,0.0,1.0,0.0,1.0,0.0,3.0,5.0,0.0,2.0,1.0,0.0,1.0,4.0,2.0,3.0,10.0,5.0,1.0,4.0,2.0,2.0,3.0,2.0,1.0,3.0,1.0,2.0,3.0,5.0,4.0,1.0,4.0,1.0,10.0,9.0,1.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0
-1.0,0.0,1.0,0.0,22.0,43.0,1.0,6.0,223.0,108.0,3.0,8.0,0.0,0.0,6.0,0.0,1.0,2.0,1.0,5.0,9.0,7.0,0.0,0.0,3.0,12.0,9.0,0.0,1.0,1.0,0.0,2.0,9.0,1.0,3.0,0.0,1.0,6.0,33.0,6.0,0.0,1.0,4.0,0.0,1.0,0.0,1.0,3.0,0.0,0.0
-1.0,0.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,16.0,8.0,1.0,2.0,12.0,0.0,0.0,1.0,2.0,0.0,2.0,7.0,0.0,2.0,1.0,1.0,1.0,0.0,2.0,2.0,1.0,6.0,0.0,20.0,2.0,1.0,1.0,0.0,4.0,7.0,1.0,5.0,0.0,1.0,0.0,0.0,1.0,2.0
-4.0,3.0,1.0,3.0,1.0,1.0,0.0,4.0,2.0,6.0,0.0,5.0,2.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,2.0,2.0,3.0,0.0,4.0,9.0,1.0,0.0,22.0,11.0,4.0,1.0,2.0,6.0,1.0,0.0,2.0,5.0,4.0,1.0,0.0,0.0,4.0,0.0,2.0,10.0,4.0,3.0,2.0,2.0
-1.0,3.0,1.0,2.0,2.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,0.0,0.0,1.0,1.0,0.0,2.0,4.0,1.0,1.0,11.0,0.0,0.0,1.0,0.0,4.0,0.0,1.0,7.0,2.0,1.0,1.0,24.0,3.0,5.0,22.0,12.0
-1.0,1.0,0.0,14.0,1.0,3.0,2.0,0.0,6.0,3.0,0.0,2.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,69.0,1.0,7.0,3.0,0.0,26.0,3.0,0.0,2.0,3.0,2.0,2.0,0.0,2.0,3.0,1.0,0.0,3.0,0.0,95.0,3.0,4.0,8.0,4.0,0.0,6.0,18.0,41.0,23.0,1.0,4.0
-7.0,0.0,0.0,0.0,4.0,5.0,2.0,1.0,9.0,3.0,0.0,3.0,0.0,4.0,3.0,1.0,2.0,3.0,2.0,1.0,15.0,3.0,1.0,1.0,1.0,11.0,1.0,1.0,6.0,0.0,4.0,0.0,7.0,1.0,10.0,0.0,2.0,2.0,6.0,1.0,2.0,7.0,1.0,2.0,4.0,1.0,2.0,5.0,7.0,8.0
-11.0,36.0,8.0,36.0,1.0,4.0,2.0,6.0,0.0,2.0,1.0,1.0,2.0,1.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,2.0,1.0,13.0,1.0,1.0,3.0,2.0,1.0,5.0,1.0,2.0,0.0,2.0,0.0,9.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,17.0,6.0,1.0,69.0,77.0
-57.0,0.0,0.0,14.0,4.0,73.0,0.0,4.0,63.0,36.0,2.0,3.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,126.0,4.0,28.0,7.0,0.0,16.0,3.0,1.0,0.0,4.0,1.0,1.0,0.0,3.0,1.0,24.0,0.0,11.0,1.0,2781.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0
-16.0,1.0,0.0,2.0,0.0,5.0,1.0,3.0,10.0,19.0,0.0,5.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,8.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,4.0,2.0,5.0,0.0,5.0,0.0,3.0,1.0,1.0,1.0,9.0,2.0,0.0,1.0,1.0,0.0,6.0,1.0,2.0,6.0,1.0,2.0
-3.0,9.0,2.0,0.0,0.0,1.0,3.0,5.0,1.0,1.0,0.0,1.0,1.0,1.0,3.0,4.0,1.0,0.0,1.0,3.0,6.0,2.0,0.0,0.0,1.0,1.0,4.0,6.0,3.0,0.0,1.0,1.0,0.0,4.0,5.0,2.0,12.0,2.0,1.0,1.0,1.0,1.0,10.0,4.0,9.0,2.0,1.0,0.0,0.0,0.0
-0.0,2.0,2.0,3.0,0.0,1.0,0.0,0.0,2.0,0.0,5.0,3.0,4.0,14.0,2.0,1.0,5.0,3.0,4.0,1.0,0.0,1.0,2.0,2.0,1.0,0.0,0.0,2.0,1.0,0.0,1.0,9.0,2.0,2.0,0.0,3.0,3.0,1.0,0.0,2.0,1.0,2.0,1.0,0.0,2.0,2.0,7.0,1.0,4.0,4.0
-0.0,0.0,3.0,0.0,0.0,1.0,5.0,3.0,0.0,1.0,0.0,0.0,6.0,8.0,1.0,4.0,15.0,4.0,3.0,2.0,2.0,0.0,0.0,6.0,4.0,1.0,1.0,1.0,0.0,2.0,1.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,9.0,1.0,2.0,2.0,34.0,1.0,1.0,6.0,1.0
-0.0,3.0,9.0,0.0,5.0,0.0,1.0,2.0,0.0,0.0,0.0,8.0,6.0,29.0,1.0,1.0,3.0,0.0,0.0,0.0,18.0,35.0,2.0,3.0,3.0,2.0,6.0,3.0,1.0,2.0,0.0,1.0,3.0,0.0,2.0,3.0,1.0,2.0,1.0,6.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,13.0,1.0,0.0
-3.0,1.0,5.0,1.0,2.0,1.0,2.0,0.0,10.0,2.0,6.0,2.0,1.0,0.0,2.0,0.0,3.0,1.0,2.0,2.0,4.0,2.0,0.0,3.0,1.0,14.0,3.0,0.0,1.0,2.0,0.0,0.0,3.0,0.0,5.0,0.0,1.0,2.0,3.0,4.0,1.0,0.0,3.0,0.0,6.0,0.0,1.0,1.0,0.0,0.0
-1.0,3.0,13.0,0.0,10.0,0.0,4.0,3.0,18.0,10.0,4.0,0.0,13.0,2.0,7.0,1.0,7.0,1.0,5.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,3.0,1.0,0.0,1.0,1.0,0.0,0.0,2.0,11.0,1.0,4.0,1.0,1.0,2.0,2.0,2.0,5.0,5.0,1.0,1.0,1.0,3.0,0.0
-0.0,0.0,0.0,0.0,6.0,0.0,1.0,0.0,0.0,0.0,1.0,4.0,5.0,6.0,20.0,9.0,1.0,2.0,4.0,0.0,2.0,1.0,1.0,8.0,1.0,0.0,12.0,3.0,0.0,0.0,1.0,4.0,2.0,2.0,0.0,2.0,2.0,7.0,0.0,0.0,0.0,2.0,0.0,3.0,13.0,6.0,0.0,5.0,1.0,4.0
-1.0,12.0,1.0,7.0,7.0,9.0,15.0,23.0,0.0,5.0,2.0,0.0,0.0,0.0,4.0,0.0,1.0,2.0,1.0,5.0,2.0,0.0,1.0,0.0,8.0,0.0,0.0,0.0,0.0,3.0,2.0,1.0,4.0,2.0,3.0,2.0,5.0,1.0,24.0,1.0,5.0,10.0,12.0,8.0,0.0,3.0,11.0,2.0,0.0,2.0
-1.0,0.0,1.0,0.0,3.0,0.0,0.0,0.0,0.0,3.0,0.0,6.0,1.0,7.0,5.0,1.0,3.0,1.0,2.0,0.0,3.0,7.0,2.0,2.0,2.0,4.0,2.0,3.0,1.0,1.0,0.0,5.0,2.0,1.0,5.0,0.0,0.0,12.0,0.0,14.0,1.0,5.0,0.0,1.0,8.0,0.0,1.0,0.0,22.0,6.0
-2.0,18.0,2.0,6.0,0.0,0.0,0.0,3.0,0.0,1.0,1.0,0.0,3.0,0.0,0.0,3.0,0.0,3.0,0.0,2.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,7.0,2.0,0.0,1.0,2.0,2.0,0.0,8.0,1.0,2.0,1.0,0.0,0.0,1.0,2.0,1.0,121.0,8.0,5.0,6.0,13.0
-1.0,1.0,2.0,4.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,3.0,0.0,3.0,2.0,2.0,0.0,11.0,6.0,1.0,4.0,2.0,3.0,3.0,0.0,3.0,6.0,1.0,2.0,3.0,2.0,0.0,2.0,2.0,1.0,1.0,2.0,5.0,2.0,1.0,1.0,1.0,0.0,6.0,8.0,1.0,1.0,3.0,2.0
-9.0,1.0,1.0,1.0,3.0,3.0,0.0,2.0,0.0,5.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,2.0,1.0,9.0,0.0,0.0,4.0,0.0,6.0,1.0,0.0,3.0,6.0,4.0,1.0,0.0,7.0,9.0,0.0,1.0,7.0,3.0,33.0,1.0,6.0,8.0,17.0,1.0,3.0,12.0,7.0,2.0,1.0,0.0
-2.0,3.0,11.0,2.0,15.0,0.0,0.0,2.0,1.0,4.0,2.0,5.0,7.0,11.0,5.0,4.0,19.0,10.0,6.0,0.0,5.0,4.0,1.0,0.0,1.0,2.0,1.0,7.0,1.0,0.0,1.0,14.0,10.0,1.0,2.0,4.0,0.0,5.0,0.0,5.0,0.0,1.0,2.0,1.0,4.0,0.0,2.0,1.0,2.0,3.0
-2.0,1.0,40.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,2.0,1.0,6.0,3.0,4.0,6.0,1.0,0.0,3.0,8.0,6.0,15.0,1.0,2.0,5.0,4.0,0.0,1.0,1.0,5.0,2.0,2.0,2.0,4.0,0.0,1.0,0.0,1.0,6.0,14.0,3.0,8.0,5.0,2.0,0.0,0.0,7.0,2.0
-1.0,3.0,5.0,0.0,3.0,2.0,1.0,2.0,2.0,5.0,1.0,5.0,0.0,0.0,0.0,3.0,1.0,0.0,3.0,9.0,2.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,5.0,1.0,7.0,4.0,0.0,0.0,6.0,1.0,11.0,2.0,4.0,1.0,1.0,2.0,0.0,0.0,3.0,6.0,5.0,1.0
-0.0,10.0,14.0,1.0,7.0,1.0,1.0,0.0,0.0,0.0,6.0,0.0,6.0,0.0,4.0,2.0,9.0,6.0,1.0,0.0,4.0,4.0,5.0,2.0,0.0,6.0,3.0,4.0,2.0,1.0,3.0,1.0,2.0,1.0,5.0,18.0,0.0,4.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,5.0,4.0
-0.0,5.0,33.0,2.0,2.0,2.0,3.0,1.0,1.0,0.0,3.0,3.0,7.0,70.0,44.0,23.0,51.0,9.0,1.0,0.0,0.0,6.0,0.0,37.0,0.0,2.0,8.0,4.0,1.0,0.0,2.0,47.0,3.0,0.0,3.0,53.0,0.0,4.0,0.0,2.0,0.0,2.0,0.0,5.0,1.0,0.0,1.0,2.0,22.0,3.0
-3.0,2.0,1.0,5.0,0.0,8.0,3.0,0.0,1.0,2.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,3.0,0.0,3.0,1.0,1.0,0.0,8.0,3.0,1.0,0.0,1.0,5.0,2.0,1.0,21.0,2.0,355.0,3.0,1.0,2.0,2.0,0.0,0.0,3.0,4.0,1.0,1.0,0.0
-5.0,0.0,10.0,4.0,4.0,10.0,0.0,0.0,3.0,1.0,3.0,8.0,0.0,0.0,2.0,1.0,1.0,2.0,5.0,7.0,3.0,34.0,1.0,1.0,15.0,15.0,4.0,0.0,8.0,4.0,0.0,5.0,5.0,0.0,4.0,1.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,2.0,3.0,5.0,6.0,3.0,3.0,1.0,1.0,3.0,0.0,7.0,7.0,1.0,2.0,0.0,0.0,0.0,3.0,8.0,5.0,5.0,4.0,1.0,5.0,7.0,7.0,0.0,4.0,7.0,8.0,5.0,0.0,2.0,1.0,1.0,3.0,1.0,2.0,6.0,1.0,1.0,3.0,2.0,0.0,0.0,0.0
-0.0,0.0,7.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,9.0,3.0,3.0,11.0,1.0,3.0,2.0,0.0,6.0,0.0,1.0,2.0,3.0,9.0,2.0,1.0,6.0,5.0,3.0,2.0,2.0,11.0,0.0,3.0,2.0,20.0,1.0,3.0,0.0,4.0,2.0,1.0,1.0,1.0,1.0,0.0,1.0,0.0,4.0,2.0
-4.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,5.0,8.0,0.0,3.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,7.0,0.0,3.0,1.0,0.0,4.0,9.0,1.0,0.0,7.0,0.0,3.0,1.0,3.0,1.0,2.0,2.0,0.0,2.0,14.0,0.0,0.0,0.0,7.0,1.0,2.0,5.0,6.0,4.0,0.0,0.0
-0.0,1.0,3.0,5.0,1.0,2.0,0.0,4.0,0.0,0.0,0.0,1.0,4.0,0.0,12.0,2.0,1.0,3.0,4.0,7.0,3.0,4.0,5.0,3.0,0.0,0.0,4.0,0.0,0.0,1.0,3.0,3.0,2.0,0.0,3.0,4.0,0.0,2.0,1.0,0.0,21.0,3.0,3.0,2.0,0.0,1.0,0.0,1.0,0.0,2.0
-4.0,2.0,0.0,5.0,1.0,14.0,0.0,1.0,28.0,5.0,13.0,4.0,1.0,2.0,0.0,0.0,0.0,0.0,5.0,19.0,2.0,3.0,5.0,1.0,5.0,2.0,0.0,1.0,27.0,10.0,1.0,1.0,0.0,0.0,4.0,0.0,10.0,0.0,103.0,5.0,3.0,0.0,13.0,1.0,6.0,1.0,0.0,3.0,0.0,0.0
-1.0,0.0,0.0,0.0,1.0,1.0,0.0,2.0,4.0,9.0,2.0,5.0,0.0,0.0,0.0,3.0,2.0,5.0,0.0,3.0,0.0,1.0,0.0,2.0,1.0,3.0,2.0,0.0,4.0,1.0,5.0,4.0,7.0,3.0,7.0,3.0,9.0,1.0,5.0,1.0,0.0,1.0,2.0,0.0,4.0,0.0,5.0,2.0,1.0,1.0
-0.0,4.0,3.0,0.0,12.0,0.0,0.0,0.0,3.0,4.0,5.0,0.0,2.0,15.0,2.0,5.0,8.0,7.0,2.0,0.0,3.0,4.0,6.0,14.0,1.0,4.0,9.0,7.0,1.0,9.0,15.0,9.0,3.0,0.0,1.0,21.0,0.0,1.0,1.0,7.0,2.0,13.0,1.0,10.0,2.0,1.0,0.0,2.0,2.0,5.0
-2.0,2.0,7.0,5.0,1.0,1.0,9.0,11.0,0.0,2.0,2.0,2.0,2.0,4.0,3.0,1.0,0.0,3.0,5.0,1.0,8.0,2.0,3.0,16.0,4.0,0.0,2.0,7.0,1.0,1.0,5.0,6.0,1.0,12.0,1.0,5.0,0.0,2.0,0.0,0.0,9.0,0.0,2.0,0.0,3.0,7.0,1.0,0.0,3.0,0.0
-1.0,0.0,8.0,7.0,3.0,1.0,1.0,0.0,2.0,0.0,6.0,0.0,2.0,17.0,4.0,10.0,12.0,12.0,6.0,0.0,4.0,5.0,0.0,13.0,1.0,5.0,29.0,1.0,0.0,4.0,0.0,15.0,1.0,2.0,0.0,4.0,0.0,0.0,1.0,2.0,3.0,4.0,1.0,6.0,4.0,1.0,1.0,1.0,17.0,6.0
-0.0,0.0,0.0,2.0,0.0,1.0,4.0,0.0,1.0,3.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,4.0,1.0,1.0,0.0,0.0,2.0,1.0,1.0,2.0,0.0,2.0,8.0,6.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,4.0,2.0,1.0,55.0,11.0,2.0,1.0,2.0
-2.0,7.0,1.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,0.0,9.0,3.0,3.0,1.0,3.0,9.0,5.0,1.0,9.0,2.0,2.0,0.0,1.0,0.0,4.0,6.0,2.0,4.0,1.0,2.0,0.0,2.0,2.0,3.0,0.0,0.0,0.0,3.0,0.0,2.0,1.0,24.0,2.0,5.0,4.0,5.0,6.0,1.0
-0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,4.0,3.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,3.0,0.0,8.0,6.0,11.0,1.0,3.0,2.0,0.0,5.0,2.0,2.0,0.0,5.0,3.0,0.0,0.0,3.0,2.0,0.0,3.0,0.0,3.0,0.0,0.0,2.0,10.0,11.0,6.0,2.0,3.0,1.0,1.0
-54.0,3.0,4.0,2.0,27.0,80.0,2.0,3.0,43.0,39.0,0.0,5.0,0.0,0.0,2.0,0.0,2.0,0.0,1.0,3.0,13.0,37.0,2.0,1.0,27.0,50.0,0.0,0.0,9.0,2.0,1.0,0.0,11.0,0.0,22.0,0.0,5.0,4.0,18.0,2.0,0.0,0.0,3.0,2.0,109.0,0.0,3.0,18.0,0.0,1.0
-0.0,1.0,6.0,5.0,11.0,3.0,7.0,12.0,0.0,4.0,0.0,0.0,4.0,1.0,3.0,0.0,2.0,5.0,5.0,0.0,1.0,2.0,4.0,2.0,0.0,3.0,7.0,3.0,4.0,0.0,0.0,2.0,2.0,2.0,0.0,3.0,0.0,3.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,0.0,2.0
-5.0,2.0,2.0,4.0,0.0,3.0,5.0,5.0,10.0,3.0,9.0,3.0,3.0,1.0,1.0,4.0,1.0,0.0,0.0,1.0,2.0,0.0,2.0,1.0,11.0,7.0,4.0,0.0,9.0,3.0,3.0,0.0,2.0,5.0,2.0,0.0,26.0,1.0,6.0,0.0,3.0,2.0,2.0,0.0,1.0,2.0,7.0,4.0,1.0,3.0
-0.0,1.0,2.0,0.0,4.0,1.0,0.0,0.0,1.0,0.0,3.0,2.0,1.0,6.0,7.0,18.0,9.0,5.0,3.0,0.0,1.0,4.0,1.0,2.0,1.0,2.0,1.0,1.0,0.0,0.0,1.0,2.0,6.0,0.0,3.0,2.0,2.0,4.0,0.0,2.0,3.0,2.0,6.0,33.0,4.0,0.0,1.0,2.0,4.0,4.0
-1.0,1.0,0.0,4.0,1.0,2.0,0.0,1.0,0.0,0.0,3.0,2.0,0.0,2.0,2.0,1.0,0.0,1.0,4.0,1.0,0.0,2.0,1.0,2.0,1.0,0.0,0.0,1.0,1.0,5.0,1.0,2.0,3.0,3.0,2.0,7.0,10.0,1.0,9.0,3.0,2.0,2.0,1.0,6.0,0.0,0.0,1.0,2.0,1.0,1.0
-25.0,1.0,0.0,2.0,13.0,64.0,3.0,0.0,14.0,9.0,17.0,51.0,0.0,5.0,2.0,0.0,0.0,1.0,1.0,24.0,15.0,13.0,3.0,0.0,11.0,0.0,0.0,0.0,11.0,2.0,4.0,0.0,2.0,0.0,26.0,0.0,5.0,6.0,63.0,5.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,11.0,0.0,0.0
-0.0,1.0,5.0,3.0,1.0,5.0,2.0,1.0,2.0,10.0,1.0,0.0,0.0,6.0,5.0,4.0,1.0,2.0,5.0,8.0,5.0,2.0,3.0,2.0,0.0,1.0,1.0,0.0,2.0,4.0,1.0,5.0,3.0,4.0,4.0,6.0,2.0,2.0,3.0,14.0,0.0,0.0,1.0,2.0,7.0,10.0,10.0,17.0,3.0,2.0
-1.0,2.0,4.0,0.0,1.0,6.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,0.0,4.0,3.0,0.0,1.0,3.0,29.0,0.0,3.0,7.0,2.0,9.0,2.0,0.0,0.0,1.0,5.0,2.0,0.0,2.0,2.0,0.0,0.0,10.0,2.0,44.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0
-5.0,25.0,1.0,14.0,0.0,0.0,0.0,4.0,13.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,2.0,2.0,0.0,6.0,0.0,0.0,9.0,0.0,1.0,5.0,1.0,0.0,0.0,3.0,4.0,1.0,1.0,2.0,2.0,1.0,6.0,1.0,5.0,0.0,1.0,2.0,2.0,3.0,1.0,8.0,1.0,3.0,0.0,0.0
-0.0,2.0,4.0,3.0,25.0,7.0,2.0,0.0,3.0,1.0,2.0,2.0,0.0,5.0,10.0,5.0,8.0,2.0,5.0,0.0,17.0,39.0,1.0,7.0,0.0,4.0,4.0,0.0,0.0,1.0,1.0,13.0,6.0,2.0,10.0,8.0,1.0,4.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,5.0,5.0,0.0
-1.0,1.0,2.0,3.0,5.0,26.0,0.0,1.0,3.0,2.0,3.0,6.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,5.0,5.0,10.0,0.0,0.0,8.0,6.0,0.0,0.0,2.0,1.0,3.0,1.0,9.0,1.0,7.0,0.0,7.0,2.0,14.0,2.0,3.0,0.0,2.0,0.0,3.0,1.0,3.0,11.0,2.0,6.0
-1.0,1.0,1.0,0.0,6.0,4.0,4.0,2.0,4.0,6.0,0.0,1.0,0.0,2.0,2.0,1.0,2.0,3.0,0.0,1.0,2.0,2.0,2.0,3.0,3.0,4.0,1.0,2.0,1.0,2.0,2.0,3.0,2.0,0.0,13.0,2.0,2.0,7.0,10.0,1.0,0.0,4.0,3.0,0.0,1.0,2.0,2.0,1.0,1.0,0.0
-2.0,6.0,0.0,0.0,2.0,3.0,3.0,7.0,2.0,2.0,1.0,1.0,4.0,5.0,0.0,2.0,0.0,1.0,0.0,1.0,0.0,1.0,3.0,0.0,5.0,1.0,0.0,3.0,2.0,18.0,4.0,1.0,1.0,9.0,1.0,0.0,12.0,0.0,10.0,1.0,36.0,27.0,7.0,13.0,0.0,53.0,6.0,6.0,3.0,2.0
-1.0,9.0,4.0,0.0,1.0,0.0,2.0,2.0,1.0,1.0,2.0,1.0,3.0,4.0,1.0,3.0,7.0,2.0,3.0,1.0,3.0,3.0,3.0,6.0,3.0,1.0,2.0,14.0,1.0,4.0,6.0,3.0,3.0,4.0,1.0,6.0,2.0,1.0,0.0,1.0,26.0,3.0,16.0,17.0,5.0,2.0,1.0,1.0,2.0,4.0
-6.0,14.0,1.0,1.0,0.0,1.0,0.0,0.0,1.0,6.0,0.0,0.0,12.0,0.0,0.0,2.0,0.0,1.0,1.0,0.0,0.0,0.0,5.0,2.0,2.0,0.0,2.0,2.0,0.0,0.0,8.0,0.0,0.0,12.0,0.0,0.0,4.0,0.0,2.0,2.0,3.0,48.0,1.0,2.0,0.0,8.0,4.0,3.0,1.0,5.0
-0.0,0.0,0.0,0.0,4.0,5.0,0.0,1.0,0.0,1.0,0.0,2.0,4.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,2.0,0.0,0.0,0.0,0.0,2.0,3.0,5.0,5.0,4.0,1.0,3.0,0.0,0.0,4.0,2.0,2.0,5.0,4.0,1.0,2.0,8.0,8.0,9.0,6.0,9.0,0.0,0.0,0.0,4.0
-1.0,1.0,2.0,5.0,9.0,0.0,0.0,1.0,6.0,3.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,2.0,3.0,1.0,0.0,1.0,2.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,3.0,1.0,5.0,4.0,0.0,4.0,2.0,4.0,9.0,9.0
-1.0,13.0,2.0,0.0,0.0,2.0,0.0,1.0,1.0,1.0,0.0,0.0,7.0,1.0,0.0,8.0,1.0,0.0,2.0,1.0,0.0,1.0,3.0,2.0,0.0,0.0,1.0,8.0,1.0,0.0,2.0,2.0,0.0,3.0,1.0,1.0,2.0,1.0,1.0,1.0,3.0,1.0,8.0,14.0,0.0,13.0,5.0,9.0,18.0,9.0
-0.0,1.0,7.0,8.0,7.0,1.0,3.0,0.0,0.0,3.0,0.0,2.0,2.0,10.0,1.0,1.0,45.0,0.0,2.0,0.0,0.0,1.0,0.0,9.0,1.0,1.0,25.0,29.0,1.0,17.0,0.0,17.0,4.0,8.0,1.0,28.0,1.0,3.0,1.0,1.0,2.0,1.0,0.0,4.0,0.0,2.0,0.0,0.0,8.0,2.0
-0.0,3.0,1.0,5.0,7.0,1.0,6.0,2.0,2.0,8.0,3.0,5.0,14.0,11.0,0.0,1.0,1.0,5.0,2.0,0.0,5.0,2.0,4.0,13.0,2.0,0.0,1.0,3.0,1.0,4.0,6.0,5.0,1.0,1.0,2.0,4.0,1.0,3.0,0.0,5.0,0.0,2.0,2.0,1.0,2.0,1.0,1.0,1.0,0.0,0.0
-0.0,2.0,1.0,0.0,14.0,4.0,2.0,2.0,4.0,3.0,1.0,1.0,2.0,6.0,6.0,4.0,4.0,13.0,2.0,1.0,3.0,22.0,3.0,8.0,5.0,11.0,7.0,2.0,4.0,0.0,0.0,6.0,1.0,0.0,4.0,4.0,1.0,5.0,0.0,1.0,0.0,2.0,10.0,1.0,5.0,1.0,0.0,1.0,1.0,0.0
-6.0,0.0,0.0,0.0,0.0,6.0,7.0,1.0,1.0,12.0,1.0,1.0,0.0,0.0,0.0,0.0,5.0,8.0,7.0,2.0,1.0,8.0,5.0,2.0,4.0,8.0,0.0,2.0,2.0,2.0,5.0,1.0,3.0,1.0,2.0,1.0,2.0,2.0,7.0,0.0,9.0,5.0,5.0,3.0,13.0,28.0,49.0,18.0,7.0,11.0
-0.0,0.0,3.0,3.0,2.0,0.0,2.0,5.0,2.0,5.0,0.0,2.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,4.0,5.0,2.0,13.0,2.0,12.0,4.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,1.0,4.0,9.0,3.0,9.0,3.0,3.0,31.0,4.0,6.0,6.0,5.0,10.0,1.0,2.0,3.0
-0.0,0.0,5.0,3.0,1.0,0.0,2.0,3.0,0.0,0.0,1.0,1.0,12.0,17.0,17.0,38.0,14.0,9.0,1.0,1.0,0.0,0.0,0.0,10.0,0.0,0.0,3.0,9.0,0.0,3.0,2.0,5.0,0.0,1.0,0.0,89.0,1.0,4.0,0.0,0.0,1.0,8.0,1.0,20.0,0.0,11.0,3.0,0.0,1.0,0.0
-0.0,3.0,2.0,3.0,0.0,0.0,3.0,1.0,3.0,1.0,3.0,1.0,4.0,1.0,1.0,0.0,0.0,0.0,2.0,1.0,1.0,1.0,10.0,2.0,0.0,0.0,1.0,4.0,5.0,4.0,10.0,0.0,0.0,3.0,0.0,2.0,1.0,1.0,2.0,0.0,2.0,1.0,0.0,3.0,0.0,51.0,1.0,0.0,1.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,2.0,2.0,0.0,5.0,4.0,0.0,1.0,2.0,1.0,1.0,1.0,0.0,0.0,1.0,3.0,0.0,0.0,2.0,3.0,2.0,4.0,0.0,1.0,0.0,2.0,0.0,6.0,18.0,7.0,11.0,3.0,6.0,3.0,0.0,8.0,1.0,37.0,10.0,6.0,21.0,11.0
-1.0,0.0,3.0,0.0,2.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,0.0,8.0,20.0,7.0,3.0,6.0,1.0,0.0,14.0,6.0,2.0,1.0,0.0,1.0,2.0,2.0,4.0,1.0,1.0,10.0,0.0,2.0,3.0,1.0,1.0,4.0,1.0,4.0,0.0,0.0,2.0,1.0,2.0,1.0,0.0,3.0,0.0,1.0
-1.0,0.0,2.0,4.0,0.0,0.0,2.0,5.0,3.0,17.0,2.0,1.0,0.0,4.0,2.0,1.0,1.0,0.0,1.0,1.0,3.0,8.0,1.0,1.0,6.0,1.0,4.0,1.0,2.0,3.0,2.0,2.0,1.0,2.0,3.0,2.0,2.0,1.0,1.0,1.0,1.0,14.0,4.0,6.0,1.0,0.0,2.0,1.0,11.0,15.0
-1.0,13.0,47.0,0.0,10.0,0.0,5.0,6.0,0.0,1.0,0.0,0.0,56.0,49.0,30.0,75.0,310.0,36.0,5.0,0.0,2.0,0.0,0.0,42.0,0.0,0.0,8.0,8.0,0.0,8.0,13.0,83.0,2.0,6.0,2.0,284.0,0.0,1.0,0.0,2.0,3.0,4.0,0.0,16.0,1.0,4.0,0.0,0.0,18.0,6.0
-1.0,1.0,2.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,1.0,0.0,10.0,3.0,2.0,5.0,1.0,0.0,0.0,5.0,10.0,1.0,1.0,1.0,3.0,2.0,7.0,13.0,6.0,0.0,5.0,0.0,5.0,0.0,1.0,0.0,2.0,2.0,2.0,1.0,4.0,2.0,7.0,4.0,0.0,5.0,1.0
-1.0,7.0,1.0,0.0,0.0,0.0,1.0,2.0,1.0,0.0,4.0,2.0,2.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,5.0,1.0,0.0,2.0,7.0,1.0,8.0,2.0,2.0,2.0,1.0,5.0,2.0,3.0,5.0,9.0,1.0,6.0,0.0,6.0,3.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,4.0
-2.0,0.0,2.0,0.0,2.0,9.0,0.0,3.0,33.0,27.0,9.0,1.0,3.0,0.0,1.0,0.0,1.0,1.0,1.0,4.0,4.0,4.0,6.0,2.0,5.0,16.0,4.0,0.0,2.0,0.0,2.0,2.0,12.0,1.0,4.0,0.0,3.0,1.0,12.0,1.0,0.0,0.0,0.0,1.0,3.0,0.0,1.0,2.0,1.0,0.0
-1.0,7.0,0.0,0.0,6.0,2.0,7.0,0.0,13.0,0.0,4.0,3.0,4.0,1.0,4.0,2.0,0.0,7.0,5.0,7.0,0.0,0.0,0.0,0.0,5.0,1.0,1.0,3.0,3.0,3.0,7.0,0.0,2.0,5.0,6.0,0.0,1.0,0.0,3.0,0.0,3.0,2.0,3.0,2.0,5.0,6.0,2.0,1.0,2.0,2.0
-1.0,2.0,0.0,0.0,0.0,1.0,3.0,1.0,5.0,2.0,0.0,0.0,0.0,10.0,4.0,7.0,4.0,3.0,7.0,3.0,0.0,0.0,0.0,5.0,2.0,2.0,2.0,6.0,5.0,26.0,3.0,5.0,7.0,2.0,1.0,2.0,1.0,2.0,2.0,4.0,5.0,10.0,15.0,5.0,3.0,4.0,4.0,15.0,1.0,7.0
-0.0,3.0,3.0,6.0,1.0,1.0,4.0,19.0,4.0,1.0,2.0,0.0,3.0,1.0,0.0,3.0,3.0,0.0,3.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,0.0,10.0,3.0,8.0,2.0,2.0,0.0,1.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,13.0,4.0,4.0,37.0,38.0
-0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,0.0,10.0,0.0,3.0,0.0,0.0,0.0,3.0,1.0,0.0,0.0,0.0,2.0,1.0,0.0,5.0,1.0,28.0,0.0,1.0,4.0,7.0,1.0,1.0,8.0,11.0,3.0,0.0,3.0
-0.0,0.0,0.0,3.0,1.0,8.0,2.0,0.0,0.0,2.0,6.0,7.0,2.0,0.0,4.0,3.0,5.0,2.0,1.0,2.0,2.0,11.0,3.0,4.0,0.0,0.0,2.0,0.0,1.0,1.0,0.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,1.0,0.0,2.0,3.0,1.0,4.0,5.0,2.0,5.0,7.0,8.0,5.0
-1.0,1.0,1.0,2.0,18.0,2.0,1.0,2.0,8.0,4.0,1.0,0.0,3.0,3.0,4.0,10.0,67.0,26.0,1.0,0.0,17.0,5.0,0.0,6.0,0.0,2.0,13.0,10.0,0.0,3.0,0.0,1.0,2.0,2.0,0.0,23.0,0.0,5.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,19.0,11.0
-21.0,11.0,2.0,3.0,4.0,1.0,0.0,0.0,1.0,1.0,0.0,2.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,0.0,4.0,3.0,1.0,4.0,4.0,1.0,6.0,1.0,1.0,1.0,3.0,1.0,1.0,2.0,2.0,2.0,5.0,9.0,0.0,3.0,10.0,3.0,0.0,1.0,4.0,0.0,2.0,2.0,2.0,5.0
-6.0,3.0,5.0,5.0,4.0,0.0,3.0,1.0,5.0,1.0,5.0,1.0,1.0,5.0,2.0,0.0,0.0,1.0,2.0,1.0,5.0,4.0,4.0,3.0,1.0,2.0,4.0,2.0,1.0,4.0,6.0,3.0,5.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,0.0,1.0,6.0,8.0,1.0,4.0,10.0,2.0,3.0
-0.0,3.0,2.0,1.0,4.0,4.0,4.0,2.0,11.0,1.0,1.0,4.0,1.0,0.0,0.0,1.0,1.0,1.0,4.0,24.0,1.0,0.0,4.0,0.0,13.0,2.0,2.0,5.0,6.0,2.0,2.0,0.0,1.0,0.0,2.0,2.0,5.0,7.0,32.0,2.0,0.0,0.0,2.0,2.0,0.0,2.0,7.0,1.0,1.0,6.0
-5.0,2.0,0.0,1.0,4.0,3.0,8.0,2.0,2.0,2.0,1.0,2.0,2.0,1.0,2.0,1.0,2.0,3.0,2.0,1.0,2.0,2.0,2.0,4.0,2.0,4.0,1.0,5.0,3.0,3.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,5.0,1.0,3.0,4.0,1.0,1.0,2.0,2.0,0.0,10.0,11.0,5.0,4.0
-2.0,0.0,1.0,0.0,30.0,29.0,4.0,20.0,86.0,524.0,4.0,14.0,0.0,18.0,12.0,2.0,2.0,4.0,9.0,4.0,7.0,33.0,1.0,4.0,5.0,2.0,4.0,0.0,1.0,0.0,1.0,1.0,1.0,1.0,37.0,1.0,1.0,1.0,2.0,9.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,8.0,0.0,0.0
-1.0,2.0,0.0,2.0,1.0,5.0,0.0,0.0,4.0,9.0,1.0,3.0,3.0,1.0,2.0,0.0,0.0,2.0,1.0,3.0,0.0,1.0,5.0,1.0,10.0,1.0,1.0,1.0,3.0,1.0,0.0,1.0,1.0,3.0,2.0,0.0,2.0,0.0,13.0,6.0,2.0,2.0,0.0,0.0,0.0,3.0,1.0,1.0,2.0,4.0
-0.0,0.0,0.0,1.0,0.0,1.0,8.0,2.0,0.0,1.0,1.0,0.0,2.0,4.0,3.0,7.0,3.0,0.0,2.0,0.0,8.0,2.0,5.0,9.0,3.0,0.0,8.0,20.0,3.0,9.0,9.0,9.0,0.0,1.0,1.0,10.0,0.0,0.0,0.0,4.0,7.0,9.0,3.0,10.0,3.0,13.0,5.0,1.0,13.0,6.0
-0.0,0.0,6.0,2.0,5.0,0.0,1.0,0.0,5.0,0.0,7.0,1.0,5.0,8.0,2.0,2.0,2.0,0.0,2.0,0.0,0.0,8.0,2.0,6.0,2.0,5.0,7.0,3.0,1.0,2.0,0.0,2.0,2.0,0.0,1.0,2.0,2.0,1.0,0.0,1.0,1.0,1.0,2.0,1.0,5.0,1.0,2.0,4.0,6.0,16.0
-2.0,12.0,1.0,2.0,8.0,0.0,1.0,1.0,1.0,0.0,3.0,10.0,12.0,2.0,0.0,2.0,14.0,7.0,3.0,0.0,1.0,0.0,1.0,3.0,1.0,2.0,1.0,1.0,0.0,1.0,4.0,3.0,3.0,1.0,1.0,15.0,1.0,5.0,0.0,1.0,6.0,15.0,2.0,6.0,0.0,1.0,2.0,0.0,5.0,2.0
-3.0,1.0,0.0,3.0,5.0,37.0,9.0,6.0,1.0,4.0,1.0,8.0,0.0,1.0,5.0,5.0,1.0,2.0,1.0,7.0,0.0,0.0,2.0,0.0,2.0,5.0,1.0,1.0,9.0,0.0,2.0,0.0,6.0,2.0,2.0,2.0,9.0,7.0,46.0,6.0,4.0,2.0,2.0,1.0,1.0,0.0,1.0,2.0,0.0,0.0
-12.0,1.0,1.0,10.0,8.0,131.0,7.0,3.0,101.0,77.0,2.0,11.0,0.0,0.0,2.0,2.0,2.0,0.0,5.0,28.0,0.0,4.0,0.0,0.0,6.0,6.0,0.0,0.0,12.0,1.0,1.0,0.0,1.0,0.0,5.0,0.0,15.0,7.0,142.0,11.0,3.0,0.0,0.0,0.0,2.0,1.0,7.0,11.0,0.0,1.0
-1.0,1.0,0.0,1.0,0.0,2.0,0.0,1.0,1.0,2.0,0.0,1.0,7.0,0.0,3.0,7.0,1.0,2.0,8.0,15.0,1.0,1.0,1.0,0.0,2.0,1.0,0.0,2.0,1.0,6.0,5.0,0.0,0.0,3.0,0.0,0.0,5.0,6.0,75.0,0.0,4.0,0.0,1.0,3.0,2.0,13.0,15.0,12.0,0.0,2.0
-2.0,0.0,0.0,1.0,47.0,23.0,2.0,3.0,11.0,3.0,4.0,6.0,1.0,2.0,7.0,0.0,2.0,3.0,1.0,1.0,9.0,180.0,2.0,13.0,4.0,3.0,3.0,1.0,0.0,0.0,0.0,3.0,11.0,1.0,22.0,1.0,0.0,14.0,4.0,6.0,0.0,0.0,6.0,0.0,14.0,0.0,0.0,29.0,3.0,1.0
-1.0,7.0,6.0,6.0,1.0,12.0,6.0,36.0,4.0,10.0,2.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,8.0,3.0,1.0,19.0,0.0,4.0,1.0,1.0,1.0,1.0,0.0,0.0,0.0,4.0,3.0,4.0,0.0,19.0,1.0,51.0,1.0,7.0,5.0,10.0,0.0,0.0,42.0,1.0,1.0,0.0,8.0
-4.0,0.0,4.0,0.0,1.0,2.0,4.0,5.0,2.0,0.0,4.0,2.0,6.0,39.0,13.0,15.0,5.0,6.0,0.0,0.0,0.0,2.0,0.0,4.0,1.0,2.0,14.0,4.0,1.0,0.0,2.0,6.0,2.0,1.0,8.0,16.0,1.0,1.0,0.0,0.0,2.0,10.0,1.0,2.0,2.0,0.0,0.0,0.0,3.0,3.0
-9.0,4.0,0.0,6.0,0.0,11.0,6.0,1.0,6.0,41.0,8.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,2.0,31.0,2.0,2.0,11.0,0.0,57.0,9.0,0.0,1.0,26.0,3.0,3.0,0.0,4.0,4.0,6.0,1.0,17.0,7.0,101.0,0.0,0.0,0.0,4.0,1.0,1.0,0.0,3.0,2.0,0.0,0.0
-4.0,0.0,0.0,4.0,1.0,5.0,4.0,8.0,6.0,15.0,3.0,2.0,1.0,0.0,3.0,0.0,0.0,2.0,2.0,13.0,0.0,6.0,2.0,2.0,6.0,2.0,2.0,0.0,2.0,3.0,1.0,1.0,2.0,4.0,1.0,1.0,10.0,5.0,13.0,1.0,0.0,0.0,3.0,1.0,2.0,1.0,2.0,6.0,0.0,0.0
-1.0,1.0,8.0,1.0,15.0,0.0,2.0,1.0,0.0,1.0,6.0,9.0,4.0,11.0,3.0,5.0,2.0,7.0,6.0,0.0,5.0,16.0,1.0,16.0,1.0,8.0,23.0,2.0,0.0,5.0,4.0,10.0,3.0,1.0,2.0,2.0,0.0,3.0,0.0,2.0,0.0,0.0,2.0,2.0,2.0,0.0,1.0,1.0,7.0,2.0
-1.0,7.0,6.0,3.0,1.0,1.0,3.0,4.0,2.0,5.0,1.0,2.0,8.0,6.0,2.0,2.0,11.0,1.0,2.0,0.0,7.0,0.0,3.0,4.0,0.0,0.0,1.0,1.0,2.0,0.0,0.0,3.0,0.0,5.0,1.0,8.0,0.0,2.0,1.0,0.0,4.0,3.0,1.0,3.0,1.0,29.0,4.0,6.0,17.0,14.0
-2.0,0.0,0.0,1.0,2.0,0.0,0.0,4.0,0.0,2.0,1.0,3.0,8.0,4.0,1.0,1.0,0.0,7.0,4.0,0.0,6.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,0.0,2.0,10.0,1.0,1.0,4.0,0.0,2.0,1.0,1.0,2.0,2.0,2.0,4.0,0.0,1.0,0.0,1.0,1.0,0.0,4.0,1.0
-10.0,10.0,4.0,12.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,2.0,1.0,0.0,0.0,1.0,7.0,2.0,1.0,9.0,0.0,3.0,1.0,0.0,0.0,4.0,6.0,3.0,0.0,0.0,6.0,2.0,3.0,7.0,0.0,83.0,1.0,2.0,7.0,1.0,1.0,2.0,27.0,24.0,8.0,8.0,1.0
-0.0,0.0,1.0,3.0,2.0,3.0,0.0,8.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,0.0,1.0,1.0,3.0,2.0,1.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,4.0,0.0,1.0,1.0,1.0,1.0,1.0,0.0,2.0,2.0,11.0,2.0,4.0,2.0,4.0,0.0,0.0,3.0,5.0,1.0,3.0,4.0
-0.0,8.0,4.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,7.0,0.0,5.0,2.0,1.0,0.0,4.0,43.0,1.0,36.0,3.0,2.0,4.0,0.0,1.0,0.0,1.0,13.0,3.0,1.0,1.0,16.0,1.0,9.0,0.0,9.0,5.0,1.0,0.0,1.0,4.0,0.0,0.0,3.0,3.0,2.0
-3.0,5.0,2.0,2.0,4.0,0.0,2.0,2.0,0.0,5.0,1.0,0.0,2.0,1.0,2.0,1.0,9.0,1.0,2.0,0.0,17.0,1.0,7.0,4.0,0.0,2.0,11.0,9.0,4.0,6.0,1.0,0.0,3.0,2.0,3.0,3.0,0.0,2.0,1.0,1.0,1.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,7.0,2.0
-1.0,0.0,1.0,0.0,5.0,3.0,0.0,3.0,10.0,12.0,2.0,4.0,1.0,5.0,5.0,0.0,1.0,1.0,1.0,1.0,0.0,0.0,4.0,1.0,2.0,0.0,0.0,0.0,2.0,0.0,2.0,1.0,2.0,0.0,4.0,1.0,5.0,2.0,3.0,6.0,6.0,2.0,2.0,1.0,1.0,0.0,18.0,7.0,5.0,0.0
-0.0,0.0,8.0,1.0,11.0,8.0,5.0,1.0,5.0,3.0,5.0,8.0,12.0,19.0,10.0,5.0,28.0,8.0,2.0,0.0,17.0,13.0,1.0,40.0,3.0,5.0,64.0,19.0,3.0,5.0,0.0,9.0,3.0,2.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,3.0,8.0,1.0,0.0,0.0,1.0,0.0,0.0
-1.0,0.0,4.0,1.0,12.0,2.0,1.0,1.0,1.0,0.0,0.0,3.0,2.0,8.0,5.0,3.0,2.0,2.0,0.0,0.0,12.0,8.0,4.0,2.0,2.0,6.0,3.0,6.0,1.0,2.0,1.0,2.0,0.0,1.0,1.0,10.0,0.0,1.0,0.0,4.0,1.0,1.0,2.0,18.0,18.0,2.0,3.0,2.0,4.0,0.0
diff --git a/example_data/test_data/cov_test.csv b/example_data/test_data/cov_test.csv
deleted file mode 100644
index 73d4b377..00000000
--- a/example_data/test_data/cov_test.csv
+++ /dev/null
@@ -1,201 +0,0 @@
-0,1
-1.3559074767281298,1.019806676855191
-1.3802310236626807,0.8674155104231632
--0.23992386036185748,0.5733452916133998
-0.9610286534039378,1.2680011865469352
--0.5576012688513196,-0.9571713244098666
--0.7871555986020403,-0.3474943484265752
--0.1558800184921043,0.5520017415626246
-0.4725567884734372,-0.9137785399099807
--0.25372993625481427,0.0981861116574053
-0.8235541733171171,1.8452600738590523
--1.9829122493256273,0.11415588712643322
--1.764428979838306,2.2032609153998206
--0.038464981362582605,1.102897119341256
-0.25162247136808813,0.7197998406790596
-1.4376846926507483,1.2306448569790036
--0.4183783321047721,-0.4496688308231611
--1.1559455618966072,0.470164842424626
-1.9583125508204617,-1.230118677757657
-0.9834900231193416,0.8409088315994191
--1.3687084713220103,0.2726177881953798
--1.3071587169160095,-0.48102425739751575
--0.22204551408961729,1.9550306799041577
-0.8134640452510316,0.7998026459782699
--1.9898587903258036,0.4235745856631968
-0.1462840408814835,0.21120439379630646
--1.700314527848119,-0.1235599105832989
-0.5714940194138023,0.14969129426881278
-0.07495318895160527,0.6396968026979777
-0.9809080415203726,0.3955122164393052
-0.33504116990632554,0.33126017233731125
--0.46927992096516724,-0.09449852404432448
--1.7115178838912186,1.089327277435425
-0.6067701184213922,-0.04823597386222898
-0.20711803771100792,-0.18026325007488594
--0.11064859388988928,1.7467810869417801
-0.10029653489668586,0.5609744724365051
--1.1332618550384395,0.9392388083959978
--1.1840682190613643,0.5002200785055604
--0.006340545469343141,1.0753383003208363
-0.43119899364384934,1.94087175681729
-0.6948637816693791,0.17822333043265257
-1.1114481013486335,0.24689129162311432
-0.12355449383996114,-0.9639502887784991
--1.4567236564972328,0.20670707005118427
-1.5586523372802332,-0.935354735135854
--0.07419177590684885,0.21244416667946112
-1.0222763506287407,0.09284688422809341
--0.03009428868991184,-0.5049958887691217
-0.40958520314124025,-0.22669114559722797
--0.8929647040310021,-0.9331535937329979
--0.9611928971816461,-0.32134956943879406
-1.0071936557054308,-0.18441809988976565
--0.08360794238638539,0.3806019382622602
--0.9709685274032557,0.611075404411603
--0.4278978706620747,-0.6737358980623379
-0.4563972098204619,1.7373943431309773
--1.1856259984572428,-1.3244127376206183
--2.397211425630472,-0.35663217623527893
-1.3782267329079005,-1.0054733094832586
-0.4655358790049862,-0.4172524006017726
-1.944601396946833,-0.1138862209548849
--0.9060693337256659,0.7936752896912102
--2.041243996979223,-1.7332970009546633
--0.36492221458177493,0.16594938469605397
-1.5585465288337639,-0.8121580500394722
--1.1403483791579576,-1.0737340546939529
-2.0538561930318373,-1.545942714311468
-0.12155993325075135,1.1157278792670613
--1.1631499825578087,0.5087291993334376
-1.4228547650001941,-0.8001296979919063
-0.8864677247285909,-0.5899581109180855
-0.34246378987781606,0.29546654617742285
-0.7400018740565691,-0.13281858847165942
-0.5954675082891059,-0.4202073766805439
--0.4669913562936848,1.1755556719373181
--0.9828141012463142,1.357609888740107
--0.27396458548562796,-0.853776900555637
--2.1951636233547642,-2.6768957646955127
--0.776003759942644,2.886902006903755
-1.6145472355831556,1.4675756782834797
-0.28486024808526794,-1.6165088873199172
-0.810714064379589,0.8114527807622148
-0.008159088578352116,-0.5938310183568001
-0.9949094162852448,0.28764654843171894
-0.222703740145335,0.021597136647540364
-0.8426015115780771,-1.9418958483586957
-0.5719612011859311,1.2470007520553585
--0.6391795142923693,-0.9100891609821542
--2.311536319898315,1.4364696019107153
--0.5044215286142457,-0.16892569681500239
--1.1076581246576902,0.07830320464888746
--0.10005271898491243,0.8183747135006018
-0.08426926359941513,0.9947229205065793
--0.0780720807907942,0.8273087439605386
--0.04979632568141242,0.09984804867144363
-0.911259768678697,-2.0644473371916834
--1.0459234603056595,1.2664619287043475
-0.8097478389754903,0.6550058091232476
-0.16289181468059216,1.2927320564485707
-1.615091662459722,-0.10250524026346854
-0.550529783998591,-1.3832374382040127
--0.5660440144829453,1.5016245305346851
-2.4963710387422102,-1.843407942799925
-1.3075817035045236,-0.8092978685785945
--0.03288486987259261,0.0589277310889297
--0.6171238082078688,0.42173199540383005
--0.6550829762587007,1.0926938327602183
--0.5183747547854393,-0.9238077387674661
-0.12588382620784605,-1.1625269758930767
--0.6436345822193232,0.3305956696048609
--0.6205488093157978,-0.46054213013438117
-0.839896714468134,0.6347624777362241
--0.634381599165787,-0.9143267046880282
-0.5174385353608655,1.0435329494388192
-0.2079156592622495,0.29077017033902713
-1.2970897062447158,0.37481415550117425
--0.8146882588234688,-0.34390886460003
--1.392218738514852,0.22388352608719025
-0.4834735912624373,0.127508886511524
--0.9357872322782815,0.3930746472555183
--2.765844440025104,-0.4590291007575658
-1.5957135396188722,0.028660843199786203
-0.4186608213893951,-1.7794343062716216
-0.5096249436700471,-0.00703043761110977
--1.0645386985755658,0.6193776902055402
-1.0375385738622769,-0.7054784269929069
--0.4146690693576732,0.3984401430945382
-1.5098294975489601,-0.9376627435160996
-0.07059725135971474,0.05659574544305933
--0.9251727176833632,0.20418191128521443
--0.29780366985653184,0.12516320947240883
--1.0608676096292917,-0.5345962245786269
-0.8562203757764174,0.8899954375760998
--1.0734502077895447,0.6301094240192168
--0.4928871344008367,-0.3475040816066924
-1.2657371294573454,-3.1042973422446036
--0.23077085334577133,0.292245780159741
-0.8968135157980862,0.07000138094946919
--0.9783088246992886,-0.7897837622727808
--0.0740037763280058,0.15808823926753252
-1.2320974393967783,-2.3213680151031695
-0.09193905483404273,-0.5754901523791099
-1.253554611895107,0.07274912701793312
-0.8196222368202167,0.8961248218319151
--0.5809971108078275,-1.319930480360482
-0.9597851163952509,-1.3616748786420185
-0.28701244415995336,-0.9929151513369444
-0.6063846855576788,0.8953853166608842
--0.792213878885655,0.8641477528211378
-0.23175159761628186,1.7692519684708168
--0.10638995830976307,0.7558846142931387
-0.15353828977648526,-0.043945507497743945
--0.5596337956888708,1.3701271818385365
--1.5347100368635707,0.556747514646746
--0.4436364718912172,-0.255387532823429
--0.8730765378228538,-0.8888938658394483
-0.6467313218730694,-0.4261823010397399
-0.47778687677223536,0.35200894980413927
--2.1427280673200166,1.516992605410389
-0.2425328165815453,1.268759223367159
-0.18506078984447213,1.5163723011199042
--0.48669998338493453,-0.713752482706541
--0.15220423973994918,-0.09359795177275802
--3.056610876580184,1.2789615846910334
--0.5298735237126242,1.736437574058803
--0.6976816444818579,-0.34294616807838674
-0.7778526999246665,-1.4872580464376541
-0.8544461549273433,0.24965122181166022
-0.09823962843699204,-0.19433647312324354
--0.35775414447947235,1.1838723033675782
-1.4338904659454865,0.2666251698954637
-0.108842119970723,-0.3933628778993958
--1.6345838785131745,-0.3594717227248294
--0.03673555951966839,-0.6128281713076887
--0.03369036493261692,-0.25712943194314397
-0.6649493802778762,0.06780051213628095
--0.315982175610265,-0.36543488983389716
--0.41153030326127077,-2.4844687510902657
-0.8750993676558876,-0.1966472737338241
--0.5756397163695711,0.9355295776552199
--0.9149553496974743,-0.7800038735603262
--0.8877916278036952,-0.14616650926009422
-1.0337451952658026,-0.37407611632235105
-1.4307815489499416,-1.8926106269403373
-0.9499788473280603,0.7511949398661918
-0.023581821865852746,-2.912862145974486
-1.1436817611915469,0.8317595369507161
--1.292668677371475,-0.6395975249929675
-1.9202555667757581,-1.0370076411334104
-0.8329339782395739,-0.27372320177374765
--0.9845529455983056,-0.910189063475254
--1.0151424189464442,0.9925821934083514
--0.22684327073232421,0.7184459113435643
-1.0212160042693121,1.2114842671394452
-0.34501192201724357,0.3189101016295363
--1.0646077165729873,-1.2810904439833268
--0.7897784182330162,-0.2563841141027323
-0.7375842831686851,0.07697429827503281
--1.415124087024629,-1.2901449492168895
--0.9041247021304609,-0.7034351429958562
diff --git a/example_data/test_data/true_parameters/true_Sigma_test.csv b/example_data/test_data/true_parameters/true_Sigma_test.csv
deleted file mode 100644
index b75812e2..00000000
--- a/example_data/test_data/true_parameters/true_Sigma_test.csv
+++ /dev/null
@@ -1,51 +0,0 @@
-0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
-1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.08849480263438086,0.0619463618440666,0.04336245329084662,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.08849480263438086,0.0619463618440666,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.08849480263438086,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.1264211466205441,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.1806016380293487,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.2580023400419268,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.3685747714884668,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.08849480263438086,0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.5265353878406669,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0619463618440666,0.08849480263438086,0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.7521934112009528,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.04336245329084662,0.0619463618440666,0.08849480263438086,0.1264211466205441,0.1806016380293487,0.2580023400419268,0.3685747714884668,0.5265353878406669,0.7521934112009528,1.0745620160013611,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.02789507633970285,0.019526553437791992,0.013668587406454394,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.02789507633970285,0.019526553437791992,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.02789507633970285,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.03985010905671836,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.05692872722388337,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.08132675317697625,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.11618107596710893,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02789507633970285,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.1659729656672985,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.019526553437791992,0.02789507633970285,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.2371042366675693,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013668587406454394,0.019526553437791992,0.02789507633970285,0.03985010905671836,0.05692872722388337,0.08132675317697625,0.11618107596710893,0.1659729656672985,0.2371042366675693,0.3387203380965276,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.030777170814636694,0.02154401957024568,0.015080813699171977,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.030777170814636694,0.02154401957024568,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.030777170814636694,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.04396738687805243,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.06281055268293202,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.08972936097561719,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.12818480139373886,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.030777170814636694,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.18312114484819839,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02154401957024568,0.030777170814636694,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.26160163549742627,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.015080813699171977,0.02154401957024568,0.030777170814636694,0.04396738687805243,0.06281055268293202,0.08972936097561719,0.12818480139373886,0.18312114484819839,0.26160163549742627,0.3737166221391804,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.02900028682090826,0.020300200774635783,0.014210140542245049,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.02900028682090826,0.020300200774635783,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.02900028682090826,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.041428981172726094,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.05918425881818013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.08454894116882877,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.1207842016697554,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02900028682090826,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.172548859528222,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.020300200774635783,0.02900028682090826,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.2464983707546029,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014210140542245049,0.020300200774635783,0.02900028682090826,0.041428981172726094,0.05918425881818013,0.08454894116882877,0.1207842016697554,0.172548859528222,0.2464983707546029,0.3521405296494327,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682,0.07621342872304476,0.053349400106131324,0.03734458007429193
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682,0.07621342872304476,0.053349400106131324
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682,0.07621342872304476
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687,0.10887632674720682
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129,0.15553760963886687
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447,0.22219658519838129
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067,0.3174236931405447
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07621342872304476,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669,0.4534624187722067
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.053349400106131324,0.07621342872304476,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812,0.6478034553888669
-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03734458007429193,0.053349400106131324,0.07621342872304476,0.10887632674720682,0.15553760963886687,0.22219658519838129,0.3174236931405447,0.4534624187722067,0.6478034553888669,0.9254335076983812
diff --git a/example_data/test_data/true_parameters/true_beta_test.csv b/example_data/test_data/true_parameters/true_beta_test.csv
deleted file mode 100644
index 71739e47..00000000
--- a/example_data/test_data/true_parameters/true_beta_test.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49
-0.6448826815335704,-0.06705148383028246,-0.8059337466502478,0.28726227120809483,-0.45199792848086223,0.7971409275621775,0.03883637439791463,0.0769611700394623,0.35853158191918805,0.6456060985152733,-0.09335034607969787,0.03477162819826891,-0.9488935395444718,-1.3245424031206736,-0.8204276124842371,-0.830581023945339,-1.4864895373433586,-0.7313644655723576,-0.28952541257671166,1.3384060358788183,-0.576796495250778,-0.4615201591849763,0.39147843645088526,-1.2587151615421555,0.8124491288189661,-0.0540064348091781,-0.8600522876730134,-0.5979455262163724,0.6416747561503787,0.013881443629036323,-0.05259187922816363,-1.2369662645067068,-0.003996305797670754,0.061946341550610934,0.10802168996398591,-1.257283955370657,1.2135693886424601,-0.18909103428666854,2.4107843007949517,-0.08137344612650999,0.08612885483187023,-0.31593407498797194,0.5698500847568891,-0.6801624988388716,-0.10046352379404143,0.4737900979029001,0.6732964996086594,0.27919043728578163,-1.0043693971400856,-0.16660361125969386
--0.1825361663498224,0.6561939377574013,-0.08713411783498594,0.37454658245767186,-0.8184755538842826,-0.811027847003693,0.14656398925870345,0.04634181999477537,-0.6945838730937708,-0.652368414546377,-0.5221643907075153,-0.7442440386062351,0.44537092310581317,-0.3313532930496876,-0.32150797273271986,0.26471361464855475,-0.12039304605334028,0.00885922337520712,-0.13544930358628202,0.022114138228844782,-0.7168062568036008,-1.3011860490924494,0.32559372712736606,-0.37074161440200565,-0.45881981367381414,-0.8178683088030576,-0.3518502660928557,0.2703246278743951,-0.19015000160710324,0.3856590426505826,0.24727271848728993,-0.2273218003212685,-0.5394712689482709,0.6681922368751265,-0.7066869994200711,0.12939891327495456,0.31531280270453,-0.6596119036906076,-0.08138855553916928,-0.5194537340157103,0.5575768569103515,0.6685327721070952,0.11280316160105659,0.5035441552702621,-0.8434094543016583,1.4619847301845788,0.36087975766917896,-0.48538159749890714,0.38075430757133794,0.36949237120558087
-- 
GitLab


From 23e8314d810fce75436ca983d724b282b52e6f25 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 22:23:35 +0200
Subject: [PATCH 12/15] docstring with chatgpt for all models

---
 pyPLNmodels/models.py | 898 +++++++++++++++++++++++++++++++++++++-----
 1 file changed, 805 insertions(+), 93 deletions(-)

diff --git a/pyPLNmodels/models.py b/pyPLNmodels/models.py
index e73b5fd4..9997d705 100644
--- a/pyPLNmodels/models.py
+++ b/pyPLNmodels/models.py
@@ -3,7 +3,7 @@ from abc import ABC, abstractmethod
 import warnings
 import os
 from collections.abc import Iterable
-from typing import Optional
+from typing import Optional, Dict, List, Type, Any
 
 import pandas as pd
 import torch
@@ -1256,21 +1256,62 @@ class PlnPCAcollection:
 
     def __init__(
         self,
-        counts,
-        covariates=None,
-        offsets=None,
-        offsets_formula="logsum",
-        ranks=range(3, 5),
-        dict_of_dict_initialization=None,
-        take_log_offsets=False,
+        counts: torch.Tensor,
+        covariates: Optional[torch.Tensor] = None,
+        offsets: Optional[torch.Tensor] = None,
+        offsets_formula: str = "logsum",
+        ranks: Iterable[int] = range(3, 5),
+        dict_of_dict_initialization: Optional[dict] = None,
+        take_log_offsets: bool = False,
     ):
+        """
+        Constructor for PlnPCAcollection.
+
+        Parameters
+        ----------
+        counts : torch.Tensor
+            The counts.
+        covariates : torch.Tensor, optional
+            The covariates, by default None.
+        offsets : torch.Tensor, optional
+            The offsets, by default None.
+        offsets_formula : str, optional
+            The formula for offsets, by default "logsum".
+        ranks : Iterable[int], optional
+            The range of ranks, by default range(3, 5).
+        dict_of_dict_initialization : dict, optional
+            The dictionary of initialization, by default None.
+        take_log_offsets : bool, optional
+            Whether to take the logarithm of offsets, by default False.
+        """
         self._dict_models = {}
         self._init_data(counts, covariates, offsets, offsets_formula, take_log_offsets)
         self._init_models(ranks, dict_of_dict_initialization)
 
     def _init_data(
-        self, counts, covariates, offsets, offsets_formula, take_log_offsets
+        self,
+        counts: torch.Tensor,
+        covariates: Optional[torch.Tensor],
+        offsets: Optional[torch.Tensor],
+        offsets_formula: str,
+        take_log_offsets: bool,
     ):
+        """
+        Method for initializing the data.
+
+        Parameters
+        ----------
+        counts : torch.Tensor
+            The counts.
+        covariates : torch.Tensor, optional
+            The covariates, by default None.
+        offsets : torch.Tensor, optional
+            The offsets, by default None.
+        offsets_formula : str
+            The formula for offsets.
+        take_log_offsets : bool
+            Whether to take the logarithm of offsets.
+        """
         self._counts, self._covariates, self._offsets = _format_model_param(
             counts, covariates, offsets, offsets_formula, take_log_offsets
         )
@@ -1282,11 +1323,34 @@ class PlnPCAcollection:
         cls,
         formula: str,
         data: dict,
-        offsets_formula="logsum",
-        ranks=range(3, 5),
-        dict_of_dict_initialization=None,
-        take_log_offsets=False,
-    ):
+        offsets_formula: str = "logsum",
+        ranks: Iterable[int] = range(3, 5),
+        dict_of_dict_initialization: Optional[dict] = None,
+        take_log_offsets: bool = False,
+    ) -> "PlnPCAcollection":
+        """
+        Create an instance of PlnPCAcollection from a formula.
+
+        Parameters
+        ----------
+        formula : str
+            The formula.
+        data : dict
+            The data dictionary.
+        offsets_formula : str, optional
+            The formula for offsets, by default "logsum".
+        ranks : Iterable[int], optional
+            The range of ranks, by default range(3, 5).
+        dict_of_dict_initialization : dict, optional
+            The dictionary of initialization, by default None.
+        take_log_offsets : bool, optional
+            Whether to take the logarithm of offsets, by default False.
+
+        Returns
+        -------
+        PlnPCAcollection
+            The created PlnPCAcollection instance.
+        """
         counts, covariates, offsets = _extract_data_from_formula(formula, data)
         return cls(
             counts,
@@ -1299,58 +1363,158 @@ class PlnPCAcollection:
         )
 
     @property
-    def covariates(self):
+    def covariates(self) -> torch.Tensor:
+        """
+        Property representing the covariates.
+
+        Returns
+        -------
+        torch.Tensor
+            The covariates.
+        """
         return self[self.ranks[0]].covariates
 
     @property
-    def counts(self):
+    def counts(self) -> torch.Tensor:
+        """
+        Property representing the counts.
+
+        Returns
+        -------
+        torch.Tensor
+            The counts.
+        """
         return self[self.ranks[0]].counts
 
     @property
-    def coef(self):
+    def coef(self) -> Dict[int, torch.Tensor]:
+        """
+        Property representing the coefficients.
+
+        Returns
+        -------
+        Dict[int, torch.Tensor]
+            The coefficients.
+        """
         return {model.rank: model.coef for model in self.values()}
 
     @property
-    def components(self):
+    def components(self) -> Dict[int, torch.Tensor]:
+        """
+        Property representing the components.
+
+        Returns
+        -------
+        Dict[int, torch.Tensor]
+            The components.
+        """
         return {model.rank: model.components for model in self.values()}
 
     @property
-    def latent_mean(self):
+    def latent_mean(self) -> Dict[int, torch.Tensor]:
+        """
+        Property representing the latent means.
+
+        Returns
+        -------
+        Dict[int, torch.Tensor]
+            The latent means.
+        """
         return {model.rank: model.latent_mean for model in self.values()}
 
     @property
-    def latent_var(self):
+    def latent_var(self) -> Dict[int, torch.Tensor]:
+        """
+        Property representing the latent variances.
+
+        Returns
+        -------
+        Dict[int, torch.Tensor]
+            The latent variances.
+        """
         return {model.rank: model.latent_var for model in self.values()}
 
     @counts.setter
     @array2tensor
-    def counts(self, counts):
+    def counts(self, counts: torch.Tensor):
+        """
+        Setter for the counts property.
+
+        Parameters
+        ----------
+        counts : torch.Tensor
+            The counts.
+        """
         for model in self.values():
             model.counts = counts
 
     @coef.setter
     @array2tensor
-    def coef(self, coef):
+    def coef(self, coef: torch.Tensor):
+        """
+        Setter for the coef property.
+
+        Parameters
+        ----------
+        coef : torch.Tensor
+            The coefficients.
+        """
         for model in self.values():
             model.coef = coef
 
     @covariates.setter
     @array2tensor
-    def covariates(self, covariates):
+    def covariates(self, covariates: torch.Tensor):
+        """
+        Setter for the covariates property.
+
+        Parameters
+        ----------
+        covariates : torch.Tensor
+            The covariates.
+        """
         for model in self.values():
             model.covariates = covariates
 
     @property
-    def offsets(self):
+    def offsets(self) -> torch.Tensor:
+        """
+        Property representing the offsets.
+
+        Returns
+        -------
+        torch.Tensor
+            The offsets.
+        """
         return self[self.ranks[0]].offsets
 
     @offsets.setter
     @array2tensor
-    def offsets(self, offsets):
+    def offsets(self, offsets: torch.Tensor):
+        """
+        Setter for the offsets property.
+
+        Parameters
+        ----------
+        offsets : torch.Tensor
+            The offsets.
+        """
         for model in self.values():
             model.offsets = offsets
 
-    def _init_models(self, ranks, dict_of_dict_initialization):
+    def _init_models(
+        self, ranks: Iterable[int], dict_of_dict_initialization: Optional[dict]
+    ):
+        """
+        Method for initializing the models.
+
+        Parameters
+        ----------
+        ranks : Iterable[int]
+            The range of ranks.
+        dict_of_dict_initialization : dict, optional
+            The dictionary of initialization.
+        """
         if isinstance(ranks, (Iterable, np.ndarray)):
             for rank in ranks:
                 if isinstance(rank, (int, np.integer)):
@@ -1387,31 +1551,79 @@ class PlnPCAcollection:
             )
 
     @property
-    def ranks(self):
+    def ranks(self) -> List[int]:
+        """
+        Property representing the ranks.
+
+        Returns
+        -------
+        List[int]
+            The ranks.
+        """
         return [model.rank for model in self.values()]
 
-    def _pring_beginning_message(self):
+    def _pring_beginning_message(self) -> str:
+        """
+        Method for printing the beginning message.
+
+        Returns
+        -------
+        str
+            The beginning message.
+        """
         return f"Adjusting {len(self.ranks)} Pln models for PCA analysis \n"
 
     @property
-    def dim(self):
+    def dim(self) -> int:
+        """
+        Property representing the dimension.
+
+        Returns
+        -------
+        int
+            The dimension.
+        """
         return self[self.ranks[0]].dim
 
     @property
-    def nb_cov(self):
+    def nb_cov(self) -> int:
+        """
+        Property representing the number of covariates.
+
+        Returns
+        -------
+        int
+            The number of covariates.
+        """
         return self[self.ranks[0]].nb_cov
 
-    ## should do something for this weird init. pb: if doing the init of self._counts etc
-    ## only in PlnPCAcollection, then we don't do it for each PlnPCA but then Pln is not doing it.
     def fit(
         self,
-        nb_max_iteration=100000,
-        lr=0.01,
-        class_optimizer=torch.optim.Rprop,
-        tol=1e-3,
-        do_smart_init=True,
-        verbose=False,
+        nb_max_iteration: int = 100000,
+        lr: float = 0.01,
+        class_optimizer: Type[torch.optim.Optimizer] = torch.optim.Rprop,
+        tol: float = 1e-3,
+        do_smart_init: bool = True,
+        verbose: bool = False,
     ):
+        """
+        Fit the PlnPCAcollection.
+
+        Parameters
+        ----------
+        nb_max_iteration : int, optional
+            The maximum number of iterations, by default 100000.
+        lr : float, optional
+            The learning rate, by default 0.01.
+        class_optimizer : Type[torch.optim.Optimizer], optional
+            The optimizer class, by default torch.optim.Rprop.
+        tol : float, optional
+            The tolerance, by default 1e-3.
+        do_smart_init : bool, optional
+            Whether to do smart initialization, by default True.
+        verbose : bool, optional
+            Whether to print verbose output, by default False.
+        """
         self._pring_beginning_message()
         for i in range(len(self.values())):
             model = self[self.ranks[i]]
@@ -1428,13 +1640,28 @@ class PlnPCAcollection:
                 self.init_next_model_with_previous_parameters(next_model, model)
         self._print_ending_message()
 
-    def init_next_model_with_previous_parameters(self, next_model, current_model):
+    def init_next_model_with_previous_parameters(
+        self, next_model: Any, current_model: Any
+    ):
+        """
+        Initialize the next model with the parameters of the current model.
+
+        Parameters
+        ----------
+        next_model : Any
+            The next model to initialize.
+        current_model : Any
+            The current model.
+        """
         next_model.coef = current_model.coef
         next_model.components = torch.zeros(self.dim, next_model.rank)
         with torch.no_grad():
             next_model._components[:, : current_model.rank] = current_model._components
 
     def _print_ending_message(self):
+        """
+        Method for printing the ending message.
+        """
         delimiter = "=" * NB_CHARACTERS_FOR_NICE_PLOT
         print(f"{delimiter}\n")
         print("DONE!")
@@ -1442,49 +1669,170 @@ class PlnPCAcollection:
         print(f"    Best model(lower AIC): {self._criterion_dict('AIC')}\n ")
         print(f"{delimiter}\n")
 
-    def _criterion_dict(self, criterion="AIC"):
+    def _criterion_dict(self, criterion: str = "AIC") -> int:
+        """
+        Return the rank of the best model according to the specified criterion.
+
+        Parameters
+        ----------
+        criterion : str, optional
+            The criterion to use ('AIC' or 'BIC'), by default 'AIC'.
+
+        Returns
+        -------
+        int
+            The rank of the best model.
+        """
         return self.best_model(criterion).rank
 
-    def __getitem__(self, rank):
+    def __getitem__(self, rank: int) -> Any:
+        """
+        Get the model with the specified rank.
+
+        Parameters
+        ----------
+        rank : int
+            The rank of the model.
+
+        Returns
+        -------
+        Any
+            The model with the specified rank.
+        """
         return self._dict_models[rank]
 
-    def __len__(self):
+    def __len__(self) -> int:
+        """
+        Get the number of models in the collection.
+
+        Returns
+        -------
+        int
+            The number of models in the collection.
+        """
         return len(self._dict_models)
 
     def __iter__(self):
+        """
+        Iterate over the models in the collection.
+
+        Returns
+        -------
+        Iterator
+            Iterator over the models.
+        """
         return iter(self._dict_models)
 
-    def __contains__(self, rank):
+    def __contains__(self, rank: int) -> bool:
+        """
+        Check if a model with the specified rank exists in the collection.
+
+        Parameters
+        ----------
+        rank : int
+            The rank to check.
+
+        Returns
+        -------
+        bool
+            True if a model with the specified rank exists, False otherwise.
+        """
         return rank in self._dict_models.keys()
 
     def keys(self):
+        """
+        Get the ranks of the models in the collection.
+
+        Returns
+        -------
+        KeysView
+            The ranks of the models.
+        """
         return self._dict_models.keys()
 
-    def get(self, key, default):
+    def get(self, key: Any, default: Any) -> Any:
+        """
+        Get the model with the specified key, or return a default value if the key does not exist.
+
+        Parameters
+        ----------
+        key : Any
+            The key to search for.
+        default : Any
+            The default value to return if the key does not exist.
+
+        Returns
+        -------
+        Any
+            The model with the specified key, or the default value if the key does not exist.
+        """
         if key in self:
             return self[key]
         else:
             return default
 
     def values(self):
+        """
+        Get the models in the collection.
+
+        Returns
+        -------
+        ValuesView
+            The models in the collection.
+        """
         return self._dict_models.values()
 
     def items(self):
+        """
+        Get the key-value pairs of the models in the collection.
+
+        Returns
+        -------
+        ItemsView
+            The key-value pairs of the models.
+        """
         return self._dict_models.items()
 
     @property
-    def BIC(self):
+    def BIC(self) -> Dict[int, int]:
+        """
+        Property representing the BIC scores of the models in the collection.
+
+        Returns
+        -------
+        Dict[int, int]
+            The BIC scores of the models.
+        """
         return {model.rank: int(model.BIC) for model in self.values()}
 
     @property
-    def AIC(self):
+    def AIC(self) -> Dict[int, int]:
+        """
+        Property representing the AIC scores of the models in the collection.
+
+        Returns
+        -------
+        Dict[int, int]
+            The AIC scores of the models.
+        """
         return {model.rank: int(model.AIC) for model in self.values()}
 
     @property
-    def loglikes(self):
+    def loglikes(self) -> Dict[int, Any]:
+        """
+        Property representing the log-likelihoods of the models in the collection.
+
+        Returns
+        -------
+        Dict[int, Any]
+            The log-likelihoods of the models.
+        """
         return {model.rank: model.loglike for model in self.values()}
 
     def show(self):
+        """
+        Show a plot with BIC scores, AIC scores, and negative log-likelihoods of the models.
+        """
         bic = self.BIC
         aic = self.AIC
         loglikes = self.loglikes
@@ -1509,21 +1857,60 @@ class PlnPCAcollection:
         plt.show()
 
     @property
-    def best_BIC_model_rank(self):
+    def best_BIC_model_rank(self) -> int:
+        """
+        Property representing the rank of the best model according to the BIC criterion.
+
+        Returns
+        -------
+        int
+            The rank of the best model.
+        """
         return self.ranks[np.argmin(list(self.BIC.values()))]
 
     @property
-    def best_AIC_model_rank(self):
+    def best_AIC_model_rank(self) -> int:
+        """
+        Property representing the rank of the best model according to the AIC criterion.
+
+        Returns
+        -------
+        int
+            The rank of the best model.
+        """
         return self.ranks[np.argmin(list(self.AIC.values()))]
 
-    def best_model(self, criterion="AIC"):
+    def best_model(self, criterion: str = "AIC") -> Any:
+        """
+        Get the best model according to the specified criterion.
+
+        Parameters
+        ----------
+        criterion : str, optional
+            The criterion to use ('AIC' or 'BIC'), by default 'AIC'.
+
+        Returns
+        -------
+        Any
+            The best model.
+        """
         if criterion == "BIC":
             return self[self.best_BIC_model_rank]
         if criterion == "AIC":
             return self[self.best_AIC_model_rank]
         raise ValueError(f"Unknown criterion {criterion}")
 
-    def save(self, path_of_directory="./", ranks=None):
+    def save(self, path_of_directory: str = "./", ranks: Optional[List[int]] = None):
+        """
+        Save the models in the specified directory.
+
+        Parameters
+        ----------
+        path_of_directory : str, optional
+            The path of the directory to save the models, by default "./".
+        ranks : Optional[List[int]], optional
+            The ranks of the models to save, by default None.
+        """
         if ranks is None:
             ranks = self.ranks
         for model in self.values():
@@ -1531,18 +1918,38 @@ class PlnPCAcollection:
                 model.save(path_of_directory)
 
     @property
-    def directory_name(self):
+    def directory_name(self) -> str:
+        """
+        Property representing the directory name.
+
+        Returns
+        -------
+        str
+            The directory name.
+        """
         return f"{self._NAME}_nbcov_{self.nb_cov}_dim_{self.dim}"
 
     @property
-    def n_samples(self):
+    def n_samples(self) -> int:
+        """
+        Property representing the number of samples.
+
+        Returns
+        -------
+        int
+            The number of samples.
+        """
         return self[self.ranks[0]].n_samples
 
-    @property
-    def _p(self):
-        return self[self.ranks[0]].p
+    def __repr__(self) -> str:
+        """
+        Return a string representation of the PlnPCAcollection object.
 
-    def __repr__(self):
+        Returns
+        -------
+        str
+            The string representation of the PlnPCAcollection object.
+        """
         nb_models = len(self)
         delimiter = "\n" + "-" * NB_CHARACTERS_FOR_NICE_PLOT + "\n"
         to_print = delimiter
@@ -1552,13 +1959,12 @@ class PlnPCAcollection:
         to_print += f" - Ranks considered:{self.ranks}\n"
         dict_bic = {"rank": "criterion"} | self.BIC
         to_print += f" - BIC metric:\n{_nice_string_of_dict(dict_bic)}\n"
-
         dict_to_print = self.best_model(criterion="BIC")._rank
         to_print += f"   Best model(lower BIC): {dict_to_print}\n \n"
         dict_aic = {"rank": "criterion"} | self.AIC
         to_print += f" - AIC metric:\n{_nice_string_of_dict(dict_aic)}\n"
         to_print += f"   Best model(lower AIC): \
-                {self.best_model(criterion = 'AIC')._rank}\n"
+                {self.best_model(criterion='AIC')._rank}\n"
         to_print += delimiter
         to_print += "* Useful properties\n"
         to_print += f"    {self._useful_properties_string}\n"
@@ -1568,28 +1974,62 @@ class PlnPCAcollection:
         return to_print
 
     @property
-    def _useful_methods_strings(self):
+    def _useful_methods_strings(self) -> str:
+        """
+        Property representing the useful methods.
+
+        Returns
+        -------
+        str
+            The string representation of the useful methods.
+        """
         return ".show(), .best_model()"
 
     @property
-    def _useful_properties_string(self):
+    def _useful_properties_string(self) -> str:
+        """
+        Property representing the useful properties.
+
+        Returns
+        -------
+        str
+            The string representation of the useful properties.
+        """
         return ".BIC, .AIC, .loglikes"
 
 
 # Here, setting the value for each key in _dict_parameters
 class PlnPCA(_Pln):
-    _NAME = "PlnPCA"
+    _NAME: str = "PlnPCA"
     _components: torch.Tensor
 
     def __init__(
         self,
-        counts,
-        covariates=None,
-        offsets=None,
-        offsets_formula="logsum",
-        rank=5,
-        dict_initialization=None,
+        counts: torch.Tensor,
+        covariates: Optional[torch.Tensor] = None,
+        offsets: Optional[torch.Tensor] = None,
+        offsets_formula: str = "logsum",
+        rank: int = 5,
+        dict_initialization: Optional[Dict[str, torch.Tensor]] = None,
     ):
+        """
+        Initialize the PlnPCA object.
+
+        Parameters
+        ----------
+        counts : torch.Tensor
+            The counts tensor.
+        covariates : torch.Tensor, optional
+            The covariates tensor, by default None.
+        offsets : torch.Tensor, optional
+            The offsets tensor, by default None.
+        offsets_formula : str, optional
+            The offsets formula, by default "logsum".
+        rank : int, optional
+            The rank of the approximation, by default 5.
+        dict_initialization : Dict[str, torch.Tensor], optional
+            The dictionary for initialization, by default None.
+        """
         self._rank = rank
         self._counts, self._covariates, self._offsets = _format_model_param(
             counts, covariates, offsets, None, take_log_offsets=False
@@ -1603,14 +2043,43 @@ class PlnPCA(_Pln):
 
     @classmethod
     def from_formula(
-        cls, formula, data, rank=5, offsets_formula="logsum", dict_initialization=None
+        cls,
+        formula: str,
+        data: Any,
+        rank: int = 5,
+        offsets_formula: str = "logsum",
+        dict_initialization: Optional[Dict[str, torch.Tensor]] = None,
     ):
+        """
+        Create a PlnPCA object from a formula.
+
+        Parameters
+        ----------
+        formula : str
+            The formula.
+        data : Any
+            The data.
+        rank : int, optional
+            The rank of the approximation, by default 5.
+        offsets_formula : str, optional
+            The offsets formula, by default "logsum".
+        dict_initialization : Dict[str, torch.Tensor], optional
+            The dictionary for initialization, by default None.
+
+        Returns
+        -------
+        PlnPCA
+            The created PlnPCA object.
+        """
         counts, covariates, offsets = _extract_data_from_formula(formula, data)
         return cls(
             counts, covariates, offsets, offsets_formula, rank, dict_initialization
         )
 
     def _check_if_rank_is_too_high(self):
+        """
+        Check if the rank is too high and issue a warning if necessary.
+        """
         if self.dim < self.rank:
             warning_string = (
                 f"\nThe requested rank of approximation {self.rank} "
@@ -1621,16 +2090,40 @@ class PlnPCA(_Pln):
             self._rank = self.dim
 
     @property
-    def latent_mean(self):
+    def latent_mean(self) -> torch.Tensor:
+        """
+        Property representing the latent mean.
+
+        Returns
+        -------
+        torch.Tensor
+            The latent mean tensor.
+        """
         return self._cpu_attribute_or_none("_latent_mean")
 
     @property
-    def latent_var(self):
+    def latent_var(self) -> torch.Tensor:
+        """
+        Property representing the latent variance.
+
+        Returns
+        -------
+        torch.Tensor
+            The latent variance tensor.
+        """
         return self._cpu_attribute_or_none("_latent_var")
 
     @latent_mean.setter
     @array2tensor
-    def latent_mean(self, latent_mean):
+    def latent_mean(self, latent_mean: torch.Tensor):
+        """
+        Setter for the latent mean.
+
+        Parameters
+        ----------
+        latent_mean : torch.Tensor
+            The latent mean tensor.
+        """
         if latent_mean.shape != (self.n_samples, self.rank):
             raise ValueError(
                 f"Wrong shape. Expected {self.n_samples, self.rank}, got {latent_mean.shape}"
@@ -1639,7 +2132,15 @@ class PlnPCA(_Pln):
 
     @latent_var.setter
     @array2tensor
-    def latent_var(self, latent_var):
+    def latent_var(self, latent_var: torch.Tensor):
+        """
+        Setter for the latent variance.
+
+        Parameters
+        ----------
+        latent_var : torch.Tensor
+            The latent variance tensor.
+        """
         if latent_var.shape != (self.n_samples, self.rank):
             raise ValueError(
                 f"Wrong shape. Expected {self.n_samples, self.rank}, got {latent_var.shape}"
@@ -1647,42 +2148,103 @@ class PlnPCA(_Pln):
         self._latent_var = latent_var
 
     @property
-    def directory_name(self):
+    def directory_name(self) -> str:
+        """
+        Property representing the directory name.
+
+        Returns
+        -------
+        str
+            The directory name.
+        """
         return f"{self._NAME}_rank_{self._rank}"
-        # return f"PlnPCAcollection_nbcov_{self.nb_cov}_dim_{self.dim}/{self._NAME}_rank_{self._rank}"
 
     @property
-    def covariates(self):
+    def covariates(self) -> torch.Tensor:
+        """
+        Property representing the covariates.
+
+        Returns
+        -------
+        torch.Tensor
+            The covariates tensor.
+        """
         return self._cpu_attribute_or_none("_covariates")
 
     @covariates.setter
     @array2tensor
-    def covariates(self, covariates):
+    def covariates(self, covariates: torch.Tensor):
+        """
+        Setter for the covariates.
+
+        Parameters
+        ----------
+        covariates : torch.Tensor
+            The covariates tensor.
+        """
         _check_data_shape(self.counts, covariates, self.offsets)
         self._covariates = covariates
         print("Setting coef to initialization")
         self._smart_init_coef()
 
     @property
-    def path_to_directory(self):
+    def path_to_directory(self) -> str:
+        """
+        Property representing the path to the directory.
+
+        Returns
+        -------
+        str
+            The path to the directory.
+        """
         return f"PlnPCAcollection_nbcov_{self.nb_cov}_dim_{self.dim}/"
 
     @property
-    def rank(self):
+    def rank(self) -> int:
+        """
+        Property representing the rank.
+
+        Returns
+        -------
+        int
+            The rank.
+        """
         return self._rank
 
-    def _get_max_components(self):
+    def _get_max_components(self) -> int:
+        """
+        Get the maximum number of components.
+
+        Returns
+        -------
+        int
+            The maximum number of components.
+        """
         return self._rank
 
     def _pring_beginning_message(self):
+        """
+        Print the beginning message.
+        """
         print("-" * NB_CHARACTERS_FOR_NICE_PLOT)
         print(f"Fitting a PlnPCAcollection model with {self._rank} components")
 
     @property
-    def model_parameters(self):
+    def model_parameters(self) -> Dict[str, torch.Tensor]:
+        """
+        Property representing the model parameters.
+
+        Returns
+        -------
+        Dict[str, torch.Tensor]
+            The model parameters.
+        """
         return {"coef": self.coef, "components": self.components}
 
     def _smart_init_model_parameters(self):
+        """
+        Initialize the model parameters smartly.
+        """
         if not hasattr(self, "_coef"):
             super()._smart_init_coef()
         if not hasattr(self, "_components"):
@@ -1691,14 +2253,23 @@ class PlnPCA(_Pln):
             )
 
     def _random_init_model_parameters(self):
+        """
+        Randomly initialize the model parameters.
+        """
         super()._random_init_coef()
         self._components = torch.randn((self.dim, self._rank)).to(DEVICE)
 
     def _random_init_latent_parameters(self):
+        """
+        Randomly initialize the latent parameters.
+        """
         self._latent_var = 1 / 2 * torch.ones((self.n_samples, self._rank)).to(DEVICE)
         self._latent_mean = torch.ones((self.n_samples, self._rank)).to(DEVICE)
 
     def _smart_init_latent_parameters(self):
+        """
+        Initialize the latent parameters smartly.
+        """
         if not hasattr(self, "_latent_mean"):
             self._latent_mean = (
                 _init_latent_mean(
@@ -1718,11 +2289,27 @@ class PlnPCA(_Pln):
 
     @property
     def _list_of_parameters_needing_gradient(self):
+        """
+        Property representing the list of parameters needing gradient.
+
+        Returns
+        -------
+        List[torch.Tensor]
+            The list of parameters needing gradient.
+        """
         if self._coef is None:
             return [self._components, self._latent_mean, self._latent_var]
         return [self._components, self._coef, self._latent_mean, self._latent_var]
 
-    def compute_elbo(self):
+    def compute_elbo(self) -> torch.Tensor:
+        """
+        Compute the evidence lower bound (ELBO).
+
+        Returns
+        -------
+        torch.Tensor
+            The ELBO value.
+        """
         return elbo_plnpca(
             self._counts,
             self._covariates,
@@ -1734,20 +2321,52 @@ class PlnPCA(_Pln):
         )
 
     @property
-    def number_of_parameters(self):
+    def number_of_parameters(self) -> int:
+        """
+        Property representing the number of parameters.
+
+        Returns
+        -------
+        int
+            The number of parameters.
+        """
         return self.dim * (self.nb_cov + self._rank) - self._rank * (self._rank - 1) / 2
 
     @property
-    def _additional_properties_string(self):
+    def _additional_properties_string(self) -> str:
+        """
+        Property representing the additional properties string.
+
+        Returns
+        -------
+        str
+            The additional properties string.
+        """
         return ".projected_latent_variables"
 
     @property
-    def _additional_methods_string(self):
+    def _additional_methods_string(self) -> str:
+        """
+        Property representing the additional methods string.
+
+        Returns
+        -------
+        str
+            The additional methods string.
+        """
         string = "    only for rank=2: .viz()"
         return string
 
     @property
-    def covariance(self):
+    def covariance(self) -> Optional[torch.Tensor]:
+        """
+        Property representing the covariance.
+
+        Returns
+        -------
+        Optional[torch.Tensor]
+            The covariance tensor or None if components are not present.
+        """
         if hasattr(self, "_components"):
             cov_latent = self._latent_mean.T @ self._latent_mean
             cov_latent += torch.diag(torch.sum(torch.square(self._latent_var), dim=0))
@@ -1756,19 +2375,58 @@ class PlnPCA(_Pln):
         return None
 
     @property
-    def _description(self):
+    def _description(self) -> str:
+        """
+        Property representing the description.
+
+        Returns
+        -------
+        str
+            The description string.
+        """
         return f" {self.rank} principal component."
 
     @property
-    def latent_variables(self):
+    def latent_variables(self) -> torch.Tensor:
+        """
+        Property representing the latent variables.
+
+        Returns
+        -------
+        torch.Tensor
+            The latent variables.
+        """
         return torch.matmul(self._latent_mean, self._components.T)
 
     @property
-    def projected_latent_variables(self):
+    def projected_latent_variables(self) -> torch.Tensor:
+        """
+        Property representing the projected latent variables.
+
+        Returns
+        -------
+        torch.Tensor
+            The projected latent variables.
+        """
         ortho_components = torch.linalg.qr(self._components, "reduced")[0]
         return torch.mm(self.latent_variables, ortho_components).detach().cpu()
 
-    def pca_projected_latent_variables(self, n_components=None):
+    def pca_projected_latent_variables(
+        self, n_components: Optional[int] = None
+    ) -> np.ndarray:
+        """
+        Perform PCA on projected latent variables.
+
+        Parameters
+        ----------
+        n_components : Optional[int]
+            Number of components to keep. Defaults to None.
+
+        Returns
+        -------
+        np.ndarray
+            The transformed projected latent variables.
+        """
         if n_components is None:
             n_components = self._get_max_components()
         if n_components > self.dim:
@@ -1779,12 +2437,33 @@ class PlnPCA(_Pln):
         return pca.fit_transform(self.projected_latent_variables.detach().cpu())
 
     @property
-    def components(self):
+    def components(self) -> torch.Tensor:
+        """
+        Property representing the components.
+
+        Returns
+        -------
+        torch.Tensor
+            The components.
+        """
         return self._cpu_attribute_or_none("_components")
 
     @components.setter
     @array2tensor
-    def components(self, components):
+    def components(self, components: torch.Tensor):
+        """
+        Setter for the components.
+
+        Parameters
+        ----------
+        components : torch.Tensor
+            The components to set.
+
+        Raises
+        ------
+        ValueError
+            If the components have an invalid shape.
+        """
         if components.shape != (self.dim, self.rank):
             raise ValueError(
                 f"Wrong shape. Expected {self.dim, self.rank}, got {components.shape}"
@@ -1792,6 +2471,26 @@ class PlnPCA(_Pln):
         self._components = components
 
     def viz(self, ax=None, colors=None):
+        """
+        Visualize the PlnPCA model.
+
+        Parameters
+        ----------
+        ax : Optional[Any], optional
+            The matplotlib axis to use. If None, the current axis is used, by default None.
+        colors : Optional[Any], optional
+            The colors to use for plotting, by default None.
+
+        Raises
+        ------
+        RuntimeError
+            If the rank is less than 2.
+
+        Returns
+        -------
+        Any
+            The matplotlib axis.
+        """
         if ax is None:
             ax = plt.gca()
         if self._rank < 2:
@@ -1808,7 +2507,20 @@ class PlnPCA(_Pln):
             _plot_ellipse(x[i], y[i], cov=covariances[i], ax=ax)
         return ax
 
-    def transform(self, project=True):
+    def transform(self, project: bool = True) -> torch.Tensor:
+        """
+        Transform the model.
+
+        Parameters
+        ----------
+        project : bool, optional
+            Whether to project the latent variables, by default True.
+
+        Returns
+        -------
+        torch.Tensor
+            The transformed model.
+        """
         if project is True:
             return self.projected_latent_variables
         return self.latent_variables
-- 
GitLab


From 6488d8fa10cdbd96cbb9562f925b10d07deeea07 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 22:24:12 +0200
Subject: [PATCH 13/15] link to all the classes documentation

---
 docs/source/index.rst  |  1 +
 docs/source/module.rst | 14 +++++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/docs/source/index.rst b/docs/source/index.rst
index 71513b20..8bfed1a8 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -12,6 +12,7 @@ Welcome to pyPLNmodels's documentation!
 
    ./module.rst
 
+
 Indices and tables working once again
 =====================================
 
diff --git a/docs/source/module.rst b/docs/source/module.rst
index 7c22fce6..de0c03d0 100644
--- a/docs/source/module.rst
+++ b/docs/source/module.rst
@@ -1,15 +1,23 @@
 API documentation
 =================
 
-.. autoclass:: pyPLNmodels.PLN
+.. autoclass:: pyPLNmodels.PlnPCAcollection
+   :members:
+   :show-inheritance:
+   :special-members: __init__
+   :undoc-members:
+
+
+.. autoclass:: pyPLNmodels.PlnPCA
    :members:
    :inherited-members:
    :special-members: __init__
    :undoc-members:
    :show-inheritance:
 
-.. autoclass:: pyPLNmodels.PLNPCA
+.. autoclass:: pyPLNmodels.Pln
    :members:
-   :show-inheritance:
+   :inherited-members:
    :special-members: __init__
    :undoc-members:
+   :show-inheritance:
-- 
GitLab


From 035fe8ff51a57e35696cb184cf5e19feebd08e04 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 22:51:15 +0200
Subject: [PATCH 14/15] update readme with from_formula

---
 README.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index e98669f6..991dbec1 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ pip install pyPLNmodels
 The package comes with an ecological data set to present the functionality
 ```
 import pyPLNmodels
-from pyPLNmodels.models import PLNPCA, PLN
+from pyPLNmodels.models import PlnPCAcollection, Pln
 from pyPLNmodels.oaks import load_oaks
 oaks = load_oaks()
 ```
@@ -36,16 +36,16 @@ oaks = load_oaks()
 ### Unpenalized Poisson lognormal model (aka PLN)
 
 ```
-pln = PLN("counts ~ 1  + tree + dist2ground + orientation ", data = oaks, take_log_offsets = True)
+pln = Pln.from_formula("counts ~ 1  + tree + dist2ground + orientation ", data = oaks, take_log_offsets = True)
 pln.fit()
 print(pln)
 ```
 
 
-### Rank Constrained Poisson lognormal for Poisson Principal Component Analysis (aka PLNPCA)
+### Rank Constrained Poisson lognormal for Poisson Principal Component Analysis (aka PlnPCACollection)
 
 ```
-pca =  PLNPCA("counts ~ 1  + tree + dist2ground + orientation ", data = oaks, take_log_offsets = True, ranks = [3,4,5])
+pca =  PlnPCACollection.from_formula("counts ~ 1  + tree + dist2ground + orientation ", data = oaks, take_log_offsets = True, ranks = [3,4,5])
 pca.fit()
 print(pca)
 ```
-- 
GitLab


From 2f08fa59d1d856e3dbc1f2b8d82832243b9bfc63 Mon Sep 17 00:00:00 2001
From: bastien-mva <bastien.batardiere@gmail.com>
Date: Mon, 22 May 2023 23:09:50 +0200
Subject: [PATCH 15/15] error in the README

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 991dbec1..212b1ce9 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ print(pln)
 ### Rank Constrained Poisson lognormal for Poisson Principal Component Analysis (aka PlnPCACollection)
 
 ```
-pca =  PlnPCACollection.from_formula("counts ~ 1  + tree + dist2ground + orientation ", data = oaks, take_log_offsets = True, ranks = [3,4,5])
+pca =  PlnPCAcollection.from_formula("counts ~ 1  + tree + dist2ground + orientation ", data = oaks, take_log_offsets = True, ranks = [3,4,5])
 pca.fit()
 print(pca)
 ```
-- 
GitLab