struct Edge{
int from,to,w;
};
int first[MAX_V];
int next[MAX_E];
void init()
{
memset(first,-1,sizeof(first));
memset(next,-1,sizeof(next));
}
void read_edge(int u,int v,int w)
{
static int id = 0;
edges[id].from = u;edges[id].to = v;edges[id].weight =w;
next[id] = first[u];
first[u] = id++;
}