Two Calling Conventions, Same Result

class Account:
    def __init__(self, balance):
        self.balance = balance

    def deposit(self, amount):
        self.balance += amount
        return self.balance

a = Account(100)
print(a.deposit(50))
print(Account.deposit(a, 25))
print(Account.deposit(30))

What does this print, in order, for the first two lines, and what happens on the third?

A

150, then 175, then None, because calling deposit on the class with one argument silently does nothing.

B

150, then 175, then a TypeError because deposit is missing the required amount argument.

C

150, then 175, then 205, since Account.deposit(30) deposits 30 into the same account.

D

150, then a TypeError on the second line, because Account.deposit cannot be called with an explicit instance argument.