#想定解法 def member_id(alpha): return ord(alpha)-65 # ord("A")=65 def identity_matrix(size): return [[0 if i==j else -inf for j in range(size)] for i in range(size)] def tolopical_matrix_add(A,B): C=[[0]*number for _ in range(number)] for i in range(number): a=A[i]; b=B[i]; c=C[i] for j in range(number): c[j]=max(a[j],b[j]) return C def tolopical_matrix_mul(A,B): C=identity_matrix(number) for i in range(number): ci=C[i]; ai=A[i] for k in range(number): aik=ai[k]; bk=B[k] for j in range(number): ci[j]=max(ci[j],aik+bk[j]) return C def tolopical_matrix_power(A,k): B=identity_matrix(number) while True: if k&1: B=tolopical_matrix_mul(B,A) k>>=1 if k: A=tolopical_matrix_mul(A,A) else: break return B #================================================== import sys input=sys.stdin.readline #================================================== # #入力部 C=list(map(int,input().split())) K=list(map(int,input().split())) inf=float("inf"); number=16; member=26 M=[identity_matrix(number) for _ in range(member)] N=int(input()) for _ in range(N): S,A,B,E=input().split() A=int(A)-1; B=int(B)-1; E=int(E) for s in S: M[member_id(s)][A][B]=M[member_id(s)][B][A]=max(M[member_id(s)][A][B],E) #================================================== #トロピカル代数上での累乗を求める. T=[tolopical_matrix_power(M[alpha],K[alpha])[C[alpha]-1] for alpha in range(member)] #================================================== #最終解答 V=[0]*number for t in T: for i in range(number): V[i]+=t[i] ans=max(V) print(ans if ans>-inf else "Impossible")