#!/usr/bin/env python3
(n, q), units, conversions = map(int, input().split()), dict(), dict()

for _ in range(n):
    a, b = input()[2:].split(" = ")
    x, b = b.split()
    x = float(x)
    if a not in units: units[a] = dict()
    if b not in units: units[b] = dict()
    units[a][b], units[b][a] = x, 1 / x

for _ in range(q):
    a, b = input().split(" to ")
    x, a = a.split()

    if a in conversions and b in conversions[a]:
        print(conversions[a][b] if conversions[a][b] == "impossible" else float(x) * conversions[a][b])
        continue
    if a not in conversions: conversions[a] = dict()

    seen, todo = {a: 1.0}, [a]
    while todo:
        curr = todo.pop()
        if curr == b:
            conversions[a][b] = seen[b]
            print(float(x) * seen[b])
            break
        for k, v in units[curr].items():
            if k not in seen:
                seen[k] = seen[curr] * v
                todo.append(k)
    else:
        conversions[a][b] = "impossible"
        print("impossible")
