#!/usr/bin/env python3
from collections import defaultdict

n, q = [int(x) for x in input().split()]
units = set()
conv = defaultdict(list)
for _ in range(n):
    line = input().split()
    unit = line[1]
    value = float(line[3])
    otherunit = line[4]

    conv[unit].append((otherunit, value))
    conv[otherunit].append((unit, 1 / value))

    units.add(unit)
    units.add(otherunit)

visited = {n: False for n in units}


def solve(cur_unit, target_unit, value):
    visited[cur_unit] = True
    if cur_unit == target_unit:
        return value
    for other_unit, cv in conv[cur_unit]:
        if not visited[other_unit]:
            ans = solve(other_unit, target_unit, value * cv)
            if ans != -1:
                return ans
    return -1


for _ in range(q):
    visited = {n: False for n in units}
    query = input().split()
    value = float(query[0])
    unit1 = query[1]
    unit2 = query[3]
    ans = solve(unit1, unit2, value)
    if ans == -1:
        print("impossible")
    else:
        print(ans)
