import sys
import math
if len(sys.argv) != 4:
        sys.stderr.write("Usage: python %s expression_matrix node_info output" %sys.argv[0])
        raise SystemExit(1)

in_file=open(sys.argv[1])
out_file=open(sys.argv[3],'w')

in_file.readline()

dict_exp={}

for line in in_file:
        arr=line.strip().split()
        key=arr[0]
        arr.pop(0)
        dict_exp[key]=arr
for key in dict_exp:
        num=len(dict_exp[key])
        break

for line in open(sys.argv[2]):
        arr=line.strip().split()
        if arr[0] in dict_exp and arr[1] in dict_exp and arr[0]!=arr[1]:
                sum_x=0
                sum_y=0
                sum_x_y=0
                sum_x_square=0
                sum_y_square=0
                arr_x=dict_exp[arr[0]]
                for x in arr_x:
                        sum_x=sum_x+float(x)
                        sum_x_square=sum_x_square+float(x)**2
                arr_y=dict_exp[arr[1]]
                for y in arr_y:
                        sum_y=sum_y+float(y)
                        sum_y_square=sum_y_square+float(y)**2

                for i in range(0,len(arr_x)):
                        sum_x_y=sum_x_y+float(arr_x[i])*float(arr_y[i])
                if num*sum_x_square-sum_x**2 !=0 and num*sum_y_square-sum_y**2 !=0:
                        pcc=(num*sum_x_y-sum_x*sum_y)/(math.sqrt(num*sum_x_square-sum_x**2)*math.sqrt(num*sum_y_square-sum_y**2))
                        outline=arr[0]+"\t"+arr[1] + "\t" + str(pcc) +"\n"
                        out_file.write(outline)
