From 7323fc43cab42f4648c7ab93e78548b827f086f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dennis=20Gl=C3=A4ser?= <dennis.glaeser@iws.uni-stuttgart.de>
Date: Fri, 13 Jul 2018 15:24:00 +0200
Subject: [PATCH] [exercise-fractures] add solution

---
 exercises/solution/CMakeLists.txt             |    1 +
 .../exercise-fractures/CMakeLists.txt         |   33 +
 .../solution/exercise-fractures/README.md     |   42 +
 .../exercise-fractures/exercise_fractures.cc  |  293 ++
 .../exercise_fractures.input                  |   41 +
 .../exercise_fractures_a.input                |   41 +
 .../exercise_fractures_b.input                |   41 +
 .../exercise_fractures_c.input                |   41 +
 .../exercise-fractures/fractureproblem.hh     |  206 +
 .../fracturespatialparams.hh                  |  201 +
 .../exercise-fractures/grids/complex.geo      |   83 +
 .../exercise-fractures/grids/complex.msh      | 4286 +++++++++++++++++
 .../exercise-fractures/matrixproblem.hh       |  277 ++
 .../exercise-fractures/matrixspatialparams.hh |  120 +
 14 files changed, 5706 insertions(+)
 create mode 100644 exercises/solution/exercise-fractures/CMakeLists.txt
 create mode 100644 exercises/solution/exercise-fractures/README.md
 create mode 100644 exercises/solution/exercise-fractures/exercise_fractures.cc
 create mode 100644 exercises/solution/exercise-fractures/exercise_fractures.input
 create mode 100644 exercises/solution/exercise-fractures/exercise_fractures_a.input
 create mode 100644 exercises/solution/exercise-fractures/exercise_fractures_b.input
 create mode 100644 exercises/solution/exercise-fractures/exercise_fractures_c.input
 create mode 100644 exercises/solution/exercise-fractures/fractureproblem.hh
 create mode 100644 exercises/solution/exercise-fractures/fracturespatialparams.hh
 create mode 100644 exercises/solution/exercise-fractures/grids/complex.geo
 create mode 100644 exercises/solution/exercise-fractures/grids/complex.msh
 create mode 100644 exercises/solution/exercise-fractures/matrixproblem.hh
 create mode 100644 exercises/solution/exercise-fractures/matrixspatialparams.hh

diff --git a/exercises/solution/CMakeLists.txt b/exercises/solution/CMakeLists.txt
index b55b7ace..724d9269 100644
--- a/exercises/solution/CMakeLists.txt
+++ b/exercises/solution/CMakeLists.txt
@@ -1,6 +1,7 @@
 add_subdirectory(exercise-basic)
 add_subdirectory(exercise-coupling-ff-pm)
 add_subdirectory(exercise-fluidsystem)
+add_subdirectory(exercise-fractures)
 add_subdirectory(exercise-grids)
 add_subdirectory(exercise-mainfile)
 add_subdirectory(exercise-properties)
