mod = 1000000007
eps = 10**-9
inf = 10 ** 30


def main():
    import sys
    input = sys.stdin.readline

    C = list(map(int, input().split()))
    K = list(map(int, input().split()))
    N = int(input())
    D_list = [[[-inf] * 17 for _ in range(17)] for _ in range(26)]
    for i in range(26):
        for v in range(17):
            D_list[i][v][v] = 0
    for _ in range(N):
        S, A, B, E = input().split()
        A = int(A)
        B = int(B)
        E = int(E)
        for s in S:
            i = ord(s) - 65
            D_list[i][A][B] = max(D_list[i][A][B], E)
            D_list[i][B][A] = max(D_list[i][B][A], E)

    cost = [0] * 17
    cost[0] = -inf
    for i in range(26):
        D = D_list[i]
        DD = [None] * 25
        DD[0] = D
        for lv in range(1, 25):
            DD[lv] = [[-inf] * 17 for _ in range(17)]
            for u in range(1, 17):
                for v in range(1, 17):
                    for w in range(1, 17):
                        DD[lv][u][v] = max(DD[lv][u][v], DD[lv - 1][u][w] + DD[lv - 1][w][v])
        dist = [-inf] * 17
        dist[C[i]] = 0
        for lv in range(25):
            if K[i] >> lv & 1:
                dist_new = [-inf] * 17
                for u in range(17):
                    for v in range(17):
                        dist_new[v] = max(dist_new[v], dist[u] + DD[lv][u][v])
                dist = dist_new
        for j in range(1, 17):
            cost[j] += dist[j]
    ans = max(cost)
    if ans < -10 ** 20:
        print("Impossible")
    else:
        print(ans)


if __name__ == '__main__':
    main()