python – List when sent as a pamaeter to an object is getting replaced by the latest one in loop

Problem statement: To make a student and a register class to take and print the data…
the code followed by inputs and outputs:

  class Student:
        def __init__(self,i,n,s,su,m):
            self.id=i
            self.name=n
            self.standard=s
            self.subjects=su
            self.marks=m

class Register:
    students=()
    def displayMarks(self):
       for stud in self.students:
            print(str(stud.id))
            print(stud.name)
            print(str(stud.standard))
            print(stud.subjects)
            print(stud.marks)
print("Enter the number of Students followed by number of subjects")
id =0
name=""
standard =0
subjects =("","","")
marks=(0,0,"")
r=Register()
n=int(input())
m=int(input())
for i in range(n):
    id=int(input())
    name=input()
    standard=int(input())
    for j in range(m):
        subjects(j)=input()
    for k in range(m):
        marks(k) = int(input())
    s = Student(id,name,standard,subjects,marks)
    r.students.append(s)
r.displayMarks()

input:

2
2
101
paul
10
eng
math
12
13
102
riley
10
english
maths
10
9

output:

101
paul
10
('english', 'maths', '')
(10, 9, '')
102
riley
10
('english', 'maths', '')
(10, 9, '')

but shouldn’t the output be:

101
paul
10
('eng', 'math', '')
(12, 13, '')
102
riley
10
('english', 'maths', '')
(10, 9, '')

as you can see, the lists, marks and subjects are getting overwritten by the latest one, ie, riley’s.

What is the mistake?