diff --git a/exercises/solution/exercise-fractures/CMakeLists.txt b/exercises/solution/exercise-fractures/CMakeLists.txt
new file mode 100644
index 00000000..c5d1943d
--- /dev/null
+++ b/exercises/solution/exercise-fractures/CMakeLists.txt
@@ -0,0 +1,33 @@
+dune_symlink_to_source_files(FILES "grids" "exercise_fractures.input" "exercise_fractures_a.input" "exercise_fractures_b.input" "exercise_fractures_c.input")
+
+# executable for the exercise
+add_executable(exercise_fractures_solution EXCLUDE_FROM_ALL exercise_fractures.cc)
+
+dune_add_test(NAME exercise_fractures_solution_a
+	          CMAKE_GUARD "( dune-foamgrid_FOUND AND dune-alugrid_FOUND )"
+              TARGET exercise_fractures_solution
+              COMMAND ./exercise_fractures_solution
+		      CMD_ARGS exercise_fractures_a.input)
+
+dune_add_test(NAME exercise_fractures_solution_b
+	          CMAKE_GUARD "( dune-foamgrid_FOUND AND dune-alugrid_FOUND )"
+              TARGET exercise_fractures_solution
+              COMMAND ./exercise_fractures_solution
+		      CMD_ARGS exercise_fractures_b.input)
+
+dune_add_test(NAME exercise_fractures_solution_c
+	          CMAKE_GUARD "( dune-foamgrid_FOUND AND dune-alugrid_FOUND )"
+              TARGET exercise_fractures_solution
+              COMMAND ./exercise_fractures_solution
+		      CMD_ARGS exercise_fractures_c.input)
+
+set(CMAKE_BUILD_TYPE Release)
+
+#install sources
+install(FILES
+exercise_fractures.cc
+matrixproblem.hh
+fractureproblem.hh
+matrixspatialparams.hh
+fracturespatialparams.hh
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/exercises/exercise-fractures)
diff --git a/exercises/solution/exercise-fractures/README.md b/exercises/solution/exercise-fractures/README.md
new file mode 100644
index 00000000..59ca8d77
--- /dev/null
+++ b/exercises/solution/exercise-fractures/README.md
@@ -0,0 +1,42 @@
+# Exercise #5 (DuMuX course)
+
+In this exercise we are going to use the multidomain framework and in particular the facet coupling module, which allows defining coupled problems in which a (d-1)-dimensional domain lives on the element facets of a d-dimensional domain. Here we are going to make use of this in the context of fractured porous media, where the fractures are represented as lower-dimensional entities embedded in a porous matrix. In this framework it is required that the grid resolves the fractures by aligning the matrix element facets with the fracture geometries, for which we are using the open-source mesh generator _Gmsh_ ([see _Gmsh_ documentation](http://gmsh.info/doc/texinfo/gmsh.html)). Note that the Gmsh file format (_.msh_) is currently the only supported file format within the facet coupling module.
+
+## Problem set-up
+
+We consider a domain of 100 x 100 m with a set of ten fractures. Apart from one fracture extending up to the top boundary, all other fractures are immersed, meaning that the fracture tips lie within the domain. Both the grid and the domain are shown in the image below.
+
+![](../extradoc/exercise5_setup.png)
+
+In the initial setup of this exercise, we want to consider buoancy-driven upwards migration of nitrogen (gas) in an initially fully water-saturated medium. We use hydrostatic pressure conditions and a zero nitrogen saturation as initial conditions, and prescribe no-flow boundary conditions on the left and right sides. We furthermore set the initial conditions as Dirichlet values for the upper and lower boundary except for the middle part of the lower boundary ($`y = 0 \wedge x > 25 \wedge x < 75`$), where we set a non-zero nitrogen saturation. Through this segment of the lower boundary, nitrogen can intrude the domain and flow upwards driven by buoancy.
+
+## Preparing the exercise
+
+Navigate to the directory `dumux/tutorial/exercise-fractures` and familiarize yourself with the files necessary for this exercise:
+
+* The __main file__: `exercise_fractures.cc`
+* The __input file__: `exercise_fractures.input`
+* The __problem file__ for the matrix domain: `matrixproblem.hh`
+* The __problem file__ for the fracture domain: `fractureproblem.hh`
+* The __spatial parameters file__ for the matrix domain: `matrixspatialparams.hh`
+* The __spatial parameters file__ for the matrix domain: `fracturespatialparams.hh`
+
+You might want to take a closer look at the __main file__. The extensive comments above the key instructions will help you to understand the program flow of coupled problems and to identify the main differences with respect to an uncoupled _DuMuX_ model.
+
+## Running the program
+
+Head to the build directory, compile the exercise and execute the program by typing
+
+```bash
+cd build-cmake/exercises/exercise-fractures
+make exercise_fractures
+./exercise_fractures exercise_fractures.input
+```
+
+Take a look at the results by opening the files `matrix.pvd` and `fractures.pvd` with _Paraview_. In order to increase the visibility of the fracture solution, you might want to apply the tube filter to it (e.g. with a tube radius of 0.2). You will see how the fractures act as preferential flowpaths in the upwards movement of nitrogen due to their higher permeabilities. Additionally, you will observe high nitrogen saturations in the fracture tips as a result of the fractures acting as capillary traps due to the lower capillary pressures inside them. Consider turning them into capillary barriers, e.g. by setting __SpatialParams.VGAlpha = 1e-5__ in the fracture group in the input file (`exercise_fractures.input`). The nitrogen saturations in the fractures should now be lower than in the surrounding matrix. Do not forget to reset __SpatialParams.VGAlpha = 1e-1__ in the fracture group in the input file.
+
+## Task A: Change the boundary conditions and disable gravity
+
+In order for the influence of the fractures to be more visible in the resulting pressure fields, turn of gravity in the input file and change the boundary conditions in the two sub-problems (i.e. modify the function `boundaryTypesAtPos(...)` in `matrixproblem.hh` and `fractureproblem.hh`). We want to define the boundary conditions such that Neumann no-flow boundaries are used everywhere in the fracture domain and everywhere in the matrix domain except for the lower left and the upper right part of the lateral sides (i.e. $`x = 0 \wedge y < 25`$ and $`x = 100 \wedge y > 75`$).
+
+Additionally, modify the function `dirichletAtPos(...)` in `matrixproblem.hh` such that an overpressure is added and a non-zero saturation is applied on the right Dirichlet segment ($`x = 100 \wedge y > 75`$). For this you can use the private variables `boundaryOverPressure_` and `boundarySaturation_` which are stored in the matrix problem and are read from the input file.
diff --git a/exercises/solution/exercise-fractures/exercise_fractures.cc b/exercises/solution/exercise-fractures/exercise_fractures.cc
new file mode 100644
index 00000000..3021d77e
--- /dev/null
+++ b/exercises/solution/exercise-fractures/exercise_fractures.cc
@@ -0,0 +1,293 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \brief Test for the exercise on two-phase flow in fractured porous media.
+ */
+#include <config.h>
+#include <iostream>
+
+#include <dune/common/parallel/mpihelper.hh>
+
+// include the headers of the two sub-problems
+// i.e. the problems for fractures and matrix
+#include "matrixproblem.hh"
+#include "fractureproblem.hh"
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/common/timeloop.hh>
+
+#include <dumux/assembly/diffmethod.hh>
+
+#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/multidomain/newtonsolver.hh>
+#include <dumux/multidomain/fvassembler.hh>
+#include <dumux/multidomain/traits.hh>
+
+#include <dumux/multidomain/facet/gridmanager.hh>
+#include <dumux/multidomain/facet/couplingmapper.hh>
+#include <dumux/multidomain/facet/couplingmanager.hh>
+
+#include <dumux/io/vtkoutputmodule.hh>
+
+// Define some types for this test  so that we can set them as properties below and
+// reuse them again in the main function with only one single definition of them here
+using MatrixTypeTag = TTAG(MatrixProblemTypeTag);
+using FractureTypeTag = TTAG(FractureProblemTypeTag);
+using MatrixFVGridGeometry = typename GET_PROP_TYPE(MatrixTypeTag, FVGridGeometry);
+using FractureFVGridGeometry = typename GET_PROP_TYPE(FractureTypeTag, FVGridGeometry);
+using TheMultiDomainTraits = Dumux::MultiDomainTraits<MatrixTypeTag, FractureTypeTag>;
+using TheCouplingMapper = Dumux::FacetCouplingMapper<MatrixFVGridGeometry, FractureFVGridGeometry>;
+using TheCouplingManager = Dumux::FacetCouplingManager<TheMultiDomainTraits, TheCouplingMapper>;
+
+// set the coupling manager property in the sub-problems
+namespace Dumux {
+namespace Properties {
+SET_TYPE_PROP(MatrixProblemTypeTag, CouplingManager, TheCouplingManager);
+SET_TYPE_PROP(FractureProblemTypeTag, CouplingManager, TheCouplingManager);
+} // end namespace Properties
+} // end namespace Dumux
+
+// main program
+int main(int argc, char** argv) try
+{
+    using namespace Dumux;
+
+    // initialize MPI, finalize is done automatically on exit
+    const auto& mpiHelper = Dune::MPIHelper::instance(argc, argv);
+
+    // print dumux start message
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/true);
+
+    // initialize parameter tree
+    Parameters::init(argc, argv);
+
+    // We use the grid manager from the facet coupling framework (see alias above main)
+    // This requires the grids used to be passed as template arguments, where
+    // they are assumed to be ordered in descending grid dimension. Thus,
+    // we pass the matrix grid as first and the fracture grid as second argument.
+    using MatrixGrid = typename GET_PROP_TYPE(MatrixTypeTag, Grid);
+    using FractureGrid = typename GET_PROP_TYPE(FractureTypeTag, Grid);
+    using GridManager = Dumux::FacetCouplingGridManager<MatrixGrid, FractureGrid>;
+    GridManager gridManager;
+
+    // try to create a grid (from the grid file in the input file)
+    // Init() creates the grid from the grid file specified in the input file.
+    // This works with a single grid file in which in addition to the matrix
+    // (d-dimensional) elements also the (d-1)-dimensional elements are specified
+    // which are interpreted as the fracture elements. See the .geo file in the
+    // grids folder on how to create such grids using gmsh. Note that currently
+    // only the Gmsh mesh format (.msh) is supported!
+    gridManager.init();
+    gridManager.loadBalance();
+
+    // we compute on the leaf grid views (get them from grid manager)
+    // the grid ids correspond to the order of the grids passed to the manager (see above)
+    static constexpr std::size_t matrixGridId = 0;
+    static constexpr std::size_t fractureGridId = 1;
+    const auto& matrixGridView = gridManager.template grid<matrixGridId>().leafGridView();
+    const auto& fractureGridView = gridManager.template grid<fractureGridId>().leafGridView();
+
+    // create the finite volume grid geometries
+    auto matrixFvGridGeometry = std::make_shared<MatrixFVGridGeometry>(matrixGridView);
+    auto fractureFvGridGeometry = std::make_shared<FractureFVGridGeometry>(fractureGridView);
+    matrixFvGridGeometry->update();
+    fractureFvGridGeometry->update();
+
+    // the problems (boundary/initial conditions etc)
+    using MatrixProblem = typename GET_PROP_TYPE(MatrixTypeTag, Problem);
+    using FractureProblem = typename GET_PROP_TYPE(FractureTypeTag, Problem);
+
+    // pass the model parameter group to the spatial params so that they obtain the right
+    // values from the input file since we use groups for matrix and fracture
+    // We also want to use domain markers in this exercise. For this reason, we also pass
+    // the grid data object from the grid manager to them, so that they have access to the
+    // domain markers that were specified in the grid file.
+    auto matrixGridData = gridManager.getGridData()->template getSubDomainGridData<matrixGridId>();
+    auto matrixSpatialParams = std::make_shared<typename MatrixProblem::SpatialParams>(matrixFvGridGeometry, matrixGridData, "Matrix");
+    auto matrixProblem = std::make_shared<MatrixProblem>(matrixFvGridGeometry, matrixSpatialParams, "Matrix");
+
+    // extract domain height from the matrix problem and pass to fracture problem (needed for right initial pressure distribution)
+    auto fractureGridData = gridManager.getGridData()->template getSubDomainGridData<fractureGridId>();
+    auto fractureSpatialParams = std::make_shared<typename FractureProblem::SpatialParams>(fractureFvGridGeometry, fractureGridData, "Fracture");
+    auto fractureProblem = std::make_shared<FractureProblem>(fractureFvGridGeometry, fractureSpatialParams, "Fracture");
+
+    // the solution vector
+    using SolutionVector = typename TheMultiDomainTraits::SolutionVector;
+    SolutionVector x, xOld;
+
+    // The domain ids within the multi-domain framework.
+    // They do not necessarily have to be the same as the grid ids
+    // in case you have more subdomains involved. We domain ids
+    // correspond to the order of the type tags passed to the multidomain
+    // traits (see definition of the traits class at the beginning of this file)
+    static const auto matrixDomainId = typename TheMultiDomainTraits::template DomainIdx<0>();
+    static const auto fractureDomainId = typename TheMultiDomainTraits::template DomainIdx<1>();
+
+    // resize the solution vector and write initial solution to it
+    x[matrixDomainId].resize(matrixFvGridGeometry->numDofs());
+    x[fractureDomainId].resize(fractureFvGridGeometry->numDofs());
+    matrixProblem->applyInitialSolution(x[matrixDomainId]);
+    fractureProblem->applyInitialSolution(x[fractureDomainId]);
+
+    // instantiate the class holding the coupling maps between the domains
+    // this needs the information on embeddings (connectivity between matrix
+    // and fracture domain). This information is extracted directly from the
+    // grid during file read and can therefore be obtained from the grid manager.
+    const auto embeddings = gridManager.getEmbeddings();
+    auto couplingMapper = std::make_shared<TheCouplingMapper>();
+    couplingMapper->update(*matrixFvGridGeometry, *fractureFvGridGeometry, embeddings);
+
+    // the coupling manager (needs the coupling mapper)
+    auto couplingManager = std::make_shared<TheCouplingManager>();
+    couplingManager->init(matrixProblem, fractureProblem, couplingMapper, x);
+
+    // we have to set coupling manager pointer in sub-problems
+    // they also have to be made accessible in them (see e.g. matrixproblem.hh)
+    matrixProblem->setCouplingManager(couplingManager);
+    fractureProblem->setCouplingManager(couplingManager);
+
+    // the grid variables
+    using MatrixGridVariables = typename GET_PROP_TYPE(MatrixTypeTag, GridVariables);
+    using FractureGridVariables = typename GET_PROP_TYPE(FractureTypeTag, GridVariables);
+    auto matrixGridVariables = std::make_shared<MatrixGridVariables>(matrixProblem, matrixFvGridGeometry);
+    auto fractureGridVariables = std::make_shared<FractureGridVariables>(fractureProblem, fractureFvGridGeometry);
+    matrixGridVariables->init(x[matrixDomainId]);
+    fractureGridVariables->init(x[fractureDomainId]);
+    xOld = x;
+
+    // intialize the vtk output modules
+    VtkOutputModule<MatrixTypeTag> matrixVtkWriter(*matrixProblem, *matrixFvGridGeometry, *matrixGridVariables, x[matrixDomainId], matrixProblem->name());
+    VtkOutputModule<FractureTypeTag> fractureVtkWriter(*fractureProblem, *fractureFvGridGeometry, *fractureGridVariables, x[fractureDomainId], fractureProblem->name());
+
+    // Add model specific output fields
+    using MatrixVtkOutputFields = typename GET_PROP_TYPE(MatrixTypeTag, VtkOutputFields);
+    using FractureVtkOutputFields = typename GET_PROP_TYPE(FractureTypeTag, VtkOutputFields);
+    MatrixVtkOutputFields::init(matrixVtkWriter);
+    FractureVtkOutputFields::init(fractureVtkWriter);
+
+    // add domain markers to output
+    std::vector<int> matrixDomainMarkers(matrixFvGridGeometry->gridView().size(0));
+    for (const auto& element : elements(matrixFvGridGeometry->gridView()))
+        matrixDomainMarkers[matrixFvGridGeometry->elementMapper().index(element)] = matrixProblem->spatialParams().getElementDomainMarker(element);
+    matrixVtkWriter.addField(matrixDomainMarkers, "domainMarker");
+
+    std::vector<int> fractureDomainMarkers(fractureFvGridGeometry->gridView().size(0));
+    for (const auto& element : elements(fractureFvGridGeometry->gridView()))
+        fractureDomainMarkers[fractureFvGridGeometry->elementMapper().index(element)] = fractureProblem->spatialParams().getElementDomainMarker(element);
+    fractureVtkWriter.addField(fractureDomainMarkers, "domainMarker");
+
+    // write out initial solution
+    matrixVtkWriter.write(0.0);
+    fractureVtkWriter.write(0.0);
+
+    // get some time loop parameters
+    const auto tEnd = getParam<double>("TimeLoop.TEnd");
+    const auto maxDt = getParam<double>("TimeLoop.MaxTimeStepSize");
+    auto dt = getParam<double>("TimeLoop.DtInitial");
+
+    // instantiate time loop
+    auto timeLoop = std::make_shared< TimeLoop<double> >(/*startTime*/0.0, dt, tEnd);
+    timeLoop->setMaxTimeStepSize(maxDt);
+
+    // the assembler for the coupled problem
+    using Assembler = MultiDomainFVAssembler<TheMultiDomainTraits, TheCouplingManager, DiffMethod::numeric, /*implicit?*/true>;
+    auto assembler = std::make_shared<Assembler>( std::make_tuple(matrixProblem, fractureProblem),
+                                                  std::make_tuple(matrixFvGridGeometry, fractureFvGridGeometry),
+                                                  std::make_tuple(matrixGridVariables, fractureGridVariables),
+                                                  couplingManager,
+                                                  timeLoop);
+
+    // the linear solver
+    using LinearSolver = ILU0BiCGSTABBackend;
+    auto linearSolver = std::make_shared<LinearSolver>();
+
+    // the non-linear solver
+    using NewtonSolver = Dumux::MultiDomainNewtonSolver<Assembler, LinearSolver, TheCouplingManager>;
+    auto newtonSolver = std::make_shared<NewtonSolver>(assembler, linearSolver, couplingManager);
+
+    // time loop
+    timeLoop->start(); do
+    {
+        // set previous solution for storage evaluations
+        assembler->setPreviousSolution(xOld);
+
+        // solve the non-linear system with time step control
+        newtonSolver->solve(x, *timeLoop);
+
+        // make the new solution the old solution
+        xOld = x;
+        matrixGridVariables->advanceTimeStep();
+        fractureGridVariables->advanceTimeStep();
+
+        // advance to the time loop to the next step
+        timeLoop->advanceTimeStep();
+
+        // write vtk output
+        matrixVtkWriter.write(timeLoop->time());
+        fractureVtkWriter.write(timeLoop->time());
+
+        // report statistics of this time step
+        timeLoop->reportTimeStep();
+
+        // set new dt as suggested by the Newton solver
+        timeLoop->setTimeStepSize(newtonSolver->suggestTimeStepSize(timeLoop->timeStepSize()));
+
+    } while (!timeLoop->finished());
+
+    // output some Newton statistics
+    newtonSolver->report();
+
+    // report time loop statistics
+    timeLoop->finalize();
+
+    // print dumux message to say goodbye
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/false);
+
+    return 0;
+
+}
+catch (Dumux::ParameterException &e)
+{
+    std::cerr << std::endl << e << " ---> Abort!" << std::endl;
+    return 1;
+}
+catch (Dune::DGFException & e)
+{
+    std::cerr << "DGF exception thrown (" << e <<
+                 "). Most likely, the DGF file name is wrong "
+                 "or the DGF file is corrupted, "
+                 "e.g. missing hash at end of file or wrong number (dimensions) of entries."
+                 << " ---> Abort!" << std::endl;
+    return 2;
+}
+catch (Dune::Exception &e)
+{
+    std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl;
+    return 3;
+}
+catch (...)
+{
+    std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl;
+    return 4;
+}
diff --git a/exercises/solution/exercise-fractures/exercise_fractures.input b/exercises/solution/exercise-fractures/exercise_fractures.input
new file mode 100644
index 00000000..9f8ce485
--- /dev/null
+++ b/exercises/solution/exercise-fractures/exercise_fractures.input
@@ -0,0 +1,41 @@
+[TimeLoop]
+TEnd = 30000 # [s]
+DtInitial = 10 # [s]
+MaxTimeStepSize = 2500 # [s]
+
+[Problem]
+EnableGravity = true
+IsExercisePartA = false
+IsExercisePartB = false
+IsExercisePartC = false
+
+[Grid]
+File = ./grids/complex.msh
+DomainMarkers = true # enable domain markers
+
+[Matrix]
+Problem.Name = matrix
+Problem.BoundaryOverPressure = 5e5
+Problem.BoundarySaturation = 0.5
+SpatialParams.Permeability = 1e-12
+SpatialParams.Porosity = 0.1
+SpatialParams.VGAlpha = 1e-3
+SpatialParams.VGN = 3
+SpatialParams.Snr = 0.0
+SpatialParams.Swr = 0.0
+
+[Fracture]
+Problem.Name = fractures
+SpatialParams.Aperture = 1e-1
+SpatialParams.Permeability = 1e-7
+SpatialParams.PermeabilityBarrier = 1e-16
+SpatialParams.Porosity = 0.85
+SpatialParams.PorosityBarrier = 0.05
+SpatialParams.VGAlpha = 1e-1
+SpatialParams.VGAlphaBarrier = 1e-4
+SpatialParams.VGN = 2
+SpatialParams.VGNBarrier = 2.5
+SpatialParams.Snr = 0.0
+SpatialParams.SnrBarrier = 0.0
+SpatialParams.Swr = 0.0
+SpatialParams.SwrBarrier = 0.0
diff --git a/exercises/solution/exercise-fractures/exercise_fractures_a.input b/exercises/solution/exercise-fractures/exercise_fractures_a.input
new file mode 100644
index 00000000..e9294a23
--- /dev/null
+++ b/exercises/solution/exercise-fractures/exercise_fractures_a.input
@@ -0,0 +1,41 @@
+[TimeLoop]
+TEnd = 30000 # [s]
+DtInitial = 10 # [s]
+MaxTimeStepSize = 2500 # [s]
+
+[Problem]
+EnableGravity = false
+IsExercisePartA = true
+IsExercisePartB = false
+IsExercisePartC = false
+
+[Grid]
+File = ./grids/complex.msh
+DomainMarkers = true # enable domain markers
+
+[Matrix]
+Problem.Name = matrix
+Problem.BoundaryOverPressure = 5e5
+Problem.BoundarySaturation = 0.5
+SpatialParams.Permeability = 1e-12
+SpatialParams.Porosity = 0.1
+SpatialParams.VGAlpha = 1e-3
+SpatialParams.VGN = 3
+SpatialParams.Snr = 0.0
+SpatialParams.Swr = 0.0
+
+[Fracture]
+Problem.Name = fractures
+SpatialParams.Aperture = 1e-1
+SpatialParams.Permeability = 1e-7
+SpatialParams.PermeabilityBarrier = 1e-16
+SpatialParams.Porosity = 0.85
+SpatialParams.PorosityBarrier = 0.05
+SpatialParams.VGAlpha = 1e-1
+SpatialParams.VGAlphaBarrier = 1e-4
+SpatialParams.VGN = 2
+SpatialParams.VGNBarrier = 2.5
+SpatialParams.Snr = 0.0
+SpatialParams.SnrBarrier = 0.0
+SpatialParams.Swr = 0.0
+SpatialParams.SwrBarrier = 0.0
diff --git a/exercises/solution/exercise-fractures/exercise_fractures_b.input b/exercises/solution/exercise-fractures/exercise_fractures_b.input
new file mode 100644
index 00000000..3797db3c
--- /dev/null
+++ b/exercises/solution/exercise-fractures/exercise_fractures_b.input
@@ -0,0 +1,41 @@
+[TimeLoop]
+TEnd = 30000 # [s]
+DtInitial = 10 # [s]
+MaxTimeStepSize = 2500 # [s]
+
+[Problem]
+EnableGravity = false
+IsExercisePartA = false
+IsExercisePartB = true
+IsExercisePartC = false
+
+[Grid]
+File = ./grids/complex.msh
+DomainMarkers = true # enable domain markers
+
+[Matrix]
+Problem.Name = matrix
+Problem.BoundaryOverPressure = 5e5
+Problem.BoundarySaturation = 0.5
+SpatialParams.Permeability = 1e-12
+SpatialParams.Porosity = 0.1
+SpatialParams.VGAlpha = 1e-3
+SpatialParams.VGN = 3
+SpatialParams.Snr = 0.0
+SpatialParams.Swr = 0.0
+
+[Fracture]
+Problem.Name = fractures
+SpatialParams.Aperture = 1e-1
+SpatialParams.Permeability = 1e-7
+SpatialParams.PermeabilityBarrier = 1e-16
+SpatialParams.Porosity = 0.85
+SpatialParams.PorosityBarrier = 0.05
+SpatialParams.VGAlpha = 1e-1
+SpatialParams.VGAlphaBarrier = 1e-4
+SpatialParams.VGN = 2
+SpatialParams.VGNBarrier = 2.5
+SpatialParams.Snr = 0.0
+SpatialParams.SnrBarrier = 0.0
+SpatialParams.Swr = 0.0
+SpatialParams.SwrBarrier = 0.0
diff --git a/exercises/solution/exercise-fractures/exercise_fractures_c.input b/exercises/solution/exercise-fractures/exercise_fractures_c.input
new file mode 100644
index 00000000..82dd9dac
--- /dev/null
+++ b/exercises/solution/exercise-fractures/exercise_fractures_c.input
@@ -0,0 +1,41 @@
+[TimeLoop]
+TEnd = 30000 # [s]
+DtInitial = 10 # [s]
+MaxTimeStepSize = 2500 # [s]
+
+[Problem]
+EnableGravity = false
+IsExercisePartA = false
+IsExercisePartB = false
+IsExercisePartC = true
+
+[Grid]
+File = ./grids/complex.msh
+DomainMarkers = true # enable domain markers
+
+[Matrix]
+Problem.Name = matrix
+Problem.BoundaryOverPressure = 5e5
+Problem.BoundarySaturation = 0.5
+SpatialParams.Permeability = 1e-12
+SpatialParams.Porosity = 0.1
+SpatialParams.VGAlpha = 1e-3
+SpatialParams.VGN = 3
+SpatialParams.Snr = 0.0
+SpatialParams.Swr = 0.0
+
+[Fracture]
+Problem.Name = fractures
+SpatialParams.Aperture = 1e-1
+SpatialParams.Permeability = 1e-7
+SpatialParams.PermeabilityBarrier = 1e-16
+SpatialParams.Porosity = 0.85
+SpatialParams.PorosityBarrier = 0.05
+SpatialParams.VGAlpha = 1e-1
+SpatialParams.VGAlphaBarrier = 1e-4
+SpatialParams.VGN = 2
+SpatialParams.VGNBarrier = 2.5
+SpatialParams.Snr = 0.0
+SpatialParams.SnrBarrier = 0.0
+SpatialParams.Swr = 0.0
+SpatialParams.SwrBarrier = 0.0
diff --git a/exercises/solution/exercise-fractures/fractureproblem.hh b/exercises/solution/exercise-fractures/fractureproblem.hh
new file mode 100644
index 00000000..1de40bb0
--- /dev/null
+++ b/exercises/solution/exercise-fractures/fractureproblem.hh
@@ -0,0 +1,206 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+ /*!
+  * \file
+  * \ingroup MultiDomain
+  * \ingroup MultiDomainFacet
+  * \ingroup TwoPTests
+  * \brief The sub-problem for the fracture domain in the exercise on two-phase flow in fractured porous media.
+  */
+#ifndef DUMUX_COURSE_FRACTURESEXERCISE_FRACTURE_PROBLEM_HH
+#define DUMUX_COURSE_FRACTURESEXERCISE_FRACTURE_PROBLEM_HH
+
+// we use alu grid for the discretization of the fracture domain
+// as this grid manager is able to represent network/surface grids
+#include <dune/foamgrid/foamgrid.hh>
+
+// we want to simulate nitrogen gas transport in a water-saturated medium
+#include <dumux/material/fluidsystems/h2on2.hh>
+
+// we use a cell-centered finite volume scheme with tpfa here
+#include <dumux/discretization/cellcentered/tpfa/properties.hh>
+
+// include the base problem and the model we inherit from
+#include <dumux/porousmediumflow/problem.hh>
+#include <dumux/porousmediumflow/2p/model.hh>
+
+// the spatial parameters (permeabilities, material parameters etc.)
+#include "fracturespatialparams.hh"
+
+namespace Dumux {
+// forward declarations
+template<class TypeTag> class FractureSubProblem;
+
+namespace Properties {
+NEW_PROP_TAG(GridData); // forward declaration of property
+
+// create the type tag nodes
+NEW_TYPE_TAG(FractureProblemTypeTag, INHERITS_FROM(CCTpfaModel, TwoP));
+// Set the grid type
+SET_TYPE_PROP(FractureProblemTypeTag, Grid, Dune::FoamGrid<1, 2>);
+// Set the problem type
+SET_TYPE_PROP(FractureProblemTypeTag, Problem, FractureSubProblem<TypeTag>);
+// set the spatial params
+SET_TYPE_PROP(FractureProblemTypeTag,
+              SpatialParams,
+              FractureSpatialParams< typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
+                                     typename GET_PROP_TYPE(TypeTag, Scalar) >);
+// the fluid system
+SET_TYPE_PROP(FractureProblemTypeTag,
+              FluidSystem,
+              Dumux::FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), /*useComplexRelations*/true>);
+} // end namespace Properties
+
+/*!
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+  * \brief The sub-problem for the fracture domain in the exercise on two-phase flow in fractured porous media.
+ */
+template<class TypeTag>
+class FractureSubProblem : public PorousMediumFlowProblem<TypeTag>
+{
+    using ParentType = PorousMediumFlowProblem<TypeTag>;
+
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+    using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables);
+    using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
+    using PrimaryVariables = typename GridVariables::PrimaryVariables;
+    using Scalar = typename GridVariables::Scalar;
+
+    using FVGridGeometry = typename GridVariables::GridGeometry;
+    using FVElementGeometry = typename FVGridGeometry::LocalView;
+    using SubControlVolume = typename FVGridGeometry::SubControlVolume;
+    using GridView = typename FVGridGeometry::GridView;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    // some indices for convenience
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+    enum
+    {
+        pressureIdx = Indices::pressureIdx,
+        saturationIdx = Indices::saturationIdx
+    };
+
+public:
+    //! The constructor
+    FractureSubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                       std::shared_ptr<typename ParentType::SpatialParams> spatialParams,
+                       const std::string& paramGroup)
+    : ParentType(fvGridGeometry, spatialParams, paramGroup)
+    , aperture_(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Aperture"))
+    , isExercisePartA_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartA"))
+    , isExercisePartB_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartB"))
+    , isExercisePartC_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartC"))
+    {
+        // initialize the fluid system, i.e. the tabulation
+        // of water properties. Use the default p/T ranges.
+        using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+        FluidSystem::init();
+    }
+
+    //! Specifies the type of boundary condition at a given position
+    BoundaryTypes boundaryTypesAtPos(const GlobalPosition& globalPos) const
+    {
+        BoundaryTypes values;
+
+        // We only use no-flow boundary conditions for all immersed fractures
+        // in the domain (fracture tips that do not touch the domain boundary)
+        // Otherwise, we would lose mass leaving across the fracture tips.
+        values.setAllNeumann();
+
+        // However, there is one fracture reaching the top boundary. For that
+        // fracture tip we set Dirichlet Bcs - only in the unmodified state of
+        // the exercise though. In parts a, b & c we consider Neumann here.
+        if (!isExercisePartA_ && !isExercisePartB_ && !isExercisePartC_)
+            if (globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - 1e-6)
+                values.setAllDirichlet();
+
+        return values;
+    }
+
+    //! Evaluate the source term at a given position
+    NumEqVector source(const Element& element,
+                       const FVElementGeometry& fvGeometry,
+                       const ElementVolumeVariables& elemVolVars,
+                       const SubControlVolume& scv) const
+    {
+        // evaluate sources from bulk domain using the function in the coupling manager
+        auto source = couplingManagerPtr_->evalSourcesFromBulk(element, fvGeometry, elemVolVars, scv);
+
+        // these sources are in kg/s, divide by volume and extrusion to have it in kg/s/m³
+        source /= scv.volume()*elemVolVars[scv].extrusionFactor();
+        return source;
+    }
+
+    //! Set the aperture as extrusion factor.
+    Scalar extrusionFactorAtPos(const GlobalPosition& globalPos) const
+    {
+        // We treat the fractures as lower-dimensional in the grid,
+        // but we have to give it the aperture as extrusion factor
+        // such that the dimensions are correct in the end.
+        return aperture_;
+    }
+
+    //! evaluates the Dirichlet boundary condition for a given position
+    PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const
+    { return initialAtPos(globalPos); }
+
+    //! evaluate the initial conditions
+    PrimaryVariables initialAtPos(const GlobalPosition& globalPos) const
+    {
+        // For the grid used here, the height of the domain is equal
+        // to the maximum y-coordinate
+        const auto domainHeight = this->fvGridGeometry().bBoxMax()[1];
+
+        // we assume a constant water density of 1000 for initial conditions!
+        const auto& g = this->gravityAtPos(globalPos);
+        PrimaryVariables values;
+        Scalar densityW = 1000.0;
+        values[pressureIdx] = 1e5 - (domainHeight - globalPos[1])*densityW*g[1];
+        values[saturationIdx] = 0.0;
+        return values;
+    }
+
+    //! returns the temperature in \f$\mathrm{[K]}\f$ in the domain
+    Scalar temperature() const
+    { return 283.15; /*10°*/ }
+
+    //! sets the pointer to the coupling manager.
+    void setCouplingManager(std::shared_ptr<CouplingManager> cm)
+    { couplingManagerPtr_ = cm; }
+
+    //! returns reference to the coupling manager.
+    const CouplingManager& couplingManager() const
+    { return *couplingManagerPtr_; }
+
+private:
+    std::shared_ptr<CouplingManager> couplingManagerPtr_;
+    Scalar aperture_;
+    bool isExercisePartA_;
+    bool isExercisePartB_;
+    bool isExercisePartC_;
+};
+
+} // end namespace Dumux
+
+#endif
diff --git a/exercises/solution/exercise-fractures/fracturespatialparams.hh b/exercises/solution/exercise-fractures/fracturespatialparams.hh
new file mode 100644
index 00000000..e98e8aea
--- /dev/null
+++ b/exercises/solution/exercise-fractures/fracturespatialparams.hh
@@ -0,0 +1,201 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+ * \brief The spatial parameters for the fracture sub-domain in the exercise
+ *        on two-phase flow in fractured porous media.
+ */
+#ifndef DUMUX_COURSE_FRACTURESEXERCISE_FRACTURE_SPATIALPARAMS_HH
+#define DUMUX_COURSE_FRACTURESEXERCISE_FRACTURE_SPATIALPARAMS_HH
+
+#include <dumux/io/grid/griddata.hh>
+
+#include <dumux/material/spatialparams/fv.hh>
+#include <dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh>
+#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
+
+namespace Dumux {
+
+/*!
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+ * \brief The spatial params the two-phase facet coupling test
+ */
+template< class FVGridGeometry, class Scalar >
+class FractureSpatialParams
+: public FVSpatialParams< FVGridGeometry, Scalar, FractureSpatialParams<FVGridGeometry, Scalar> >
+{
+    using ThisType = FractureSpatialParams< FVGridGeometry, Scalar >;
+    using ParentType = FVSpatialParams< FVGridGeometry, Scalar, ThisType >;
+
+    using SubControlVolume = typename FVGridGeometry::SubControlVolume;
+    using GridView = typename FVGridGeometry::GridView;
+    using Grid = typename GridView::Grid;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    // use a regularized van-genuchten material law
+    using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
+
+    // we identify those fractures as barriers, that have a domain marker
+    // of 2. This is what is set in the grid file (see grids/complex.geo)
+    static constexpr int barriersDomainMarker = 2;
+
+public:
+    //! export the type used for permeabilities
+    using PermeabilityType = Scalar;
+
+    //! export the material law and parameters used
+    using MaterialLaw = EffToAbsLaw< EffectiveLaw >;
+    using MaterialLawParams = typename MaterialLaw::Params;
+
+    //! the constructor
+    FractureSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                          std::shared_ptr<const Dumux::GridData<Grid>> gridData,
+                          const std::string& paramGroup)
+    : ParentType(fvGridGeometry)
+    , gridDataPtr_(gridData)
+    , isExercisePartA_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartA"))
+    , isExercisePartB_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartB"))
+    , isExercisePartC_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartC"))
+    {
+        porosity_ = getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Porosity");
+        porosityBarrier_ = getParamFromGroup<Scalar>(paramGroup, "SpatialParams.PorosityBarrier");
+        permeability_ = getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Permeability");
+        permeabilityBarrier_ = getParamFromGroup<Scalar>(paramGroup, "SpatialParams.PermeabilityBarrier");
+
+        // set the material law parameters
+        materialLawParams_.setSnr(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Snr"));
+        materialLawParams_.setSnr(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Swr"));
+        materialLawParams_.setVgAlpha(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.VGAlpha"));
+        materialLawParams_.setVgn(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.VGN"));
+        materialLawParamsBarrier_.setSnr(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.SnrBarrier"));
+        materialLawParamsBarrier_.setSnr(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.SwrBarrier"));
+        materialLawParamsBarrier_.setVgAlpha(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.VGAlphaBarrier"));
+        materialLawParamsBarrier_.setVgn(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.VGNBarrier"));
+    }
+
+    //! Function for defining the (intrinsic) permeability \f$[m^2]\f$.
+    template< class ElementSolution >
+    PermeabilityType permeability(const Element& element,
+                                  const SubControlVolume& scv,
+                                  const ElementSolution& elemSol) const
+    {
+        // in the unmodified state and exercise part a return the non-barrier parameters
+        if (!isExercisePartB_ && !isExercisePartC_)
+            return permeability_;
+
+        // in exercise part b always return the barrier parameters
+        else if (isExercisePartB_)
+            return permeabilityBarrier_;
+
+        // in exercise part 3 return parameters depending on domain marker
+        else
+        {
+            if (getElementDomainMarker(element) == barriersDomainMarker)
+                return permeabilityBarrier_;
+            else
+                return permeability_;
+        }
+    }
+
+    //! Return the porosity
+    template< class ElementSolution >
+    Scalar porosity(const Element& element,
+                    const SubControlVolume& scv,
+                    const ElementSolution& elemSol) const
+    {
+        // in the unmodified state and exercise part a return the non-barrier parameters
+        if (!isExercisePartB_ && !isExercisePartC_)
+            return porosity_;
+
+        // in exercise part b always return the barrier parameters
+        else if (isExercisePartB_)
+            return porosityBarrier_;
+
+        // in exercise part 3 return parameters depending on domain marker
+        else
+        {
+            if (getElementDomainMarker(element) == barriersDomainMarker)
+                return porosityBarrier_;
+            else
+                return porosity_;
+        }
+    }
+
+    //! Return the material law parameters
+    template< class ElementSolution >
+    const MaterialLawParams& materialLawParams(const Element& element,
+                                               const SubControlVolume& scv,
+                                               const ElementSolution& elemSol) const
+    {
+        // in the unmodified state and exercise part a return the non-barrier parameters
+        if (!isExercisePartB_ && !isExercisePartC_)
+            return materialLawParams_;
+
+        // in exercise part b always return the barrier parameters
+        else if (isExercisePartB_)
+            return materialLawParamsBarrier_;
+
+        // in exercise part 3 return parameters depending on domain marker
+        else
+        {
+            if (getElementDomainMarker(element) == barriersDomainMarker)
+                return materialLawParamsBarrier_;
+            else
+                return materialLawParams_;
+        }
+    }
+
+    //! Water is the wetting phase
+    template< class FluidSystem >
+    int wettingPhaseAtPos(const GlobalPosition& globalPos) const
+    {
+        // we set water as the wetting phase here
+        // which is phase0Idx in the H2oN2 fluid system
+        return FluidSystem::phase0Idx;
+    }
+
+    //! returns the domain marker for an element
+    int getElementDomainMarker(const Element& element) const
+    { return gridDataPtr_->getElementDomainMarker(element); }
+
+private:
+    //! pointer to the grid data (contains domain markers)
+    std::shared_ptr<const Dumux::GridData<Grid>> gridDataPtr_;
+
+    bool isExercisePartA_;
+    bool isExercisePartB_;
+    bool isExercisePartC_;
+
+    Scalar porosity_;
+    Scalar porosityBarrier_;
+    PermeabilityType permeability_;
+    PermeabilityType permeabilityBarrier_;
+    MaterialLawParams materialLawParams_;
+    MaterialLawParams materialLawParamsBarrier_;
+};
+
+} // end namespace Dumux
+
+#endif
diff --git a/exercises/solution/exercise-fractures/grids/complex.geo b/exercises/solution/exercise-fractures/grids/complex.geo
new file mode 100644
index 00000000..ec651e1f
--- /dev/null
+++ b/exercises/solution/exercise-fractures/grids/complex.geo
@@ -0,0 +1,83 @@
+// grid size specifications
+lc = 5;  // grid size at domain corners
+lcf = 3; // grid size at fracture points
+
+// domain corners
+Point(1) = {0, 0, 0, lc};
+Point(2) = {100, 0, 0, lc};
+Point(3) = {100, 100, 0, lc};
+Point(4) = {0, 100, 0, lc};
+
+// fracture corners
+Point(5) = {5.0000,   41.6000, 0, lcf};
+Point(6) = {22.0000,  06.2400, 0, lcf};
+Point(7) = {5.0000,   27.5000, 0, lcf};
+Point(8) = {25.0000,  13.5000, 0, lcf};
+Point(9) = {15.0000,  63.0000, 0, lcf};
+Point(10) = {45.0000, 09.0000, 0, lcf};
+Point(11) = {15.0000, 91.6700, 0, lcf};
+Point(12) = {40.0000, 50.0000, 0, lcf};
+Point(13) = {65.0000, 83.3300, 0, lcf};
+Point(15) = {70.0000, 23.5000, 0, lcf};
+Point(17) = {60.0000, 38.0000, 0, lcf};
+Point(18) = {85.0000, 26.7500, 0, lcf};
+Point(19) = {35.0000, 97.1400, 0, lcf};
+Point(20) = {80.0000, 71.4300, 0, lcf};
+Point(21) = {75.0000, 95.7400, 0, lcf};
+Point(22) = {95.0000, 81.5500, 0, lcf};
+Point(23) = {15.0000, 83.6300, 0, lcf};
+Point(24) = {40.0000, 97.2700, 0, lcf};
+Point(25) = {15.2174, 20.3478, 0, lcf};
+Point(26) = {18.6341, 85.6127, 0, lcf};
+Point(27) = {37.3260, 95.8111, 0, lcf};
+Point(28) = {66.2058, 79.3111, 0, lcf};
+Point(29) = {81.5036, 28.3234, 0, lcf};
+Point(30) = {84.9723, 16.7625, 0, lcf};
+Point(31) = {60.625, 100.0, 0, lcf};
+
+// domain outline
+Line(1) = {1, 2};
+Line(2) = {2, 3};
+Line(3) = {3, 31};
+Line(4) = {31, 4};
+Line(5) = {4, 1};
+
+// fracture lines
+Line(6) = {5, 25};
+Line(7) = {7, 25};
+Line(8) = {9, 10};
+Line(9) = {11, 26};
+Line(10) = {13, 28};
+Line(11) = {15, 30};
+Line(12) = {17, 29};
+Line(13) = {19, 27};
+Line(14) = {21, 22};
+Line(15) = {23, 26};
+Line(16) = {6, 25};
+Line(17) = {8, 25};
+Line(18) = {12, 26};
+Line(19) = {26, 27};
+Line(20) = {28, 27};
+Line(21) = {24, 27};
+Line(22) = {29, 28};
+Line(23) = {20, 28};
+Line(24) = {29, 30};
+Line(25) = {18, 29};
+Line(26) = {31, 13};
+
+// domain surface
+// Note that all entities that have physical indices
+// appear in the grid file. Thus, we give the surface
+// and all fracture lines physical indices!
+Line Loop(1) = {1, 2, 3, 4, 5};
+Plane Surface(1) = {1};
+Physical Surface(1) = {1};
+
+// make elements conforming to fractures
+Line {6:26} In Surface{1};
+
+// conductive fractures get physical index 1
+Physical Line(1) = {6,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25};
+
+// blocking fractures get physical index 2
+Physical Line(2) = {8,10,22,24,26};
diff --git a/exercises/solution/exercise-fractures/grids/complex.msh b/exercises/solution/exercise-fractures/grids/complex.msh
new file mode 100644
index 00000000..4eb9e0de
--- /dev/null
+++ b/exercises/solution/exercise-fractures/grids/complex.msh
@@ -0,0 +1,4286 @@
+$MeshFormat
+2.2 0 8
+$EndMeshFormat
+$Nodes
+1406
+1 0 0 0
+2 100 0 0
+3 100 100 0
+4 0 100 0
+5 5 41.6 0
+6 22 6.24 0
+7 5 27.5 0
+8 25 13.5 0
+9 15 63 0
+10 45 9 0
+11 15 91.67 0
+12 40 50 0
+13 65 83.33 0
+14 70 23.5 0
+15 60 38 0
+16 85 26.75 0
+17 35 97.14 0
+18 80 71.43000000000001 0
+19 75 95.73999999999999 0
+20 95 81.55 0
+21 15 83.63 0
+22 40 97.27 0
+23 15.2174 20.3478 0
+24 18.6341 85.6127 0
+25 37.326 95.8111 0
+26 66.2058 79.3111 0
+27 81.50360000000001 28.3234 0
+28 84.9723 16.7625 0
+29 60.625 100 0
+30 4.999999999979755 0 0
+31 9.999999999961581 0 0
+32 14.99999999994008 0 0
+33 19.99999999991413 0 0
+34 24.99999999988819 0 0
+35 29.99999999986224 0 0
+36 34.99999999984823 0 0
+37 39.99999999984005 0 0
+38 44.99999999983187 0 0
+39 49.99999999982369 0 0
+40 54.99999999981551 0 0
+41 59.99999999980733 0 0
+42 64.99999999980859 0 0
+43 69.99999999983592 0 0
+44 74.99999999986328 0 0
+45 79.99999999989062 0 0
+46 84.99999999991796 0 0
+47 89.9999999999453 0 0
+48 94.99999999997266 0 0
+49 100 4.999999999979755 0
+50 100 9.999999999961581 0
+51 100 14.99999999994008 0
+52 100 19.99999999991413 0
+53 100 24.99999999988819 0
+54 100 29.99999999986224 0
+55 100 34.99999999984823 0
+56 100 39.99999999984005 0
+57 100 44.99999999983187 0
+58 100 49.99999999982369 0
+59 100 54.99999999981551 0
+60 100 59.99999999980733 0
+61 100 64.99999999980859 0
+62 100 69.99999999983592 0
+63 100 74.99999999986328 0
+64 100 79.99999999989062 0
+65 100 84.99999999991796 0
+66 100 89.9999999999453 0
+67 100 94.99999999997266 0
+68 95.53321022580894 100 0
+69 91.26910896396036 100 0
+70 87.19849975882879 100 0
+71 83.3126019821438 100 0
+72 79.60303457023485 100 0
+73 76.06179577338818 100 0
+74 72.68124746466155 100 0
+75 69.4540983218256 100 0
+76 66.37338653938713 100 0
+77 63.43246842418331 100 0
+78 57.67482978496039 100 0
+79 54.62895199021128 100 0
+80 51.48426112564186 100 0
+81 48.23755035133338 100 0
+82 44.88551121286127 100 0
+83 41.4247258581581 100 0
+84 37.85166686090854 100 0
+85 34.16269216273464 100 0
+86 30.3540394988583 100 0
+87 26.42182825256987 100 0
+88 22.36204931738845 100 0
+89 18.1705644829657 100 0
+90 13.84310002054154 100 0
+91 9.375245524270355 100 0
+92 4.762446352619364 100 0
+93 0 95.00000000003553 0
+94 0 90.00000000007105 0
+95 0 85.00000000010658 0
+96 0 80.00000000014211 0
+97 0 75.00000000017764 0
+98 0 70.00000000021316 0
+99 0 65.00000000024869 0
+100 0 60.00000000025813 0
+101 0 55.00000000025813 0
+102 0 50.00000000025813 0
+103 0 45.00000000025813 0
+104 0 40.00000000025814 0
+105 0 35.0000000002487 0
+106 0 30.00000000021316 0
+107 0 25.00000000017765 0
+108 0 20.00000000014211 0
+109 0 15.00000000010658 0
+110 0 10.00000000007105 0
+111 0 5.000000000035527 0
+112 6.277174999995474 38.94347500000941 0
+113 7.554349999992573 36.28695000001545 0
+114 8.831524999992537 33.63042500001552 0
+115 10.10869999998894 30.973900000023 0
+116 11.38587499999246 28.31737500001568 0
+117 12.66304999999477 25.66085000001089 0
+118 13.94022499999797 23.00432500000422 0
+119 7.043479999996524 26.06956000000243 0
+120 9.086959999990881 24.63912000000638 0
+121 11.13043999999901 23.20868000000069 0
+122 13.17391999999503 21.77824000000348 0
+123 16.42857142857051 60.42857142857309 0
+124 17.85714285714101 57.85714285714618 0
+125 19.28571428571152 55.28571428571927 0
+126 20.71428571428202 52.71428571429236 0
+127 22.14285714285253 50.14285714286544 0
+128 23.57142857142169 47.57142857144096 0
+129 24.99999999998821 45.00000000002122 0
+130 26.42857142855473 42.42857142860149 0
+131 27.85714285712125 39.85714285718176 0
+132 29.28571428568776 37.28571428576203 0
+133 30.71428571425628 34.7142857143387 0
+134 32.1428571428273 32.14285714291087 0
+135 33.57142857140407 29.57142857147268 0
+136 34.99999999997856 27.00000000003859 0
+137 36.42857142855306 24.42857142860449 0
+138 37.85714285712756 21.85714285717038 0
+139 39.28571428570206 19.28571428573629 0
+140 40.71428571427654 16.71428571430222 0
+141 42.14285714285103 14.14285714286815 0
+142 43.57142857142551 11.57142857143408 0
+143 16.21136666666099 89.65090000000946 0
+144 17.4227333333308 87.63180000000422 0
+145 65.60289999999824 81.32055000000585 0
+146 72.49538333332913 22.37708333333522 0
+147 74.99076666665545 21.25416666667172 0
+148 77.48614999998253 20.13125000000786 0
+149 79.98153333332093 19.00833333333892 0
+150 82.47691666665922 17.88541666667002 0
+151 62.68794999999825 36.79042500000079 0
+152 65.37589999999649 35.58085000000158 0
+153 68.06384999999527 34.37127500000213 0
+154 70.75179999999456 33.16170000000245 0
+155 73.43974999999618 31.95212500000172 0
+156 76.12769999999755 30.74255000000111 0
+157 78.81564999999864 29.53297500000061 0
+158 77.2222222222196 94.16333333333519 0
+159 79.44444444444183 92.58666666666852 0
+160 81.66666666666144 91.0100000000037 0
+161 83.88888888888104 89.43333333333889 0
+162 86.11111111110327 87.85666666667223 0
+163 88.3333333333281 86.28000000000371 0
+164 90.55555555555033 84.70333333333704 0
+165 92.77777777777749 83.12666666666686 0
+166 16.81704999999125 84.62134999999522 0
+167 20.86956666666627 8.591300000000832 0
+168 19.7391333333341 10.94259999999841 0
+169 18.60870000000513 13.29389999998932 0
+170 17.47826666667001 15.64519999999305 0
+171 16.34783333333661 17.99649999999318 0
+172 22.55435000002084 15.21194999998541 0
+173 20.10870000002771 16.92389999998061 0
+174 17.66305000001353 18.63584999999053 0
+175 38.47386428571723 52.54376428570939 0
+176 36.9477285714342 55.08752857141918 0
+177 35.42159285715341 57.63129285712527 0
+178 33.89545714287183 60.17505714283266 0
+179 32.36932142859185 62.7188214285374 0
+180 30.84318571431163 65.26258571424252 0
+181 29.31705000003056 67.80634999994908 0
+182 27.7909142857427 70.35011428566692 0
+183 26.26477857145007 72.89387857139273 0
+184 24.73864285716307 75.43764285710917 0
+185 23.21250714287081 77.98140714283436 0
+186 21.68637142858048 80.52517142855635 0
+187 20.16023571429156 83.06893571427597 0
+188 20.97058749999744 86.88749999999861 0
+189 23.3070749999922 88.16229999999575 0
+190 25.64356249998696 89.43709999999288 0
+191 27.98004999997652 90.7118999999872 0
+192 30.31653749998198 91.98669999999017 0
+193 32.6530249999853 93.26149999999198 0
+194 34.98951249999362 94.53629999999652 0
+195 63.79915000000157 80.6860999999991 0
+196 61.39250000000384 82.06109999999779 0
+197 58.98585000000472 83.4360999999973 0
+198 56.57920000000734 84.8110999999958 0
+199 54.17255000001938 86.18609999998893 0
+200 51.76590000002618 87.56109999998503 0
+201 49.35925000002705 88.93609999998455 0
+202 46.95260000002791 90.31109999998405 0
+203 44.54595000002146 91.68609999998773 0
+204 42.13930000000803 93.06109999999541 0
+205 39.73265000000123 94.4360999999993 0
+206 38.66300000000438 96.54055000000238 0
+207 80.65372222222415 31.15604999999359 0
+208 79.80384444444779 33.98869999998885 0
+209 78.95396666667204 36.82134999998209 0
+210 78.10408888889752 39.65399999997122 0
+211 77.25421111112306 42.48664999996021 0
+212 76.4043333333472 45.31929999995381 0
+213 75.55445555557159 48.15194999994657 0
+214 74.70457777779677 50.98459999993668 0
+215 73.85470000002208 53.81724999992642 0
+216 73.0048222222422 56.64989999993341 0
+217 72.15494444446311 59.48254999993778 0
+218 71.30506666668185 62.31519999994941 0
+219 70.45518888890166 65.14784999995742 0
+220 69.60531111112061 67.98049999996832 0
+221 68.75543333334232 70.81314999997005 0
+222 67.9055555555603 73.64579999998416 0
+223 67.05567777778091 76.47844999998954 0
+224 77.70096666667055 72.74351666666445 0
+225 75.40193333334419 74.05703333332713 0
+226 73.10290000002003 75.37054999998855 0
+227 70.803866666684 76.68406666665676 0
+228 68.50483333334199 77.99758333332838 0
+229 82.19733999999842 26.0112200000053 0
+230 82.89107999999634 23.69904000001225 0
+231 83.58481999999711 21.38686000000965 0
+232 84.27855999999899 19.07468000000336 0
+233 83.25180000000078 27.53669999999965 0
+234 61.35416666666417 97.22166666667619 0
+235 62.08333333332902 94.44333333334978 0
+236 62.81249999999387 91.66500000002337 0
+237 63.54166666666417 88.88666666667618 0
+238 64.27083333333424 86.10833333332985 0
+239 51.37864349371115 67.44361579645266 0
+240 54.63059001565758 23.86809565915907 0
+241 57.88572847784028 53.3954792181711 0
+242 23.29444576069047 27.42690926824048 0
+243 40.30460758627691 77.33943580101858 0
+244 45.77428571428637 36.95714285714397 0
+245 58.85082398574196 73.48317480848532 0
+246 73.89034532393303 85.35533245441822 0
+247 13.95411988648843 73.315 0
+248 89.95870827628592 35.02869624966194 0
+249 87.13176910422391 59.96054861302996 0
+250 61.57215732032583 13.07912932513461 0
+251 18.65254895447709 36.67053638765636 0
+252 60.66529705204619 63.22431426516664 0
+253 47.95285336665415 56.99170428059863 0
+254 49.73331328240482 46.66484501840058 0
+255 50.07241848737527 77.77882664294117 0
+256 66.07619398053548 46.58899971363374 0
+257 88.59156910080935 74.87206160947228 0
+258 91.03896666132394 22.51807543487506 0
+259 31.93364292062837 81.79547191960562 0
+260 11.71674643897338 48.52867190263169 0
+261 41.31232727953188 66.95374252164824 0
+262 81.21241136856011 80.68608053309126 0
+263 88.49268806227582 47.04527885593401 0
+264 45.68807152363235 27.403230530672 0
+265 72.26857257800893 11.44633184248077 0
+266 7.94432528284673 14.15882195583587 0
+267 52.24816758834456 14.76093626637811 0
+268 37.05019542743568 40.78503379097255 0
+269 28.91650773630608 20.99746124930484 0
+270 33.67212640425447 11.26512341645572 0
+271 62.15898557499692 27.26871481194075 0
+272 53.59630611949089 32.14267621785442 0
+273 80.16945035960208 9.870887623603446 0
+274 39.37519587125696 85.42944486346425 0
+275 65.14794601481807 55.97096257562109 0
+276 32.43683025084471 47.8368560676666 0
+277 57.65948252265622 45.48583937124103 0
+278 10.37154595042888 87.96493570499109 0
+279 20.01490587929905 68.76701452967588 0
+280 27.50592235997969 54.71074391122926 0
+281 16.81089973532257 43.26844602106332 0
+282 19.05839372522788 23.82329246664475 0
+283 70.21467917486412 91.28131276019099 0
+284 24.2293282324308 62.25586047519447 0
+285 79.02819760840266 63.39764257217685 0
+286 33.71030921148557 74.35011186234067 0
+287 52.64282306708657 39.97531286150256 0
+288 7.650398536761874 79.17875737162723 0
+289 17.71087309341414 29.73100521242871 0
+290 20.8413711662926 93.72371500617071 0
+291 46.01848930501045 82.92703261373015 0
+292 40.04000727590509 32.91057454131145 0
+293 47.24238721023399 20.13584123050972 0
+294 89.2274422470493 8.903528599882575 0
+295 54.05812253383937 60.65133126523217 0
+296 70.1011285600011 41.13374792659378 0
+297 87.22376541811509 66.98422185314358 0
+298 46.11978279771526 71.8087789088809 0
+299 42.42752189433601 60.59950324542086 0
+300 7.882725589915205 57.64440858998394 0
+301 7.861808851585235 67.85148672612344 0
+302 63.30689304018324 20.25596841410232 0
+303 12.91082993422602 9.107148901915361 0
+304 55.3829811271485 93.2327838688729 0
+305 24.97150814261348 33.53080095248281 0
+306 44.53040190703427 43.69130032661018 0
+307 62.55043198343161 76.10096316422992 0
+308 62.93052631949011 69.00889855584197 0
+309 82.15007659386981 51.67464813805355 0
+310 91.45199312319818 93.13026476525798 0
+311 55.95092683878281 78.43896658075546 0
+312 91.87428849529199 15.59955133669884 0
+313 69.87871684846806 82.30468577160512 0
+314 90.71698264655495 28.98280077173546 0
+315 16.57058904472641 78.26022850661195 0
+316 74.94770691834653 80.24850212775409 0
+317 79.78754291280288 86.01575769136068 0
+318 27.70085814322112 8.142960729847477 0
+319 28.90680740033557 26.78642099949431 0
+320 56.77691321582151 68.07127789369228 0
+321 53.75772852230418 72.70832517587185 0
+322 34.10851872121309 87.86628823158991 0
+323 23.78790346471118 22.87928243817016 0
+324 38.48273567056093 7.426365265496097 0
+325 68.84309275041399 17.59496076072649 0
+326 46.67154596484029 51.03150208081602 0
+327 12.75602495729193 38.10476243438676 0
+328 51.84639069433939 52.41227108639904 0
+329 52.29331300742306 7.162951670745667 0
+330 57.34784818375614 18.09548798516727 0
+331 26.06271244288572 83.77366663021699 0
+332 84.45473164744794 39.73864129502277 0
+333 34.77927012966904 69.52836191355635 0
+334 68.8127406830738 51.49175751154871 0
+335 33.6059117564327 16.96813134979825 0
+336 59.21440103749843 32.45099582724161 0
+337 87.01488198213556 80.70617684184177 0
+338 77.66359633356484 25.04226479122436 0
+339 47.19183992504253 62.91007604316676 0
+340 68.01705744294894 28.63372380680446 0
+341 79.38612505660356 56.99520436864459 0
+342 9.186129724812009 93.28868747189929 0
+343 85.93986464228593 31.40720935164879 0
+344 75.65859638249319 67.85469541694189 0
+345 83.30093864833759 75.83340553918342 0
+346 66.39712071572339 61.89333375262761 0
+347 82.98679591259838 45.53446313903744 0
+348 10.1506904175494 43.19406327360605 0
+349 5.819028413106745 47.29367345419997 0
+350 18.80405704808998 73.89255162283371 0
+351 36.2231852571382 35.82447552473281 0
+352 49.83626177782322 94.78326825641079 0
+353 63.45426896485004 51.6434569353972 0
+354 74.54693290781837 90.40894578534999 0
+355 91.54926462507626 54.04648375669832 0
+356 15.35508909179825 68.4052966001081 0
+357 51.04565085657172 27.69376406698505 0
+358 50.6207795701574 82.66062471237966 0
+359 21.38869602796142 40.73427211978827 0
+360 47.56504096185967 31.71191135511641 0
+361 14.00084641914663 54.72905589754379 0
+362 93.71819694939627 62.98288126003673 0
+363 92.55498451435676 70.4336934982643 0
+364 58.52830301202071 58.34149561747586 0
+365 17.07775240819472 49.21526627010446 0
+366 7.281390385585137 20.11868724158 0
+367 37.05549704267923 81.30760467336886 0
+368 85.9864966899824 94.25853351026457 0
+369 38.47863320739226 89.6811134163834 0
+370 32.52000814326656 41.91552159025393 0
+371 69.78771968444445 86.706184163958 0
+372 29.15458284514985 77.1057121499216 0
+373 76.55847776141277 14.94829468041265 0
+374 66.8693989005335 95.13425901278606 0
+375 39.21370254574405 72.18697149156552 0
+376 64.76041465810795 41.37323428837207 0
+377 70.91637735791035 47.10918023563164 0
+378 43.27325271955321 23.04848661085698 0
+379 42.78537600269874 54.9667546658839 0
+380 7.798442112013218 73.45967141900172 0
+381 14.20282840477464 33.1362521827151 0
+382 58.56546903412724 89.37542638434297 0
+383 66.47959208756053 7.537566359529071 0
+384 37.78321346526315 63.49327601011294 0
+385 28.0491334518114 50.01238337381251 0
+386 32.49640499826234 52.57679875982896 0
+387 45.01662744551557 78.25965777114835 0
+388 73.58984365028677 37.54530562726413 0
+389 57.39030105015695 27.54240772873647 0
+390 73.46281210286816 26.87865122484247 0
+391 13.10245835542138 14.81450075255632 0
+392 20.53500088489591 20.71554222460946 0
+393 92.42184151340399 41.38105933840711 0
+394 78.32132688249602 77.48390702993976 0
+395 46.94719544157483 15.18458478049923 0
+396 40.87293778488661 37.4515853283649 0
+397 40.45394640227694 27.25680209032612 0
+398 23.71607117385095 57.40706270837494 0
+399 28.26378945833362 60.02069023933996 0
+400 37.14712620339866 46.01850125786574 0
+401 43.77931738619146 87.08281466227135 0
+402 59.61959990593652 23.20596796123492 0
+403 29.78117154323384 86.89179484801339 0
+404 46.0616385207521 67.38786078289877 0
+405 48.24395921927569 41.20511108297956 0
+406 83.61479128544789 84.52146786890273 0
+407 29.09073926817958 16.20812767550539 0
+408 26.12176094253157 29.56445409743549 0
+409 12.63076924166543 79.94227708608206 0
+410 91.29888785152627 78.68787380216702 0
+411 24.39684141654972 67.03515594840232 0
+412 52.00176332974676 19.48325242442069 0
+413 59.14285938549779 6.80511866276397 0
+414 19.35225674532916 64.21057028797142 0
+415 16.53146506113544 5.119636839016788 0
+416 88.50240905080645 18.76804059897438 0
+417 16.38232852031449 26.22281942109809 0
+418 94.38365676482653 88.1471295743932 0
+419 86.932575862747 23.26787617202308 0
+420 65.67701590137797 24.57786880624018 0
+421 54.31609523732191 56.21570735703337 0
+422 41.52550286546224 81.83199581797511 0
+423 55.62789949326731 36.36356568498468 0
+424 6.289149243062279 8.328746238659775 0
+425 21.42415473908618 30.39837197737084 0
+426 32.07826515228099 23.85518395561967 0
+427 49.00731034294917 11.02557500242994 0
+428 81.96343728309216 13.51881661268634 0
+429 57.14226529667581 12.64376738984943 0
+430 55.23827113482381 49.04662699548174 0
+431 25.42689100006742 94.80240348275666 0
+432 14.12942565392541 86.76893211216372 0
+433 84.58086170389537 71.3179733797747 0
+434 50.56519806200963 36.12575133623021 0
+435 64.35526940235857 31.32980887078217 0
+436 5.532472220914075 84.27783295552196 0
+437 75.21414274484442 6.058025180091107 0
+438 10.88413593457907 83.81747108469941 0
+439 56.91906527916235 41.14552902466401 0
+440 53.49692392926085 44.05070259879844 0
+441 64.09826950814156 72.61943312293523 0
+442 81.99265133211836 67.20366113040319 0
+443 24.1901689842222 37.62086378670173 0
+444 33.06802850597083 5.324540713715757 0
+445 37.44038013228422 13.18004352184896 0
+446 5.811119426507865 90.45359072067012 0
+447 86.49339091912272 12.80356692554326 0
+448 10.97404374191854 18.41167782354693 0
+449 9.786135208256653 62.59459576911711 0
+450 59.59084388297683 78.77810532893257 0
+451 61.84770497621803 44.6723401183114 0
+452 44.04639047463756 96.57299235379773 0
+453 25.45917663220839 18.32600498836511 0
+454 72.92429692108099 70.67852617856529 0
+455 71.03307838423292 95.41926111382176 0
+456 7.247755115639444 52.4379809959387 0
+457 83.94842718516028 36.34798066792645 0
+458 43.74075168698796 47.65591446864461 0
+459 50.10276206242082 23.3152294556568 0
+460 76.87350100362244 83.58667333460454 0
+461 19.79663377284101 27.12339273175902 0
+462 66.48113435681509 65.90906281168 0
+463 17.65130685839483 21.57154154520481 0
+464 69.17123169971688 55.81416797913944 0
+465 56.62918829090055 63.58789681130443 0
+466 32.09185357239564 70.83224148134914 0
+467 67.27556605059284 12.81432266590915 0
+468 84.54444195937343 5.361986836070369 0
+469 26.01451373894247 24.81262660725872 0
+470 73.41686125074744 16.8884171492024 0
+471 16.7039701252376 95.79463739742239 0
+472 95.04766416963064 47.81796241868579 0
+473 3.583283216164512 32.26466047846866 0
+474 93.68076565215515 73.96661192019334 0
+475 62.28158433921035 59.59596328680978 0
+476 59.51853730213153 49.0686013779267 0
+477 22.04315481840609 71.65700854513156 0
+478 28.98845316852752 11.9030508480886 0
+479 43.01215972187555 64.51103159071826 0
+480 17.39770910937867 81.27727422902524 0
+481 20.05362239567383 91.03180700725036 0
+482 44.15048912721355 31.01307240458521 0
+483 54.93292820808752 81.72566037625045 0
+484 55.1633710846192 74.89398484330869 0
+485 28.96871205140692 45.52230034605327 0
+486 20.06193369720964 44.0373055551385 0
+487 43.04842027849539 74.26724217561737 0
+488 10.71795266756299 70.04461723188597 0
+489 75.93324309805399 62.18682650963994 0
+490 86.88607995732154 54.08097985466346 0
+491 33.12540191452902 38.31625111961743 0
+492 61.13651527265404 55.55165677256201 0
+493 68.09454946571977 84.6802797630862 0
+494 33.80141368043898 78.81690409469788 0
+495 48.5657492084244 74.5740353846593 0
+496 78.19426843810388 89.26813047241147 0
+497 24.86500525795633 53.28192043250851 0
+498 29.9959771412115 96.23302914981024 0
+499 59.7604412481683 69.97507140623175 0
+500 35.75929995805986 49.8482844453335 0
+501 94.68749392031802 34.14322675940391 0
+502 31.51872247803938 57.0194451310213 0
+503 24.62385764106721 9.624375767893422 0
+504 17.34820333558099 39.61777711155683 0
+505 10.95818721974168 76.01771041876093 0
+506 35.14138671832359 83.99777324666643 0
+507 51.79507020894948 91.06785952124866 0
+508 55.26070921663383 70.34633890909298 0
+509 67.73619046435144 88.49010335790891 0
+510 50.98365131579461 63.29392835590826 0
+511 84.00937142533577 62.09401638532994 0
+512 12.63509359094634 58.20662989304431 0
+513 94.77193912693483 10.87078504699942 0
+514 48.44044062193083 85.09014811879182 0
+515 79.60715633446495 22.08244586004494 0
+516 89.07300433318483 26.63936398368416 0
+517 36.46663122940345 31.91046637020084 0
+518 81.98945982957312 96.15650224131653 0
+519 57.61415835800102 96.17569643657546 0
+520 26.25712835080282 64.62399542778607 0
+521 13.68989226850582 46.0734718550349 0
+522 37.36229711137604 92.93417580015235 0
+523 48.68432833965822 4.125032033110729 0
+524 42.42572160760183 3.708529857390634 0
+525 71.72018050700629 79.26614671351315 0
+526 20.35667714135288 59.91676340133013 0
+527 37.91113117320413 75.27281692215035 0
+528 83.63482133221481 30.43289520491197 0
+529 49.80522862832356 69.82789083588759 0
+530 43.72326210522636 19.46862201334023 0
+531 66.952354067702 20.83675166593638 0
+532 12.85617257489231 95.04181997858608 0
+533 95.15192532569192 25.38590396690985 0
+534 16.87774672595521 71.04678789887365 0
+535 26.37007394317313 80.25843793464595 0
+536 63.54738487805467 77.73063043650345 0
+537 61.02383070419998 86.78803855141669 0
+538 40.20996984082216 43.84926688729439 0
+539 22.03140788178466 24.49389412914294 0
+540 74.10633315849661 43.02512595470515 0
+541 68.12660404537199 38.10213350636261 0
+542 53.46174899790718 96.45433711812517 0
+543 94.98758535038007 19.33999922626795 0
+544 68.49042225698142 59.54364759775526 0
+545 48.33427966595722 80.53517422638461 0
+546 34.49614329678515 20.87359842605938 0
+547 27.13591534323533 33.06001306387886 0
+548 76.19658559504299 34.40894176702167 0
+549 43.01246290989149 70.39994863743902 0
+550 50.40045613199585 59.81018420455911 0
+551 78.24725439496861 53.36328648678379 0
+552 93.24619546457001 4.272065215043288 0
+553 88.50699923239971 15.78706957255413 0
+554 20.35827075698765 77.22475041754251 0
+555 39.89410488799061 57.16181846416223 0
+556 88.06973137169696 70.69982818710915 0
+557 46.35278374317392 23.73952449295693 0
+558 60.55641653642628 65.96577092465797 0
+559 34.53121194734082 65.49201054512271 0
+560 45.40990425715937 59.54408782802583 0
+561 58.91955490997008 92.87669571351672 0
+562 43.32333121016023 34.68370644453491 0
+563 29.7483239542868 29.84216627730954 0
+564 58.87701449060224 76.28547093582813 0
+565 41.69183133724481 89.71684222846619 0
+566 43.54064670069366 39.72013201407133 0
+567 73.0358310911013 83.17791099662367 0
+568 16.47341712730083 23.19726151014092 0
+569 3.630162844573342 22.82524388140387 0
+570 68.12007984033005 81.36652344632627 0
+571 34.7622505259812 90.89405377941532 0
+572 9.470298605747548 40.1918183464894 0
+573 79.59153134785346 48.52915731254015 0
+574 64.74780810145391 15.47877753962786 0
+575 29.51928024824569 74.31215526547385 0
+576 5.512206720617286 63.51327364304339 0
+577 79.54330351808414 26.46341174012267 0
+578 70.73423132030035 50.14864219804004 0
+579 23.45655145090597 84.74383533247899 0
+580 67.64145072306272 43.62798038923393 0
+581 89.18604807513023 89.83623446500047 0
+582 61.54553291387558 72.85931401214251 0
+583 46.5412742274723 94.64303113330277 0
+584 72.39539138453935 88.31074628446325 0
+585 26.05777574006473 4.109264358289068 0
+586 16.30139867969364 10.73972702994369 0
+587 81.59387538403151 42.62738288097233 0
+588 12.3711124360557 64.28585692039871 0
+589 94.20153236656492 77.88555680398809 0
+590 71.41611930855564 29.11475365053179 0
+591 14.27092170914476 30.15772697224189 0
+592 53.91546260744794 65.58290858392917 0
+593 55.35199023805868 89.27719305089597 0
+594 48.18288902659624 53.43478080909703 0
+595 20.39602462493892 34.47131050343701 0
+596 54.47599139137574 28.94121952888051 0
+597 49.26110197846376 50.15506764958977 0
+598 78.34708526714653 80.30114543245178 0
+599 80.05442015437737 74.76506961601716 0
+600 12.90179913577739 17.34337922729001 0
+601 64.62617838036684 76.01970266702942 0
+602 17.28882180748112 52.64925574008824 0
+603 76.19639698712055 11.28205823570913 0
+604 46.39243085376646 45.76491502069557 0
+605 86.51644726615336 83.58612741343204 0
+606 13.57854880517596 42.20655850924544 0
+607 11.1283352484788 90.81472573370112 0
+608 83.95520652028168 78.928130991201 0
+609 76.5094308580538 86.91166195466472 0
+610 7.283887129328157 28.86854388649636 0
+611 52.32858937598978 78.58824716093815 0
+612 80.11813123975128 15.97776492854997 0
+613 73.43266710972273 92.50326287210359 0
+614 87.27109446704981 63.74157134717863 0
+615 79.95510222709113 5.36411991563475 0
+616 11.80684391525968 35.52245596911987 0
+617 83.38434456385113 55.30653683710341 0
+618 22.88844608205558 91.07777308589074 0
+619 36.94029131209088 97.94455332791338 0
+620 81.38845508631924 60.06176263524707 0
+621 78.82099970484049 68.29119908884347 0
+622 88.26200077953541 42.89301778498403 0
+623 4.501767060432168 76.21461638128247 0
+624 45.71213915117341 74.68403991542561 0
+625 22.65758150544324 18.43412456567129 0
+626 12.43577866921049 4.779373815276183 0
+627 61.52470046154523 40.7204274891463 0
+628 37.0586565055718 60.45922183980011 0
+629 76.06620558071319 28.32357258239477 0
+630 35.94522522989732 72.67832929559052 0
+631 52.32692581036846 75.57574820744786 0
+632 15.89996468534907 75.2870016513874 0
+633 61.63391553678778 17.29233111925195 0
+634 66.03559141791234 92.30766365907627 0
+635 31.5584763472996 14.13386656866082 0
+636 42.69829248801742 51.99544249874602 0
+637 37.46384439218765 16.34830887348225 0
+638 95.28356996565124 59.29279723206587 0
+639 75.33607398984462 77.31380194031168 0
+640 90.14432692611317 81.49446292671453 0
+641 37.84809326297394 67.13650625507643 0
+642 64.54066204852091 97.00453584510744 0
+643 75.46503687875877 58.97868131528215 0
+644 62.78336610151374 64.58828262976485 0
+645 68.05278352274983 48.93321497290426 0
+646 26.89471386036862 86.61520982806032 0
+647 65.21764841382081 53.42364955693053 0
+648 95.76567365535362 84.91070527937441 0
+649 31.57044199855966 88.87437116987795 0
+650 95.7952029313826 92.11451299576473 0
+651 74.8462948698365 24.12105238900916 0
+652 65.42783945498599 70.01562230867457 0
+653 51.1050855137749 55.7028055270449 0
+654 17.91416000254624 93.08254640245377 0
+655 62.86329610777922 33.70681312912037 0
+656 38.05994642391358 28.67013530114134 0
+657 17.40093962529237 33.70647737769121 0
+658 53.82945075606316 10.76740858000726 0
+659 17.79920073492222 66.5910436000355 0
+660 52.47497181872689 48.89943833547051 0
+661 57.22310265063481 80.50420093364647 0
+662 40.02196607660232 11.28353900298235 0
+663 62.55647218353982 47.30228496104198 0
+664 4.781823107453841 70.44955794241935 0
+665 82.17114249324183 86.97461599344004 0
+666 49.08166347309778 17.7352663536212 0
+667 52.51712175865782 70.10027597951222 0
+668 32.07383762362375 26.68522907956668 0
+669 70.81994210172238 73.27978791034774 0
+670 73.70664707841334 64.4905478593853 0
+671 88.95176113611637 96.33734362656833 0
+672 5.464510434695159 16.41303687642568 0
+673 54.62555829131229 20.47546240143282 0
+674 71.41643632608744 84.56280276781811 0
+675 62.55087690648467 24.49886629402337 0
+676 86.17536867241178 20.69822815889981 0
+677 28.86112825939127 81.94467540168012 0
+678 37.16434014448771 87.25060820542964 0
+679 79.20348642757395 83.07592800298301 0
+680 77.47062450418896 97.19682952914677 0
+681 70.04141990637446 20.79960757009549 0
+682 93.34690174512275 96.41147617312407 0
+683 70.51548504426169 26.33894456616655 0
+684 50.7680280742069 43.74229478176403 0
+685 87.25678490310891 28.65155928100368 0
+686 15.28725458279995 36.72023216800904 0
+687 70.95823764242401 7.396978904544205 0
+688 20.36384961932989 47.5884372799888 0
+689 61.95505266970299 79.59158514306218 0
+690 28.40535560847806 23.74553401672675 0
+691 81.19290274710407 77.76374602981248 0
+692 26.3273171376426 35.60790554527556 0
+693 53.80655493637289 17.40102612211667 0
+694 4.5027037897875 94.10103053325876 0
+695 13.49229154804891 89.34367862354782 0
+696 43.11977215886797 84.16931754427044 0
+697 50.92362949576705 30.48115679401801 0
+698 39.97689981801877 24.36131394103494 0
+699 35.07561454328057 43.36574467138683 0
+700 4.509929492684158 35.95210794165187 0
+701 31.96699350258591 68.10432402679172 0
+702 75.35040322698123 40.16593179660296 0
+703 32.66669980343571 84.91311647213203 0
+704 30.78679711424694 18.52268011094574 0
+705 13.74305754286468 77.10107910782122 0
+706 10.68821852441252 20.92304455274234 0
+707 70.82362123680346 36.11216387527779 0
+708 60.12903261517843 29.14204254795376 0
+709 85.1678709766111 48.75467732075258 0
+710 56.16195303617093 31.26975134178544 0
+711 40.53380472006296 47.14512376953758 0
+712 86.22503833614516 77.1589467643872 0
+713 86.40043292383936 91.43646453180938 0
+714 75.64759050342788 70.71919238159821 0
+715 82.99857825588751 32.9170509260975 0
+716 22.89631977322072 11.36591644249225 0
+717 88.77371311765502 4.48763274757033 0
+718 49.42711607486257 91.84855418198582 0
+719 45.81775845698622 54.96779717427507 0
+720 14.22293026397171 51.00814753501669 0
+721 22.20562120206058 74.91740340494133 0
+722 39.92207277969012 40.87157021033661 0
+723 83.66264215935823 11.12470535872781 0
+724 48.89494720891507 65.10752931025526 0
+725 55.08958632509038 53.47939558351888 0
+726 46.91763045021954 87.58304057317049 0
+727 21.23440802224047 37.64833741082275 0
+728 10.74722789839883 52.66698963266387 0
+729 58.30972538233449 35.65416213481217 0
+730 70.62016604806432 53.32957170573392 0
+731 84.17043781961581 81.8130511313291 0
+732 29.31894241112705 42.71145092050781 0
+733 91.29370507087005 57.74810495413007 0
+734 7.045219042923802 44.24647185240698 0
+735 9.071139291796785 46.43740173534898 0
+736 3.745978873708658 44.69956968110216 0
+737 89.64574298317497 11.94342136051398 0
+738 38.93405825053058 35.62364657227262 0
+739 23.66610062512085 29.58523332403159 0
+740 4.671511617150238 55.71302927522608 0
+741 48.20751536365055 37.92221718755788 0
+742 81.86639083285 37.69535238576026 0
+743 15.09924272190568 81.06702994581715 0
+744 67.03055689988531 31.4163843246923 0
+745 72.58057345465164 67.77306915656499 0
+746 62.94790708864001 4.156940203775878 0
+747 90.55553721832304 66.35298241131281 0
+748 95.82594488957785 38.37912775231513 0
+749 58.32495609618556 61.28541445994423 0
+750 64.65785391924507 49.25177509244459 0
+751 48.24162016241574 25.52359905035418 0
+752 4.180401448830422 80.50929088523606 0
+753 29.61525332803863 4.493328403722708 0
+754 43.71003177871047 16.54394596559169 0
+755 48.13980902255364 28.95554866973443 0
+756 24.83919368570601 70.29624858580308 0
+757 25.70183965907906 27.40950986252635 0
+758 36.71904885306537 10.38367562423607 0
+759 69.13649511784675 97.09335114820833 0
+760 43.01120688424766 25.9532306162736 0
+761 38.03506107837051 38.17175680085379 0
+762 7.892945693668674 4.318797255048893 0
+763 21.30677717482672 66.11735750205897 0
+764 62.42539335113609 8.871999924148966 0
+765 25.01241228493202 50.41281993529746 0
+766 70.73674574577552 14.77879801286166 0
+767 24.00526617434268 82.01488357201059 0
+768 94.75856439432789 29.37241111740992 0
+769 30.90435431284291 50.21682881008331 0
+770 90.98943127616501 87.52988853252947 0
+771 79.66093317471631 45.69343453662949 0
+772 26.74669603282642 47.28202274513322 0
+773 24.504456932251 40.20157983830195 0
+774 88.91018344331708 38.99693494958292 0
+775 25.54939460758538 92.22461541779349 0
+776 95.76024103344886 66.55136507767001 0
+777 59.55997238070952 43.09073122634315 0
+778 54.96145540316739 46.45864674545977 0
+779 29.48968596020237 52.40067429208007 0
+780 31.10629514569521 9.722428155916733 0
+781 15.08270293840223 16.34840470202555 0
+782 15.68416177447861 13.67026390940643 0
+783 60.0044719000353 20.21264087663128 0
+784 80.67624818440878 24.61877296704624 0
+785 37.84099724738229 78.19867848053818 0
+786 85.05440420745973 24.45803800600642 0
+787 18.89256225428182 19.95460128224946 0
+788 65.11210101055093 27.09267573863229 0
+789 65.1916148981208 38.56451194958785 0
+790 18.10752228406843 8.710782229966116 0
+791 79.00117872619577 13.11956441619231 0
+792 77.16668613370629 91.36470122316599 0
+793 33.73373744614986 55.37308804646589 0
+794 32.71162052808671 95.56216627936246 0
+795 40.34652166320999 64.49724421506457 0
+796 82.32968007274891 72.97891998265496 0
+797 35.49765954068699 52.33307262362341 0
+798 10.95014077334396 12.06461458810139 0
+799 73.52507637526793 45.95260332940606 0
+800 59.77136913352076 26.0604849833839 0
+801 25.36761588416758 59.79670510465183 0
+802 77.79040518323045 17.48432721327935 0
+803 38.9926390865315 69.42955674713949 0
+804 46.78634616368036 12.57306783272767 0
+805 33.43363123096336 35.25402415418149 0
+806 39.18654433450806 92.20543943355898 0
+807 29.1779954300258 62.87382593789643 0
+808 30.59616381436185 39.4837702469018 0
+809 48.27967263698473 96.87351609316416 0
+810 88.72462691082879 50.72266727641573 0
+811 53.45067460640747 26.40969105461151 0
+812 44.08336652856715 81.01015065245159 0
+813 77.15345700182237 65.35334134250678 0
+814 34.84992786115011 14.32123936017676 0
+815 55.41850417672067 4.815723418255789 0
+816 67.68094335773965 64.17729793792637 0
+817 48.21701439161514 8.026726238915003 0
+818 9.00268608771265 22.49483292820581 0
+819 5.168724222348951 12.42731100342823 0
+820 76.10074334940968 55.47179371418855 0
+821 42.09918052518643 7.64601720176628 0
+822 88.80443101314836 31.66660230322598 0
+823 28.16511185226401 93.91479865328367 0
+824 57.35588307585568 24.8624606412929 0
+825 55.88035816930503 58.89725264404052 0
+826 23.60243968812379 96.61189081517725 0
+827 85.6563900857976 73.96493104916483 0
+828 26.44459446999788 22.12944631634757 0
+829 39.16162800855138 82.73215380208461 0
+830 48.0092290362625 34.91834120618486 0
+831 62.66624467026057 84.20236237846591 0
+832 34.71061813384956 40.53570358273377 0
+833 91.69703480033351 19.12182171430027 0
+834 41.56769548078075 95.69254278448939 0
+835 56.79082018840792 55.90911893737942 0
+836 36.14265492193991 3.968608002104199 0
+837 21.09821383216858 57.5159828821227 0
+838 72.70465540237713 97.18087874401868 0
+839 95.92803411549858 51.72536359418105 0
+840 63.0943176720608 62.09886257073902 0
+841 31.08132279060031 59.78210410300323 0
+842 65.06159432726044 59.16496487205073 0
+843 76.91879284090085 22.5262359413916 0
+844 92.99837091803508 85.80187866185842 0
+845 23.00520263682378 43.02076316011237 0
+846 96.39999372806645 71.81842594940258 0
+847 46.62857448948995 48.54858316443716 0
+848 78.31950045234221 31.96584335340117 0
+849 6.812653060641585 23.53858552640019 0
+850 67.44559827804005 86.51679226756519 0
+851 95.97603643810888 15.12052847069292 0
+852 53.23373828735117 34.94335517344579 0
+853 22.49164984145492 54.83688150157087 0
+854 91.66404741825781 25.50319204368397 0
+855 20.88425363575181 22.70329206774996 0
+856 51.5704973710659 85.27854540109607 0
+857 78.58316117050556 60.66413626313318 0
+858 19.36165036911405 6.368240077588665 0
+859 41.21663861942714 30.08501745120434 0
+860 13.75604039495447 71.02826255094308 0
+861 39.76167687638673 87.87964514899195 0
+862 16.73652428379567 55.72249839652056 0
+863 22.84974875699983 3.392163435770942 0
+864 60.40590041201281 52.36512765603774 0
+865 83.24858037471836 93.59043664453965 0
+866 3.208801498617408 39.10357159292201 0
+867 35.12757209792789 62.46767739328116 0
+868 84.60474207331238 43.39311813291863 0
+869 18.86603030774818 79.20162355954352 0
+870 69.74149039100902 79.67728839794759 0
+871 72.98590144145754 34.64777495976493 0
+872 31.03800045425292 79.32388297844119 0
+873 13.0000260474363 19.60359329590456 0
+874 91.93291533018265 45.25095428968709 0
+875 27.22787701543314 75.49134378679412 0
+876 31.77020228096567 45.02673985319986 0
+877 31.98035315190664 21.35053298269567 0
+878 5.01220041468132 59.56416641676433 0
+879 47.31933749433566 69.7936040702409 0
+880 84.7839064834143 28.838561879994 0
+881 54.92777044959254 39.05015384237929 0
+882 76.43897760557611 37.71910583816841 0
+883 4.130764155426369 51.11692313589064 0
+884 56.74258646887509 87.4079843074894 0
+885 30.10968959287497 84.07371932266486 0
+886 14.33540323480609 27.41637427724947 0
+887 9.269069658684039 27.43528363544294 0
+888 43.00216139793636 76.61771843971356 0
+889 40.15421227650116 54.7052370165753 0
+890 68.98321416865934 93.44309423707963 0
+891 92.36083440858057 37.58580900987421 0
+892 26.60946802488667 16.24410981781427 0
+893 13.22074029042105 84.78166578245499 0
+894 11.14350489628088 72.90881978254485 0
+895 52.84761193778134 93.46847956953164 0
+896 26.43417103221434 57.29404659873281 0
+897 59.21177072946033 9.899206857100248 0
+898 52.67520829710378 58.46613599667148 0
+899 66.95121199469163 82.9624656283642 0
+900 61.33199491917698 89.7011205688928 0
+901 16.74657983577848 46.07045978770402 0
+902 45.46460168605944 33.49929977856836 0
+903 42.62508348912267 58.17117532842613 0
+904 64.46078844028587 44.13307780066317 0
+905 72.1521052938151 90.60928601867059 0
+906 50.67818652545935 80.1396554173962 0
+907 82.25463101213563 69.91010145554785 0
+908 72.56090872678587 3.378149295151564 0
+909 13.09747279662477 60.8913136023246 0
+910 19.43502746461569 50.45188419266323 0
+911 61.41912098461481 70.47849043858017 0
+912 18.81664967699876 41.71666516612917 0
+913 32.03958998840642 76.29798244959791 0
+914 8.050048495666921 82.33956123932199 0
+915 77.35391987767214 50.30757043430523 0
+916 19.304052977231 71.20602017959628 0
+917 49.60552679307629 14.37798000705847 0
+918 21.5576432010505 28.35160804870793 0
+919 15.14155755737491 65.60455672451654 0
+920 40.92135356782713 21.13427343481759 0
+921 48.33574442366108 82.84717642104812 0
+922 57.97346676761426 65.68074422403764 0
+923 17.98657368606178 27.82452650089194 0
+924 36.12626134838948 19.16805632010618 0
+925 64.54965073996745 94.15630133442512 0
+926 73.20358994825411 78.28257710493722 0
+927 39.70534063463925 80.09487302688919 0
+928 84.40242018738473 14.20622937765105 0
+929 67.49168865819604 40.66977812779694 0
+930 42.34381105748351 79.15936958634988 0
+931 47.72829011087244 77.37958409938238 0
+932 50.64885699379014 33.38719868047495 0
+933 34.43020688301498 81.66087563426274 0
+934 8.898843841114825 85.33350605884868 0
+935 77.53512606328447 75.12199206386504 0
+936 58.8194929235342 15.29025635158429 0
+937 80.53424214377269 88.72843745710166 0
+938 71.04535484015288 43.95335204361697 0
+939 56.05964181626662 8.514835968972928 0
+940 72.21735959867867 24.69775684168159 0
+941 12.99002471298223 82.4753866230473 0
+942 40.69163501659612 74.67716145571968 0
+943 6.910847628607984 96.90611298234828 0
+944 24.74101896843184 6.824234937377001 0
+945 75.51917713022469 18.43120693172593 0
+946 71.07573166835131 38.72116275748382 0
+947 11.68724420249121 32.96791849322721 0
+948 81.92788422599307 20.05668759625888 0
+949 52.09178519843239 22.18438880960636 0
+950 8.403989613529086 49.64444015933482 0
+951 88.58809567885841 21.42778656569403 0
+952 50.75449679994753 97.35442238488778 0
+953 56.81574999196744 76.47487984449549 0
+954 23.28158132177986 35.21720890892897 0
+955 19.9324257970924 96.53546493687068 0
+956 34.53365036405842 45.85727629774474 0
+957 61.80131551543226 31.04478331616535 0
+958 46.54278105337839 43.22709974746724 0
+959 47.85347912312113 60.12308862669634 0
+960 82.78664107537749 15.67014551711147 0
+961 10.93193774191012 56.04397177640895 0
+962 8.58031498459223 89.9138668769607 0
+963 28.075899884592 18.49970660485747 0
+964 67.94295859003304 25.39231068946118 0
+965 22.53622308951007 68.82138424480492 0
+966 19.33276363708156 31.58704603115793 0
+967 60.03005455128512 46.24838709104542 0
+968 72.89593644716574 19.8136487393863 0
+969 46.17298548657563 39.45569570068324 0
+970 74.05307781377006 29.41566715208932 0
+971 57.26399189542558 21.78668592081971 0
+972 84.73715465870666 97.1541120222888 0
+973 96.95240158969928 62.76540871387771 0
+974 45.17954282866977 21.50008631651496 0
+975 7.588676613243244 41.63516569450237 0
+976 44.76450292919003 89.27496239687704 0
+977 79.55990779699908 95.10378712286102 0
+978 29.07623838235791 57.46839838264908 0
+979 92.68450498439638 80.54891203990731 0
+980 56.58869687120697 33.78135145592582 0
+981 54.41260323985357 41.6611867065107 0
+982 39.86643387102838 61.88081597108103 0
+983 56.68827043229305 91.58104138232216 0
+984 95.94191442389366 43.2607915293183 0
+985 44.73342024821238 62.00736722373552 0
+986 37.98387281454819 26.34336455222909 0
+987 9.764284862609717 7.993088400888283 0
+988 38.63838884889773 98.17566996747802 0
+989 28.12542478335209 88.56679663276431 0
+990 73.80152371508801 14.06392383921335 0
+991 88.83032481768826 78.45379377605411 0
+992 49.75167291748235 20.7547115971688 0
+993 52.02029423362366 3.303107515395014 0
+994 37.6061612048564 48.59105367551664 0
+995 26.831224596285 67.82035046130792 0
+996 46.14090800176868 17.81365206871241 0
+997 86.42125756773902 17.9266883193902 0
+998 96.34223624994881 7.743055278194626 0
+999 88.4671923749689 93.29586305632054 0
+1000 57.23309150625356 50.87981402615488 0
+1001 73.29711813151654 73.04174346859122 0
+1002 15.90113671504297 86.37178072061211 0
+1003 9.818442680145136 37.45780265498403 0
+1004 70.28243710751022 89.04027825221598 0
+1005 45.47735314638966 85.39022063142286 0
+1006 26.98614939736196 52.20627542246211 0
+1007 65.21847740789192 77.78688139161157 0
+1008 85.6761123482716 85.80340916146945 0
+1009 43.43911629338785 68.19309723761049 0
+1010 54.42309423837577 77.19928089702788 0
+1011 45.68945609981869 64.70258633167603 0
+1012 42.00258901504925 97.69247076408008 0
+1013 15.22006431629637 24.56796970281535 0
+1014 3.348969383007506 87.34810816693027 0
+1015 29.81265473011634 47.64952186599146 0
+1016 87.00564928944323 25.66113889382825 0
+1017 56.11847951113897 43.5523362688846 0
+1018 74.52023844464044 87.3346598966023 0
+1019 90.76683688903677 72.93996677005833 0
+1020 68.11130853863116 3.637033050594307 0
+1021 54.00874258268998 63.28896786572932 0
+1022 52.35042669270533 46.17801288031319 0
+1023 55.91672440117809 97.69937308191005 0
+1024 18.54025070212666 61.76606328539574 0
+1025 23.82763422869527 25.3439282229632 0
+1026 86.33890899021333 34.06681055071896 0
+1027 22.51014931076771 20.53488896519003 0
+1028 62.97653982897474 54.11420694382329 0
+1029 69.01797508701792 75.61713758206132 0
+1030 3.631167735931273 67.36286366240961 0
+1031 8.177729403782509 76.33263713564449 0
+1032 15.25009604949806 58.09132320210534 0
+1033 97.01407978438331 22.97965085210082 0
+1034 30.8106981528695 54.75330207292369 0
+1035 26.33096357608212 11.41933022093269 0
+1036 16.92353101445838 20.39479197899531 0
+1037 92.15982424695956 90.13476253293929 0
+1038 56.31136858049198 72.82660375070172 0
+1039 26.6595640027258 61.92760257082593 0
+1040 59.27834260956715 40.37475999433755 0
+1041 86.20013875771647 9.271865034724996 0
+1042 6.921696833627507 31.66727238643538 0
+1043 5.090750965139106 29.87605040892592 0
+1044 69.2382045464055 10.1881114941278 0
+1045 81.37608692665829 84.65536247420461 0
+1046 20.63301422180607 13.18400304035509 0
+1047 43.92009335895519 94.25063023276888 0
+1048 89.05038987396918 24.16957218229809 0
+1049 50.85147497013374 41.12241057311691 0
+1050 43.29867610549996 36.95718009334992 0
+1051 34.40677357449194 8.077044348410857 0
+1052 3.275212732970728 18.87139359993165 0
+1053 63.16004415715526 74.35385545229093 0
+1054 54.95178010687385 14.46552845787951 0
+1055 20.58087958984776 18.95811442478579 0
+1056 23.52945424635394 64.63689408747427 0
+1057 21.69744619591972 26.33160336394303 0
+1058 44.61633566985911 13.89286874762877 0
+1059 17.16665314795059 64.23444677958383 0
+1060 66.11312223605711 85.14135519184141 0
+1061 42.67854084341619 45.3388432638375 0
+1062 18.46497972437344 25.79432714477195 0
+1063 32.49025080906448 90.84105920366153 0
+1064 54.30485962043623 67.8488093708897 0
+1065 57.51046720232064 38.43136178019628 0
+1066 15.59860655142847 22.09863747142372 0
+1067 59.03950683113757 97.97238112716437 0
+1068 15.2573989256668 7.691333763223627 0
+1069 4.493676572165319 5.452138878047492 0
+1070 74.87909171044475 82.83343748796986 0
+1071 35.56132106095631 38.17311869971106 0
+1072 96.28616471093854 75.66236526237593 0
+1073 35.24013564276139 76.56304644451751 0
+1074 57.42089011124209 47.87713107734533 0
+1075 79.77767777284784 65.87159717368608 0
+1076 97.73762463648049 82.45380368215382 0
+1077 68.91527410812856 61.92716956997957 0
+1078 41.45616506362155 86.36524222891394 0
+1079 17.59972163637278 68.93369037661492 0
+1080 70.25315766818527 57.74690283847551 0
+1081 57.87593607409707 70.71881638251517 0
+1082 59.38360962309055 95.48011255145664 0
+1083 19.64339511288346 29.26960867369905 0
+1084 8.315872361404178 70.5948344851016 0
+1085 13.78979790343272 12.07925103638464 0
+1086 37.38809622532606 84.24284522809376 0
+1087 82.05452608819054 82.75707050794487 0
+1088 80.55230603620026 54.32498219617554 0
+1089 67.2439532725931 68.15145607153619 0
+1090 67.39540961821152 57.28436836794377 0
+1091 83.81098897023419 25.5751498019416 0
+1092 14.60036703584439 48.21860377881825 0
+1093 10.84057753957007 96.9752517158923 0
+1094 66.82668743227337 97.66426250902386 0
+1095 23.66170850882495 93.68807956155777 0
+1096 22.95272636470851 59.70016457430837 0
+1097 91.10462000375195 76.02628198827335 0
+1098 64.68290505488348 22.51486574481634 0
+1099 52.79240467207533 37.47717611931422 0
+1100 26.55579919279014 37.93458423773853 0
+1101 21.53470602094486 62.6561079034482 0
+1102 68.61592487692681 46.06249351295367 0
+1103 19.29969783370011 3.179481318959584 0
+1104 33.5432480646285 50.18947339488422 0
+1105 72.9928690632366 49.03914361078121 0
+1106 37.88099575892544 42.97802336357122 0
+1107 65.6139005562742 18.43767397958922 0
+1108 19.48810120345174 39.27751763919067 0
+1109 63.35352695565883 82.4831613105809 0
+1110 34.42994017456329 23.1577208558504 0
+1111 17.57714054862873 17.14012448326527 0
+1112 12.09983943217461 67.49940649004624 0
+1113 84.50198448320123 65.57952091968181 0
+1114 65.63862212321482 33.26314069922455 0
+1115 58.58161052025056 86.01114696616875 0
+1116 61.17136764297034 77.34424545091635 0
+1117 43.39658450306249 28.54832709223901 0
+1118 26.09685910501657 77.71162205349992 0
+1119 65.64903938016013 74.08233919408181 0
+1120 44.91819511452422 56.92830385544192 0
+1121 84.77060422019377 68.61588448761006 0
+1122 77.82560287315329 7.943275077588963 0
+1123 19.37523235565863 88.51580474365535 0
+1124 53.79639856754616 83.50454518769821 0
+1125 60.72326342994788 57.84732145772814 0
+1126 32.44486586617823 97.78703908583454 0
+1127 81.73557397057486 22.1927719711188 0
+1128 30.27084809593365 24.8991359419047 0
+1129 85.1756106774763 51.76471813894475 0
+1130 61.64185883474272 21.94095567643361 0
+1131 77.88670531500142 70.49613719441548 0
+1132 36.25044421987973 89.25883144265896 0
+1133 6.43596724133498 34.11399057824701 0
+1134 82.37488604656828 2.68152668792628 0
+1135 5.015400279002674 25.27756541591202 0
+1136 23.02615260987721 8.5291654295527 0
+1137 51.44890329681038 16.84166968299921 0
+1138 69.66707395769102 84.14235309190511 0
+1139 3.084930709179465 29.1792427351171 0
+1140 2.662757293369945 26.5185427496388 0
+1141 39.55666669164035 14.33380685109679 0
+1142 85.13272237009834 22.53336898092871 0
+1143 25.20955540883572 31.43604351196353 0
+1144 29.52768945397729 32.44984708757748 0
+1145 48.71287680854822 67.84435602222314 0
+1146 15.30303951255056 93.69444750292581 0
+1147 55.86444886485714 61.50268121880856 0
+1148 71.48802582897333 93.03636142011632 0
+1149 8.470998517546771 17.00237656896439 0
+1150 24.37262992954228 16.46606245434792 0
+1151 27.27092747843748 97.1277994002152 0
+1152 44.39561877002252 50.22846953759117 0
+1153 73.86090853880502 8.906072285894862 0
+1154 76.57351985785529 78.97060842940422 0
+1155 46.13194630055315 97.64886014153649 0
+1156 51.47883796431794 25.11141389726656 0
+1157 32.04300423329049 87.11624476473968 0
+1158 81.51424147700352 35.55408679595103 0
+1159 72.73746084929327 40.71246285192078 0
+1160 72.54392924669483 51.73335077095274 0
+1161 21.31899266667553 89.13503696735818 0
+1162 59.62954715807744 80.89272325870976 0
+1163 10.23791619417342 59.56060177793528 0
+1164 39.90771056618345 95.84914568752603 0
+1165 76.87691096618327 3.048459730943588 0
+1166 88.78937491608008 83.40328475368212 0
+1167 14.53504864073048 78.99972981209383 0
+1168 27.80162207498815 28.7916641755204 0
+1169 96.93506298046287 96.7051978337723 0
+1170 94.02062886529015 22.30086890334884 0
+1171 86.47162328049995 36.98191005544844 0
+1172 12.53000147807013 23.03320345936621 0
+1173 63.86444653941844 66.91587459364655 0
+1174 96.59158368661143 3.529173561341637 0
+1175 56.30349588525613 82.79632129951766 0
+1176 64.72379546464727 11.14952385489467 0
+1177 10.43079867080201 81.17021410933384 0
+1178 33.66538830881567 72.2782758290605 0
+1179 25.00256393309125 55.50613103048328 0
+1180 16.08312752562849 31.38211492023376 0
+1181 27.82255410502093 14.12005910781629 0
+1182 65.68165125913866 29.54106448477174 0
+1183 2.764237266889268 47.70140574311237 0
+1184 52.823058558329 81.085438811259 0
+1185 68.03224987596104 90.8444292253991 0
+1186 69.58385899182547 31.21106412061679 0
+1187 79.76843156632668 79.05871975632381 0
+1188 45.32498296797725 6.144647372069135 0
+1189 52.99982643229174 54.43520370672601 0
+1190 67.53477591746542 54.09398161838004 0
+1191 60.53002834520289 60.7493199134793 0
+1192 18.14994573932871 83.13353306930478 0
+1193 59.87533303951406 71.6050683841775 0
+1194 54.08075980598854 51.05505350346782 0
+1195 24.61550677695256 20.39365227359885 0
+1196 19.27125740387583 21.9027482532976 0
+1197 58.98017178360094 68.13986889282444 0
+1198 97.6004555293847 87.61072797487384 0
+1199 29.61648709858887 71.83770083264866 0
+1200 97.20422028566398 78.75862095804528 0
+1201 70.81513495511808 69.88730159207185 0
+1202 28.57867224892907 34.72610578134909 0
+1203 16.04790243584031 73.12650036160791 0
+1204 83.70764647553689 58.47112145267001 0
+1205 47.32340717774179 92.47437048973426 0
+1206 90.14518289470792 17.3191208056319 0
+1207 44.99367010382736 69.98620993111395 0
+1208 48.39269144534342 44.30411166148404 0
+1209 38.90734014154727 95.65922392188192 0
+1210 74.78366462892316 98.02354165463311 0
+1211 14.84339288692297 40.28336371293719 0
+1212 79.82817289693078 27.74677348636977 0
+1213 40.91623127724628 83.98021129907005 0
+1214 21.30923428678008 84.73754016031234 0
+1215 82.90635509262827 8.198712953752274 0
+1216 19.3112979610427 18.61811642675159 0
+1217 8.296231592602769 54.90127605404431 0
+1218 10.54286681181124 78.48272811121211 0
+1219 17.91456319199117 76.67392200929626 0
+1220 65.05022145721185 64.26378571606406 0
+1221 63.523328518099 29.29576917503305 0
+1222 2.390956074465213 42.08062825490809 0
+1223 31.25062193496701 16.42486393066437 0
+1224 45.85915446157735 29.57860946037279 0
+1225 48.27097627203177 72.13996752472306 0
+1226 22.57006101902149 32.42403525485393 0
+1227 77.72277101073743 85.36387482474321 0
+1228 81.95871897859209 64.72086145101088 0
+1229 91.25508276545352 48.38443023698381 0
+1230 16.49278951412086 82.74583744882848 0
+1231 55.63967156631988 95.47734878597097 0
+1232 60.77364283971845 35.43859312439935 0
+1233 62.89133837857954 39.02182670238227 0
+1234 10.69072274268829 15.90965894743347 0
+1235 9.495315025890729 65.27576867634792 0
+1236 41.84011262153646 72.22654824411849 0
+1237 64.29150813745221 79.12790638289246 0
+1238 31.46977327443949 36.81654070808788 0
+1239 78.02770215137427 27.25111026666789 0
+1240 11.82622607911927 40.3438403262009 0
+1241 79.73083859863739 50.97042574268679 0
+1242 34.79336053441816 32.62727527469293 0
+1243 58.50185413009626 3.155556456959128 0
+1244 12.881392515865 92.44230117663756 0
+1245 51.46868106337018 12.29981651005351 0
+1246 34.00212287579993 25.02534106393597 0
+1247 71.70486828161528 81.45919319304384 0
+1248 24.01827822695716 73.04043639287558 0
+1249 75.97337534301852 52.90909543177425 0
+1250 45.11562282244055 41.51780299514419 0
+1251 50.69530962409833 38.75192948629243 0
+1252 24.38920045902282 86.60326863179058 0
+1253 22.40048290495464 45.44358691334037 0
+1254 50.79288276689449 72.94923391635933 0
+1255 67.68001804094719 79.78745176383821 0
+1256 66.45393902259359 72.14404981922453 0
+1257 30.88369684894527 7.051486151547293 0
+1258 62.87996647054528 57.17751238740291 0
+1259 14.50995229099051 18.32793544504266 0
+1260 84.2627189674792 86.99176094666042 0
+1261 65.61823079909611 87.63237892454575 0
+1262 77.68520114147033 47.33709686858384 0
+1263 30.69944416070448 94.12977059690314 0
+1264 57.74569153979229 29.77644256291129 0
+1265 41.71986403688482 62.63892197428617 0
+1266 75.97524082752683 26.19247517482318 0
+1267 38.46959864551951 30.98609912595977 0
+1268 48.04779043377678 22.33687182498767 0
+1269 17.78166028253308 90.85146723570826 0
+1270 38.05972173379257 94.09533493031913 0
+1271 36.64035408371718 94.01604549976878 0
+1272 15.96167489343931 28.83961476836751 0
+1273 68.29245905946105 66.2480476327454 0
+1274 2.888788019772604 97.15056493677439 0
+1275 52.98806556948379 89.27253377580054 0
+1276 92.3317272221133 8.238103583601577 0
+1277 73.20132838275624 94.48735353333504 0
+1278 37.06685169752325 70.47800494584898 0
+1279 37.6206309691351 57.89616049708045 0
+1280 39.83005854502583 4.549904065351441 0
+1281 24.25259722915465 79.89774540093381 0
+1282 15.41482461818895 88.01231066836485 0
+1283 44.00968260688176 72.33396994961369 0
+1284 75.43121506786629 93.0617740310512 0
+1285 97.44102826165212 12.09286822072761 0
+1286 49.23937578031505 61.97275045347935 0
+1287 7.547912986974636 60.76166304529584 0
+1288 65.45531498595977 90.01467809319615 0
+1289 14.47776275560945 97.36585930083726 0
+1290 8.023324876842327 10.99451643738271 0
+1291 54.17566491895247 91.31664852811197 0
+1292 67.38754306346887 15.57590355019479 0
+1293 88.00176435903981 56.85787327768494 0
+1294 95.26803491826337 55.18866917622405 0
+1295 30.25403813658216 22.84117217939377 0
+1296 35.80788172433236 30.01584373566046 0
+1297 72.31899193548819 86.24310853905641 0
+1298 76.29605198948289 88.93061903511411 0
+1299 31.77381807132297 73.31807795341179 0
+1300 57.17863019723363 74.7218629417094 0
+1301 60.9482288708394 75.04224053651801 0
+1302 27.71867079663781 30.87136030883877 0
+1303 41.67092949034851 18.6293682827576 0
+1304 92.07362962355373 31.73373214005503 0
+1305 45.0919134515269 52.77079112773487 0
+1306 55.98030743034513 65.54843906265893 0
+1307 11.73126308184649 45.39296344524693 0
+1308 63.50263053162637 70.73982031080926 0
+1309 57.69152757099283 78.09632472473163 0
+1310 68.5423264213801 83.09126154025738 0
+1311 20.32218582264975 25.04496698400195 0
+1312 36.77424656058388 91.18958920427313 0
+1313 79.52234157513951 90.60308011345822 0
+1314 42.51792073678202 32.59903471262515 0
+1315 76.41092131531934 81.47104309783984 0
+1316 71.18681122009544 17.97508644645447 0
+1317 39.8896519918363 59.47668807370303 0
+1318 51.89425944028977 61.24721635692995 0
+1319 31.3313377664442 11.75611724728047 0
+1320 12.25900581540341 30.91868568155539 0
+1321 82.02072320217538 30.10795017352015 0
+1322 73.59704075777174 61.45684981006727 0
+1323 81.97138607795897 48.2202540495492 0
+1324 42.46287837303197 42.51480263411045 0
+1325 31.60118950330268 28.88952310637944 0
+1326 35.36428582126707 86.00836766276566 0
+1327 3.004438273206628 73.26661296533338 0
+1328 32.43207253027178 2.602705200077474 0
+1329 61.97863198264095 49.81387258157177 0
+1330 60.74257043931944 91.61231520002514 0
+1331 71.08824458631928 55.64424059507479 0
+1332 55.46068802789068 26.32477492253609 0
+1333 90.49937520566669 61.37951229346186 0
+1334 42.27369353301818 49.40499005490387 0
+1335 60.93785685947822 68.42753252581176 0
+1336 27.0875276674493 44.47719791052126 0
+1337 28.46010696484497 79.43396673511575 0
+1338 17.95143707496396 22.95152098069332 0
+1339 28.16058005996383 84.80150878482766 0
+1340 67.8593652196331 22.96788115847866 0
+1341 59.04484990886926 55.12538320403684 0
+1342 50.19993212021182 75.70097743421039 0
+1343 80.38712573662798 97.69142377866487 0
+1344 75.73256305857197 85.23093999216714 0
+1345 49.6107436886539 86.88978681860559 0
+1346 17.46587551076625 24.46091345308193 0
+1347 35.51141185212548 92.77614577710716 0
+1348 2.749942261108967 83.36879888821861 0
+1349 85.81636425413132 45.84148632077492 0
+1350 51.83353891143317 65.22743737593404 0
+1351 80.39522583399015 39.84081510991804 0
+1352 40.62923037795869 52.60205869946871 0
+1353 84.2487671821473 91.69460068630376 0
+1354 74.20276431541342 69.25637078341759 0
+1355 52.35180679230233 42.24168032606894 0
+1356 80.91970331722344 26.78379420445451 0
+1357 35.87000964813477 79.19817292766668 0
+1358 57.27137433613717 94.13727978978581 0
+1359 10.70707893173223 25.85226172709532 0
+1360 12.85033304517357 75.10096743097911 0
+1361 46.67698976047736 10.31058004717195 0
+1362 97.46042125889895 27.38506891943917 0
+1363 3.28628792411589 9.613150896493268 0
+1364 19.73088098477555 14.92432150841766 0
+1365 33.15502171838305 19.29299866099445 0
+1366 54.59318467937354 79.78325829049882 0
+1367 60.61972334997706 84.54003414361095 0
+1368 50.03372623026465 57.77989989876031 0
+1369 22.90789196158661 52.2254320734485 0
+1370 37.52731695863228 50.63504878462514 0
+1371 26.7666464119668 20.06382346919887 0
+1372 28.56541575704203 65.69697493155783 0
+1373 14.74131541962234 85.25749503637655 0
+1374 33.34623296348982 58.11586315832857 0
+1375 43.90293958307322 66.34966369291035 0
+1376 87.24378678603067 6.867144649968223 0
+1377 46.12833176906293 80.08492781228065 0
+1378 22.7757940130803 39.03912239879512 0
+1379 81.18181182247878 93.68947853507787 0
+1380 37.37738687772971 33.64332314332892 0
+1381 41.20456537641598 35.36808936444139 0
+1382 19.33385961289233 81.28334308488297 0
+1383 70.90068532748565 98.21765077542453 0
+1384 62.80638008153428 42.64823671656074 0
+1385 78.27814014920402 87.41102274169668 0
+1386 34.98492890652388 48.03202804491083 0
+1387 30.15665969186873 69.78614612528111 0
+1388 2.944807199788048 91.28913985038174 0
+1389 29.80743635586207 90.14120582100936 0
+1390 66.28834523686749 51.47297261460088 0
+1391 83.03897020356106 29.04790145168515 0
+1392 92.54890056827679 50.89751962419979 0
+1393 35.67037081268855 12.28752048067938 0
+1394 73.24854474279471 80.8779612706403 0
+1395 7.09054430109423 87.5486400806538 0
+1396 45.11876099999331 25.35781440860674 0
+1397 41.23402552720085 69.78279222511131 0
+1398 14.61140789549335 44.33214278498353 0
+1399 51.22783274369824 9.869840615822273 0
+1400 22.20329055135613 82.89044470523152 0
+1401 97.413260051496 31.94476873777054 0
+1402 58.67855933900253 63.72019972953022 0
+1403 12.15041587236642 86.55384061501579 0
+1404 92.74423384474315 12.74210414459493 0
+1405 86.15927358132923 15.49721083902772 0
+1406 81.35851968295029 62.35520374040295 0
+$EndNodes
+$Elements
+2871
+1 1 2 1 6 5 112
+2 1 2 1 6 112 113
+3 1 2 1 6 113 114
+4 1 2 1 6 114 115
+5 1 2 1 6 115 116
+6 1 2 1 6 116 117
+7 1 2 1 6 117 118
+8 1 2 1 6 118 23
+9 1 2 1 7 7 119
+10 1 2 1 7 119 120
+11 1 2 1 7 120 121
+12 1 2 1 7 121 122
+13 1 2 1 7 122 23
+14 1 2 2 8 9 123
+15 1 2 2 8 123 124
+16 1 2 2 8 124 125
+17 1 2 2 8 125 126
+18 1 2 2 8 126 127
+19 1 2 2 8 127 128
+20 1 2 2 8 128 129
+21 1 2 2 8 129 130
+22 1 2 2 8 130 131
+23 1 2 2 8 131 132
+24 1 2 2 8 132 133
+25 1 2 2 8 133 134
+26 1 2 2 8 134 135
+27 1 2 2 8 135 136
+28 1 2 2 8 136 137
+29 1 2 2 8 137 138
+30 1 2 2 8 138 139
+31 1 2 2 8 139 140
+32 1 2 2 8 140 141
+33 1 2 2 8 141 142
+34 1 2 2 8 142 10
+35 1 2 1 9 11 143
+36 1 2 1 9 143 144
+37 1 2 1 9 144 24
+38 1 2 2 10 13 145
+39 1 2 2 10 145 26
+40 1 2 1 11 14 146
+41 1 2 1 11 146 147
+42 1 2 1 11 147 148
+43 1 2 1 11 148 149
+44 1 2 1 11 149 150
+45 1 2 1 11 150 28
+46 1 2 1 12 15 151
+47 1 2 1 12 151 152
+48 1 2 1 12 152 153
+49 1 2 1 12 153 154
+50 1 2 1 12 154 155
+51 1 2 1 12 155 156
+52 1 2 1 12 156 157
+53 1 2 1 12 157 27
+54 1 2 1 13 17 25
+55 1 2 1 14 19 158
+56 1 2 1 14 158 159
+57 1 2 1 14 159 160
+58 1 2 1 14 160 161
+59 1 2 1 14 161 162
+60 1 2 1 14 162 163
+61 1 2 1 14 163 164
+62 1 2 1 14 164 165
+63 1 2 1 14 165 20
+64 1 2 1 15 21 166
+65 1 2 1 15 166 24
+66 1 2 1 16 6 167
+67 1 2 1 16 167 168
+68 1 2 1 16 168 169
+69 1 2 1 16 169 170
+70 1 2 1 16 170 171
+71 1 2 1 16 171 23
+72 1 2 1 17 8 172
+73 1 2 1 17 172 173
+74 1 2 1 17 173 174
+75 1 2 1 17 174 23
+76 1 2 1 18 12 175
+77 1 2 1 18 175 176
+78 1 2 1 18 176 177
+79 1 2 1 18 177 178
+80 1 2 1 18 178 179
+81 1 2 1 18 179 180
+82 1 2 1 18 180 181
+83 1 2 1 18 181 182
+84 1 2 1 18 182 183
+85 1 2 1 18 183 184
+86 1 2 1 18 184 185
+87 1 2 1 18 185 186
+88 1 2 1 18 186 187
+89 1 2 1 18 187 24
+90 1 2 1 19 24 188
+91 1 2 1 19 188 189
+92 1 2 1 19 189 190
+93 1 2 1 19 190 191
+94 1 2 1 19 191 192
+95 1 2 1 19 192 193
+96 1 2 1 19 193 194
+97 1 2 1 19 194 25
+98 1 2 1 20 26 195
+99 1 2 1 20 195 196
+100 1 2 1 20 196 197
+101 1 2 1 20 197 198
+102 1 2 1 20 198 199
+103 1 2 1 20 199 200
+104 1 2 1 20 200 201
+105 1 2 1 20 201 202
+106 1 2 1 20 202 203
+107 1 2 1 20 203 204
+108 1 2 1 20 204 205
+109 1 2 1 20 205 25
+110 1 2 1 21 22 206
+111 1 2 1 21 206 25
+112 1 2 2 22 27 207
+113 1 2 2 22 207 208
+114 1 2 2 22 208 209
+115 1 2 2 22 209 210
+116 1 2 2 22 210 211
+117 1 2 2 22 211 212
+118 1 2 2 22 212 213
+119 1 2 2 22 213 214
+120 1 2 2 22 214 215
+121 1 2 2 22 215 216
+122 1 2 2 22 216 217
+123 1 2 2 22 217 218
+124 1 2 2 22 218 219
+125 1 2 2 22 219 220
+126 1 2 2 22 220 221
+127 1 2 2 22 221 222
+128 1 2 2 22 222 223
+129 1 2 2 22 223 26
+130 1 2 1 23 18 224
+131 1 2 1 23 224 225
+132 1 2 1 23 225 226
+133 1 2 1 23 226 227
+134 1 2 1 23 227 228
+135 1 2 1 23 228 26
+136 1 2 2 24 27 229
+137 1 2 2 24 229 230
+138 1 2 2 24 230 231
+139 1 2 2 24 231 232
+140 1 2 2 24 232 28
+141 1 2 1 25 16 233
+142 1 2 1 25 233 27
+143 1 2 2 26 29 234
+144 1 2 2 26 234 235
+145 1 2 2 26 235 236
+146 1 2 2 26 236 237
+147 1 2 2 26 237 238
+148 1 2 2 26 238 13
+149 2 2 1 1 527 1073 630
+150 2 2 1 1 1073 286 630
+151 2 2 1 1 38 523 1188
+152 2 2 1 1 26 1255 145
+153 2 2 1 1 524 38 1188
+154 2 2 1 1 1107 302 633
+155 2 2 1 1 1315 679 460
+156 2 2 1 1 936 429 250
+157 2 2 1 1 111 30 1069
+158 2 2 1 1 506 703 933
+159 2 2 1 1 933 703 259
+160 2 2 1 1 610 887 115
+161 2 2 1 1 567 1394 1070
+162 2 2 1 1 810 1129 709
+163 2 2 1 1 598 679 1315
+164 2 2 1 1 574 1107 633
+165 2 2 1 1 1252 189 188
+166 2 2 1 1 1255 570 145
+167 2 2 1 1 1247 674 313
+168 2 2 1 1 1 30 111
+169 2 2 1 1 863 944 6
+170 2 2 1 1 117 118 1013
+171 2 2 1 1 381 686 616
+172 2 2 1 1 368 671 972
+173 2 2 1 1 342 446 962
+174 2 2 1 1 333 1178 466
+175 2 2 1 1 341 1204 620
+176 2 2 1 1 373 945 470
+177 2 2 1 1 271 675 788
+178 2 2 1 1 333 466 701
+179 2 2 1 1 350 477 721
+180 2 2 1 1 327 616 686
+181 2 2 1 1 320 1081 508
+182 2 2 1 1 420 788 675
+183 2 2 1 1 87 826 1151
+184 2 2 1 1 714 344 1131
+185 2 2 1 1 117 1172 118
+186 2 2 1 1 26 145 195
+187 2 2 1 1 397 859 656
+188 2 2 1 1 321 1038 484
+189 2 2 1 1 361 1032 512
+190 2 2 1 1 371 1004 509
+191 2 2 1 1 321 484 631
+192 2 2 1 1 217 1077 544
+193 2 2 1 1 319 757 469
+194 2 2 1 1 225 1001 714
+195 2 2 1 1 79 80 542
+196 2 2 1 1 247 894 860
+197 2 2 1 1 656 859 1267
+198 2 2 1 1 251 686 657
+199 2 2 1 1 381 657 686
+200 2 2 1 1 251 504 686
+201 2 2 1 1 491 805 1071
+202 2 2 1 1 768 314 854
+203 2 2 1 1 251 657 595
+204 2 2 1 1 338 515 784
+205 2 2 1 1 433 1121 556
+206 2 2 1 1 167 1136 716
+207 2 2 1 1 255 631 611
+208 2 2 1 1 57 58 472
+209 2 2 1 1 357 596 697
+210 2 2 1 1 433 556 827
+211 2 2 1 1 124 526 1024
+212 2 2 1 1 173 174 1111
+213 2 2 1 1 250 429 897
+214 2 2 1 1 263 810 709
+215 2 2 1 1 323 469 1025
+216 2 2 1 1 463 1066 1036
+217 2 2 1 1 148 149 515
+218 2 2 1 1 155 156 548
+219 2 2 1 1 227 1029 669
+220 2 2 1 1 375 527 630
+221 2 2 1 1 350 916 477
+222 2 2 1 1 371 509 850
+223 2 2 1 1 344 813 621
+224 2 2 1 1 272 697 596
+225 2 2 1 1 115 887 116
+226 2 2 1 1 248 501 891
+227 2 2 1 1 279 659 763
+228 2 2 1 1 351 1071 805
+229 2 2 1 1 217 218 1077
+230 2 2 1 1 343 1026 715
+231 2 2 1 1 179 559 180
+232 2 2 1 1 321 508 1038
+233 2 2 1 1 210 1351 211
+234 2 2 1 1 208 209 548
+235 2 2 1 1 320 1197 1081
+236 2 2 1 1 414 763 659
+237 2 2 1 1 297 747 556
+238 2 2 1 1 314 685 516
+239 2 2 1 1 1305 594 719
+240 2 2 1 1 343 715 528
+241 2 2 1 1 340 788 964
+242 2 2 1 1 341 617 1204
+243 2 2 1 1 366 448 706
+244 2 2 1 1 168 169 586
+245 2 2 1 1 149 948 515
+246 2 2 1 1 185 186 554
+247 2 2 1 1 359 486 912
+248 2 2 1 1 328 594 597
+249 2 2 1 1 257 827 556
+250 2 2 1 1 451 904 663
+251 2 2 1 1 256 663 904
+252 2 2 1 1 326 597 594
+253 2 2 1 1 70 972 671
+254 2 2 1 1 237 537 238
+255 2 2 1 1 46 717 468
+256 2 2 1 1 9 588 909
+257 2 2 1 1 507 895 718
+258 2 2 1 1 1398 521 1307
+259 2 2 1 1 370 699 876
+260 2 2 1 1 152 153 541
+261 2 2 1 1 52 543 851
+262 2 2 1 1 35 753 585
+263 2 2 1 1 248 1304 501
+264 2 2 1 1 211 212 540
+265 2 2 1 1 463 568 1066
+266 2 2 1 1 162 163 581
+267 2 2 1 1 699 956 876
+268 2 2 1 1 141 662 142
+269 2 2 1 1 330 783 971
+270 2 2 1 1 123 909 1032
+271 2 2 1 1 344 621 1131
+272 2 2 1 1 431 1151 826
+273 2 2 1 1 318 478 1035
+274 2 2 1 1 27 1356 229
+275 2 2 1 1 467 574 1176
+276 2 2 1 1 180 559 701
+277 2 2 1 1 201 1275 507
+278 2 2 1 1 606 1398 1307
+279 2 2 1 1 342 694 446
+280 2 2 1 1 579 1252 188
+281 2 2 1 1 167 716 168
+282 2 2 1 1 361 862 1032
+283 2 2 1 1 279 477 916
+284 2 2 1 1 595 657 966
+285 2 2 1 1 281 912 486
+286 2 2 1 1 567 674 1247
+287 2 2 1 1 323 828 469
+288 2 2 1 1 326 594 1305
+289 2 2 1 1 152 655 1114
+290 2 2 1 1 315 480 743
+291 2 2 1 1 515 948 1127
+292 2 2 1 1 227 870 228
+293 2 2 1 1 32 415 626
+294 2 2 1 1 400 538 711
+295 2 2 1 1 358 856 514
+296 2 2 1 1 324 1051 836
+297 2 2 1 1 250 1176 574
+298 2 2 1 1 330 693 1054
+299 2 2 1 1 227 525 870
+300 2 2 1 1 321 667 508
+301 2 2 1 1 332 742 457
+302 2 2 1 1 348 606 1307
+303 2 2 1 1 186 869 554
+304 2 2 1 1 18 621 907
+305 2 2 1 1 281 1211 504
+306 2 2 1 1 109 1363 819
+307 2 2 1 1 359 845 486
+308 2 2 1 1 373 990 603
+309 2 2 1 1 323 539 855
+310 2 2 1 1 261 479 1375
+311 2 2 1 1 330 1054 936
+312 2 2 1 1 476 864 1000
+313 2 2 1 1 26 228 1255
+314 2 2 1 1 281 486 901
+315 2 2 1 1 25 194 1271
+316 2 2 1 1 352 718 895
+317 2 2 1 1 194 25 17
+318 2 2 1 1 328 653 594
+319 2 2 1 1 1224 360 482
+320 2 2 1 1 203 204 565
+321 2 2 1 1 261 795 479
+322 2 2 1 1 482 360 902
+323 2 2 1 1 224 225 714
+324 2 2 1 1 314 822 685
+325 2 2 1 1 330 971 673
+326 2 2 1 1 178 628 867
+327 2 2 1 1 322 571 1063
+328 2 2 1 1 251 595 727
+329 2 2 1 1 378 920 530
+330 2 2 1 1 319 469 690
+331 2 2 1 1 307 601 536
+332 2 2 1 1 499 1081 1197
+333 2 2 1 1 290 481 618
+334 2 2 1 1 418 1198 650
+335 2 2 1 1 141 1141 662
+336 2 2 1 1 306 604 1061
+337 2 2 1 1 458 1061 604
+338 2 2 1 1 162 581 713
+339 2 2 1 1 259 494 933
+340 2 2 1 1 151 655 152
+341 2 2 1 1 533 768 854
+342 2 2 1 1 590 155 1186
+343 2 2 1 1 617 1293 1204
+344 2 2 1 1 318 1035 503
+345 2 2 1 1 631 1342 1254
+346 2 2 1 1 1394 316 1070
+347 2 2 1 1 279 965 477
+348 2 2 1 1 216 643 217
+349 2 2 1 1 331 535 677
+350 2 2 1 1 114 616 1003
+351 2 2 1 1 156 848 548
+352 2 2 1 1 521 901 1092
+353 2 2 1 1 370 808 491
+354 2 2 1 1 123 124 1024
+355 2 2 1 1 333 559 641
+356 2 2 1 1 495 931 624
+357 2 2 1 1 23 122 873
+358 2 2 1 1 262 679 598
+359 2 2 1 1 334 578 730
+360 2 2 1 1 363 556 747
+361 2 2 1 1 370 491 832
+362 2 2 1 1 226 227 669
+363 2 2 1 1 297 556 1121
+364 2 2 1 1 208 548 848
+365 2 2 1 1 384 641 559
+366 2 2 1 1 449 1235 576
+367 2 2 1 1 321 631 1254
+368 2 2 1 1 239 667 529
+369 2 2 1 1 112 1003 572
+370 2 2 1 1 155 154 1186
+371 2 2 1 1 345 712 608
+372 2 2 1 1 201 507 718
+373 2 2 1 1 411 520 995
+374 2 2 1 1 250 574 633
+375 2 2 1 1 177 628 178
+376 2 2 1 1 259 872 494
+377 2 2 1 1 346 842 544
+378 2 2 1 1 334 645 578
+379 2 2 1 1 672 1052 109
+380 2 2 1 1 377 578 645
+381 2 2 1 1 652 1173 1089
+382 2 2 1 1 251 1108 504
+383 2 2 1 1 272 980 852
+384 2 2 1 1 18 599 224
+385 2 2 1 1 262 608 731
+386 2 2 1 1 621 813 1075
+387 2 2 1 1 252 644 558
+388 2 2 1 1 367 1086 506
+389 2 2 1 1 331 767 535
+390 2 2 1 1 195 689 1237
+391 2 2 1 1 373 802 945
+392 2 2 1 1 429 939 897
+393 2 2 1 1 217 643 1322
+394 2 2 1 1 57 472 984
+395 2 2 1 1 328 597 660
+396 2 2 1 1 319 1325 563
+397 2 2 1 1 410 1097 589
+398 2 2 1 1 170 171 781
+399 2 2 1 1 495 1342 931
+400 2 2 1 1 390 590 683
+401 2 2 1 1 411 1056 520
+402 2 2 1 1 284 520 1056
+403 2 2 1 1 329 817 523
+404 2 2 1 1 77 234 642
+405 2 2 1 1 47 48 552
+406 2 2 1 1 417 886 1013
+407 2 2 1 1 113 114 1003
+408 2 2 1 1 278 695 607
+409 2 2 1 1 476 1329 864
+410 2 2 1 1 80 952 542
+411 2 2 1 1 246 674 567
+412 2 2 1 1 495 624 1225
+413 2 2 1 1 521 1398 901
+414 2 2 1 1 56 984 748
+415 2 2 1 1 1106 268 722
+416 2 2 1 1 323 1025 539
+417 2 2 1 1 331 1252 579
+418 2 2 1 1 143 144 1269
+419 2 2 1 1 538 1106 722
+420 2 2 1 1 322 1063 649
+421 2 2 1 1 222 669 1029
+422 2 2 1 1 1179 497 280
+423 2 2 1 1 321 1254 667
+424 2 2 1 1 497 1006 280
+425 2 2 1 1 301 576 1235
+426 2 2 1 1 332 868 587
+427 2 2 1 1 725 1194 1000
+428 2 2 1 1 1308 582 911
+429 2 2 1 1 87 88 826
+430 2 2 1 1 195 196 689
+431 2 2 1 1 100 740 878
+432 2 2 1 1 291 514 1005
+433 2 2 1 1 333 701 559
+434 2 2 1 1 487 624 888
+435 2 2 1 1 331 646 1252
+436 2 2 1 1 211 540 702
+437 2 2 1 1 396 722 761
+438 2 2 1 1 47 552 717
+439 2 2 1 1 573 771 1323
+440 2 2 1 1 332 587 1351
+441 2 2 1 1 275 1190 1090
+442 2 2 1 1 393 622 774
+443 2 2 1 1 153 707 541
+444 2 2 1 1 488 860 894
+445 2 2 1 1 249 614 511
+446 2 2 1 1 429 658 939
+447 2 2 1 1 332 457 1171
+448 2 2 1 1 487 1283 624
+449 2 2 1 1 448 1234 600
+450 2 2 1 1 361 512 961
+451 2 2 1 1 1351 587 211
+452 2 2 1 1 503 1035 716
+453 2 2 1 1 393 748 984
+454 2 2 1 1 16 1016 685
+455 2 2 1 1 407 1181 635
+456 2 2 1 1 301 1112 488
+457 2 2 1 1 1323 771 347
+458 2 2 1 1 298 1225 624
+459 2 2 1 1 467 1044 766
+460 2 2 1 1 367 506 933
+461 2 2 1 1 281 504 912
+462 2 2 1 1 338 784 577
+463 2 2 1 1 265 603 990
+464 2 2 1 1 415 1068 626
+465 2 2 1 1 144 1123 1269
+466 2 2 1 1 139 637 140
+467 2 2 1 1 455 759 890
+468 2 2 1 1 138 1110 546
+469 2 2 1 1 529 667 1254
+470 2 2 1 1 394 599 691
+471 2 2 1 1 312 543 833
+472 2 2 1 1 595 954 727
+473 2 2 1 1 364 749 825
+474 2 2 1 1 318 780 478
+475 2 2 1 1 100 878 576
+476 2 2 1 1 303 626 1068
+477 2 2 1 1 24 1002 166
+478 2 2 1 1 323 855 1027
+479 2 2 1 1 355 1293 490
+480 2 2 1 1 396 566 722
+481 2 2 1 1 253 594 653
+482 2 2 1 1 749 1147 825
+483 2 2 1 1 666 917 1137
+484 2 2 1 1 307 536 1116
+485 2 2 1 1 1384 451 777
+486 2 2 1 1 313 570 870
+487 2 2 1 1 254 597 847
+488 2 2 1 1 185 554 721
+489 2 2 1 1 572 1003 1240
+490 2 2 1 1 305 547 692
+491 2 2 1 1 319 668 1325
+492 2 2 1 1 373 470 990
+493 2 2 1 1 320 508 1064
+494 2 2 1 1 273 428 791
+495 2 2 1 1 8 716 1035
+496 2 2 1 1 200 1275 201
+497 2 2 1 1 7 119 610
+498 2 2 1 1 254 847 604
+499 2 2 1 1 117 1013 886
+500 2 2 1 1 478 635 1181
+501 2 2 1 1 285 813 489
+502 2 2 1 1 203 565 976
+503 2 2 1 1 161 162 713
+504 2 2 1 1 96 623 752
+505 2 2 1 1 254 660 597
+506 2 2 1 1 511 620 1204
+507 2 2 1 1 291 696 812
+508 2 2 1 1 372 575 913
+509 2 2 1 1 374 890 759
+510 2 2 1 1 265 766 1044
+511 2 2 1 1 611 631 1010
+512 2 2 1 1 316 1315 1070
+513 2 2 1 1 332 1351 742
+514 2 2 1 1 20 979 589
+515 2 2 1 1 244 562 902
+516 2 2 1 1 420 964 788
+517 2 2 1 1 490 1293 617
+518 2 2 1 1 382 1115 537
+519 2 2 1 1 343 685 822
+520 2 2 1 1 989 403 1389
+521 2 2 1 1 9 909 123
+522 2 2 1 1 255 545 931
+523 2 2 1 1 142 662 821
+524 2 2 1 1 99 100 576
+525 2 2 1 1 358 514 921
+526 2 2 1 1 447 1041 737
+527 2 2 1 1 509 1004 1185
+528 2 2 1 1 430 1000 1194
+529 2 2 1 1 441 582 1308
+530 2 2 1 1 1240 1003 327
+531 2 2 1 1 171 1259 781
+532 2 2 1 1 34 35 585
+533 2 2 1 1 234 235 642
+534 2 2 1 1 229 233 27
+535 2 2 1 1 338 843 515
+536 2 2 1 1 76 77 642
+537 2 2 1 1 291 921 514
+538 2 2 1 1 237 900 537
+539 2 2 1 1 1294 733 355
+540 2 2 1 1 366 706 818
+541 2 2 1 1 245 1301 564
+542 2 2 1 1 131 773 1100
+543 2 2 1 1 663 750 1329
+544 2 2 1 1 290 955 654
+545 2 2 1 1 225 639 226
+546 2 2 1 1 243 785 527
+547 2 2 1 1 32 1103 415
+548 2 2 1 1 337 1166 605
+549 2 2 1 1 337 640 1166
+550 2 2 1 1 627 1384 777
+551 2 2 1 1 101 883 740
+552 2 2 1 1 189 190 618
+553 2 2 1 1 124 837 526
+554 2 2 1 1 125 602 126
+555 2 2 1 1 275 647 1190
+556 2 2 1 1 305 1143 547
+557 2 2 1 1 256 750 663
+558 2 2 1 1 422 812 696
+559 2 2 1 1 333 630 1178
+560 2 2 1 1 149 612 150
+561 2 2 1 1 462 1089 1173
+562 2 2 1 1 290 654 481
+563 2 2 1 1 379 903 555
+564 2 2 1 1 335 924 1365
+565 2 2 1 1 418 650 1037
+566 2 2 1 1 310 1037 650
+567 2 2 1 1 281 606 1211
+568 2 2 1 1 245 582 1301
+569 2 2 1 1 1389 403 649
+570 2 2 1 1 268 761 722
+571 2 2 1 1 308 1173 652
+572 2 2 1 1 347 587 868
+573 2 2 1 1 382 537 900
+574 2 2 1 1 243 527 942
+575 2 2 1 1 112 113 1003
+576 2 2 1 1 371 493 1138
+577 2 2 1 1 225 935 639
+578 2 2 1 1 457 715 1026
+579 2 2 1 1 109 110 1363
+580 2 2 1 1 152 541 789
+581 2 2 1 1 249 511 1204
+582 2 2 1 1 262 691 608
+583 2 2 1 1 273 723 428
+584 2 2 1 1 340 683 590
+585 2 2 1 1 389 1264 596
+586 2 2 1 1 278 1403 695
+587 2 2 1 1 58 839 472
+588 2 2 1 1 275 1258 1028
+589 2 2 1 1 316 1394 926
+590 2 2 1 1 212 799 540
+591 2 2 1 1 319 563 1168
+592 2 2 1 1 169 782 586
+593 2 2 1 1 536 1237 689
+594 2 2 1 1 296 541 946
+595 2 2 1 1 128 688 1253
+596 2 2 1 1 252 558 1402
+597 2 2 1 1 380 623 1327
+598 2 2 1 1 318 503 944
+599 2 2 1 1 350 721 554
+600 2 2 1 1 454 714 1001
+601 2 2 1 1 86 498 1126
+602 2 2 1 1 322 703 1326
+603 2 2 1 1 250 633 936
+604 2 2 1 1 298 624 1283
+605 2 2 1 1 10 142 821
+606 2 2 1 1 391 600 1234
+607 2 2 1 1 375 942 527
+608 2 2 1 1 504 1211 686
+609 2 2 1 1 140 754 1303
+610 2 2 1 1 285 489 857
+611 2 2 1 1 510 724 1286
+612 2 2 1 1 55 748 501
+613 2 2 1 1 341 620 857
+614 2 2 1 1 59 60 638
+615 2 2 1 1 109 819 672
+616 2 2 1 1 409 1218 705
+617 2 2 1 1 384 867 628
+618 2 2 1 1 363 747 776
+619 2 2 1 1 401 565 1078
+620 2 2 1 1 435 1114 655
+621 2 2 1 1 361 728 720
+622 2 2 1 1 805 1242 351
+623 2 2 1 1 355 490 810
+624 2 2 1 1 207 1321 715
+625 2 2 1 1 284 1039 520
+626 2 2 1 1 1245 1054 267
+627 2 2 1 1 51 52 851
+628 2 2 1 1 345 691 599
+629 2 2 1 1 345 827 712
+630 2 2 1 1 205 1270 806
+631 2 2 1 1 442 907 621
+632 2 2 1 1 293 530 996
+633 2 2 1 1 558 922 1402
+634 2 2 1 1 498 794 1126
+635 2 2 1 1 260 720 728
+636 2 2 1 1 351 1242 1380
+637 2 2 1 1 352 583 1205
+638 2 2 1 1 387 888 624
+639 2 2 1 1 17 619 85
+640 2 2 1 1 127 688 128
+641 2 2 1 1 71 1343 518
+642 2 2 1 1 38 39 523
+643 2 2 1 1 316 926 639
+644 2 2 1 1 335 637 924
+645 2 2 1 1 471 654 955
+646 2 2 1 1 297 1113 614
+647 2 2 1 1 322 1157 703
+648 2 2 1 1 528 715 1321
+649 2 2 1 1 392 1027 855
+650 2 2 1 1 276 1015 876
+651 2 2 1 1 369 565 806
+652 2 2 1 1 380 1327 664
+653 2 2 1 1 503 716 1136
+654 2 2 1 1 309 1129 617
+655 2 2 1 1 96 97 623
+656 2 2 1 1 239 592 1064
+657 2 2 1 1 238 537 831
+658 2 2 1 1 638 733 1294
+659 2 2 1 1 397 698 760
+660 2 2 1 1 100 101 740
+661 2 2 1 1 558 1173 1335
+662 2 2 1 1 449 909 588
+663 2 2 1 1 511 614 1113
+664 2 2 1 1 378 530 974
+665 2 2 1 1 247 632 1360
+666 2 2 1 1 362 1333 638
+667 2 2 1 1 378 760 698
+668 2 2 1 1 536 689 1116
+669 2 2 1 1 444 836 1051
+670 2 2 1 1 327 686 1211
+671 2 2 1 1 46 468 1134
+672 2 2 1 1 363 776 846
+673 2 2 1 1 161 937 665
+674 2 2 1 1 459 751 1268
+675 2 2 1 1 140 637 1141
+676 2 2 1 1 400 1106 538
+677 2 2 1 1 333 641 1278
+678 2 2 1 1 261 641 795
+679 2 2 1 1 350 1203 534
+680 2 2 1 1 557 1268 751
+681 2 2 1 1 1339 677 885
+682 2 2 1 1 365 602 720
+683 2 2 1 1 82 1012 452
+684 2 2 1 1 176 889 555
+685 2 2 1 1 423 881 1099
+686 2 2 1 1 384 795 641
+687 2 2 1 1 223 601 1119
+688 2 2 1 1 425 1226 966
+689 2 2 1 1 24 144 1002
+690 2 2 1 1 358 1184 1124
+691 2 2 1 1 366 849 569
+692 2 2 1 1 371 850 493
+693 2 2 1 1 137 138 698
+694 2 2 1 1 130 773 131
+695 2 2 1 1 62 846 776
+696 2 2 1 1 219 670 745
+697 2 2 1 1 410 589 979
+698 2 2 1 1 260 521 1092
+699 2 2 1 1 341 820 551
+700 2 2 1 1 638 1333 733
+701 2 2 1 1 260 1307 521
+702 2 2 1 1 293 974 530
+703 2 2 1 1 485 876 1015
+704 2 2 1 1 9 1024 1059
+705 2 2 1 1 22 1012 83
+706 2 2 1 1 416 833 951
+707 2 2 1 1 9 123 1024
+708 2 2 1 1 242 757 739
+709 2 2 1 1 336 655 1232
+710 2 2 1 1 183 1199 575
+711 2 2 1 1 546 1365 924
+712 2 2 1 1 288 752 623
+713 2 2 1 1 614 1333 747
+714 2 2 1 1 216 820 643
+715 2 2 1 1 589 1072 1200
+716 2 2 1 1 401 976 565
+717 2 2 1 1 315 705 632
+718 2 2 1 1 641 803 1278
+719 2 2 1 1 59 638 1294
+720 2 2 1 1 272 596 710
+721 2 2 1 1 310 650 682
+722 2 2 1 1 63 1200 1072
+723 2 2 1 1 352 895 542
+724 2 2 1 1 361 720 602
+725 2 2 1 1 28 232 150
+726 2 2 1 1 432 695 1403
+727 2 2 1 1 416 997 553
+728 2 2 1 1 112 700 113
+729 2 2 1 1 449 576 1287
+730 2 2 1 1 118 1066 1013
+731 2 2 1 1 393 774 891
+732 2 2 1 1 346 544 1077
+733 2 2 1 1 395 917 666
+734 2 2 1 1 253 959 560
+735 2 2 1 1 240 1156 949
+736 2 2 1 1 489 1322 643
+737 2 2 1 1 512 1032 909
+738 2 2 1 1 492 1028 1258
+739 2 2 1 1 345 608 691
+740 2 2 1 1 253 719 594
+741 2 2 1 1 373 603 791
+742 2 2 1 1 299 560 985
+743 2 2 1 1 325 681 531
+744 2 2 1 1 273 791 603
+745 2 2 1 1 327 1003 616
+746 2 2 1 1 271 1221 708
+747 2 2 1 1 121 706 122
+748 2 2 1 1 241 725 1000
+749 2 2 1 1 458 604 847
+750 2 2 1 1 156 629 157
+751 2 2 1 1 596 1264 710
+752 2 2 1 1 164 640 165
+753 2 2 1 1 430 660 778
+754 2 2 1 1 310 682 671
+755 2 2 1 1 109 1052 108
+756 2 2 1 1 338 651 843
+757 2 2 1 1 357 755 751
+758 2 2 1 1 388 548 882
+759 2 2 1 1 155 548 871
+760 2 2 1 1 267 1137 917
+761 2 2 1 1 234 77 29
+762 2 2 1 1 37 38 524
+763 2 2 1 1 209 882 548
+764 2 2 1 1 350 554 1219
+765 2 2 1 1 388 871 548
+766 2 2 1 1 421 725 835
+767 2 2 1 1 522 806 1270
+768 2 2 1 1 89 1289 471
+769 2 2 1 1 294 717 1276
+770 2 2 1 1 218 670 219
+771 2 2 1 1 248 822 1304
+772 2 2 1 1 318 944 585
+773 2 2 1 1 353 1329 750
+774 2 2 1 1 174 787 1036
+775 2 2 1 1 331 677 1339
+776 2 2 1 1 313 870 1247
+777 2 2 1 1 272 710 980
+778 2 2 1 1 312 851 543
+779 2 2 1 1 376 580 904
+780 2 2 1 1 296 938 580
+781 2 2 1 1 256 904 580
+782 2 2 1 1 10 1361 142
+783 2 2 1 1 336 1232 729
+784 2 2 1 1 337 608 712
+785 2 2 1 1 148 515 843
+786 2 2 1 1 296 929 541
+787 2 2 1 1 356 534 860
+788 2 2 1 1 382 1330 561
+789 2 2 1 1 420 1098 1340
+790 2 2 1 1 283 1185 1004
+791 2 2 1 1 356 1112 919
+792 2 2 1 1 530 1303 754
+793 2 2 1 1 708 1221 957
+794 2 2 1 1 406 731 605
+795 2 2 1 1 239 1064 667
+796 2 2 1 1 303 798 987
+797 2 2 1 1 18 796 599
+798 2 2 1 1 241 835 725
+799 2 2 1 1 510 1350 724
+800 2 2 1 1 445 662 1141
+801 2 2 1 1 315 743 1167
+802 2 2 1 1 558 644 1173
+803 2 2 1 1 495 1254 1342
+804 2 2 1 1 491 1238 805
+805 2 2 1 1 255 906 545
+806 2 2 1 1 555 903 1317
+807 2 2 1 1 340 964 683
+808 2 2 1 1 374 634 890
+809 2 2 1 1 357 697 755
+810 2 2 1 1 339 1286 724
+811 2 2 1 1 204 806 565
+812 2 2 1 1 82 83 1012
+813 2 2 1 1 525 926 1394
+814 2 2 1 1 315 869 480
+815 2 2 1 1 301 1235 1112
+816 2 2 1 1 217 544 1080
+817 2 2 1 1 356 1079 534
+818 2 2 1 1 362 776 747
+819 2 2 1 1 580 938 1102
+820 2 2 1 1 350 534 916
+821 2 2 1 1 481 1161 618
+822 2 2 1 1 383 1044 1176
+823 2 2 1 1 438 1403 934
+824 2 2 1 1 150 612 960
+825 2 2 1 1 11 1244 695
+826 2 2 1 1 352 1205 718
+827 2 2 1 1 369 861 565
+828 2 2 1 1 518 865 972
+829 2 2 1 1 341 857 643
+830 2 2 1 1 160 937 161
+831 2 2 1 1 358 545 906
+832 2 2 1 1 20 648 165
+833 2 2 1 1 235 925 642
+834 2 2 1 1 138 546 924
+835 2 2 1 1 199 593 1275
+836 2 2 1 1 84 85 619
+837 2 2 1 1 348 975 572
+838 2 2 1 1 140 141 754
+839 2 2 1 1 578 1160 730
+840 2 2 1 1 345 796 827
+841 2 2 1 1 530 920 1303
+842 2 2 1 1 147 843 651
+843 2 2 1 1 229 784 230
+844 2 2 1 1 585 944 863
+845 2 2 1 1 384 559 867
+846 2 2 1 1 79 542 1023
+847 2 2 1 1 137 1110 138
+848 2 2 1 1 231 232 676
+849 2 2 1 1 632 705 1360
+850 2 2 1 1 317 665 937
+851 2 2 1 1 332 774 622
+852 2 2 1 1 358 921 545
+853 2 2 1 1 201 726 1345
+854 2 2 1 1 352 542 952
+855 2 2 1 1 456 740 883
+856 2 2 1 1 328 1189 653
+857 2 2 1 1 486 1253 688
+858 2 2 1 1 291 1377 545
+859 2 2 1 1 405 684 1208
+860 2 2 1 1 179 867 559
+861 2 2 1 1 262 731 1087
+862 2 2 1 1 291 545 921
+863 2 2 1 1 275 1028 647
+864 2 2 1 1 128 772 765
+865 2 2 1 1 394 639 935
+866 2 2 1 1 297 614 747
+867 2 2 1 1 595 966 1226
+868 2 2 1 1 9 919 588
+869 2 2 1 1 227 926 525
+870 2 2 1 1 145 570 899
+871 2 2 1 1 348 572 1240
+872 2 2 1 1 66 650 1198
+873 2 2 1 1 1361 804 142
+874 2 2 1 1 46 47 717
+875 2 2 1 1 319 1168 757
+876 2 2 1 1 379 555 889
+877 2 2 1 1 522 1312 806
+878 2 2 1 1 80 81 952
+879 2 2 1 1 498 1151 823
+880 2 2 1 1 183 575 875
+881 2 2 1 1 69 671 682
+882 2 2 1 1 8 172 716
+883 2 2 1 1 278 962 1395
+884 2 2 1 1 258 951 833
+885 2 2 1 1 378 557 1396
+886 2 2 1 1 376 929 580
+887 2 2 1 1 469 828 690
+888 2 2 1 1 583 1047 203
+889 2 2 1 1 116 886 591
+890 2 2 1 1 296 580 929
+891 2 2 1 1 318 585 753
+892 2 2 1 1 6 858 1103
+893 2 2 1 1 391 781 600
+894 2 2 1 1 337 991 640
+895 2 2 1 1 363 474 1019
+896 2 2 1 1 112 572 975
+897 2 2 1 1 474 589 1097
+898 2 2 1 1 412 693 673
+899 2 2 1 1 431 823 1151
+900 2 2 1 1 358 1124 856
+901 2 2 1 1 368 972 865
+902 2 2 1 1 207 715 208
+903 2 2 1 1 490 617 1129
+904 2 2 1 1 239 529 1145
+905 2 2 1 1 463 1338 568
+906 2 2 1 1 351 738 761
+907 2 2 1 1 360 932 830
+908 2 2 1 1 377 1105 578
+909 2 2 1 1 396 761 738
+910 2 2 1 1 1205 583 203
+911 2 2 1 1 98 99 1030
+912 2 2 1 1 382 561 983
+913 2 2 1 1 483 1366 661
+914 2 2 1 1 531 1340 1098
+915 2 2 1 1 299 903 560
+916 2 2 1 1 163 770 581
+917 2 2 1 1 337 731 608
+918 2 2 1 1 423 852 980
+919 2 2 1 1 352 809 583
+920 2 2 1 1 532 1146 471
+921 2 2 1 1 201 202 726
+922 2 2 1 1 349 950 883
+923 2 2 1 1 428 723 928
+924 2 2 1 1 305 692 954
+925 2 2 1 1 340 590 1186
+926 2 2 1 1 176 555 1279
+927 2 2 1 1 334 1390 645
+928 2 2 1 1 281 1398 606
+929 2 2 1 1 89 471 955
+930 2 2 1 1 299 1317 903
+931 2 2 1 1 405 1208 958
+932 2 2 1 1 172 625 173
+933 2 2 1 1 337 605 731
+934 2 2 1 1 331 579 767
+935 2 2 1 1 372 875 575
+936 2 2 1 1 378 974 557
+937 2 2 1 1 565 861 1078
+938 2 2 1 1 288 623 1031
+939 2 2 1 1 145 1109 195
+940 2 2 1 1 215 820 216
+941 2 2 1 1 354 1284 613
+942 2 2 1 1 199 884 593
+943 2 2 1 1 339 985 959
+944 2 2 1 1 302 783 633
+945 2 2 1 1 342 607 1244
+946 2 2 1 1 193 571 1347
+947 2 2 1 1 308 1335 1173
+948 2 2 1 1 271 800 675
+949 2 2 1 1 560 959 985
+950 2 2 1 1 512 1163 961
+951 2 2 1 1 253 560 1120
+952 2 2 1 1 381 1320 591
+953 2 2 1 1 88 89 955
+954 2 2 1 1 25 206 619
+955 2 2 1 1 137 698 986
+956 2 2 1 1 400 994 1386
+957 2 2 1 1 561 235 1082
+958 2 2 1 1 426 877 1110
+959 2 2 1 1 19 158 680
+960 2 2 1 1 505 705 1218
+961 2 2 1 1 278 1395 934
+962 2 2 1 1 146 147 651
+963 2 2 1 1 332 622 868
+964 2 2 1 1 211 587 771
+965 2 2 1 1 168 586 790
+966 2 2 1 1 259 677 872
+967 2 2 1 1 344 745 670
+968 2 2 1 1 81 809 952
+969 2 2 1 1 520 1372 995
+970 2 2 1 1 1330 235 561
+971 2 2 1 1 280 1034 978
+972 2 2 1 1 354 613 905
+973 2 2 1 1 440 1022 684
+974 2 2 1 1 366 672 1149
+975 2 2 1 1 244 1050 562
+976 2 2 1 1 737 1041 294
+977 2 2 1 1 292 1380 1267
+978 2 2 1 1 90 1093 1289
+979 2 2 1 1 268 1071 761
+980 2 2 1 1 380 894 505
+981 2 2 1 1 11 1269 654
+982 2 2 1 1 134 563 1325
+983 2 2 1 1 396 1050 566
+984 2 2 1 1 254 684 1022
+985 2 2 1 1 135 668 136
+986 2 2 1 1 244 566 1050
+987 2 2 1 1 24 1192 187
+988 2 2 1 1 278 934 1403
+989 2 2 1 1 271 708 800
+990 2 2 1 1 86 1151 498
+991 2 2 1 1 17 25 619
+992 2 2 1 1 357 811 596
+993 2 2 1 1 506 1326 703
+994 2 2 1 1 443 1100 773
+995 2 2 1 1 363 846 474
+996 2 2 1 1 798 1290 987
+997 2 2 1 1 105 700 866
+998 2 2 1 1 268 832 1071
+999 2 2 1 1 324 758 1051
+1000 2 2 1 1 486 688 901
+1001 2 2 1 1 329 523 993
+1002 2 2 1 1 369 806 1312
+1003 2 2 1 1 737 1276 1404
+1004 2 2 1 1 170 781 782
+1005 2 2 1 1 546 1110 877
+1006 2 2 1 1 184 185 721
+1007 2 2 1 1 341 551 1088
+1008 2 2 1 1 330 673 693
+1009 2 2 1 1 325 531 1107
+1010 2 2 1 1 101 102 883
+1011 2 2 1 1 389 800 708
+1012 2 2 1 1 373 612 802
+1013 2 2 1 1 288 914 752
+1014 2 2 1 1 55 501 1401
+1015 2 2 1 1 377 1102 938
+1016 2 2 1 1 262 598 1187
+1017 2 2 1 1 366 1149 448
+1018 2 2 1 1 244 969 566
+1019 2 2 1 1 249 1204 1293
+1020 2 2 1 1 400 711 994
+1021 2 2 1 1 129 845 130
+1022 2 2 1 1 78 1023 1067
+1023 2 2 1 1 130 845 773
+1024 2 2 1 1 83 84 988
+1025 2 2 1 1 380 1031 623
+1026 2 2 1 1 105 106 473
+1027 2 2 1 1 224 599 935
+1028 2 2 1 1 218 1322 670
+1029 2 2 1 1 69 70 671
+1030 2 2 1 1 390 970 590
+1031 2 2 1 1 379 1352 636
+1032 2 2 1 1 508 667 1064
+1033 2 2 1 1 547 1143 1302
+1034 2 2 1 1 31 32 626
+1035 2 2 1 1 394 935 599
+1036 2 2 1 1 257 1097 991
+1037 2 2 1 1 163 1008 605
+1038 2 2 1 1 1333 362 747
+1039 2 2 1 1 37 524 1280
+1040 2 2 1 1 414 1101 763
+1041 2 2 1 1 219 745 220
+1042 2 2 1 1 242 1025 757
+1043 2 2 1 1 240 811 1156
+1044 2 2 1 1 219 816 1077
+1045 2 2 1 1 169 170 782
+1046 2 2 1 1 366 818 849
+1047 2 2 1 1 221 669 222
+1048 2 2 1 1 514 856 1345
+1049 2 2 1 1 125 862 602
+1050 2 2 1 1 241 1000 864
+1051 2 2 1 1 514 1345 726
+1052 2 2 1 1 218 219 1077
+1053 2 2 1 1 294 1276 737
+1054 2 2 1 1 229 1356 784
+1055 2 2 1 1 222 223 1119
+1056 2 2 1 1 71 72 1343
+1057 2 2 1 1 244 902 830
+1058 2 2 1 1 348 1240 606
+1059 2 2 1 1 256 645 750
+1060 2 2 1 1 483 661 1175
+1061 2 2 1 1 365 1092 901
+1062 2 2 1 1 371 1297 584
+1063 2 2 1 1 257 991 712
+1064 2 2 1 1 13 899 1060
+1065 2 2 1 1 763 1101 1056
+1066 2 2 1 1 645 1390 750
+1067 2 2 1 1 24 1123 144
+1068 2 2 1 1 301 1030 576
+1069 2 2 1 1 544 842 1090
+1070 2 2 1 1 501 748 891
+1071 2 2 1 1 487 888 942
+1072 2 2 1 1 330 633 783
+1073 2 2 1 1 76 642 1094
+1074 2 2 1 1 658 1054 1245
+1075 2 2 1 1 188 1214 579
+1076 2 2 1 1 467 1292 574
+1077 2 2 1 1 575 1299 913
+1078 2 2 1 1 302 531 1098
+1079 2 2 1 1 193 1063 571
+1080 2 2 1 1 540 799 938
+1081 2 2 1 1 409 705 1167
+1082 2 2 1 1 179 807 841
+1083 2 2 1 1 553 997 1405
+1084 2 2 1 1 14 681 146
+1085 2 2 1 1 326 847 597
+1086 2 2 1 1 243 942 888
+1087 2 2 1 1 335 814 637
+1088 2 2 1 1 383 746 1020
+1089 2 2 1 1 28 1405 997
+1090 2 2 1 1 345 599 796
+1091 2 2 1 1 214 1160 1105
+1092 2 2 1 1 256 580 1102
+1093 2 2 1 1 236 634 925
+1094 2 2 1 1 240 949 673
+1095 2 2 1 1 13 1109 145
+1096 2 2 1 1 456 883 950
+1097 2 2 1 1 210 211 702
+1098 2 2 1 1 343 528 880
+1099 2 2 1 1 346 840 842
+1100 2 2 1 1 292 738 1380
+1101 2 2 1 1 270 814 635
+1102 2 2 1 1 443 954 692
+1103 2 2 1 1 153 154 707
+1104 2 2 1 1 373 791 612
+1105 2 2 1 1 450 564 1116
+1106 2 2 1 1 341 1088 617
+1107 2 2 1 1 519 1067 1023
+1108 2 2 1 1 578 1105 1160
+1109 2 2 1 1 239 724 1350
+1110 2 2 1 1 71 518 972
+1111 2 2 1 1 342 1244 532
+1112 2 2 1 1 364 1341 1125
+1113 2 2 1 1 445 1141 637
+1114 2 2 1 1 502 978 1034
+1115 2 2 1 1 514 726 1005
+1116 2 2 1 1 281 901 1398
+1117 2 2 1 1 153 744 1186
+1118 2 2 1 1 390 683 940
+1119 2 2 1 1 68 69 682
+1120 2 2 1 1 61 62 776
+1121 2 2 1 1 155 590 970
+1122 2 2 1 1 348 735 734
+1123 2 2 1 1 372 1337 1118
+1124 2 2 1 1 24 188 1123
+1125 2 2 1 1 573 1262 771
+1126 2 2 1 1 421 898 653
+1127 2 2 1 1 423 1099 852
+1128 2 2 1 1 119 887 610
+1129 2 2 1 1 24 1214 188
+1130 2 2 1 1 18 1131 621
+1131 2 2 1 1 24 187 1214
+1132 2 2 1 1 539 1311 855
+1133 2 2 1 1 588 919 1112
+1134 2 2 1 1 402 675 800
+1135 2 2 1 1 223 1007 601
+1136 2 2 1 1 434 830 932
+1137 2 2 1 1 361 602 862
+1138 2 2 1 1 600 1259 873
+1139 2 2 1 1 385 765 772
+1140 2 2 1 1 239 1350 592
+1141 2 2 1 1 382 593 884
+1142 2 2 1 1 190 775 618
+1143 2 2 1 1 433 827 796
+1144 2 2 1 1 88 955 826
+1145 2 2 1 1 488 894 1084
+1146 2 2 1 1 464 1090 1190
+1147 2 2 1 1 541 929 789
+1148 2 2 1 1 447 928 723
+1149 2 2 1 1 263 1349 622
+1150 2 2 1 1 126 602 910
+1151 2 2 1 1 545 1377 931
+1152 2 2 1 1 246 567 1070
+1153 2 2 1 1 322 1132 571
+1154 2 2 1 1 455 1383 759
+1155 2 2 1 1 552 1276 717
+1156 2 2 1 1 6 1103 863
+1157 2 2 1 1 75 76 1094
+1158 2 2 1 1 182 1199 183
+1159 2 2 1 1 114 947 616
+1160 2 2 1 1 42 1020 746
+1161 2 2 1 1 536 601 1007
+1162 2 2 1 1 163 605 1166
+1163 2 2 1 1 335 635 814
+1164 2 2 1 1 382 884 1115
+1165 2 2 1 1 172 1046 716
+1166 2 2 1 1 447 737 553
+1167 2 2 1 1 183 1248 756
+1168 2 2 1 1 189 618 1161
+1169 2 2 1 1 408 739 757
+1170 2 2 1 1 259 885 677
+1171 2 2 1 1 355 733 1293
+1172 2 2 1 1 445 758 662
+1173 2 2 1 1 153 1186 154
+1174 2 2 1 1 23 873 1259
+1175 2 2 1 1 98 1030 664
+1176 2 2 1 1 222 1029 223
+1177 2 2 1 1 389 596 1332
+1178 2 2 1 1 350 1219 632
+1179 2 2 1 1 180 701 181
+1180 2 2 1 1 475 842 840
+1181 2 2 1 1 410 640 991
+1182 2 2 1 1 445 637 814
+1183 2 2 1 1 452 583 1155
+1184 2 2 1 1 264 751 755
+1185 2 2 1 1 261 803 641
+1186 2 2 1 1 412 673 949
+1187 2 2 1 1 282 855 1311
+1188 2 2 1 1 377 938 799
+1189 2 2 1 1 182 183 756
+1190 2 2 1 1 450 1309 564
+1191 2 2 1 1 317 937 1385
+1192 2 2 1 1 434 741 830
+1193 2 2 1 1 364 1125 1191
+1194 2 2 1 1 455 838 1383
+1195 2 2 1 1 260 728 950
+1196 2 2 1 1 452 1047 583
+1197 2 2 1 1 383 764 746
+1198 2 2 1 1 254 604 1208
+1199 2 2 1 1 388 702 1159
+1200 2 2 1 1 266 1149 672
+1201 2 2 1 1 369 678 861
+1202 2 2 1 1 467 1176 1044
+1203 2 2 1 1 350 632 1203
+1204 2 2 1 1 511 1406 620
+1205 2 2 1 1 363 1019 556
+1206 2 2 1 1 739 1143 1226
+1207 2 2 1 1 541 707 946
+1208 2 2 1 1 413 746 764
+1209 2 2 1 1 244 830 741
+1210 2 2 1 1 75 1094 759
+1211 2 2 1 1 11 143 1269
+1212 2 2 1 1 90 91 1093
+1213 2 2 1 1 392 1055 1027
+1214 2 2 1 1 402 971 783
+1215 2 2 1 1 405 741 1251
+1216 2 2 1 1 439 1065 1040
+1217 2 2 1 1 371 584 1004
+1218 2 2 1 1 456 1217 740
+1219 2 2 1 1 199 1275 200
+1220 2 2 1 1 246 1018 1297
+1221 2 2 1 1 425 739 1226
+1222 2 2 1 1 365 910 602
+1223 2 2 1 1 343 822 1026
+1224 2 2 1 1 381 591 1180
+1225 2 2 1 1 780 1257 1051
+1226 2 2 1 1 259 703 885
+1227 2 2 1 1 190 646 989
+1228 2 2 1 1 245 564 1300
+1229 2 2 1 1 429 1054 658
+1230 2 2 1 1 311 661 1366
+1231 2 2 1 1 130 131 732
+1232 2 2 1 1 300 740 1217
+1233 2 2 1 1 376 627 1233
+1234 2 2 1 1 354 905 584
+1235 2 2 1 1 1180 289 966
+1236 2 2 1 1 115 1042 610
+1237 2 2 1 1 458 847 1152
+1238 2 2 1 1 245 1193 582
+1239 2 2 1 1 412 992 666
+1240 2 2 1 1 344 670 813
+1241 2 2 1 1 190 1252 646
+1242 2 2 1 1 157 629 1239
+1243 2 2 1 1 360 755 697
+1244 2 2 1 1 273 615 1215
+1245 2 2 1 1 246 1344 1018
+1246 2 2 1 1 390 629 970
+1247 2 2 1 1 253 1368 959
+1248 2 2 1 1 16 685 880
+1249 2 2 1 1 634 1185 890
+1250 2 2 1 1 376 789 929
+1251 2 2 1 1 293 666 992
+1252 2 2 1 1 204 1047 834
+1253 2 2 1 1 257 556 1019
+1254 2 2 1 1 10 821 1188
+1255 2 2 1 1 375 630 1278
+1256 2 2 1 1 125 853 837
+1257 2 2 1 1 221 1201 669
+1258 2 2 1 1 30 762 1069
+1259 2 2 1 1 406 605 1008
+1260 2 2 1 1 367 829 1086
+1261 2 2 1 1 134 1144 563
+1262 2 2 1 1 277 777 967
+1263 2 2 1 1 451 967 777
+1264 2 2 1 1 454 669 1201
+1265 2 2 1 1 405 1251 1049
+1266 2 2 1 1 306 958 604
+1267 2 2 1 1 380 664 1084
+1268 2 2 1 1 382 983 593
+1269 2 2 1 1 379 889 1352
+1270 2 2 1 1 328 660 1194
+1271 2 2 1 1 417 923 1272
+1272 2 2 1 1 201 718 202
+1273 2 2 1 1 117 121 1172
+1274 2 2 1 1 176 793 797
+1275 2 2 1 1 105 473 700
+1276 2 2 1 1 11 695 143
+1277 2 2 1 1 436 752 914
+1278 2 2 1 1 14 1340 681
+1279 2 2 1 1 136 986 656
+1280 2 2 1 1 460 679 1227
+1281 2 2 1 1 300 961 1163
+1282 2 2 1 1 477 756 1248
+1283 2 2 1 1 195 1109 196
+1284 2 2 1 1 255 611 906
+1285 2 2 1 1 296 1159 938
+1286 2 2 1 1 354 584 1018
+1287 2 2 1 1 336 957 655
+1288 2 2 1 1 242 739 918
+1289 2 2 1 1 380 505 1031
+1290 2 2 1 1 165 640 979
+1291 2 2 1 1 390 940 651
+1292 2 2 1 1 309 617 1088
+1293 2 2 1 1 407 635 1223
+1294 2 2 1 1 132 1100 692
+1295 2 2 1 1 122 706 873
+1296 2 2 1 1 63 64 1200
+1297 2 2 1 1 128 129 772
+1298 2 2 1 1 303 987 626
+1299 2 2 1 1 111 1069 1363
+1300 2 2 1 1 353 1390 647
+1301 2 2 1 1 107 108 569
+1302 2 2 1 1 55 56 748
+1303 2 2 1 1 302 1107 531
+1304 2 2 1 1 581 999 713
+1305 2 2 1 1 127 128 765
+1306 2 2 1 1 494 913 1073
+1307 2 2 1 1 28 150 960
+1308 2 2 1 1 116 591 1320
+1309 2 2 1 1 243 930 927
+1310 2 2 1 1 489 670 1322
+1311 2 2 1 1 301 488 1084
+1312 2 2 1 1 362 638 973
+1313 2 2 1 1 273 1122 615
+1314 2 2 1 1 399 841 807
+1315 2 2 1 1 500 1386 994
+1316 2 2 1 1 252 840 644
+1317 2 2 1 1 66 67 650
+1318 2 2 1 1 588 1112 1235
+1319 2 2 1 1 510 1021 1350
+1320 2 2 1 1 292 1314 1381
+1321 2 2 1 1 82 452 1155
+1322 2 2 1 1 56 57 984
+1323 2 2 1 1 230 784 1127
+1324 2 2 1 1 13 145 899
+1325 2 2 1 1 485 732 876
+1326 2 2 1 1 370 876 732
+1327 2 2 1 1 255 931 1342
+1328 2 2 1 1 317 1227 679
+1329 2 2 1 1 395 804 917
+1330 2 2 1 1 493 1060 899
+1331 2 2 1 1 374 642 925
+1332 2 2 1 1 540 938 1159
+1333 2 2 1 1 353 864 1329
+1334 2 2 1 1 660 1022 778
+1335 2 2 1 1 266 672 819
+1336 2 2 1 1 381 616 947
+1337 2 2 1 1 176 177 793
+1338 2 2 1 1 132 692 1202
+1339 2 2 1 1 489 813 670
+1340 2 2 1 1 347 771 587
+1341 2 2 1 1 15 1233 627
+1342 2 2 1 1 478 1319 635
+1343 2 2 1 1 566 1250 1324
+1344 2 2 1 1 440 1017 778
+1345 2 2 1 1 146 651 940
+1346 2 2 1 1 13 238 831
+1347 2 2 1 1 139 924 637
+1348 2 2 1 1 263 622 874
+1349 2 2 1 1 1404 513 851
+1350 2 2 1 1 354 792 1284
+1351 2 2 1 1 399 801 896
+1352 2 2 1 1 441 1053 582
+1353 2 2 1 1 301 1084 664
+1354 2 2 1 1 489 643 857
+1355 2 2 1 1 372 1118 875
+1356 2 2 1 1 292 1267 859
+1357 2 2 1 1 99 576 1030
+1358 2 2 1 1 387 624 931
+1359 2 2 1 1 251 727 1108
+1360 2 2 1 1 104 105 866
+1361 2 2 1 1 196 1162 689
+1362 2 2 1 1 356 659 1079
+1363 2 2 1 1 31 626 762
+1364 2 2 1 1 394 598 1154
+1365 2 2 1 1 310 999 581
+1366 2 2 1 1 285 857 1406
+1367 2 2 1 1 204 205 806
+1368 2 2 1 1 41 42 746
+1369 2 2 1 1 313 1310 570
+1370 2 2 1 1 150 232 948
+1371 2 2 1 1 341 643 820
+1372 2 2 1 1 330 936 633
+1373 2 2 1 1 178 179 841
+1374 2 2 1 1 469 757 1025
+1375 2 2 1 1 600 781 1259
+1376 2 2 1 1 657 1180 966
+1377 2 2 1 1 483 1124 1184
+1378 2 2 1 1 175 889 176
+1379 2 2 1 1 229 230 1091
+1380 2 2 1 1 274 678 1086
+1381 2 2 1 1 125 126 853
+1382 2 2 1 1 232 997 676
+1383 2 2 1 1 5 734 736
+1384 2 2 1 1 110 111 1363
+1385 2 2 1 1 348 734 975
+1386 2 2 1 1 364 1191 749
+1387 2 2 1 1 408 1302 1143
+1388 2 2 1 1 510 1318 1021
+1389 2 2 1 1 85 86 1126
+1390 2 2 1 1 342 962 607
+1391 2 2 1 1 249 1333 614
+1392 2 2 1 1 453 892 963
+1393 2 2 1 1 274 861 678
+1394 2 2 1 1 314 516 854
+1395 2 2 1 1 340 1186 744
+1396 2 2 1 1 388 1159 946
+1397 2 2 1 1 8 1150 172
+1398 2 2 1 1 257 712 827
+1399 2 2 1 1 286 1073 913
+1400 2 2 1 1 18 907 796
+1401 2 2 1 1 264 1396 751
+1402 2 2 1 1 329 1399 817
+1403 2 2 1 1 231 948 232
+1404 2 2 1 1 439 881 1065
+1405 2 2 1 1 131 808 732
+1406 2 2 1 1 32 33 1103
+1407 2 2 1 1 364 835 1341
+1408 2 2 1 1 278 607 962
+1409 2 2 1 1 429 936 1054
+1410 2 2 1 1 613 1284 1277
+1411 2 2 1 1 382 900 1330
+1412 2 2 1 1 394 1187 598
+1413 2 2 1 1 204 834 205
+1414 2 2 1 1 620 1406 857
+1415 2 2 1 1 21 743 1230
+1416 2 2 1 1 175 176 797
+1417 2 2 1 1 530 754 996
+1418 2 2 1 1 11 654 1146
+1419 2 2 1 1 342 943 694
+1420 2 2 1 1 235 236 925
+1421 2 2 1 1 116 117 886
+1422 2 2 1 1 277 778 1017
+1423 2 2 1 1 19 1277 1284
+1424 2 2 1 1 368 999 671
+1425 2 2 1 1 58 59 839
+1426 2 2 1 1 324 662 758
+1427 2 2 1 1 383 1020 687
+1428 2 2 1 1 459 1156 751
+1429 2 2 1 1 360 1224 755
+1430 2 2 1 1 360 697 932
+1431 2 2 1 1 557 751 1396
+1432 2 2 1 1 376 1384 627
+1433 2 2 1 1 577 784 1356
+1434 2 2 1 1 168 716 1046
+1435 2 2 1 1 607 695 1244
+1436 2 2 1 1 417 1272 886
+1437 2 2 1 1 177 1279 628
+1438 2 2 1 1 677 1337 872
+1439 2 2 1 1 173 1111 170
+1440 2 2 1 1 236 1288 634
+1441 2 2 1 1 371 1138 674
+1442 2 2 1 1 370 832 699
+1443 2 2 1 1 156 970 629
+1444 2 2 1 1 343 880 685
+1445 2 2 1 1 127 910 688
+1446 2 2 1 1 374 925 634
+1447 2 2 1 1 268 699 832
+1448 2 2 1 1 356 919 659
+1449 2 2 1 1 516 685 1016
+1450 2 2 1 1 131 132 808
+1451 2 2 1 1 476 967 663
+1452 2 2 1 1 335 1223 635
+1453 2 2 1 1 8 892 1150
+1454 2 2 1 1 481 654 1269
+1455 2 2 1 1 386 797 793
+1456 2 2 1 1 406 1260 665
+1457 2 2 1 1 386 779 769
+1458 2 2 1 1 450 661 1309
+1459 2 2 1 1 384 628 982
+1460 2 2 1 1 370 732 808
+1461 2 2 1 1 418 770 844
+1462 2 2 1 1 124 125 837
+1463 2 2 1 1 14 940 683
+1464 2 2 1 1 490 1129 810
+1465 2 2 1 1 467 766 1292
+1466 2 2 1 1 484 1010 631
+1467 2 2 1 1 287 1099 881
+1468 2 2 1 1 379 636 1305
+1469 2 2 1 1 258 1170 854
+1470 2 2 1 1 380 1084 894
+1471 2 2 1 1 226 639 926
+1472 2 2 1 1 532 1289 1093
+1473 2 2 1 1 240 673 971
+1474 2 2 1 1 397 760 1117
+1475 2 2 1 1 336 708 957
+1476 2 2 1 1 338 1266 651
+1477 2 2 1 1 315 632 1219
+1478 2 2 1 1 221 652 1089
+1479 2 2 1 1 413 897 939
+1480 2 2 1 1 550 959 1368
+1481 2 2 1 1 255 1342 631
+1482 2 2 1 1 134 1325 135
+1483 2 2 1 1 215 1331 730
+1484 2 2 1 1 381 947 1320
+1485 2 2 1 1 299 985 1265
+1486 2 2 1 1 158 792 159
+1487 2 2 1 1 428 960 612
+1488 2 2 1 1 136 656 1296
+1489 2 2 1 1 464 1190 730
+1490 2 2 1 1 334 730 1190
+1491 2 2 1 1 427 917 804
+1492 2 2 1 1 72 73 680
+1493 2 2 1 1 211 771 212
+1494 2 2 1 1 270 780 1051
+1495 2 2 1 1 444 1328 836
+1496 2 2 1 1 385 769 779
+1497 2 2 1 1 390 651 1266
+1498 2 2 1 1 249 733 1333
+1499 2 2 1 1 292 1381 738
+1500 2 2 1 1 391 1234 798
+1501 2 2 1 1 364 825 835
+1502 2 2 1 1 13 1060 238
+1503 2 2 1 1 15 627 1040
+1504 2 2 1 1 356 860 1112
+1505 2 2 1 1 410 979 640
+1506 2 2 1 1 584 1297 1018
+1507 2 2 1 1 622 1349 868
+1508 2 2 1 1 463 1036 787
+1509 2 2 1 1 415 858 790
+1510 2 2 1 1 12 1334 636
+1511 2 2 1 1 388 882 702
+1512 2 2 1 1 151 152 789
+1513 2 2 1 1 258 833 1170
+1514 2 2 1 1 609 1018 1344
+1515 2 2 1 1 243 927 785
+1516 2 2 1 1 319 1128 668
+1517 2 2 1 1 333 1278 630
+1518 2 2 1 1 366 569 1052
+1519 2 2 1 1 293 996 666
+1520 2 2 1 1 210 702 882
+1521 2 2 1 1 154 871 707
+1522 2 2 1 1 149 802 612
+1523 2 2 1 1 256 1102 645
+1524 2 2 1 1 564 1301 1116
+1525 2 2 1 1 395 666 996
+1526 2 2 1 1 387 812 930
+1527 2 2 1 1 388 707 871
+1528 2 2 1 1 89 90 1289
+1529 2 2 1 1 397 986 698
+1530 2 2 1 1 39 993 523
+1531 2 2 1 1 428 612 791
+1532 2 2 1 1 48 1174 552
+1533 2 2 1 1 418 1037 770
+1534 2 2 1 1 481 1269 1123
+1535 2 2 1 1 113 700 1133
+1536 2 2 1 1 260 735 1307
+1537 2 2 1 1 179 180 807
+1538 2 2 1 1 269 690 828
+1539 2 2 1 1 294 1376 717
+1540 2 2 1 1 407 963 892
+1541 2 2 1 1 349 734 735
+1542 2 2 1 1 114 1042 115
+1543 2 2 1 1 443 727 954
+1544 2 2 1 1 86 87 1151
+1545 2 2 1 1 212 213 799
+1546 2 2 1 1 269 704 877
+1547 2 2 1 1 389 824 800
+1548 2 2 1 1 421 835 825
+1549 2 2 1 1 390 1266 629
+1550 2 2 1 1 215 216 1331
+1551 2 2 1 1 317 1045 665
+1552 2 2 1 1 568 1013 1066
+1553 2 2 1 1 162 1008 163
+1554 2 2 1 1 448 600 873
+1555 2 2 1 1 353 750 1390
+1556 2 2 1 1 135 1325 668
+1557 2 2 1 1 325 1107 1292
+1558 2 2 1 1 435 655 957
+1559 2 2 1 1 531 681 1340
+1560 2 2 1 1 441 1308 652
+1561 2 2 1 1 269 963 704
+1562 2 2 1 1 12 994 711
+1563 2 2 1 1 450 689 1162
+1564 2 2 1 1 253 653 1368
+1565 2 2 1 1 393 874 622
+1566 2 2 1 1 164 1166 640
+1567 2 2 1 1 311 1309 661
+1568 2 2 1 1 375 1397 1236
+1569 2 2 1 1 398 837 853
+1570 2 2 1 1 488 1112 860
+1571 2 2 1 1 447 553 1405
+1572 2 2 1 1 547 1144 1202
+1573 2 2 1 1 568 1346 1013
+1574 2 2 1 1 133 134 805
+1575 2 2 1 1 374 1094 642
+1576 2 2 1 1 338 1239 1266
+1577 2 2 1 1 198 884 199
+1578 2 2 1 1 189 1252 190
+1579 2 2 1 1 286 1178 630
+1580 2 2 1 1 190 191 775
+1581 2 2 1 1 307 1116 1301
+1582 2 2 1 1 379 719 1120
+1583 2 2 1 1 470 1316 766
+1584 2 2 1 1 316 639 1154
+1585 2 2 1 1 368 1353 713
+1586 2 2 1 1 209 742 1351
+1587 2 2 1 1 163 164 770
+1588 2 2 1 1 284 1101 1096
+1589 2 2 1 1 403 989 646
+1590 2 2 1 1 535 767 1281
+1591 2 2 1 1 247 860 1203
+1592 2 2 1 1 476 1074 967
+1593 2 2 1 1 226 669 1001
+1594 2 2 1 1 138 920 698
+1595 2 2 1 1 338 577 1239
+1596 2 2 1 1 7 610 1043
+1597 2 2 1 1 247 1203 632
+1598 2 2 1 1 397 1117 859
+1599 2 2 1 1 133 1202 1144
+1600 2 2 1 1 40 815 993
+1601 2 2 1 1 312 553 737
+1602 2 2 1 1 30 31 762
+1603 2 2 1 1 23 1036 1066
+1604 2 2 1 1 306 1324 1250
+1605 2 2 1 1 158 977 680
+1606 2 2 1 1 439 777 1017
+1607 2 2 1 1 132 1238 808
+1608 2 2 1 1 19 680 1210
+1609 2 2 1 1 403 885 703
+1610 2 2 1 1 393 984 874
+1611 2 2 1 1 277 1017 777
+1612 2 2 1 1 136 137 986
+1613 2 2 1 1 305 954 1226
+1614 2 2 1 1 325 766 1316
+1615 2 2 1 1 441 652 1256
+1616 2 2 1 1 357 751 1156
+1617 2 2 1 1 12 636 1352
+1618 2 2 1 1 371 674 1297
+1619 2 2 1 1 410 991 1097
+1620 2 2 1 1 106 1139 473
+1621 2 2 1 1 453 1195 625
+1622 2 2 1 1 167 168 790
+1623 2 2 1 1 313 674 1138
+1624 2 2 1 1 468 1041 1215
+1625 2 2 1 1 172 1150 625
+1626 2 2 1 1 190 989 191
+1627 2 2 1 1 406 665 1045
+1628 2 2 1 1 336 980 710
+1629 2 2 1 1 147 148 843
+1630 2 2 1 1 310 671 999
+1631 2 2 1 1 468 1215 615
+1632 2 2 1 1 430 1194 660
+1633 2 2 1 1 168 1046 169
+1634 2 2 1 1 381 1180 657
+1635 2 2 1 1 183 875 184
+1636 2 2 1 1 209 1351 210
+1637 2 2 1 1 399 896 978
+1638 2 2 1 1 353 647 1028
+1639 2 2 1 1 149 150 948
+1640 2 2 1 1 62 63 846
+1641 2 2 1 1 397 656 986
+1642 2 2 1 1 172 173 1364
+1643 2 2 1 1 482 902 1314
+1644 2 2 1 1 566 1324 722
+1645 2 2 1 1 377 799 1105
+1646 2 2 1 1 611 1010 1366
+1647 2 2 1 1 394 1154 639
+1648 2 2 1 1 366 1052 672
+1649 2 2 1 1 304 1231 895
+1650 2 2 1 1 20 589 1200
+1651 2 2 1 1 146 681 968
+1652 2 2 1 1 451 663 967
+1653 2 2 1 1 387 930 888
+1654 2 2 1 1 261 1375 1009
+1655 2 2 1 1 375 803 1397
+1656 2 2 1 1 260 1092 720
+1657 2 2 1 1 365 901 688
+1658 2 2 1 1 324 821 662
+1659 2 2 1 1 148 802 149
+1660 2 2 1 1 242 1057 1025
+1661 2 2 1 1 1289 532 471
+1662 2 2 1 1 542 895 1231
+1663 2 2 1 1 229 1091 233
+1664 2 2 1 1 14 683 964
+1665 2 2 1 1 477 1248 721
+1666 2 2 1 1 16 233 1091
+1667 2 2 1 1 391 1085 782
+1668 2 2 1 1 452 834 1047
+1669 2 2 1 1 456 950 728
+1670 2 2 1 1 515 1127 784
+1671 2 2 1 1 207 208 848
+1672 2 2 1 1 197 1175 661
+1673 2 2 1 1 309 1241 1323
+1674 2 2 1 1 60 973 638
+1675 2 2 1 1 678 1326 1086
+1676 2 2 1 1 387 931 1377
+1677 2 2 1 1 308 652 1308
+1678 2 2 1 1 114 115 947
+1679 2 2 1 1 193 1347 194
+1680 2 2 1 1 525 1247 870
+1681 2 2 1 1 307 1053 601
+1682 2 2 1 1 459 949 1156
+1683 2 2 1 1 365 688 910
+1684 2 2 1 1 527 785 1073
+1685 2 2 1 1 311 1366 1010
+1686 2 2 1 1 336 729 980
+1687 2 2 1 1 376 1233 789
+1688 2 2 1 1 378 1396 760
+1689 2 2 1 1 377 645 1102
+1690 2 2 1 1 156 157 848
+1691 2 2 1 1 5 112 975
+1692 2 2 1 1 254 1022 660
+1693 2 2 1 1 36 37 836
+1694 2 2 1 1 383 1176 764
+1695 2 2 1 1 513 1285 851
+1696 2 2 1 1 627 777 1040
+1697 2 2 1 1 45 615 1165
+1698 2 2 1 1 359 773 845
+1699 2 2 1 1 172 1364 1046
+1700 2 2 1 1 192 1389 1063
+1701 2 2 1 1 513 998 1285
+1702 2 2 1 1 477 965 756
+1703 2 2 1 1 391 782 781
+1704 2 2 1 1 78 79 1023
+1705 2 2 1 1 295 898 825
+1706 2 2 1 1 421 653 1189
+1707 2 2 1 1 534 1203 860
+1708 2 2 1 1 472 874 984
+1709 2 2 1 1 425 918 739
+1710 2 2 1 1 126 910 127
+1711 2 2 1 1 165 648 844
+1712 2 2 1 1 562 1314 902
+1713 2 2 1 1 535 1118 1337
+1714 2 2 1 1 402 800 824
+1715 2 2 1 1 301 664 1030
+1716 2 2 1 1 159 792 1313
+1717 2 2 1 1 595 1226 954
+1718 2 2 1 1 273 603 1122
+1719 2 2 1 1 70 71 972
+1720 2 2 1 1 16 880 233
+1721 2 2 1 1 331 1339 646
+1722 2 2 1 1 437 687 908
+1723 2 2 1 1 368 865 1353
+1724 2 2 1 1 416 676 997
+1725 2 2 1 1 484 953 1010
+1726 2 2 1 1 193 194 794
+1727 2 2 1 1 163 1166 164
+1728 2 2 1 1 300 878 740
+1729 2 2 1 1 404 724 1145
+1730 2 2 1 1 265 1044 687
+1731 2 2 1 1 517 1380 1242
+1732 2 2 1 1 17 794 194
+1733 2 2 1 1 491 808 1238
+1734 2 2 1 1 378 698 920
+1735 2 2 1 1 403 646 1339
+1736 2 2 1 1 383 687 1044
+1737 2 2 1 1 437 615 1122
+1738 2 2 1 1 279 1079 659
+1739 2 2 1 1 326 1152 847
+1740 2 2 1 1 426 668 1128
+1741 2 2 1 1 346 1077 816
+1742 2 2 1 1 557 974 1268
+1743 2 2 1 1 272 852 932
+1744 2 2 1 1 324 1280 821
+1745 2 2 1 1 422 927 930
+1746 2 2 1 1 39 40 993
+1747 2 2 1 1 476 663 1329
+1748 2 2 1 1 494 1357 933
+1749 2 2 1 1 496 1313 792
+1750 2 2 1 1 272 932 697
+1751 2 2 1 1 220 221 1089
+1752 2 2 1 1 407 704 963
+1753 2 2 1 1 234 1067 1082
+1754 2 2 1 1 526 1096 1101
+1755 2 2 1 1 421 825 898
+1756 2 2 1 1 52 1033 543
+1757 2 2 1 1 311 1010 953
+1758 2 2 1 1 434 932 852
+1759 2 2 1 1 197 661 1162
+1760 2 2 1 1 403 1157 649
+1761 2 2 1 1 322 678 1132
+1762 2 2 1 1 427 817 1399
+1763 2 2 1 1 265 687 1153
+1764 2 2 1 1 230 231 1142
+1765 2 2 1 1 291 1005 696
+1766 2 2 1 1 124 862 125
+1767 2 2 1 1 601 1053 1119
+1768 2 2 1 1 199 200 856
+1769 2 2 1 1 450 1162 661
+1770 2 2 1 1 399 978 841
+1771 2 2 1 1 502 841 978
+1772 2 2 1 1 401 1078 696
+1773 2 2 1 1 603 1153 1122
+1774 2 2 1 1 583 809 1155
+1775 2 2 1 1 191 192 823
+1776 2 2 1 1 416 553 1206
+1777 2 2 1 1 59 1294 839
+1778 2 2 1 1 322 649 1157
+1779 2 2 1 1 573 1323 1241
+1780 2 2 1 1 309 1323 709
+1781 2 2 1 1 5 975 734
+1782 2 2 1 1 130 732 1336
+1783 2 2 1 1 538 1061 711
+1784 2 2 1 1 21 941 743
+1785 2 2 1 1 485 1336 732
+1786 2 2 1 1 280 1006 779
+1787 2 2 1 1 414 659 1059
+1788 2 2 1 1 723 1215 1041
+1789 2 2 1 1 151 1232 655
+1790 2 2 1 1 401 696 1005
+1791 2 2 1 1 687 1020 908
+1792 2 2 1 1 415 790 1068
+1793 2 2 1 1 277 967 1074
+1794 2 2 1 1 537 1367 831
+1795 2 2 1 1 419 1048 1016
+1796 2 2 1 1 315 1219 869
+1797 2 2 1 1 276 769 1015
+1798 2 2 1 1 81 82 1155
+1799 2 2 1 1 454 1001 669
+1800 2 2 1 1 161 713 1353
+1801 2 2 1 1 400 1386 956
+1802 2 2 1 1 276 876 956
+1803 2 2 1 1 119 120 887
+1804 2 2 1 1 466 1387 701
+1805 2 2 1 1 649 1063 1389
+1806 2 2 1 1 250 897 764
+1807 2 2 1 1 461 1083 923
+1808 2 2 1 1 230 1142 786
+1809 2 2 1 1 198 1124 1175
+1810 2 2 1 1 388 946 707
+1811 2 2 1 1 157 207 848
+1812 2 2 1 1 178 867 179
+1813 2 2 1 1 400 956 699
+1814 2 2 1 1 517 1267 1380
+1815 2 2 1 1 40 41 1243
+1816 2 2 1 1 369 1132 678
+1817 2 2 1 1 291 812 1377
+1818 2 2 1 1 442 621 1075
+1819 2 2 1 1 562 1381 1314
+1820 2 2 1 1 154 155 871
+1821 2 2 1 1 213 214 1105
+1822 2 2 1 1 138 139 920
+1823 2 2 1 1 45 1134 615
+1824 2 2 1 1 280 779 1034
+1825 2 2 1 1 180 1372 807
+1826 2 2 1 1 276 1104 769
+1827 2 2 1 1 438 893 1403
+1828 2 2 1 1 551 1241 1088
+1829 2 2 1 1 198 199 1124
+1830 2 2 1 1 539 1025 1057
+1831 2 2 1 1 405 969 741
+1832 2 2 1 1 393 891 748
+1833 2 2 1 1 265 1153 603
+1834 2 2 1 1 173 625 1055
+1835 2 2 1 1 244 741 969
+1836 2 2 1 1 625 1027 1055
+1837 2 2 1 1 293 1268 974
+1838 2 2 1 1 216 217 1080
+1839 2 2 1 1 262 1087 679
+1840 2 2 1 1 40 1243 815
+1841 2 2 1 1 209 210 882
+1842 2 2 1 1 433 796 907
+1843 2 2 1 1 112 866 700
+1844 2 2 1 1 108 1052 569
+1845 2 2 1 1 208 715 1158
+1846 2 2 1 1 186 1382 869
+1847 2 2 1 1 412 666 1137
+1848 2 2 1 1 386 1104 797
+1849 2 2 1 1 520 807 1372
+1850 2 2 1 1 500 797 1104
+1851 2 2 1 1 138 924 139
+1852 2 2 1 1 592 1350 1021
+1853 2 2 1 1 15 151 1233
+1854 2 2 1 1 329 939 658
+1855 2 2 1 1 379 1305 719
+1856 2 2 1 1 309 1088 1241
+1857 2 2 1 1 175 797 1370
+1858 2 2 1 1 347 709 1323
+1859 2 2 1 1 120 818 121
+1860 2 2 1 1 134 135 1242
+1861 2 2 1 1 384 982 795
+1862 2 2 1 1 22 1164 834
+1863 2 2 1 1 391 798 1085
+1864 2 2 1 1 227 228 1029
+1865 2 2 1 1 209 1158 742
+1866 2 2 1 1 626 987 762
+1867 2 2 1 1 8 1035 1181
+1868 2 2 1 1 404 1011 724
+1869 2 2 1 1 317 679 1045
+1870 2 2 1 1 405 1049 684
+1871 2 2 1 1 136 1246 137
+1872 2 2 1 1 270 1393 814
+1873 2 2 1 1 485 1015 772
+1874 2 2 1 1 248 891 774
+1875 2 2 1 1 202 1205 203
+1876 2 2 1 1 385 772 1015
+1877 2 2 1 1 135 136 1296
+1878 2 2 1 1 226 926 227
+1879 2 2 1 1 394 691 1187
+1880 2 2 1 1 653 898 1368
+1881 2 2 1 1 161 665 1260
+1882 2 2 1 1 42 43 1020
+1883 2 2 1 1 349 735 950
+1884 2 2 1 1 475 1191 1125
+1885 2 2 1 1 336 710 1264
+1886 2 2 1 1 424 762 987
+1887 2 2 1 1 336 1264 708
+1888 2 2 1 1 249 1293 733
+1889 2 2 1 1 260 950 735
+1890 2 2 1 1 279 763 965
+1891 2 2 1 1 346 1220 840
+1892 2 2 1 1 81 1155 809
+1893 2 2 1 1 329 993 815
+1894 2 2 1 1 379 1120 903
+1895 2 2 1 1 236 900 237
+1896 2 2 1 1 202 976 726
+1897 2 2 1 1 533 1033 1362
+1898 2 2 1 1 524 821 1280
+1899 2 2 1 1 420 675 1098
+1900 2 2 1 1 36 836 1328
+1901 2 2 1 1 235 1330 236
+1902 2 2 1 1 406 1087 731
+1903 2 2 1 1 564 1309 953
+1904 2 2 1 1 361 961 728
+1905 2 2 1 1 434 1251 741
+1906 2 2 1 1 337 712 991
+1907 2 2 1 1 16 1091 786
+1908 2 2 1 1 117 1359 121
+1909 2 2 1 1 423 729 1065
+1910 2 2 1 1 270 635 1319
+1911 2 2 1 1 401 726 976
+1912 2 2 1 1 240 971 824
+1913 2 2 1 1 519 1082 1067
+1914 2 2 1 1 339 724 1011
+1915 2 2 1 1 325 1292 766
+1916 2 2 1 1 411 965 763
+1917 2 2 1 1 347 1349 709
+1918 2 2 1 1 650 1169 682
+1919 2 2 1 1 236 237 1288
+1920 2 2 1 1 28 997 232
+1921 2 2 1 1 15 1065 729
+1922 2 2 1 1 468 717 1376
+1923 2 2 1 1 135 1296 1242
+1924 2 2 1 1 398 896 801
+1925 2 2 1 1 133 805 1238
+1926 2 2 1 1 285 1075 813
+1927 2 2 1 1 3 1169 67
+1928 2 2 1 1 492 1125 1341
+1929 2 2 1 1 191 823 775
+1930 2 2 1 1 213 915 214
+1931 2 2 1 1 354 1298 792
+1932 2 2 1 1 544 1090 1080
+1933 2 2 1 1 416 951 676
+1934 2 2 1 1 11 1146 1244
+1935 2 2 1 1 20 1076 648
+1936 2 2 1 1 295 1318 898
+1937 2 2 1 1 164 165 844
+1938 2 2 1 1 21 166 1373
+1939 2 2 1 1 574 1292 1107
+1940 2 2 1 1 613 1148 905
+1941 2 2 1 1 266 798 1234
+1942 2 2 1 1 286 913 1299
+1943 2 2 1 1 644 1220 1173
+1944 2 2 1 1 386 793 1034
+1945 2 2 1 1 63 1072 846
+1946 2 2 1 1 524 1188 821
+1947 2 2 1 1 502 1034 793
+1948 2 2 1 1 411 995 756
+1949 2 2 1 1 262 1187 691
+1950 2 2 1 1 463 787 1196
+1951 2 2 1 1 431 775 823
+1952 2 2 1 1 785 1357 1073
+1953 2 2 1 1 399 807 1039
+1954 2 2 1 1 2 1174 48
+1955 2 2 1 1 520 1039 807
+1956 2 2 1 1 497 765 1006
+1957 2 2 1 1 43 44 908
+1958 2 2 1 1 315 1167 705
+1959 2 2 1 1 10 1188 817
+1960 2 2 1 1 385 1006 765
+1961 2 2 1 1 596 811 1332
+1962 2 2 1 1 400 699 1106
+1963 2 2 1 1 302 1130 783
+1964 2 2 1 1 412 1137 693
+1965 2 2 1 1 240 1332 811
+1966 2 2 1 1 6 167 858
+1967 2 2 1 1 426 1246 668
+1968 2 2 1 1 21 893 941
+1969 2 2 1 1 437 908 1165
+1970 2 2 1 1 494 872 913
+1971 2 2 1 1 329 815 939
+1972 2 2 1 1 464 1080 1090
+1973 2 2 1 1 181 701 1387
+1974 2 2 1 1 513 1404 1276
+1975 2 2 1 1 197 198 1175
+1976 2 2 1 1 349 736 734
+1977 2 2 1 1 19 1284 158
+1978 2 2 1 1 182 756 995
+1979 2 2 1 1 127 765 1369
+1980 2 2 1 1 91 92 943
+1981 2 2 1 1 497 1369 765
+1982 2 2 1 1 64 65 1076
+1983 2 2 1 1 554 869 1219
+1984 2 2 1 1 480 1230 743
+1985 2 2 1 1 290 618 1095
+1986 2 2 1 1 22 834 1012
+1987 2 2 1 1 423 980 729
+1988 2 2 1 1 367 785 927
+1989 2 2 1 1 248 1026 822
+1990 2 2 1 1 392 1196 787
+1991 2 2 1 1 440 684 1355
+1992 2 2 1 1 106 1140 1139
+1993 2 2 1 1 14 146 940
+1994 2 2 1 1 342 532 1093
+1995 2 2 1 1 16 786 1016
+1996 2 2 1 1 240 824 1332
+1997 2 2 1 1 438 934 914
+1998 2 2 1 1 224 935 225
+1999 2 2 1 1 644 840 1220
+2000 2 2 1 1 550 898 1318
+2001 2 2 1 1 496 792 1298
+2002 2 2 1 1 147 945 148
+2003 2 2 1 1 106 107 1140
+2004 2 2 1 1 224 714 1131
+2005 2 2 1 1 629 1266 1239
+2006 2 2 1 1 414 1024 1101
+2007 2 2 1 1 287 881 981
+2008 2 2 1 1 310 581 1037
+2009 2 2 1 1 280 896 1179
+2010 2 2 1 1 444 1051 1257
+2011 2 2 1 1 254 1208 684
+2012 2 2 1 1 561 1358 983
+2013 2 2 1 1 360 830 902
+2014 2 2 1 1 50 1285 998
+2015 2 2 1 1 403 703 1157
+2016 2 2 1 1 526 1101 1024
+2017 2 2 1 1 41 746 1243
+2018 2 2 1 1 462 1173 1220
+2019 2 2 1 1 439 981 881
+2020 2 2 1 1 535 1337 677
+2021 2 2 1 1 500 1370 797
+2022 2 2 1 1 253 1120 719
+2023 2 2 1 1 454 1201 745
+2024 2 2 1 1 468 615 1134
+2025 2 2 1 1 3 68 1169
+2026 2 2 1 1 2 49 1174
+2027 2 2 1 1 148 945 802
+2028 2 2 1 1 332 1171 774
+2029 2 2 1 1 526 837 1096
+2030 2 2 1 1 37 1280 836
+2031 2 2 1 1 413 764 897
+2032 2 2 1 1 419 951 1048
+2033 2 2 1 1 5 866 112
+2034 2 2 1 1 192 1063 193
+2035 2 2 1 1 33 34 863
+2036 2 2 1 1 401 1005 726
+2037 2 2 1 1 398 1096 837
+2038 2 2 1 1 231 676 1142
+2039 2 2 1 1 212 771 1262
+2040 2 2 1 1 221 1256 652
+2041 2 2 1 1 275 1090 842
+2042 2 2 1 1 322 1326 678
+2043 2 2 1 1 268 1106 699
+2044 2 2 1 1 136 668 1246
+2045 2 2 1 1 375 1278 803
+2046 2 2 1 1 458 711 1061
+2047 2 2 1 1 184 1118 185
+2048 2 2 1 1 246 1297 674
+2049 2 2 1 1 449 588 1235
+2050 2 2 1 1 129 1336 772
+2051 2 2 1 1 404 1145 879
+2052 2 2 1 1 485 772 1336
+2053 2 2 1 1 133 1144 134
+2054 2 2 1 1 395 754 1058
+2055 2 2 1 1 411 756 965
+2056 2 2 1 1 453 625 1150
+2057 2 2 1 1 200 1345 856
+2058 2 2 1 1 437 1165 615
+2059 2 2 1 1 365 720 1092
+2060 2 2 1 1 422 696 1213
+2061 2 2 1 1 131 1100 132
+2062 2 2 1 1 419 676 951
+2063 2 2 1 1 408 757 1168
+2064 2 2 1 1 374 759 1094
+2065 2 2 1 1 406 1008 1260
+2066 2 2 1 1 533 854 1170
+2067 2 2 1 1 267 693 1137
+2068 2 2 1 1 267 1054 693
+2069 2 2 1 1 143 695 1282
+2070 2 2 1 1 362 973 776
+2071 2 2 1 1 312 1404 851
+2072 2 2 1 1 15 1040 1065
+2073 2 2 1 1 319 690 1128
+2074 2 2 1 1 284 801 1039
+2075 2 2 1 1 277 1074 778
+2076 2 2 1 1 422 829 927
+2077 2 2 1 1 430 778 1074
+2078 2 2 1 1 146 968 147
+2079 2 2 1 1 93 1388 694
+2080 2 2 1 1 367 927 829
+2081 2 2 1 1 196 197 1162
+2082 2 2 1 1 437 1153 687
+2083 2 2 1 1 289 923 1083
+2084 2 2 1 1 422 930 812
+2085 2 2 1 1 120 121 1359
+2086 2 2 1 1 208 1158 209
+2087 2 2 1 1 184 721 1248
+2088 2 2 1 1 309 709 1129
+2089 2 2 1 1 480 1382 1192
+2090 2 2 1 1 459 992 949
+2091 2 2 1 1 185 1118 1281
+2092 2 2 1 1 534 1079 916
+2093 2 2 1 1 119 849 120
+2094 2 2 1 1 295 1021 1318
+2095 2 2 1 1 176 1279 177
+2096 2 2 1 1 159 160 1379
+2097 2 2 1 1 197 1115 198
+2098 2 2 1 1 158 159 977
+2099 2 2 1 1 220 745 1201
+2100 2 2 1 1 618 775 1095
+2101 2 2 1 1 458 1334 711
+2102 2 2 1 1 405 958 1250
+2103 2 2 1 1 284 1096 801
+2104 2 2 1 1 20 165 979
+2105 2 2 1 1 413 939 815
+2106 2 2 1 1 252 1191 840
+2107 2 2 1 1 307 1301 1053
+2108 2 2 1 1 155 970 156
+2109 2 2 1 1 295 825 1147
+2110 2 2 1 1 540 1159 702
+2111 2 2 1 1 103 104 1222
+2112 2 2 1 1 234 1082 235
+2113 2 2 1 1 625 1195 1027
+2114 2 2 1 1 502 793 1374
+2115 2 2 1 1 468 1376 1041
+2116 2 2 1 1 413 1243 746
+2117 2 2 1 1 12 711 1334
+2118 2 2 1 1 177 1374 793
+2119 2 2 1 1 93 94 1388
+2120 2 2 1 1 202 203 976
+2121 2 2 1 1 405 1250 969
+2122 2 2 1 1 479 1265 985
+2123 2 2 1 1 124 1032 862
+2124 2 2 1 1 538 1324 1061
+2125 2 2 1 1 470 766 990
+2126 2 2 1 1 402 1130 675
+2127 2 2 1 1 94 95 1014
+2128 2 2 1 1 329 658 1399
+2129 2 2 1 1 1364 173 170
+2130 2 2 1 1 479 985 1011
+2131 2 2 1 1 49 50 998
+2132 2 2 1 1 412 949 992
+2133 2 2 1 1 395 996 754
+2134 2 2 1 1 443 692 1100
+2135 2 2 1 1 584 905 1004
+2136 2 2 1 1 437 1122 1153
+2137 2 2 1 1 137 1246 1110
+2138 2 2 1 1 290 826 955
+2139 2 2 1 1 352 952 809
+2140 2 2 1 1 15 729 1232
+2141 2 2 1 1 73 74 1210
+2142 2 2 1 1 340 744 1182
+2143 2 2 1 1 339 1011 985
+2144 2 2 1 1 532 1244 1146
+2145 2 2 1 1 473 1133 700
+2146 2 2 1 1 507 1291 895
+2147 2 2 1 1 304 983 1358
+2148 2 2 1 1 303 586 1085
+2149 2 2 1 1 181 182 995
+2150 2 2 1 1 372 913 872
+2151 2 2 1 1 153 1114 744
+2152 2 2 1 1 121 818 706
+2153 2 2 1 1 475 1258 842
+2154 2 2 1 1 498 1263 794
+2155 2 2 1 1 225 226 1001
+2156 2 2 1 1 419 1142 676
+2157 2 2 1 1 439 1040 777
+2158 2 2 1 1 242 918 1057
+2159 2 2 1 1 164 844 770
+2160 2 2 1 1 395 1058 804
+2161 2 2 1 1 368 713 999
+2162 2 2 1 1 441 1119 1053
+2163 2 2 1 1 67 1169 650
+2164 2 2 1 1 73 1210 680
+2165 2 2 1 1 116 1359 117
+2166 2 2 1 1 29 78 1067
+2167 2 2 1 1 348 1307 735
+2168 2 2 1 1 435 1182 744
+2169 2 2 1 1 543 1170 833
+2170 2 2 1 1 440 778 1022
+2171 2 2 1 1 389 708 1264
+2172 2 2 1 1 102 103 1183
+2173 2 2 1 1 471 1146 654
+2174 2 2 1 1 44 1165 908
+2175 2 2 1 1 432 1282 695
+2176 2 2 1 1 529 879 1145
+2177 2 2 1 1 250 764 1176
+2178 2 2 1 1 386 1034 779
+2179 2 2 1 1 465 1306 1021
+2180 2 2 1 1 475 840 1191
+2181 2 2 1 1 446 694 1388
+2182 2 2 1 1 417 1013 1346
+2183 2 2 1 1 304 895 1291
+2184 2 2 1 1 141 1058 754
+2185 2 2 1 1 160 865 1379
+2186 2 2 1 1 385 1015 769
+2187 2 2 1 1 34 585 863
+2188 2 2 1 1 547 1202 692
+2189 2 2 1 1 474 1072 589
+2190 2 2 1 1 323 1195 828
+2191 2 2 1 1 385 779 1006
+2192 2 2 1 1 239 1145 724
+2193 2 2 1 1 174 1216 787
+2194 2 2 1 1 269 1295 690
+2195 2 2 1 1 424 1069 762
+2196 2 2 1 1 335 704 1223
+2197 2 2 1 1 279 916 1079
+2198 2 2 1 1 44 45 1165
+2199 2 2 1 1 290 1095 826
+2200 2 2 1 1 60 61 973
+2201 2 2 1 1 230 786 1091
+2202 2 2 1 1 115 116 1320
+2203 2 2 1 1 359 1108 727
+2204 2 2 1 1 98 664 1327
+2205 2 2 1 1 97 98 1327
+2206 2 2 1 1 457 742 1158
+2207 2 2 1 1 443 1378 727
+2208 2 2 1 1 496 1385 937
+2209 2 2 1 1 582 1053 1301
+2210 2 2 1 1 123 1032 124
+2211 2 2 1 1 243 888 930
+2212 2 2 1 1 147 968 945
+2213 2 2 1 1 275 842 1258
+2214 2 2 1 1 152 1114 153
+2215 2 2 1 1 29 1067 234
+2216 2 2 1 1 167 790 858
+2217 2 2 1 1 312 833 1206
+2218 2 2 1 1 480 1192 1230
+2219 2 2 1 1 421 1189 725
+2220 2 2 1 1 482 859 1117
+2221 2 2 1 1 160 161 1353
+2222 2 2 1 1 298 879 1225
+2223 2 2 1 1 431 1095 775
+2224 2 2 1 1 95 96 1348
+2225 2 2 1 1 328 725 1189
+2226 2 2 1 1 107 569 1140
+2227 2 2 1 1 17 85 1126
+2228 2 2 1 1 407 1223 704
+2229 2 2 1 1 592 1021 1306
+2230 2 2 1 1 435 744 1114
+2231 2 2 1 1 335 1365 704
+2232 2 2 1 1 215 730 1160
+2233 2 2 1 1 196 1367 197
+2234 2 2 1 1 516 1048 854
+2235 2 2 1 1 372 872 1337
+2236 2 2 1 1 529 1225 879
+2237 2 2 1 1 462 1220 816
+2238 2 2 1 1 411 763 1056
+2239 2 2 1 1 303 1068 586
+2240 2 2 1 1 265 990 766
+2241 2 2 1 1 569 1135 1140
+2242 2 2 1 1 52 53 1033
+2243 2 2 1 1 65 66 1198
+2244 2 2 1 1 314 768 1304
+2245 2 2 1 1 613 1277 1148
+2246 2 2 1 1 457 1158 715
+2247 2 2 1 1 513 1276 998
+2248 2 2 1 1 351 761 1071
+2249 2 2 1 1 447 723 1041
+2250 2 2 1 1 328 1194 725
+2251 2 2 1 1 203 1047 204
+2252 2 2 1 1 538 722 1324
+2253 2 2 1 1 516 1016 1048
+2254 2 2 1 1 282 1196 855
+2255 2 2 1 1 346 816 1220
+2256 2 2 1 1 276 1386 1104
+2257 2 2 1 1 15 1232 151
+2258 2 2 1 1 493 850 1060
+2259 2 2 1 1 425 966 1083
+2260 2 2 1 1 245 1038 1081
+2261 2 2 1 1 402 824 971
+2262 2 2 1 1 141 142 1058
+2263 2 2 1 1 483 1175 1124
+2264 2 2 1 1 4 93 1274
+2265 2 2 1 1 476 1000 1074
+2266 2 2 1 1 430 1074 1000
+2267 2 2 1 1 74 75 1383
+2268 2 2 1 1 505 1218 1031
+2269 2 2 1 1 202 718 1205
+2270 2 2 1 1 185 1281 186
+2271 2 2 1 1 160 1353 865
+2272 2 2 1 1 8 1181 892
+2273 2 2 1 1 399 1039 801
+2274 2 2 1 1 171 1111 174
+2275 2 2 1 1 142 804 1058
+2276 2 2 1 1 166 1002 1373
+2277 2 2 1 1 768 1362 1401
+2278 2 2 1 1 264 1117 760
+2279 2 2 1 1 431 826 1095
+2280 2 2 1 1 326 1305 1152
+2281 2 2 1 1 214 915 1249
+2282 2 2 1 1 12 1352 175
+2283 2 2 1 1 367 933 1357
+2284 2 2 1 1 465 1147 749
+2285 2 2 1 1 636 1152 1305
+2286 2 2 1 1 181 995 1372
+2287 2 2 1 1 193 794 1263
+2288 2 2 1 1 283 1004 905
+2289 2 2 1 1 535 1281 1118
+2290 2 2 1 1 454 1354 714
+2291 2 2 1 1 464 730 1331
+2292 2 2 1 1 252 1402 749
+2293 2 2 1 1 409 743 941
+2294 2 2 1 1 213 1262 915
+2295 2 2 1 1 270 1051 758
+2296 2 2 1 1 498 823 1263
+2297 2 2 1 1 28 960 928
+2298 2 2 1 1 318 753 1257
+2299 2 2 1 1 248 774 1171
+2300 2 2 1 1 13 831 1109
+2301 2 2 1 1 359 727 1378
+2302 2 2 1 1 402 783 1130
+2303 2 2 1 1 478 1181 1035
+2304 2 2 1 1 252 749 1191
+2305 2 2 1 1 460 1070 1315
+2306 2 2 1 1 266 819 1290
+2307 2 2 1 1 455 1148 1277
+2308 2 2 1 1 192 1263 823
+2309 2 2 1 1 22 988 206
+2310 2 2 1 1 386 769 1104
+2311 2 2 1 1 551 820 1249
+2312 2 2 1 1 4 1274 92
+2313 2 2 1 1 223 1029 228
+2314 2 2 1 1 7 1135 119
+2315 2 2 1 1 347 868 1349
+2316 2 2 1 1 280 978 896
+2317 2 2 1 1 351 1380 738
+2318 2 2 1 1 143 1282 144
+2319 2 2 1 1 271 788 1221
+2320 2 2 1 1 454 745 1354
+2321 2 2 1 1 502 1374 841
+2322 2 2 1 1 396 738 1381
+2323 2 2 1 1 552 998 1276
+2324 2 2 1 1 465 749 1402
+2325 2 2 1 1 178 841 1374
+2326 2 2 1 1 53 1362 1033
+2327 2 2 1 1 409 941 1177
+2328 2 2 1 1 283 890 1185
+2329 2 2 1 1 320 1064 1306
+2330 2 2 1 1 215 1249 820
+2331 2 2 1 1 442 1121 907
+2332 2 2 1 1 188 189 1161
+2333 2 2 1 1 491 1071 832
+2334 2 2 1 1 35 36 1328
+2335 2 2 1 1 300 1217 961
+2336 2 2 1 1 564 953 1300
+2337 2 2 1 1 442 1113 1121
+2338 2 2 1 1 139 1303 920
+2339 2 2 1 1 482 1314 859
+2340 2 2 1 1 45 46 1134
+2341 2 2 1 1 247 1360 894
+2342 2 2 1 1 344 714 1354
+2343 2 2 1 1 292 859 1314
+2344 2 2 1 1 132 1202 133
+2345 2 2 1 1 186 1281 767
+2346 2 2 1 1 258 1048 951
+2347 2 2 1 1 233 880 1391
+2348 2 2 1 1 230 1127 231
+2349 2 2 1 1 398 801 1096
+2350 2 2 1 1 161 1260 162
+2351 2 2 1 1 461 1057 918
+2352 2 2 1 1 53 54 1362
+2353 2 2 1 1 237 238 1261
+2354 2 2 1 1 186 187 1382
+2355 2 2 1 1 306 1061 1324
+2356 2 2 1 1 216 1080 1331
+2357 2 2 1 1 282 1338 1196
+2358 2 2 1 1 50 51 1285
+2359 2 2 1 1 126 1369 853
+2360 2 2 1 1 6 1136 167
+2361 2 2 1 1 466 1299 1199
+2362 2 2 1 1 419 1016 786
+2363 2 2 1 1 61 776 973
+2364 2 2 1 1 140 1141 141
+2365 2 2 1 1 497 853 1369
+2366 2 2 1 1 228 870 1255
+2367 2 2 1 1 68 682 1169
+2368 2 2 1 1 344 1354 745
+2369 2 2 1 1 214 215 1160
+2370 2 2 1 1 284 1056 1101
+2371 2 2 1 1 54 55 1401
+2372 2 2 1 1 266 1290 798
+2373 2 2 1 1 213 1105 799
+2374 2 2 1 1 418 844 648
+2375 2 2 1 1 550 1368 898
+2376 2 2 1 1 492 1341 864
+2377 2 2 1 1 392 787 1055
+2378 2 2 1 1 219 220 1273
+2379 2 2 1 1 258 854 1048
+2380 2 2 1 1 18 224 1131
+2381 2 2 1 1 472 839 1392
+2382 2 2 1 1 181 1387 182
+2383 2 2 1 1 241 864 1341
+2384 2 2 1 1 497 1179 853
+2385 2 2 1 1 312 1206 553
+2386 2 2 1 1 206 988 619
+2387 2 2 1 1 26 1237 1007
+2388 2 2 1 1 398 853 1179
+2389 2 2 1 1 120 849 818
+2390 2 2 1 1 579 1400 767
+2391 2 2 1 1 696 1078 1213
+2392 2 2 1 1 353 1028 864
+2393 2 2 1 1 264 755 1224
+2394 2 2 1 1 97 1327 623
+2395 2 2 1 1 474 846 1072
+2396 2 2 1 1 221 222 1256
+2397 2 2 1 1 570 1255 870
+2398 2 2 1 1 850 1261 1060
+2399 2 2 1 1 586 782 1085
+2400 2 2 1 1 274 1086 829
+2401 2 2 1 1 434 1099 1251
+2402 2 2 1 1 492 864 1028
+2403 2 2 1 1 298 1283 1207
+2404 2 2 1 1 509 1185 1288
+2405 2 2 1 1 414 1059 1024
+2406 2 2 1 1 118 1172 122
+2407 2 2 1 1 536 1007 1237
+2408 2 2 1 1 482 1117 1224
+2409 2 2 1 1 10 817 1361
+2410 2 2 1 1 65 648 1076
+2411 2 2 1 1 508 1081 1038
+2412 2 2 1 1 450 1116 689
+2413 2 2 1 1 220 1201 221
+2414 2 2 1 1 186 1400 187
+2415 2 2 1 1 694 943 1274
+2416 2 2 1 1 283 905 1148
+2417 2 2 1 1 283 1148 890
+2418 2 2 1 1 257 1019 1097
+2419 2 2 1 1 305 1226 1143
+2420 2 2 1 1 592 1306 1064
+2421 2 2 1 1 425 1083 918
+2422 2 2 1 1 408 1143 739
+2423 2 2 1 1 422 1213 829
+2424 2 2 1 1 424 987 1290
+2425 2 2 1 1 263 709 1349
+2426 2 2 1 1 499 1335 911
+2427 2 2 1 1 546 877 1365
+2428 2 2 1 1 340 1182 788
+2429 2 2 1 1 440 981 1017
+2430 2 2 1 1 12 175 1370
+2431 2 2 1 1 392 855 1196
+2432 2 2 1 1 264 760 1396
+2433 2 2 1 1 19 838 1277
+2434 2 2 1 1 551 1249 915
+2435 2 2 1 1 22 206 1164
+2436 2 2 1 1 298 1207 879
+2437 2 2 1 1 487 942 1236
+2438 2 2 1 1 404 879 1207
+2439 2 2 1 1 416 1206 833
+2440 2 2 1 1 183 184 1248
+2441 2 2 1 1 455 890 1148
+2442 2 2 1 1 132 133 1238
+2443 2 2 1 1 96 752 1348
+2444 2 2 1 1 634 1288 1185
+2445 2 2 1 1 197 1367 1115
+2446 2 2 1 1 159 1313 160
+2447 2 2 1 1 445 1393 758
+2448 2 2 1 1 436 1348 752
+2449 2 2 1 1 128 1253 129
+2450 2 2 1 1 357 1156 811
+2451 2 2 1 1 420 1340 964
+2452 2 2 1 1 74 838 1210
+2453 2 2 1 1 570 1310 899
+2454 2 2 1 1 288 1177 914
+2455 2 2 1 1 506 1086 1326
+2456 2 2 1 1 795 982 1265
+2457 2 2 1 1 443 773 1378
+2458 2 2 1 1 636 1334 1152
+2459 2 2 1 1 455 1277 838
+2460 2 2 1 1 375 1236 942
+2461 2 2 1 1 434 852 1099
+2462 2 2 1 1 324 836 1280
+2463 2 2 1 1 478 780 1319
+2464 2 2 1 1 24 166 1192
+2465 2 2 1 1 423 1065 881
+2466 2 2 1 1 479 795 1265
+2467 2 2 1 1 139 140 1303
+2468 2 2 1 1 446 1388 1014
+2469 2 2 1 1 417 1062 923
+2470 2 2 1 1 505 1360 705
+2471 2 2 1 1 462 816 1273
+2472 2 2 1 1 151 789 1233
+2473 2 2 1 1 200 201 1345
+2474 2 2 1 1 441 1256 1119
+2475 2 2 1 1 517 1296 1267
+2476 2 2 1 1 214 1249 215
+2477 2 2 1 1 129 130 1336
+2478 2 2 1 1 656 1267 1296
+2479 2 2 1 1 180 181 1372
+2480 2 2 1 1 177 178 1374
+2481 2 2 1 1 288 1031 1218
+2482 2 2 1 1 126 127 1369
+2483 2 2 1 1 576 878 1287
+2484 2 2 1 1 308 911 1335
+2485 2 2 1 1 359 912 1108
+2486 2 2 1 1 21 1230 166
+2487 2 2 1 1 212 1262 213
+2488 2 2 1 1 575 1199 1299
+2489 2 2 1 1 25 1209 206
+2490 2 2 1 1 448 873 706
+2491 2 2 1 1 367 1357 785
+2492 2 2 1 1 217 1322 218
+2493 2 2 1 1 573 915 1262
+2494 2 2 1 1 7 1043 1139
+2495 2 2 1 1 419 786 1142
+2496 2 2 1 1 470 945 968
+2497 2 2 1 1 504 1108 912
+2498 2 2 1 1 92 1274 943
+2499 2 2 1 1 191 1389 192
+2500 2 2 1 1 659 919 1059
+2501 2 2 1 1 113 1133 114
+2502 2 2 1 1 219 1273 816
+2503 2 2 1 1 186 767 1400
+2504 2 2 1 1 609 1385 1298
+2505 2 2 1 1 192 193 1263
+2506 2 2 1 1 342 1093 943
+2507 2 2 1 1 461 923 1062
+2508 2 2 1 1 303 1085 798
+2509 2 2 1 1 517 1242 1296
+2510 2 2 1 1 199 856 1124
+2511 2 2 1 1 19 1210 838
+2512 2 2 1 1 263 1229 810
+2513 2 2 1 1 413 815 1243
+2514 2 2 1 1 549 1236 1397
+2515 2 2 1 1 581 770 1037
+2516 2 2 1 1 403 1339 885
+2517 2 2 1 1 679 1087 1045
+2518 2 2 1 1 72 680 1343
+2519 2 2 1 1 438 914 1177
+2520 2 2 1 1 129 1253 845
+2521 2 2 1 1 134 1242 805
+2522 2 2 1 1 274 1078 861
+2523 2 2 1 1 116 887 1359
+2524 2 2 1 1 436 914 934
+2525 2 2 1 1 196 831 1367
+2526 2 2 1 1 359 1378 773
+2527 2 2 1 1 647 1390 1190
+2528 2 2 1 1 501 1304 768
+2529 2 2 1 1 355 1392 839
+2530 2 2 1 1 334 1190 1390
+2531 2 2 1 1 35 1328 753
+2532 2 2 1 1 198 1115 884
+2533 2 2 1 1 415 1103 858
+2534 2 2 1 1 21 1373 893
+2535 2 2 1 1 439 1017 981
+2536 2 2 1 1 9 1059 919
+2537 2 2 1 1 549 1397 1009
+2538 2 2 1 1 316 1154 1315
+2539 2 2 1 1 274 829 1213
+2540 2 2 1 1 289 1083 966
+2541 2 2 1 1 6 944 1136
+2542 2 2 1 1 486 845 1253
+2543 2 2 1 1 438 1177 941
+2544 2 2 1 1 409 1167 743
+2545 2 2 1 1 325 1316 681
+2546 2 2 1 1 288 1218 1177
+2547 2 2 1 1 54 1401 1362
+2548 2 2 1 1 427 1361 817
+2549 2 2 1 1 94 1014 1388
+2550 2 2 1 1 465 1021 1147
+2551 2 2 1 1 327 1211 1240
+2552 2 2 1 1 20 1200 1076
+2553 2 2 1 1 169 1364 170
+2554 2 2 1 1 296 946 1159
+2555 2 2 1 1 270 1319 780
+2556 2 2 1 1 184 875 1118
+2557 2 2 1 1 461 918 1083
+2558 2 2 1 1 270 758 1393
+2559 2 2 1 1 550 1318 1286
+2560 2 2 1 1 473 1139 1043
+2561 2 2 1 1 261 1009 1397
+2562 2 2 1 1 389 1332 824
+2563 2 2 1 1 158 1284 792
+2564 2 2 1 1 523 817 1188
+2565 2 2 1 1 269 877 1295
+2566 2 2 1 1 93 694 1274
+2567 2 2 1 1 428 928 960
+2568 2 2 1 1 261 1397 803
+2569 2 2 1 1 65 1198 648
+2570 2 2 1 1 5 736 1222
+2571 2 2 1 1 598 1315 1154
+2572 2 2 1 1 355 839 1294
+2573 2 2 1 1 606 1240 1211
+2574 2 2 1 1 560 903 1120
+2575 2 2 1 1 27 233 1391
+2576 2 2 1 1 387 1377 812
+2577 2 2 1 1 453 1150 892
+2578 2 2 1 1 404 1207 1009
+2579 2 2 1 1 300 1287 878
+2580 2 2 1 1 499 1193 1081
+2581 2 2 1 1 318 1257 780
+2582 2 2 1 1 295 1147 1021
+2583 2 2 1 1 463 1196 1338
+2584 2 2 1 1 446 1395 962
+2585 2 2 1 1 499 911 1193
+2586 2 2 1 1 231 1127 948
+2587 2 2 1 1 558 1197 922
+2588 2 2 1 1 5 1222 866
+2589 2 2 1 1 17 1126 794
+2590 2 2 1 1 505 894 1360
+2591 2 2 1 1 320 922 1197
+2592 2 2 1 1 586 1068 790
+2593 2 2 1 1 75 759 1383
+2594 2 2 1 1 245 1081 1193
+2595 2 2 1 1 549 1207 1283
+2596 2 2 1 1 433 907 1121
+2597 2 2 1 1 269 828 1371
+2598 2 2 1 1 604 958 1208
+2599 2 2 1 1 273 1215 723
+2600 2 2 1 1 611 1366 1184
+2601 2 2 1 1 550 1286 959
+2602 2 2 1 1 456 728 1217
+2603 2 2 1 1 494 1073 1357
+2604 2 2 1 1 43 908 1020
+2605 2 2 1 1 582 1193 911
+2606 2 2 1 1 483 1184 1366
+2607 2 2 1 1 119 1135 849
+2608 2 2 1 1 398 1179 896
+2609 2 2 1 1 528 1391 880
+2610 2 2 1 1 628 1279 1317
+2611 2 2 1 1 561 1082 1358
+2612 2 2 1 1 610 1042 1043
+2613 2 2 1 1 539 1057 1311
+2614 2 2 1 1 555 1317 1279
+2615 2 2 1 1 675 1130 1098
+2616 2 2 1 1 447 1405 928
+2617 2 2 1 1 512 909 1163
+2618 2 2 1 1 435 957 1221
+2619 2 2 1 1 704 1365 877
+2620 2 2 1 1 474 1097 1019
+2621 2 2 1 1 205 834 1164
+2622 2 2 1 1 248 1171 1026
+2623 2 2 1 1 407 892 1181
+2624 2 2 1 1 285 1228 1075
+2625 2 2 1 1 611 1184 906
+2626 2 2 1 1 349 883 1183
+2627 2 2 1 1 444 1257 753
+2628 2 2 1 1 519 1358 1082
+2629 2 2 1 1 241 1341 835
+2630 2 2 1 1 449 1163 909
+2631 2 2 1 1 91 943 1093
+2632 2 2 1 1 191 989 1389
+2633 2 2 1 1 274 1213 1078
+2634 2 2 1 1 496 1298 1385
+2635 2 2 1 1 409 1177 1218
+2636 2 2 1 1 445 814 1393
+2637 2 2 1 1 238 1060 1261
+2638 2 2 1 1 438 941 893
+2639 2 2 1 1 144 1282 1002
+2640 2 2 1 1 289 1180 1272
+2641 2 2 1 1 427 804 1361
+2642 2 2 1 1 828 1195 1371
+2643 2 2 1 1 264 1224 1117
+2644 2 2 1 1 424 1363 1069
+2645 2 2 1 1 358 906 1184
+2646 2 2 1 1 263 874 1229
+2647 2 2 1 1 424 1290 819
+2648 2 2 1 1 287 981 1355
+2649 2 2 1 1 418 648 1198
+2650 2 2 1 1 537 1115 1367
+2651 2 2 1 1 503 1136 944
+2652 2 2 1 1 187 1192 1382
+2653 2 2 1 1 196 1109 831
+2654 2 2 1 1 320 1306 922
+2655 2 2 1 1 518 1379 865
+2656 2 2 1 1 166 1230 1192
+2657 2 2 1 1 533 1362 768
+2658 2 2 1 1 237 1261 1288
+2659 2 2 1 1 562 1050 1381
+2660 2 2 1 1 591 1272 1180
+2661 2 2 1 1 396 1381 1050
+2662 2 2 1 1 593 983 1291
+2663 2 2 1 1 28 928 1405
+2664 2 2 1 1 406 1045 1087
+2665 2 2 1 1 492 1258 1125
+2666 2 2 1 1 436 1014 1348
+2667 2 2 1 1 297 1121 1113
+2668 2 2 1 1 457 1026 1171
+2669 2 2 1 1 376 904 1384
+2670 2 2 1 1 120 1359 887
+2671 2 2 1 1 681 1316 968
+2672 2 2 1 1 426 1295 877
+2673 2 2 1 1 591 886 1272
+2674 2 2 1 1 408 1168 1302
+2675 2 2 1 1 465 922 1306
+2676 2 2 1 1 609 1298 1018
+2677 2 2 1 1 287 1355 1049
+2678 2 2 1 1 74 1383 838
+2679 2 2 1 1 267 917 1245
+2680 2 2 1 1 304 1291 983
+2681 2 2 1 1 314 1304 822
+2682 2 2 1 1 609 1227 1385
+2683 2 2 1 1 510 1286 1318
+2684 2 2 1 1 103 736 1183
+2685 2 2 1 1 533 1170 1033
+2686 2 2 1 1 432 893 1373
+2687 2 2 1 1 427 1245 917
+2688 2 2 1 1 175 1352 889
+2689 2 2 1 1 355 810 1392
+2690 2 2 1 1 169 1046 1364
+2691 2 2 1 1 500 1104 1386
+2692 2 2 1 1 480 869 1382
+2693 2 2 1 1 593 1291 1275
+2694 2 2 1 1 236 1330 900
+2695 2 2 1 1 552 1174 998
+2696 2 2 1 1 424 819 1363
+2697 2 2 1 1 507 1275 1291
+2698 2 2 1 1 349 1183 736
+2699 2 2 1 1 460 1344 1070
+2700 2 2 1 1 788 1182 1221
+2701 2 2 1 1 417 1346 1062
+2702 2 2 1 1 306 1250 958
+2703 2 2 1 1 188 1161 1123
+2704 2 2 1 1 302 1098 1130
+2705 2 2 1 1 448 1149 1234
+2706 2 2 1 1 501 768 1401
+2707 2 2 1 1 317 1385 1227
+2708 2 2 1 1 157 1239 1212
+2709 2 2 1 1 444 753 1328
+2710 2 2 1 1 269 1371 963
+2711 2 2 1 1 543 1033 1170
+2712 2 2 1 1 496 937 1313
+2713 2 2 1 1 27 1212 1356
+2714 2 2 1 1 509 1261 850
+2715 2 2 1 1 542 1231 1023
+2716 2 2 1 1 493 899 1310
+2717 2 2 1 1 160 1313 937
+2718 2 2 1 1 312 737 1404
+2719 2 2 1 1 436 1395 1014
+2720 2 2 1 1 51 851 1285
+2721 2 2 1 1 451 1384 904
+2722 2 2 1 1 563 1302 1168
+2723 2 2 1 1 460 1227 1344
+2724 2 2 1 1 680 977 1343
+2725 2 2 1 1 549 1009 1207
+2726 2 2 1 1 12 1370 994
+2727 2 2 1 1 114 1133 1042
+2728 2 2 1 1 426 1110 1246
+2729 2 2 1 1 115 1320 947
+2730 2 2 1 1 566 969 1250
+2731 2 2 1 1 206 1209 1164
+2732 2 2 1 1 551 915 1241
+2733 2 2 1 1 308 1308 911
+2734 2 2 1 1 293 992 1268
+2735 2 2 1 1 339 959 1286
+2736 2 2 1 1 472 1229 874
+2737 2 2 1 1 462 1273 1089
+2738 2 2 1 1 432 1403 893
+2739 2 2 1 1 289 1272 923
+2740 2 2 1 1 484 1300 953
+2741 2 2 1 1 33 863 1103
+2742 2 2 1 1 509 1288 1261
+2743 2 2 1 1 299 1265 982
+2744 2 2 1 1 442 1228 1113
+2745 2 2 1 1 519 1023 1231
+2746 2 2 1 1 461 1062 1311
+2747 2 2 1 1 459 1268 992
+2748 2 2 1 1 466 1178 1299
+2749 2 2 1 1 446 1014 1395
+2750 2 2 1 1 472 1392 1229
+2751 2 2 1 1 14 964 1340
+2752 2 2 1 1 311 953 1309
+2753 2 2 1 1 461 1311 1057
+2754 2 2 1 1 245 1300 1038
+2755 2 2 1 1 464 1331 1080
+2756 2 2 1 1 7 1140 1135
+2757 2 2 1 1 162 1260 1008
+2758 2 2 1 1 728 961 1217
+2759 2 2 1 1 287 1049 1251
+2760 2 2 1 1 285 1406 1228
+2761 2 2 1 1 323 1027 1195
+2762 2 2 1 1 573 1241 915
+2763 2 2 1 1 499 1197 1335
+2764 2 2 1 1 453 963 1371
+2765 2 2 1 1 628 1317 982
+2766 2 2 1 1 465 1402 922
+2767 2 2 1 1 299 982 1317
+2768 2 2 1 1 7 1139 1140
+2769 2 2 1 1 276 956 1386
+2770 2 2 1 1 442 1075 1228
+2771 2 2 1 1 684 1049 1355
+2772 2 2 1 1 487 1236 1283
+2773 2 2 1 1 182 1387 1199
+2774 2 2 1 1 159 1379 977
+2775 2 2 1 1 579 1214 1400
+2776 2 2 1 1 282 1062 1346
+2777 2 2 1 1 49 998 1174
+2778 2 2 1 1 282 1311 1062
+2779 2 2 1 1 549 1283 1236
+2780 2 2 1 1 440 1355 981
+2781 2 2 1 1 25 1271 1270
+2782 2 2 1 1 558 1335 1197
+2783 2 2 1 1 481 1123 1161
+2784 2 2 1 1 287 1251 1099
+2785 2 2 1 1 102 1183 883
+2786 2 2 1 1 354 1018 1298
+2787 2 2 1 1 500 994 1370
+2788 2 2 1 1 404 1375 1011
+2789 2 2 1 1 787 1216 1055
+2790 2 2 1 1 300 1163 1287
+2791 2 2 1 1 449 1287 1163
+2792 2 2 1 1 495 1225 1254
+2793 2 2 1 1 479 1011 1375
+2794 2 2 1 1 404 1009 1375
+2795 2 2 1 1 432 1002 1282
+2796 2 2 1 1 484 1038 1300
+2797 2 2 1 1 563 1144 1302
+2798 2 2 1 1 577 1356 1212
+2799 2 2 1 1 547 1302 1144
+2800 2 2 1 1 569 849 1135
+2801 2 2 1 1 103 1222 736
+2802 2 2 1 1 475 1125 1258
+2803 2 2 1 1 577 1212 1239
+2804 2 2 1 1 369 1312 1132
+2805 2 2 1 1 220 1089 1273
+2806 2 2 1 1 432 1373 1002
+2807 2 2 1 1 518 977 1379
+2808 2 2 1 1 529 1254 1225
+2809 2 2 1 1 690 1295 1128
+2810 2 2 1 1 246 1070 1344
+2811 2 2 1 1 511 1113 1228
+2812 2 2 1 1 435 1221 1182
+2813 2 2 1 1 473 1042 1133
+2814 2 2 1 1 571 1132 1312
+2815 2 2 1 1 313 1138 1310
+2816 2 2 1 1 452 1012 834
+2817 2 2 1 1 493 1310 1138
+2818 2 2 1 1 470 968 1316
+2819 2 2 1 1 95 1348 1014
+2820 2 2 1 1 286 1299 1178
+2821 2 2 1 1 426 1128 1295
+2822 2 2 1 1 458 1152 1334
+2823 2 2 1 1 473 1043 1042
+2824 2 2 1 1 436 934 1395
+2825 2 2 1 1 522 1347 1312
+2826 2 2 1 1 609 1344 1227
+2827 2 2 1 1 453 1371 1195
+2828 2 2 1 1 222 1119 1256
+2829 2 2 1 1 518 1343 977
+2830 2 2 1 1 522 1271 1347
+2831 2 2 1 1 294 1041 1376
+2832 2 2 1 1 282 1346 1338
+2833 2 2 1 1 571 1312 1347
+2834 2 2 1 1 568 1338 1346
+2835 2 2 1 1 525 1394 1247
+2836 2 2 1 1 194 1347 1271
+2837 2 2 1 1 304 1358 1231
+2838 2 2 1 1 266 1234 1149
+2839 2 2 1 1 519 1231 1358
+2840 2 2 1 1 466 1199 1387
+2841 2 2 1 1 104 866 1222
+2842 2 2 1 1 64 1076 1200
+2843 2 2 1 1 27 1391 1321
+2844 2 2 1 1 427 1399 1245
+2845 2 2 1 1 567 1247 1394
+2846 2 2 1 1 810 1229 1392
+2847 2 2 1 1 187 1400 1214
+2848 2 2 1 1 511 1228 1406
+2849 2 2 1 1 84 619 988
+2850 2 2 1 1 205 1164 1209
+2851 2 2 1 1 173 1055 1216
+2852 2 2 1 1 528 1321 1391
+2853 2 2 1 1 658 1245 1399
+2854 2 2 1 1 522 1270 1271
+2855 2 2 1 1 23 118 122
+2856 2 2 1 1 23 1066 118
+2857 2 2 1 1 23 1259 171
+2858 2 2 1 1 23 174 1036
+2859 2 2 1 1 25 205 1209
+2860 2 2 1 1 25 1270 205
+2861 2 2 1 1 26 195 1237
+2862 2 2 1 1 26 1007 223
+2863 2 2 1 1 27 157 1212
+2864 2 2 1 1 27 1321 207
+2865 2 2 1 1 121 122 1172
+2866 2 2 1 1 170 1111 171
+2867 2 2 1 1 173 1216 174
+2868 2 2 1 1 22 83 988
+2869 2 2 1 1 171 174 23
+2870 2 2 1 1 223 228 26
+2871 2 2 1 1 27 207 157
+$EndElements
diff --git a/exercises/solution/exercise-fractures/matrixproblem.hh b/exercises/solution/exercise-fractures/matrixproblem.hh
new file mode 100644
index 00000000..ec25d70a
--- /dev/null
+++ b/exercises/solution/exercise-fractures/matrixproblem.hh
@@ -0,0 +1,277 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+ * \brief The sub-problem for the matrix domain in the exercise on two-phase flow in fractured porous media.
+ */
+#ifndef DUMUX_COURSE_FRACTURESEXERCISE_MATRIX_PROBLEM_HH
+#define DUMUX_COURSE_FRACTURESEXERCISE_MATRIX_PROBLEM_HH
+
+// we use alu grid for the discretization of the matrix domain
+#include <dune/alugrid/grid.hh>
+
+// we need this in this test in order to define the domain
+// id of the fracture problem (see function interiorBoundaryTypes())
+#include <dune/common/indices.hh>
+
+// we want to simulate nitrogen gas transport in a water-saturated medium
+#include <dumux/material/fluidsystems/h2on2.hh>
+
+// We are using the framework for models that consider coupling
+// across the element facets of the bulk domain. This has some
+// properties defined, which we have to inherit here. In this
+// exercise we want to use a cell-centered finite volume scheme
+// with tpfa.
+#include <dumux/multidomain/facet/cellcentered/tpfa/properties.hh>
+
+// include the base problem and the model we inherit from
+#include <dumux/porousmediumflow/problem.hh>
+#include <dumux/porousmediumflow/2p/model.hh>
+
+// the spatial parameters (permeabilities, material parameters etc.)
+#include "matrixspatialparams.hh"
+
+namespace Dumux {
+
+// forward declaration of the problem class
+template<class TypeTag> class MatrixSubProblem;
+
+namespace Properties {
+NEW_PROP_TAG(GridData); // forward declaration of property
+
+// create the type tag node for the matrix sub-problem
+// We need to put the facet-coupling type tag after the physics-related type tag
+// because it overwrites some of the properties inherited from "TwoP". This is
+// necessary because we need e.g. a modified implementation of darcys law that
+// evaluates the coupling conditions on faces that coincide with the fractures.
+NEW_TYPE_TAG(MatrixProblemTypeTag, INHERITS_FROM(TwoP, CCTpfaFacetCouplingModel));
+// Set the grid type
+SET_TYPE_PROP(MatrixProblemTypeTag, Grid, Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>);
+// Set the problem type
+SET_TYPE_PROP(MatrixProblemTypeTag, Problem, MatrixSubProblem<TypeTag>);
+// set the spatial params
+SET_TYPE_PROP(MatrixProblemTypeTag,
+              SpatialParams,
+              MatrixSpatialParams< typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
+                                   typename GET_PROP_TYPE(TypeTag, Scalar) >);
+// the fluid system
+SET_TYPE_PROP(MatrixProblemTypeTag,
+              FluidSystem,
+              Dumux::FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), /*useComplexRelations*/true>);
+} // end namespace Properties
+
+/*!
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+ * \brief The sub-problem for the matrix domain in the exercise on two-phase flow in fractured porous media.
+ */
+template<class TypeTag>
+class MatrixSubProblem : public PorousMediumFlowProblem<TypeTag>
+{
+    using ParentType = PorousMediumFlowProblem<TypeTag>;
+
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+    using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables);
+    using PrimaryVariables = typename GridVariables::PrimaryVariables;
+    using Scalar = typename GridVariables::Scalar;
+
+    using FVGridGeometry = typename GridVariables::GridGeometry;
+    using FVElementGeometry = typename FVGridGeometry::LocalView;
+    using SubControlVolume = typename FVGridGeometry::SubControlVolume;
+    using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
+    using GridView = typename FVGridGeometry::GridView;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    // some indices for convenience
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+    enum
+    {
+        pressureIdx = Indices::pressureIdx,
+        saturationIdx = Indices::saturationIdx
+    };
+
+public:
+    //! The constructor
+    MatrixSubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                     std::shared_ptr<typename ParentType::SpatialParams> spatialParams,
+                     const std::string& paramGroup = "")
+    : ParentType(fvGridGeometry, spatialParams, paramGroup)
+    , boundaryOverPressure_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundaryOverPressure"))
+    , boundarySaturation_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundarySaturation"))
+    , isExercisePartA_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartA"))
+    , isExercisePartB_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartB"))
+    , isExercisePartC_(getParamFromGroup<bool>(paramGroup, "Problem.IsExercisePartC"))
+    {
+        // initialize the fluid system, i.e. the tabulation
+        // of water properties. Use the default p/T ranges.
+        using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+        FluidSystem::init();
+
+        // there can only be one exercise part active
+        if (isExercisePartA_ + isExercisePartB_ + isExercisePartC_ > 1)
+            DUNE_THROW(Dune::InvalidStateException, "Invalid combination of activated exercise parts");
+    }
+
+    //! Specifies the type of boundary condition at a given position
+    BoundaryTypes boundaryTypesAtPos(const GlobalPosition& globalPos) const
+    {
+        BoundaryTypes values;
+
+        // in the unmodified state, we consider buoancy-driven upwards migration
+        // of nitrogen and set Dirichlet BCs on the top and bottom boundary
+        if (!isExercisePartA_ && !isExercisePartB_ && !isExercisePartC_)
+        {
+            values.setAllNeumann();
+            if (globalPos[1] < 1e-6 || globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - 1e-6)
+                values.setAllDirichlet();
+        }
+        else
+        {
+            // for exercise part a,b & c we use no-flow boundaries everywhere
+            // except for the lower quarter of the left and the upper quarter of the right boundary
+            values.setAllNeumann();
+            if ( (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - 1e-6 && globalPos[1] > 75.0) ||
+                 (globalPos[0] < 1e-6 && globalPos[1] < 25.0) )
+                values.setAllDirichlet();
+        }
+
+        return values;
+    }
+
+    //! Specifies the type of interior boundary condition at a given position
+    BoundaryTypes interiorBoundaryTypes(const Element& element, const SubControlVolumeFace& scvf) const
+    {
+        BoundaryTypes values;
+
+        // Here we set the type of condition to be used on faces that coincide
+        // with a fracture. If Neumann is specified, a flux continuity condition
+        // on the basis of the normal fracture permeability is evaluated. If this
+        // permeability is lower than that of the matrix, this approach is able to
+        // represent the pressure jump across the fracture. If Dirichlet is set,
+        // the pressure jump across the fracture is neglected and the pressure inside
+        // the fracture is directly applied at the interface between fracture and matrix.
+        // This assumption is justified for highly-permeable fractures, but lead to erroneous
+        // results for low-permeable fractures.
+        // Here, we consider "open" fractures for which we cannot define a normal permeability
+        // and for which the pressure jump across the fracture is neglectable. Thus, we set
+        // the interior boundary conditions to Dirichlet.
+        // IMPORTANT: Note that you will never be asked to set any values at the interior boundaries!
+        //            This simply chooses a different interface condition!
+        values.setAllDirichlet();
+
+        if (isExercisePartB_)
+            values.setAllNeumann();
+        else if (isExercisePartC_)
+        {
+            // we need to obtain the domain marker of the fracture element that is coupled to this face
+            // therefore we first get the fracture problem from the coupling manager. For this test, we
+            // know that the fracture domain id is 1 (see main file)
+            static constexpr std::size_t fractureDomainId = 1;
+            const auto& fractureProblem = couplingManager().template problem<fractureDomainId>();
+
+            // use helper function in coupling manager to obtain the element this face couples to
+            const auto fractureElement = couplingManager().getLowDimElement(element, scvf);
+
+            // obtain marker from the spatial params of the fracture problem
+            const auto fractureElementMarker = fractureProblem.spatialParams().getElementDomainMarker(fractureElement);
+
+            // now define Neumann coupling on those elements that are defined as blocking
+            // fractures, i.e. marker == 2, see .geo file in grids folder
+            if (fractureElementMarker == 2)
+                values.setAllNeumann();
+        }
+
+        return values;
+    }
+
+    //! evaluates the Dirichlet boundary condition for a given position
+    PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const
+    {
+        // initialize values with the initial conditions
+        auto values = initialAtPos(globalPos);
+
+        // In the unmodified state of the exercise nitrogen is in contact
+        // with the domain on the center half of the lower boundary
+        if (!isExercisePartA_ && !isExercisePartB_ && !isExercisePartC_)
+        {
+            if (globalPos[1] < 1e-6 && globalPos[0] > 25.0 && globalPos[0] < 75.0)
+                values[saturationIdx] = boundarySaturation_;
+        }
+        // exercise parts a, b & c
+        else
+        {
+            // apply overpressure on the right Dirichlet boundary segment
+            if (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - 1e-6)
+            {
+                values[pressureIdx] += boundaryOverPressure_;
+                values[saturationIdx] = boundarySaturation_;
+            }
+        }
+
+        return values;
+    }
+
+    //! evaluate the initial conditions
+    PrimaryVariables initialAtPos(const GlobalPosition& globalPos) const
+    {
+        // For the grid used here, the height of the domain is equal
+        // to the maximum y-coordinate
+        const auto domainHeight = this->fvGridGeometry().bBoxMax()[1];
+
+        // we assume a constant water density of 1000 for initial conditions!
+        const auto& g = this->gravityAtPos(globalPos);
+        PrimaryVariables values;
+        Scalar densityW = 1000.0;
+        values[pressureIdx] = 1e5 - (domainHeight - globalPos[1])*densityW*g[1];
+        values[saturationIdx] = 0.0;
+        return values;
+    }
+
+    //! returns the temperature in \f$\mathrm{[K]}\f$ in the domain
+    Scalar temperature() const
+    { return 283.15; /*10°*/ }
+
+    //! sets the pointer to the coupling manager.
+    void setCouplingManager(std::shared_ptr<CouplingManager> cm)
+    { couplingManagerPtr_ = cm; }
+
+    //! returns reference to the coupling manager.
+    const CouplingManager& couplingManager() const
+    { return *couplingManagerPtr_; }
+
+private:
+    std::shared_ptr<CouplingManager> couplingManagerPtr_;
+
+    Scalar boundaryOverPressure_;
+    Scalar boundarySaturation_;
+    bool isExercisePartA_;
+    bool isExercisePartB_;
+    bool isExercisePartC_;
+};
+
+} // end namespace Dumux
+
+#endif
diff --git a/exercises/solution/exercise-fractures/matrixspatialparams.hh b/exercises/solution/exercise-fractures/matrixspatialparams.hh
new file mode 100644
index 00000000..4ca8c72e
--- /dev/null
+++ b/exercises/solution/exercise-fractures/matrixspatialparams.hh
@@ -0,0 +1,120 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+ * \brief The spatial parameters for the fracture sub-domain in the exercise
+ *        on two-phase flow in fractured porous media.
+ */
+#ifndef DUMUX_COURSE_FRACTURESEXERCISE_MATRIX_SPATIALPARAMS_HH
+#define DUMUX_COURSE_FRACTURESEXERCISE_MATRIX_SPATIALPARAMS_HH
+
+#include <dumux/io/grid/griddata.hh>
+
+#include <dumux/material/spatialparams/fv.hh>
+#include <dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh>
+#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
+
+namespace Dumux {
+
+/*!
+ * \ingroup MultiDomain
+ * \ingroup MultiDomainFacet
+ * \ingroup TwoPTests
+ * \brief The spatial params the two-phase facet coupling test
+ */
+template< class FVGridGeometry, class Scalar >
+class MatrixSpatialParams
+: public FVSpatialParams< FVGridGeometry, Scalar, MatrixSpatialParams<FVGridGeometry, Scalar> >
+{
+    using ThisType = MatrixSpatialParams< FVGridGeometry, Scalar >;
+    using ParentType = FVSpatialParams< FVGridGeometry, Scalar, ThisType >;
+
+    using GridView = typename FVGridGeometry::GridView;
+    using Grid = typename GridView::Grid;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    // use a regularized van-genuchten material law
+    using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
+
+public:
+    //! export the type used for permeabilities
+    using PermeabilityType = Scalar;
+
+    //! export the material law and parameters used
+    using MaterialLaw = EffToAbsLaw< EffectiveLaw >;
+    using MaterialLawParams = typename MaterialLaw::Params;
+
+    //! the constructor
+    MatrixSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                        std::shared_ptr<const Dumux::GridData<Grid>> gridData,
+                        const std::string& paramGroup)
+    : ParentType(fvGridGeometry)
+    , gridDataPtr_(gridData)
+    {
+        porosity_ = getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Porosity");
+        permeability_ = getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Permeability");
+
+        // set the material law parameters
+        materialLawParams_.setSnr(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Snr"));
+        materialLawParams_.setSnr(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.Swr"));
+        materialLawParams_.setVgAlpha(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.VGAlpha"));
+        materialLawParams_.setVgn(getParamFromGroup<Scalar>(paramGroup, "SpatialParams.VGN"));
+    }
+
+    //! Function for defining the (intrinsic) permeability \f$[m^2]\f$.
+    PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const
+    { return permeability_; }
+
+    //! Return the porosity
+    Scalar porosityAtPos(const GlobalPosition& globalPos) const
+    { return porosity_; }
+
+    //! Return the material law parameters
+    const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition& globalPos) const
+    { return materialLawParams_; }
+
+    //! Water is the wetting phase
+    template< class FluidSystem >
+    int wettingPhaseAtPos(const GlobalPosition& globalPos) const
+    {
+        // we set water as the wetting phase here
+        // which is phase0Idx in the H2oN2 fluid system
+        return FluidSystem::phase0Idx;
+    }
+
+    //! returns the domain marker for an element
+    int getElementDomainMarker(const Element& element) const
+    { return gridDataPtr_->getElementDomainMarker(element); }
+
+private:
+    //! pointer to the grid data (contains domain markers)
+    std::shared_ptr<const Dumux::GridData<Grid>> gridDataPtr_;
+
+    Scalar porosity_;
+    PermeabilityType permeability_;
+    MaterialLawParams materialLawParams_;
+};
+
+} // end namespace Dumux
+
+#endif
-- 
GitLab