Python Inheritance and Class (Hackerank problem)
Read PEP8 the Python style guide

Functions and variables should be lower_snake_case
Naming

Single letter variable names are a bad habit. Code should be self explanatory and function names like m() don't tell what they are supposed to do
Instead of the printPerson() function, override the magic function __str__

Doing this you can do print(student) to print the class
You should make the avg function a part of the Student class
Your grade function can be simplified


 scoreList = [
   {'O': '90-100'},
   {'E': '80-89'},
   {'A': '70-79'},
   {'P': '55-69'},
   {'D': '40-54'},
   {'T': '0-39'},
]



When you swap the key and values around, and loop over them in order

self.score_dictionary = {
    90 : 'O',
    80 : 'E',
    70 : 'A',
    55 : 'P',
    40 : 'D',
    0  : 'T'
}


It becomes clear that if the average is higher than the value that should be the grade to give, else go to the next value

This will happen automatically with Python3.7+, or else you can make use of an OrderedDict

from collections import OrderedDict
self.score_dictionary = OrderedDict([
    (90, 'O'),
    (80, 'E'),
    (70, 'A'),
    (55, 'P'),
    (40, 'D'),
    (0, 'T')
])


Thnx @Graipher, for correcting my mistake regarding the OrderedDict

Another way (which might be clearer) is to loop over the dictionary keys in sorted order
You can unpack multiple arguments in one go


line = input().split()
firstName = line[0]
lastName = line[1]
idNum = line[2]



Could be 

f, l, i = input().split()

It is Python idion to use _ for variables you don't use


Code

class Person:
    def __init__(self, first_name, last_name, id):
        self.first_name = first_name
        self.last_name = last_name
        self.id = id

    def __str__(self):
        return f"Name: {self.last_name}, {self.first_name}\nID: {self.id}"

class Student(Person):
    def __init__(self,  first_name, last_name, id, scores):
        super().__init__(first_name, last_name, id)
        self.scores = scores
        self.avg = sum(self.scores) / len(scores)
        self.score_dictionary = {
            90 : 'O',
            80 : 'E',
            70 : 'A',
            55 : 'P',
            40 : 'D',
            0  : 'T'
        }

    def grade(self):
        for score in sorted(self.score_dictionary.keys(), reverse=True):
            if self.avg &gt;= score:
                return self.score_dictionary[score]

if __name__ == '__main__':
    f, l, i = input().split()
    _ = input()
    scores = list(map(int, input().split()))
    student = Student(f, l, i, scores)
    print(student)
    print(f"Grade: {student.grade()}")