n = int(eval(input()))

edgeList = []

rootList = [-1 for i in range(n)]

parent = [-1 for i in range(n)]

lenList = [0 for i in range(n)]

sumLength = 0

for i in range(n):

    a = list(map(int, input().split()))

    for j in range(a[1]):

        edgeList.append([a[2*j+3], i, a[2*j+2]])





rootList = [-1 for i in range(n)]

parent = [0 for i in range(n)]

lenList = [float("inf") for i in range(n)]

lenList[0] = 0

def getRoot(x):

    r = rootList[x]

    if r < 0:

        rootList[x] = x

    elif r != x:

        rootList[x] = getRoot(r)

    return rootList[x]



flag = True

while flag:

    flag = False

    edgeList.sort(key=lambda x: (x[0] + lenList[x[1]]))

    for e in edgeList:    # weight:e[0], e[1]->e[2]

        if e[2] == 0:

            continue

        x = getRoot(e[1])

        y = getRoot(e[2])

        if x == 0 != y:

            parent[e[2]] = e[1]

            lenList[e[2]] = lenList[e[1]] + e[0]

            rootList[y] = 0

            flag = True

            break



for i, j in zip(list(range(n)), lenList):

    print((i, j))
n = int(eval(input()))

edgeList = []

for i in range(n):

    a = list(map(int, input().split()))

    for j in range(a[1]):

        edgeList.append([a[2*j+3], i, a[2*j+2]])

 

 

rootList = [-1 for i in range(n)]

parent = [0 for i in range(n)]

lenList = [float("inf") for i in range(n)]

lenList[0] = 0

def getRoot(x):

    r = rootList[x]

    if r < 0:

        rootList[x] = x

    elif r != x:

        rootList[x] = getRoot(r)

    return rootList[x]

 

flag = True

while flag:

    flag = False

    edgeList.sort(key=lambda x: (x[0] + lenList[x[1]]))

    for e in edgeList:    # weight:e[0], e[1]->e[2]

        if e[2] == 0:

            continue

        x = getRoot(e[1])

        y = getRoot(e[2])

        if x == 0 != y:

            parent[e[2]] = e[1]

            lenList[e[2]] = lenList[e[1]] + e[0]

            rootList[y] = 0

            flag = True

            break

 

for i, j in zip(list(range(n)), lenList):

    print((i, j))
n = int(eval(input()))
edgeList = []
rootList = [-1 for i in range(n)]
parent = [-1 for i in range(n)]
lenList = [0 for i in range(n)]
sumLength = 0
for i in range(n):
    a = list(map(int, input().split()))
    for j in range(a[1]):
        edgeList.append([a[2 * j + 3], i, a[2 * j + 2]])
rootList = [-1 for i in range(n)]
parent = [0 for i in range(n)]
lenList = [float("inf") for i in range(n)]
lenList[0] = 0


def getRoot(x):
    r = rootList[x]
    if r < 0:
        rootList[x] = x
    elif r != x:
        rootList[x] = getRoot(r)
    return rootList[x]


flag = True
while flag:
    flag = False
    edgeList.sort(key=lambda x: (x[0] + lenList[x[1]]))
    for e in edgeList:  # weight:e[0], e[1]->e[2]
        if e[2] == 0:
            continue
        x = getRoot(e[1])
        y = getRoot(e[2])
        if x == 0 != y:
            parent[e[2]] = e[1]
            lenList[e[2]] = lenList[e[1]] + e[0]
            rootList[y] = 0
            flag = True
            break
for i, j in zip(list(range(n)), lenList):
    print((i, j))

n = int(eval(input()))
edgeList = []
for i in range(n):
    a = list(map(int, input().split()))
    for j in range(a[1]):
        edgeList.append([a[2 * j + 3], i, a[2 * j + 2]])
rootList = [-1 for i in range(n)]
parent = [0 for i in range(n)]
lenList = [float("inf") for i in range(n)]
lenList[0] = 0


def getRoot(x):
    r = rootList[x]
    if r < 0:
        rootList[x] = x
    elif r != x:
        rootList[x] = getRoot(r)
    return rootList[x]


flag = True
while flag:
    flag = False
    edgeList.sort(key=lambda x: (x[0] + lenList[x[1]]))
    for e in edgeList:  # weight:e[0], e[1]->e[2]
        if e[2] == 0:
            continue
        x = getRoot(e[1])
        y = getRoot(e[2])
        if x == 0 != y:
            parent[e[2]] = e[1]
            lenList[e[2]] = lenList[e[1]] + e[0]
            rootList[y] = 0
            flag = True
            break
for i, j in zip(list(range(n)), lenList):
    print((i, j))

-rootList = [-1 for i in range(n)] -parent = [-1 for i in range(n)] -lenList = [0 for i in range(n)] -sumLength = 0