% http://www.cs.kuleuven.be/~dtai/events/ASP-competition/Benchmarks/TravellingSalesPerson.shtml % by Neng-Fa Zhou, March 31, 2009 :-include(base). solve(As):- (member(bound(N),As)->true;true), findall(edgewt(X,Y,W),member(edgewt(X,Y,W),As),Es), (member(maxweight(MaxW),As)->true;true), length(Vars,N), VsVect=..[v|Vars], functor(DomVect,v,N), extract_doms(Es,DomVect), decl_domains(Vars,1,DomVect), circuit(Vars), extract_weight(Es,VsVect,Ws), sum(Ws) #= TotalW, TotalW #=< MaxW, minof(mylabeling_ffc(Vars),TotalW,output(VsVect,1,0,N)), format("OPTIMUM FOUND"). solve(_):- format("UNSATISFIABLE~n"). mylabeling_ffc([]):-true : true. mylabeling_ffc([Var|Vars]):- integer(Var) : mylabeling_ffc(Vars). mylabeling_ffc(Vars):- deleteffc(Var,Vars,Rest), get_attr(Var,sorted_neighbors,D), member(Var,D), % select an edge with the lowest weight mylabeling_ffc(Rest). extract_doms([],_). extract_doms([edgewt(X,Y,W)|Es],DomVect):- arg(X,DomVect,Dx), member((W,Y),Dx), arg(Y,DomVect,Dy), member((W,X),Dy),!, extract_doms(Es,DomVect). decl_domains([],_,_). decl_domains([V|Vs],I,DomVect):- arg(I,DomVect,WeightNodeLst), closetail(WeightNodeLst), sort(WeightNodeLst,SortedWeightNodeLst), assoc_bs(SortedWeightNodeLst,D), (var(V)->put_attr_no_hook(V, sorted_neighbors,D);true), % for labeling V :: D, I1 is I+1, decl_domains(Vs,I1,DomVect). /* [(a1,b1),...,(an,bn)] -> [b1,...,bn] */ assoc_bs([],[]). assoc_bs([(_,B)|Lst],[B|Bs]):- assoc_bs(Lst,Bs). extract_weight([],_,[]). extract_weight([edgewt(X,Y,W)|Es],VsVect,[B*W|Ws]):- B :: 0..1, arg(X,VsVect,Vx), arg(Y,VsVect,Vy), B #<=> (Vx#=Y #\/ Vy#=X), extract_weight(Es,VsVect,Ws). output(_Vect,_I,Count,N):-Count>=N,!,nl. output(Vect,I,Count,N):- arg(I,Vect,NI), format("cycle(~w,~w). ",[I,NI]), Count1 is Count+1, output(Vect,NI,Count1,N). test:- solve([bound(70), vtx(1), vtx(2), vtx(3), vtx(4), vtx(5), vtx(6), vtx(7), vtx(8), vtx(9), vtx(10), vtx(11), vtx(12), vtx(13), vtx(14), vtx(15), vtx(16), vtx(17), vtx(18), vtx(19), vtx(20), vtx(21), vtx(22), vtx(23), vtx(24), vtx(25), vtx(26), vtx(27), vtx(28), vtx(29), vtx(30), vtx(31), vtx(32), vtx(33), vtx(34), vtx(35), vtx(36), vtx(37), vtx(38), vtx(39), vtx(40), vtx(41), vtx(42), vtx(43), vtx(44), vtx(45), vtx(46), vtx(47), vtx(48), vtx(49), vtx(50), vtx(51), vtx(52), vtx(53), vtx(54), vtx(55), vtx(56), vtx(57), vtx(58), vtx(59), vtx(60), vtx(61), vtx(62), vtx(63), vtx(64), vtx(65), vtx(66), vtx(67), vtx(68), vtx(69), vtx(70), edge(46,64), edge(1,18), edge(55,14), edge(66,9), edge(19,33), edge(5,26), edge(56,11), edge(48,13), edge(67,36), edge(38,62), edge(21,29), edge(61,8), edge(61,69), edge(60,53), edge(35,23), edge(50,10), edge(17,50), edge(27,1), edge(63,23), edge(10,12), edge(38,41), edge(25,16), edge(53,22), edge(51,20), edge(14,1), edge(49,4), edge(9,39), edge(3,68), edge(22,37), edge(21,1), edge(47,37), edge(51,4), edge(38,43), edge(26,47), edge(55,10), edge(60,22), edge(51,15), edge(37,33), edge(36,18), edge(53,50), edge(19,31), edge(54,27), edge(70,56), edge(24,21), edge(23,44), edge(22,69), edge(10,2), edge(2,47), edge(44,27), edge(24,29), edge(37,13), edge(51,17), edge(28,18), edge(50,64), edge(35,32), edge(43,53), edge(63,26), edge(9,62), edge(12,33), edge(13,34), edge(7,34), edge(32,17), edge(35,33), edge(64,9), edge(60,17), edge(37,26), edge(30,18), edge(43,57), edge(35,22), edge(50,70), edge(54,23), edge(53,46), edge(49,62), edge(37,60), edge(24,49), edge(23,31), edge(13,55), edge(47,18), edge(40,55), edge(7,56), edge(22,33), edge(15,40), edge(5,2), edge(5,27), edge(10,4), edge(57,55), edge(52,48), edge(22,41), edge(2,1), edge(64,32), edge(8,60), edge(65,48), edge(44,1), edge(34,66), edge(34,48), edge(35,39), edge(49,40), edge(65,30), edge(43,5), edge(34,30), edge(60,15), edge(7,11), edge(55,9), edge(12,49), edge(40,25), edge(26,48), edge(14,20), edge(26,58), edge(21,59), edge(54,55), edge(23,15), edge(57,18), edge(45,30), edge(22,8), edge(60,11), edge(23,66), edge(5,33), edge(56,44), edge(57,11), edge(22,1), edge(31,47), edge(58,52), edge(35,41), edge(36,1), edge(59,58), edge(16,46), edge(5,61), edge(6,27), edge(68,65), edge(37,21), edge(61,58), edge(28,65), edge(21,13), edge(39,8), edge(24,60), edge(8,54), edge(37,66), edge(37,1), edge(2,25), edge(59,17), edge(1,64), edge(8,7), edge(20,5), edge(1,57), edge(26,62), edge(45,53), edge(56,65), edge(65,25), edge(3,19), edge(15,11), edge(3,51), edge(6,38), edge(52,43), edge(39,54), edge(67,28), edge(70,68), edge(21,7), edge(4,41), edge(12,5), edge(27,38), edge(66,1), edge(20,52), edge(66,15), edge(6,69), edge(33,21), edge(9,36), edge(1,15), edge(3,53), edge(57,42), edge(36,54), edge(69,36), edge(51,19), edge(43,55), edge(59,55), edge(59,16), edge(22,55), edge(17,41), edge(56,43), edge(11,18), edge(63,19), edge(54,63), edge(33,56), edge(46,19), edge(27,11), edge(44,18), edge(2,26), edge(49,23), edge(10,65), edge(7,49), edge(18,67), edge(10,36), edge(50,3), edge(48,17), edge(63,58), edge(19,18), edge(34,1), edge(61,51), edge(37,24), edge(53,63), edge(2,6), edge(2,67), edge(69,48), edge(4,48), edge(66,21), edge(45,5), edge(56,25), edge(60,56), edge(1,52), edge(44,19), edge(69,7), edge(20,60), edge(58,57), edge(13,40), edge(49,15), edge(46,51), edge(12,45), edge(28,15), edge(22,23), edge(35,67), edge(28,21), edge(21,35), edge(5,10), edge(20,6), edge(62,64), edge(25,60), edge(70,44), edge(50,57), edge(30,63), edge(27,9), edge(8,2), edge(59,19), edge(33,68), edge(39,68), edge(64,66), edge(19,15), edge(31,24), edge(25,51), edge(29,16), edge(44,53), edge(6,43), edge(27,55), edge(30,56), edge(48,56), edge(64,55), edge(3,34), edge(68,35), edge(31,36), edge(33,25), edge(32,51), edge(40,62), edge(5,64), edge(43,33), edge(9,16), edge(16,14), edge(59,42), edge(69,18), edge(28,46), edge(4,22), edge(30,62), edge(4,32), edge(25,1), edge(67,56), edge(37,30), edge(11,68), edge(11,50), edge(43,32), edge(48,51), edge(48,63), edge(65,36), edge(35,64), edge(54,62), edge(39,58), edge(13,69), edge(49,16), edge(31,3), edge(17,28), edge(58,53), edge(57,68), edge(51,67), edge(48,41), edge(12,20), edge(3,59), edge(1,50), edge(52,66), edge(69,8), edge(27,57), edge(20,26), edge(35,36), edge(56,37), edge(53,13), edge(25,35), edge(70,23), edge(16,67), edge(70,57), edge(8,20), edge(59,67), edge(20,39), edge(48,16), edge(4,53), edge(1,31), maxweight(1200), edgewt(1,2,8 ), edgewt(2,1,8 ), edgewt(1,14,20 ), edgewt(14,1,20 ), edgewt(1,15,4 ), edgewt(15,1,4 ), edgewt(1,18,19 ), edgewt(18,1,19 ), edgewt(1,21,15 ), edgewt(21,1,15 ), edgewt(1,22,17 ), edgewt(22,1,17 ), edgewt(1,25,7 ), edgewt(25,1,7 ), edgewt(1,27,9 ), edgewt(27,1,9 ), edgewt(1,31,3 ), edgewt(31,1,3 ), edgewt(1,34,4 ), edgewt(34,1,4 ), edgewt(1,36,3 ), edgewt(36,1,3 ), edgewt(1,37,5 ), edgewt(37,1,5 ), edgewt(1,44,17 ), edgewt(44,1,17 ), edgewt(1,50,15 ), edgewt(50,1,15 ), edgewt(1,52,1 ), edgewt(52,1,1 ), edgewt(1,57,9 ), edgewt(57,1,9 ), edgewt(1,64,11 ), edgewt(64,1,11 ), edgewt(1,66,17 ), edgewt(66,1,17 ), edgewt(2,5,2 ), edgewt(5,2,2 ), edgewt(2,6,16 ), edgewt(6,2,16 ), edgewt(2,8,19 ), edgewt(8,2,19 ), edgewt(2,10,3 ), edgewt(10,2,3 ), edgewt(2,25,6 ), edgewt(25,2,6 ), edgewt(2,26,12 ), edgewt(26,2,12 ), edgewt(2,47,18 ), edgewt(47,2,18 ), edgewt(2,67,13 ), edgewt(67,2,13 ), edgewt(3,19,7 ), edgewt(19,3,7 ), edgewt(3,31,18 ), edgewt(31,3,18 ), edgewt(3,34,3 ), edgewt(34,3,3 ), edgewt(3,50,2 ), edgewt(50,3,2 ), edgewt(3,51,7 ), edgewt(51,3,7 ), edgewt(3,53,15 ), edgewt(53,3,15 ), edgewt(3,59,4 ), edgewt(59,3,4 ), edgewt(3,68,7 ), edgewt(68,3,7 ), edgewt(4,10,20 ), edgewt(10,4,20 ), edgewt(4,22,15 ), edgewt(22,4,15 ), edgewt(4,32,20 ), edgewt(32,4,20 ), edgewt(4,41,3 ), edgewt(41,4,3 ), edgewt(4,48,18 ), edgewt(48,4,18 ), edgewt(4,49,12 ), edgewt(49,4,12 ), edgewt(4,51,8 ), edgewt(51,4,8 ), edgewt(4,53,12 ), edgewt(53,4,12 ), edgewt(5,10,19 ), edgewt(10,5,19 ), edgewt(5,12,15 ), edgewt(12,5,15 ), edgewt(5,20,2 ), edgewt(20,5,2 ), edgewt(5,26,20 ), edgewt(26,5,20 ), edgewt(5,27,3 ), edgewt(27,5,3 ), edgewt(5,33,19 ), edgewt(33,5,19 ), edgewt(5,43,11 ), edgewt(43,5,11 ), edgewt(5,45,4 ), edgewt(45,5,4 ), edgewt(5,61,8 ), edgewt(61,5,8 ), edgewt(5,64,1 ), edgewt(64,5,1 ), edgewt(6,20,6 ), edgewt(20,6,6 ), edgewt(6,27,15 ), edgewt(27,6,15 ), edgewt(6,38,19 ), edgewt(38,6,19 ), edgewt(6,43,1 ), edgewt(43,6,1 ), edgewt(6,69,16 ), edgewt(69,6,16 ), edgewt(7,8,13 ), edgewt(8,7,13 ), edgewt(7,11,6 ), edgewt(11,7,6 ), edgewt(7,21,19 ), edgewt(21,7,19 ), edgewt(7,34,1 ), edgewt(34,7,1 ), edgewt(7,49,19 ), edgewt(49,7,19 ), edgewt(7,56,3 ), edgewt(56,7,3 ), edgewt(7,69,12 ), edgewt(69,7,12 ), edgewt(8,20,16 ), edgewt(20,8,16 ), edgewt(8,22,6 ), edgewt(22,8,6 ), edgewt(8,39,19 ), edgewt(39,8,19 ), edgewt(8,54,15 ), edgewt(54,8,15 ), edgewt(8,60,3 ), edgewt(60,8,3 ), edgewt(8,61,1 ), edgewt(61,8,1 ), edgewt(8,69,4 ), edgewt(69,8,4 ), edgewt(9,16,10 ), edgewt(16,9,10 ), edgewt(9,27,2 ), edgewt(27,9,2 ), edgewt(9,36,7 ), edgewt(36,9,7 ), edgewt(9,39,20 ), edgewt(39,9,20 ), edgewt(9,55,5 ), edgewt(55,9,5 ), edgewt(9,62,1 ), edgewt(62,9,1 ), edgewt(9,64,5 ), edgewt(64,9,5 ), edgewt(9,66,20 ), edgewt(66,9,20 ), edgewt(10,12,4 ), edgewt(12,10,4 ), edgewt(10,36,16 ), edgewt(36,10,16 ), edgewt(10,50,4 ), edgewt(50,10,4 ), edgewt(10,55,7 ), edgewt(55,10,7 ), edgewt(10,65,7 ), edgewt(65,10,7 ), edgewt(11,15,7 ), edgewt(15,11,7 ), edgewt(11,18,16 ), edgewt(18,11,16 ), edgewt(11,27,10 ), edgewt(27,11,10 ), edgewt(11,50,7 ), edgewt(50,11,7 ), edgewt(11,56,16 ), edgewt(56,11,16 ), edgewt(11,57,20 ), edgewt(57,11,20 ), edgewt(11,60,16 ), edgewt(60,11,16 ), edgewt(11,68,7 ), edgewt(68,11,7 ), edgewt(12,20,3 ), edgewt(20,12,3 ), edgewt(12,33,1 ), edgewt(33,12,1 ), edgewt(12,45,15 ), edgewt(45,12,15 ), edgewt(12,49,18 ), edgewt(49,12,18 ), edgewt(13,21,16 ), edgewt(21,13,16 ), edgewt(13,34,10 ), edgewt(34,13,10 ), edgewt(13,37,15 ), edgewt(37,13,15 ), edgewt(13,40,8 ), edgewt(40,13,8 ), edgewt(13,48,2 ), edgewt(48,13,2 ), edgewt(13,53,7 ), edgewt(53,13,7 ), edgewt(13,55,2 ), edgewt(55,13,2 ), edgewt(13,69,14 ), edgewt(69,13,14 ), edgewt(14,16,1 ), edgewt(16,14,1 ), edgewt(14,20,15 ), edgewt(20,14,15 ), edgewt(14,55,3 ), edgewt(55,14,3 ), edgewt(15,19,10 ), edgewt(19,15,10 ), edgewt(15,23,5 ), edgewt(23,15,5 ), edgewt(15,28,2 ), edgewt(28,15,2 ), edgewt(15,40,20 ), edgewt(40,15,20 ), edgewt(15,49,8 ), edgewt(49,15,8 ), edgewt(15,51,19 ), edgewt(51,15,19 ), edgewt(15,60,16 ), edgewt(60,15,16 ), edgewt(15,66,7 ), edgewt(66,15,7 ), edgewt(16,25,17 ), edgewt(25,16,17 ), edgewt(16,29,10 ), edgewt(29,16,10 ), edgewt(16,46,18 ), edgewt(46,16,18 ), edgewt(16,48,4 ), edgewt(48,16,4 ), edgewt(16,49,17 ), edgewt(49,16,17 ), edgewt(16,59,11 ), edgewt(59,16,11 ), edgewt(16,67,11 ), edgewt(67,16,11 ), edgewt(17,28,14 ), edgewt(28,17,14 ), edgewt(17,32,16 ), edgewt(32,17,16 ), edgewt(17,41,14 ), edgewt(41,17,14 ), edgewt(17,48,18 ), edgewt(48,17,18 ), edgewt(17,50,13 ), edgewt(50,17,13 ), edgewt(17,51,15 ), edgewt(51,17,15 ), edgewt(17,59,2 ), edgewt(59,17,2 ), edgewt(17,60,10 ), edgewt(60,17,10 ), edgewt(18,19,11 ), edgewt(19,18,11 ), edgewt(18,28,20 ), edgewt(28,18,20 ), edgewt(18,30,12 ), edgewt(30,18,12 ), edgewt(18,36,17 ), edgewt(36,18,17 ), edgewt(18,44,11 ), edgewt(44,18,11 ), edgewt(18,47,18 ), edgewt(47,18,18 ), edgewt(18,57,3 ), edgewt(57,18,3 ), edgewt(18,67,13 ), edgewt(67,18,13 ), edgewt(18,69,15 ), edgewt(69,18,15 ), edgewt(19,31,12 ), edgewt(31,19,12 ), edgewt(19,33,14 ), edgewt(33,19,14 ), edgewt(19,44,15 ), edgewt(44,19,15 ), edgewt(19,46,13 ), edgewt(46,19,13 ), edgewt(19,51,15 ), edgewt(51,19,15 ), edgewt(19,59,11 ), edgewt(59,19,11 ), edgewt(19,63,3 ), edgewt(63,19,3 ), edgewt(20,26,3 ), edgewt(26,20,3 ), edgewt(20,39,4 ), edgewt(39,20,4 ), edgewt(20,51,18 ), edgewt(51,20,18 ), edgewt(20,52,2 ), edgewt(52,20,2 ), edgewt(20,60,10 ), edgewt(60,20,10 ), edgewt(21,24,19 ), edgewt(24,21,19 ), edgewt(21,28,16 ), edgewt(28,21,16 ), edgewt(21,29,4 ), edgewt(29,21,4 ), edgewt(21,33,4 ), edgewt(33,21,4 ), edgewt(21,35,13 ), edgewt(35,21,13 ), edgewt(21,37,20 ), edgewt(37,21,20 ), edgewt(21,59,19 ), edgewt(59,21,19 ), edgewt(21,66,20 ), edgewt(66,21,20 ), edgewt(22,23,11 ), edgewt(23,22,11 ), edgewt(22,33,9 ), edgewt(33,22,9 ), edgewt(22,35,3 ), edgewt(35,22,3 ), edgewt(22,37,18 ), edgewt(37,22,18 ), edgewt(22,41,7 ), edgewt(41,22,7 ), edgewt(22,53,15 ), edgewt(53,22,15 ), edgewt(22,55,15 ), edgewt(55,22,15 ), edgewt(22,60,16 ), edgewt(60,22,16 ), edgewt(22,69,14 ), edgewt(69,22,14 ), edgewt(23,31,11 ), edgewt(31,23,11 ), edgewt(23,35,6 ), edgewt(35,23,6 ), edgewt(23,44,3 ), edgewt(44,23,3 ), edgewt(23,49,16 ), edgewt(49,23,16 ), edgewt(23,54,2 ), edgewt(54,23,2 ), edgewt(23,63,16 ), edgewt(63,23,16 ), edgewt(23,66,10 ), edgewt(66,23,10 ), edgewt(23,70,12 ), edgewt(70,23,12 ), edgewt(24,29,15 ), edgewt(29,24,15 ), edgewt(24,31,16 ), edgewt(31,24,16 ), edgewt(24,37,6 ), edgewt(37,24,6 ), edgewt(24,49,2 ), edgewt(49,24,2 ), edgewt(24,60,18 ), edgewt(60,24,18 ), edgewt(25,33,5 ), edgewt(33,25,5 ), edgewt(25,35,12 ), edgewt(35,25,12 ), edgewt(25,40,12 ), edgewt(40,25,12 ), edgewt(25,51,8 ), edgewt(51,25,8 ), edgewt(25,56,20 ), edgewt(56,25,20 ), edgewt(25,60,1 ), edgewt(60,25,1 ), edgewt(25,65,12 ), edgewt(65,25,12 ), edgewt(26,37,2 ), edgewt(37,26,2 ), edgewt(26,47,4 ), edgewt(47,26,4 ), edgewt(26,48,13 ), edgewt(48,26,13 ), edgewt(26,58,11 ), edgewt(58,26,11 ), edgewt(26,62,12 ), edgewt(62,26,12 ), edgewt(26,63,7 ), edgewt(63,26,7 ), edgewt(27,38,3 ), edgewt(38,27,3 ), edgewt(27,44,19 ), edgewt(44,27,19 ), edgewt(27,54,20 ), edgewt(54,27,20 ), edgewt(27,55,16 ), edgewt(55,27,16 ), edgewt(27,57,7 ), edgewt(57,27,7 ), edgewt(28,46,3 ), edgewt(46,28,3 ), edgewt(28,65,11 ), edgewt(65,28,11 ), edgewt(28,67,2 ), edgewt(67,28,2 ), edgewt(30,34,9 ), edgewt(34,30,9 ), edgewt(30,37,1 ), edgewt(37,30,1 ), edgewt(30,45,9 ), edgewt(45,30,9 ), edgewt(30,56,17 ), edgewt(56,30,17 ), edgewt(30,62,5 ), edgewt(62,30,5 ), edgewt(30,63,2 ), edgewt(63,30,2 ), edgewt(30,65,7 ), edgewt(65,30,7 ), edgewt(31,36,7 ), edgewt(36,31,7 ), edgewt(31,47,3 ), edgewt(47,31,3 ), edgewt(32,35,10 ), edgewt(35,32,10 ), edgewt(32,43,8 ), edgewt(43,32,8 ), edgewt(32,51,9 ), edgewt(51,32,9 ), edgewt(32,64,10 ), edgewt(64,32,10 ), edgewt(33,35,7 ), edgewt(35,33,7 ), edgewt(33,37,5 ), edgewt(37,33,5 ), edgewt(33,43,2 ), edgewt(43,33,2 ), edgewt(33,56,14 ), edgewt(56,33,14 ), edgewt(33,68,8 ), edgewt(68,33,8 ), edgewt(34,48,6 ), edgewt(48,34,6 ), edgewt(34,66,7 ), edgewt(66,34,7 ), edgewt(35,36,16 ), edgewt(36,35,16 ), edgewt(35,39,10 ), edgewt(39,35,10 ), edgewt(35,41,7 ), edgewt(41,35,7 ), edgewt(35,64,11 ), edgewt(64,35,11 ), edgewt(35,67,2 ), edgewt(67,35,2 ), edgewt(35,68,11 ), edgewt(68,35,11 ), edgewt(36,54,9 ), edgewt(54,36,9 ), edgewt(36,65,8 ), edgewt(65,36,8 ), edgewt(36,67,17 ), edgewt(67,36,17 ), edgewt(36,69,1 ), edgewt(69,36,1 ), edgewt(37,47,9 ), edgewt(47,37,9 ), edgewt(37,56,3 ), edgewt(56,37,3 ), edgewt(37,60,16 ), edgewt(60,37,16 ), edgewt(37,66,4 ), edgewt(66,37,4 ), edgewt(38,41,7 ), edgewt(41,38,7 ), edgewt(38,43,20 ), edgewt(43,38,20 ), edgewt(38,62,3 ), edgewt(62,38,3 ), edgewt(39,54,13 ), edgewt(54,39,13 ), edgewt(39,58,20 ), edgewt(58,39,20 ), edgewt(39,68,14 ), edgewt(68,39,14 ), edgewt(40,49,17 ), edgewt(49,40,17 ), edgewt(40,55,2 ), edgewt(55,40,2 ), edgewt(40,62,18 ), edgewt(62,40,18 ), edgewt(41,48,18 ), edgewt(48,41,18 ), edgewt(42,57,14 ), edgewt(57,42,14 ), edgewt(42,59,9 ), edgewt(59,42,9 ), edgewt(43,52,19 ), edgewt(52,43,19 ), edgewt(43,53,8 ), edgewt(53,43,8 ), edgewt(43,55,3 ), edgewt(55,43,3 ), edgewt(43,56,14 ), edgewt(56,43,14 ), edgewt(43,57,6 ), edgewt(57,43,6 ), edgewt(44,53,6 ), edgewt(53,44,6 ), edgewt(44,56,18 ), edgewt(56,44,18 ), edgewt(44,70,11 ), edgewt(70,44,11 ), edgewt(45,53,2 ), edgewt(53,45,2 ), edgewt(46,51,9 ), edgewt(51,46,9 ), edgewt(46,53,14 ), edgewt(53,46,14 ), edgewt(46,64,8 ), edgewt(64,46,8 ), edgewt(48,51,18 ), edgewt(51,48,18 ), edgewt(48,52,11 ), edgewt(52,48,11 ), edgewt(48,56,19 ), edgewt(56,48,19 ), edgewt(48,63,6 ), edgewt(63,48,6 ), edgewt(48,65,18 ), edgewt(65,48,18 ), edgewt(48,69,20 ), edgewt(69,48,20 ), edgewt(49,62,1 ), edgewt(62,49,1 ), edgewt(50,53,16 ), edgewt(53,50,16 ), edgewt(50,57,5 ), edgewt(57,50,5 ), edgewt(50,64,12 ), edgewt(64,50,12 ), edgewt(50,70,15 ), edgewt(70,50,15 ), edgewt(51,61,16 ), edgewt(61,51,16 ), edgewt(51,67,13 ), edgewt(67,51,13 ), edgewt(52,58,5 ), edgewt(58,52,5 ), edgewt(52,66,17 ), edgewt(66,52,17 ), edgewt(53,58,1 ), edgewt(58,53,1 ), edgewt(53,60,1 ), edgewt(60,53,1 ), edgewt(53,63,16 ), edgewt(63,53,16 ), edgewt(54,55,20 ), edgewt(55,54,20 ), edgewt(54,62,5 ), edgewt(62,54,5 ), edgewt(54,63,1 ), edgewt(63,54,1 ), edgewt(55,57,3 ), edgewt(57,55,3 ), edgewt(55,59,3 ), edgewt(59,55,3 ), edgewt(55,64,14 ), edgewt(64,55,14 ), edgewt(56,60,5 ), edgewt(60,56,5 ), edgewt(56,65,1 ), edgewt(65,56,1 ), edgewt(56,67,5 ), edgewt(67,56,5 ), edgewt(56,70,9 ), edgewt(70,56,9 ), edgewt(57,58,11 ), edgewt(58,57,11 ), edgewt(57,68,6 ), edgewt(68,57,6 ), edgewt(57,70,19 ), edgewt(70,57,19 ), edgewt(58,59,13 ), edgewt(59,58,13 ), edgewt(58,61,12 ), edgewt(61,58,12 ), edgewt(58,63,9 ), edgewt(63,58,9 ), edgewt(59,67,8 ), edgewt(67,59,8 ), edgewt(61,69,1 ), edgewt(69,61,1 ), edgewt(62,64,11 ), edgewt(64,62,11 ), edgewt(64,66,7 ), edgewt(66,64,7 ), edgewt(65,68,12 ), edgewt(68,65,12 ), edgewt(68,70,13 ), edgewt(70,68,13 )]).