from collections import deque
def spfa(n,edge,source,dest):
    graph={i:[]for i in range(1,n+1)}
    for u,v,w in edges:
        graph[u].append((v,w))
        graph[v].append((u,w))
        dist=[float('inf')]*(n+1)
        dist[source]=0
        in_queue=[flase]*(n+1)
        queue=deque([source])
        in_queue[source]=True
        while queue:
            u=queue.popleft()
            in_queue[u]=False
            for v,w in graph[u]:
                if dist[u]+w<dist[v]:
                    dist[v]=dist[u]+w
                    if not in_queue[v]:
                        queue.append(v)
                        in_queue[v]=True
    return dist[dest]if dist[dest]!=float('inf')else -1
def main():
    n=int(input().strip())
    if n<0:
        print("Invalid input")
        return
    m=int(input().strip())
    edges=[]
    for _ in range(m):
        u,v,w=map(int,input().split())
        edges.append((u,v,w))
        s,d=map(int,input().split())
        result=spfa(n,edges,s,d)
        print(result if result != -1 else -1)
if __name__=="__ main __":
    main()