From 859437ffb58c03c381dea0f73302d34ee7967084 Mon Sep 17 00:00:00 2001
From: Edward 'Ned' Coltman <nedc@flip.iws.uni-stuttgart.de>
Date: Mon, 16 Jul 2018 13:11:35 +0200
Subject: [PATCH] exercise-grids solution files

---
 .../exercise-grids/exercise_grids_solution.cc |  200 ++
 .../exercise_grids_solution.input             |   45 +
 .../exercise-grids/grids/grid_structured.msh  |  902 ++++++
 .../exercise-grids/grids/grid_unstructured.db |  Bin 0 -> 949 bytes
 .../grids/grid_unstructured.geo               |   17 +
 .../grids/grid_unstructured.msh               | 2495 +++++++++++++++++
 .../exercise-grids/injection2pproblem.hh      |  268 ++
 .../injection2pspatialparams.hh               |  172 ++
 8 files changed, 4099 insertions(+)
 create mode 100644 exercises/solution/exercise-grids/exercise_grids_solution.cc
 create mode 100644 exercises/solution/exercise-grids/exercise_grids_solution.input
 create mode 100644 exercises/solution/exercise-grids/grids/grid_structured.msh
 create mode 100644 exercises/solution/exercise-grids/grids/grid_unstructured.db
 create mode 100644 exercises/solution/exercise-grids/grids/grid_unstructured.geo
 create mode 100644 exercises/solution/exercise-grids/grids/grid_unstructured.msh
 create mode 100644 exercises/solution/exercise-grids/injection2pproblem.hh
 create mode 100644 exercises/solution/exercise-grids/injection2pspatialparams.hh

