import java.awt.Graphics;
import java.awt.Color;
//
public   class po {
//                                          fond
   static int gain ;
   static int  nbPoints;
   static  int X[] = new int[1000];
   static  int Y[] = new int[1000];
   static  String N[] = new String [1500];
// pour routine plus court chemin
   static int kilo [] = new int [1000];
   static int candidat [] = new int [1000];
   static int sortie [] = new int [1000];
   static int totKm, totTemps ;
//
   static  int nbLiens;
   static  int D [] = new int [1500];
   static  int F [] = new int [1500];
   static  int L [] = new int [1500];
   static  int T [] = new int [1500];
   static  boolean A [] = new boolean [1500];
   static  boolean U [] = new boolean [1500];
//   itineraire
    static int lesEtapes [] = new int [2000];
    static int nbEtapes  ;
    static int intersol[] = new int [3];
    static int finalsol[] = new int [3];
//
   void raz () {
     nbEtapes = 0;
     totKm = 0;
     totTemps = 0;
  }
//
   void redessin (Graphics gg) {
     fond (gg);
  }
//
//
   po () {
   }

   void charger () {
     nbPoints = 0;
     nbLiens = 0;
   raz();
   gain = Fr2.scroll.getValue();
// les points
unP(1,296,1839," ");
unP(2,316,2402," ");
unP(3,354,1963," ");
unP(4,509,1868," ");
unP(5,549,1828," ");
unP(6,599,2424," ");
unP(7,601,2433," ");
unP(8,603,2433," ");
unP(9,623,2381," ");
unP(10,776,2363," ");
unP(11,796,2063," ");
unP(12,831,2159," ");
unP(13,960,2398," ");
unP(14,1121,1751," ");
unP(15,1134,1663," ");
unP(16,1183,1664," ");
unP(17,639,2558,"A1 x A2");
unP(18,654,2623,"A1 x A22");
unP(19,645,2610,"A1 x N17");
unP(20,619,2468,"A1 x N324");
unP(21,637,2585,"A1 x N39");
unP(22,645,2602,"A1 x N43");
unP(23,568,2394,"A10 x A11");
unP(24,597,2412,"A10 x A6");
unP(25,562,2323,"A10 x A71");
unP(26,414,2160,"A10 x N11");
unP(27,589,2407,"A10 x N118");
unP(28,568,2384,"A10 x N191");
unP(29,596,2412,"A10 x N20");
unP(30,525,2292,"A10 x N252");
unP(31,618,2442,"A104 x N2");
unP(32,621,2438,"A104 x N3");
unP(33,477,2352,"A11 x D1");
unP(34,503,2360,"A11 x D955");
unP(35,371,2350,"A11 x N162");
unP(36,374,2277,"A11 x N23");
unP(37,582,2427,"A12 x A13");
unP(38,578,2422,"A12 x N10");
unP(39,444,2478,"A13 x A932");
unP(40,538,2447,"A13 x N13");
unP(41,575,2436,"A13 x N13");
unP(42,516,2472,"A13 x N154");
unP(43,500,2484,"A13 x N175");
unP(44,475,2489,"A13 x N182");
unP(45,582,2427,"A13 x N186");
unP(46,656,2572,"A2 x A26");
unP(47,670,2584,"A2 x N30");
unP(48,686,2594,"A2 x N49");
unP(49,626,2604,"A21 x A26");
unP(50,650,2601,"A21 x N455");
unP(51,645,2625,"A25 x N41");
unP(52,625,2637,"A25 x N42");
unP(53,815,2328,"A26 x A31");
unP(54,668,2535,"A26 x D1");
unP(55,803,2342,"A26 x D10");
unP(56,632,2594,"A26 x N17");
unP(57,664,2541,"A26 x N29");
unP(58,588,2636,"A26 x N42");
unP(59,580,2647,"A26 x N43");
unP(60,879,2484,"A30 x A31");
unP(61,795,2232,"A31 x A36");
unP(62,879,2474,"A31 x A4");
unP(63,792,2228,"A31 x A6");
unP(64,837,2338,"A31 x D417");
unP(65,863,2399,"A31 x D974");
unP(66,625,2489,"A31 x N31");
unP(67,814,2285,"A31 x N74");
unP(68,886,2466,"A314 x A4");
unP(69,926,2469,"A32 x A4");
unP(70,996,2406,"A35 x A352");
unP(71,979,2321,"A35 x A36");
unP(72,978,2345,"A35 x D1BI");
unP(73,990,2405,"A352 x D392");
unP(74,840,2242,"A36 x D475");
unP(75,904,2271,"A36 x D492");
unP(76,960,2312,"A36 x N466");
unP(77,969,2317,"A36 x N66");
unP(78,768,2252,"A38 x A6");
unP(79,608,2424,"A4 x A86");
unP(80,677,2454,"A4 x D1");
unP(81,860,2364,"A4 x D164");
unP(82,900,2467,"A4 x D19");
unP(83,620,2425,"A4 x D51");
unP(84,753,2450,"A4 x D77");
unP(85,951,2445,"A4 x D8");
unP(86,839,2464,"A4 x D908");
unP(87,651,2439,"A4 x N3");
unP(88,639,2430,"A4 x N34");
unP(89,814,2459,"A4 x N35");
unP(90,745,2451,"A4 x N44");
unP(91,942,2459,"A4 x N61");
unP(92,834,2123,"A40 x ST");
unP(93,900,2138,"A40 x A40");
unP(94,908,2132,"A40 x A41");
unP(95,797,2147,"A40 x N179");
unP(96,855,2134,"A40 x N84");
unP(97,825,2104,"A42 x N84");
unP(98,834,2066,"A43 x A48");
unP(99,791,2068,"A47 x A7");
unP(100,862,2028,"A48 x A480");
unP(101,864,1812,"A50 x A52");
unP(102,844,1826,"A51 x A7");
unP(103,861,1837,"A52 x A8");
unP(104,825,1851,"A54 x A7");
unP(105,839,1826,"A55 x A7");
unP(106,632,2358,"A6 x A70");
unP(107,597,2418,"A6 x N186");
unP(108,613,2387,"A6 x N37");
unP(109,876,2260,"A6 x N57");
unP(110,690,2318,"A6 x N6");
unP(111,789,2143,"A6 x N6");
unP(112,656,2340,"A6 x N60");
unP(113,610,2396,"A6 x N7");
unP(114,653,1794,"A61 x A9");
unP(115,834,1844,"A7 x A8");
unP(116,794,1976,"A7 x N104");
unP(117,564,2316,"A71 x N271");
unP(118,389,2343,"A81 x D24");
unP(119,409,2336,"A81 x D4");
unP(120,349,2345,"A81 x N157");
unP(121,600,2435,"A86 x N14");
unP(122,889,1898,"D101 x N96");
unP(123,553,1843,"D11 x N126");
unP(124,484,1794,"D117 x N117");
unP(125,457,2433,"D12 x N138");
unP(126,702,2171,"D12 x N79");
unP(127,884,1886,"D12 x N96");
unP(128,787,1924,"D13A x N7");
unP(129,430,2460,"D16 x N13");
unP(130,300,2271,"D16 x N137");
unP(131,965,1894,"D16 x N202");
unP(132,465,2508,"D173 x N15");
unP(133,323,2506,"D2 x N13");
unP(134,532,1917,"D20 x N20");
unP(135,899,2012,"D213 x N91");
unP(136,943,1869,"D221 x N85");
unP(137,737,2211,"D262 x N81");
unP(138,715,1921,"D29 x N106");
unP(139,337,1963,"D3 x N250");
unP(140,712,1826,"D300 x N112");
unP(141,499,2271,"D31 x N152");
unP(142,770,2302,"D32 x N71");
unP(143,513,2480,"D321 x N15");
unP(144,857,1880,"D33 x N100");
unP(145,687,2453,"D330 x N3");
unP(146,587,2414,"D34 x N118");
unP(147,447,2256,"D35 x N152");
unP(148,799,1819,"D35 x N268");
unP(149,534,2161,"D36 x D5");
unP(150,732,2011,"D36 x N88");
unP(151,621,2403,"D402 x N105");
unP(152,616,2402,"D402 x N6");
unP(153,160,2411,"D42 x N12");
unP(154,626,2236,"D43 x N151");
unP(155,648,2147,"D46 x N145");
unP(156,847,2313,"D460 x N19");
unP(157,868,2230,"D467 x N83");
unP(158,651,1766,"D50 x N9");
unP(159,620,2419,"D51 x N4");
unP(160,866,2054,"D520 x N6");
unP(161,797,1997,"D533 x N532");
unP(162,692,2020,"D56 x N102");
unP(163,821,1853,"D572 x N113");
unP(164,363,2432,"D577 x N174");
unP(165,545,1864,"D630 x N88");
unP(166,903,2318,"D64 x N57");
unP(167,736,2269,"D70 x N6");
unP(168,656,1779,"D709 x N139");
unP(169,1149,1756,"D71 x N197");
unP(170,828,2010,"D76 x N532");
unP(171,512,2260,"D764 x N76");
unP(172,162,2331,"D765 x N165");
unP(173,434,1923,"D8 x A62");
unP(174,732,2097,"D8 x A72");
unP(175,785,2032,"D82 x N82");
unP(176,793,2029,"D82 x N86");
unP(177,711,2013,"D906 x N102");
unP(178,718,1998,"D906 x N88");
unP(179,465,2394,"D912 x D932");
unP(180,618,2646,"D916 x A25");
unP(181,539,2496,"D921 x N31");
unP(182,630,2071,"D922 x N89");
unP(183,631,2523,"D934 x A1");
unP(184,627,2501,"D935 x A1");
unP(185,643,2080,"D941 x N89");
unP(186,488,2138,"D942 x N147");
unP(187,667,2594,"D957 x N45");
unP(188,816,2222,"D973 x N73");
unP(189,693,2179,"D973 x N79");
unP(190,937,1810,"D98 x N98");
unP(191,584,2553,"N1 x N235");
unP(192,597,2547,"N1 x N25");
unP(193,593,2458,"N1 x N322");
unP(194,560,2607,"N1 x N39");
unP(195,513,2322,"N10 x N157");
unP(196,561,2391,"N10 x N191");
unP(197,565,2412,"N10 x N191");
unP(198,774,1884,"N100 x N86");
unP(199,790,1953,"N102 x N7");
unP(200,674,2042,"N102 x N9");
unP(201,797,1975,"N104 x N7");
unP(202,790,1976,"N104 x N86");
unP(203,646,2374,"N105 x N6");
unP(204,688,1943,"N106 x N88");
unP(205,688,1852,"N109 x N9");
unP(206,339,2138,"N11 x N137");
unP(207,731,1851,"N110 x N113");
unP(208,688,1813,"N112 x N312");
unP(209,747,1856,"N113 x N313");
unP(210,799,1852,"N113 x N453");
unP(211,816,1852,"N113 x N569");
unP(212,689,1831,"N113 x N9");
unP(213,497,1801,"N117 x N127");
unP(214,522,1835,"N117 x N20");
unP(215,515,2421,"N12 x N154");
unP(216,271,2365,"N12 x N164");
unP(217,243,2393,"N12 x N176");
unP(218,566,2423,"N12 x N191");
unP(219,563,2014,"N120 x N121");
unP(220,539,2047,"N120 x N20");
unP(221,478,2464,"N13 x N138");
unP(222,582,2431,"N13 x N186");
unP(223,338,2177,"N137 x N148");
unP(224,335,2207,"N137 x N160");
unP(225,301,2290,"N137 x N171");
unP(226,286,2398,"N137 x N176");
unP(227,504,2484,"N138 x N238");
unP(228,650,1780,"N139 x N9");
unP(229,534,2002,"N140 x N20");
unP(230,526,2135,"N145 x N20");
unP(231,678,2166,"N145 x N7");
unP(232,516,2473,"N15 x N154");
unP(233,542,2189,"N151 x N20");
unP(234,950,2376,"N159 x N420");
unP(235,958,2370,"N159 x N59");
unP(236,125,2376,"N164 x N165");
unP(237,279,2273,"N165 x N171");
unP(238,181,2323,"N165 x N24");
unP(239,245,2335,"N166 x N24");
unP(240,640,2542,"N17 x N29");
unP(241,359,2446,"N174 x N175");
unP(242,458,2486,"N175 x N178");
unP(243,464,2497,"N178 x N182");
unP(244,796,2147,"N179 x N79");
unP(245,1166,1743,"N193 x N197");
unP(246,1184,1750,"N193 x N198");
unP(247,1173,1625,"N196 x N198");
unP(248,1195,1707,"N198 x N200");
unP(249,648,2471,"N2 x N324");
unP(250,554,1729,"N20 x N22");
unP(251,876,2078,"N201 x N211");
unP(252,876,2074,"N201 x N504");
unP(253,932,2112,"N205 x N212");
unP(254,907,2134,"N205 x N503");
unP(255,904,2152,"N206 x N5");
unP(256,683,2145,"N209 x N7");
unP(257,875,2078,"N211 x N504");
unP(258,806,1833,"N268 x N568");
unP(259,506,2507,"N27 x N315");
unP(260,524,2516,"N28 x N29");
unP(261,537,2527,"N28 x N29");
unP(262,977,1851,"N285 x N85");
unP(263,688,2414,"N34 x N4");
unP(264,831,1827,"N368 x N568");
unP(265,868,1813,"N396 x N96");
unP(266,862,2411,"N4 x N74");
unP(267,737,2416,"N4 x N77");
unP(268,873,2432,"N411 x N57");
unP(269,598,2635,"N42 x N43");
unP(270,908,2363,"N420 x N57");
unP(271,756,2541,"N43 x N51");
unP(272,921,2282,"N463 x N83");
unP(273,758,2056,"N498 x N82");
unP(274,837,2238,"N5 x N73");
unP(275,863,2084,"N504 x N516");
unP(276,832,2113,"N504 x N75");
unP(277,850,2069,"N516 x N75");
unP(278,940,1839,"N555 x N7");
unP(279,942,2454,"N56 x N61");
unP(280,936,2460,"N56 x N74");
unP(281,865,1824,"N560 x N96");
unP(282,936,2030,"N566 x N6");
unP(283,916,2346,"N57 x N66");
unP(284,783,2218,"N6 x N74");
unP(285,853,2065,"N6 x N75");
unP(286,830,2068,"N6 x N85");
unP(287,901,2070,"N6 x N90");
unP(288,962,2320,"N66 x N83");
unP(289,739,2109,"N7 x N82");
unP(290,675,2164,"N7 x N9");
unP(291,789,1936,"N7 x N93");
unP(292,858,1837,"N7 x N96");
unP(293,922,1828,"N7 x N97");
unP(294,993,1864,"N7 x N99");
unP(295,764,2197,"N70 x N80");
unP(296,830,2109,"N75 x N84");
unP(297,832,2119,"N75 x N84");
unP(298,857,2039,"N75 x N85");
unP(299,886,1919,"N75 x N85");
unP(300,852,2042,"N85 x D592");
unP(301,787,1942,"N86 x N93");
unP(302,671,1943,"N88 x N9");
unP(303,681,2591,"ECH A2 x A23 DENAIN");
unP(304,680,2590,"ECH A2 x N30 DENAIN");
unP(305,693,2601,"ECH A2 x N30 VALENCI");
unP(306,606,2661,"ECH A25 x N225 BERGUE");
unP(307,825,2144,"ECH A40 BOURG NORD");
unP(308,857,2035,"ECH A48 x N532 GRENOB");
unP(309,863,2017,"ECH A480 x N75 CLAIX");
unP(310,789,2155,"ECH A6 MACON NORD");
unP(311,811,2079,"ECH ACCES SATOLAS");
unP(312,870,2070,"ECH AIGUEBELETTE");
unP(313,891,2110,"ECH ANNECY NORD");
unP(314,563,2343,"ECH ARTENAY");
unP(315,698,2311,"ECH AUXERRE SUD");
unP(316,724,2281,"ECH AVALLON");
unP(317,805,1890,"ECH AVIGNON NORD");
unP(318,807,1881,"ECH AVIGNON SUD");
unP(319,677,1815,"ECH BEZIERS EST");
unP(320,827,2131,"ECH BOURG SUD");
unP(321,976,1853,"ECH CANNES");
unP(322,926,1830,"ECH CANNET DES MAURES");
unP(323,786,2198,"ECH CHALON/SAONE SUD");
unP(324,794,2039,"ECH CHANAS");
unP(325,461,2206,"ECH CHATELLERAULT NORD");
unP(326,625,2480,"ECH CHEVRIERES");
unP(327,854,2068,"ECH CHIMILIN");
unP(328,267,1822,"ECH E1 BEHOBIE");
unP(329,517,1880,"ECH E10 (N20)");
unP(330,873,2124,"ECH E11 ELOISE");
unP(331,333,2273,"ECH E2 ANCENIS");
unP(332,690,2096,"ECH E2 THIERS OUEST");
unP(333,396,2152,"ECH E22 NIORT");
unP(334,385,2141,"ECH E23 (A10 X N248)");
unP(335,365,2089,"ECH E25 SAINTES");
unP(336,893,2118,"ECH E26 ALLONZIER");
unP(337,370,2042,"ECH E27 MIRAMBEAU");
unP(338,393,1951,"ECH E3 LANGON");
unP(339,703,2098,"ECH E3 THIERS EST");
unP(340,374,1991,"ECH E34 BORDEAUX");
unP(341,742,2083,"ECH E6 FEURS");
unP(342,460,1908,"ECH E7 AGEN");
unP(343,744,2072,"ECH E7 MONTROND");
unP(344,379,1819,"ECH E7 PAU");
unP(345,820,2100,"ECH E7 PLAINE DE L'AIN");
unP(346,639,2629,"ECH E8 ARMENTIERE");
unP(347,660,2564,"ECH E9 (D917)");
unP(348,500,1895,"ECH E9 CASTELSARRASIN");
unP(349,879,2086,"ECH GRESY");
unP(350,841,2067,"ECH LA TOUR DU PIN");
unP(351,745,2450,"ECH LA VEUVE");
unP(352,439,2341,"ECH LE MANS NORD");
unP(353,880,1873,"ECH MANOSQUE");
unP(354,793,1946,"ECH MONTELIMAR NORD");
unP(355,793,1945,"ECH MONTELIMAR SUD");
unP(356,886,2063,"ECH MONTMELIAN");
unP(357,765,1873,"ECH NIMES EST");
unP(358,762,1870,"ECH NIMES OUEST");
unP(359,642,1743,"ECH PERPIGNAN OUEST");
unP(360,444,2179,"ECH POITIERS NORD");
unP(361,886,2056,"ECH PONTCHARRA");
unP(362,722,2474,"ECH REIMS CENTRE");
unP(363,845,2047,"ECH RIVES");
unP(364,578,2268,"ECH SALBRIS (A71 x N20");
unP(365,708,1832,"ECH SETE");
unP(366,709,1831,"ECH SETE (A9 x N113)");
unP(367,891,2106,"ECH SEYNOD");
unP(368,786,2455,"ECH STE MENEHOULD");
unP(369,799,2011,"ECH TAIN");
unP(370,801,2000,"ECH VALENCE NORD");
unP(371,733,1851,"ECH VENDARGUES");
unP(372,855,1850,"ECH VENELLES");
unP(373,794,2063,"ECH VIENNE NORD");
unP(374,795,2058,"ECH VIENNE SUD");
unP(375,548,1822,"ECH VILLEFRANCHE");
unP(376,785,2111,"ECH VILLEFRANCHE");
unP(377,1013,1879,"ECH VINTIMILLE");
unP(378,857,2035,"ECH VOREPPE");
unP(379,918,2476,"FRO ALLEMA.(CREUTZWALD");
unP(380,1023,2450,"FRO ALLEMA.(LAUTERBOUR");
unP(381,987,2320,"FRO ALLEMA.(OTTMARSHEI");
unP(382,932,2474,"FRO ALLEMA.(SAARBRUCKE");
unP(383,934,2476,"FRO ALLEMA.(SAARBRUCKE");
unP(384,938,2474,"FRO ALLEMA.(SAARBRUCKE");
unP(385,892,2502,"FRO ALLEMA.(SIERCK NOR");
unP(386,991,2348,"FRO ALLEMAGNE (BREISAC");
unP(387,795,2533,"FRO BELGIQUE (BOUILLON");
unP(388,656,2643,"FRO BELGIQUE (HALLUIN)");
unP(389,658,2641,"FRO BELGIQUE (REKKEM)");
unP(390,692,2601,"FRO BELGIQUE (ST AYBER");
unP(391,716,2595,"FRO BELGIQUE(BETTIGNIE");
unP(392,613,2674,"FRO BELGIQUE(BRAY DUNE");
unP(393,778,2578,"FRO BELGIQUE(FUMAY)");
unP(394,951,2110,"FRO ENTREE TUNNEL MT B");
unP(395,549,1727,"FRO ESPAG.PAS DE LA CA");
unP(396,668,1716,"FRO ESPAGNE (CEBERE)");
unP(397,465,1769,"FRO ESPAGNE (FOS)");
unP(398,643,1718,"FRO ESPAGNE (LE PERTHU");
unP(399,947,2001,"FRO ITALIE (MONTGENEVR");
unP(400,1022,1914,"FRO ITALIE COL DE TEND");
unP(401,1014,1875,"FRO ITALIE PT ST LUDOV");
unP(402,877,2497,"FRO LUXEMB.(LUXEMBOURG");
unP(403,875,2500,"FRO LUXEMBOURG DUDELAN");
unP(404,991,2299,"FRO SUISSE (BASEL)");
unP(405,900,2148,"FRO SUISSE (DOUVAINE)");
unP(406,892,2147,"FRO SUISSE (GENEVE)");
unP(407,908,2200,"FRO SUISSE (JOUGNE)");
unP(408,891,2169,"FRO SUISSE (LA CURE)");
unP(409,956,2126,"FRO SUISSE (VALLORCINE");
unP(410,951,2290,"FRO SUISSE(DELLE)");
unP(411,807,1880,"OUVRPONT DE BOMPAS");
unP(412,861,2472,"PEAGBEAUMONT");
unP(413,456,2484,"PEAGBEUZEVILLE");
unP(414,551,2443,"PEAGBUCHELAY");
unP(415,700,2463,"PEAGDORMANS");
unP(416,424,2473,"PEAGDOZULE");
unP(417,640,2592,"PEAGFRESNES");
unP(418,519,2467,"PEAGHEUDEBOUVILLE");
unP(419,670,2092,"PEAGMARTRES D'ARTIERES");
unP(420,656,2445,"PEAGMONTREUIL AUX LION");
unP(421,396,2283,"PEAGPELLOUAILLES");
unP(422,988,2433,"PEAGSCHWINDRATZHEIM");
unP(423,472,2249,"PEAGSORIGNY");
unP(424,666,2581,"PEAGTHUN L'EVEQUE");
unP(425,940,2030,"PEAGTUNNEL DU FREJUS");
unP(426,712,2491,"RASEBERRY AU BAC");
unP(427,863,1978,"RASECOL DE LA CROIX HT");
unP(428,1016,1892,"RASECOL DE TENDE");
unP(429,1162,1704,"RASECOL DE VIZZANOVA");
unP(430,946,2078,"RASECOL DU PT ST BERNA");
unP(431,362,1761,"RASECOL DU SOMPORT");
unP(432,966,1862,"RASEDU PILON");
unP(433,624,1830,"RASELABASTIDE ROUAIROU");
unP(434,718,2132,"RASELIMITE DEP. 42/03");
unP(435,563,2568,"ABBEVILLE");
unP(436,562,2392,"ABLIS");
unP(437,988,2302,"AEROP BALE MULHOUS");
unP(438,613,2445,"AEROPORT C DE GAUL");
unP(439,461,1912,"AGEN");
unP(440,389,1859,"AIRE SUR ADOUR");
unP(441,852,1842,"AIX EN PROVENCE");
unP(442,1129,1680,"AJACCIO");
unP(443,915,2081,"ALBERTVILLE");
unP(444,580,1882,"ALBI");
unP(445,433,2384,"ALENCON");
unP(446,739,1904,"ALES");
unP(447,597,2543,"AMIENS");
unP(448,336,2270,"ANCENIS EST");
unP(449,382,2278,"ANGERS");
unP(450,574,2369,"ANGERVILLE");
unP(451,429,2074,"ANGOULEME");
unP(452,893,2107,"ANNECY");
unP(453,901,2140,"ANNEMASSE");
unP(454,847,1881,"APT");
unP(455,323,1968,"ARCACHON");
unP(456,733,2394,"ARCIS SUR AUBE");
unP(457,400,1781,"ARGELES GAZOST");
unP(458,425,2419,"ARGENTAN");
unP(459,783,1854,"ARLES");
unP(460,763,2239,"ARNAY LE DUC");
unP(461,630,2588,"ARRAS");
unP(462,565,2343,"ARTENAY");
unP(463,862,1815,"AUBAGNE");
unP(464,763,1959,"AUBENAS");
unP(465,658,2085,"AUBIERE");
unP(466,458,1851,"AUCH");
unP(467,610,2440,"AULNAY SOUS BOIS");
unP(468,561,2530,"AUMALE");
unP(469,198,2310,"AURAY OUEST");
unP(470,607,1990,"AURILLAC");
unP(471,749,2219,"AUTUN");
unP(472,693,2311,"AUXERRE");
unP(473,830,2247,"AUXONNE");
unP(474,724,2278,"AVALLON");
unP(475,675,2174,"AVERMES");
unP(476,714,2570,"AVESNES /HELPE");
unP(477,798,1886,"AVIGNON");
unP(478,558,1747,"AX LES THERMES");
unP(479,588,1967,"BAGNAC");
unP(480,782,1909,"BAGNOLS SUR CEZE");
unP(481,663,2623,"BAISIEUX");
unP(482,636,2567,"BAPAUME");
unP(483,807,2424,"BAR LE DUC");
unP(484,752,2348,"BAR SUR SEINE");
unP(485,404,2055,"BARBEZIEUX");
unP(486,500,2505,"BARENTIN");
unP(487,1183,1770,"BASTIA");
unP(488,903,2268,"BAUME LES DAMES");
unP(489,703,2590,"BAVAY");
unP(490,378,2479,"BAYEUX");
unP(491,291,1840,"BAYONNE");
unP(492,546,2309,"BEAUGENCY");
unP(493,789,2227,"BEAUNE");
unP(494,833,2189,"BEAUREPAIRE");
unP(495,581,2493,"BEAUVAIS");
unP(496,266,1823,"BEHOBIE");
unP(497,940,2304,"BELFORT");
unP(498,500,2124,"BELLAC");
unP(499,607,2332,"BELLEGARDE");
unP(500,869,2128,"BELLEGARDE/VALSERI");
unP(501,684,2125,"BELLERIVE");
unP(502,785,2126,"BELLEVILLE");
unP(503,453,1985,"BERGERAC");
unP(504,878,2256,"BESANCON");
unP(505,620,2614,"BETHUNE");
unP(506,671,1816,"BEZIERS");
unP(507,591,2416,"BIEVRES");
unP(508,971,2462,"BITCHE");
unP(509,629,2210,"BLET");
unP(510,524,2288,"BLOIS");
unP(511,609,2434,"BOBIGNY");
unP(512,578,2422,"BOIS D'ARCY");
unP(513,661,2565,"BONAVIS");
unP(514,1173,1623,"BONIFACIO");
unP(515,914,2127,"BONNEVILLE");
unP(516,544,2449,"BONNIERES");
unP(517,637,2284,"BONNY SUR LOIRE");
unP(518,369,1987,"BORDEAUX");
unP(519,548,2636,"BOULOGNE/MER");
unP(520,823,2138,"BOURG EN BRESSE");
unP(521,617,2072,"BOURG LASTIC");
unP(522,784,1932,"BOURG ST ANDEOL");
unP(523,567,1714,"BOURG-MADAME");
unP(524,603,2232,"BOURGES");
unP(525,549,2549,"BOUTTENCOURT");
unP(526,384,2209,"BRESSUIRE");
unP(527,94,2398,"BREST");
unP(528,596,2515,"BRETEUIL");
unP(529,938,2000,"BRIANCON");
unP(530,619,2411,"BRIE COMTE ROBERT");
unP(531,862,2477,"BRIEY");
unP(532,681,2033,"BRIOUDE");
unP(533,536,2018,"BRIVE");
unP(534,612,2608,"BRUAY EN ARTOIS");
unP(535,995,2428,"BRUMATH");
unP(536,922,2369,"BRUYERES");
unP(537,530,2210,"BUZANCAIS");
unP(538,403,2469,"CAEN");
unP(539,528,1938,"CAHORS");
unP(540,565,2663,"CALAIS");
unP(541,665,2576,"CAMBRAI");
unP(542,978,1851,"CANNES");
unP(543,600,1801,"CARCASSONNE");
unP(544,338,2484,"CARENTAN");
unP(545,163,2380,"CARHAIX EST");
unP(546,804,2519,"CARIGNAN");
unP(547,461,1963,"CASTILLONNES");
unP(548,592,1845,"CASTRES");
unP(549,580,2449,"CERGY PONTOISE");
unP(550,792,2201,"CHALON SUR SAONE");
unP(551,749,2441,"CHALONS SUR MARNE");
unP(552,494,2073,"CHALUS");
unP(553,879,2069,"CHAMBERY");
unP(554,592,2464,"CHAMBLY NORD");
unP(555,951,2113,"CHAMONIX MONT BLAN");
unP(556,873,2200,"CHAMPAGNOLE");
unP(557,506,2379,"CHAMPROND");
unP(558,608,2467,"CHANTILLY");
unP(559,608,2463,"CHANTILLY SUD");
unP(560,773,2531,"CHARLEVILLE MEZIER");
unP(561,892,2382,"CHARMES");
unP(562,536,2382,"CHARTRES");
unP(563,893,1906,"CHATEAU ARNOUX");
unP(564,455,2301,"CHATEAU DU LOIR");
unP(565,371,2318,"CHATEAU GONTIER");
unP(566,493,2290,"CHATEAU RENAULT");
unP(567,906,2433,"CHATEAU SALINS");
unP(568,676,2449,"CHATEAU THIERRY");
unP(569,322,2309,"CHATEAUBRIANT");
unP(570,525,2342,"CHATEAUDUN");
unP(571,551,2201,"CHATEAUROUX");
unP(572,462,2203,"CHATELLERAULT");
unP(573,867,2133,"CHATILLON EN MICHA");
unP(574,511,2221,"CHATILLON/INDRE");
unP(575,766,2320,"CHATILLON/SEINE");
unP(576,808,2349,"CHAUMONT");
unP(577,313,2522,"CHERBOURG");
unP(578,358,2235,"CHOLET EST");
unP(579,591,2420,"CLAMART");
unP(580,605,2488,"CLERMONT .");
unP(581,325,2238,"CLISSON EST");
unP(582,928,2127,"CLUSES");
unP(583,391,2080,"COGNAC");
unP(584,973,2355,"COLMAR");
unP(585,635,2491,"COMPIEGNE");
unP(586,858,2468,"CONFLANS JARNY");
unP(587,883,1986,"CORPS");
unP(588,1162,1723,"CORTE");
unP(589,690,2281,"COULANGES /YONNE");
unP(590,611,2473,"CREIL");
unP(591,639,2470,"CREPY EN VALOIS");
unP(592,608,2421,"CRETEIL");
unP(593,903,1810,"CUERS SUD");
unP(594,436,2487,"DEAUVILLE");
unP(595,685,2203,"DECIZE");
unP(596,676,2591,"DENAIN");
unP(597,297,2303,"DERVAL");
unP(598,509,2548,"DIEPPE");
unP(599,912,1907,"DIGNE");
unP(600,804,2261,"DIJON");
unP(601,278,2393,"DINAN EST");
unP(602,298,2402,"DOL EST");
unP(603,378,2402,"DOMFRONT");
unP(604,632,2344,"DORDIVES");
unP(605,652,2596,"DOUAI");
unP(606,601,2574,"DOULLENS");
unP(607,933,1846,"DRAGUIGNAN");
unP(608,530,2416,"DREUX");
unP(609,602,2670,"DUNKERQUE");
unP(610,403,2299,"DURTAL");
unP(611,503,2477,"ELBEUF");
unP(612,375,2141,"EPANNES");
unP(613,718,2451,"EPERNAY");
unP(614,906,2361,"EPINAL");
unP(615,561,2440,"EPONE");
unP(616,636,2542,"ESTREES");
unP(617,474,2098,"ETAGNAC");
unP(618,840,2472,"ETAIN");
unP(619,587,2382,"ETAMPES");
unP(620,928,2165,"EVIAN LES BAINS");
unP(621,512,2448,"EVREUX");
unP(622,606,2404,"EVRY");
unP(623,413,2436,"FALAISE");
unP(624,746,2084,"FEURS");
unP(625,575,1956,"FIGEAC");
unP(626,751,2043,"FIRMINY OUEST");
unP(627,697,2480,"FISMES");
unP(628,884,2405,"FLAVIGNY");
unP(629,528,2485,"FLEURY /ANDELLE");
unP(630,540,1774,"FOIX");
unP(631,531,2065,"FOMBELAUX");
unP(632,626,2378,"FONTAINEBLEAU");
unP(633,355,2168,"FONTENAY OUEST");
unP(634,639,2412,"FONTENAY-TRESIGNY");
unP(635,810,1827,"FOS SUR MER");
unP(636,336,2378,"FOUGERES");
unP(637,955,1835,"FREJUS");
unP(638,771,2568,"FUMAY");
unP(639,667,2122,"GANNAT");
unP(640,897,1958,"GAP");
unP(641,597,2438,"GENNEVILLIERS");
unP(642,885,2154,"GEX");
unP(643,789,2068,"GIVORS");
unP(644,555,2498,"GOURNAY EN BRAY");
unP(645,865,2024,"GRENOBLE");
unP(646,563,2130,"GUERET");
unP(647,633,2404,"GUIGNES");
unP(648,196,2408,"GUINGAMP EST");
unP(649,692,2544,"GUISE");
unP(650,999,2437,"HAGUENAU");
unP(651,869,2487,"HAYANGE");
unP(652,616,2637,"HAZEBROUCK");
unP(653,647,2604,"HENIN BEAUMONT");
unP(654,931,2294,"HERICOURT");
unP(655,578,2597,"HESDIN");
unP(656,726,2546,"HIRSON");
unP(657,545,2422,"HOUDAN");
unP(658,672,2061,"ISSOIRE NORD");
unP(659,573,2216,"ISSOUDUN");
unP(660,726,2591,"JEUMONT");
unP(661,807,2386,"JOINVILLE");
unP(662,233,2339,"JOSSELIN OUEST");
unP(663,473,2419,"L'AIGLE");
unP(664,776,2095,"L'ARBRESLE");
unP(665,498,1846,"L'ISLE JOURDAIN");
unP(666,634,2617,"LA BASSEE");
unP(667,713,2554,"LA CAPELLE");
unP(668,468,2227,"LA CELLE ST AVANT");
unP(669,614,2459,"LA CHAPELLE EN SER");
unP(670,651,2242,"LA CHARITE SUR LOI");
unP(671,850,2135,"LA CLUSE");
unP(672,673,2520,"LA FERE");
unP(673,475,2356,"LA FERTE BERNARD");
unP(674,657,2438,"LA FERTE SOUS JOUA");
unP(675,420,2303,"LA FLECHE EST");
unP(676,607,2144,"LA MEDE");
unP(677,327,2135,"LA PALLICE");
unP(678,251,2289,"LA ROCHE B. EST");
unP(679,311,2192,"LA ROCHE SUR YON");
unP(680,907,2128,"LA ROCHE/FORON");
unP(681,842,2068,"LA TOUR DU PIN");
unP(682,794,1982,"LA VOULTE/RHONE");
unP(683,335,1910,"LAHARIE");
unP(684,576,2289,"LAMOTTE BEUVRON NO");
unP(685,393,1953,"LANGON");
unP(686,823,2322,"LANGRES");
unP(687,693,2509,"LAON");
unP(688,700,2139,"LAPALISSE");
unP(689,369,2346,"LAVAL");
unP(690,502,2182,"LE BLANC");
unP(691,687,2567,"LE CATEAU");
unP(692,679,1874,"LE CAYLAR");
unP(693,232,2265,"LE CROISIC");
unP(694,439,2503,"LE HAVRE");
unP(695,440,2336,"LE MANS");
unP(696,611,2427,"LE PERREUX");
unP(697,629,2455,"LE PLESSIS BELLEVI");
unP(698,861,2065,"LE PONT DE BEAUV.");
unP(699,864,2019,"LE PONT DE CLAIX");
unP(700,721,2005,"LE PUY");
unP(701,786,1951,"LE TEIL");
unP(702,931,2329,"LE THILLOT");
unP(703,547,2614,"LE TOUQUET PARIS P");
unP(704,334,2066,"LE VERDON");
unP(705,636,2605,"LENS");
unP(706,433,2129,"LES MAISONS-BLANCH");
unP(707,842,1827,"LES PENNES MIRABEA");
unP(708,287,2176,"LES SABLES D'OLONN");
unP(709,605,2213,"LEVET");
unP(710,396,1993,"LIBOURNE");
unP(711,818,2414,"LIGNY EN BARROIS");
unP(712,652,2627,"LILLE");
unP(713,516,2092,"LIMOGES");
unP(714,587,2406,"LINAS");
unP(715,369,2296,"LION D'ANGERS");
unP(716,446,2463,"LISIEUX");
unP(717,498,2237,"LOCHES");
unP(718,836,2499,"LONGUYON");
unP(719,848,2507,"LONGWY");
unP(720,845,2190,"LONS LE SAUNIER");
unP(721,173,2321,"LORIENT");
unP(722,219,2365,"LOUDEAC EST");
unP(723,428,2226,"LOUDUN");
unP(724,907,2408,"LUNEVILLE");
unP(725,475,2156,"LUSSAC LES CHATEAU");
unP(726,606,2458,"LUZARCHES");
unP(727,793,2086,"LYON");
unP(728,792,2149,"MACON");
unP(729,560,2461,"MAGNY EN VEXIN");
unP(730,605,2366,"MALESHERBE");
unP(731,414,1869,"MANCIET");
unP(732,878,1876,"MANOSQUE");
unP(733,554,2444,"MANTES LA JOLIE");
unP(734,426,1947,"MARMANDE");
unP(735,846,1815,"MARSEILLE");
unP(736,819,1826,"MARTIGUES");
unP(737,675,1950,"MARVEJOLS");
unP(738,667,2028,"MASSIAC");
unP(739,716,2588,"MAUBEUGE");
unP(740,366,2135,"MAUZE");
unP(741,381,2371,"MAYENNE");
unP(742,640,2440,"MEAUX");
unP(743,590,2238,"MEHUN/Y");
unP(744,623,2393,"MELUN");
unP(745,699,1946,"MENDE");
unP(746,537,2300,"MER");
unP(747,881,2465,"METZ");
unP(748,435,1827,"MIELAN");
unP(749,659,1900,"MILLAU");
unP(750,372,2046,"MIRAMBEAU");
unP(751,499,1901,"MOISSAC");
unP(752,742,2032,"MONISTROL SUD");
unP(753,371,1881,"MONT DE MARSAN");
unP(754,322,2227,"MONTAIGU NORD");
unP(755,629,2333,"MONTARGIS");
unP(756,520,1891,"MONTAUBAN (N20)");
unP(757,933,2284,"MONTBELIARD");
unP(758,594,2403,"MONTLHERY");
unP(759,395,2030,"MONTLIEU");
unP(760,620,2149,"MONTLUCON");
unP(761,818,2505,"MONTMEDY");
unP(762,724,1846,"MONTPELLIER");
unP(763,428,2003,"MONTPON-MENESTEROL");
unP(764,454,1789,"MONTREJEAU");
unP(765,411,2238,"MONTREUIL BELL. SU");
unP(766,747,2073,"MONTROND LES BAINS");
unP(767,584,1999,"MONTVERT");
unP(768,146,2415,"MORLAIX EST");
unP(769,350,2226,"MORTAGNE SUD");
unP(770,928,2061,"MOUTIERS");
unP(771,974,2318,"MULHOUSE");
unP(772,641,2012,"MURAT");
unP(773,761,2334,"MUSSY SUR SEINE");
unP(774,621,2489,"N31 x N17");
unP(775,883,2418,"NANCY");
unP(776,590,2434,"NANTERRE");
unP(777,306,2254,"NANTES");
unP(778,654,1798,"NARBONNE");
unP(779,625,2366,"NEMOURS");
unP(780,556,2596,"NEMPONT ST FIRMIN");
unP(781,848,2377,"NEUFCHATEAU");
unP(782,594,2431,"NEUILLY");
unP(783,662,2220,"NEVERS");
unP(784,998,1868,"NICE");
unP(785,762,1873,"NIMES");
unP(786,384,2151,"NIORT");
unP(787,611,2425,"NOGENT SUR MARNE");
unP(788,711,2092,"NOIRETABLE");
unP(789,444,2413,"NONANT LE PIN");
unP(790,647,2508,"NOYON");
unP(791,359,1802,"OLORON");
unP(792,796,1906,"ORANGE");
unP(793,566,2322,"ORLEANS");
unP(794,344,1836,"ORTHEZ");
unP(795,539,2324,"OUZOUER LE MARCHE");
unP(796,734,2163,"PARAY LE MONIAL");
unP(797,593,2427,"PARIS AUTEUIL A1");
unP(798,605,2429,"PARIS BAGNOLET A3");
unP(799,604,2425,"PARIS BERCY A4");
unP(800,600,2433,"PARIS CLIGNANC. N1");
unP(801,601,2424,"PARIS ITALIE N7/A");
unP(802,594,2426,"PARIS ST CLOUD N1");
unP(803,401,2186,"PARTHENAY");
unP(804,379,1815,"PAU");
unP(805,472,2021,"PERIGUEUX");
unP(806,643,2549,"PERONNE");
unP(807,645,1744,"PERPIGNAN");
unP(808,961,2431,"PHALSBOURG");
unP(809,593,2352,"PITHIVIERS");
unP(810,267,2342,"PLELAN LE GRAND OU");
unP(811,446,2177,"POITIERS");
unP(812,574,2531,"POIX");
unP(813,856,2209,"POLIGNY");
unP(814,467,2486,"PONT AUDEMER");
unP(815,670,2089,"PONT DU CHATEAU");
unP(816,443,2478,"PONT LEVEQUE");
unP(817,619,2480,"PONT SAINTE MAXENC");
unP(818,905,2219,"PONTARLIER");
unP(819,328,2409,"PONTAUBAULT");
unP(820,1184,1644,"PORTO VECCHIO");
unP(821,722,1976,"PRADELLES");
unP(822,602,1731,"PRADES");
unP(823,412,2388,"PRE EN PAIL");
unP(824,779,1972,"PRIVAS");
unP(825,119,2352,"QUIMPER");
unP(826,723,2475,"REIMS");
unP(827,301,2353,"RENNES");
unP(828,746,2503,"RETHEL");
unP(829,659,2099,"RIOM");
unP(830,343,2110,"ROCHEFORT");
unP(831,618,1927,"RODEZ");
unP(832,813,2008,"ROMANS/ISERE");
unP(833,702,2391,"ROMILLY");
unP(834,663,2635,"ROUBAIX");
unP(835,508,2494,"ROUEN");
unP(836,793,2044,"ROUSSILLON");
unP(837,336,2075,"ROYAN");
unP(838,633,2523,"ROYE");
unP(839,368,2087,"SAINTES");
unP(840,823,1849,"SALON DE PROVENCE");
unP(841,602,2442,"SARCELLES");
unP(842,945,2467,"SARREGUEMINES");
unP(843,1152,1645,"SARTENE");
unP(844,813,2082,"SATOLAS");
unP(845,348,1938,"SAUGNAC");
unP(846,416,2253,"SAUMUR");
unP(847,537,1803,"SAVERDUN");
unP(848,785,2524,"SEDAN");
unP(849,439,2404,"SEES");
unP(850,978,2373,"SELESTAT");
unP(851,820,1864,"SENAS");
unP(852,617,2466,"SENLIS");
unP(853,672,2355,"SENS");
unP(854,791,2038,"SERRIERES");
unP(855,659,1924,"SEVERAC");
unP(856,674,2486,"SOISSONS");
unP(857,1012,2441,"SOUFFLENHEIM");
unP(858,394,1811,"SOUMOULOU");
unP(859,672,2395,"SOURDUN");
unP(860,612,2191,"ST AMAND MT ROND");
unP(861,381,2003,"ST ANDRE DE CUBZAC");
unP(862,919,2466,"ST AVOLD");
unP(863,223,2402,"ST BRIEUC");
unP(864,478,2326,"ST CALAIS OUEST");
unP(865,770,2055,"ST CHAMOND");
unP(866,674,1978,"ST CHELY D'APCHER");
unP(867,603,2437,"ST DENIS");
unP(868,941,2374,"ST DIE");
unP(869,792,2407,"ST DIZIER");
unP(870,638,2129,"ST ELOY LES MINES");
unP(871,762,2050,"ST ETIENNE .");
unP(872,593,2221,"ST FLORENT");
unP(873,660,2004,"ST FLOUR");
unP(874,308,1860,"ST GEOURS");
unP(875,581,2433,"ST GERMAIN EN LAYE");
unP(876,938,2110,"ST GERVAIS");
unP(877,945,2164,"ST GINGOLPH");
unP(878,347,2403,"ST HILAIRE DU HARC");
unP(879,888,2132,"ST JULIEN EN GENEV");
unP(880,880,2182,"ST LAURENT EN GR.");
unP(881,349,2463,"ST LO");
unP(882,275,2416,"ST MALO");
unP(883,885,1834,"ST MAXIMIN");
unP(884,256,2263,"ST NAZAIRE");
unP(885,592,2640,"ST OMER");
unP(886,659,2200,"ST PIERRE LE MOUTI");
unP(887,599,2598,"ST POL/TERNOISE");
unP(888,674,2145,"ST POURCAIN/SIOULE");
unP(889,669,2537,"ST QUENTIN");
unP(890,956,1834,"ST RAPHAEL");
unP(891,862,2247,"ST VIT");
unP(892,765,2081,"STE FOY L'ARGENTIE");
unP(893,786,2458,"STE MENEHOULD");
unP(894,998,2412,"STRASBOURG");
unP(895,797,2011,"TAIN L'HERMITAGE");
unP(896,597,1899,"TANUS");
unP(897,762,2101,"TARARE");
unP(898,415,1806,"TARBES");
unP(899,666,2516,"TERGNIER");
unP(900,517,2015,"TERRASSON");
unP(901,694,2095,"THIERS");
unP(902,876,2491,"THIONVILLE");
unP(903,489,2047,"THIVIERS");
unP(904,919,2162,"THONON LES BAINS");
unP(905,506,2522,"TOTES");
unP(906,861,2415,"TOUL");
unP(907,893,1797,"TOULON");
unP(908,527,1847,"TOULOUSE");
unP(909,660,2639,"TOURCOING");
unP(910,793,2007,"TOURNON");
unP(911,476,2265,"TOURS");
unP(912,379,2123,"TOUT-Y-FAUT");
unP(913,577,2421,"TRAPPES");
unP(914,729,2368,"TROYES");
unP(915,555,2030,"TULLE");
unP(916,916,2090,"UGINE");
unP(917,597,2060,"USSEL");
unP(918,801,1995,"VALENCE");
unP(919,801,1991,"VALENCE SUD");
unP(920,681,2595,"VALENCIENNES");
unP(921,687,2598,"VALENCIENNES EST");
unP(922,216,2307,"VANNES");
unP(923,346,2270,"VARADES EST");
unP(924,559,2230,"VATAN");
unP(925,758,2362,"VENDOEUVRE SUR BAR");
unP(926,504,2309,"VENDOME SUD");
unP(927,822,2466,"VERDUN");
unP(928,496,2416,"VERNEUIL /AVRE");
unP(929,537,2455,"VERNON");
unP(930,584,2423,"VERSAILLES");
unP(931,712,2538,"VERVINS");
unP(932,887,2299,"VESOUL");
unP(933,797,2063,"VIENNE");
unP(934,576,2248,"VIERZON");
unP(935,807,2114,"VILLARS LES DOMBES");
unP(936,340,2434,"VILLEDIEU LES POEL");
unP(937,784,2112,"VILLEFRANCHE/SAONE");
unP(938,713,2343,"VILLENEUVE AU CHEM");
unP(939,470,1935,"VILLENEUVE SUR LOT");
unP(940,765,2416,"VITRY LE FRANCOIS");
unP(941,870,2014,"VIZILLE");
unP(942,854,2045,"VOIRON");
unP(943,695,2360,"VULAINES");
unP(944,656,2599,"WAZIERS");
unP(945,485,2514,"YVETOT");
//
// les liens
unA(867,7,4);
unA(467,867,7);
unA(438,467,5);
unA(20,438,23);
unA(326,20,13);
unA(66,326,9);
unA(184,66,12);
unA(183,184,22);
unA(616,183,19);
unA(17,616,16);
unA(482,17,9);
unA(21,482,18);
unA(417,21,7);
unA(22,417,11);
unA(653,22,2);
unA(19,653,6);
unA(712,19,18);
unA(46,17,22);
unA(541,46,9);
unA(424,541,5);
unA(47,424,5);
unA(596,47,9);
unA(303,596,5);
unA(48,303,5);
unA(390,48,9);
unA(511,467,6);
unA(798,511,6);
unA(422,894,23);
unA(808,422,27);
unA(85,808,17);
unA(91,85,16);
unA(69,91,18);
unA(82,69,26);
unA(68,82,14);
unA(62,68,10);
unA(412,62,18);
unA(86,412,23);
unA(89,86,25);
unA(368,89,28);
unA(84,368,33);
unA(90,84,8);
unA(362,90,32);
unA(415,362,24);
unA(80,415,24);
unA(420,80,22);
unA(87,420,7);
unA(88,87,15);
unA(83,88,19);
unA(787,83,9);
unA(79,787,3);
unA(799,79,4);
unA(107,6,6);
unA(801,107,7);
unA(106,604,14);
unA(779,106,10);
unA(108,779,24);
unA(113,108,9);
unA(622,113,8);
unA(24,622,12);
unA(107,24,6);
unA(112,106,30);
unA(110,112,40);
unA(315,110,10);
unA(316,315,39);
unA(78,316,52);
unA(63,78,33);
unA(323,63,30);
unA(310,323,43);
unA(111,310,12);
unA(376,111,32);
unA(376,727,26);
unA(102,735,11);
unA(105,102,5);
unA(115,105,18);
unA(104,115,11);
unA(318,104,34);
unA(317,318,9);
unA(792,317,18);
unA(355,792,39);
unA(354,355,1);
unA(116,354,30);
unA(919,116,16);
unA(370,919,9);
unA(369,370,11);
unA(324,369,28);
unA(374,324,19);
unA(373,374,5);
unA(99,373,5);
unA(727,99,18);
unA(441,115,18);
unA(103,441,10);
unA(322,103,65);
unA(321,322,55);
unA(784,321,26);
unA(377,784,18);
unA(357,792,45);
unA(358,357,4);
unA(371,358,34);
unA(762,371,10);
unA(365,762,21);
unA(319,365,35);
unA(114,319,31);
unA(359,114,52);
unA(398,359,25);
unA(861,340,13);
unA(337,861,40);
unA(335,337,47);
unA(334,335,55);
unA(333,334,15);
unA(26,333,19);
unA(360,26,35);
unA(325,360,31);
unA(29,107,6);
unA(27,29,8);
unA(714,27,2);
unA(23,714,22);
unA(314,23,51);
unA(793,314,21);
unA(25,793,4);
unA(30,25,48);
unA(911,30,55);
unA(423,911,16);
unA(325,423,44);
unA(331,777,33);
unA(36,331,41);
unA(421,36,22);
unA(610,421,17);
unA(562,23,34);
unA(34,562,39);
unA(33,34,27);
unA(352,33,39);
unA(119,352,30);
unA(512,37,6);
unA(38,512,0);
unA(45,797,11);
unA(37,45,0);
unA(41,37,11);
unA(615,41,14);
unA(414,615,10);
unA(40,414,13);
unA(418,40,27);
unA(42,418,5);
unA(227,42,16);
unA(43,227,4);
unA(44,43,25);
unA(413,44,19);
unA(39,413,13);
unA(416,39,20);
unA(538,416,21);
unA(694,243,25);
unA(549,641,20);
unA(486,835,13);
unA(705,49,10);
unA(653,50,4);
unA(705,653,11);
unA(712,389,15);
unA(712,18,4);
unA(18,303,41);
unA(51,712,7);
unA(346,51,7);
unA(52,346,16);
unA(180,52,11);
unA(306,180,19);
unA(54,687,36);
unA(57,54,7);
unA(347,57,23);
unA(46,347,8);
unA(417,46,25);
unA(56,417,8);
unA(49,56,11);
unA(58,49,49);
unA(59,58,13);
unA(53,55,18);
unA(18,481,9);
unA(651,60,10);
unA(61,63,5);
unA(600,61,30);
unA(902,403,9);
unA(60,902,7);
unA(62,60,10);
unA(747,62,9);
unA(775,747,47);
unA(266,775,22);
unA(65,266,12);
unA(81,65,35);
unA(64,81,34);
unA(53,64,24);
unA(67,53,43);
unA(69,383,10);
unA(71,72,24);
unA(437,71,21);
unA(70,894,6);
unA(73,70,6);
unA(74,61,46);
unA(109,74,40);
unA(75,109,30);
unA(757,75,31);
unA(497,757,21);
unA(71,381,8);
unA(77,71,10);
unA(76,77,10);
unA(497,76,21);
unA(78,600,37);
unA(307,95,28);
unA(320,307,13);
unA(92,320,10);
unA(96,92,23);
unA(94,876,37);
unA(93,94,10);
unA(330,93,30);
unA(573,330,10);
unA(361,645,38);
unA(356,361,7);
unA(553,356,9);
unA(349,553,17);
unA(367,349,23);
unA(313,367,4);
unA(336,313,8);
unA(94,336,20);
unA(345,97,6);
unA(727,345,30);
unA(311,727,19);
unA(98,311,26);
unA(350,98,7);
unA(327,350,13);
unA(312,327,16);
unA(553,312,9);
unA(99,865,24);
unA(363,98,21);
unA(378,363,16);
unA(100,378,8);
unA(645,100,5);
unA(101,735,18);
unA(907,101,32);
unA(372,353,33);
unA(441,372,8);
unA(102,441,17);
unA(840,104,2);
unA(736,105,20);
unA(593,907,16);
unA(375,908,32);
unA(543,114,53);
unA(375,543,56);
unA(338,518,43);
unA(173,338,49);
unA(342,173,30);
unA(348,342,42);
unA(329,348,22);
unA(908,329,34);
unA(1,874,24);
unA(328,1,33);
unA(3,518,28);
unA(845,3,25);
unA(344,794,38);
unA(858,344,17);
unA(214,908,13);
unA(117,793,6);
unA(364,117,50);
unA(419,465,13);
unA(332,419,20);
unA(339,332,13);
unA(174,339,29);
unA(341,174,17);
unA(343,341,11);
unA(273,343,21);
unA(35,118,19);
unA(120,35,22);
unA(641,121,4);
unA(776,641,8);
unA(696,511,7);
unA(592,79,3);
unA(579,107,6);
unA(930,579,7);
unA(29,24,1);
unA(32,31,5);
unA(32,83,13);
unA(118,119,21);
unA(259,835,13);
unA(696,83,9);
unA(68,747,5);
unA(628,775,13);
unA(844,311,3);
unA(309,100,11);
unL(889,54,2);
unL(599,122,24);
unL(55,576,8);
unL(146,913,12);
unL(304,596,4);
unL(159,83,6);
unL(159,530,8);
unL(551,84,9);
unL(176,175,8);
unL(892,624,19);
unL(152,151,5);
unL(64,576,31);
unL(75,488,3);
unL(343,766,3);
unL(933,11,1);
unL(918,161,4);
unL(532,738,14);
unL(177,178,16);
unL(353,732,3);
unL(841,867,5);
unL(193,841,18);
unL(554,193,6);
unL(495,554,31);
unL(528,495,26);
unL(447,528,28);
unL(191,192,14);
unL(435,191,25);
unL(780,435,28);
unL(194,780,11);
unL(519,194,31);
unL(540,519,31);
unL(609,540,37);
unL(392,609,11);
unL(31,467,8);
unL(697,31,17);
unL(249,697,24);
unL(856,249,30);
unL(687,856,29);
unL(931,687,34);
unL(667,931,16);
unL(476,667,16);
unL(739,476,18);
unL(391,739,7);
unL(511,8,6);
unL(32,511,12);
unL(568,145,11);
unL(674,568,21);
unL(87,674,6);
unL(742,87,11);
unL(32,742,19);
unL(862,382,15);
unL(747,862,38);
unL(586,747,23);
unL(618,586,18);
unL(927,618,18);
unL(893,927,36);
unL(551,893,40);
unL(711,266,44);
unL(869,711,26);
unL(940,869,28);
unL(267,940,28);
unL(263,267,49);
unL(634,263,49);
unL(159,634,20);
unL(775,906,22);
unL(724,775,26);
unL(808,724,58);
unL(894,808,41);
unL(473,600,29);
unL(274,473,11);
unL(813,274,34);
unL(556,813,19);
unL(880,556,19);
unL(408,880,17);
unL(642,408,16);
unL(406,642,9);
unL(620,877,17);
unL(904,620,9);
unL(255,904,18);
unL(405,255,5);
unL(744,9,12);
unL(152,744,11);
unL(592,152,20);
unL(203,632,20);
unL(853,203,32);
unL(472,853,48);
unL(474,472,45);
unL(167,474,15);
unL(460,167,40);
unL(284,460,29);
unL(550,284,19);
unL(728,550,52);
unL(111,728,6);
unL(502,111,17);
unL(282,425,4);
unL(287,282,53);
unL(356,287,16);
unL(553,356,9);
unL(160,553,19);
unL(698,160,12);
unL(285,698,8);
unL(681,285,11);
unL(286,681,12);
unL(727,286,41);
unL(937,727,27);
unL(502,937,14);
unL(744,113,13);
unL(784,401,17);
unL(294,784,6);
unL(542,294,19);
unL(637,542,28);
unL(278,637,15);
unL(293,278,21);
unL(883,293,37);
unL(292,883,27);
unL(441,292,7);
unL(851,441,38);
unL(411,851,20);
unL(477,411,10);
unL(128,477,39);
unL(291,128,12);
unL(199,291,17);
unL(201,199,23);
unL(918,201,20);
unL(895,918,16);
unL(836,895,33);
unL(374,836,14);
unL(933,374,5);
unL(727,933,23);
unL(664,727,19);
unL(897,664,15);
unL(289,897,24);
unL(434,289,31);
unL(688,434,19);
unL(256,688,18);
unL(231,256,21);
unL(475,231,8);
unL(886,475,30);
unL(783,886,20);
unL(670,783,24);
unL(517,670,44);
unL(755,517,49);
unL(604,755,11);
unL(779,604,23);
unL(632,779,12);
unL(9,632,4);
unL(735,441,27);
unL(463,735,16);
unL(265,463,6);
unL(265,907,29);
unL(302,855,22);
unL(737,302,8);
unL(866,737,28);
unL(873,866,29);
unL(738,873,25);
unL(200,738,15);
unL(658,200,19);
unL(465,658,27);
unL(829,465,14);
unL(639,829,24);
unL(692,749,32);
unL(205,692,23);
unL(212,205,21);
unL(506,212,23);
unL(778,506,24);
unL(228,778,18);
unL(158,228,14);
unL(807,158,22);
unL(398,807,26);
unL(290,475,10);
unL(888,290,19);
unL(639,888,24);
unL(38,930,6);
unL(913,38,1);
unL(197,913,15);
unL(436,197,20);
unL(196,436,1);
unL(562,196,26);
unL(570,562,41);
unL(195,570,23);
unL(926,195,15);
unL(566,926,21);
unL(911,566,30);
unL(668,911,38);
unL(572,668,24);
unL(811,572,30);
unL(706,811,49);
unL(451,706,55);
unL(485,451,31);
unL(759,485,26);
unL(861,759,30);
unL(518,861,20);
unL(845,518,53);
unL(683,845,30);
unL(874,683,56);
unL(491,874,26);
unL(496,491,30);
unL(206,677,12);
unL(740,206,27);
unL(612,740,10);
unL(786,612,13);
unL(26,786,31);
unL(26,811,36);
unL(218,512,12);
unL(657,218,21);
unL(608,657,16);
unL(215,608,15);
unL(928,215,19);
unL(179,928,38);
unL(445,179,33);
unL(823,445,21);
unL(741,823,35);
unL(636,741,45);
unL(827,636,43);
unL(216,827,32);
unL(217,216,39);
unL(863,217,21);
unL(648,863,27);
unL(153,648,36);
unL(768,153,14);
unL(527,768,54);
unL(133,577,18);
unL(544,133,26);
unL(490,544,40);
unL(538,490,26);
unL(129,538,28);
unL(716,129,16);
unL(221,716,32);
unL(621,221,37);
unL(40,621,26);
unL(516,40,6);
unL(733,516,11);
unL(875,41,6);
unL(222,875,2);
unL(782,776,5);
unL(629,835,21);
unL(729,629,40);
unL(549,729,23);
unL(800,121,2);
unL(945,486,17);
unL(132,945,20);
unL(694,132,26);
unL(143,835,14);
unL(232,143,7);
unL(929,232,27);
unL(516,929,9);
unL(726,841,16);
unL(559,726,5);
unL(558,559,4);
unL(590,558,6);
unL(580,590,16);
unL(669,511,25);
unL(852,669,7);
unL(20,852,2);
unL(817,20,12);
unL(774,817,9);
unL(838,774,36);
unL(240,838,20);
unL(806,240,7);
unL(482,806,19);
unL(461,482,21);
unL(705,56,11);
unL(19,705,10);
unL(712,388,16);
unL(718,618,27);
unL(719,718,14);
unL(497,410,17);
unL(932,497,53);
unL(156,932,42);
unL(686,156,25);
unL(576,686,30);
unL(10,576,34);
unL(925,10,18);
unL(914,925,29);
unL(833,914,35);
unL(859,833,30);
unL(647,859,40);
unL(530,647,15);
unL(592,530,14);
unL(4,908,27);
unL(329,4,14);
unL(756,329,11);
unL(134,756,28);
unL(539,134,21);
unL(229,539,64);
unL(533,229,16);
unL(220,533,29);
unL(631,220,19);
unL(713,631,30);
unL(230,713,44);
unL(847,214,35);
unL(758,29,9);
unL(619,758,22);
unL(450,619,18);
unL(462,450,27);
unL(793,462,21);
unL(684,793,34);
unL(364,684,21);
unL(934,364,20);
unL(924,934,24);
unL(571,924,30);
unL(233,571,15);
unL(149,233,29);
unL(230,149,27);
unL(250,523,19);
unL(478,250,18);
unL(630,478,32);
unL(847,630,29);
unL(552,713,29);
unL(903,552,26);
unL(805,903,31);
unL(503,805,40);
unL(547,503,23);
unL(939,547,29);
unL(439,939,24);
unL(466,439,61);
unL(748,466,33);
unL(898,748,29);
unL(457,898,29);
unL(250,395,5);
unL(448,777,34);
unL(923,448,10);
unL(557,562,30);
unL(673,557,38);
unL(695,673,40);
unL(675,695,38);
unL(610,675,17);
unL(449,610,29);
unL(36,449,8);
unL(923,36,28);
unL(810,827,35);
unL(239,810,23);
unL(662,239,12);
unL(238,662,54);
unL(721,238,8);
unL(192,447,4);
unL(606,192,27);
unL(461,606,32);
unL(789,458,19);
unL(663,789,29);
unL(928,663,23);
unL(905,259,15);
unL(598,905,26);
unL(260,835,27);
unL(261,260,17);
unL(525,261,25);
unL(435,525,23);
unL(905,945,22);
unL(260,905,18);
unL(468,261,24);
unL(812,468,13);
unL(447,812,25);
unL(616,447,39);
unL(240,616,4);
unL(57,240,24);
unL(889,57,6);
unL(649,889,24);
unL(667,649,23);
unL(541,482,30);
unL(47,541,9);
unL(304,47,11);
unL(920,304,5);
unL(921,920,6);
unL(305,921,6);
unL(181,835,31);
unL(644,181,16);
unL(495,644,26);
unL(580,495,24);
unL(774,580,16);
unL(66,774,4);
unL(585,66,10);
unL(856,585,39);
unL(627,856,23);
unL(627,826,26);
unL(790,585,20);
unL(899,790,20);
unL(672,899,8);
unL(862,379,10);
unL(263,88,51);
unL(483,869,22);
unL(89,483,35);
unL(634,88,18);
unL(647,634,10);
unL(744,647,14);
unL(9,108,11);
unL(887,461,32);
unL(655,887,21);
unL(194,655,20);
unL(703,194,14);
unL(666,51,13);
unL(505,666,14);
unL(534,505,10);
unL(887,534,16);
unL(652,52,9);
unL(269,652,18);
unL(885,269,7);
unL(58,885,5);
unL(519,58,40);
unL(59,885,13);
unL(540,59,21);
unL(505,705,18);
unL(269,505,30);
unL(531,747,22);
unL(718,531,34);
unL(761,718,18);
unL(546,761,19);
unL(848,546,19);
unL(560,848,13);
unL(271,560,19);
unL(656,271,30);
unL(667,656,15);
unL(691,667,29);
unL(541,691,23);
unL(605,541,23);
unL(22,605,9);
unL(551,940,29);
unL(351,551,9);
unL(826,351,33);
unL(426,826,19);
unL(687,426,26);
unL(672,687,22);
unL(889,672,17);
unL(513,889,29);
unL(541,513,11);
unL(187,605,15);
unL(596,187,9);
unL(705,666,12);
unL(489,48,17);
unL(739,489,13);
unL(660,739,10);
unL(417,605,12);
unL(461,417,10);
unL(613,145,31);
unL(826,613,24);
unL(828,826,36);
unL(560,828,38);
unL(638,393,12);
unL(271,638,30);
unL(651,719,29);
unL(651,747,25);
unL(402,902,6);
unL(280,862,18);
unL(268,775,17);
unL(747,268,33);
unL(818,407,19);
unL(504,818,45);
unL(109,504,4);
unL(561,628,24);
unL(270,561,24);
unL(283,270,18);
unL(166,283,30);
unL(932,166,24);
unL(109,932,40);
unL(387,848,13);
unL(868,724,48);
unL(235,850,20);
unL(868,235,17);
unL(499,793,42);
unL(755,499,22);
unL(112,755,27);
unL(853,112,21);
unL(943,853,23);
unL(943,914,34);
unL(279,280,8);
unL(842,279,13);
unL(384,842,9);
unL(808,279,29);
unL(508,842,26);
unL(508,650,37);
unL(535,894,16);
unL(650,535,9);
unL(857,650,13);
unL(380,857,14);
unL(288,77,7);
unL(702,288,32);
unL(283,702,22);
unL(404,771,25);
unL(661,869,25);
unL(576,661,37);
unL(796,295,45);
unL(484,914,30);
unL(773,484,16);
unL(575,773,14);
unL(142,575,18);
unL(600,142,53);
unL(891,504,18);
unL(274,891,26);
unL(188,274,26);
unL(550,188,31);
unL(493,284,10);
unL(600,493,37);
unL(781,576,48);
unL(266,781,36);
unL(906,266,4);
unL(67,686,38);
unL(600,67,26);
unL(567,775,27);
unL(280,842,11);
unL(567,280,40);
unL(277,296,44);
unL(285,277,5);
unL(942,285,20);
unL(298,942,6);
unL(298,645,17);
unL(309,699,2);
unL(427,309,39);
unL(299,427,63);
unL(171,911,36);
unL(934,171,65);
unL(743,934,17);
unL(524,743,14);
unL(509,524,34);
unL(886,509,31);
unL(267,551,27);
unL(456,267,22);
unL(914,456,26);
unL(938,914,29);
unL(472,938,37);
unL(494,550,42);
unL(720,494,12);
unL(880,720,35);
unL(189,475,18);
unL(126,189,12);
unL(796,126,32);
unL(728,796,59);
unL(244,728,4);
unL(520,244,28);
unL(297,520,21);
unL(295,550,28);
unL(471,295,26);
unL(595,783,28);
unL(137,595,52);
unL(460,78,13);
unL(471,460,24);
unL(137,471,14);
unL(624,289,25);
unL(766,624,11);
unL(273,766,20);
unL(871,273,7);
unL(175,871,29);
unL(854,175,8);
unL(865,273,12);
unL(935,727,31);
unL(520,935,28);
unL(12,520,22);
unL(720,12,34);
unL(813,720,21);
unL(157,813,24);
unL(504,157,27);
unL(488,504,27);
unL(272,488,22);
unL(654,272,15);
unL(497,654,13);
unL(288,497,27);
unL(850,70,37);
unL(584,850,18);
unL(288,584,36);
unL(97,727,36);
unL(296,97,7);
unL(276,296,4);
unL(297,276,6);
unL(671,297,24);
unL(500,671,20);
unL(300,298,5);
unL(286,300,34);
unL(699,645,5);
unL(941,699,7);
unL(587,941,30);
unL(262,542,1);
unL(432,262,15);
unL(136,432,24);
unL(599,136,49);
unL(563,599,19);
unL(299,563,14);
unL(640,299,40);
unL(587,640,31);
unL(198,785,16);
unL(480,198,26);
unL(522,480,23);
unL(301,522,10);
unL(701,301,9);
unL(202,701,25);
unL(682,202,7);
unL(161,682,15);
unL(910,161,10);
unL(176,910,22);
unL(854,176,9);
unL(11,854,25);
unL(643,11,8);
unL(727,643,18);
unL(165,908,24);
unL(444,165,39);
unL(896,444,24);
unL(831,896,35);
unL(855,831,41);
unL(871,865,9);
unL(626,871,13);
unL(752,626,14);
unL(150,752,23);
unL(700,150,12);
unL(178,700,7);
unL(821,178,22);
unL(745,821,37);
unL(204,745,11);
unL(302,204,17);
unL(710,518,27);
unL(763,710,33);
unL(341,624,4);
unL(788,341,32);
unL(901,788,17);
unL(815,901,24);
unL(465,815,12);
unL(185,465,15);
unL(182,185,15);
unL(521,182,13);
unL(917,521,23);
unL(915,917,51);
unL(533,915,22);
unL(900,533,19);
unL(805,900,45);
unL(763,805,47);
unL(749,855,24);
unL(892,766,19);
unL(664,892,17);
unL(645,356,44);
unL(443,287,17);
unL(770,443,23);
unL(430,770,24);
unL(135,941,29);
unL(135,529,40);
unL(300,832,51);
unL(301,291,6);
unL(529,640,58);
unL(399,529,9);
unL(281,463,9);
unL(292,281,14);
unL(122,563,8);
unL(127,122,13);
unL(732,127,11);
unL(372,732,34);
unL(293,593,26);
unL(190,907,45);
unL(890,190,30);
unL(542,890,27);
unL(714,758,7);
unL(477,198,24);
unL(454,477,49);
unL(144,454,10);
unL(144,127,27);
unL(532,200,11);
unL(177,700,12);
unL(162,177,20);
unL(532,162,17);
unL(464,821,44);
unL(701,464,24);
unL(199,701,4);
unL(412,531,5);
unL(586,412,5);
unL(245,246,19);
unL(824,464,20);
unL(202,824,11);
unL(201,202,7);
unL(151,530,8);
unL(744,151,10);
unL(866,745,40);
unL(446,785,38);
unL(138,446,29);
unL(204,138,34);
unL(204,737,14);
unL(205,762,36);
unL(207,446,53);
unL(548,444,38);
unL(433,548,35);
unL(140,762,23);
unL(208,140,27);
unL(319,208,11);
unL(506,319,6);
unL(433,506,49);
unL(685,518,41);
unL(734,685,33);
unL(439,734,49);
unL(751,439,39);
unL(751,4,34);
unL(5,908,29);
unL(543,778,54);
unL(5,543,57);
unL(366,212,20);
unL(762,366,21);
unL(207,762,8);
unL(371,207,2);
unL(209,371,14);
unL(707,735,12);
unL(840,707,29);
unL(163,840,4);
unL(211,163,5);
unL(210,211,17);
unL(459,210,16);
unL(785,459,28);
unL(209,785,22);
unL(396,807,36);
unL(822,807,44);
unL(523,822,38);
unL(794,491,53);
unL(804,794,40);
unL(858,804,15);
unL(898,858,21);
unL(764,898,42);
unL(764,124,30);
unL(213,214,42);
unL(579,802,6);
unL(507,579,4);
unL(146,27,7);
unL(507,146,4);
unL(915,220,23);
unL(219,915,17);
unL(767,219,25);
unL(767,470,24);
unL(219,533,27);
unL(479,625,17);
unL(470,479,29);
unL(772,470,40);
unL(738,772,30);
unL(753,874,66);
unL(440,753,28);
unL(665,908,29);
unL(466,665,40);
unL(731,466,47);
unL(440,731,26);
unL(397,764,22);
unL(123,908,26);
unL(123,548,39);
unL(124,213,14);
unL(845,753,61);
unL(791,431,41);
unL(804,791,23);
unL(440,804,45);
unL(483,711,14);
unL(223,206,39);
unL(224,223,30);
unL(754,224,23);
unL(777,754,31);
unL(130,777,18);
unL(225,130,19);
unL(597,225,13);
unL(827,597,50);
unL(226,827,47);
unL(882,226,21);
unL(830,677,29);
unL(839,830,33);
unL(750,839,41);
unL(750,861,43);
unL(221,43,29);
unL(125,221,37);
unL(789,125,23);
unL(849,789,10);
unL(445,849,20);
unL(352,445,43);
unL(695,352,5);
unL(564,911,41);
unL(227,835,10);
unL(228,168,6);
unL(625,229,61);
unL(625,831,51);
unL(583,839,24);
unL(617,713,42);
unL(451,617,51);
unL(583,451,38);
unL(717,911,35);
unL(574,717,20);
unL(537,574,21);
unL(571,537,22);
unL(709,524,19);
unL(860,709,23);
unL(870,829,36);
unL(760,870,26);
unL(860,760,42);
unL(230,498,28);
unL(290,231,3);
unL(155,290,31);
unL(760,155,28);
unL(676,760,13);
unL(646,676,46);
unL(230,646,37);
unL(316,474,3);
unL(846,449,42);
unL(765,846,15);
unL(723,765,20);
unL(498,713,35);
unL(186,498,18);
unL(725,186,22);
unL(811,725,35);
unL(723,811,52);
unL(633,223,19);
unL(786,633,33);
unL(581,777,24);
unL(769,581,27);
unL(803,811,45);
unL(526,803,28);
unL(769,526,38);
unL(839,837,34);
unL(912,839,37);
unL(912,786,28);
unL(690,811,56);
unL(659,571,26);
unL(872,659,20);
unL(524,872,14);
unL(154,524,23);
unL(670,154,25);
unL(589,670,55);
unL(472,589,30);
unL(690,233,40);
unL(730,632,24);
unL(809,730,18);
unL(793,809,40);
unL(492,793,23);
unL(746,492,12);
unL(510,746,17);
unL(141,510,30);
unL(911,141,23);
unL(147,911,30);
unL(846,147,31);
unL(385,902,19);
unL(621,232,25);
unL(215,621,27);
unL(562,608,34);
unL(462,562,48);
unL(120,827,48);
unL(795,793,27);
unL(195,795,26);
unL(864,195,35);
unL(695,864,39);
unL(689,695,71);
unL(120,689,20);
unL(623,538,34);
unL(458,623,20);
unL(849,458,20);
unL(695,564,38);
unL(235,234,10);
unL(578,449,49);
unL(769,578,12);
unL(224,769,24);
unL(679,224,28);
unL(708,679,28);
unL(715,449,22);
unL(565,715,22);
unL(689,565,28);
unL(35,689,4);
unL(741,35,23);
unL(722,216,52);
unL(545,722,57);
unL(236,545,38);
unL(172,721,14);
unL(825,172,47);
unL(236,825,24);
unL(527,236,38);
unL(237,777,33);
unL(678,237,32);
unL(922,678,39);
unL(469,922,18);
unL(238,469,21);
unL(239,922,40);
unL(884,693,24);
unL(237,884,25);
unL(225,237,27);
unL(569,225,28);
unL(569,689,59);
unL(881,544,23);
unL(241,881,19);
unL(164,241,14);
unL(814,43,33);
unL(242,814,9);
unL(816,242,17);
unL(538,816,41);
unL(241,538,49);
unL(936,241,22);
unL(819,936,27);
unL(2,819,13);
unL(827,2,51);
unL(602,2,18);
unL(226,602,12);
unL(601,226,9);
unL(217,601,35);
unL(603,823,36);
unL(878,603,31);
unL(819,878,19);
unL(594,816,11);
unL(243,242,12);
unL(95,244,1);
unL(243,44,13);
unL(733,729,18);
unL(549,193,15);
unL(875,549,16);
unL(45,930,4);
unL(222,45,4);
unL(776,222,8);
unL(511,867,6);
unL(592,107,11);
unL(615,733,8);
unL(218,197,11);
unL(615,218,17);
unL(28,436,10);
unL(619,28,19);
unL(622,619,29);
unL(429,442,40);
unL(588,245,20);
unL(429,588,19);
unL(246,487,20);
unL(15,442,17);
unL(843,15,25);
unL(247,843,29);
unL(169,245,21);
unL(14,169,28);
unL(248,246,44);
unL(16,248,44);
unL(820,16,20);
unL(247,820,21);
unL(514,247,2);
unL(588,248,36);
unL(252,553,5);
unL(251,252,4);
unL(349,251,8);
unL(452,349,25);
unL(336,452,11);
unL(879,336,14);
unL(131,599,54);
unL(294,131,41);
unL(255,453,12);
unL(680,452,25);
unL(515,680,7);
unL(400,428,22);
unL(515,254,9);
unL(582,515,14);
unL(253,582,15);
unL(876,253,6);
unL(555,876,13);
unL(394,555,3);
unL(879,500,19);
unL(453,879,15);
unL(501,639,17);
unL(256,501,20);
unL(251,257,1);
unL(916,253,27);
unL(443,916,9);
unL(704,518,86);
unL(609,306,9);
unL(191,447,16);
unL(611,227,7);
unL(231,126,24);
unL(777,578,55);
unL(139,518,40);
unL(510,30,4);
unL(258,148,15);
unL(793,117,6);
unL(262,321,2);
unL(930,512,6);
unL(140,365,7);
unL(776,930,12);
unL(591,249,9);
unL(20,591,20);
unL(20,590,9);
unL(742,88,10);
unL(697,742,18);
unL(20,697,16);
unL(712,909,14);
unL(707,264,11);
unL(867,121,3);
unL(268,906,20);
unL(584,868,37);
unL(386,584,19);
unL(270,614,2);
unL(536,270,15);
unL(868,536,19);
unL(13,73,30);
unL(234,13,24);
unL(868,234,9);
unL(50,605,5);
unL(72,584,11);
unL(850,73,34);
unL(507,29,6);
unL(622,758,12);
unL(622,152,10);
unL(712,834,13);
unL(944,50,6);
unL(757,272,12);
unL(680,254,6);
unL(257,252,4);
unL(275,257,13);
unL(276,275,42);
unL(254,453,8);
unL(409,555,13);
unL(452,500,31);
unL(916,452,28);
unL(277,681,8);
unL(275,277,19);
unL(832,918,17);
unL(170,832,15);
unL(308,170,38);
unL(645,308,13);
unL(840,851,15);
unL(607,278,9);
unL(883,281,22);
unL(258,459,31);
unL(635,258,7);
unL(264,635,21);
unL(735,264,19);
unL(635,211,25);
unL(459,477,35);
unL(459,209,36);
unL(477,480,28);
unL(461,56,6);
unL(696,787,2);
unL(461,21,7);
unL(890,637,1);
unL(800,782,6);
unL(7,800,1);
unL(798,8,4);
unL(799,798,4);
unL(7,8,2);
unL(802,797,1);
unL(782,797,4);
unL(801,6,2);
unL(799,801,3);
unL(802,6,5);
unL(771,76,15);
unL(139,3,17);
unL(455,139,14);
    }
//
   void unP (int i , int x, int y, String n) {
     nbPoints=nbPoints+1;
     if (nbPoints!=i) {
      /* erreur a faire */
      }
//
       X[nbPoints] = x / 3 ;
       Y[nbPoints] = (2800-y) / 3 ;
       N[nbPoints] = n;
   }
//
   void unL ( int d, int f, int l) {
     nbLiens=nbLiens+1;
       D[nbLiens] = d;
       F[nbLiens] = f;
       L[nbLiens] = l;
       T[nbLiens] = l;
       A[nbLiens]=false;
   }
//
   void unA ( int d, int f, int l) {
     nbLiens=nbLiens+1;
       D[nbLiens] = d;
       F[nbLiens] = f;
       L[nbLiens] = l;
       T[nbLiens] = (l*90)  / gain ;
       A[nbLiens]=true;
   }
//
   static int nearof (int x, int y) {
     int i,n=0;
     double dist,minimum;
     minimum=999999.99;
//     nbEtapes=nbEtapes+1;
     for (i=1;i<=nbPoints;i=i+1) {
       dist= (X[i]-x)*(X[i]-x) + (Y[i]-y)*(Y[i]-y);
       if (dist < minimum) {
          minimum=dist;
          n=i;
        }
       }
//     lesEtapes[nbEtapes]=n;
//     System.out.println("Click  "+getnom(n));
     return n;
   }
//
   static int getx (int n) {
         return X[n];
    }
//
   static int gety (int n) {
         return Y[n];
    }
//
   static int next (int depart, int arrivee ) {
     int interd;
     nbEtapes=nbEtapes+1;
     interd=0;
     if (D[sortie [depart]] == depart) interd= F[sortie[depart]];
     if (F[sortie [depart]] == depart) interd= D[sortie[depart]];
     lesEtapes[nbEtapes]=-interd;
     totKm=totKm + L[sortie[depart]];
     totTemps=totTemps + T[sortie[depart]];
//     System.out.println("Auto   "+nbEtapes+" "+totKm+"/"+totTemps+" "+kilo[interd]+
//         " ["+interd+"] "+" : "+getnom(interd));
//     if (interd == 0) interd= arrivee;
     return interd ;
   }
//
   static int chemin (int depart, int arrivee) {
     int d0,prof0,reprise ; // distance atteinte
     int d1 ;
     int mindist ; // distance minimum genereepar prof en cours
     int trouve;
     int che;
     int interd;
     int leFinal;
     int profondeur;
     int isol,nbsol ;
     boolean yad,yaf;
//     System.out.println("recheche du chemin entre "+depart+" "+arrivee);
//
// initialiser tous les pointsa distance infinie
     for (interd=1;interd <= nbPoints; interd=interd+1) {
       kilo[interd]=32000;
       sortie[interd]=0;
     }

     for (interd=1;interd <= nbLiens; interd=interd+1) {
       U[interd]=false;
     }
// marquer le point arrivee comme deja fait!
     kilo [arrivee] = 0;
     profondeur=0;
     prof0=0;
     d0=32000;
     do {
       mindist=32001;
       trouve=0;
       profondeur=profondeur+1;
//       System.out.println("profondeur "+profondeur);
// memoriser les distances "avant" pour voir si meilleure
       for (interd=1;interd <= nbPoints; interd=interd+1) {
          candidat[interd]=kilo[interd];
       };
//
     reprise=32000;
     for (che=1; che <= nbLiens; che=che+1) {
         nbsol=0;
         if (kilo[D[che]] != 32000) {
            nbsol=nbsol+1;
            intersol[nbsol]=F[che];
            finalsol[nbsol]=D[che];
         };
//
         if (kilo[F[che]] != 32000) {
            nbsol=nbsol+1;
            intersol[nbsol]=D[che];
            finalsol[nbsol]=F[che];
         };
//
         if (nbsol > 0) U[che]=true;
//
         for (isol=1;isol<=nbsol;isol=isol+1) {
           interd=intersol[isol];
           leFinal=finalsol[isol];
//
           d1 = T[che] + kilo[leFinal] ;
           if (d1  < candidat[interd] ) {
             trouve=trouve+1;
             sortie[interd]=che;
             if (candidat[interd] != 32000) {
                if (kilo[interd]<reprise) reprise=kilo[interd];
             };
             candidat[interd]=d1;
//           System.out.println(" Candidat ["+leFinal+"] now = "+candidat[leFinal]);
// si depart trouve noter distance
             if (interd==depart) {
                d0=d1 ;
                prof0=profondeur;
//                System.out.println("arrivee atteint d0= "+d0+" a prof "+prof0);
             }
             if (candidat[interd] < mindist) mindist=candidat[interd];
           };
};
         };
//         System.out.println("profondeur = "+profondeur+" min dist= "+mindist);
//
// une profondeur de faite on transfere les kilometres
      for (interd=1;interd <= nbPoints; interd=interd+1) {
        kilo[interd]=candidat[interd];
        if (kilo[interd]>reprise) kilo[interd]=32000;
      };
//    System.out.println("trouve="+trouve+" a profon="+profondeur);
    } while ( (trouve > 0) && (d0 > mindist ) ) ;
//
//    System.out.println("Chemin a profondeur="+prof0);
    return prof0;
  }
//
   static String  getnom (int n) {
         return N[n];
    }
//
   static void fond (Graphics G) {
     int i,n;
     int xd,yd,xf,yf;
//     G.setBackground(Color.black);
     G.setColor(Color.blue);
     for (i=nbLiens;i>=1;i=i-1) {
        xd=X[D[i]];
        yd=Y[D[i]];
        xf=X[F[i]];
        yf=Y[F[i]];
        if (A[i]) G.setColor(Color.orange) ;
        if (!A[i]) G.setColor(Color.red) ;
//       System.out.println("Fon "+i+" "+xd+" "+yd+" "+xf+" "+yf);
        G.drawLine(xd,yd,xf,yf);
        }
     G.setColor(Color.black);
     for (i=1;i<=nbEtapes-1;i=i+1) {
        n=lesEtapes[i];
        if (n<0) n=-n;
        xd=X[n];
        yd=Y[n];
        n=lesEtapes[i+1];
        if (n<0) n=-n;
        xf=X[n];
        yf=Y[n];
//       System.out.println("Tra "+i+" "+xd+" "+yd+" "+xf+" "+yf);
        G.drawLine(xd,yd,xf,yf);
        }
       }
  }
//
