#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstring>
using namespace std;
int cnt2,poi1[51],nxt1[2501],des1[2501],cst1[2501];
int cnt1,poi2[51],nxt2[2501],des2[2501],cst2[2501];//反图
int n,m,k,a,b;
priority_queue <pair<int ,int>,vector<pair<int,int> >,greater<pair<int,int> > > q1;
int dis[51],inq[51];
struct node{
int u,s,sum;
vector<int> r;
};
bool operator < (node x,node y){
if(x.sum != y.sum){
return x.sum > y.sum;
}
int sz = min( x.r.size(),y.r.size() );
for (int i = 0; i < sz; i++){
if(x.r[i] != y.r[i]){
return x.r[i] > y.r[i];
}
}
//return x.r.size() > x.r.size();
}
priority_queue <node> q;
int flag,num;
void add1(int u,int v,int