diff --git a/exercises/solution/exercise-grids/exercise_grids_solution.cc b/exercises/solution/exercise-grids/exercise_grids_solution.cc
new file mode 100644
index 00000000..9da491d6
--- /dev/null
+++ b/exercises/solution/exercise-grids/exercise_grids_solution.cc
@@ -0,0 +1,200 @@
+// -*- 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 The main file for the two-phase porousmediumflow problem of exercise Grids
+ */
+#include <config.h>
+
+#include <ctime>
+#include <iostream>
+
+#include <dune/common/parallel/mpihelper.hh>
+#include <dune/common/timer.hh>
+#include <dune/grid/io/file/dgfparser/dgfexception.hh>
+#include <dune/grid/io/file/vtk.hh>
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/common/defaultusagemessage.hh>
+
+#include <dumux/linear/amgbackend.hh>
+#include <dumux/nonlinear/newtonsolver.hh>
+
+#include <dumux/assembly/fvassembler.hh>
+#include <dumux/assembly/diffmethod.hh>
+
+#include <dumux/discretization/methods.hh>
+
+#include <dumux/io/vtkoutputmodule.hh>
+#include <dumux/io/grid/gridmanager.hh>
+
+// The problem file, where setup-specific boundary and initial conditions are defined.
+#include "injection2pproblem.hh"
+
+////////////////////////
+// the main function
+////////////////////////
+int main(int argc, char** argv) try
+{
+    using namespace Dumux;
+
+    // define the type tag for this problem
+    using TypeTag = TTAG(Injection2pCCTypeTag);
+
+    // 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);
+
+    // parse command line arguments and input file
+    Parameters::init(argc, argv);
+
+    // try to create a grid (from the given grid file or the input file)
+    GridManager<typename GET_PROP_TYPE(TypeTag, Grid)> gridManager;
+    gridManager.init();
+
+    ////////////////////////////////////////////////////////////
+    // run instationary non-linear problem on this grid
+    ////////////////////////////////////////////////////////////
+
+    // we compute on the leaf grid view
+    const auto& leafGridView = gridManager.grid().leafGridView();
+
+    // create the finite volume grid geometry
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
+    fvGridGeometry->update();
+
+    // the problem (initial and boundary conditions)
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    auto problem = std::make_shared<Problem>(fvGridGeometry);
+
+    // the solution vector
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    SolutionVector x(fvGridGeometry->numDofs());
+    problem->applyInitialSolution(x);
+    auto xOld = x;
+
+    // the grid variables
+    using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables);
+    auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
+    gridVariables->init(x, xOld);
+
+    // get some time loop parameters
+    // getParam<TYPE>("GROUPNAME.PARAMNAME") reads and sets parameter PARAMNAME
+    // of type TYPE given in the group GROUPNAME from the input file
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    const auto tEnd = getParam<Scalar>("TimeLoop.TEnd");
+    const auto maxDt = getParam<Scalar>("TimeLoop.MaxTimeStepSize");
+    auto dt = getParam<Scalar>("TimeLoop.DtInitial");
+
+    // intialize the vtk output module
+    using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields);
+    VtkOutputModule<TypeTag> vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name());
+    VtkOutputFields::init(vtkWriter); //! Add model specific output fields
+
+    // instantiate time loop
+    auto timeLoop = std::make_shared<TimeLoop<Scalar>>(0.0, dt, tEnd);
+    timeLoop->setMaxTimeStepSize(maxDt);
+
+    // the assembler with time loop for instationary problem
+    using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>;
+    auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop);
+
+    // the linear solver
+    using LinearSolver = AMGBackend<TypeTag>;
+    auto linearSolver = std::make_shared<LinearSolver>(leafGridView, fvGridGeometry->dofMapper());
+
+    // the non-linear solver
+    using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>;
+    NewtonSolver nonLinearSolver(assembler, linearSolver);
+
+    // time loop
+    timeLoop->start();
+    while (!timeLoop->finished())
+    {
+        // set previous solution for storage evaluations
+        assembler->setPreviousSolution(xOld);
+
+        //set time in problem (is used in time-dependent Neumann boundary condition)
+        problem->setTime(timeLoop->time()+timeLoop->timeStepSize());
+
+        // solve the non-linear system with time step control
+        nonLinearSolver.solve(x, *timeLoop);
+
+        // make the new solution the old solution
+        xOld = x;
+        gridVariables->advanceTimeStep();
+
+        // advance to the time loop to the next step
+        timeLoop->advanceTimeStep();
+
+        // report statistics of this time step
+        timeLoop->reportTimeStep();
+
+        // set new dt as suggested by the newton solver
+        timeLoop->setTimeStepSize(nonLinearSolver.suggestTimeStepSize(timeLoop->timeStepSize()));
+
+        // output to vtk
+        vtkWriter.write(timeLoop->time());
+    }
+
+    timeLoop->finalize(leafGridView.comm());
+
+    ////////////////////////////////////////////////////////////
+    // finalize, print dumux message to say goodbye
+    ////////////////////////////////////////////////////////////
+
+    // print dumux end message
+    if (mpiHelper.rank() == 0)
+    {
+        Parameters::print();
+        DumuxMessage::print(/*firstCall=*/false);
+    }
+
+    return 0;
+} // end main
+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-grids/exercise_grids_solution.input b/exercises/solution/exercise-grids/exercise_grids_solution.input
new file mode 100644
index 00000000..75af6c79
--- /dev/null
+++ b/exercises/solution/exercise-grids/exercise_grids_solution.input
@@ -0,0 +1,45 @@
+[TimeLoop]
+DtInitial = 3600 # in seconds
+TEnd = 3.154e9 # in seconds, i.e ten years
+
+[Grid]
+# UpperRight = 60 40
+# Cells = 24 16
+
+# TODO: Task 1: Globally refine your grid
+# Refinement = 2
+
+# TODO: Task 2: Develop even grid input parameters that can be split into zones
+# Positions0 = 0 60
+# Positions1 = 0 40
+# Cells0 = 24
+# Cells1 = 16
+# Grading0 = 1.0
+# Grading1 = 1.0
+
+# TODO: Task 3: Using the zoning and grading parameters, redevelop your grid to optimize your refinement in the areas that matter.
+Positions0 = 0 40 60
+Positions1 = 0 25 30 35 40
+Cells0 = 10 14
+Cells1 = 10 6 6 1
+Grading0 = 1.0 -1.25
+Grading1 = 1.0 -1.2 1.2 1.0
+
+# TODO: Task 4: Run your simulation the provided structured grid file ./grids/grid_structured.msh
+# File = ./grids/grid_structured.msh
+# File = ./grids/grid_structured.dgf
+
+# TODO: Task 5: Run your simulation the provided structured grid file ./grids/grid_unstructured.msh
+#File = ./grids/grid_unstructured.msh
+
+[Problem]
+Name = grid_exercise
+OnlyPlotMaterialLaws = true
+AquiferDepth = 2700.0 # m
+InjectionDuration = 2.628e6 # in seconds, i.e. one month
+
+[SpatialParams]
+PermeabilityAquitard = 1e-15 # m^2
+EntryPressureAquitard = 4.5e4 # Pa
+PermeabilityAquifer = 1e-12 # m^2
+EntryPressureAquifer = 1e4 # Pa
diff --git a/exercises/solution/exercise-grids/grids/grid_structured.msh b/exercises/solution/exercise-grids/grids/grid_structured.msh
new file mode 100644
index 00000000..56c53036
--- /dev/null
+++ b/exercises/solution/exercise-grids/grids/grid_structured.msh
@@ -0,0 +1,902 @@
+$MeshFormat
+2.2 0 8
+$EndMeshFormat
+$Nodes
+425
+1 0 0 0
+2 60 0 0
+3 0 40 0
+4 60 40 0
+5 2.499999999999129 0 0
+6 4.99999999999853 0 0
+7 7.499999999999783 0 0
+8 9.999999999997678 0 0
+9 12.4999999999954 0 0
+10 14.99999999999313 0 0
+11 17.49999999998692 0 0
+12 19.99999999997724 0 0
+13 22.49999999996757 0 0
+14 24.99999999995789 0 0
+15 27.49999999994821 0 0
+16 29.99999999993923 0 0
+17 32.49999999994366 0 0
+18 34.99999999994878 0 0
+19 37.4999999999539 0 0
+20 39.99999999995902 0 0
+21 42.49999999996415 0 0
+22 44.99999999996926 0 0
+23 47.49999999997438 0 0
+24 49.99999999997951 0 0
+25 52.49999999998462 0 0
+26 54.99999999998975 0 0
+27 57.49999999999487 0 0
+28 60 2.499999999997803 0
+29 60 4.999999999995883 0
+30 60 7.499999999988757 0
+31 60 9.999999999981455 0
+32 60 12.49999999997415 0
+33 60 14.99999999996685 0
+34 60 17.49999999996579 0
+35 60 19.9999999999696 0
+36 60 22.4999999999734 0
+37 60 24.9999999999772 0
+38 60 27.499999999981 0
+39 60 29.9999999999848 0
+40 60 32.4999999999886 0
+41 60 34.9999999999924 0
+42 60 37.4999999999962 0
+43 57.49999999999369 40 0
+44 54.99999999998739 40 0
+45 52.49999999998108 40 0
+46 49.99999999997478 40 0
+47 47.49999999996847 40 0
+48 44.99999999996216 40 0
+49 42.49999999997158 40 0
+50 39.99999999999488 40 0
+51 37.50000000001817 40 0
+52 35.00000000004147 40 0
+53 32.50000000006477 40 0
+54 30.00000000007488 40 0
+55 27.50000000006927 40 0
+56 25.00000000006298 40 0
+57 22.50000000005668 40 0
+58 20.00000000005038 40 0
+59 17.50000000004408 40 0
+60 15.00000000003779 40 0
+61 12.50000000003149 40 0
+62 10.00000000002519 40 0
+63 7.500000000018893 40 0
+64 5.000000000012598 40 0
+65 2.500000000006303 40 0
+66 0 37.5 0
+67 0 34.99999999999999 0
+68 0 32.49999999999999 0
+69 0 29.99999999999998 0
+70 0 27.49999999999998 0
+71 0 24.99999999999998 0
+72 0 22.49999999999999 0
+73 0 19.99999999999999 0
+74 0 17.49999999999999 0
+75 0 14.99999999999999 0
+76 0 12.49999999999999 0
+77 0 9.999999999999993 0
+78 0 7.499999999999993 0
+79 0 4.999999999999993 0
+80 0 2.5 0
+81 2.499999999999578 2.499999999999908 0
+82 2.500000000000025 4.999999999999822 0
+83 2.500000000000474 7.499999999999525 0
+84 2.500000000000922 9.999999999999218 0
+85 2.50000000000137 12.49999999999892 0
+86 2.500000000001819 14.99999999999861 0
+87 2.500000000002267 17.49999999999856 0
+88 2.500000000002716 19.99999999999871 0
+89 2.500000000003164 22.49999999999888 0
+90 2.500000000003611 24.99999999999903 0
+91 2.50000000000406 27.4999999999992 0
+92 2.500000000004509 29.99999999999935 0
+93 2.500000000004957 32.49999999999952 0
+94 2.500000000005406 34.99999999999967 0
+95 2.500000000005853 37.49999999999984 0
+96 4.999999999999411 2.499999999999817 0
+97 5.000000000000289 4.999999999999652 0
+98 5.00000000000117 7.499999999999059 0
+99 5.000000000002047 9.999999999998451 0
+100 5.000000000002927 12.49999999999784 0
+101 5.000000000003806 14.99999999999723 0
+102 5.000000000004686 17.49999999999714 0
+103 5.000000000005564 19.99999999999746 0
+104 5.000000000006442 22.49999999999777 0
+105 5.000000000007321 24.99999999999808 0
+106 5.000000000008202 27.4999999999984 0
+107 5.00000000000908 29.99999999999871 0
+108 5.000000000009962 32.49999999999903 0
+109 5.000000000010838 34.99999999999936 0
+110 5.00000000001172 37.49999999999968 0
+111 7.500000000000979 2.499999999999725 0
+112 7.500000000002172 4.99999999999948 0
+113 7.500000000003367 7.499999999998589 0
+114 7.500000000004562 9.999999999997677 0
+115 7.500000000005755 12.49999999999676 0
+116 7.500000000006949 14.99999999999585 0
+117 7.500000000008145 17.49999999999571 0
+118 7.500000000009338 19.99999999999618 0
+119 7.500000000010531 22.49999999999666 0
+120 7.500000000011728 24.99999999999714 0
+121 7.500000000012921 27.4999999999976 0
+122 7.500000000014115 29.99999999999808 0
+123 7.50000000001531 32.49999999999856 0
+124 7.500000000016504 34.99999999999905 0
+125 7.5000000000177 37.49999999999952 0
+126 9.999999999999394 2.499999999999634 0
+127 10.00000000000112 4.999999999999308 0
+128 10.00000000000284 7.499999999998119 0
+129 10.00000000000455 9.999999999996902 0
+130 10.00000000000628 12.49999999999568 0
+131 10.00000000000799 14.99999999999447 0
+132 10.00000000000972 17.49999999999429 0
+133 10.00000000001143 19.99999999999492 0
+134 10.00000000001316 22.49999999999555 0
+135 10.00000000001487 24.99999999999618 0
+136 10.00000000001659 27.49999999999682 0
+137 10.00000000001831 29.99999999999745 0
+138 10.00000000002003 32.4999999999981 0
+139 10.00000000002175 34.99999999999874 0
+140 10.00000000002347 37.49999999999937 0
+141 12.49999999999766 2.499999999999542 0
+142 12.49999999999991 4.999999999999136 0
+143 12.50000000000217 7.49999999999765 0
+144 12.50000000000442 9.999999999996131 0
+145 12.50000000000668 12.49999999999461 0
+146 12.50000000000893 14.99999999999309 0
+147 12.50000000001119 17.49999999999287 0
+148 12.50000000001345 19.99999999999365 0
+149 12.5000000000157 22.49999999999444 0
+150 12.50000000001796 24.99999999999523 0
+151 12.50000000002021 27.49999999999602 0
+152 12.50000000002247 29.99999999999681 0
+153 12.50000000002472 32.49999999999761 0
+154 12.50000000002698 34.99999999999841 0
+155 12.50000000002923 37.4999999999992 0
+156 14.99999999999592 2.499999999999451 0
+157 14.99999999999871 4.999999999998965 0
+158 15.0000000000015 7.499999999997183 0
+159 15.00000000000429 9.99999999999536 0
+160 15.00000000000708 12.49999999999353 0
+161 15.00000000000987 14.99999999999171 0
+162 15.00000000001267 17.49999999999144 0
+163 15.00000000001545 19.99999999999239 0
+164 15.00000000001825 22.49999999999334 0
+165 15.00000000002104 24.99999999999428 0
+166 15.00000000002383 27.49999999999524 0
+167 15.00000000002662 29.99999999999618 0
+168 15.00000000002941 32.49999999999714 0
+169 15.00000000003221 34.9999999999981 0
+170 15.000000000035 37.49999999999906 0
+171 17.49999999999049 2.499999999999359 0
+172 17.49999999999407 4.999999999998796 0
+173 17.49999999999763 7.499999999996716 0
+174 17.50000000000121 9.999999999994586 0
+175 17.50000000000478 12.49999999999246 0
+176 17.50000000000835 14.99999999999033 0
+177 17.50000000001193 17.49999999999001 0
+178 17.5000000000155 19.99999999999113 0
+179 17.50000000001907 22.49999999999223 0
+180 17.50000000002264 24.99999999999334 0
+181 17.50000000002622 27.49999999999445 0
+182 17.50000000002979 29.99999999999555 0
+183 17.50000000003336 32.49999999999667 0
+184 17.50000000003693 34.99999999999777 0
+185 17.50000000004051 37.49999999999889 0
+186 19.99999999998182 2.499999999999268 0
+187 19.99999999998639 4.999999999998623 0
+188 19.99999999999095 7.499999999996247 0
+189 19.99999999999553 9.999999999993815 0
+190 20.0000000000001 12.49999999999138 0
+191 20.00000000000467 14.99999999998895 0
+192 20.00000000000924 17.49999999998859 0
+193 20.00000000001382 19.99999999998986 0
+194 20.00000000001839 22.49999999999112 0
+195 20.00000000002295 24.99999999999238 0
+196 20.00000000002753 27.49999999999365 0
+197 20.0000000000321 29.99999999999492 0
+198 20.00000000003667 32.49999999999618 0
+199 20.00000000004125 34.99999999999746 0
+200 20.00000000004582 37.49999999999874 0
+201 22.49999999997314 2.499999999999176 0
+202 22.49999999997871 4.999999999998452 0
+203 22.49999999998428 7.499999999995778 0
+204 22.49999999998985 9.99999999999304 0
+205 22.49999999999542 12.4999999999903 0
+206 22.50000000000099 14.99999999998757 0
+207 22.50000000000655 17.49999999998717 0
+208 22.50000000001213 19.99999999998859 0
+209 22.50000000001769 22.49999999999001 0
+210 22.50000000002327 24.99999999999144 0
+211 22.50000000002883 27.49999999999286 0
+212 22.50000000003441 29.99999999999428 0
+213 22.50000000003998 32.49999999999572 0
+214 22.50000000004554 34.99999999999714 0
+215 22.50000000005111 37.49999999999856 0
+216 24.99999999996446 2.499999999999084 0
+217 24.99999999997103 4.99999999999828 0
+218 24.9999999999776 7.49999999999531 0
+219 24.99999999998417 9.999999999992269 0
+220 24.99999999999072 12.49999999998922 0
+221 24.9999999999973 14.99999999998618 0
+222 25.00000000000387 17.49999999998574 0
+223 25.00000000001044 19.99999999998733 0
+224 25.000000000017 22.49999999998891 0
+225 25.00000000002357 24.99999999999049 0
+226 25.00000000003014 27.49999999999207 0
+227 25.00000000003671 29.99999999999366 0
+228 25.00000000004328 32.49999999999524 0
+229 25.00000000004984 34.99999999999683 0
+230 25.00000000005642 37.49999999999842 0
+231 27.49999999995578 2.499999999998993 0
+232 27.49999999996334 4.999999999998108 0
+233 27.49999999997091 7.499999999994843 0
+234 27.49999999997848 9.999999999991498 0
+235 27.49999999998604 12.49999999998815 0
+236 27.49999999999361 14.9999999999848 0
+237 27.50000000000117 17.49999999998432 0
+238 27.50000000000874 19.99999999998606 0
+239 27.5000000000163 22.4999999999878 0
+240 27.50000000002387 24.99999999998954 0
+241 27.50000000003143 27.49999999999127 0
+242 27.500000000039 29.99999999999302 0
+243 27.50000000004657 32.49999999999476 0
+244 27.50000000005413 34.99999999999652 0
+245 27.5000000000617 37.49999999999826 0
+246 29.99999999994771 2.499999999998901 0
+247 29.9999999999562 4.999999999997939 0
+248 29.99999999996466 7.499999999994374 0
+249 29.99999999997315 9.999999999990724 0
+250 29.99999999998162 12.49999999998707 0
+251 29.99999999999011 14.99999999998343 0
+252 29.99999999999858 17.49999999998289 0
+253 30.00000000000706 19.99999999998479 0
+254 30.00000000001553 22.49999999998669 0
+255 30.00000000002401 24.99999999998859 0
+256 30.00000000003249 27.49999999999049 0
+257 30.00000000004097 29.99999999999239 0
+258 30.00000000004944 32.49999999999429 0
+259 30.00000000005792 34.99999999999619 0
+260 30.00000000006641 37.49999999999809 0
+261 32.49999999995124 2.49999999999881 0
+262 32.4999999999588 4.999999999997768 0
+263 32.49999999996637 7.499999999993906 0
+264 32.49999999997394 9.999999999989953 0
+265 32.4999999999815 12.499999999986 0
+266 32.49999999998908 14.99999999998204 0
+267 32.49999999999664 17.49999999998147 0
+268 32.50000000000421 19.99999999998352 0
+269 32.50000000001179 22.49999999998558 0
+270 32.50000000001936 24.99999999998764 0
+271 32.50000000002692 27.4999999999897 0
+272 32.50000000003448 29.99999999999175 0
+273 32.50000000004206 32.49999999999382 0
+274 32.50000000004963 34.99999999999588 0
+275 32.50000000005718 37.49999999999794 0
+276 34.99999999995457 2.499999999998718 0
+277 34.99999999996037 4.999999999997596 0
+278 34.99999999996616 7.499999999993436 0
+279 34.99999999997196 9.999999999989178 0
+280 34.99999999997775 12.49999999998492 0
+281 34.99999999998355 14.99999999998066 0
+282 34.99999999998934 17.49999999998004 0
+283 34.99999999999513 19.99999999998226 0
+284 35.00000000000091 22.49999999998447 0
+285 35.00000000000671 24.99999999998669 0
+286 35.00000000001251 27.4999999999889 0
+287 35.0000000000183 29.99999999999113 0
+288 35.00000000002409 32.49999999999335 0
+289 35.00000000002987 34.99999999999557 0
+290 35.00000000003566 37.49999999999778 0
+291 37.49999999995792 2.499999999998627 0
+292 37.49999999996194 4.999999999997423 0
+293 37.49999999996595 7.499999999992972 0
+294 37.49999999996996 9.999999999988407 0
+295 37.49999999997399 12.49999999998384 0
+296 37.499999999978 14.99999999997928 0
+297 37.49999999998203 17.49999999997861 0
+298 37.49999999998605 19.99999999998099 0
+299 37.49999999999005 22.49999999998337 0
+300 37.49999999999406 24.99999999998574 0
+301 37.49999999999808 27.49999999998812 0
+302 37.5000000000021 29.99999999999049 0
+303 37.50000000000612 32.49999999999287 0
+304 37.50000000001014 34.99999999999524 0
+305 37.50000000001415 37.49999999999763 0
+306 39.99999999996127 2.499999999998535 0
+307 39.9999999999635 4.999999999997253 0
+308 39.99999999996574 7.499999999992502 0
+309 39.99999999996799 9.999999999987637 0
+310 39.99999999997024 12.49999999998277 0
+311 39.99999999997247 14.9999999999779 0
+312 39.99999999997471 17.49999999997719 0
+313 39.99999999997694 19.99999999997973 0
+314 39.99999999997918 22.49999999998226 0
+315 39.99999999998143 24.99999999998479 0
+316 39.99999999998368 27.49999999998733 0
+317 39.99999999998591 29.99999999998985 0
+318 39.99999999998814 32.4999999999924 0
+319 39.99999999999039 34.99999999999493 0
+320 39.99999999999263 37.49999999999746 0
+321 42.49999999996461 2.499999999998444 0
+322 42.49999999996507 4.999999999997082 0
+323 42.49999999996553 7.499999999992033 0
+324 42.49999999996599 9.999999999986862 0
+325 42.49999999996648 12.49999999998169 0
+326 42.49999999996694 14.99999999997652 0
+327 42.49999999996739 17.49999999997577 0
+328 42.49999999996786 19.99999999997846 0
+329 42.49999999996832 22.49999999998115 0
+330 42.49999999996879 24.99999999998384 0
+331 42.49999999996926 27.49999999998653 0
+332 42.49999999996972 29.99999999998923 0
+333 42.49999999997019 32.49999999999193 0
+334 42.49999999997065 34.99999999999461 0
+335 42.49999999997112 37.49999999999731 0
+336 44.99999999996881 2.499999999998352 0
+337 44.99999999996837 4.999999999996912 0
+338 44.99999999996793 7.499999999991565 0
+339 44.99999999996749 9.999999999986088 0
+340 44.99999999996704 12.49999999998061 0
+341 44.99999999996659 14.99999999997514 0
+342 44.99999999996615 17.49999999997434 0
+343 44.99999999996571 19.9999999999772 0
+344 44.99999999996525 22.49999999998005 0
+345 44.99999999996483 24.9999999999829 0
+346 44.99999999996437 27.49999999998574 0
+347 44.99999999996393 29.99999999998859 0
+348 44.99999999996349 32.49999999999145 0
+349 44.99999999996303 34.9999999999943 0
+350 44.99999999996261 37.49999999999715 0
+351 47.49999999997403 2.499999999998261 0
+352 47.49999999997365 4.999999999996739 0
+353 47.49999999997326 7.499999999991095 0
+354 47.49999999997291 9.999999999985317 0
+355 47.49999999997254 12.49999999997954 0
+356 47.49999999997218 14.99999999997376 0
+357 47.49999999997181 17.49999999997292 0
+358 47.49999999997144 19.99999999997593 0
+359 47.49999999997106 22.49999999997894 0
+360 47.49999999997069 24.99999999998195 0
+361 47.49999999997031 27.49999999998495 0
+362 47.49999999996994 29.99999999998796 0
+363 47.49999999996957 32.49999999999098 0
+364 47.4999999999692 34.99999999999397 0
+365 47.49999999996883 37.49999999999699 0
+366 49.99999999997923 2.499999999998169 0
+367 49.99999999997891 4.999999999996567 0
+368 49.99999999997863 7.499999999990629 0
+369 49.99999999997833 9.999999999984546 0
+370 49.99999999997803 12.49999999997846 0
+371 49.99999999997772 14.99999999997238 0
+372 49.99999999997745 17.49999999997149 0
+373 49.99999999997714 19.99999999997466 0
+374 49.99999999997685 22.49999999997783 0
+375 49.99999999997656 24.99999999998099 0
+376 49.99999999997625 27.49999999998416 0
+377 49.99999999997596 29.99999999998733 0
+378 49.99999999997567 32.49999999999051 0
+379 49.99999999997536 34.99999999999366 0
+380 49.99999999997508 37.49999999999684 0
+381 52.4999999999844 2.499999999998077 0
+382 52.49999999998418 4.999999999996397 0
+383 52.49999999998397 7.499999999990162 0
+384 52.49999999998374 9.999999999983771 0
+385 52.49999999998351 12.49999999997739 0
+386 52.49999999998329 14.99999999997099 0
+387 52.49999999998306 17.49999999997007 0
+388 52.49999999998285 19.99999999997339 0
+389 52.49999999998263 22.49999999997672 0
+390 52.49999999998241 24.99999999998005 0
+391 52.49999999998218 27.49999999998337 0
+392 52.49999999998198 29.9999999999867 0
+393 52.49999999998173 32.49999999999002 0
+394 52.49999999998152 34.99999999999335 0
+395 52.4999999999813 37.49999999999667 0
+396 54.9999999999896 2.499999999997986 0
+397 54.99999999998947 4.999999999996227 0
+398 54.9999999999893 7.499999999989694 0
+399 54.99999999998917 9.999999999982997 0
+400 54.99999999998902 12.49999999997631 0
+401 54.99999999998886 14.99999999996961 0
+402 54.99999999998872 17.49999999996864 0
+403 54.99999999998857 19.99999999997213 0
+404 54.99999999998843 22.49999999997561 0
+405 54.99999999998828 24.9999999999791 0
+406 54.99999999998813 27.49999999998258 0
+407 54.99999999998797 29.99999999998606 0
+408 54.99999999998784 32.49999999998956 0
+409 54.99999999998769 34.99999999999302 0
+410 54.99999999998754 37.49999999999653 0
+411 57.4999999999948 2.499999999997894 0
+412 57.49999999999473 4.999999999996056 0
+413 57.49999999999464 7.499999999989223 0
+414 57.49999999999456 9.999999999982229 0
+415 57.49999999999451 12.49999999997523 0
+416 57.49999999999442 14.99999999996823 0
+417 57.49999999999436 17.49999999996722 0
+418 57.49999999999427 19.99999999997086 0
+419 57.49999999999421 22.4999999999745 0
+420 57.49999999999412 24.99999999997815 0
+421 57.49999999999405 27.49999999998179 0
+422 57.49999999999399 29.99999999998543 0
+423 57.4999999999939 32.49999999998909 0
+424 57.49999999999385 34.99999999999271 0
+425 57.49999999999376 37.49999999999635 0
+$EndNodes
+$Elements
+468
+1 15 2 0 1 1
+2 15 2 0 2 2
+3 15 2 0 3 3
+4 15 2 0 4 4
+5 1 2 0 1 1 5
+6 1 2 0 1 5 6
+7 1 2 0 1 6 7
+8 1 2 0 1 7 8
+9 1 2 0 1 8 9
+10 1 2 0 1 9 10
+11 1 2 0 1 10 11
+12 1 2 0 1 11 12
+13 1 2 0 1 12 13
+14 1 2 0 1 13 14
+15 1 2 0 1 14 15
+16 1 2 0 1 15 16
+17 1 2 0 1 16 17
+18 1 2 0 1 17 18
+19 1 2 0 1 18 19
+20 1 2 0 1 19 20
+21 1 2 0 1 20 21
+22 1 2 0 1 21 22
+23 1 2 0 1 22 23
+24 1 2 0 1 23 24
+25 1 2 0 1 24 25
+26 1 2 0 1 25 26
+27 1 2 0 1 26 27
+28 1 2 0 1 27 2
+29 1 2 0 2 2 28
+30 1 2 0 2 28 29
+31 1 2 0 2 29 30
+32 1 2 0 2 30 31
+33 1 2 0 2 31 32
+34 1 2 0 2 32 33
+35 1 2 0 2 33 34
+36 1 2 0 2 34 35
+37 1 2 0 2 35 36
+38 1 2 0 2 36 37
+39 1 2 0 2 37 38
+40 1 2 0 2 38 39
+41 1 2 0 2 39 40
+42 1 2 0 2 40 41
+43 1 2 0 2 41 42
+44 1 2 0 2 42 4
+45 1 2 0 3 4 43
+46 1 2 0 3 43 44
+47 1 2 0 3 44 45
+48 1 2 0 3 45 46
+49 1 2 0 3 46 47
+50 1 2 0 3 47 48
+51 1 2 0 3 48 49
+52 1 2 0 3 49 50
+53 1 2 0 3 50 51
+54 1 2 0 3 51 52
+55 1 2 0 3 52 53
+56 1 2 0 3 53 54
+57 1 2 0 3 54 55
+58 1 2 0 3 55 56
+59 1 2 0 3 56 57
+60 1 2 0 3 57 58
+61 1 2 0 3 58 59
+62 1 2 0 3 59 60
+63 1 2 0 3 60 61
+64 1 2 0 3 61 62
+65 1 2 0 3 62 63
+66 1 2 0 3 63 64
+67 1 2 0 3 64 65
+68 1 2 0 3 65 3
+69 1 2 0 4 3 66
+70 1 2 0 4 66 67
+71 1 2 0 4 67 68
+72 1 2 0 4 68 69
+73 1 2 0 4 69 70
+74 1 2 0 4 70 71
+75 1 2 0 4 71 72
+76 1 2 0 4 72 73
+77 1 2 0 4 73 74
+78 1 2 0 4 74 75
+79 1 2 0 4 75 76
+80 1 2 0 4 76 77
+81 1 2 0 4 77 78
+82 1 2 0 4 78 79
+83 1 2 0 4 79 80
+84 1 2 0 4 80 1
+85 3 2 0 6 1 5 81 80
+86 3 2 0 6 80 81 82 79
+87 3 2 0 6 79 82 83 78
+88 3 2 0 6 78 83 84 77
+89 3 2 0 6 77 84 85 76
+90 3 2 0 6 76 85 86 75
+91 3 2 0 6 75 86 87 74
+92 3 2 0 6 74 87 88 73
+93 3 2 0 6 73 88 89 72
+94 3 2 0 6 72 89 90 71
+95 3 2 0 6 71 90 91 70
+96 3 2 0 6 70 91 92 69
+97 3 2 0 6 69 92 93 68
+98 3 2 0 6 68 93 94 67
+99 3 2 0 6 67 94 95 66
+100 3 2 0 6 66 95 65 3
+101 3 2 0 6 5 6 96 81
+102 3 2 0 6 81 96 97 82
+103 3 2 0 6 82 97 98 83
+104 3 2 0 6 83 98 99 84
+105 3 2 0 6 84 99 100 85
+106 3 2 0 6 85 100 101 86
+107 3 2 0 6 86 101 102 87
+108 3 2 0 6 87 102 103 88
+109 3 2 0 6 88 103 104 89
+110 3 2 0 6 89 104 105 90
+111 3 2 0 6 90 105 106 91
+112 3 2 0 6 91 106 107 92
+113 3 2 0 6 92 107 108 93
+114 3 2 0 6 93 108 109 94
+115 3 2 0 6 94 109 110 95
+116 3 2 0 6 95 110 64 65
+117 3 2 0 6 6 7 111 96
+118 3 2 0 6 96 111 112 97
+119 3 2 0 6 97 112 113 98
+120 3 2 0 6 98 113 114 99
+121 3 2 0 6 99 114 115 100
+122 3 2 0 6 100 115 116 101
+123 3 2 0 6 101 116 117 102
+124 3 2 0 6 102 117 118 103
+125 3 2 0 6 103 118 119 104
+126 3 2 0 6 104 119 120 105
+127 3 2 0 6 105 120 121 106
+128 3 2 0 6 106 121 122 107
+129 3 2 0 6 107 122 123 108
+130 3 2 0 6 108 123 124 109
+131 3 2 0 6 109 124 125 110
+132 3 2 0 6 110 125 63 64
+133 3 2 0 6 7 8 126 111
+134 3 2 0 6 111 126 127 112
+135 3 2 0 6 112 127 128 113
+136 3 2 0 6 113 128 129 114
+137 3 2 0 6 114 129 130 115
+138 3 2 0 6 115 130 131 116
+139 3 2 0 6 116 131 132 117
+140 3 2 0 6 117 132 133 118
+141 3 2 0 6 118 133 134 119
+142 3 2 0 6 119 134 135 120
+143 3 2 0 6 120 135 136 121
+144 3 2 0 6 121 136 137 122
+145 3 2 0 6 122 137 138 123
+146 3 2 0 6 123 138 139 124
+147 3 2 0 6 124 139 140 125
+148 3 2 0 6 125 140 62 63
+149 3 2 0 6 8 9 141 126
+150 3 2 0 6 126 141 142 127
+151 3 2 0 6 127 142 143 128
+152 3 2 0 6 128 143 144 129
+153 3 2 0 6 129 144 145 130
+154 3 2 0 6 130 145 146 131
+155 3 2 0 6 131 146 147 132
+156 3 2 0 6 132 147 148 133
+157 3 2 0 6 133 148 149 134
+158 3 2 0 6 134 149 150 135
+159 3 2 0 6 135 150 151 136
+160 3 2 0 6 136 151 152 137
+161 3 2 0 6 137 152 153 138
+162 3 2 0 6 138 153 154 139
+163 3 2 0 6 139 154 155 140
+164 3 2 0 6 140 155 61 62
+165 3 2 0 6 9 10 156 141
+166 3 2 0 6 141 156 157 142
+167 3 2 0 6 142 157 158 143
+168 3 2 0 6 143 158 159 144
+169 3 2 0 6 144 159 160 145
+170 3 2 0 6 145 160 161 146
+171 3 2 0 6 146 161 162 147
+172 3 2 0 6 147 162 163 148
+173 3 2 0 6 148 163 164 149
+174 3 2 0 6 149 164 165 150
+175 3 2 0 6 150 165 166 151
+176 3 2 0 6 151 166 167 152
+177 3 2 0 6 152 167 168 153
+178 3 2 0 6 153 168 169 154
+179 3 2 0 6 154 169 170 155
+180 3 2 0 6 155 170 60 61
+181 3 2 0 6 10 11 171 156
+182 3 2 0 6 156 171 172 157
+183 3 2 0 6 157 172 173 158
+184 3 2 0 6 158 173 174 159
+185 3 2 0 6 159 174 175 160
+186 3 2 0 6 160 175 176 161
+187 3 2 0 6 161 176 177 162
+188 3 2 0 6 162 177 178 163
+189 3 2 0 6 163 178 179 164
+190 3 2 0 6 164 179 180 165
+191 3 2 0 6 165 180 181 166
+192 3 2 0 6 166 181 182 167
+193 3 2 0 6 167 182 183 168
+194 3 2 0 6 168 183 184 169
+195 3 2 0 6 169 184 185 170
+196 3 2 0 6 170 185 59 60
+197 3 2 0 6 11 12 186 171
+198 3 2 0 6 171 186 187 172
+199 3 2 0 6 172 187 188 173
+200 3 2 0 6 173 188 189 174
+201 3 2 0 6 174 189 190 175
+202 3 2 0 6 175 190 191 176
+203 3 2 0 6 176 191 192 177
+204 3 2 0 6 177 192 193 178
+205 3 2 0 6 178 193 194 179
+206 3 2 0 6 179 194 195 180
+207 3 2 0 6 180 195 196 181
+208 3 2 0 6 181 196 197 182
+209 3 2 0 6 182 197 198 183
+210 3 2 0 6 183 198 199 184
+211 3 2 0 6 184 199 200 185
+212 3 2 0 6 185 200 58 59
+213 3 2 0 6 12 13 201 186
+214 3 2 0 6 186 201 202 187
+215 3 2 0 6 187 202 203 188
+216 3 2 0 6 188 203 204 189
+217 3 2 0 6 189 204 205 190
+218 3 2 0 6 190 205 206 191
+219 3 2 0 6 191 206 207 192
+220 3 2 0 6 192 207 208 193
+221 3 2 0 6 193 208 209 194
+222 3 2 0 6 194 209 210 195
+223 3 2 0 6 195 210 211 196
+224 3 2 0 6 196 211 212 197
+225 3 2 0 6 197 212 213 198
+226 3 2 0 6 198 213 214 199
+227 3 2 0 6 199 214 215 200
+228 3 2 0 6 200 215 57 58
+229 3 2 0 6 13 14 216 201
+230 3 2 0 6 201 216 217 202
+231 3 2 0 6 202 217 218 203
+232 3 2 0 6 203 218 219 204
+233 3 2 0 6 204 219 220 205
+234 3 2 0 6 205 220 221 206
+235 3 2 0 6 206 221 222 207
+236 3 2 0 6 207 222 223 208
+237 3 2 0 6 208 223 224 209
+238 3 2 0 6 209 224 225 210
+239 3 2 0 6 210 225 226 211
+240 3 2 0 6 211 226 227 212
+241 3 2 0 6 212 227 228 213
+242 3 2 0 6 213 228 229 214
+243 3 2 0 6 214 229 230 215
+244 3 2 0 6 215 230 56 57
+245 3 2 0 6 14 15 231 216
+246 3 2 0 6 216 231 232 217
+247 3 2 0 6 217 232 233 218
+248 3 2 0 6 218 233 234 219
+249 3 2 0 6 219 234 235 220
+250 3 2 0 6 220 235 236 221
+251 3 2 0 6 221 236 237 222
+252 3 2 0 6 222 237 238 223
+253 3 2 0 6 223 238 239 224
+254 3 2 0 6 224 239 240 225
+255 3 2 0 6 225 240 241 226
+256 3 2 0 6 226 241 242 227
+257 3 2 0 6 227 242 243 228
+258 3 2 0 6 228 243 244 229
+259 3 2 0 6 229 244 245 230
+260 3 2 0 6 230 245 55 56
+261 3 2 0 6 15 16 246 231
+262 3 2 0 6 231 246 247 232
+263 3 2 0 6 232 247 248 233
+264 3 2 0 6 233 248 249 234
+265 3 2 0 6 234 249 250 235
+266 3 2 0 6 235 250 251 236
+267 3 2 0 6 236 251 252 237
+268 3 2 0 6 237 252 253 238
+269 3 2 0 6 238 253 254 239
+270 3 2 0 6 239 254 255 240
+271 3 2 0 6 240 255 256 241
+272 3 2 0 6 241 256 257 242
+273 3 2 0 6 242 257 258 243
+274 3 2 0 6 243 258 259 244
+275 3 2 0 6 244 259 260 245
+276 3 2 0 6 245 260 54 55
+277 3 2 0 6 16 17 261 246
+278 3 2 0 6 246 261 262 247
+279 3 2 0 6 247 262 263 248
+280 3 2 0 6 248 263 264 249
+281 3 2 0 6 249 264 265 250
+282 3 2 0 6 250 265 266 251
+283 3 2 0 6 251 266 267 252
+284 3 2 0 6 252 267 268 253
+285 3 2 0 6 253 268 269 254
+286 3 2 0 6 254 269 270 255
+287 3 2 0 6 255 270 271 256
+288 3 2 0 6 256 271 272 257
+289 3 2 0 6 257 272 273 258
+290 3 2 0 6 258 273 274 259
+291 3 2 0 6 259 274 275 260
+292 3 2 0 6 260 275 53 54
+293 3 2 0 6 17 18 276 261
+294 3 2 0 6 261 276 277 262
+295 3 2 0 6 262 277 278 263
+296 3 2 0 6 263 278 279 264
+297 3 2 0 6 264 279 280 265
+298 3 2 0 6 265 280 281 266
+299 3 2 0 6 266 281 282 267
+300 3 2 0 6 267 282 283 268
+301 3 2 0 6 268 283 284 269
+302 3 2 0 6 269 284 285 270
+303 3 2 0 6 270 285 286 271
+304 3 2 0 6 271 286 287 272
+305 3 2 0 6 272 287 288 273
+306 3 2 0 6 273 288 289 274
+307 3 2 0 6 274 289 290 275
+308 3 2 0 6 275 290 52 53
+309 3 2 0 6 18 19 291 276
+310 3 2 0 6 276 291 292 277
+311 3 2 0 6 277 292 293 278
+312 3 2 0 6 278 293 294 279
+313 3 2 0 6 279 294 295 280
+314 3 2 0 6 280 295 296 281
+315 3 2 0 6 281 296 297 282
+316 3 2 0 6 282 297 298 283
+317 3 2 0 6 283 298 299 284
+318 3 2 0 6 284 299 300 285
+319 3 2 0 6 285 300 301 286
+320 3 2 0 6 286 301 302 287
+321 3 2 0 6 287 302 303 288
+322 3 2 0 6 288 303 304 289
+323 3 2 0 6 289 304 305 290
+324 3 2 0 6 290 305 51 52
+325 3 2 0 6 19 20 306 291
+326 3 2 0 6 291 306 307 292
+327 3 2 0 6 292 307 308 293
+328 3 2 0 6 293 308 309 294
+329 3 2 0 6 294 309 310 295
+330 3 2 0 6 295 310 311 296
+331 3 2 0 6 296 311 312 297
+332 3 2 0 6 297 312 313 298
+333 3 2 0 6 298 313 314 299
+334 3 2 0 6 299 314 315 300
+335 3 2 0 6 300 315 316 301
+336 3 2 0 6 301 316 317 302
+337 3 2 0 6 302 317 318 303
+338 3 2 0 6 303 318 319 304
+339 3 2 0 6 304 319 320 305
+340 3 2 0 6 305 320 50 51
+341 3 2 0 6 20 21 321 306
+342 3 2 0 6 306 321 322 307
+343 3 2 0 6 307 322 323 308
+344 3 2 0 6 308 323 324 309
+345 3 2 0 6 309 324 325 310
+346 3 2 0 6 310 325 326 311
+347 3 2 0 6 311 326 327 312
+348 3 2 0 6 312 327 328 313
+349 3 2 0 6 313 328 329 314
+350 3 2 0 6 314 329 330 315
+351 3 2 0 6 315 330 331 316
+352 3 2 0 6 316 331 332 317
+353 3 2 0 6 317 332 333 318
+354 3 2 0 6 318 333 334 319
+355 3 2 0 6 319 334 335 320
+356 3 2 0 6 320 335 49 50
+357 3 2 0 6 21 22 336 321
+358 3 2 0 6 321 336 337 322
+359 3 2 0 6 322 337 338 323
+360 3 2 0 6 323 338 339 324
+361 3 2 0 6 324 339 340 325
+362 3 2 0 6 325 340 341 326
+363 3 2 0 6 326 341 342 327
+364 3 2 0 6 327 342 343 328
+365 3 2 0 6 328 343 344 329
+366 3 2 0 6 329 344 345 330
+367 3 2 0 6 330 345 346 331
+368 3 2 0 6 331 346 347 332
+369 3 2 0 6 332 347 348 333
+370 3 2 0 6 333 348 349 334
+371 3 2 0 6 334 349 350 335
+372 3 2 0 6 335 350 48 49
+373 3 2 0 6 22 23 351 336
+374 3 2 0 6 336 351 352 337
+375 3 2 0 6 337 352 353 338
+376 3 2 0 6 338 353 354 339
+377 3 2 0 6 339 354 355 340
+378 3 2 0 6 340 355 356 341
+379 3 2 0 6 341 356 357 342
+380 3 2 0 6 342 357 358 343
+381 3 2 0 6 343 358 359 344
+382 3 2 0 6 344 359 360 345
+383 3 2 0 6 345 360 361 346
+384 3 2 0 6 346 361 362 347
+385 3 2 0 6 347 362 363 348
+386 3 2 0 6 348 363 364 349
+387 3 2 0 6 349 364 365 350
+388 3 2 0 6 350 365 47 48
+389 3 2 0 6 23 24 366 351
+390 3 2 0 6 351 366 367 352
+391 3 2 0 6 352 367 368 353
+392 3 2 0 6 353 368 369 354
+393 3 2 0 6 354 369 370 355
+394 3 2 0 6 355 370 371 356
+395 3 2 0 6 356 371 372 357
+396 3 2 0 6 357 372 373 358
+397 3 2 0 6 358 373 374 359
+398 3 2 0 6 359 374 375 360
+399 3 2 0 6 360 375 376 361
+400 3 2 0 6 361 376 377 362
+401 3 2 0 6 362 377 378 363
+402 3 2 0 6 363 378 379 364
+403 3 2 0 6 364 379 380 365
+404 3 2 0 6 365 380 46 47
+405 3 2 0 6 24 25 381 366
+406 3 2 0 6 366 381 382 367
+407 3 2 0 6 367 382 383 368
+408 3 2 0 6 368 383 384 369
+409 3 2 0 6 369 384 385 370
+410 3 2 0 6 370 385 386 371
+411 3 2 0 6 371 386 387 372
+412 3 2 0 6 372 387 388 373
+413 3 2 0 6 373 388 389 374
+414 3 2 0 6 374 389 390 375
+415 3 2 0 6 375 390 391 376
+416 3 2 0 6 376 391 392 377
+417 3 2 0 6 377 392 393 378
+418 3 2 0 6 378 393 394 379
+419 3 2 0 6 379 394 395 380
+420 3 2 0 6 380 395 45 46
+421 3 2 0 6 25 26 396 381
+422 3 2 0 6 381 396 397 382
+423 3 2 0 6 382 397 398 383
+424 3 2 0 6 383 398 399 384
+425 3 2 0 6 384 399 400 385
+426 3 2 0 6 385 400 401 386
+427 3 2 0 6 386 401 402 387
+428 3 2 0 6 387 402 403 388
+429 3 2 0 6 388 403 404 389
+430 3 2 0 6 389 404 405 390
+431 3 2 0 6 390 405 406 391
+432 3 2 0 6 391 406 407 392
+433 3 2 0 6 392 407 408 393
+434 3 2 0 6 393 408 409 394
+435 3 2 0 6 394 409 410 395
+436 3 2 0 6 395 410 44 45
+437 3 2 0 6 26 27 411 396
+438 3 2 0 6 396 411 412 397
+439 3 2 0 6 397 412 413 398
+440 3 2 0 6 398 413 414 399
+441 3 2 0 6 399 414 415 400
+442 3 2 0 6 400 415 416 401
+443 3 2 0 6 401 416 417 402
+444 3 2 0 6 402 417 418 403
+445 3 2 0 6 403 418 419 404
+446 3 2 0 6 404 419 420 405
+447 3 2 0 6 405 420 421 406
+448 3 2 0 6 406 421 422 407
+449 3 2 0 6 407 422 423 408
+450 3 2 0 6 408 423 424 409
+451 3 2 0 6 409 424 425 410
+452 3 2 0 6 410 425 43 44
+453 3 2 0 6 27 2 28 411
+454 3 2 0 6 411 28 29 412
+455 3 2 0 6 412 29 30 413
+456 3 2 0 6 413 30 31 414
+457 3 2 0 6 414 31 32 415
+458 3 2 0 6 415 32 33 416
+459 3 2 0 6 416 33 34 417
+460 3 2 0 6 417 34 35 418
+461 3 2 0 6 418 35 36 419
+462 3 2 0 6 419 36 37 420
+463 3 2 0 6 420 37 38 421
+464 3 2 0 6 421 38 39 422
+465 3 2 0 6 422 39 40 423
+466 3 2 0 6 423 40 41 424
+467 3 2 0 6 424 41 42 425
+468 3 2 0 6 425 42 4 43
+$EndElements
diff --git a/exercises/solution/exercise-grids/grids/grid_unstructured.db b/exercises/solution/exercise-grids/grids/grid_unstructured.db
new file mode 100644
index 0000000000000000000000000000000000000000..58e106079941629ef1d3c8285c83ac5858b58c0f
GIT binary patch
literal 949
zcma)4O;77E5ZrTrh3`*oVnca_TPYs`(LQb*kz+4OL}Ew&Kycu{vrbx|1kh8YWNl|=
zXU6+)bAGctWm*PVNRLc8lmRs>UYIr5$bxxvPv~gH?r8ryHjHz|#YrwsM9xIc7n7p}
z<Ff-Wu`SR+zQ!P1tFg&$tnC2cfJ450QZ?oHN8~wdKWU>soy?DV9v@t7O1Q*ucAG6#
zsI4KA9RuM&*|v)Tp+tkOR&+L*&-bvcuf|Xgm$XlRbNCG9hlBoI--KN!{Y)0#Hq?l9
zGE`d)oY1SrdelA9J7ZSa7PF=jnL({G9ozW4ve9`Q>ZuwQ_>4}~9(}f}rlqU3&xZGB
zVT-+7Q>U#iUAJibkW0$$Cr#q#tQY%Pe{dVwVsAB(es47?y^n_SiYi2hdRC%^hq}RZ
z6UTo?H?j8B1)XjZ^%{M}h9)!@gZl6C95*42A5F&5Z2IwI_JMWPi?5YzSm|u+Jh}NT
zq+bS-AC6Ocy)ra=EV)h0y$22gmND2>h3b(q_&-1Ip$YghJhPI#ItAkl5@zxSu`2?{

literal 0
HcmV?d00001

diff --git a/exercises/solution/exercise-grids/grids/grid_unstructured.geo b/exercises/solution/exercise-grids/grids/grid_unstructured.geo
new file mode 100644
index 00000000..f3f952d3
--- /dev/null
+++ b/exercises/solution/exercise-grids/grids/grid_unstructured.geo
@@ -0,0 +1,17 @@
+X = 60;
+Y = 40;
+Res = 1;
+
+Point(1) = {0,0,0,Res};
+Point(2) = {X,0,0,Res};
+Point(3) = {X,Y,0,Res};
+Point(4) = {0,Y,0,Res};
+
+Line(5) = {1,2};
+Line(6) = {2,3};
+Line(7) = {3,4};
+Line(8) = {4,1};
+
+Line Loop(9) = {5,6,7,8};
+
+Plane Surface(10) = 9;
diff --git a/exercises/solution/exercise-grids/grids/grid_unstructured.msh b/exercises/solution/exercise-grids/grids/grid_unstructured.msh
new file mode 100644
index 00000000..025c1099
--- /dev/null
+++ b/exercises/solution/exercise-grids/grids/grid_unstructured.msh
@@ -0,0 +1,2495 @@
+$MeshFormat
+2.2 0 8
+$EndMeshFormat
+$Nodes
+828
+1 0 0 0
+2 60 0 0
+3 60 40 0
+4 0 40 0
+5 1.999999999999485 0 0
+6 3.999999999998073 0 0
+7 5.999999999999088 0 0
+8 7.999999999999485 0 0
+9 9.999999999997659 0 0
+10 11.99999999999584 0 0
+11 13.99999999999401 0 0
+12 15.9999999999921 0 0
+13 17.99999999998495 0 0
+14 19.9999999999772 0 0
+15 21.99999999996945 0 0
+16 23.9999999999617 0 0
+17 25.99999999995395 0 0
+18 27.9999999999462 0 0
+19 29.99999999993915 0 0
+20 31.99999999994255 0 0
+21 33.99999999994665 0 0
+22 35.99999999995075 0 0
+23 37.99999999995486 0 0
+24 39.99999999995897 0 0
+25 41.99999999996307 0 0
+26 43.99999999996717 0 0
+27 45.99999999997128 0 0
+28 47.99999999997537 0 0
+29 49.99999999997949 0 0
+30 51.99999999998358 0 0
+31 53.99999999998769 0 0
+32 55.99999999999179 0 0
+33 57.9999999999959 0 0
+34 60 1.999999999998205 0
+35 60 3.999999999996757 0
+36 60 5.999999999993141 0
+37 60 7.999999999987307 0
+38 60 9.999999999981473 0
+39 60 11.99999999997564 0
+40 60 13.9999999999698 0
+41 60 15.99999999996411 0
+42 60 17.9999999999666 0
+43 60 19.99999999996964 0
+44 60 21.99999999997269 0
+45 60 23.99999999997573 0
+46 60 25.99999999997878 0
+47 60 27.99999999998182 0
+48 60 29.99999999998487 0
+49 60 31.99999999998791 0
+50 60 33.99999999999093 0
+51 60 35.99999999999396 0
+52 60 37.99999999999698 0
+53 57.99999999999496 40 0
+54 55.99999999998992 40 0
+55 53.99999999998488 40 0
+56 51.99999999997985 40 0
+57 49.9999999999748 40 0
+58 47.99999999996977 40 0
+59 45.99999999996473 40 0
+60 43.99999999996006 40 0
+61 41.9999999999763 40 0
+62 39.99999999999495 40 0
+63 38.00000000001359 40 0
+64 36.00000000003224 40 0
+65 34.00000000005089 40 0
+66 32.00000000006851 40 0
+67 30.00000000007499 40 0
+68 28.00000000007064 40 0
+69 26.0000000000656 40 0
+70 24.00000000006055 40 0
+71 22.00000000005551 40 0
+72 20.00000000005046 40 0
+73 18.0000000000454 40 0
+74 16.00000000004037 40 0
+75 14.00000000003531 40 0
+76 12.00000000003028 40 0
+77 10.00000000002522 40 0
+78 8.000000000020179 40 0
+79 6.000000000015135 40 0
+80 4.000000000010083 40 0
+81 2.000000000005038 40 0
+82 0 37.99999999999999 0
+83 0 35.99999999999999 0
+84 0 33.99999999999999 0
+85 0 31.99999999999998 0
+86 0 29.99999999999998 0
+87 0 27.99999999999998 0
+88 0 25.99999999999997 0
+89 0 23.99999999999996 0
+90 0 21.99999999999996 0
+91 0 19.99999999999996 0
+92 0 17.99999999999995 0
+93 0 15.99999999999995 0
+94 0 13.99999999999995 0
+95 0 11.99999999999994 0
+96 0 9.999999999999936 0
+97 0 7.999999999999929 0
+98 0 5.99999999999995 0
+99 0 3.999999999999964 0
+100 0 1.999999999999986 0
+101 39.00000000000431 20.0000000000009 0
+102 19.57173691029124 19.54049823408953 0
+103 28.99802686277825 27.54946195771791 0
+104 29.37007344651154 12.56111592387656 0
+105 47.98275862069078 12.0172413793093 0
+106 47.98275862069124 27.98275862069122 0
+107 11.46545191690494 28.61972553789946 0
+108 11.32528599485151 11.44002048724304 0
+109 38.56475496696381 30.43392971786805 0
+110 38.67651981649291 9.592987471490092 0
+111 20.54834006620429 9.347170512059202 0
+112 20.54853364096638 30.46277907463715 0
+113 9.104347738330372 19.80164381375023 0
+114 51.34000395784842 20.00000000000016 0
+115 31.30637989953582 19.63065755350712 0
+116 53.19388097028544 7.062624801210999 0
+117 53.17847789555776 32.9408955558978 0
+118 6.845742250328072 33.1542577496698 0
+119 32.14848270356406 33.49586960171212 0
+120 6.680731081496988 6.823110676686175 0
+121 32.92545744791219 6.578140824946925 0
+122 44.40525640428363 33.41464866381523 0
+123 44.50394038394682 6.485722796253228 0
+124 45.70727466001121 17.62023620746574 0
+125 23.03822747157062 24.69801623937823 0
+126 26.0248417325958 6.504732740991964 0
+127 25.47182839748599 17.17105383216406 0
+128 35.13400453636564 15.02709655118179 0
+129 26.3268589713642 33.58642735241571 0
+130 14.89053318766005 33.74435162223972 0
+131 15.04494419070886 6.24492893301058 0
+132 35.26369971811212 24.76587505927067 0
+133 42.32540932572961 25.30341032975387 0
+134 53.81389790258498 14.2317370953028 0
+135 53.65131972353306 25.59022068053177 0
+136 6.181420295222463 25.4916686647685 0
+137 17.02822019191684 25.19478066677139 0
+138 6.081921779407127 14.57596474569209 0
+139 13.74692199577804 16.80760551718488 0
+140 40.52370296669014 14.57846792369446 0
+141 18.67142315852848 14.4660838078778 0
+142 46.94999840954156 22.85107456574005 0
+143 37.14240881269247 34.90154810292083 0
+144 24.49505929666099 12.32959488128812 0
+145 12.10693102355102 23.17597007061547 0
+146 37.35755895766331 4.976199412003188 0
+147 48.7176083606431 35.07875206883834 0
+148 27.17963695010815 21.79464725545201 0
+149 22.15838483863017 4.727032769187768 0
+150 48.85976203823084 4.853048337396723 0
+151 19.26318088170371 35.26706884328454 0
+152 10.76127931309533 4.545237950540957 0
+153 43.62759114802792 11.05008997749187 0
+154 24.81821544104447 29.29969156982221 0
+155 4.50404908834339 21.22614078501238 0
+156 15.81507610323093 10.94188474149736 0
+157 10.71621761931781 35.52044200475348 0
+158 55.28430213217758 18.43057588851923 0
+159 16.26163379771344 29.50034538854167 0
+160 33.1780574761881 28.97625743314068 0
+161 3.664250174480513 29.62521670826527 0
+162 4.610539465348312 10.28775493473934 0
+163 33.55359319039001 10.79878522901872 0
+164 48.93357812889406 16.20311977609938 0
+165 56.51918617909236 10.33578203392825 0
+166 55.51197399828762 29.5076727321416 0
+167 42.42893991237332 29.71421399210089 0
+168 10.16926151701585 15.57886906055117 0
+169 15.33386751103512 20.57853108946497 0
+170 56.2057133649969 3.78558934674895 0
+171 56.17206883299853 36.20863745493613 0
+172 42.49290959298233 21.260039333213 0
+173 29.58912003771929 4.190680850420747 0
+174 31.0389651958188 24.17516382301651 0
+175 41.21230738151432 36.03659228436947 0
+176 35.13682483955292 18.88532040335662 0
+177 31.51767051423157 16.13348734066164 0
+178 29.65563245585266 36.12730276028777 0
+179 41.74524803059263 3.65596876784288 0
+180 56.05622487109099 22.37402644725489 0
+181 3.901463469354754 36.01572694520217 0
+182 51.91889814502719 10.71885804873933 0
+183 51.74575690844499 29.22623048495892 0
+184 22.85227391848806 36.44989494486925 0
+185 3.567143334471394 3.626365566332363 0
+186 18.25075015433822 3.482898292935071 0
+187 38.82074154157894 23.86046718605372 0
+188 3.813106116369589 17.37199805032064 0
+189 29.15810951324791 31.402214258306 0
+190 23.02206274235776 21.35926675171254 0
+191 8.131367176784162 29.68567787128401 0
+192 29.63780066015219 8.423631515680162 0
+193 50.61682326646074 23.69180810830027 0
+194 21.72198808236458 16.51774728190811 0
+195 47.71110897231299 7.976759097059108 0
+196 20.47526328447607 27.03511058766917 0
+197 47.43307713672556 31.76493343925862 0
+198 11.84152364623001 31.74659878292604 0
+199 8.007875176365928 10.03449284667732 0
+200 45.12895196563618 14.2650244257144 0
+201 20.25608025528369 22.89145891629432 0
+202 52.06494605777476 36.43398763652046 0
+203 52.07425778102984 3.533935408472676 0
+204 12.08752998154306 7.7933954128102 0
+205 34.19720778581862 36.5197906229385 0
+206 7.421324839034245 36.58583577254074 0
+207 8.894499440030188 23.35146493865577 0
+208 34.36370378506363 3.428987056967423 0
+209 45.86766484087779 36.97124127277168 0
+210 24.73076859933535 3.30103914644281 0
+211 26.53496670070944 25.20854350842316 0
+212 23.92093578710172 9.028942952696639 0
+213 41.86498041379962 17.86555484949344 0
+214 41.08239746262585 32.33750768523045 0
+215 12.34436886887416 19.76703096029577 0
+216 7.590006916977604 3.219198800854388 0
+217 46.0096533167744 3.033663598643167 0
+218 38.03379690478792 16.76527759565394 0
+219 35.50044382592352 32.0887313085932 0
+220 3.435581074717459 7.075641217793229 0
+221 3.49122095864401 32.65209572974848 0
+222 41.32862406194875 7.496939889467725 0
+223 37.94374655615847 12.97316377120565 0
+224 14.04556998194999 13.49399166171501 0
+225 48.00773443660442 19.67440548518706 0
+226 37.67501745790091 27.04402127205134 0
+227 35.86874801157273 7.818226755792534 0
+228 56.76677828122477 7.352864377373234 0
+229 56.76558057717082 32.66608619952301 0
+230 16.24214918771036 36.61347836309096 0
+231 28.65117168060504 17.9353991346328 0
+232 45.55237183638609 25.80211371768788 0
+233 13.52369703684965 2.923934485866771 0
+234 33.69478926382234 21.9475711033987 0
+235 18.1394375176183 7.268117427966128 0
+236 22.987805948129 32.84667440042395 0
+237 56.8627267525591 15.47810196459868 0
+238 3.219543247879315 24.21195468504503 0
+239 27.22267696679798 14.3427721411452 0
+240 17.16233273913676 17.52664705251821 0
+241 57.0552505065171 26.3479942468148 0
+242 21.30722192858797 12.53236554837953 0
+243 2.874739091811121 13.58334737057625 0
+244 26.5027694931902 36.79419910475468 0
+245 26.86235244040927 10.21610171363138 0
+246 17.83008563610607 32.5523352173009 0
+247 13.98150151833597 26.07834876735972 0
+248 8.879605436296627 26.69482148846037 0
+249 52.22258263354087 16.99328642532413 0
+250 6.914308197590605 17.45164249426969 0
+251 50.9866381564024 13.49340587218996 0
+252 13.29978786556951 37.2167066166575 0
+253 36.71055090760149 21.88657294066183 0
+254 40.5476922038166 11.65415077575604 0
+255 45.53429792865123 29.56755427468955 0
+256 8.597194550683991 12.93419968780056 0
+257 2.767019233155985 27.02440729217133 0
+258 50.52927409769192 26.59202012957235 0
+259 40.48207811230814 27.38278568114894 0
+260 53.06988167574252 22.32543718171095 0
+261 50.31529139679847 31.68166394518787 0
+262 18.61416775494303 11.59839082508717 0
+263 32.28961109377968 13.48076826316487 0
+264 57.22841358845311 12.86500010339141 0
+265 50.42506433696962 8.337671976611372 0
+266 38.93917253511727 2.588963466409449 0
+267 38.77021242901854 37.42157559986858 0
+268 32.65295918394641 26.27066573303631 0
+269 36.01451747777997 29.20874372507058 0
+270 9.033987587163905 6.734650151015549 0
+271 48.2722405068158 25.28664489811088 0
+272 45.72247743714108 20.67178589702385 0
+273 13.57788062132239 30.16329394810695 0
+274 22.69122415749995 27.48337068265297 0
+275 23.93539964670421 14.95322389871303 0
+276 35.94501367213665 10.71486669252743 0
+277 29.38003705311343 21.96857202994988 0
+278 15.00028305888307 23.33219412893082 0
+279 21.20330411424706 37.34321272231626 0
+280 46.01183513477358 10.25776442226347 0
+281 44.88041651671634 23.56316576090219 0
+282 20.16259845192405 2.44199215365775 0
+283 31.32184054626386 2.920318105719168 0
+284 27.47145812694843 2.550129400637472 0
+285 17.39493265151342 22.38850377096898 0
+286 57.36553795148912 20.44062546811967 0
+287 9.3109154756718 33.26106709708652 0
+288 27.39167000636339 29.52864414423557 0
+289 31.59385736524082 37.46155243135509 0
+290 25.34803052025728 19.69414289978238 0
+291 43.11485031308248 37.48231184029044 0
+292 38.35227900940082 32.78618242991001 0
+293 42.77497290409048 16.16536521279788 0
+294 16.70252903035232 14.3978583158714 0
+295 10.47681564259297 17.92587752785463 0
+296 14.17740773239179 8.727733254814229 0
+297 6.96111019091434 21.28334915736548 0
+298 32.72909731222875 17.98418252712202 0
+299 43.21030666824404 2.589939926943599 0
+300 38.65873585924841 7.05721733055844 0
+301 2.513416901559941 19.67770596234235 0
+302 22.20332101133977 7.171748596492664 0
+303 49.9356972294575 37.54961894594748 0
+304 40.39530100965223 21.99543877461477 0
+305 31.92909711675484 30.68601656955341 0
+306 31.13689923999755 10.29406208353852 0
+307 5.912554824637231 11.80707431757932 0
+308 36.16392808400488 37.56352972466203 0
+309 11.67846038026281 25.5790828582812 0
+310 50.23379444125948 2.682686901482759 0
+311 6.324232974749579 27.85186401670527 0
+312 18.00106778741716 27.30610237355508 0
+313 10.64225593621168 21.59998673847218 0
+314 22.87073307681506 18.49476522020559 0
+315 36.35288217513344 2.374111616838479 0
+316 16.08511435961772 2.460293090698518 0
+317 20.82983910892262 33.57581920304675 0
+318 57.53268003622506 24.14227236050319 0
+319 46.62112655786532 33.95114753404405 0
+320 24.18820251475016 23.06863511482712 0
+321 30.06918278221957 33.65249645026755 0
+322 42.71891576025518 13.33578641522837 0
+323 46.74262852930829 15.69631533961131 0
+324 46.82273721411058 6.037287255008842 0
+325 43.67428555349414 26.74985315841814 0
+326 57.5249675704227 2.260632422589489 0
+327 57.5163028996113 37.73526218367768 0
+328 50.83848059245574 34.41451207693906 0
+329 43.23496029252441 8.617686395677884 0
+330 54.17226391689067 37.51274691618801 0
+331 23.08406063280706 2.057836906351393 0
+332 29.26965346135665 25.2183425250081 0
+333 49.01558250185536 21.83447295713087 0
+334 23.7069926497193 5.885081461632971 0
+335 9.366206426118179 37.44095998602512 0
+336 9.734527362771772 2.520653240237734 0
+337 50.92784177784564 5.518679641891389 0
+338 2.382999405733814 15.74549787165582 0
+339 18.40206198559648 37.97152888743174 0
+340 53.46688842854071 19.70895695994599 0
+341 28.46438379917853 6.421286048424378 0
+342 54.18628324086568 2.504850247422153 0
+343 53.67540049321199 12.14128136883171 0
+344 54.02227877196081 27.96660617498954 0
+345 35.04227775527324 34.33920369104627 0
+346 53.71689361990878 8.999289279627753 0
+347 53.96878815489915 30.93734758417207 0
+348 2.338963468773561 37.66103653122556 0
+349 2.444104733490598 9.287283229728823 0
+350 2.130772239724846 31.04418074969577 0
+351 24.99411939563818 31.64325330858832 0
+352 22.82634888427999 30.58306906602309 0
+353 29.31932961162838 14.61407821507989 0
+354 12.69286939908629 34.03866363868207 0
+355 35.14815855622347 5.684745015074453 0
+356 12.76851626183019 5.734299204789629 0
+357 24.94508862034155 27.13548593095083 0
+358 57.70953137781392 17.57681025682843 0
+359 6.419622133708633 31.18760078330426 0
+360 2.457480598742092 22.04061553781128 0
+361 58.04092695844812 8.946912289297275 0
+362 57.78739745510342 30.71773126695873 0
+363 12.4775339582016 15.08535676321622 0
+364 18.33343817648206 29.56974146801459 0
+365 5.692918262147 2.479037356673015 0
+366 2.282570210130277 2.282570210130205 0
+367 9.891151183535474 9.764589049800046 0
+368 5.629143840397585 37.57606399369745 0
+369 34.46128516749135 27.29236074576465 0
+370 19.40595580666523 16.41764118762331 0
+371 47.51432813426099 37.76406513942555 0
+372 5.925772176070656 19.35708652666798 0
+373 6.193724356418632 8.850333049992114 0
+374 5.461805815543469 23.3231299320548 0
+375 49.8852664359446 10.39892217040645 0
+376 47.69667753293451 2.258873392396585 0
+377 13.75232178509519 10.96155027299799 0
+378 35.08472318936315 12.5462509669707 0
+379 17.62722394713153 9.004320828010602 0
+380 30.92970420454268 28.74426027548914 0
+381 49.79236994184181 29.60070723742907 0
+382 57.64758092787582 5.535295122960225 0
+383 57.63771363035474 34.46467229013062 0
+384 2.167970600632248 34.66663784377177 0
+385 10.51587740239985 30.00228151326705 0
+386 19.39759348135664 5.599058559312496 0
+387 28.30962274080807 20.06271778648156 0
+388 33.75414226625833 8.612693153783741 0
+389 54.27717696910059 16.42523018018881 0
+390 41.20590908133474 9.588143445298178 0
+391 2.211327150411201 5.381196839559157 0
+392 48.08807720679192 14.2555866656263 0
+393 49.7220167407089 18.32905918920004 0
+394 15.79306895698383 31.80242812886434 0
+395 53.8878157306571 35.2025571294521 0
+396 17.00739913927048 34.60907064893013 0
+397 16.78151440398475 12.4664474621253 0
+398 22.59415801437667 10.89636748893317 0
+399 44.17082309553253 31.10589310438481 0
+400 17.8900258611142 19.42791296309485 0
+401 53.92347493832002 4.808735078536634 0
+402 43.22895962192177 35.36782099461898 0
+403 20.77201616767405 24.73349396353334 0
+404 39.35233109160435 34.74048095849416 0
+405 40.53178998911878 30.41428484855692 0
+406 31.54381583324982 35.32814993991371 0
+407 7.710627580036661 15.51625837802682 0
+408 24.82427442502761 37.90021314490829 0
+409 13.75393894477771 21.65512924758953 0
+410 28.19692427416226 37.68276136589138 0
+411 43.34717384725252 4.668408434767493 0
+412 14.65734457713399 28.40014052444941 0
+413 11.83166227796881 2.237903632753146 0
+414 37.52619580249826 18.50319967677398 0
+415 36.13110325125734 16.91843296578633 0
+416 31.67776905850334 4.761387910868395 0
+417 14.27816327814473 18.98374830239077 0
+418 20.8594696406515 14.45162857075821 0
+419 57.86852837524871 28.50738497855249 0
+420 43.04756903265353 19.61592878102145 0
+421 40.21180051551505 25.64495781973783 0
+422 1.825568396313961 11.58085148771633 0
+423 39.10724170213062 5.214053979250364 0
+424 41.10024517481158 19.85588335314041 0
+425 20.94807123612145 21.32029900443863 0
+426 27.08422332070924 31.65686200823724 0
+427 4.92382893318552 34.06794902486415 0
+428 5.61783490386467 4.72346235453806 0
+429 31.69430052143954 8.358164330872388 0
+430 22.05753144023211 23.0172212073912 0
+431 40.99999999996098 1.874192934027594 0
+432 10.99127586661583 13.59669943856671 0
+433 33.83181286812501 30.9431949993918 0
+434 27.41543282216439 12.35682536791638 0
+435 55.59969245303147 24.64907322514555 0
+436 33.29949996533691 15.86327345488534 0
+437 40.94406331492611 38.13172369890317 0
+438 33.17381671798605 23.96169774892727 0
+439 31.40765912898637 21.98446009004605 0
+440 27.36918038025064 4.639899043993399 0
+441 28.13808030738179 34.39601165591665 0
+442 27.45453676228438 8.213578134647001 0
+443 45.86931782463719 12.34477172597377 0
+444 45.71700505874415 8.290912234850339 0
+445 42.56761454305065 23.24645033565276 0
+446 39.69663458661197 18.2502806220007 0
+447 49.33695317324812 6.954309530424624 0
+448 21.58522008174965 28.86948618514256 0
+449 37.106778094589 15.07362065605123 0
+450 16.09506283023486 7.855315859594591 0
+451 29.19748838724398 1.7151910162548 0
+452 16.13940456247037 4.549367981385069 0
+453 30.56858447175172 17.88134784023002 0
+454 26.96708389772039 27.38430021041982 0
+455 49.19727074817031 32.98093603086695 0
+456 24.96019778460114 35.40793574832817 0
+457 21.09589940754463 35.66020394169296 0
+458 37.15200125033736 25.08487223223558 0
+459 8.146409617851901 31.80178347644605 0
+460 33.27002000104612 20.01336721384393 0
+461 4.334761862152043 15.07651916453535 0
+462 30.71082322206885 6.555194004812993 0
+463 30.83373539929095 26.32829670863272 0
+464 27.88093849502859 23.82406050064556 0
+465 18.94621431842196 25.6261676470621 0
+466 27.53959924143032 16.36576028282729 0
+467 8.960093648515032 4.894995131309189 0
+468 14.88953450754686 38.12638628509853 0
+469 58.15478910221405 22.31999377287977 0
+470 13.98200865880546 31.97987876834006 0
+471 11.22086307299893 37.94449418859994 0
+472 28.98535232952183 10.58299389598307 0
+473 54.84332051386557 7.743948414444318 0
+474 54.90861905624838 32.28331321777286 0
+475 18.70284373950589 1.440084573567959 0
+476 26.63158628477963 18.54835001215597 0
+477 52.51906446325611 23.99158272237233 0
+478 8.050993122147537 34.77980784973232 0
+479 47.66777089155723 17.75273847897243 0
+480 4.494514669546739 26.55469225321671 0
+481 55.43552941651073 13.34370678836217 0
+482 15.88452400906054 26.67294860347618 0
+483 45.96098638836703 27.84069546253532 0
+484 20.6836187285522 18.12435874139773 0
+485 14.48082329058513 35.72636673335771 0
+486 20.395731766704 7.594280950480094 0
+487 1.704558008232715 17.58396913256762 0
+488 8.08397143351266 8.22740190828117 0
+489 12.26793942096946 18.04641382471681 0
+490 9.62099317882001 28.35127826981699 0
+491 1.951979655593035 28.68156272303459 0
+492 38.40966526897135 21.89022665500841 0
+493 45.69278635428876 32.17265733722654 0
+494 9.42621360048453 11.31012570203877 0
+495 55.59513989420995 20.22666965131133 0
+496 52.03236468157642 15.00441365594449 0
+497 51.25529406712213 21.88014082622838 0
+498 22.66268477139535 38.4322868919798 0
+499 47.4309120522217 29.81524825277734 0
+500 55.43523456118346 34.03024813739633 0
+501 18.89774112307645 21.37350590194583 0
+502 44.74508907504942 38.37491605865969 0
+503 35.22151450823115 22.91189904520873 0
+504 24.99898519990304 10.5115030027878 0
+505 1.776264835124096 25.42647509152486 0
+506 33.27012339955603 38.21606452370744 0
+507 44.80760200991621 1.644091423531048 0
+508 7.99961917705922 25.04369601910105 0
+509 23.73194335354934 16.64087411975753 0
+510 52.31318533751815 27.3028141641585 0
+511 22.93626076357857 13.36858606980965 0
+512 10.58703936021625 23.91341409540139 0
+513 55.43012483276141 6.048176190212392 0
+514 29.25497933514015 29.49731735471308 0
+515 58.09273511289625 11.26291697944555 0
+516 51.50474458137859 38.20738255538239 0
+517 4.863909165465706 6.250115329117637 0
+518 32.94211459765901 1.801312959989972 0
+519 39.27061884897956 28.61565715666633 0
+520 8.682871921403491 17.44933247468059 0
+521 41.20260173162733 34.12590377039601 0
+522 12.05154792136738 9.584048322141353 0
+523 44.58347482414363 15.93932924589031 0
+524 6.128749409074619 35.3632735559511 0
+525 25.51630894795712 8.505917817638085 0
+526 53.33572581204692 17.99017882209752 0
+527 52.65521273257521 1.460998605447574 0
+528 49.64095737419877 12.83844733624675 0
+529 42.18984260875824 31.31439925865966 0
+530 35.24413833853987 21.00190670539965 0
+531 58.22894164598556 14.3601197680936 0
+532 7.454415250581233 38.41491006552085 0
+533 4.486635957516457 31.20024783257203 0
+534 42.6760082457335 6.432184672283237 0
+535 40.57711674875112 16.21974125009532 0
+536 55.92291587642843 38.33135425268622 0
+537 4.26995675926788 19.23697910078066 0
+538 1.775301566227462 33.05284064461555 0
+539 4.988562475111112 13.35636223637398 0
+540 25.52800429951987 1.796733832234989 0
+541 7.210489409721462 1.615839513393684 0
+542 1.618202591723852 7.148824257416218 0
+543 39.68346810234456 13.1780416633457 0
+544 39.043303270691 11.53937654342767 0
+545 33.60020254044471 14.01123752255727 0
+546 16.88105042938436 38.2231504168497 0
+547 48.73110006741145 23.68743114939574 0
+548 10.87063096450955 6.298776607196318 0
+549 38.98795302345462 14.93348475059089 0
+550 15.31265524251108 17.7650559706938 0
+551 52.3596705898768 13.410939310189 0
+552 55.95892230710169 1.647213087357461 0
+553 58.49105723350974 7.167014357922236 0
+554 58.4381383325258 32.76969795131824 0
+555 47.74160552611309 9.634647371951488 0
+556 36.81933992471166 30.96531961638876 0
+557 4.31866178631079 8.642824005535736 0
+558 55.30167973193086 26.52672059545627 0
+559 29.62052749957459 16.31751366747155 0
+560 24.73649044515626 25.00256041539935 0
+561 43.81356292140848 17.75040342998552 0
+562 33.26788829748832 34.88339208375641 0
+563 14.51867847220224 1.674137149580596 0
+564 17.12480663363403 30.98840437769191 0
+565 25.34621595641979 13.69221730476288 0
+566 36.9834869229289 8.943199722035374 0
+567 30.00753900450147 38.33217333252318 0
+568 45.21061535109946 35.30695487214277 0
+569 47.07856995066371 35.96131129878591 0
+570 33.37422055994843 4.870914063038737 0
+571 23.48523332753721 4.093273292555056 0
+572 25.36593868544841 4.809160553550916 0
+573 8.744127461640653 21.6251967715195 0
+574 14.618630484041 15.00923548126237 0
+575 35.980575441397 4.008888222979946 0
+576 35.83131638342134 35.93639159580437 0
+577 45.35340066672818 4.680642686544201 0
+578 47.24803454272985 4.018393998500811 0
+579 36.67643109114022 33.25732576025066 0
+580 17.62292634392936 5.492760732106428 0
+581 7.49673453071427 26.62840994127169 0
+582 7.277361096666058 23.41720574765672 0
+583 22.21695137613082 8.697984061201769 0
+584 46.47864817461355 19.2927768445579 0
+585 40.77281580883953 23.93504995779551 0
+586 47.11094974788329 21.14023474951661 0
+587 36.94070954845793 6.671111557184012 0
+588 3.904535773599164 1.715562921125677 0
+589 20.31505314983664 11.17447208812127 0
+590 19.66439926986097 12.86204459540684 0
+591 10.77146659570215 19.67124937938267 0
+592 1.2131632128918 13.1356689938399 0
+593 58.70725681573862 26.84719769359039 0
+594 49.6402817253811 20.18095088217774 0
+595 51.89925125294123 30.92862676368816 0
+596 50.22123673576445 35.90905148547312 0
+597 18.51631653607353 23.74204414845963 0
+598 44.02132291540777 12.65218230376903 0
+599 25.73735458088082 15.5212152744151 0
+600 58.50849344220707 19.2163464048034 0
+601 44.00959687594654 25.09524244716776 0
+602 15.19395674239674 12.24562349881908 0
+603 39.96740474504989 8.437237073248047 0
+604 34.7317401115507 1.520882326759175 0
+605 15.3472167731378 24.88991013682922 0
+606 46.93365950535457 24.62301502508662 0
+607 33.93426019091038 32.89141437933637 0
+608 13.64472194982473 24.11843920160099 0
+609 26.78288108816816 38.49891749347402 0
+610 12.58932146399464 12.63477640382237 0
+611 24.49014864805356 33.74998587267667 0
+612 1.564958472321046 23.57265794894494 0
+613 18.94273400915193 18.20741163574473 0
+614 34.72625185389253 38.4598769742616 0
+615 35.22099681265733 9.377554310631558 0
+616 41.1551166026242 5.386431118808924 0
+617 9.025538730002548 35.80179416115121 0
+618 13.84295107091002 7.218836979096275 0
+619 3.876215102334316 38.32862503056733 0
+620 50.33710317435107 4.058627403284746 0
+621 42.21047114931417 28.04233315250196 0
+622 49.66111726770235 27.87056048915574 0
+623 37.04119323957151 23.38511240587738 0
+624 5.774451846758304 16.26405587906332 0
+625 11.56972720790791 16.55389079308283 0
+626 19.32835569845859 31.84695299998686 0
+627 18.94239125007354 33.67636387525126 0
+628 21.80197864129872 19.78189084016499 0
+629 29.74503890535231 19.23091265652509 0
+630 9.888836193396543 31.68031068249259 0
+631 34.42558581512849 17.06215003079955 0
+632 58.45499060058796 16.16811591554396 0
+633 51.90148419493524 9.037814320225367 0
+634 55.69414415755802 8.986880878195445 0
+635 56.03310154746426 31.20950908435786 0
+636 12.01839242364371 29.90287915648604 0
+637 14.1631523274399 4.612730718704957 0
+638 12.5383384027073 4.046338920031544 0
+639 4.56508046657584 25.16519577771428 0
+640 5.339519019211408 17.93635241022046 0
+641 17.86376877977601 36.36669912492435 0
+642 27.80768879934622 36.03435358401846 0
+643 25.16480980067796 21.36768925391278 0
+644 17.55264604332567 15.74643903773681 0
+645 22.86936080262317 34.61508568517295 0
+646 10.78227114364097 33.48824783635366 0
+647 44.35457563711797 9.895301077681129 0
+648 12.39400815186578 35.86470903956495 0
+649 42.66674092096797 32.92958984745573 0
+650 39.58277880087468 31.72837540411951 0
+651 29.49554316082851 23.60105252932517 0
+652 28.27621433421976 32.86163177290116 0
+653 21.4674051921354 31.95089080308664 0
+654 49.79144874309166 25.20553526198123 0
+655 50.7050358581957 16.47335511557942 0
+656 55.49509420854236 15.04858763676543 0
+657 56.0941052209058 16.96283905200605 0
+658 54.22637821389569 23.41974083598466 0
+659 1.617125854447067 36.20017496843089 0
+660 13.04120292565537 38.68377072504973 0
+661 26.03464171563112 23.52648510350097 0
+662 38.58128043346563 25.66325699502744 0
+663 47.25570530276642 26.36772498629784 0
+664 35.83887380479636 26.31837878979373 0
+665 44.26154244867634 21.50143046777536 0
+666 36.54699750017561 13.42276024689361 0
+667 1.601666155171929 3.753159940636643 0
+668 7.545372717847722 18.94416261840193 0
+669 26.01830402695114 30.38799726367781 0
+670 12.91295877946276 27.43732871619568 0
+671 3.910719687627066 22.70046023498087 0
+672 37.0045625261947 20.3612043968669 0
+673 30.90538521063324 14.33310364518323 0
+674 10.65133832409237 27.075846297938 0
+675 37.54874248547391 38.45490700209641 0
+676 51.61697992150345 18.31952565762258 0
+677 52.95679889622433 38.64254157133038 0
+678 55.95194227678903 27.77127574559094 0
+679 43.99663400462206 28.83675719077177 0
+680 51.01552264100923 1.26620737134304 0
+681 31.05889214795903 31.93243454261101 0
+682 58.41494039708284 3.774806457500512 0
+683 58.41494039708456 36.22519354250124 0
+684 31.37446740076414 12.06420314644291 0
+685 3.626452467573728 11.82049293272582 0
+686 22.44941514909726 15.07370872328715 0
+687 51.69581679163918 25.51135210356304 0
+688 34.42412657049168 7.173451437399413 0
+689 1.378635809522382 20.78970607933275 0
+690 32.53473380452136 9.51592619930334 0
+691 49.73047860685367 14.68940539246377 0
+692 49.28199518379311 1.575769397706289 0
+693 30.99999999994085 1.222631854813544 0
+694 22.1247765874396 26.05516493901553 0
+695 32.19192009445666 27.7759140303972 0
+696 23.29212851926307 28.95816276359884 0
+697 16.8837578493091 20.86603824065982 0
+698 16.37731768190634 33.16527996621467 0
+699 6.472330897030028 10.39641465871498 0
+700 23.93155858414075 7.632401271775682 0
+701 46.60688193266732 13.74840163254046 0
+702 32.32247386488523 14.76437404529047 0
+703 1.271283197336795 27.01892072953295 0
+704 48.85387497845732 26.63982061897353 0
+705 37.77872756054178 1.545097677270815 0
+706 5.279437237202434 32.48882675412501 0
+707 17.21270374997221 1.348827891434049 0
+708 58.77160969665614 20.95821448223737 0
+709 27.84988310027559 25.99565895730498 0
+710 21.46387435103691 1.461408083011448 0
+711 19.14017513173787 8.685967155976158 0
+712 26.63478121602928 20.22612718949669 0
+713 48.87764309919653 31.15572788040352 0
+714 42.27195376700706 11.62782742104427 0
+715 33.23761600053886 12.52834729954646 0
+716 48.77237771211691 38.66151599127623 0
+717 41.18047251546881 13.21421479159926 0
+718 26.74711907117671 35.24378548908674 0
+719 7.650399220854094 11.62083608031109 0
+720 8.092931833978795 27.90457866031213 0
+721 28.33187821177557 13.46869791200451 0
+722 20.47450701808135 4.126962253601397 0
+723 7.11300628233342 13.34215584873387 0
+724 35.35889762646366 30.36438026492398 0
+725 7.399705986875067 5.279088382142303 0
+726 51.46802098339516 32.85224002314832 0
+727 15.84928592252415 16.20880689587791 0
+728 9.034159249148157 14.23362508172776 0
+729 24.62829513109032 18.4002238622019 0
+730 16.51888718102843 23.63574633326419 0
+731 25.8236091431115 11.82124845407731 0
+732 21.25011492539803 5.964933025379156 0
+733 1.149142804135756 18.99999999999995 0
+734 13.07089124596451 1.205271614771737 0
+735 39.02149279764213 38.83540035648702 0
+736 23.5071614564016 26.07491964147938 0
+737 51.38391272499767 7.085459193826208 0
+738 5.487677505047835 29.60462358720678 0
+739 37.47757897826845 29.06732565762905 0
+740 58.64574253604792 25.44266896944443 0
+741 37.78030775063966 36.45899967794245 0
+742 40.98477960241879 28.83385496619501 0
+743 52.45462365320832 34.40789601191958 0
+744 19.70635906683624 28.59450162663152 0
+745 19.72720486203126 38.51108010983661 0
+746 15.81427786609114 22.07602380181305 0
+747 37.91509955319313 3.485841207119863 0
+748 4.009644923786419 28.15192688882591 0
+749 49.01999968891769 8.660462029290608 0
+750 3.788625661700634 5.399582187123174 0
+751 27.17099297335894 1.186744007644657 0
+752 58.710018069467 12.8976073701752 0
+753 54.24656481896225 21.51802895498942 0
+754 52.61298283814855 20.98789136732746 0
+755 10.41410318054429 7.974972649705201 0
+756 16.1434670802085 19.19132226980373 0
+757 58.66307662179197 1.336923378206103 0
+758 58.66307662179351 38.66307662179417 0
+759 8.674761421689817 1.330493172817047 0
+760 46.05237931348395 30.88525728166737 0
+761 52.51825189670204 5.601654892593504 0
+762 39.65321496826213 36.19456476175084 0
+763 21.74109858613904 3.241038635250128 0
+764 55.87150403049549 11.74852935807682 0
+765 51.29005171560819 12.18385855867605 0
+766 48.60077612927283 36.74126530544378 0
+767 9.781760352992908 25.27638761630629 0
+768 11.96510646149791 21.18363740469939 0
+769 46.50278657191436 1.38732568291416 0
+770 1.29605855170859 38.70394144829315 0
+771 56.61855725793807 14.09786026794269 0
+772 39.92847310689206 10.29690475809132 0
+773 44.87694217279645 11.24962362321907 0
+774 10.64098208164303 1.267124061842298 0
+775 26.16646266173229 28.72267632965516 0
+776 41.65134670315452 26.58525851486525 0
+777 15.09617614155018 30.38393648922125 0
+778 56.75951833646725 18.80897778693135 0
+779 43.56013102637838 14.49981064695188 0
+780 1.339514321870883 14.50640439673332 0
+781 1.251442899117387 1.251442899117574 0
+782 15.70758668835062 9.378940622171227 0
+783 39.9769797372698 3.700908578909845 0
+784 16.54609071480338 6.381765259652901 0
+785 17.30987808624167 10.63592008204068 0
+786 26.18354793812398 3.455438702414392 0
+787 51.01694024738521 27.99405599969779 0
+788 32.70408506737439 36.44364603226829 0
+789 5.255886128173934 7.58565375962099 0
+790 9.874825852356805 12.70293407947537 0
+791 39.24415907363385 26.87013578492638 0
+792 42.99999999996514 1.04663259572439 0
+793 3.364484490456395 25.67654501993444 0
+794 23.80598498541618 19.84966313799669 0
+795 9.20829694994875 38.76007284802918 0
+796 36.13566598641333 27.88222427009812 0
+797 32.73592970948766 3.556584019316739 0
+798 48.94289448554981 3.241233238461318 0
+799 16.35369184625045 28.06244520869978 0
+800 19.00599484960623 10.0886238946192 0
+801 19.59257000514986 36.85329893824773 0
+802 30.33023934758462 30.45318041647004 0
+803 39.16584342854592 1.170023141945107 0
+804 39.9144776192266 33.14369004963002 0
+805 3.491700114655068 34.11780395235675 0
+806 44.43343584040618 36.70064900769671 0
+807 37.46573512440179 11.49366928905868 0
+808 42.06965103344464 14.64839239358009 0
+809 33.95895098227535 25.69349433374582 0
+810 42.93899798520243 10.15580966343867 0
+811 34.77242074861059 28.96968445938228 0
+812 13.02569938764323 28.86468785048334 0
+813 40.02872666166967 6.668522202465921 0
+814 42.98979605906612 38.93522009367196 0
+815 45.78507691199172 21.94553828819161 0
+816 44.54562730178307 3.323349214085901 0
+817 44.83851244575069 19.40876027130497 0
+818 15.46844012854496 13.52263128395863 0
+819 21.11863874955593 38.85731594482653 0
+820 54.27775939280856 10.54248887450184 0
+821 53.24353907067531 29.3115496506848 0
+822 32.68238854565544 31.92694471861456 0
+823 29.98965845655969 20.59517172172251 0
+824 46.39756382816609 38.63848667374827 0
+825 9.575112650926176 34.62495917082227 0
+826 32.19990301379659 25.03356103368365 0
+827 15.14435762868554 3.518681765852218 0
+828 18.15158383198336 13.05587686949087 0
+$EndNodes
+$Elements
+1658
+1 15 2 0 1 1
+2 15 2 0 2 2
+3 15 2 0 3 3
+4 15 2 0 4 4
+5 1 2 0 5 1 5
+6 1 2 0 5 5 6
+7 1 2 0 5 6 7
+8 1 2 0 5 7 8
+9 1 2 0 5 8 9
+10 1 2 0 5 9 10
+11 1 2 0 5 10 11
+12 1 2 0 5 11 12
+13 1 2 0 5 12 13
+14 1 2 0 5 13 14
+15 1 2 0 5 14 15
+16 1 2 0 5 15 16
+17 1 2 0 5 16 17
+18 1 2 0 5 17 18
+19 1 2 0 5 18 19
+20 1 2 0 5 19 20
+21 1 2 0 5 20 21
+22 1 2 0 5 21 22
+23 1 2 0 5 22 23
+24 1 2 0 5 23 24
+25 1 2 0 5 24 25
+26 1 2 0 5 25 26
+27 1 2 0 5 26 27
+28 1 2 0 5 27 28
+29 1 2 0 5 28 29
+30 1 2 0 5 29 30
+31 1 2 0 5 30 31
+32 1 2 0 5 31 32
+33 1 2 0 5 32 33
+34 1 2 0 5 33 2
+35 1 2 0 6 2 34
+36 1 2 0 6 34 35
+37 1 2 0 6 35 36
+38 1 2 0 6 36 37
+39 1 2 0 6 37 38
+40 1 2 0 6 38 39
+41 1 2 0 6 39 40
+42 1 2 0 6 40 41
+43 1 2 0 6 41 42
+44 1 2 0 6 42 43
+45 1 2 0 6 43 44
+46 1 2 0 6 44 45
+47 1 2 0 6 45 46
+48 1 2 0 6 46 47
+49 1 2 0 6 47 48
+50 1 2 0 6 48 49
+51 1 2 0 6 49 50
+52 1 2 0 6 50 51
+53 1 2 0 6 51 52
+54 1 2 0 6 52 3
+55 1 2 0 7 3 53
+56 1 2 0 7 53 54
+57 1 2 0 7 54 55
+58 1 2 0 7 55 56
+59 1 2 0 7 56 57
+60 1 2 0 7 57 58
+61 1 2 0 7 58 59
+62 1 2 0 7 59 60
+63 1 2 0 7 60 61
+64 1 2 0 7 61 62
+65 1 2 0 7 62 63
+66 1 2 0 7 63 64
+67 1 2 0 7 64 65
+68 1 2 0 7 65 66
+69 1 2 0 7 66 67
+70 1 2 0 7 67 68
+71 1 2 0 7 68 69
+72 1 2 0 7 69 70
+73 1 2 0 7 70 71
+74 1 2 0 7 71 72
+75 1 2 0 7 72 73
+76 1 2 0 7 73 74
+77 1 2 0 7 74 75
+78 1 2 0 7 75 76
+79 1 2 0 7 76 77
+80 1 2 0 7 77 78
+81 1 2 0 7 78 79
+82 1 2 0 7 79 80
+83 1 2 0 7 80 81
+84 1 2 0 7 81 4
+85 1 2 0 8 4 82
+86 1 2 0 8 82 83
+87 1 2 0 8 83 84
+88 1 2 0 8 84 85
+89 1 2 0 8 85 86
+90 1 2 0 8 86 87
+91 1 2 0 8 87 88
+92 1 2 0 8 88 89
+93 1 2 0 8 89 90
+94 1 2 0 8 90 91
+95 1 2 0 8 91 92
+96 1 2 0 8 92 93
+97 1 2 0 8 93 94
+98 1 2 0 8 94 95
+99 1 2 0 8 95 96
+100 1 2 0 8 96 97
+101 1 2 0 8 97 98
+102 1 2 0 8 98 99
+103 1 2 0 8 99 100
+104 1 2 0 8 100 1
+105 2 2 0 10 525 700 126
+106 2 2 0 10 700 334 126
+107 2 2 0 10 732 149 334
+108 2 2 0 10 302 732 334
+109 2 2 0 10 608 145 409
+110 2 2 0 10 278 608 409
+111 2 2 0 10 685 422 349
+112 2 2 0 10 475 186 707
+113 2 2 0 10 152 467 336
+114 2 2 0 10 216 336 467
+115 2 2 0 10 162 685 349
+116 2 2 0 10 459 191 630
+117 2 2 0 10 173 462 341
+118 2 2 0 10 817 272 665
+119 2 2 0 10 163 684 306
+120 2 2 0 10 630 191 385
+121 2 2 0 10 163 276 378
+122 2 2 0 10 53 536 327
+123 2 2 0 10 118 478 524
+124 2 2 0 10 170 401 342
+125 2 2 0 10 203 342 401
+126 2 2 0 10 124 323 479
+127 2 2 0 10 111 398 589
+128 2 2 0 10 292 579 556
+129 2 2 0 10 163 715 684
+130 2 2 0 10 300 566 587
+131 2 2 0 10 828 294 397
+132 2 2 0 10 113 297 668
+133 2 2 0 10 155 360 301
+134 2 2 0 10 152 336 413
+135 2 2 0 10 148 387 277
+136 2 2 0 10 120 725 270
+137 2 2 0 10 141 294 828
+138 2 2 0 10 707 186 316
+139 2 2 0 10 113 520 295
+140 2 2 0 10 667 98 99
+141 2 2 0 10 340 676 526
+142 2 2 0 10 165 361 515
+143 2 2 0 10 392 528 691
+144 2 2 0 10 85 350 538
+145 2 2 0 10 241 435 318
+146 2 2 0 10 280 444 555
+147 2 2 0 10 555 444 195
+148 2 2 0 10 114 676 340
+149 2 2 0 10 239 353 466
+150 2 2 0 10 202 395 330
+151 2 2 0 10 171 330 395
+152 2 2 0 10 135 477 658
+153 2 2 0 10 420 817 665
+154 2 2 0 10 53 54 536
+155 2 2 0 10 597 403 465
+156 2 2 0 10 110 566 300
+157 2 2 0 10 161 350 491
+158 2 2 0 10 85 86 350
+159 2 2 0 10 176 672 530
+160 2 2 0 10 157 471 335
+161 2 2 0 10 173 416 462
+162 2 2 0 10 33 326 552
+163 2 2 0 10 172 420 665
+164 2 2 0 10 201 403 597
+165 2 2 0 10 165 515 764
+166 2 2 0 10 111 583 398
+167 2 2 0 10 683 50 51
+168 2 2 0 10 35 36 682
+169 2 2 0 10 391 98 667
+170 2 2 0 10 335 471 795
+171 2 2 0 10 14 282 475
+172 2 2 0 10 45 318 469
+173 2 2 0 10 173 451 283
+174 2 2 0 10 66 567 289
+175 2 2 0 10 109 292 556
+176 2 2 0 10 297 372 668
+177 2 2 0 10 148 277 464
+178 2 2 0 10 83 84 659
+179 2 2 0 10 105 528 392
+180 2 2 0 10 155 372 297
+181 2 2 0 10 155 297 374
+182 2 2 0 10 135 658 435
+183 2 2 0 10 184 279 457
+184 2 2 0 10 684 104 472
+185 2 2 0 10 169 409 417
+186 2 2 0 10 215 417 409
+187 2 2 0 10 179 431 299
+188 2 2 0 10 176 414 672
+189 2 2 0 10 134 389 496
+190 2 2 0 10 249 496 389
+191 2 2 0 10 96 97 349
+192 2 2 0 10 232 281 606
+193 2 2 0 10 142 606 281
+194 2 2 0 10 116 401 513
+195 2 2 0 10 162 307 685
+196 2 2 0 10 353 559 466
+197 2 2 0 10 97 542 349
+198 2 2 0 10 154 351 352
+199 2 2 0 10 236 352 351
+200 2 2 0 10 383 50 683
+201 2 2 0 10 682 36 382
+202 2 2 0 10 173 440 284
+203 2 2 0 10 659 84 384
+204 2 2 0 10 48 362 419
+205 2 2 0 10 364 626 564
+206 2 2 0 10 15 16 331
+207 2 2 0 10 219 556 579
+208 2 2 0 10 37 361 553
+209 2 2 0 10 49 554 362
+210 2 2 0 10 160 305 380
+211 2 2 0 10 154 696 357
+212 2 2 0 10 274 357 696
+213 2 2 0 10 7 365 588
+214 2 2 0 10 96 349 422
+215 2 2 0 10 109 519 405
+216 2 2 0 10 118 524 427
+217 2 2 0 10 795 471 77
+218 2 2 0 10 306 684 472
+219 2 2 0 10 378 807 666
+220 2 2 0 10 116 513 473
+221 2 2 0 10 190 320 430
+222 2 2 0 10 125 430 320
+223 2 2 0 10 820 634 165
+224 2 2 0 10 182 375 633
+225 2 2 0 10 265 633 375
+226 2 2 0 10 124 479 584
+227 2 2 0 10 276 807 378
+228 2 2 0 10 37 38 361
+229 2 2 0 10 48 49 362
+230 2 2 0 10 196 274 448
+231 2 2 0 10 120 270 488
+232 2 2 0 10 161 491 748
+233 2 2 0 10 32 33 552
+234 2 2 0 10 284 786 540
+235 2 2 0 10 199 488 367
+236 2 2 0 10 618 131 450
+237 2 2 0 10 296 618 450
+238 2 2 0 10 79 619 368
+239 2 2 0 10 157 648 471
+240 2 2 0 10 243 461 338
+241 2 2 0 10 261 381 595
+242 2 2 0 10 183 595 381
+243 2 2 0 10 213 535 293
+244 2 2 0 10 189 426 288
+245 2 2 0 10 241 558 435
+246 2 2 0 10 6 7 588
+247 2 2 0 10 117 500 395
+248 2 2 0 10 284 540 751
+249 2 2 0 10 79 80 619
+250 2 2 0 10 115 460 439
+251 2 2 0 10 55 330 536
+252 2 2 0 10 175 402 291
+253 2 2 0 10 405 519 742
+254 2 2 0 10 173 283 416
+255 2 2 0 10 123 444 329
+256 2 2 0 10 243 539 461
+257 2 2 0 10 307 539 685
+258 2 2 0 10 143 292 404
+259 2 2 0 10 198 273 470
+260 2 2 0 10 178 406 289
+261 2 2 0 10 232 601 281
+262 2 2 0 10 367 488 755
+263 2 2 0 10 31 552 342
+264 2 2 0 10 175 291 437
+265 2 2 0 10 312 364 799
+266 2 2 0 10 159 799 364
+267 2 2 0 10 139 625 363
+268 2 2 0 10 195 444 324
+269 2 2 0 10 123 324 444
+270 2 2 0 10 130 485 354
+271 2 2 0 10 105 443 280
+272 2 2 0 10 68 410 567
+273 2 2 0 10 163 615 276
+274 2 2 0 10 139 489 625
+275 2 2 0 10 112 626 364
+276 2 2 0 10 197 455 319
+277 2 2 0 10 147 319 455
+278 2 2 0 10 166 419 362
+279 2 2 0 10 196 694 274
+280 2 2 0 10 198 636 273
+281 2 2 0 10 67 68 567
+282 2 2 0 10 234 439 460
+283 2 2 0 10 195 324 447
+284 2 2 0 10 150 447 324
+285 2 2 0 10 207 313 512
+286 2 2 0 10 180 286 469
+287 2 2 0 10 69 70 408
+288 2 2 0 10 145 512 313
+289 2 2 0 10 277 439 651
+290 2 2 0 10 117 474 500
+291 2 2 0 10 179 299 411
+292 2 2 0 10 204 296 522
+293 2 2 0 10 223 543 549
+294 2 2 0 10 69 408 609
+295 2 2 0 10 216 428 365
+296 2 2 0 10 185 365 428
+297 2 2 0 10 222 329 390
+298 2 2 0 10 145 608 309
+299 2 2 0 10 247 309 608
+300 2 2 0 10 224 377 602
+301 2 2 0 10 224 610 377
+302 2 2 0 10 164 323 392
+303 2 2 0 10 113 668 520
+304 2 2 0 10 184 498 279
+305 2 2 0 10 174 651 439
+306 2 2 0 10 203 310 680
+307 2 2 0 10 404 762 741
+308 2 2 0 10 16 540 331
+309 2 2 0 10 223 549 449
+310 2 2 0 10 244 408 456
+311 2 2 0 10 184 456 408
+312 2 2 0 10 18 451 751
+313 2 2 0 10 143 404 741
+314 2 2 0 10 346 634 820
+315 2 2 0 10 142 281 815
+316 2 2 0 10 173 284 451
+317 2 2 0 10 196 312 465
+318 2 2 0 10 137 465 312
+319 2 2 0 10 103 463 380
+320 2 2 0 10 186 282 722
+321 2 2 0 10 101 414 446
+322 2 2 0 10 218 446 414
+323 2 2 0 10 152 548 467
+324 2 2 0 10 206 335 532
+325 2 2 0 10 270 467 548
+326 2 2 0 10 188 301 487
+327 2 2 0 10 146 423 300
+328 2 2 0 10 236 645 317
+329 2 2 0 10 160 695 369
+330 2 2 0 10 186 475 282
+331 2 2 0 10 218 415 449
+332 2 2 0 10 128 449 415
+333 2 2 0 10 128 415 631
+334 2 2 0 10 765 343 551
+335 2 2 0 10 270 725 467
+336 2 2 0 10 168 295 520
+337 2 2 0 10 47 48 419
+338 2 2 0 10 302 583 486
+339 2 2 0 10 583 111 486
+340 2 2 0 10 232 483 325
+341 2 2 0 10 101 424 304
+342 2 2 0 10 177 436 298
+343 2 2 0 10 128 631 436
+344 2 2 0 10 218 535 446
+345 2 2 0 10 268 369 695
+346 2 2 0 10 105 280 555
+347 2 2 0 10 178 289 567
+348 2 2 0 10 281 445 665
+349 2 2 0 10 103 288 454
+350 2 2 0 10 118 459 287
+351 2 2 0 10 227 587 566
+352 2 2 0 10 172 304 424
+353 2 2 0 10 218 549 535
+354 2 2 0 10 166 635 347
+355 2 2 0 10 152 413 638
+356 2 2 0 10 119 406 321
+357 2 2 0 10 178 321 406
+358 2 2 0 10 177 298 453
+359 2 2 0 10 130 396 485
+360 2 2 0 10 230 485 396
+361 2 2 0 10 57 303 516
+362 2 2 0 10 221 538 350
+363 2 2 0 10 115 298 460
+364 2 2 0 10 245 504 525
+365 2 2 0 10 192 306 472
+366 2 2 0 10 31 32 552
+367 2 2 0 10 172 665 445
+368 2 2 0 10 44 45 469
+369 2 2 0 10 281 601 445
+370 2 2 0 10 160 433 305
+371 2 2 0 10 170 326 682
+372 2 2 0 10 171 683 327
+373 2 2 0 10 192 429 306
+374 2 2 0 10 66 289 506
+375 2 2 0 10 245 442 472
+376 2 2 0 10 192 472 442
+377 2 2 0 10 126 341 442
+378 2 2 0 10 192 442 341
+379 2 2 0 10 132 503 623
+380 2 2 0 10 765 528 375
+381 2 2 0 10 354 485 648
+382 2 2 0 10 14 710 282
+383 2 2 0 10 173 341 440
+384 2 2 0 10 132 623 458
+385 2 2 0 10 5 588 366
+386 2 2 0 10 54 55 536
+387 2 2 0 10 66 67 567
+388 2 2 0 10 193 497 477
+389 2 2 0 10 260 477 497
+390 2 2 0 10 147 455 328
+391 2 2 0 10 95 96 422
+392 2 2 0 10 118 287 478
+393 2 2 0 10 112 448 352
+394 2 2 0 10 102 501 400
+395 2 2 0 10 42 358 632
+396 2 2 0 10 133 445 601
+397 2 2 0 10 194 370 418
+398 2 2 0 10 141 418 370
+399 2 2 0 10 332 709 464
+400 2 2 0 10 709 211 464
+401 2 2 0 10 229 383 500
+402 2 2 0 10 171 500 383
+403 2 2 0 10 224 363 610
+404 2 2 0 10 213 420 424
+405 2 2 0 10 172 424 420
+406 2 2 0 10 182 343 765
+407 2 2 0 10 115 453 298
+408 2 2 0 10 146 587 355
+409 2 2 0 10 234 438 439
+410 2 2 0 10 174 439 438
+411 2 2 0 10 172 445 304
+412 2 2 0 10 174 463 332
+413 2 2 0 10 222 534 329
+414 2 2 0 10 123 329 534
+415 2 2 0 10 141 644 294
+416 2 2 0 10 284 751 451
+417 2 2 0 10 176 460 298
+418 2 2 0 10 156 377 782
+419 2 2 0 10 296 782 377
+420 2 2 0 10 211 454 357
+421 2 2 0 10 81 348 619
+422 2 2 0 10 180 495 286
+423 2 2 0 10 201 597 501
+424 2 2 0 10 194 484 370
+425 2 2 0 10 220 349 542
+426 2 2 0 10 101 446 424
+427 2 2 0 10 285 501 597
+428 2 2 0 10 144 511 398
+429 2 2 0 10 242 398 511
+430 2 2 0 10 93 338 487
+431 2 2 0 10 230 468 485
+432 2 2 0 10 252 485 468
+433 2 2 0 10 550 240 756
+434 2 2 0 10 591 489 215
+435 2 2 0 10 295 489 591
+436 2 2 0 10 228 553 361
+437 2 2 0 10 229 362 554
+438 2 2 0 10 213 424 446
+439 2 2 0 10 180 318 435
+440 2 2 0 10 103 514 288
+441 2 2 0 10 202 330 677
+442 2 2 0 10 104 673 353
+443 2 2 0 10 182 765 375
+444 2 2 0 10 278 409 746
+445 2 2 0 10 125 403 430
+446 2 2 0 10 201 430 403
+447 2 2 0 10 203 680 527
+448 2 2 0 10 192 341 462
+449 2 2 0 10 239 565 434
+450 2 2 0 10 189 288 514
+451 2 2 0 10 182 820 343
+452 2 2 0 10 166 821 344
+453 2 2 0 10 328 455 726
+454 2 2 0 10 242 589 398
+455 2 2 0 10 104 684 673
+456 2 2 0 10 170 682 382
+457 2 2 0 10 171 383 683
+458 2 2 0 10 182 346 820
+459 2 2 0 10 166 347 821
+460 2 2 0 10 228 513 382
+461 2 2 0 10 170 382 513
+462 2 2 0 10 205 308 614
+463 2 2 0 10 251 691 528
+464 2 2 0 10 434 565 731
+465 2 2 0 10 163 306 690
+466 2 2 0 10 188 461 624
+467 2 2 0 10 346 473 634
+468 2 2 0 10 347 635 474
+469 2 2 0 10 143 579 292
+470 2 2 0 10 150 337 447
+471 2 2 0 10 188 624 640
+472 2 2 0 10 168 625 295
+473 2 2 0 10 109 650 292
+474 2 2 0 10 210 331 540
+475 2 2 0 10 178 441 321
+476 2 2 0 10 146 355 575
+477 2 2 0 10 363 432 610
+478 2 2 0 10 5 6 588
+479 2 2 0 10 183 510 821
+480 2 2 0 10 186 452 316
+481 2 2 0 10 170 552 326
+482 2 2 0 10 247 670 309
+483 2 2 0 10 113 295 591
+484 2 2 0 10 293 535 808
+485 2 2 0 10 213 293 561
+486 2 2 0 10 309 670 674
+487 2 2 0 10 104 434 472
+488 2 2 0 10 245 472 434
+489 2 2 0 10 171 327 536
+490 2 2 0 10 41 42 632
+491 2 2 0 10 169 746 409
+492 2 2 0 10 33 757 326
+493 2 2 0 10 53 327 758
+494 2 2 0 10 756 240 400
+495 2 2 0 10 344 821 510
+496 2 2 0 10 155 301 537
+497 2 2 0 10 18 19 451
+498 2 2 0 10 171 536 330
+499 2 2 0 10 151 317 457
+500 2 2 0 10 261 726 455
+501 2 2 0 10 423 747 783
+502 2 2 0 10 129 351 426
+503 2 2 0 10 76 77 471
+504 2 2 0 10 110 300 603
+505 2 2 0 10 22 705 315
+506 2 2 0 10 187 492 304
+507 2 2 0 10 176 298 631
+508 2 2 0 10 296 377 522
+509 2 2 0 10 317 645 457
+510 2 2 0 10 204 618 296
+511 2 2 0 10 113 573 297
+512 2 2 0 10 20 518 693
+513 2 2 0 10 370 484 613
+514 2 2 0 10 400 501 697
+515 2 2 0 10 12 316 563
+516 2 2 0 10 198 470 354
+517 2 2 0 10 130 354 470
+518 2 2 0 10 179 411 616
+519 2 2 0 10 146 300 587
+520 2 2 0 10 126 440 341
+521 2 2 0 10 82 659 348
+522 2 2 0 10 170 342 552
+523 2 2 0 10 335 795 532
+524 2 2 0 10 122 402 649
+525 2 2 0 10 34 682 757
+526 2 2 0 10 52 758 683
+527 2 2 0 10 380 463 695
+528 2 2 0 10 146 747 423
+529 2 2 0 10 311 738 748
+530 2 2 0 10 196 744 312
+531 2 2 0 10 101 304 492
+532 2 2 0 10 255 483 499
+533 2 2 0 10 106 499 483
+534 2 2 0 10 181 348 659
+535 2 2 0 10 138 461 539
+536 2 2 0 10 180 469 318
+537 2 2 0 10 31 342 527
+538 2 2 0 10 188 537 301
+539 2 2 0 10 254 390 714
+540 2 2 0 10 175 404 521
+541 2 2 0 10 326 757 682
+542 2 2 0 10 327 683 758
+543 2 2 0 10 161 533 350
+544 2 2 0 10 221 350 533
+545 2 2 0 10 40 41 531
+546 2 2 0 10 136 311 480
+547 2 2 0 10 176 415 414
+548 2 2 0 10 218 414 415
+549 2 2 0 10 168 432 363
+550 2 2 0 10 57 716 303
+551 2 2 0 10 191 738 311
+552 2 2 0 10 137 312 482
+553 2 2 0 10 787 381 622
+554 2 2 0 10 183 381 787
+555 2 2 0 10 116 346 633
+556 2 2 0 10 107 674 670
+557 2 2 0 10 202 516 303
+558 2 2 0 10 64 308 675
+559 2 2 0 10 135 435 558
+560 2 2 0 10 393 655 676
+561 2 2 0 10 242 511 418
+562 2 2 0 10 275 599 509
+563 2 2 0 10 117 595 347
+564 2 2 0 10 151 396 627
+565 2 2 0 10 133 601 325
+566 2 2 0 10 232 325 601
+567 2 2 0 10 200 701 323
+568 2 2 0 10 103 332 463
+569 2 2 0 10 80 81 619
+570 2 2 0 10 193 333 497
+571 2 2 0 10 210 540 786
+572 2 2 0 10 208 604 315
+573 2 2 0 10 181 619 348
+574 2 2 0 10 267 762 437
+575 2 2 0 10 160 811 433
+576 2 2 0 10 194 314 484
+577 2 2 0 10 433 811 724
+578 2 2 0 10 202 303 596
+579 2 2 0 10 13 14 475
+580 2 2 0 10 187 304 585
+581 2 2 0 10 188 338 461
+582 2 2 0 10 190 430 425
+583 2 2 0 10 201 425 430
+584 2 2 0 10 41 632 531
+585 2 2 0 10 325 483 679
+586 2 2 0 10 411 534 616
+587 2 2 0 10 110 807 566
+588 2 2 0 10 121 388 429
+589 2 2 0 10 86 491 350
+590 2 2 0 10 164 479 323
+591 2 2 0 10 166 344 678
+592 2 2 0 10 211 357 560
+593 2 2 0 10 122 493 319
+594 2 2 0 10 197 319 493
+595 2 2 0 10 158 495 340
+596 2 2 0 10 127 509 599
+597 2 2 0 10 191 459 359
+598 2 2 0 10 118 359 459
+599 2 2 0 10 270 755 488
+600 2 2 0 10 402 521 649
+601 2 2 0 10 162 699 307
+602 2 2 0 10 145 309 512
+603 2 2 0 10 283 693 518
+604 2 2 0 10 194 509 314
+605 2 2 0 10 164 655 393
+606 2 2 0 10 181 659 384
+607 2 2 0 10 166 678 419
+608 2 2 0 10 190 643 320
+609 2 2 0 10 189 681 321
+610 2 2 0 10 161 748 738
+611 2 2 0 10 390 810 714
+612 2 2 0 10 216 759 336
+613 2 2 0 10 100 366 667
+614 2 2 0 10 145 313 768
+615 2 2 0 10 112 364 744
+616 2 2 0 10 245 525 442
+617 2 2 0 10 755 204 522
+618 2 2 0 10 64 614 308
+619 2 2 0 10 12 707 316
+620 2 2 0 10 206 524 478
+621 2 2 0 10 191 311 720
+622 2 2 0 10 181 368 619
+623 2 2 0 10 496 655 691
+624 2 2 0 10 205 576 308
+625 2 2 0 10 251 496 691
+626 2 2 0 10 90 360 612
+627 2 2 0 10 235 379 450
+628 2 2 0 10 183 787 510
+629 2 2 0 10 113 591 313
+630 2 2 0 10 207 573 313
+631 2 2 0 10 192 462 429
+632 2 2 0 10 407 723 728
+633 2 2 0 10 367 755 522
+634 2 2 0 10 203 620 310
+635 2 2 0 10 329 444 647
+636 2 2 0 10 202 677 516
+637 2 2 0 10 641 546 230
+638 2 2 0 10 339 546 641
+639 2 2 0 10 116 473 346
+640 2 2 0 10 117 347 474
+641 2 2 0 10 136 581 311
+642 2 2 0 10 113 313 573
+643 2 2 0 10 241 318 740
+644 2 2 0 10 138 723 407
+645 2 2 0 10 227 355 587
+646 2 2 0 10 114 340 754
+647 2 2 0 10 404 804 521
+648 2 2 0 10 168 520 407
+649 2 2 0 10 130 470 394
+650 2 2 0 10 236 317 653
+651 2 2 0 10 73 339 745
+652 2 2 0 10 134 343 481
+653 2 2 0 10 225 333 586
+654 2 2 0 10 142 586 333
+655 2 2 0 10 186 722 386
+656 2 2 0 10 210 571 331
+657 2 2 0 10 162 349 557
+658 2 2 0 10 220 557 349
+659 2 2 0 10 133 325 776
+660 2 2 0 10 244 609 408
+661 2 2 0 10 22 315 604
+662 2 2 0 10 212 525 504
+663 2 2 0 10 82 348 770
+664 2 2 0 10 81 770 348
+665 2 2 0 10 119 321 681
+666 2 2 0 10 185 667 366
+667 2 2 0 10 252 471 648
+668 2 2 0 10 208 315 575
+669 2 2 0 10 124 523 323
+670 2 2 0 10 200 323 523
+671 2 2 0 10 70 498 408
+672 2 2 0 10 15 331 710
+673 2 2 0 10 151 627 317
+674 2 2 0 10 92 93 487
+675 2 2 0 10 151 641 396
+676 2 2 0 10 142 333 547
+677 2 2 0 10 188 487 338
+678 2 2 0 10 312 744 364
+679 2 2 0 10 129 426 652
+680 2 2 0 10 133 421 585
+681 2 2 0 10 45 740 318
+682 2 2 0 10 178 567 410
+683 2 2 0 10 333 594 497
+684 2 2 0 10 136 374 582
+685 2 2 0 10 160 369 811
+686 2 2 0 10 122 319 568
+687 2 2 0 10 147 569 319
+688 2 2 0 10 125 320 560
+689 2 2 0 10 299 431 792
+690 2 2 0 10 129 611 351
+691 2 2 0 10 236 351 611
+692 2 2 0 10 238 374 639
+693 2 2 0 10 231 476 466
+694 2 2 0 10 127 466 476
+695 2 2 0 10 144 565 511
+696 2 2 0 10 275 511 565
+697 2 2 0 10 302 334 700
+698 2 2 0 10 191 359 738
+699 2 2 0 10 267 437 735
+700 2 2 0 10 185 391 667
+701 2 2 0 10 129 652 441
+702 2 2 0 10 185 588 365
+703 2 2 0 10 279 801 457
+704 2 2 0 10 107 385 490
+705 2 2 0 10 297 573 582
+706 2 2 0 10 181 524 368
+707 2 2 0 10 206 368 524
+708 2 2 0 10 189 321 652
+709 2 2 0 10 82 83 659
+710 2 2 0 10 202 328 743
+711 2 2 0 10 144 398 504
+712 2 2 0 10 212 504 398
+713 2 2 0 10 185 366 588
+714 2 2 0 10 309 674 767
+715 2 2 0 10 167 679 399
+716 2 2 0 10 255 399 679
+717 2 2 0 10 133 585 445
+718 2 2 0 10 106 381 499
+719 2 2 0 10 55 677 330
+720 2 2 0 10 207 582 573
+721 2 2 0 10 234 503 438
+722 2 2 0 10 132 438 503
+723 2 2 0 10 139 417 489
+724 2 2 0 10 215 489 417
+725 2 2 0 10 202 596 328
+726 2 2 0 10 323 701 392
+727 2 2 0 10 73 546 339
+728 2 2 0 10 56 57 516
+729 2 2 0 10 238 671 374
+730 2 2 0 10 209 569 371
+731 2 2 0 10 135 344 510
+732 2 2 0 10 123 577 324
+733 2 2 0 10 150 324 578
+734 2 2 0 10 88 89 505
+735 2 2 0 10 163 388 615
+736 2 2 0 10 246 564 626
+737 2 2 0 10 418 511 686
+738 2 2 0 10 158 340 526
+739 2 2 0 10 147 328 596
+740 2 2 0 10 225 479 393
+741 2 2 0 10 164 393 479
+742 2 2 0 10 143 345 579
+743 2 2 0 10 219 579 345
+744 2 2 0 10 673 177 559
+745 2 2 0 10 353 673 559
+746 2 2 0 10 112 744 448
+747 2 2 0 10 263 684 715
+748 2 2 0 10 301 360 689
+749 2 2 0 10 235 386 486
+750 2 2 0 10 193 547 333
+751 2 2 0 10 231 387 476
+752 2 2 0 10 174 332 651
+753 2 2 0 10 38 515 361
+754 2 2 0 10 311 748 480
+755 2 2 0 10 337 737 447
+756 2 2 0 10 142 547 606
+757 2 2 0 10 121 462 416
+758 2 2 0 10 199 373 488
+759 2 2 0 10 120 488 373
+760 2 2 0 10 203 761 337
+761 2 2 0 10 217 376 578
+762 2 2 0 10 243 338 780
+763 2 2 0 10 203 527 342
+764 2 2 0 10 103 709 332
+765 2 2 0 10 24 25 431
+766 2 2 0 10 225 594 333
+767 2 2 0 10 149 571 334
+768 2 2 0 10 126 334 572
+769 2 2 0 10 203 337 620
+770 2 2 0 10 276 566 807
+771 2 2 0 10 34 35 682
+772 2 2 0 10 51 52 683
+773 2 2 0 10 186 386 580
+774 2 2 0 10 235 580 386
+775 2 2 0 10 206 617 335
+776 2 2 0 10 99 100 667
+777 2 2 0 10 196 465 403
+778 2 2 0 10 185 428 750
+779 2 2 0 10 157 335 617
+780 2 2 0 10 7 541 365
+781 2 2 0 10 116 633 737
+782 2 2 0 10 121 429 462
+783 2 2 0 10 283 451 693
+784 2 2 0 10 175 437 762
+785 2 2 0 10 255 760 399
+786 2 2 0 10 148 661 643
+787 2 2 0 10 61 62 437
+788 2 2 0 10 70 71 498
+789 2 2 0 10 352 448 696
+790 2 2 0 10 246 627 396
+791 2 2 0 10 102 628 425
+792 2 2 0 10 157 646 354
+793 2 2 0 10 108 494 367
+794 2 2 0 10 199 367 494
+795 2 2 0 10 231 466 559
+796 2 2 0 10 248 767 674
+797 2 2 0 10 93 780 338
+798 2 2 0 10 134 551 343
+799 2 2 0 10 150 620 337
+800 2 2 0 10 155 537 372
+801 2 2 0 10 184 408 498
+802 2 2 0 10 184 645 456
+803 2 2 0 10 20 21 518
+804 2 2 0 10 224 574 363
+805 2 2 0 10 139 363 574
+806 2 2 0 10 135 558 344
+807 2 2 0 10 140 808 535
+808 2 2 0 10 320 643 661
+809 2 2 0 10 268 809 369
+810 2 2 0 10 79 368 532
+811 2 2 0 10 114 497 594
+812 2 2 0 10 108 367 522
+813 2 2 0 10 265 447 737
+814 2 2 0 10 168 728 432
+815 2 2 0 10 30 31 527
+816 2 2 0 10 156 602 377
+817 2 2 0 10 122 649 399
+818 2 2 0 10 22 23 705
+819 2 2 0 10 103 380 514
+820 2 2 0 10 105 392 701
+821 2 2 0 10 211 709 454
+822 2 2 0 10 205 345 576
+823 2 2 0 10 196 403 694
+824 2 2 0 10 191 490 385
+825 2 2 0 10 205 562 345
+826 2 2 0 10 209 371 824
+827 2 2 0 10 271 606 547
+828 2 2 0 10 104 353 721
+829 2 2 0 10 5 366 781
+830 2 2 0 10 100 781 366
+831 2 2 0 10 143 576 345
+832 2 2 0 10 208 575 355
+833 2 2 0 10 108 377 610
+834 2 2 0 10 236 653 352
+835 2 2 0 10 112 352 653
+836 2 2 0 10 738 533 161
+837 2 2 0 10 359 533 738
+838 2 2 0 10 219 345 607
+839 2 2 0 10 154 357 775
+840 2 2 0 10 154 352 696
+841 2 2 0 10 290 729 476
+842 2 2 0 10 127 476 729
+843 2 2 0 10 182 633 346
+844 2 2 0 10 105 555 375
+845 2 2 0 10 274 736 357
+846 2 2 0 10 264 764 515
+847 2 2 0 10 89 90 612
+848 2 2 0 10 162 373 699
+849 2 2 0 10 198 385 636
+850 2 2 0 10 152 356 548
+851 2 2 0 10 136 639 374
+852 2 2 0 10 247 482 412
+853 2 2 0 10 159 777 412
+854 2 2 0 10 273 412 777
+855 2 2 0 10 204 548 356
+856 2 2 0 10 86 87 491
+857 2 2 0 10 205 614 506
+858 2 2 0 10 204 356 618
+859 2 2 0 10 456 645 611
+860 2 2 0 10 428 517 750
+861 2 2 0 10 201 501 425
+862 2 2 0 10 432 728 790
+863 2 2 0 10 394 470 777
+864 2 2 0 10 102 613 484
+865 2 2 0 10 357 736 560
+866 2 2 0 10 154 669 351
+867 2 2 0 10 117 726 595
+868 2 2 0 10 217 769 376
+869 2 2 0 10 121 570 355
+870 2 2 0 10 208 355 570
+871 2 2 0 10 277 823 439
+872 2 2 0 10 65 66 506
+873 2 2 0 10 89 612 505
+874 2 2 0 10 343 820 764
+875 2 2 0 10 216 365 541
+876 2 2 0 10 171 395 500
+877 2 2 0 10 108 522 377
+878 2 2 0 10 237 358 657
+879 2 2 0 10 227 688 355
+880 2 2 0 10 122 399 493
+881 2 2 0 10 206 532 368
+882 2 2 0 10 239 721 353
+883 2 2 0 10 102 484 628
+884 2 2 0 10 252 648 485
+885 2 2 0 10 158 526 389
+886 2 2 0 10 253 530 672
+887 2 2 0 10 151 457 801
+888 2 2 0 10 420 561 817
+889 2 2 0 10 817 561 124
+890 2 2 0 10 291 814 437
+891 2 2 0 10 11 12 563
+892 2 2 0 10 74 75 468
+893 2 2 0 10 105 375 528
+894 2 2 0 10 118 706 359
+895 2 2 0 10 141 370 644
+896 2 2 0 10 240 644 370
+897 2 2 0 10 157 354 648
+898 2 2 0 10 198 354 646
+899 2 2 0 10 253 503 530
+900 2 2 0 10 234 530 503
+901 2 2 0 10 121 355 688
+902 2 2 0 10 344 558 678
+903 2 2 0 10 58 824 371
+904 2 2 0 10 216 541 759
+905 2 2 0 10 42 600 358
+906 2 2 0 10 131 618 356
+907 2 2 0 10 131 356 637
+908 2 2 0 10 152 638 356
+909 2 2 0 10 90 689 360
+910 2 2 0 10 255 679 483
+911 2 2 0 10 159 364 564
+912 2 2 0 10 36 553 382
+913 2 2 0 10 228 382 553
+914 2 2 0 10 229 554 383
+915 2 2 0 10 50 383 554
+916 2 2 0 10 237 632 358
+917 2 2 0 10 249 389 526
+918 2 2 0 10 155 671 360
+919 2 2 0 10 238 360 671
+920 2 2 0 10 238 612 360
+921 2 2 0 10 128 436 545
+922 2 2 0 10 138 407 624
+923 2 2 0 10 250 624 407
+924 2 2 0 10 260 658 477
+925 2 2 0 10 277 651 464
+926 2 2 0 10 28 376 769
+927 2 2 0 10 84 538 384
+928 2 2 0 10 297 582 374
+929 2 2 0 10 145 768 409
+930 2 2 0 10 263 673 684
+931 2 2 0 10 165 634 361
+932 2 2 0 10 228 361 634
+933 2 2 0 10 166 362 635
+934 2 2 0 10 229 635 362
+935 2 2 0 10 128 545 378
+936 2 2 0 10 399 760 493
+937 2 2 0 10 249 676 655
+938 2 2 0 10 72 73 745
+939 2 2 0 10 174 826 463
+940 2 2 0 10 102 400 613
+941 2 2 0 10 240 613 400
+942 2 2 0 10 777 159 564
+943 2 2 0 10 158 778 495
+944 2 2 0 10 170 513 401
+945 2 2 0 10 123 411 577
+946 2 2 0 10 162 557 373
+947 2 2 0 10 394 777 564
+948 2 2 0 10 329 810 390
+949 2 2 0 10 168 363 625
+950 2 2 0 10 122 568 402
+951 2 2 0 10 189 802 681
+952 2 2 0 10 105 701 443
+953 2 2 0 10 220 542 391
+954 2 2 0 10 98 391 542
+955 2 2 0 10 301 733 487
+956 2 2 0 10 273 777 470
+957 2 2 0 10 167 399 529
+958 2 2 0 10 233 413 734
+959 2 2 0 10 242 418 590
+960 2 2 0 10 141 590 418
+961 2 2 0 10 379 785 782
+962 2 2 0 10 222 390 603
+963 2 2 0 10 202 743 395
+964 2 2 0 10 265 375 749
+965 2 2 0 10 212 398 583
+966 2 2 0 10 175 521 402
+967 2 2 0 10 128 378 666
+968 2 2 0 10 136 582 508
+969 2 2 0 10 58 371 716
+970 2 2 0 10 120 373 789
+971 2 2 0 10 167 529 405
+972 2 2 0 10 240 370 613
+973 2 2 0 10 156 782 785
+974 2 2 0 10 267 741 762
+975 2 2 0 10 250 407 520
+976 2 2 0 10 250 372 640
+977 2 2 0 10 266 783 747
+978 2 2 0 10 423 783 616
+979 2 2 0 10 783 179 616
+980 2 2 0 10 266 431 783
+981 2 2 0 10 203 401 761
+982 2 2 0 10 235 711 379
+983 2 2 0 10 102 425 501
+984 2 2 0 10 199 699 373
+985 2 2 0 10 250 668 372
+986 2 2 0 10 225 393 594
+987 2 2 0 10 114 594 393
+988 2 2 0 10 246 394 564
+989 2 2 0 10 233 638 413
+990 2 2 0 10 181 384 805
+991 2 2 0 10 155 374 671
+992 2 2 0 10 115 439 823
+993 2 2 0 10 249 526 676
+994 2 2 0 10 438 809 826
+995 2 2 0 10 214 405 529
+996 2 2 0 10 240 727 644
+997 2 2 0 10 221 805 538
+998 2 2 0 10 384 538 805
+999 2 2 0 10 28 692 376
+1000 2 2 0 10 261 713 381
+1001 2 2 0 10 262 397 785
+1002 2 2 0 10 156 785 397
+1003 2 2 0 10 163 378 715
+1004 2 2 0 10 106 622 381
+1005 2 2 0 10 63 64 675
+1006 2 2 0 10 25 792 431
+1007 2 2 0 10 160 380 695
+1008 2 2 0 10 176 530 460
+1009 2 2 0 10 234 460 530
+1010 2 2 0 10 223 666 807
+1011 2 2 0 10 305 802 380
+1012 2 2 0 10 221 706 427
+1013 2 2 0 10 343 764 481
+1014 2 2 0 10 177 453 559
+1015 2 2 0 10 231 629 387
+1016 2 2 0 10 61 437 814
+1017 2 2 0 10 268 695 463
+1018 2 2 0 10 68 609 410
+1019 2 2 0 10 198 630 385
+1020 2 2 0 10 227 615 388
+1021 2 2 0 10 107 636 385
+1022 2 2 0 10 190 794 643
+1023 2 2 0 10 120 517 428
+1024 2 2 0 10 132 809 438
+1025 2 2 0 10 288 426 669
+1026 2 2 0 10 121 688 388
+1027 2 2 0 10 214 521 804
+1028 2 2 0 10 220 391 750
+1029 2 2 0 10 179 783 431
+1030 2 2 0 10 123 534 411
+1031 2 2 0 10 38 39 515
+1032 2 2 0 10 185 750 391
+1033 2 2 0 10 148 712 387
+1034 2 2 0 10 277 387 823
+1035 2 2 0 10 134 656 389
+1036 2 2 0 10 158 389 657
+1037 2 2 0 10 163 690 388
+1038 2 2 0 10 227 388 688
+1039 2 2 0 10 257 748 491
+1040 2 2 0 10 62 735 437
+1041 2 2 0 10 254 772 390
+1042 2 2 0 10 230 396 641
+1043 2 2 0 10 181 427 524
+1044 2 2 0 10 259 742 519
+1045 2 2 0 10 110 544 807
+1046 2 2 0 10 265 749 447
+1047 2 2 0 10 195 447 749
+1048 2 2 0 10 345 562 607
+1049 2 2 0 10 119 607 562
+1050 2 2 0 10 178 410 642
+1051 2 2 0 10 244 642 410
+1052 2 2 0 10 208 518 604
+1053 2 2 0 10 399 649 529
+1054 2 2 0 10 7 8 541
+1055 2 2 0 10 286 495 778
+1056 2 2 0 10 119 562 406
+1057 2 2 0 10 156 397 602
+1058 2 2 0 10 225 584 479
+1059 2 2 0 10 381 713 499
+1060 2 2 0 10 78 79 532
+1061 2 2 0 10 274 696 448
+1062 2 2 0 10 126 572 440
+1063 2 2 0 10 164 392 691
+1064 2 2 0 10 114 393 676
+1065 2 2 0 10 165 764 820
+1066 2 2 0 10 117 395 743
+1067 2 2 0 10 246 698 394
+1068 2 2 0 10 130 394 698
+1069 2 2 0 10 291 402 806
+1070 2 2 0 10 134 496 551
+1071 2 2 0 10 251 551 496
+1072 2 2 0 10 262 828 397
+1073 2 2 0 10 26 27 507
+1074 2 2 0 10 109 405 650
+1075 2 2 0 10 74 468 546
+1076 2 2 0 10 139 550 417
+1077 2 2 0 10 313 591 768
+1078 2 2 0 10 209 824 502
+1079 2 2 0 10 126 442 525
+1080 2 2 0 10 275 509 686
+1081 2 2 0 10 194 686 509
+1082 2 2 0 10 193 477 687
+1083 2 2 0 10 228 473 513
+1084 2 2 0 10 266 803 431
+1085 2 2 0 10 231 559 453
+1086 2 2 0 10 292 804 404
+1087 2 2 0 10 130 698 396
+1088 2 2 0 10 229 500 474
+1089 2 2 0 10 246 396 698
+1090 2 2 0 10 131 637 452
+1091 2 2 0 10 307 723 539
+1092 2 2 0 10 138 539 723
+1093 2 2 0 10 59 60 502
+1094 2 2 0 10 187 623 492
+1095 2 2 0 10 213 561 420
+1096 2 2 0 10 294 818 397
+1097 2 2 0 10 144 731 565
+1098 2 2 0 10 325 621 776
+1099 2 2 0 10 47 419 593
+1100 2 2 0 10 200 598 443
+1101 2 2 0 10 197 713 455
+1102 2 2 0 10 261 455 713
+1103 2 2 0 10 135 687 477
+1104 2 2 0 10 219 607 433
+1105 2 2 0 10 140 549 543
+1106 2 2 0 10 116 761 401
+1107 2 2 0 10 73 74 546
+1108 2 2 0 10 112 653 626
+1109 2 2 0 10 317 626 653
+1110 2 2 0 10 193 687 654
+1111 2 2 0 10 187 585 421
+1112 2 2 0 10 358 778 657
+1113 2 2 0 10 357 454 775
+1114 2 2 0 10 121 416 570
+1115 2 2 0 10 331 571 763
+1116 2 2 0 10 294 644 727
+1117 2 2 0 10 176 631 415
+1118 2 2 0 10 213 446 535
+1119 2 2 0 10 256 728 723
+1120 2 2 0 10 244 410 609
+1121 2 2 0 10 230 546 468
+1122 2 2 0 10 379 782 450
+1123 2 2 0 10 280 647 444
+1124 2 2 0 10 289 406 788
+1125 2 2 0 10 175 762 404
+1126 2 2 0 10 376 798 578
+1127 2 2 0 10 286 708 469
+1128 2 2 0 10 95 422 592
+1129 2 2 0 10 14 15 710
+1130 2 2 0 10 167 621 679
+1131 2 2 0 10 325 679 621
+1132 2 2 0 10 371 569 766
+1133 2 2 0 10 212 700 525
+1134 2 2 0 10 214 650 405
+1135 2 2 0 10 309 767 512
+1136 2 2 0 10 299 816 411
+1137 2 2 0 10 272 584 586
+1138 2 2 0 10 225 586 584
+1139 2 2 0 10 216 725 428
+1140 2 2 0 10 187 421 662
+1141 2 2 0 10 125 694 403
+1142 2 2 0 10 253 492 623
+1143 2 2 0 10 167 405 742
+1144 2 2 0 10 232 606 663
+1145 2 2 0 10 24 431 803
+1146 2 2 0 10 241 593 419
+1147 2 2 0 10 140 535 549
+1148 2 2 0 10 321 441 652
+1149 2 2 0 10 291 806 502
+1150 2 2 0 10 58 59 824
+1151 2 2 0 10 215 409 768
+1152 2 2 0 10 218 449 549
+1153 2 2 0 10 158 657 778
+1154 2 2 0 10 243 592 422
+1155 2 2 0 10 181 805 427
+1156 2 2 0 10 190 425 628
+1157 2 2 0 10 241 419 678
+1158 2 2 0 10 10 413 774
+1159 2 2 0 10 137 597 465
+1160 2 2 0 10 159 412 799
+1161 2 2 0 10 215 768 591
+1162 2 2 0 10 168 407 728
+1163 2 2 0 10 217 507 769
+1164 2 2 0 10 250 520 668
+1165 2 2 0 10 135 510 687
+1166 2 2 0 10 291 502 814
+1167 2 2 0 10 247 412 670
+1168 2 2 0 10 68 69 609
+1169 2 2 0 10 259 791 421
+1170 2 2 0 10 351 669 426
+1171 2 2 0 10 233 734 563
+1172 2 2 0 10 26 507 792
+1173 2 2 0 10 252 468 660
+1174 2 2 0 10 75 660 468
+1175 2 2 0 10 27 28 769
+1176 2 2 0 10 84 85 538
+1177 2 2 0 10 131 452 784
+1178 2 2 0 10 101 672 414
+1179 2 2 0 10 223 544 543
+1180 2 2 0 10 254 543 544
+1181 2 2 0 10 336 774 413
+1182 2 2 0 10 108 610 432
+1183 2 2 0 10 322 714 598
+1184 2 2 0 10 153 598 714
+1185 2 2 0 10 273 812 412
+1186 2 2 0 10 132 664 809
+1187 2 2 0 10 241 740 593
+1188 2 2 0 10 299 792 507
+1189 2 2 0 10 10 734 413
+1190 2 2 0 10 148 464 661
+1191 2 2 0 10 16 17 540
+1192 2 2 0 10 97 98 542
+1193 2 2 0 10 128 666 449
+1194 2 2 0 10 268 463 826
+1195 2 2 0 10 259 421 776
+1196 2 2 0 10 133 776 421
+1197 2 2 0 10 221 533 706
+1198 2 2 0 10 245 434 731
+1199 2 2 0 10 268 826 809
+1200 2 2 0 10 108 432 790
+1201 2 2 0 10 304 445 585
+1202 2 2 0 10 197 499 713
+1203 2 2 0 10 210 572 571
+1204 2 2 0 10 334 571 572
+1205 2 2 0 10 93 94 780
+1206 2 2 0 10 189 652 426
+1207 2 2 0 10 209 502 806
+1208 2 2 0 10 194 418 686
+1209 2 2 0 10 283 797 416
+1210 2 2 0 10 220 517 789
+1211 2 2 0 10 298 436 631
+1212 2 2 0 10 103 454 709
+1213 2 2 0 10 226 519 739
+1214 2 2 0 10 169 417 756
+1215 2 2 0 10 287 459 630
+1216 2 2 0 10 36 37 553
+1217 2 2 0 10 49 50 554
+1218 2 2 0 10 186 580 452
+1219 2 2 0 10 305 681 802
+1220 2 2 0 10 243 422 685
+1221 2 2 0 10 271 663 606
+1222 2 2 0 10 46 47 593
+1223 2 2 0 10 369 809 664
+1224 2 2 0 10 60 814 502
+1225 2 2 0 10 45 46 740
+1226 2 2 0 10 187 662 458
+1227 2 2 0 10 132 458 664
+1228 2 2 0 10 388 690 429
+1229 2 2 0 10 180 435 658
+1230 2 2 0 10 239 434 721
+1231 2 2 0 10 293 523 561
+1232 2 2 0 10 124 561 523
+1233 2 2 0 10 221 427 805
+1234 2 2 0 10 306 429 690
+1235 2 2 0 10 129 441 718
+1236 2 2 0 10 134 481 656
+1237 2 2 0 10 300 423 813
+1238 2 2 0 10 107 490 674
+1239 2 2 0 10 319 569 568
+1240 2 2 0 10 209 568 569
+1241 2 2 0 10 216 467 725
+1242 2 2 0 10 21 22 604
+1243 2 2 0 10 157 825 646
+1244 2 2 0 10 118 427 706
+1245 2 2 0 10 305 433 822
+1246 2 2 0 10 220 789 557
+1247 2 2 0 10 302 700 583
+1248 2 2 0 10 212 583 700
+1249 2 2 0 10 235 450 784
+1250 2 2 0 10 178 642 441
+1251 2 2 0 10 177 702 436
+1252 2 2 0 10 205 506 788
+1253 2 2 0 10 289 788 506
+1254 2 2 0 10 219 433 724
+1255 2 2 0 10 120 428 725
+1256 2 2 0 10 231 453 629
+1257 2 2 0 10 94 95 592
+1258 2 2 0 10 332 464 651
+1259 2 2 0 10 400 697 756
+1260 2 2 0 10 169 756 697
+1261 2 2 0 10 390 772 603
+1262 2 2 0 10 411 816 577
+1263 2 2 0 10 243 780 592
+1264 2 2 0 10 129 456 611
+1265 2 2 0 10 247 605 482
+1266 2 2 0 10 253 623 503
+1267 2 2 0 10 29 680 692
+1268 2 2 0 10 239 466 599
+1269 2 2 0 10 127 599 466
+1270 2 2 0 10 104 721 434
+1271 2 2 0 10 137 730 597
+1272 2 2 0 10 9 774 759
+1273 2 2 0 10 137 482 605
+1274 2 2 0 10 19 693 451
+1275 2 2 0 10 217 816 507
+1276 2 2 0 10 299 507 816
+1277 2 2 0 10 265 737 633
+1278 2 2 0 10 90 91 689
+1279 2 2 0 10 206 478 617
+1280 2 2 0 10 115 629 453
+1281 2 2 0 10 2 757 33
+1282 2 2 0 10 2 34 757
+1283 2 2 0 10 3 53 758
+1284 2 2 0 10 3 758 52
+1285 2 2 0 10 64 65 614
+1286 2 2 0 10 436 702 545
+1287 2 2 0 10 174 438 826
+1288 2 2 0 10 187 458 623
+1289 2 2 0 10 198 646 630
+1290 2 2 0 10 287 630 646
+1291 2 2 0 10 8 9 759
+1292 2 2 0 10 223 449 666
+1293 2 2 0 10 42 43 600
+1294 2 2 0 10 125 560 736
+1295 2 2 0 10 138 624 461
+1296 2 2 0 10 310 692 680
+1297 2 2 0 10 17 751 540
+1298 2 2 0 10 340 753 754
+1299 2 2 0 10 184 457 645
+1300 2 2 0 10 293 779 523
+1301 2 2 0 10 200 523 779
+1302 2 2 0 10 101 492 672
+1303 2 2 0 10 253 672 492
+1304 2 2 0 10 200 779 598
+1305 2 2 0 10 200 443 701
+1306 2 2 0 10 57 58 716
+1307 2 2 0 10 238 505 612
+1308 2 2 0 10 232 663 483
+1309 2 2 0 10 211 661 464
+1310 2 2 0 10 284 440 786
+1311 2 2 0 10 290 643 794
+1312 2 2 0 10 402 568 806
+1313 2 2 0 10 226 458 662
+1314 2 2 0 10 226 739 796
+1315 2 2 0 10 226 664 458
+1316 2 2 0 10 248 490 720
+1317 2 2 0 10 244 456 718
+1318 2 2 0 10 4 770 81
+1319 2 2 0 10 4 82 770
+1320 2 2 0 10 149 763 571
+1321 2 2 0 10 280 443 773
+1322 2 2 0 10 285 697 501
+1323 2 2 0 10 9 10 774
+1324 2 2 0 10 76 471 660
+1325 2 2 0 10 386 732 486
+1326 2 2 0 10 235 486 711
+1327 2 2 0 10 75 76 660
+1328 2 2 0 10 250 640 624
+1329 2 2 0 10 242 590 589
+1330 2 2 0 10 262 589 590
+1331 2 2 0 10 196 448 744
+1332 2 2 0 10 228 634 473
+1333 2 2 0 10 229 474 635
+1334 2 2 0 10 324 577 578
+1335 2 2 0 10 217 578 577
+1336 2 2 0 10 21 604 518
+1337 2 2 0 10 110 603 772
+1338 2 2 0 10 136 508 581
+1339 2 2 0 10 248 581 508
+1340 2 2 0 10 257 793 480
+1341 2 2 0 10 252 660 471
+1342 2 2 0 10 149 732 722
+1343 2 2 0 10 386 722 732
+1344 2 2 0 10 131 784 450
+1345 2 2 0 10 296 450 782
+1346 2 2 0 10 295 625 489
+1347 2 2 0 10 55 56 677
+1348 2 2 0 10 1 5 781
+1349 2 2 0 10 1 781 100
+1350 2 2 0 10 275 565 599
+1351 2 2 0 10 12 13 707
+1352 2 2 0 10 129 718 456
+1353 2 2 0 10 281 665 815
+1354 2 2 0 10 28 29 692
+1355 2 2 0 10 87 703 491
+1356 2 2 0 10 257 491 703
+1357 2 2 0 10 256 790 728
+1358 2 2 0 10 316 452 827
+1359 2 2 0 10 136 480 639
+1360 2 2 0 10 29 30 680
+1361 2 2 0 10 369 796 811
+1362 2 2 0 10 207 508 582
+1363 2 2 0 10 314 509 729
+1364 2 2 0 10 183 821 595
+1365 2 2 0 10 347 595 821
+1366 2 2 0 10 283 518 797
+1367 2 2 0 10 208 797 518
+1368 2 2 0 10 288 775 454
+1369 2 2 0 10 314 628 484
+1370 2 2 0 10 412 482 799
+1371 2 2 0 10 44 469 708
+1372 2 2 0 10 452 580 784
+1373 2 2 0 10 240 550 727
+1374 2 2 0 10 260 754 753
+1375 2 2 0 10 237 657 656
+1376 2 2 0 10 389 656 657
+1377 2 2 0 10 43 44 708
+1378 2 2 0 10 261 595 726
+1379 2 2 0 10 39 40 752
+1380 2 2 0 10 285 597 730
+1381 2 2 0 10 19 20 693
+1382 2 2 0 10 214 649 521
+1383 2 2 0 10 356 638 637
+1384 2 2 0 10 233 637 638
+1385 2 2 0 10 452 637 827
+1386 2 2 0 10 108 790 494
+1387 2 2 0 10 336 759 774
+1388 2 2 0 10 359 706 533
+1389 2 2 0 10 290 476 712
+1390 2 2 0 10 286 600 708
+1391 2 2 0 10 43 708 600
+1392 2 2 0 10 387 712 476
+1393 2 2 0 10 10 11 734
+1394 2 2 0 10 220 750 517
+1395 2 2 0 10 237 531 632
+1396 2 2 0 10 87 88 703
+1397 2 2 0 10 106 483 663
+1398 2 2 0 10 65 506 614
+1399 2 2 0 10 271 547 654
+1400 2 2 0 10 193 654 547
+1401 2 2 0 10 78 532 795
+1402 2 2 0 10 127 729 509
+1403 2 2 0 10 23 24 803
+1404 2 2 0 10 153 714 810
+1405 2 2 0 10 214 529 649
+1406 2 2 0 10 245 731 504
+1407 2 2 0 10 13 475 707
+1408 2 2 0 10 302 486 732
+1409 2 2 0 10 340 495 753
+1410 2 2 0 10 62 63 735
+1411 2 2 0 10 190 628 794
+1412 2 2 0 10 256 719 494
+1413 2 2 0 10 199 494 719
+1414 2 2 0 10 275 686 511
+1415 2 2 0 10 91 92 733
+1416 2 2 0 10 322 598 779
+1417 2 2 0 10 316 827 563
+1418 2 2 0 10 233 563 827
+1419 2 2 0 10 92 487 733
+1420 2 2 0 10 248 720 581
+1421 2 2 0 10 440 572 786
+1422 2 2 0 10 17 18 751
+1423 2 2 0 10 147 596 766
+1424 2 2 0 10 303 766 596
+1425 2 2 0 10 248 674 490
+1426 2 2 0 10 71 72 819
+1427 2 2 0 10 249 655 496
+1428 2 2 0 10 243 685 539
+1429 2 2 0 10 150 578 798
+1430 2 2 0 10 180 753 495
+1431 2 2 0 10 379 800 785
+1432 2 2 0 10 236 611 645
+1433 2 2 0 10 258 654 687
+1434 2 2 0 10 222 616 534
+1435 2 2 0 10 146 575 747
+1436 2 2 0 10 315 747 575
+1437 2 2 0 10 25 26 792
+1438 2 2 0 10 77 78 795
+1439 2 2 0 10 310 798 692
+1440 2 2 0 10 376 692 798
+1441 2 2 0 10 207 767 508
+1442 2 2 0 10 371 766 716
+1443 2 2 0 10 303 716 766
+1444 2 2 0 10 60 61 814
+1445 2 2 0 10 39 752 515
+1446 2 2 0 10 264 515 752
+1447 2 2 0 10 258 704 654
+1448 2 2 0 10 207 512 767
+1449 2 2 0 10 481 771 656
+1450 2 2 0 10 164 691 655
+1451 2 2 0 10 372 537 640
+1452 2 2 0 10 276 615 566
+1453 2 2 0 10 227 566 615
+1454 2 2 0 10 380 802 514
+1455 2 2 0 10 269 811 796
+1456 2 2 0 10 111 711 486
+1457 2 2 0 10 148 643 712
+1458 2 2 0 10 290 712 643
+1459 2 2 0 10 257 480 748
+1460 2 2 0 10 308 576 741
+1461 2 2 0 10 143 741 576
+1462 2 2 0 10 314 794 628
+1463 2 2 0 10 209 806 568
+1464 2 2 0 10 287 825 478
+1465 2 2 0 10 269 724 811
+1466 2 2 0 10 88 505 703
+1467 2 2 0 10 257 703 505
+1468 2 2 0 10 217 577 816
+1469 2 2 0 10 56 516 677
+1470 2 2 0 10 239 599 565
+1471 2 2 0 10 264 481 764
+1472 2 2 0 10 264 771 481
+1473 2 2 0 10 114 754 497
+1474 2 2 0 10 260 497 754
+1475 2 2 0 10 147 766 569
+1476 2 2 0 10 188 640 537
+1477 2 2 0 10 375 555 749
+1478 2 2 0 10 195 749 555
+1479 2 2 0 10 191 720 490
+1480 2 2 0 10 312 799 482
+1481 2 2 0 10 258 687 510
+1482 2 2 0 10 269 739 556
+1483 2 2 0 10 109 556 739
+1484 2 2 0 10 204 755 548
+1485 2 2 0 10 270 548 755
+1486 2 2 0 10 308 741 675
+1487 2 2 0 10 267 675 741
+1488 2 2 0 10 279 498 819
+1489 2 2 0 10 71 819 498
+1490 2 2 0 10 262 785 800
+1491 2 2 0 10 287 646 825
+1492 2 2 0 10 211 560 661
+1493 2 2 0 10 278 605 608
+1494 2 2 0 10 311 581 720
+1495 2 2 0 10 247 608 605
+1496 2 2 0 10 271 654 704
+1497 2 2 0 10 151 801 641
+1498 2 2 0 10 339 641 801
+1499 2 2 0 10 30 527 680
+1500 2 2 0 10 433 607 822
+1501 2 2 0 10 137 605 730
+1502 2 2 0 10 278 730 605
+1503 2 2 0 10 421 791 662
+1504 2 2 0 10 235 784 580
+1505 2 2 0 10 150 798 620
+1506 2 2 0 10 310 620 798
+1507 2 2 0 10 197 493 760
+1508 2 2 0 10 153 810 647
+1509 2 2 0 10 329 647 810
+1510 2 2 0 10 144 504 731
+1511 2 2 0 10 40 531 752
+1512 2 2 0 10 320 661 560
+1513 2 2 0 10 120 789 517
+1514 2 2 0 10 255 499 760
+1515 2 2 0 10 197 760 499
+1516 2 2 0 10 294 574 818
+1517 2 2 0 10 224 818 574
+1518 2 2 0 10 480 793 639
+1519 2 2 0 10 378 545 715
+1520 2 2 0 10 256 494 790
+1521 2 2 0 10 317 627 626
+1522 2 2 0 10 246 626 627
+1523 2 2 0 10 241 678 558
+1524 2 2 0 10 264 531 771
+1525 2 2 0 10 237 771 531
+1526 2 2 0 10 109 739 519
+1527 2 2 0 10 441 642 718
+1528 2 2 0 10 238 793 505
+1529 2 2 0 10 27 769 507
+1530 2 2 0 10 315 705 747
+1531 2 2 0 10 266 747 705
+1532 2 2 0 10 248 508 767
+1533 2 2 0 10 282 710 763
+1534 2 2 0 10 331 763 710
+1535 2 2 0 10 328 726 743
+1536 2 2 0 10 117 743 726
+1537 2 2 0 10 199 719 699
+1538 2 2 0 10 307 699 719
+1539 2 2 0 10 222 603 813
+1540 2 2 0 10 300 813 603
+1541 2 2 0 10 301 689 733
+1542 2 2 0 10 91 733 689
+1543 2 2 0 10 263 545 702
+1544 2 2 0 10 139 727 550
+1545 2 2 0 10 387 629 823
+1546 2 2 0 10 257 505 793
+1547 2 2 0 10 256 723 719
+1548 2 2 0 10 307 719 723
+1549 2 2 0 10 219 724 556
+1550 2 2 0 10 140 543 717
+1551 2 2 0 10 59 502 824
+1552 2 2 0 10 258 510 787
+1553 2 2 0 10 210 786 572
+1554 2 2 0 10 251 528 765
+1555 2 2 0 10 258 622 704
+1556 2 2 0 10 226 791 519
+1557 2 2 0 10 254 717 543
+1558 2 2 0 10 263 715 545
+1559 2 2 0 10 254 544 772
+1560 2 2 0 10 116 737 761
+1561 2 2 0 10 337 761 737
+1562 2 2 0 10 189 514 802
+1563 2 2 0 10 369 664 796
+1564 2 2 0 10 406 562 788
+1565 2 2 0 10 259 519 791
+1566 2 2 0 10 264 752 531
+1567 2 2 0 10 180 658 753
+1568 2 2 0 10 167 742 621
+1569 2 2 0 10 205 788 562
+1570 2 2 0 10 139 574 727
+1571 2 2 0 10 358 600 778
+1572 2 2 0 10 286 778 600
+1573 2 2 0 10 417 550 756
+1574 2 2 0 10 244 718 642
+1575 2 2 0 10 269 556 724
+1576 2 2 0 10 251 765 551
+1577 2 2 0 10 8 759 541
+1578 2 2 0 10 237 656 771
+1579 2 2 0 10 416 797 570
+1580 2 2 0 10 119 822 607
+1581 2 2 0 10 11 563 734
+1582 2 2 0 10 110 772 544
+1583 2 2 0 10 294 727 574
+1584 2 2 0 10 271 704 663
+1585 2 2 0 10 106 663 704
+1586 2 2 0 10 106 704 622
+1587 2 2 0 10 397 818 602
+1588 2 2 0 10 177 673 702
+1589 2 2 0 10 288 669 775
+1590 2 2 0 10 154 775 669
+1591 2 2 0 10 322 717 714
+1592 2 2 0 10 254 714 717
+1593 2 2 0 10 223 807 544
+1594 2 2 0 10 46 593 740
+1595 2 2 0 10 292 650 804
+1596 2 2 0 10 214 804 650
+1597 2 2 0 10 233 827 637
+1598 2 2 0 10 285 746 697
+1599 2 2 0 10 169 697 746
+1600 2 2 0 10 111 589 800
+1601 2 2 0 10 279 745 801
+1602 2 2 0 10 339 801 745
+1603 2 2 0 10 373 557 789
+1604 2 2 0 10 140 717 808
+1605 2 2 0 10 412 812 670
+1606 2 2 0 10 263 702 673
+1607 2 2 0 10 153 647 773
+1608 2 2 0 10 280 773 647
+1609 2 2 0 10 262 590 828
+1610 2 2 0 10 322 808 717
+1611 2 2 0 10 258 787 622
+1612 2 2 0 10 272 586 815
+1613 2 2 0 10 142 815 586
+1614 2 2 0 10 259 621 742
+1615 2 2 0 10 119 681 822
+1616 2 2 0 10 305 822 681
+1617 2 2 0 10 443 598 773
+1618 2 2 0 10 153 773 598
+1619 2 2 0 10 208 570 797
+1620 2 2 0 10 124 584 817
+1621 2 2 0 10 272 817 584
+1622 2 2 0 10 63 675 735
+1623 2 2 0 10 94 592 780
+1624 2 2 0 10 379 711 800
+1625 2 2 0 10 23 803 705
+1626 2 2 0 10 423 616 813
+1627 2 2 0 10 262 800 589
+1628 2 2 0 10 267 735 675
+1629 2 2 0 10 269 796 739
+1630 2 2 0 10 290 794 729
+1631 2 2 0 10 314 729 794
+1632 2 2 0 10 260 753 658
+1633 2 2 0 10 125 736 694
+1634 2 2 0 10 274 694 736
+1635 2 2 0 10 478 825 617
+1636 2 2 0 10 141 828 590
+1637 2 2 0 10 259 776 621
+1638 2 2 0 10 238 639 793
+1639 2 2 0 10 222 813 616
+1640 2 2 0 10 285 730 746
+1641 2 2 0 10 278 746 730
+1642 2 2 0 10 224 602 818
+1643 2 2 0 10 226 662 791
+1644 2 2 0 10 157 617 825
+1645 2 2 0 10 107 812 636
+1646 2 2 0 10 273 636 812
+1647 2 2 0 10 111 800 711
+1648 2 2 0 10 115 823 629
+1649 2 2 0 10 226 796 664
+1650 2 2 0 10 272 815 665
+1651 2 2 0 10 282 763 722
+1652 2 2 0 10 149 722 763
+1653 2 2 0 10 107 670 812
+1654 2 2 0 10 72 745 819
+1655 2 2 0 10 293 808 779
+1656 2 2 0 10 322 779 808
+1657 2 2 0 10 266 705 803
+1658 2 2 0 10 279 819 745
+$EndElements
diff --git a/exercises/solution/exercise-grids/injection2pproblem.hh b/exercises/solution/exercise-grids/injection2pproblem.hh
new file mode 100644
index 00000000..5d785ab3
--- /dev/null
+++ b/exercises/solution/exercise-grids/injection2pproblem.hh
@@ -0,0 +1,268 @@
+// -*- 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 The two-phase porousmediumflow problem for exercise Grids
+ */
+
+#ifndef DUMUX_EXGRIDS_INJECTION_PROBLEM_2P_HH
+#define DUMUX_EXGRIDS_INJECTION_PROBLEM_2P_HH
+
+#include <dumux/discretization/cellcentered/tpfa/properties.hh>
+#include <dumux/porousmediumflow/2p/model.hh>
+#include <dumux/porousmediumflow/problem.hh>
+#include <dumux/material/fluidsystems/h2on2.hh>
+
+#include "injection2pspatialparams.hh"
+
+namespace Dumux {
+
+// forward declare problem
+template <class TypeTag>
+class InjectionProblem2P;
+
+namespace Properties {
+// define the TypeTag for this problem with a cell-centered two-point flux approximation spatial discretization.
+NEW_TYPE_TAG(Injection2pTypeTag, INHERITS_FROM(TwoP));
+NEW_TYPE_TAG(Injection2pCCTypeTag, INHERITS_FROM(CCTpfaModel, Injection2pTypeTag));
+
+// Set the grid type
+SET_TYPE_PROP(Injection2pTypeTag, Grid, Dune::YaspGrid<2>);
+// TODO: Task 2: Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates)
+//SET_TYPE_PROP(Injection2pTypeTag, Grid, Dune::YaspGrid<2, Dune::TensorProductCoordinates<double, 2> >);
+
+// TODO: Task 4: Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube)
+//SET_TYPE_PROP(Injection2pTypeTag, Grid, Dune::ALUGrid<2, 2, Dune::cube, Dune::nonconforming>);
+
+// TODO: Task 5: Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex)
+// SET_TYPE_PROP(Injection2pTypeTag, Grid, Dune::ALUGrid<2, 2, Dune::simplex, Dune::nonconforming>);
+
+// Set the problem property
+SET_TYPE_PROP(Injection2pTypeTag, Problem, InjectionProblem2P<TypeTag>);
+
+// Set the spatial parameters
+SET_TYPE_PROP(Injection2pTypeTag, SpatialParams,
+              InjectionSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
+                                     typename GET_PROP_TYPE(TypeTag, Scalar)>);
+
+// Set fluid configuration
+SET_TYPE_PROP(Injection2pTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), /*useComplexRelations=*/ false>);
+} // end namespace Properties
+
+/*!
+ * \ingroup TwoPModel
+ * \ingroup ImplicitTestProblems
+ * \brief Gas injection problem where a gas (here  nitrogen) is injected into a fully
+ *        water saturated medium. During buoyancy driven upward migration the gas
+ *        passes a high temperature area.
+ *
+ * The domain is sized 60 m times 40 m.
+ *
+ * For the mass conservation equation neumann boundary conditions are used on
+ * the top, on the bottom and on the right of the domain, while dirichlet conditions
+ * apply on the left boundary.
+ *
+ * Gas is injected at the right boundary from 7 m to 15 m at a rate of
+ * 0.001 kg/(s m), the remaining neumann boundaries are no-flow
+ * boundaries.
+ *
+ * At the dirichlet boundaries a hydrostatic pressure and a gas saturation of zero a
+ *
+ * This problem uses the \ref TwoPModel model.
+ */
+template<class TypeTag>
+class InjectionProblem2P : public PorousMediumFlowProblem<TypeTag>
+{
+    using ParentType = PorousMediumFlowProblem<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+
+    enum { dimWorld = GridView::dimensionworld };
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+public:
+    InjectionProblem2P(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+    : ParentType(fvGridGeometry)
+    {
+        // initialize the tables of the fluid system
+        FluidSystem::init(/*tempMin=*/273.15,
+                /*tempMax=*/423.15,
+                /*numTemp=*/50,
+                /*pMin=*/0.0,
+                /*pMax=*/30e6,
+                /*numP=*/300);
+
+        // name of the problem and output file
+        // getParam<TYPE>("GROUPNAME.PARAMNAME") reads and sets parameter PARAMNAME
+        // of type TYPE given in the group GROUPNAME from the input file
+        name_ = getParam<std::string>("Problem.Name");
+        // depth of the aquifer, units: m
+        aquiferDepth_ = getParam<Scalar>("Problem.AquiferDepth");
+        // the duration of the injection, units: second
+        injectionDuration_ = getParam<Scalar>("Problem.InjectionDuration");
+    }
+
+    /*!
+     * \name Problem parameters
+     */
+    // \{
+
+    /*!
+     * \brief Returns the problem name
+     *
+     * This is used as a prefix for files generated by the simulation.
+     */
+    std::string name() const
+    { return name_+"-2p"; }
+
+    /*!
+     * \brief Returns the temperature \f$ K \f$
+     */
+    Scalar temperature() const
+    {
+        return 273.15 + 30; // [K]
+    }
+
+    // \}
+
+    /*!
+     * \name Boundary conditions
+     */
+    // \{
+
+    /*!
+     * \brief Specifies which kind of boundary condition should be
+     *        used for which equation on a given boundary segment.
+     *
+     * \param bcTypes The boundary types for the conservation equations
+     * \param globalPos The position for which the bc type should be evaluated
+     */
+    BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
+    {
+        BoundaryTypes bcTypes;
+        // set the left of the domain (with the global position in "0 = x" direction as a Dirichlet boundary
+        if (globalPos[0] < eps_)
+            bcTypes.setAllDirichlet();
+        // set all other as Neumann boundaries
+        else
+            bcTypes.setAllNeumann();
+
+        return bcTypes;
+    }
+
+    /*!
+     * \brief Evaluates the boundary conditions for a Dirichlet
+     *        boundary segment
+     *
+     * \param globalPos The global position
+     */
+    PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const
+    {
+        return initialAtPos(globalPos);
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a neumann
+     *        boundary segment.
+     *
+     * \param values Stores the Neumann values for the conservation equations in
+     *               \f$ [ \textnormal{unit of conserved quantity} / (m^(dim-1) \cdot s )] \f$
+     * \param globalPos The position of the integration point of the boundary segment.
+     *
+     * For this method, the \a values parameter stores the mass flux
+     * in normal direction of each phase. Negative values mean influx.
+     */
+    PrimaryVariables neumannAtPos(const GlobalPosition &globalPos) const
+    {
+        // initialize values to zero, i.e. no-flow Neumann boundary conditions
+        PrimaryVariables values(0.0);
+
+        // if we are inside the injection zone set inflow Neumann boundary conditions
+        // using < boundary + eps_ or > boundary - eps_ is safer for floating point comparisons
+        // than using <= or >= as it is robust with regard to imprecision introduced by rounding errors.
+        if (time_ < injectionDuration_
+            && globalPos[1] < 15 + eps_ && globalPos[1] > 7 - eps_ && globalPos[0] > 0.9*this->fvGridGeometry().bBoxMax()[0])
+        {
+            // inject nitrogen. negative values mean injection
+            // units kg/(s*m^2)
+            values[Indices::conti0EqIdx + FluidSystem::N2Idx]= -1e-4/FluidSystem::molarMass(FluidSystem::N2Idx);
+            values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0;
+        }
+
+        return values;
+    }
+
+    // \}
+
+
+    /*!
+     * \name Volume terms
+     */
+    // \{
+
+    /*!
+     * \brief Evaluate the initial value for a control volume.
+     *
+     * \param globalPos The position for which the initial condition should be evaluated
+     *
+     * For this method, the \a values parameter stores primary
+     * variables.
+     */
+    PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const
+    {
+        PrimaryVariables values(0.0);
+
+        // get the water density at atmospheric conditions
+        const Scalar densityW = FluidSystem::H2O::liquidDensity(temperature(), 1.0e5);
+
+        // assume an intially hydrostatic liquid pressure profile
+        // note: we subtract rho_w*g*h because g is defined negative
+        const Scalar pw = 1.0e5 - densityW*this->gravity()[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]);
+
+        values[Indices::pressureIdx] = pw;
+        values[Indices::saturationIdx] = 0.0;
+
+        return values;
+    }
+
+    // \}
+
+    //! set the time for the time dependent boundary conditions (called from main)
+    void setTime(Scalar time)
+    { time_ = time; }
+
+private:
+    static constexpr Scalar eps_ = 1e-6;
+    std::string name_; //! Problem name
+    Scalar aquiferDepth_; //! Depth of the aquifer in m
+    Scalar injectionDuration_; //! Duration of the injection in seconds
+    Scalar time_;
+};
+
+} //end namespace Dumux
+
+#endif
diff --git a/exercises/solution/exercise-grids/injection2pspatialparams.hh b/exercises/solution/exercise-grids/injection2pspatialparams.hh
new file mode 100644
index 00000000..0e72f8d5
--- /dev/null
+++ b/exercises/solution/exercise-grids/injection2pspatialparams.hh
@@ -0,0 +1,172 @@
+// -*- 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 Definition of the spatial parameters for the injection problem
+ *        which uses the isothermal two-phase two-component
+ *        fully implicit model.
+ */
+
+#ifndef DUMUX_EXGRIDS_INJECTION_SPATIAL_PARAMS_HH
+#define DUMUX_EXGRIDS_INJECTION_SPATIAL_PARAMS_HH
+
+#include <dumux/material/spatialparams/fv.hh>
+#include <dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh>
+#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
+
+#include <dumux/io/gnuplotinterface.hh>
+#include <dumux/io/plotmateriallaw.hh>
+
+namespace Dumux {
+
+/*!
+ * \ingroup TwoPTwoCModel
+ * \brief Definition of the spatial parameters for the injection problem
+ *        which uses the isothermal two-phase two-component
+ *        fully implicit model.
+ */
+template<class FVGridGeometry, class Scalar>
+class InjectionSpatialParams
+: public FVSpatialParams<FVGridGeometry, Scalar, InjectionSpatialParams<FVGridGeometry, Scalar>>
+{
+    using ThisType = InjectionSpatialParams<FVGridGeometry, Scalar>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>;
+    using GridView = typename FVGridGeometry::GridView;
+
+    // get the dimensions of the simulation domain from GridView
+    static const int dimWorld = GridView::dimensionworld;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+public:
+    // export permeability type
+    using PermeabilityType = Scalar;
+
+    using MaterialLaw = EffToAbsLaw<RegularizedBrooksCorey<Scalar>>;
+    using MaterialLawParams = typename MaterialLaw::Params;
+
+    /*!
+     * \brief The constructor
+     *
+     * \param fvGridGeometry The finite volume grid geometry
+     */
+    InjectionSpatialParams(std::shared_ptr<const FVGridGeometry>& fvGridGeometry)
+    : ParentType(fvGridGeometry)
+    {
+        // Aquifer Height, measured from the bottom
+        aquiferHeightFromBottom_ = 30.0;
+
+        // intrinsic permeabilities
+        aquitardK_ = getParam<Scalar>("SpatialParams.PermeabilityAquitard");
+        aquiferK_ = getParam<Scalar>("SpatialParams.PermeabilityAquifer");
+
+        // porosities
+        aquitardPorosity_ = 0.2;
+        aquiferPorosity_ = 0.4;
+
+        // residual saturations
+        aquitardMaterialParams_.setSwr(0.2);
+        aquitardMaterialParams_.setSnr(0.0);
+        aquiferMaterialParams_.setSwr(0.2);
+        aquiferMaterialParams_.setSnr(0.0);
+
+        // parameters for the Brooks-Corey law
+        aquitardMaterialParams_.setPe(getParam<Scalar>("SpatialParams.EntryPressureAquitard"));
+        aquiferMaterialParams_.setPe(getParam<Scalar>("SpatialParams.EntryPressureAquifer"));
+        aquitardMaterialParams_.setLambda(2.0);
+        aquiferMaterialParams_.setLambda(2.0);
+    }
+
+    /*!
+     * \brief Define the intrinsic permeability \f$\mathrm{[m^2]}\f$.
+     *
+     * \param globalPos The global position
+     */
+    PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const
+    {
+        // here, either aquitard or aquifer permeability are returned, depending on the global position
+        if (isInAquitard_(globalPos))
+            return aquitardK_;
+        return aquiferK_;
+    }
+
+    /*!
+     * \brief Define the porosity \f$\mathrm{[-]}\f$.
+     *
+     * \param globalPos The global position
+     */
+    Scalar porosityAtPos(const GlobalPosition& globalPos) const
+    {
+        // here, either aquitard or aquifer porosity are returned, depending on the global position
+        if (isInAquitard_(globalPos))
+            return aquitardPorosity_;
+        return aquiferPorosity_;
+    }
+
+    /*!
+     * \brief Function for defining the parameters needed by constitutive relationships (kr-sw, pc-sw, etc.).
+     *
+     * \param globalPos The global position
+     *
+     * \return the material parameters object
+     */
+     const MaterialLawParams& materialLawParamsAtPos(const GlobalPosition& globalPos) const
+    {
+        if (isInAquitard_(globalPos))
+            return aquitardMaterialParams_;
+        return aquiferMaterialParams_;
+    }
+
+    /*!
+     * \brief Function for defining which phase is to be considered as the wetting phase.
+     *
+     * \return the wetting phase index
+     * \param globalPos The position of the center of the element
+     */
+    template<class FluidSystem>
+    int wettingPhaseAtPos(const GlobalPosition& globalPos) const
+    { return FluidSystem::H2OIdx; }
+
+private:
+
+    static constexpr Scalar eps_ = 1e-6;
+
+    // provides a convenient way distinguishing whether a given location is inside the aquitard
+    bool isInAquitard_(const GlobalPosition &globalPos) const
+    {
+        // globalPos[dimWorld-1] is the y direction for 2D grids or the z direction for 3D grids
+        return globalPos[dimWorld-1] > aquiferHeightFromBottom_ + eps_;
+    }
+
+    Scalar aquitardK_;
+    Scalar aquiferK_;
+    Scalar aquiferHeightFromBottom_;
+
+
+    Scalar aquitardPorosity_;
+    Scalar aquiferPorosity_;
+
+    MaterialLawParams aquitardMaterialParams_;
+    MaterialLawParams aquiferMaterialParams_;
+};
+
+} // end namespace Dumux
+
+#endif
-- 
GitLab