The problem is the confusion between rows and columns. A better naming system would use students and quizzes. Also the use of array m4 is not needed, so you can remove it. To get the quiz averages change the final loop to the following:
for j in range(C): // the number of quizzes
average = 0
for i in range(R): // the number of students
average += m3[i][j] // calculate the total score for each quiz per student
print("The average mark for quiz", j+1, "is", round(float(average/R), 2))
Using more meaningful names for your variables helps to make the code easier to understand, especially when it goes wrong.
[edit]
A slightly improved version of the complete program:
students = int(input("Enter the number of students:"))
quizzes = int(input("Enter the number of quizzes:"))
scores = []
for i in range(students):
a = []
for j in range(quizzes):
a.append(int(input("Student " + str(i+1) + " Quiz " + str(j+1)+":")))
scores.append(a)
print(' ')
for i in range(students):
average = 0
for j in range(quizzes):
average += scores[i][j]
print("The average mark for student", i+1, "is", average / quizzes)
print(' ')
for j in range(quizzes):
average = 0
for i in range(students):
average += scores[i][j]
print("The average mark for quiz", j+1, "is", round(float(average / students), 2))
[/edit]