Given a following C program, where M and N are constant declared with #define long P[M][N]; long Q[N][M]; long sum_element(long i, long j) { return P[i][j] + Q[j][i]; } In compiling this program, gcc generates the following assembly code: long sum_element(long i, long j) sum_element: leaq 0(,%rdi,8), %rdx subq %rdi, %rdx addq %rsi, %rdx leaq (%rsi,%rsi,4), %rax addq %rax, %rdi movq Q(,%rdi,8), %rax addq P(,%rdx,8), %rax ret What are the values of M and N?