hi all..i hope every1 is fine... my teacher gav me this assignment and i m stuck... i cant seem to get the right answer..i hav spent hours but no use plz see the code...

Its a simple matrix multiplication program. There are 3 matrices in the program m1,m2,m3...m1 and m2 are multiplied and m3 is assignmed the result...

m1=| 2 1 6 |
| 5 4 0 |

m2=| 5 1 |
| 9 7 |
| 6 2 |

The result has to be:

m3=| 55 21 |
| 61 33 |

but i m getting something else! i m getting: 55 55,33 29

m3=| 55 55 |
| 33 29 |

Here is the code:

Code:
#include <stdio.h>
#include <conio.h>

void main(void) {
	int m1[2][3], m2[3][2], m3[2][2], i, j, k;
	clrscr();

	printf("First Matrix\n");
	printf("============\n");
	// populate the first matrix
	for (i=0; i<2; i++) {
		for (j=0; j<3; j++) {
			printf("Enter value for position [%d][%d]: ",i,j);
			scanf("%d", &m1[i][j]);
		}
	}

	printf("\nSecond Matrix\n");
	printf("=================\n");
	// populate the second matrix
	for (i=0; i<3; i++) {
		for (j=0; j<2; j++) {
			printf("Enter value for position [%d][%d]:",i,j);
			scanf("%d",&m2[i][j]);
		}
	}

	printf("\nMatrix Multiplication\n");
	printf("=====================\n");
	for (i=0; i<2; i++) {
		for (j=0; j<2; j++) {
			for (k=0; k<2; k++) {
				 m3[i][j] = (m1[i][j]*m2[j][i])+(m1[i][j+1]*m2[j+1][i])+(m1[i][j+2]*m2[j+2][i]);
			}
		}
	}
	// print the m3 matrix
	for (i=0; i<2; i++) {
		for (j=0; j<2; j++) {
			printf("\nValue at position [%d][%d] is: %d",i,j,m3[i][j]);
		}
	}
	getch();
}
Any help is highly appreciated... thanks in advance...
regards,
Kamran.