Index: test/min_cost_flow_test.cc
===================================================================
--- test/min_cost_flow_test.cc	(revision 2553)
+++ test/min_cost_flow_test.cc	(revision 2584)
@@ -18,111 +18,312 @@
 
 #include <iostream>
+#include <fstream>
+
+#include <lemon/list_graph.h>
+#include <lemon/smart_graph.h>
+#include <lemon/graph_reader.h>
+#include <lemon/dimacs.h>
+#include <lemon/time_measure.h>
+
+#include <lemon/cycle_canceling.h>
+#include <lemon/capacity_scaling.h>
+#include <lemon/cost_scaling.h>
+#include <lemon/network_simplex.h>
+
+#include <lemon/min_cost_flow.h>
+#include <lemon/min_cost_max_flow.h>
+
 #include "test_tools.h"
-#include <lemon/list_graph.h>
-#include <lemon/ssp_min_cost_flow.h>
-//#include <path.h>
-//#include <maps.h>
 
 using namespace lemon;
 
-
-bool passed = true;
-/*
-void check(bool rc, char *msg="") {
-  passed = passed && rc;
-  if(!rc) {
-    std::cerr << "Test failed! ("<< msg << ")" << std::endl; \
- 
-
-  }
+// Checks the feasibility of a flow
+template < typename Graph, typename LowerMap, typename CapacityMap,
+           typename SupplyMap, typename FlowMap >
+bool checkFlow( const Graph& gr,
+                const LowerMap& lower, const CapacityMap& upper,
+                const SupplyMap& supply, const FlowMap& flow )
+{
+  GRAPH_TYPEDEFS(typename Graph);
+  for (EdgeIt e(gr); e != INVALID; ++e)
+    if (flow[e] < lower[e] || flow[e] > upper[e]) return false;
+
+  for (NodeIt n(gr); n != INVALID; ++n) {
+    typename SupplyMap::Value sum = 0;
+    for (OutEdgeIt e(gr, n); e != INVALID; ++e)
+      sum += flow[e];
+    for (InEdgeIt e(gr, n); e != INVALID; ++e)
+      sum -= flow[e];
+    if (sum != supply[n]) return false;
+  }
+
+  return true;
 }
-*/
-
+
+// Checks the optimalitiy of a flow
+template < typename Graph, typename LowerMap, typename CapacityMap,
+           typename CostMap, typename FlowMap, typename PotentialMap >
+bool checkOptimality( const Graph& gr, const LowerMap& lower,
+                      const CapacityMap& upper, const CostMap& cost,
+                      const FlowMap& flow, const PotentialMap& pi )
+{
+  GRAPH_TYPEDEFS(typename Graph);
+  // Checking the Complementary Slackness optimality condition
+  bool opt = true;
+  for (EdgeIt e(gr); e != INVALID; ++e) {
+    typename CostMap::Value red_cost =
+      cost[e] + pi[gr.source(e)] - pi[gr.target(e)];
+    opt = red_cost == 0 ||
+          (red_cost > 0 && flow[e] == lower[e]) ||
+          (red_cost < 0 && flow[e] == upper[e]);
+    if (!opt) break;
+  }
+  return opt;
+}
+
+// Runs a minimum cost flow algorithm and checks the results
+template < typename MinCostFlowImpl, typename Graph,
+           typename LowerMap, typename CapacityMap,
+           typename CostMap, typename SupplyMap >
+void checkMcf( std::string test_id,
+               const MinCostFlowImpl& mcf, const Graph& gr,
+               const LowerMap& lower, const CapacityMap& upper,
+               const CostMap& cost, const SupplyMap& supply,
+               bool mcf_result, bool result,
+               typename CostMap::Value total )
+{
+  check(mcf_result == result, "Wrong result " + test_id);
+  if (result) {
+    check(checkFlow(gr, lower, upper, supply, mcf.flowMap()),
+          "The flow is not feasible " + test_id);
+    check(mcf.totalCost() == total, "The flow is not optimal " + test_id);
+    check(checkOptimality(gr, lower, upper, cost, mcf.flowMap(), mcf.potentialMap()),
+          "Wrong potentials " + test_id);
+  }
+}
 
 int main()
 {
-  typedef ListGraph Graph;
-  typedef Graph::Node Node;
-  typedef Graph::Edge Edge;
-
-  Graph graph;
-
-  //Ahuja könyv példája
-
-  Node s=graph.addNode();
-  Node v1=graph.addNode();  
-  Node v2=graph.addNode();
-  Node v3=graph.addNode();
-  Node v4=graph.addNode();
-  Node v5=graph.addNode();
-  Node t=graph.addNode();
-
-  Edge s_v1=graph.addEdge(s, v1);
-  Edge v1_v2=graph.addEdge(v1, v2);
-  Edge s_v3=graph.addEdge(s, v3);
-  Edge v2_v4=graph.addEdge(v2, v4);
-  Edge v2_v5=graph.addEdge(v2, v5);
-  Edge v3_v5=graph.addEdge(v3, v5);
-  Edge v4_t=graph.addEdge(v4, t);
-  Edge v5_t=graph.addEdge(v5, t);
-  
-
-  Graph::EdgeMap<int> length(graph);
-
-  length.set(s_v1, 6);
-  length.set(v1_v2, 4);
-  length.set(s_v3, 10);
-  length.set(v2_v4, 5);
-  length.set(v2_v5, 1);
-  length.set(v3_v5, 4);
-  length.set(v4_t, 8);
-  length.set(v5_t, 8);
-
-  Graph::EdgeMap<int> capacity(graph);
-
-  capacity.set(s_v1, 2);
-  capacity.set(v1_v2, 2);
-  capacity.set(s_v3, 1);
-  capacity.set(v2_v4, 1);
-  capacity.set(v2_v5, 1);
-  capacity.set(v3_v5, 1);
-  capacity.set(v4_t, 1);
-  capacity.set(v5_t, 2);
-
-  //  ConstMap<Edge, int> const1map(1);
-  std::cout << "Mincostflows algorithm test..." << std::endl;
-
-  SspMinCostFlow< Graph, Graph::EdgeMap<int>, Graph::EdgeMap<int> >
-    surb_test(graph, length, capacity, s, t);
-
-  int k=1;
-
-  surb_test.augment();
-  check(  surb_test.flowValue() == 1 && surb_test.totalLength() == 19,"One path, total length should be 19");
-
-  check(  surb_test.run(k) == 1 && surb_test.totalLength() == 19,"One path, total length should be 19");
-
-  check(surb_test.checkComplementarySlackness(), "Is the primal-dual solution pair really optimal?");
-  
-  k=2;
-  
-  check(  surb_test.run(k) == 2 && surb_test.totalLength() == 41,"Two paths, total length should be 41");
-
-  check(surb_test.checkComplementarySlackness(), "Is the primal-dual solution pair really optimal?");
-  
-  surb_test.augment();
-  surb_test.augment();
-  surb_test.augment();
-  k=4;
-
-  check(  surb_test.run(k) == 3 && surb_test.totalLength() == 64,"Three paths, total length should be 64");
-
-  check(surb_test.checkComplementarySlackness(), "Is the primal-dual solution pair really optimal?");
-
-
-  std::cout << (passed ? "All tests passed." : "Some of the tests failed!!!")
-	    << std::endl;
-
-  return passed ? 0 : 1;
-
+  // Various tests on a small graph
+  {
+    typedef ListGraph Graph;
+    GRAPH_TYPEDEFS(ListGraph);
+
+    // Reading the test graph
+    Graph gr;
+    Graph::EdgeMap<int> c(gr), l1(gr), l2(gr), u(gr);
+    Graph::NodeMap<int> s1(gr), s2(gr), s3(gr);
+    Node v, w;
+
+    std::string fname;
+    if(getenv("srcdir"))
+      fname = std::string(getenv("srcdir"));
+    else fname = ".";
+    fname += "/test/min_cost_flow_test.lgf";
+
+    std::ifstream input(fname.c_str());
+    check(input, "Input file '" << fname << "' not found");
+    GraphReader<Graph>(input, gr).
+      readEdgeMap("cost", c).
+      readEdgeMap("capacity", u).
+      readEdgeMap("lower1", l1).
+      readEdgeMap("lower2", l2).
+      readNodeMap("supply1", s1).
+      readNodeMap("supply2", s2).
+      readNodeMap("supply3", s3).
+      readNode("source", v).
+      readNode("target", w).
+      run();
+    input.close();
+
+    // Testing CapacityScaling (scaling enabled)
+    {
+      CapacityScaling<Graph> mcf1(gr,u,c,s1);        checkMcf("#A1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
+      CapacityScaling<Graph> mcf2(gr,u,c,s2);        checkMcf("#A2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
+      CapacityScaling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#A3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
+      CapacityScaling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#A4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
+      CapacityScaling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#A5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
+      CapacityScaling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#A6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
+    }
+    // Testing CapacityScaling (scaling disabled)
+    {
+      CapacityScaling<Graph> mcf1(gr,u,c,s1);        checkMcf("#B1",mcf1,gr,l1,u,c,s1,mcf1.run(false),true,    0);
+      CapacityScaling<Graph> mcf2(gr,u,c,s2);        checkMcf("#B2",mcf2,gr,l1,u,c,s2,mcf2.run(false),true, 5240);
+      CapacityScaling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#B3",mcf3,gr,l1,u,c,s3,mcf3.run(false),true, 7620);
+      CapacityScaling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#B4",mcf4,gr,l2,u,c,s1,mcf4.run(false),false,   0);
+      CapacityScaling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#B5",mcf5,gr,l2,u,c,s2,mcf5.run(false),true, 5970);
+      CapacityScaling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#B6",mcf6,gr,l2,u,c,s3,mcf6.run(false),true, 8010);
+    }
+
+    // Testing CostScaling
+    {
+      CostScaling<Graph> mcf1(gr,u,c,s1);        checkMcf("#C1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
+      CostScaling<Graph> mcf2(gr,u,c,s2);        checkMcf("#C2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
+      CostScaling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#C3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
+      CostScaling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#C4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
+      CostScaling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#C5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
+      CostScaling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#C6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
+    }
+
+    // Testing NetworkSimplex (with the default pivot rule)
+    {
+      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#D1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
+      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#D2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
+      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#D3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
+      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#D4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
+      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#D5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
+      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#D6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
+    }
+    // Testing NetworkSimplex (with FIRST_ELIGIBLE_PIVOT)
+    {
+      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::FIRST_ELIGIBLE_PIVOT;
+      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#E1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
+      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#E2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
+      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#E3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
+      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#E4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
+      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#E5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
+      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#E6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
+    }
+    // Testing NetworkSimplex (with BEST_ELIGIBLE_PIVOT)
+    {
+      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::BEST_ELIGIBLE_PIVOT;
+      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#F1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
+      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#F2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
+      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#F3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
+      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#F4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
+      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#F5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
+      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#F6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
+    }
+    // Testing NetworkSimplex (with BLOCK_SEARCH_PIVOT)
+    {
+      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::BLOCK_SEARCH_PIVOT;
+      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#G1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
+      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#G2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
+      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#G3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
+      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#G4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
+      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#G5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
+      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#G6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
+    }
+    // Testing NetworkSimplex (with LIMITED_SEARCH_PIVOT)
+    {
+      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::LIMITED_SEARCH_PIVOT;
+      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#H1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
+      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#H2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
+      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#H3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
+      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#H4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
+      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#H5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
+      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#H6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
+    }
+    // Testing NetworkSimplex (with CANDIDATE_LIST_PIVOT)
+    {
+      NetworkSimplex<Graph>::PivotRuleEnum pr = NetworkSimplex<Graph>::CANDIDATE_LIST_PIVOT;
+      NetworkSimplex<Graph> mcf1(gr,u,c,s1);        checkMcf("#I1",mcf1,gr,l1,u,c,s1,mcf1.run(pr),true,    0);
+      NetworkSimplex<Graph> mcf2(gr,u,c,s2);        checkMcf("#I2",mcf2,gr,l1,u,c,s2,mcf2.run(pr),true, 5240);
+      NetworkSimplex<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#I3",mcf3,gr,l1,u,c,s3,mcf3.run(pr),true, 7620);
+      NetworkSimplex<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#I4",mcf4,gr,l2,u,c,s1,mcf4.run(pr),false,   0);
+      NetworkSimplex<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#I5",mcf5,gr,l2,u,c,s2,mcf5.run(pr),true, 5970);
+      NetworkSimplex<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#I6",mcf6,gr,l2,u,c,s3,mcf6.run(pr),true, 8010);
+    }
+
+    // Testing CycleCanceling (with BellmanFord)
+    {
+      CycleCanceling<Graph> mcf1(gr,u,c,s1);        checkMcf("#J1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
+      CycleCanceling<Graph> mcf2(gr,u,c,s2);        checkMcf("#J2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
+      CycleCanceling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#J3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
+      CycleCanceling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#J4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
+      CycleCanceling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#J5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
+      CycleCanceling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#J6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
+    }
+    // Testing CycleCanceling (with MinMeanCycle)
+    {
+      CycleCanceling<Graph> mcf1(gr,u,c,s1);        checkMcf("#K1",mcf1,gr,l1,u,c,s1,mcf1.run(true),true,    0);
+      CycleCanceling<Graph> mcf2(gr,u,c,s2);        checkMcf("#K2",mcf2,gr,l1,u,c,s2,mcf2.run(true),true, 5240);
+      CycleCanceling<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#K3",mcf3,gr,l1,u,c,s3,mcf3.run(true),true, 7620);
+      CycleCanceling<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#K4",mcf4,gr,l2,u,c,s1,mcf4.run(true),false,   0);
+      CycleCanceling<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#K5",mcf5,gr,l2,u,c,s2,mcf5.run(true),true, 5970);
+      CycleCanceling<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#K6",mcf6,gr,l2,u,c,s3,mcf6.run(true),true, 8010);
+    }
+
+    // Testing MinCostFlow
+    {
+      MinCostFlow<Graph> mcf1(gr,u,c,s1);        checkMcf("#L1",mcf1,gr,l1,u,c,s1,mcf1.run(),true,    0);
+      MinCostFlow<Graph> mcf2(gr,u,c,s2);        checkMcf("#L2",mcf2,gr,l1,u,c,s2,mcf2.run(),true, 5240);
+      MinCostFlow<Graph> mcf3(gr,u,c,v,w,27);    checkMcf("#L3",mcf3,gr,l1,u,c,s3,mcf3.run(),true, 7620);
+      MinCostFlow<Graph> mcf4(gr,l2,u,c,s1);     checkMcf("#L4",mcf4,gr,l2,u,c,s1,mcf4.run(),false,   0);
+      MinCostFlow<Graph> mcf5(gr,l2,u,c,s2);     checkMcf("#L5",mcf5,gr,l2,u,c,s2,mcf5.run(),true, 5970);
+      MinCostFlow<Graph> mcf6(gr,l2,u,c,v,w,27); checkMcf("#L6",mcf6,gr,l2,u,c,s3,mcf6.run(),true, 8010);
+    }
+
+    // Testing MinCostMaxFlow
+    {
+      MinCostMaxFlow<Graph> mcmf(gr,u,c,v,w);
+      mcmf.run();
+      checkMcf("#M1",mcmf,gr,l1,u,c,s3,true,true,7620);
+    }
+  }
+
+  // Benchmark test on a DIMACS network
+  {
+    typedef SmartGraph Graph;
+    GRAPH_TYPEDEFS(SmartGraph);
+
+    // Reading the test graph
+    Graph graph;
+    Graph::EdgeMap<int> lower(graph), capacity(graph), cost(graph);
+    Graph::NodeMap<int> supply(graph);
+
+    std::string fname;
+    if(getenv("srcdir"))
+      fname = std::string(getenv("srcdir"));
+    else fname = ".";
+    fname += "/test/min_cost_flow_test.net";
+
+    std::ifstream input(fname.c_str());
+    check(input, "Input file '" << fname << "' not found");
+    readDimacs(input, graph, lower, capacity, cost, supply);
+    input.close();
+
+    // NetworkSimplex
+    {
+      Timer t;
+      NetworkSimplex<Graph> mcf(graph, lower, capacity, cost, supply);
+      bool res = mcf.run();
+      t.stop();
+      checkMcf("#T3", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
+      std::cout << "NetworkSimplex";
+      std::cout << std::endl << t << std::endl;
+    }
+    // CapacityScaling
+    {
+      Timer t;
+      CapacityScaling<Graph> mcf(graph, lower, capacity, cost, supply);
+      bool res = mcf.run();
+      t.stop();
+      checkMcf("#T1", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
+      std::cout << "CapacityScaling";
+      std::cout << std::endl << t << std::endl;
+    }
+    // CostScaling
+    {
+      Timer t;
+      CostScaling<Graph> mcf(graph, lower, capacity, cost, supply);
+      bool res = mcf.run();
+      t.stop();
+      checkMcf("#T2", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
+      std::cout << "CostScaling";
+      std::cout << std::endl << t << std::endl;
+    }
+    // CycleCanceling
+    {
+      Timer t;
+      CycleCanceling<Graph> mcf(graph, lower, capacity, cost, supply);
+      bool res = mcf.run();
+      t.stop();
+      checkMcf("#T4", mcf, graph, lower, capacity, cost, supply, res, true, 196587626);
+      std::cout << "CycleCanceling";
+      std::cout << std::endl << t << std::endl;
+    }
+  }
+
+  return 0;
 }
Index: test/min_cost_flow_test.lgf
===================================================================
--- test/min_cost_flow_test.lgf	(revision 2584)
+++ test/min_cost_flow_test.lgf	(revision 2584)
@@ -0,0 +1,44 @@
+@nodeset
+label	supply1	supply2	supply3
+1	0	20	27	
+2	0	-4	0		
+3	0	0	0	
+4	0	0	0	
+5	0	9	0	
+6	0	-6	0	
+7	0	0	0	
+8	0	0	0	
+9	0	3	0	
+10	0	-2	0	
+11	0	0	0		
+12	0	-20	-27	
+               
+@edgeset
+		cost	capacity	lower1	lower2
+1	2	70	11		0	8
+1	3	150	3		0	1
+1	4	80	15		0	2
+2	8	80	12		0	0
+3	5	140	5		0	3
+4	6	60	10		0	1
+4	7	80	2		0	0
+4	8	110	3		0	0
+5	7	60	14		0	0
+5	11	120	12		0	0
+6	3	0	3		0	0
+6	9	140	4		0	0
+6	10	90	8		0	0
+7	1	30	5		0	0
+8	12	60	16		0	4
+9	12	50	6		0	0
+10	12	70	13		0	5
+10	2	100	7		0	0
+10	7	60	10		0	0
+11	10	20	14		0	6
+12	11	30	10		0	0
+
+@nodes
+source	1
+target	12
+
+@end
Index: test/min_cost_flow_test.net
===================================================================
--- test/min_cost_flow_test.net	(revision 2584)
+++ test/min_cost_flow_test.net	(revision 2584)
@@ -0,0 +1,1531 @@
+c NETGEN flow network generator (C version)
+c  Problem  1 input parameters
+c  ---------------------------
+c   Random seed:            13502460
+c   Number of nodes:             200
+c   Source nodes:                100
+c   Sink nodes:                  100
+c   Number of arcs:             1300
+c   Minimum arc cost:              1
+c   Maximum arc cost:          10000
+c   Total supply:             100000
+c   Transshipment -
+c     Sources:                     0
+c     Sinks:                       0
+c   Skeleton arcs -
+c     With max cost:               0%
+c     Capacitated:                 0%
+c   Minimum arc capacity:          0
+c   Maximum arc capacity:          0
+c
+c  *** Minimum cost flow ***
+c
+p min 200 1308
+n 1 286
+n 2 671
+n 3 605
+n 4 195
+n 5 1287
+n 6 497
+n 7 149
+n 8 660
+n 9 676
+n 10 1338
+n 11 222
+n 12 738
+n 13 1819
+n 14 1857
+n 15 1749
+n 16 1479
+n 17 154
+n 18 1897
+n 19 707
+n 20 367
+n 21 917
+n 22 410
+n 23 1000
+n 24 770
+n 25 1122
+n 26 1895
+n 27 1501
+n 28 514
+n 29 2227
+n 30 913
+n 31 947
+n 32 2260
+n 33 996
+n 34 986
+n 35 125
+n 36 362
+n 37 706
+n 38 1262
+n 39 389
+n 40 1410
+n 41 758
+n 42 2189
+n 43 531
+n 44 527
+n 45 2028
+n 46 1710
+n 47 1196
+n 48 832
+n 49 73
+n 50 1269
+n 51 1485
+n 52 1174
+n 53 1325
+n 54 2136
+n 55 852
+n 56 301
+n 57 707
+n 58 807
+n 59 1242
+n 60 1739
+n 61 1225
+n 62 94
+n 63 989
+n 64 1641
+n 65 805
+n 66 236
+n 67 1520
+n 68 1421
+n 69 936
+n 70 100
+n 71 952
+n 72 501
+n 73 1858
+n 74 1563
+n 75 186
+n 76 1307
+n 77 626
+n 78 1032
+n 79 939
+n 80 1159
+n 81 904
+n 82 1332
+n 83 1280
+n 84 2080
+n 85 1260
+n 86 512
+n 87 191
+n 88 309
+n 89 1053
+n 90 1070
+n 91 656
+n 92 1155
+n 93 493
+n 94 1135
+n 95 1199
+n 96 1914
+n 97 677
+n 98 192
+n 99 914
+n 100 1638
+n 101 -1827
+n 102 -1234
+n 103 -903
+n 104 -1166
+n 105 -2594
+n 106 -10
+n 107 -710
+n 108 -1074
+n 109 -686
+n 110 -147
+n 111 -955
+n 112 -535
+n 113 -1118
+n 114 -381
+n 115 -297
+n 116 -599
+n 117 -1534
+n 118 -160
+n 119 -114
+n 120 -1633
+n 121 -195
+n 122 -689
+n 123 -62
+n 124 -111
+n 125 -869
+n 126 -84
+n 127 -2074
+n 128 -31
+n 129 -1851
+n 130 -1720
+n 131 -754
+n 132 -2739
+n 133 -155
+n 134 -3154
+n 135 -572
+n 136 -2372
+n 137 -321
+n 138 -86
+n 139 -1687
+n 140 -1346
+n 141 -2465
+n 142 -388
+n 143 -1861
+n 144 -971
+n 145 -628
+n 146 -187
+n 147 -26
+n 148 -1975
+n 149 -2424
+n 150 -574
+n 151 -163
+n 152 -1126
+n 153 -2865
+n 154 -233
+n 155 -2837
+n 156 -1209
+n 157 -2017
+n 158 -2228
+n 159 -740
+n 160 -290
+n 161 -9
+n 162 -151
+n 163 -2922
+n 164 -1405
+n 165 -374
+n 166 -880
+n 167 -47
+n 168 -865
+n 169 -728
+n 170 -103
+n 171 -616
+n 172 -318
+n 173 -2548
+n 174 -353
+n 175 -937
+n 176 -1012
+n 177 -504
+n 178 -39
+n 179 -1897
+n 180 -1130
+n 181 -1971
+n 182 -1941
+n 183 -1758
+n 184 -2284
+n 185 -998
+n 186 -875
+n 187 -1083
+n 188 -257
+n 189 -2394
+n 190 -351
+n 191 -578
+n 192 -53
+n 193 -223
+n 194 -869
+n 195 -1088
+n 196 -96
+n 197 -755
+n 198 -1577
+n 199 -131
+n 200 -124
+a 1 102 0 100000 8550
+a 1 171 0 100000 7415
+a 1 101 0 100000 7178
+a 1 165 0 100000 4494
+a 1 151 0 100000 6289
+a 1 187 0 100000 1281
+a 1 189 0 100000 6859
+a 1 166 0 100000 8963
+a 1 182 0 100000 1704
+a 1 112 0 100000 6045
+a 1 154 0 100000 5938
+a 1 160 0 100000 8099
+a 1 186 0 100000 3667
+a 1 126 0 100000 6885
+a 1 132 0 100000 1207
+a 1 197 0 100000 7041
+a 2 181 0 100000 8581
+a 2 155 0 100000 4218
+a 2 152 0 100000 9984
+a 2 166 0 100000 7839
+a 2 184 0 100000 6509
+a 2 164 0 100000 4037
+a 2 167 0 100000 3308
+a 2 180 0 100000 3719
+a 2 157 0 100000 2558
+a 2 120 0 100000 1380
+a 2 159 0 100000 452
+a 2 119 0 100000 1576
+a 2 111 0 100000 9029
+a 2 146 0 100000 3919
+a 2 145 0 100000 2355
+a 3 166 0 100000 9197
+a 3 180 0 100000 5974
+a 3 106 0 100000 5746
+a 3 119 0 100000 7933
+a 3 145 0 100000 8276
+a 3 120 0 100000 3279
+a 3 103 0 100000 5734
+a 3 130 0 100000 5935
+a 3 157 0 100000 5403
+a 3 175 0 100000 730
+a 4 119 0 100000 4678
+a 4 134 0 100000 752
+a 4 199 0 100000 6613
+a 4 104 0 100000 5132
+a 4 158 0 100000 6946
+a 4 139 0 100000 5430
+a 4 113 0 100000 5236
+a 4 174 0 100000 6554
+a 4 179 0 100000 4745
+a 4 103 0 100000 3365
+a 4 144 0 100000 2841
+a 4 169 0 100000 743
+a 4 130 0 100000 1917
+a 4 197 0 100000 5331
+a 4 175 0 100000 2557
+a 5 158 0 100000 8388
+a 5 102 0 100000 3231
+a 5 155 0 100000 4091
+a 5 125 0 100000 7576
+a 6 106 0 100000 1759
+a 6 120 0 100000 3707
+a 6 192 0 100000 2581
+a 6 176 0 100000 8376
+a 6 121 0 100000 5426
+a 6 102 0 100000 895
+a 6 167 0 100000 8750
+a 6 152 0 100000 454
+a 6 124 0 100000 2864
+a 6 108 0 100000 3204
+a 6 184 0 100000 8370
+a 6 195 0 100000 2914
+a 6 149 0 100000 9326
+a 6 140 0 100000 7174
+a 6 169 0 100000 9346
+a 6 127 0 100000 6898
+a 6 134 0 100000 8782
+a 6 173 0 100000 9386
+a 6 183 0 100000 9188
+a 7 198 0 100000 1118
+a 7 102 0 100000 6098
+a 7 170 0 100000 5021
+a 7 199 0 100000 6752
+a 8 180 0 100000 1271
+a 8 129 0 100000 4668
+a 8 170 0 100000 7417
+a 8 177 0 100000 3773
+a 8 106 0 100000 7995
+a 8 134 0 100000 4729
+a 8 183 0 100000 2999
+a 8 159 0 100000 7149
+a 8 164 0 100000 4594
+a 9 140 0 100000 7422
+a 9 159 0 100000 1784
+a 9 182 0 100000 7713
+a 9 193 0 100000 194
+a 9 125 0 100000 2095
+a 9 198 0 100000 7925
+a 9 169 0 100000 2421
+a 9 195 0 100000 9863
+a 9 146 0 100000 7451
+a 9 126 0 100000 858
+a 9 197 0 100000 4286
+a 9 192 0 100000 9168
+a 9 109 0 100000 6058
+a 9 106 0 100000 9915
+a 9 138 0 100000 7024
+a 9 123 0 100000 3551
+a 9 163 0 100000 5507
+a 9 104 0 100000 5826
+a 9 139 0 100000 787
+a 10 143 0 100000 6434
+a 10 175 0 100000 5810
+a 10 165 0 100000 612
+a 10 126 0 100000 6095
+a 10 101 0 100000 1609
+a 10 153 0 100000 4862
+a 10 149 0 100000 1918
+a 10 140 0 100000 782
+a 10 145 0 100000 9166
+a 10 141 0 100000 846
+a 10 176 0 100000 2056
+a 10 113 0 100000 4056
+a 11 124 0 100000 4877
+a 11 176 0 100000 683
+a 11 177 0 100000 4842
+a 11 107 0 100000 5609
+a 11 139 0 100000 7808
+a 11 188 0 100000 2218
+a 11 134 0 100000 9467
+a 11 169 0 100000 5894
+a 11 109 0 100000 8396
+a 11 165 0 100000 9248
+a 11 149 0 100000 889
+a 11 175 0 100000 9202
+a 11 130 0 100000 4593
+a 11 152 0 100000 1837
+a 11 145 0 100000 9058
+a 11 138 0 100000 3582
+a 11 122 0 100000 7516
+a 11 146 0 100000 719
+a 11 112 0 100000 9082
+a 11 160 0 100000 6105
+a 11 128 0 100000 4323
+a 11 194 0 100000 8202
+a 11 168 0 100000 8736
+a 11 102 0 100000 8382
+a 11 101 0 100000 9503
+a 12 117 0 100000 3034
+a 12 172 0 100000 7033
+a 12 183 0 100000 7235
+a 12 105 0 100000 2219
+a 12 163 0 100000 9998
+a 12 198 0 100000 6881
+a 12 114 0 100000 8613
+a 12 174 0 100000 4456
+a 12 147 0 100000 4762
+a 12 101 0 100000 2794
+a 12 120 0 100000 5705
+a 12 144 0 100000 9694
+a 12 191 0 100000 1124
+a 12 161 0 100000 8140
+a 12 185 0 100000 8678
+a 13 163 0 100000 854
+a 13 141 0 100000 3211
+a 13 122 0 100000 5557
+a 13 169 0 100000 4912
+a 13 151 0 100000 9351
+a 13 162 0 100000 5018
+a 13 131 0 100000 6210
+a 13 167 0 100000 1858
+a 13 133 0 100000 2148
+a 13 175 0 100000 4424
+a 13 112 0 100000 8310
+a 13 179 0 100000 7491
+a 13 142 0 100000 3439
+a 13 199 0 100000 7269
+a 14 148 0 100000 8480
+a 14 163 0 100000 2274
+a 14 143 0 100000 2854
+a 14 140 0 100000 2177
+a 14 161 0 100000 5688
+a 14 146 0 100000 7526
+a 14 118 0 100000 2712
+a 14 169 0 100000 552
+a 14 187 0 100000 9060
+a 14 166 0 100000 248
+a 14 155 0 100000 5144
+a 14 186 0 100000 3864
+a 14 111 0 100000 6005
+a 14 193 0 100000 4245
+a 14 120 0 100000 8330
+a 14 152 0 100000 7421
+a 14 126 0 100000 142
+a 14 165 0 100000 3420
+a 14 199 0 100000 6522
+a 14 153 0 100000 5961
+a 14 130 0 100000 5736
+a 15 186 0 100000 4114
+a 15 148 0 100000 9833
+a 15 187 0 100000 8173
+a 15 134 0 100000 2495
+a 15 115 0 100000 4604
+a 15 146 0 100000 2949
+a 15 189 0 100000 9903
+a 15 138 0 100000 8139
+a 15 184 0 100000 7591
+a 15 110 0 100000 5914
+a 15 165 0 100000 5669
+a 15 103 0 100000 3590
+a 16 130 0 100000 9385
+a 16 176 0 100000 9727
+a 16 199 0 100000 9266
+a 16 198 0 100000 9129
+a 16 194 0 100000 6915
+a 16 155 0 100000 5789
+a 16 190 0 100000 1965
+a 16 135 0 100000 7619
+a 16 195 0 100000 6171
+a 16 131 0 100000 2529
+a 16 171 0 100000 5969
+a 17 144 0 100000 9423
+a 17 157 0 100000 9156
+a 17 176 0 100000 2918
+a 17 158 0 100000 7903
+a 17 129 0 100000 7213
+a 17 160 0 100000 4253
+a 17 156 0 100000 8909
+a 17 182 0 100000 6735
+a 17 139 0 100000 9549
+a 17 162 0 100000 7045
+a 17 138 0 100000 2554
+a 17 143 0 100000 4064
+a 17 173 0 100000 5104
+a 17 166 0 100000 4292
+a 17 105 0 100000 1842
+a 18 158 0 100000 9866
+a 18 197 0 100000 7354
+a 18 184 0 100000 6383
+a 18 161 0 100000 1002
+a 18 199 0 100000 2172
+a 18 155 0 100000 7750
+a 19 158 0 100000 7165
+a 19 190 0 100000 5440
+a 19 159 0 100000 3536
+a 19 117 0 100000 3537
+a 19 109 0 100000 3991
+a 19 140 0 100000 3108
+a 19 128 0 100000 7287
+a 20 159 0 100000 1035
+a 20 185 0 100000 535
+a 20 148 0 100000 9177
+a 20 171 0 100000 2425
+a 20 144 0 100000 7990
+a 20 186 0 100000 2564
+a 20 187 0 100000 2509
+a 20 172 0 100000 4673
+a 20 110 0 100000 6121
+a 20 149 0 100000 8447
+a 20 101 0 100000 6134
+a 20 157 0 100000 8659
+a 20 178 0 100000 6884
+a 20 135 0 100000 1567
+a 20 106 0 100000 8015
+a 20 128 0 100000 4746
+a 20 121 0 100000 8069
+a 20 194 0 100000 1385
+a 21 111 0 100000 4392
+a 21 105 0 100000 9561
+a 21 134 0 100000 1551
+a 21 108 0 100000 5449
+a 21 126 0 100000 103
+a 21 103 0 100000 4043
+a 21 142 0 100000 8749
+a 21 183 0 100000 4714
+a 21 172 0 100000 4855
+a 21 123 0 100000 9136
+a 21 117 0 100000 9771
+a 21 114 0 100000 8472
+a 21 101 0 100000 299
+a 21 113 0 100000 1446
+a 21 165 0 100000 4952
+a 21 163 0 100000 4478
+a 21 153 0 100000 5954
+a 21 170 0 100000 279
+a 21 129 0 100000 6788
+a 21 152 0 100000 578
+a 21 198 0 100000 2459
+a 22 152 0 100000 8855
+a 22 142 0 100000 829
+a 22 176 0 100000 6797
+a 22 126 0 100000 2513
+a 22 188 0 100000 7332
+a 22 177 0 100000 3842
+a 22 186 0 100000 473
+a 22 127 0 100000 8075
+a 22 171 0 100000 924
+a 22 156 0 100000 4585
+a 22 130 0 100000 9616
+a 22 112 0 100000 2078
+a 22 155 0 100000 79
+a 23 193 0 100000 7025
+a 23 129 0 100000 4876
+a 23 114 0 100000 5073
+a 23 126 0 100000 1821
+a 23 199 0 100000 7200
+a 23 128 0 100000 2940
+a 23 181 0 100000 9911
+a 23 155 0 100000 3948
+a 23 197 0 100000 9522
+a 23 151 0 100000 5662
+a 23 111 0 100000 6135
+a 23 175 0 100000 5329
+a 23 102 0 100000 8364
+a 23 139 0 100000 6544
+a 23 104 0 100000 283
+a 23 156 0 100000 8369
+a 23 108 0 100000 3491
+a 23 110 0 100000 6481
+a 23 124 0 100000 946
+a 23 131 0 100000 9861
+a 23 141 0 100000 4976
+a 24 183 0 100000 2975
+a 24 149 0 100000 2843
+a 24 117 0 100000 3594
+a 24 166 0 100000 1261
+a 24 184 0 100000 2514
+a 24 153 0 100000 2271
+a 24 114 0 100000 7316
+a 24 198 0 100000 6092
+a 24 105 0 100000 7868
+a 24 139 0 100000 8309
+a 24 174 0 100000 5131
+a 24 197 0 100000 1045
+a 24 195 0 100000 845
+a 24 176 0 100000 5820
+a 24 181 0 100000 6085
+a 24 101 0 100000 7898
+a 25 152 0 100000 4264
+a 25 140 0 100000 5481
+a 25 126 0 100000 8929
+a 25 196 0 100000 3220
+a 25 165 0 100000 5562
+a 25 151 0 100000 5705
+a 25 112 0 100000 830
+a 25 191 0 100000 5730
+a 25 178 0 100000 7717
+a 25 167 0 100000 4126
+a 25 163 0 100000 3714
+a 25 185 0 100000 225
+a 25 129 0 100000 3369
+a 25 123 0 100000 3660
+a 25 177 0 100000 2367
+a 25 116 0 100000 2469
+a 25 139 0 100000 9779
+a 25 125 0 100000 1489
+a 26 139 0 100000 6155
+a 26 182 0 100000 7651
+a 26 189 0 100000 707
+a 26 190 0 100000 7671
+a 26 180 0 100000 1178
+a 26 124 0 100000 6625
+a 26 184 0 100000 1171
+a 26 154 0 100000 7505
+a 27 143 0 100000 423
+a 27 117 0 100000 5685
+a 27 180 0 100000 6991
+a 27 129 0 100000 4564
+a 27 193 0 100000 2539
+a 27 173 0 100000 7896
+a 27 195 0 100000 3690
+a 27 142 0 100000 8270
+a 27 131 0 100000 2276
+a 27 153 0 100000 2689
+a 28 188 0 100000 8418
+a 28 111 0 100000 1308
+a 28 158 0 100000 709
+a 28 161 0 100000 1968
+a 28 130 0 100000 6317
+a 28 168 0 100000 8008
+a 28 160 0 100000 879
+a 29 101 0 100000 767
+a 29 157 0 100000 6845
+a 29 149 0 100000 9061
+a 29 112 0 100000 281
+a 29 164 0 100000 5274
+a 29 199 0 100000 8463
+a 29 180 0 100000 9707
+a 29 165 0 100000 7565
+a 29 178 0 100000 8621
+a 29 118 0 100000 7437
+a 29 169 0 100000 9960
+a 29 125 0 100000 51
+a 29 150 0 100000 474
+a 29 160 0 100000 2568
+a 29 141 0 100000 4219
+a 29 187 0 100000 731
+a 29 158 0 100000 2476
+a 29 144 0 100000 7245
+a 29 129 0 100000 7548
+a 29 190 0 100000 3895
+a 30 185 0 100000 1822
+a 30 134 0 100000 9893
+a 30 122 0 100000 1153
+a 31 159 0 100000 7778
+a 31 105 0 100000 4967
+a 31 153 0 100000 3541
+a 31 160 0 100000 2677
+a 31 111 0 100000 3222
+a 31 136 0 100000 3269
+a 31 125 0 100000 9717
+a 31 181 0 100000 2325
+a 31 119 0 100000 8407
+a 31 127 0 100000 890
+a 31 124 0 100000 9168
+a 31 104 0 100000 6356
+a 31 179 0 100000 9162
+a 31 167 0 100000 383
+a 31 112 0 100000 1886
+a 31 120 0 100000 5326
+a 31 114 0 100000 3436
+a 32 173 0 100000 6787
+a 32 145 0 100000 1839
+a 32 113 0 100000 3758
+a 32 182 0 100000 4761
+a 32 119 0 100000 9817
+a 32 196 0 100000 9686
+a 32 129 0 100000 716
+a 32 116 0 100000 5747
+a 32 178 0 100000 1074
+a 32 167 0 100000 8680
+a 33 194 0 100000 4684
+a 33 127 0 100000 8502
+a 33 174 0 100000 7338
+a 33 175 0 100000 6420
+a 33 138 0 100000 9551
+a 33 115 0 100000 4239
+a 33 107 0 100000 6930
+a 33 104 0 100000 2172
+a 33 190 0 100000 8714
+a 33 151 0 100000 4263
+a 33 182 0 100000 2765
+a 33 161 0 100000 5954
+a 33 173 0 100000 274
+a 33 154 0 100000 9371
+a 33 156 0 100000 75
+a 33 114 0 100000 8067
+a 33 153 0 100000 2563
+a 33 169 0 100000 6915
+a 33 164 0 100000 8577
+a 33 110 0 100000 3079
+a 34 139 0 100000 3061
+a 34 183 0 100000 7251
+a 34 178 0 100000 8023
+a 34 163 0 100000 2993
+a 34 109 0 100000 9045
+a 34 172 0 100000 5404
+a 34 112 0 100000 7608
+a 34 196 0 100000 5449
+a 34 148 0 100000 2226
+a 34 142 0 100000 8808
+a 34 174 0 100000 9183
+a 34 123 0 100000 9092
+a 34 145 0 100000 1530
+a 34 162 0 100000 1288
+a 34 166 0 100000 388
+a 34 133 0 100000 1153
+a 34 115 0 100000 2210
+a 34 151 0 100000 979
+a 34 171 0 100000 1136
+a 34 137 0 100000 4830
+a 35 143 0 100000 8167
+a 35 123 0 100000 2401
+a 35 112 0 100000 4052
+a 35 149 0 100000 721
+a 35 132 0 100000 9237
+a 35 172 0 100000 9679
+a 35 117 0 100000 1469
+a 35 131 0 100000 7061
+a 35 106 0 100000 8448
+a 36 175 0 100000 8043
+a 36 121 0 100000 5151
+a 36 197 0 100000 7643
+a 36 116 0 100000 5790
+a 36 180 0 100000 1932
+a 36 128 0 100000 2477
+a 36 151 0 100000 5441
+a 36 174 0 100000 2204
+a 36 146 0 100000 7937
+a 36 193 0 100000 1912
+a 36 156 0 100000 5652
+a 36 138 0 100000 297
+a 36 191 0 100000 5116
+a 36 167 0 100000 8999
+a 36 140 0 100000 996
+a 36 103 0 100000 9577
+a 36 190 0 100000 1154
+a 36 165 0 100000 3326
+a 36 109 0 100000 1374
+a 36 110 0 100000 4679
+a 36 199 0 100000 134
+a 36 133 0 100000 9431
+a 37 174 0 100000 8274
+a 37 155 0 100000 4671
+a 37 114 0 100000 5912
+a 37 115 0 100000 506
+a 37 105 0 100000 592
+a 37 183 0 100000 2115
+a 37 108 0 100000 4928
+a 37 151 0 100000 4240
+a 37 148 0 100000 3234
+a 37 102 0 100000 8815
+a 37 109 0 100000 2968
+a 37 169 0 100000 6360
+a 37 128 0 100000 2348
+a 37 131 0 100000 6860
+a 37 166 0 100000 63
+a 37 103 0 100000 6161
+a 37 189 0 100000 4195
+a 37 147 0 100000 2127
+a 37 138 0 100000 7864
+a 37 163 0 100000 8904
+a 37 173 0 100000 1849
+a 38 134 0 100000 4026
+a 38 145 0 100000 2413
+a 38 165 0 100000 9230
+a 38 123 0 100000 6347
+a 38 185 0 100000 7621
+a 38 176 0 100000 6322
+a 38 198 0 100000 6454
+a 38 144 0 100000 5084
+a 38 121 0 100000 4462
+a 38 171 0 100000 5174
+a 38 136 0 100000 7419
+a 38 197 0 100000 7167
+a 38 179 0 100000 8980
+a 38 149 0 100000 7865
+a 38 178 0 100000 8248
+a 38 174 0 100000 6791
+a 38 164 0 100000 2361
+a 38 112 0 100000 2817
+a 38 196 0 100000 4887
+a 38 186 0 100000 9293
+a 38 106 0 100000 8175
+a 38 162 0 100000 8814
+a 38 181 0 100000 6761
+a 38 118 0 100000 7130
+a 39 157 0 100000 2168
+a 39 175 0 100000 5692
+a 39 178 0 100000 824
+a 39 142 0 100000 8831
+a 39 102 0 100000 8242
+a 39 121 0 100000 4162
+a 39 120 0 100000 658
+a 39 115 0 100000 451
+a 39 187 0 100000 7287
+a 39 117 0 100000 920
+a 40 107 0 100000 9440
+a 40 136 0 100000 9931
+a 40 103 0 100000 2181
+a 40 167 0 100000 3325
+a 40 129 0 100000 2074
+a 40 112 0 100000 8163
+a 40 104 0 100000 7518
+a 40 178 0 100000 8993
+a 40 116 0 100000 5561
+a 40 153 0 100000 1486
+a 40 171 0 100000 2580
+a 40 120 0 100000 9790
+a 40 175 0 100000 3030
+a 40 137 0 100000 7218
+a 40 177 0 100000 3087
+a 40 157 0 100000 4168
+a 41 181 0 100000 2843
+a 41 195 0 100000 38
+a 41 188 0 100000 5970
+a 41 129 0 100000 9147
+a 41 191 0 100000 6004
+a 41 116 0 100000 641
+a 41 122 0 100000 4426
+a 41 130 0 100000 9454
+a 41 170 0 100000 6046
+a 41 190 0 100000 4061
+a 41 174 0 100000 2125
+a 41 154 0 100000 5084
+a 41 160 0 100000 6356
+a 41 126 0 100000 5929
+a 41 196 0 100000 5812
+a 42 192 0 100000 517
+a 42 132 0 100000 9462
+a 42 146 0 100000 9442
+a 42 115 0 100000 897
+a 42 136 0 100000 1010
+a 42 143 0 100000 5852
+a 42 121 0 100000 1511
+a 42 189 0 100000 8165
+a 43 173 0 100000 8839
+a 43 177 0 100000 7059
+a 43 190 0 100000 5703
+a 43 106 0 100000 2300
+a 43 183 0 100000 8036
+a 43 184 0 100000 3295
+a 43 149 0 100000 47
+a 43 138 0 100000 8879
+a 43 129 0 100000 6876
+a 43 159 0 100000 2735
+a 43 191 0 100000 5062
+a 43 114 0 100000 9343
+a 43 187 0 100000 7699
+a 43 101 0 100000 6528
+a 44 136 0 100000 4162
+a 44 187 0 100000 2697
+a 44 163 0 100000 5418
+a 44 164 0 100000 398
+a 44 185 0 100000 4266
+a 44 161 0 100000 1979
+a 44 108 0 100000 290
+a 44 142 0 100000 6228
+a 45 153 0 100000 7269
+a 45 131 0 100000 9755
+a 45 143 0 100000 2025
+a 45 103 0 100000 8690
+a 45 118 0 100000 2138
+a 45 197 0 100000 5449
+a 45 102 0 100000 1992
+a 45 178 0 100000 8724
+a 45 145 0 100000 3579
+a 45 148 0 100000 3401
+a 45 137 0 100000 6512
+a 45 101 0 100000 4089
+a 45 166 0 100000 9039
+a 45 136 0 100000 3125
+a 45 156 0 100000 9040
+a 45 117 0 100000 9017
+a 45 130 0 100000 7846
+a 45 167 0 100000 5795
+a 45 112 0 100000 4049
+a 45 189 0 100000 5361
+a 45 110 0 100000 3463
+a 45 104 0 100000 2703
+a 45 191 0 100000 4933
+a 45 199 0 100000 453
+a 46 105 0 100000 2727
+a 46 101 0 100000 5811
+a 46 155 0 100000 4784
+a 46 118 0 100000 8390
+a 46 125 0 100000 1868
+a 46 102 0 100000 1061
+a 46 116 0 100000 6477
+a 46 117 0 100000 9105
+a 46 160 0 100000 8012
+a 46 111 0 100000 1797
+a 46 154 0 100000 3602
+a 46 167 0 100000 7643
+a 47 183 0 100000 3875
+a 47 185 0 100000 6570
+a 47 132 0 100000 4893
+a 47 110 0 100000 8941
+a 47 126 0 100000 7755
+a 47 149 0 100000 2372
+a 47 148 0 100000 9010
+a 47 172 0 100000 6363
+a 47 167 0 100000 8364
+a 47 188 0 100000 3388
+a 47 191 0 100000 9257
+a 47 147 0 100000 5413
+a 47 195 0 100000 5203
+a 47 154 0 100000 8479
+a 48 127 0 100000 4388
+a 48 184 0 100000 2303
+a 48 188 0 100000 5084
+a 48 169 0 100000 7676
+a 48 105 0 100000 2852
+a 48 193 0 100000 690
+a 48 158 0 100000 417
+a 48 153 0 100000 5
+a 48 111 0 100000 3129
+a 48 125 0 100000 2579
+a 48 166 0 100000 5544
+a 49 147 0 100000 7701
+a 49 167 0 100000 1900
+a 49 114 0 100000 233
+a 50 136 0 100000 3386
+a 50 144 0 100000 5104
+a 50 124 0 100000 3836
+a 50 103 0 100000 9195
+a 50 132 0 100000 9972
+a 50 105 0 100000 9808
+a 50 109 0 100000 7794
+a 50 185 0 100000 1427
+a 50 171 0 100000 861
+a 50 172 0 100000 8095
+a 50 137 0 100000 1247
+a 50 146 0 100000 1390
+a 50 164 0 100000 7230
+a 50 128 0 100000 6607
+a 50 192 0 100000 536
+a 50 162 0 100000 8900
+a 50 139 0 100000 4048
+a 50 168 0 100000 866
+a 50 163 0 100000 3045
+a 50 160 0 100000 5860
+a 50 154 0 100000 3524
+a 51 198 0 100000 8797
+a 51 113 0 100000 7824
+a 51 119 0 100000 6822
+a 51 121 0 100000 906
+a 51 126 0 100000 5758
+a 51 108 0 100000 482
+a 51 164 0 100000 7309
+a 51 179 0 100000 140
+a 51 151 0 100000 3541
+a 51 152 0 100000 4888
+a 51 191 0 100000 7396
+a 51 120 0 100000 450
+a 51 175 0 100000 164
+a 51 184 0 100000 2982
+a 51 109 0 100000 1592
+a 52 103 0 100000 5867
+a 52 168 0 100000 9405
+a 52 166 0 100000 1851
+a 52 107 0 100000 8869
+a 52 185 0 100000 8713
+a 52 105 0 100000 4844
+a 52 187 0 100000 5453
+a 52 177 0 100000 663
+a 52 161 0 100000 5850
+a 52 183 0 100000 4625
+a 52 133 0 100000 3978
+a 52 148 0 100000 9864
+a 52 155 0 100000 1239
+a 52 152 0 100000 1119
+a 52 120 0 100000 7484
+a 52 198 0 100000 1265
+a 52 149 0 100000 9158
+a 52 109 0 100000 8778
+a 52 181 0 100000 8651
+a 52 170 0 100000 5148
+a 52 122 0 100000 6264
+a 53 127 0 100000 6883
+a 53 171 0 100000 6015
+a 53 153 0 100000 1067
+a 53 184 0 100000 4740
+a 53 131 0 100000 2021
+a 53 176 0 100000 3635
+a 53 141 0 100000 6086
+a 53 159 0 100000 4074
+a 54 184 0 100000 9056
+a 54 137 0 100000 1830
+a 54 134 0 100000 1633
+a 54 106 0 100000 7750
+a 55 158 0 100000 8771
+a 55 103 0 100000 9981
+a 55 105 0 100000 4340
+a 55 141 0 100000 1298
+a 55 198 0 100000 2025
+a 55 136 0 100000 7016
+a 55 111 0 100000 9926
+a 55 152 0 100000 7367
+a 55 147 0 100000 7000
+a 55 133 0 100000 2114
+a 55 188 0 100000 6509
+a 55 102 0 100000 7100
+a 55 140 0 100000 9075
+a 55 195 0 100000 2705
+a 55 183 0 100000 3775
+a 55 199 0 100000 9215
+a 55 193 0 100000 2312
+a 56 162 0 100000 3207
+a 56 104 0 100000 2760
+a 56 146 0 100000 129
+a 56 115 0 100000 6086
+a 56 181 0 100000 8352
+a 56 142 0 100000 5707
+a 56 164 0 100000 8547
+a 56 168 0 100000 2167
+a 56 153 0 100000 2387
+a 56 151 0 100000 6697
+a 56 187 0 100000 3439
+a 56 160 0 100000 5918
+a 57 173 0 100000 1494
+a 57 111 0 100000 3886
+a 57 183 0 100000 8402
+a 57 169 0 100000 9896
+a 57 146 0 100000 376
+a 57 192 0 100000 5247
+a 58 150 0 100000 9423
+a 58 183 0 100000 9465
+a 58 148 0 100000 3885
+a 58 111 0 100000 4529
+a 58 129 0 100000 4093
+a 58 196 0 100000 3619
+a 58 102 0 100000 4690
+a 58 101 0 100000 9365
+a 59 120 0 100000 9651
+a 59 181 0 100000 1323
+a 59 155 0 100000 4233
+a 59 156 0 100000 6044
+a 59 194 0 100000 7289
+a 59 148 0 100000 1133
+a 59 198 0 100000 3136
+a 59 130 0 100000 4275
+a 59 184 0 100000 5271
+a 59 132 0 100000 4958
+a 59 101 0 100000 705
+a 59 186 0 100000 576
+a 59 179 0 100000 6456
+a 59 188 0 100000 5973
+a 59 173 0 100000 3298
+a 59 102 0 100000 125
+a 59 196 0 100000 6596
+a 59 195 0 100000 2748
+a 59 182 0 100000 5207
+a 59 127 0 100000 2055
+a 60 140 0 100000 198
+a 60 125 0 100000 5868
+a 60 112 0 100000 1114
+a 60 139 0 100000 6263
+a 60 135 0 100000 7430
+a 60 113 0 100000 9681
+a 60 173 0 100000 4299
+a 60 114 0 100000 3324
+a 60 148 0 100000 6396
+a 60 105 0 100000 8471
+a 60 137 0 100000 6050
+a 60 176 0 100000 1898
+a 60 144 0 100000 7048
+a 60 158 0 100000 1960
+a 60 142 0 100000 808
+a 60 199 0 100000 6892
+a 60 181 0 100000 9745
+a 60 183 0 100000 4567
+a 60 129 0 100000 8038
+a 60 182 0 100000 4638
+a 61 189 0 100000 622
+a 61 198 0 100000 2853
+a 61 124 0 100000 5593
+a 61 163 0 100000 5273
+a 61 190 0 100000 7555
+a 61 176 0 100000 5610
+a 61 147 0 100000 3824
+a 61 160 0 100000 2776
+a 61 164 0 100000 611
+a 61 112 0 100000 3067
+a 61 156 0 100000 7410
+a 62 104 0 100000 2965
+a 62 190 0 100000 5531
+a 62 162 0 100000 951
+a 62 191 0 100000 9851
+a 62 108 0 100000 2837
+a 62 165 0 100000 9780
+a 62 147 0 100000 2541
+a 62 169 0 100000 9168
+a 62 125 0 100000 3518
+a 62 102 0 100000 6357
+a 62 117 0 100000 7423
+a 62 149 0 100000 6295
+a 62 133 0 100000 3556
+a 62 172 0 100000 2760
+a 62 131 0 100000 1038
+a 62 112 0 100000 8003
+a 62 196 0 100000 5587
+a 62 157 0 100000 7749
+a 63 111 0 100000 2883
+a 63 195 0 100000 5347
+a 63 112 0 100000 5677
+a 63 115 0 100000 7834
+a 63 174 0 100000 112
+a 63 126 0 100000 6624
+a 63 117 0 100000 6148
+a 64 144 0 100000 6266
+a 64 164 0 100000 4807
+a 64 171 0 100000 3160
+a 64 119 0 100000 1438
+a 64 136 0 100000 7963
+a 64 197 0 100000 2673
+a 64 155 0 100000 5421
+a 64 133 0 100000 5839
+a 64 138 0 100000 1274
+a 64 127 0 100000 1906
+a 64 161 0 100000 1934
+a 64 118 0 100000 2475
+a 64 169 0 100000 6793
+a 64 116 0 100000 1502
+a 64 158 0 100000 9432
+a 64 148 0 100000 5157
+a 64 145 0 100000 2663
+a 64 174 0 100000 5351
+a 64 114 0 100000 390
+a 64 181 0 100000 6721
+a 64 113 0 100000 521
+a 65 132 0 100000 983
+a 65 177 0 100000 277
+a 65 199 0 100000 8990
+a 65 179 0 100000 7885
+a 65 136 0 100000 3413
+a 65 130 0 100000 751
+a 65 168 0 100000 9573
+a 65 111 0 100000 1534
+a 65 124 0 100000 3928
+a 65 106 0 100000 3456
+a 66 115 0 100000 3992
+a 66 104 0 100000 5112
+a 66 130 0 100000 7285
+a 66 163 0 100000 3213
+a 67 153 0 100000 5367
+a 67 164 0 100000 992
+a 67 179 0 100000 3091
+a 67 193 0 100000 6000
+a 67 107 0 100000 2802
+a 67 110 0 100000 6027
+a 67 176 0 100000 1881
+a 68 189 0 100000 8212
+a 68 117 0 100000 5853
+a 68 102 0 100000 1766
+a 68 147 0 100000 9440
+a 68 125 0 100000 4494
+a 68 196 0 100000 2219
+a 68 128 0 100000 8093
+a 68 145 0 100000 1500
+a 68 152 0 100000 7419
+a 68 112 0 100000 357
+a 69 169 0 100000 7598
+a 69 180 0 100000 4870
+a 69 147 0 100000 5253
+a 69 119 0 100000 1569
+a 69 123 0 100000 2218
+a 69 128 0 100000 3191
+a 69 178 0 100000 3243
+a 69 109 0 100000 2712
+a 70 104 0 100000 3090
+a 70 161 0 100000 8413
+a 70 160 0 100000 5623
+a 70 164 0 100000 4675
+a 70 101 0 100000 3196
+a 70 151 0 100000 6580
+a 70 182 0 100000 2231
+a 70 189 0 100000 4394
+a 70 176 0 100000 7897
+a 70 118 0 100000 2776
+a 70 135 0 100000 1215
+a 70 163 0 100000 3973
+a 70 147 0 100000 6983
+a 70 145 0 100000 9550
+a 70 177 0 100000 9000
+a 71 189 0 100000 9496
+a 71 176 0 100000 7401
+a 71 168 0 100000 3386
+a 71 171 0 100000 857
+a 71 106 0 100000 1626
+a 71 180 0 100000 4392
+a 71 117 0 100000 1387
+a 71 120 0 100000 2961
+a 72 114 0 100000 1334
+a 72 155 0 100000 1601
+a 72 125 0 100000 4500
+a 72 193 0 100000 6333
+a 72 142 0 100000 2443
+a 72 143 0 100000 6087
+a 72 126 0 100000 3103
+a 72 122 0 100000 7043
+a 72 144 0 100000 2262
+a 72 149 0 100000 8288
+a 72 169 0 100000 7041
+a 72 191 0 100000 1744
+a 72 102 0 100000 800
+a 72 112 0 100000 6299
+a 72 135 0 100000 4666
+a 73 149 0 100000 7120
+a 73 135 0 100000 4142
+a 73 126 0 100000 4345
+a 73 163 0 100000 2025
+a 73 181 0 100000 6997
+a 73 183 0 100000 4271
+a 73 137 0 100000 1721
+a 73 108 0 100000 8579
+a 73 157 0 100000 3323
+a 73 189 0 100000 7748
+a 73 193 0 100000 2716
+a 73 133 0 100000 7771
+a 74 179 0 100000 6114
+a 74 165 0 100000 2864
+a 74 143 0 100000 8298
+a 74 185 0 100000 25
+a 74 122 0 100000 6212
+a 74 153 0 100000 3894
+a 74 171 0 100000 4548
+a 74 119 0 100000 118
+a 74 199 0 100000 993
+a 74 142 0 100000 450
+a 74 157 0 100000 239
+a 74 133 0 100000 4863
+a 74 149 0 100000 6706
+a 74 131 0 100000 6898
+a 74 170 0 100000 3870
+a 74 155 0 100000 1070
+a 74 160 0 100000 8776
+a 74 186 0 100000 1287
+a 74 156 0 100000 168
+a 74 115 0 100000 9426
+a 74 178 0 100000 8333
+a 75 158 0 100000 8894
+a 75 118 0 100000 5751
+a 75 183 0 100000 701
+a 75 136 0 100000 7606
+a 75 114 0 100000 6108
+a 75 187 0 100000 1344
+a 75 139 0 100000 6359
+a 76 154 0 100000 2123
+a 76 108 0 100000 8824
+a 76 177 0 100000 7541
+a 76 164 0 100000 2126
+a 77 112 0 100000 4554
+a 77 135 0 100000 1530
+a 77 174 0 100000 8435
+a 77 163 0 100000 2591
+a 77 115 0 100000 2699
+a 77 148 0 100000 1129
+a 77 151 0 100000 3926
+a 77 122 0 100000 5591
+a 77 171 0 100000 485
+a 77 185 0 100000 3582
+a 77 159 0 100000 6813
+a 77 186 0 100000 9253
+a 77 192 0 100000 8683
+a 77 189 0 100000 2594
+a 77 126 0 100000 3857
+a 77 187 0 100000 4829
+a 77 101 0 100000 3127
+a 77 168 0 100000 9562
+a 78 130 0 100000 4773
+a 78 181 0 100000 8278
+a 78 174 0 100000 9425
+a 78 157 0 100000 960
+a 78 153 0 100000 6664
+a 78 193 0 100000 1091
+a 78 191 0 100000 1146
+a 78 167 0 100000 2079
+a 78 187 0 100000 7846
+a 78 180 0 100000 6890
+a 78 140 0 100000 3681
+a 78 123 0 100000 9889
+a 78 136 0 100000 2581
+a 78 114 0 100000 8237
+a 78 185 0 100000 7211
+a 78 179 0 100000 2871
+a 78 163 0 100000 9106
+a 78 176 0 100000 613
+a 78 113 0 100000 6406
+a 78 120 0 100000 2646
+a 79 129 0 100000 9500
+a 79 117 0 100000 642
+a 79 112 0 100000 4390
+a 79 163 0 100000 8981
+a 79 134 0 100000 692
+a 79 151 0 100000 9675
+a 79 141 0 100000 9335
+a 79 195 0 100000 592
+a 79 148 0 100000 9350
+a 80 163 0 100000 7627
+a 80 115 0 100000 1213
+a 80 176 0 100000 6650
+a 80 154 0 100000 1461
+a 80 129 0 100000 5116
+a 80 190 0 100000 8975
+a 80 110 0 100000 6622
+a 80 172 0 100000 5146
+a 80 179 0 100000 9326
+a 80 194 0 100000 9545
+a 80 193 0 100000 9695
+a 80 105 0 100000 6431
+a 80 153 0 100000 8063
+a 80 151 0 100000 268
+a 80 141 0 100000 3870
+a 80 127 0 100000 7778
+a 80 186 0 100000 1408
+a 80 103 0 100000 8091
+a 80 147 0 100000 7096
+a 81 176 0 100000 5892
+a 81 104 0 100000 9989
+a 81 148 0 100000 2980
+a 81 117 0 100000 4901
+a 81 168 0 100000 7736
+a 81 183 0 100000 2080
+a 81 109 0 100000 4254
+a 81 136 0 100000 4219
+a 81 113 0 100000 599
+a 81 194 0 100000 945
+a 81 131 0 100000 6901
+a 81 120 0 100000 8066
+a 81 112 0 100000 6948
+a 81 163 0 100000 290
+a 81 167 0 100000 3149
+a 81 192 0 100000 3799
+a 81 199 0 100000 9046
+a 81 114 0 100000 3217
+a 82 155 0 100000 1806
+a 82 149 0 100000 8452
+a 82 131 0 100000 9547
+a 82 164 0 100000 6171
+a 82 123 0 100000 746
+a 82 192 0 100000 7626
+a 82 109 0 100000 6452
+a 82 183 0 100000 6875
+a 82 199 0 100000 9335
+a 82 106 0 100000 8829
+a 82 140 0 100000 4045
+a 82 139 0 100000 1519
+a 82 198 0 100000 8376
+a 82 132 0 100000 1494
+a 83 134 0 100000 8175
+a 83 148 0 100000 9715
+a 83 137 0 100000 5879
+a 83 187 0 100000 6419
+a 83 158 0 100000 8364
+a 83 109 0 100000 1339
+a 83 189 0 100000 3531
+a 83 104 0 100000 8448
+a 83 142 0 100000 7624
+a 84 122 0 100000 9325
+a 84 155 0 100000 6505
+a 84 197 0 100000 2423
+a 84 162 0 100000 7925
+a 85 120 0 100000 5058
+a 85 141 0 100000 7909
+a 85 116 0 100000 744
+a 85 117 0 100000 3459
+a 85 178 0 100000 6907
+a 85 105 0 100000 5893
+a 85 111 0 100000 5745
+a 85 119 0 100000 5858
+a 85 128 0 100000 2066
+a 85 168 0 100000 3736
+a 85 172 0 100000 7023
+a 85 109 0 100000 4184
+a 85 197 0 100000 5602
+a 86 139 0 100000 7483
+a 86 168 0 100000 3950
+a 86 157 0 100000 9064
+a 86 162 0 100000 2213
+a 87 103 0 100000 2133
+a 87 152 0 100000 4604
+a 87 169 0 100000 5604
+a 87 146 0 100000 2714
+a 87 166 0 100000 5340
+a 87 199 0 100000 5069
+a 87 148 0 100000 9419
+a 87 104 0 100000 9528
+a 87 141 0 100000 9671
+a 87 107 0 100000 7085
+a 87 131 0 100000 4186
+a 87 114 0 100000 2238
+a 87 191 0 100000 2804
+a 87 132 0 100000 1397
+a 87 185 0 100000 9858
+a 88 139 0 100000 2066
+a 88 144 0 100000 892
+a 88 197 0 100000 5596
+a 89 184 0 100000 9075
+a 89 179 0 100000 4975
+a 89 161 0 100000 2205
+a 89 176 0 100000 7314
+a 89 126 0 100000 6811
+a 89 187 0 100000 8180
+a 89 102 0 100000 7763
+a 89 173 0 100000 8398
+a 89 181 0 100000 7363
+a 89 129 0 100000 7490
+a 89 162 0 100000 8354
+a 90 187 0 100000 7647
+a 90 153 0 100000 5311
+a 90 192 0 100000 2193
+a 90 141 0 100000 4888
+a 90 165 0 100000 8780
+a 90 102 0 100000 5458
+a 90 125 0 100000 7208
+a 90 158 0 100000 1113
+a 90 198 0 100000 6401
+a 90 111 0 100000 1515
+a 90 138 0 100000 3238
+a 90 180 0 100000 3045
+a 90 186 0 100000 3
+a 90 178 0 100000 8749
+a 90 177 0 100000 1632
+a 90 106 0 100000 4327
+a 90 196 0 100000 470
+a 90 163 0 100000 7911
+a 91 113 0 100000 8296
+a 91 127 0 100000 2971
+a 91 146 0 100000 3356
+a 91 182 0 100000 2580
+a 91 196 0 100000 8202
+a 91 116 0 100000 3104
+a 92 191 0 100000 8165
+a 92 166 0 100000 2242
+a 92 197 0 100000 9395
+a 93 136 0 100000 8664
+a 93 129 0 100000 7802
+a 93 170 0 100000 4699
+a 93 124 0 100000 5870
+a 93 137 0 100000 9775
+a 93 115 0 100000 7499
+a 93 110 0 100000 9601
+a 93 101 0 100000 9002
+a 93 150 0 100000 9882
+a 93 104 0 100000 1079
+a 93 193 0 100000 7464
+a 93 105 0 100000 7327
+a 93 166 0 100000 1808
+a 94 169 0 100000 7589
+a 94 141 0 100000 2981
+a 94 180 0 100000 9358
+a 94 176 0 100000 8554
+a 94 124 0 100000 2707
+a 94 122 0 100000 7508
+a 94 166 0 100000 3171
+a 94 165 0 100000 9695
+a 94 154 0 100000 8485
+a 94 170 0 100000 2444
+a 94 177 0 100000 3552
+a 94 114 0 100000 6951
+a 94 164 0 100000 6526
+a 94 189 0 100000 8986
+a 94 110 0 100000 4338
+a 94 109 0 100000 2554
+a 94 116 0 100000 7506
+a 94 133 0 100000 1605
+a 94 156 0 100000 9888
+a 95 157 0 100000 8289
+a 95 116 0 100000 1995
+a 95 194 0 100000 8381
+a 95 132 0 100000 7280
+a 95 134 0 100000 6754
+a 95 136 0 100000 1773
+a 95 144 0 100000 9910
+a 95 156 0 100000 1163
+a 95 124 0 100000 9214
+a 95 146 0 100000 6315
+a 95 126 0 100000 2269
+a 95 140 0 100000 637
+a 95 183 0 100000 924
+a 95 163 0 100000 8392
+a 95 145 0 100000 8797
+a 96 156 0 100000 6213
+a 96 129 0 100000 7538
+a 96 123 0 100000 8516
+a 96 169 0 100000 3383
+a 96 142 0 100000 2851
+a 96 124 0 100000 8365
+a 96 184 0 100000 4157
+a 97 182 0 100000 3135
+a 97 130 0 100000 3328
+a 97 170 0 100000 5735
+a 97 174 0 100000 2525
+a 97 151 0 100000 5910
+a 97 141 0 100000 4351
+a 97 126 0 100000 8844
+a 97 155 0 100000 629
+a 97 149 0 100000 9449
+a 97 108 0 100000 422
+a 97 131 0 100000 775
+a 97 154 0 100000 9304
+a 97 172 0 100000 5967
+a 97 123 0 100000 793
+a 97 128 0 100000 7372
+a 97 121 0 100000 835
+a 97 157 0 100000 690
+a 97 165 0 100000 1889
+a 97 156 0 100000 2855
+a 97 106 0 100000 3640
+a 97 105 0 100000 9742
+a 97 122 0 100000 9646
+a 97 107 0 100000 3286
+a 98 131 0 100000 9078
+a 98 196 0 100000 5946
+a 98 113 0 100000 9995
+a 98 177 0 100000 825
+a 98 119 0 100000 7372
+a 98 188 0 100000 2749
+a 98 130 0 100000 7285
+a 98 120 0 100000 7653
+a 98 152 0 100000 3129
+a 98 104 0 100000 9652
+a 98 108 0 100000 7514
+a 98 117 0 100000 7705
+a 98 171 0 100000 1725
+a 99 105 0 100000 5557
+a 99 109 0 100000 5355
+a 99 114 0 100000 8765
+a 99 112 0 100000 100
+a 99 187 0 100000 8348
+a 99 199 0 100000 419
+a 99 167 0 100000 2556
+a 99 129 0 100000 196
+a 100 184 0 100000 5607
+a 100 150 0 100000 749
+a 100 110 0 100000 2973
+a 100 126 0 100000 9347
+a 100 128 0 100000 3349
+a 100 133 0 100000 3154
+a 100 138 0 100000 8997
+a 100 146 0 100000 4125
+a 100 151 0 100000 8931
+a 100 160 0 100000 1750
+a 100 170 0 100000 5508
+a 100 178 0 100000 1772
+a 100 199 0 100000 9538
+a 100 200 0 100000 3509
