Related to challenge question, help me anybody

Here I am going to share with you my codes related to Challenge Problem. I am facing a problem that i had written two codes and one is a special case of second but i am getting more marks in the special case.
so please help me.

in the first code, I had implemented this method.
I am going to answer questions from 1 to n and answer it such that I increase the score of a maximum number of the question form which has a minimum score.
actually I am storing every form score in a separate array.

And other one instead of going questionwise I am just calculating frequency such that I increase the score of a maximum number of the question form which has a minimum score.

As you can see first one in one way is one of the case of second but I am getting more points in the first one then the second so please help me.
do I do some mistake in the second code implementation

  • First code
from random import randint

t = int(input())

for _ in range(t):
    [n,m,k] = list(map(int,input().split()))
    c = []
    for i in range(n):
        c.append(list(map(int,input().split())))
    score = [0 for i in range(k)]
    output = []
    for i in range(n):
        minimum = min(score)
        mydict = {}
        for j in range(k):  
            if(score[j]==minimum):
                try:
                    mydict[c[i][j]][0] += 1 
                except KeyError:
                    mydict[c[i][j]] = [1,0]
        for j in range(k):
            try:
                mydict[c[i][j]][1]+=1
            except KeyError:
                pass
        value = sorted(mydict,key=lambda x: (mydict[x][0],mydict[x][1]))[-1]
        output.append(value)
        for j in range(k):
            if(c[i][j] == value):
                score[j]+=1
    for i in range(n):
        print(output[i],end=" ")
    print()
  • Second code
t = int(input())

for _ in range(t):
    [n,m,k] = list(map(int,input().split()))
    c = []
    for i in range(n):
        c.append(list(map(int,input().split())))
    score = [0 for i in range(k)]
    output = [0 for i in range(n)]
    checked = [True for i in range(n)]
    for i in range(n):
        minimum = min(score)
        listofminimum = [j for j in range(k) if score[j]==minimum]
        maximumFrequancy = 0
        option = 0
        question = 0
        mydict = {}
        #question number j
        for j in range(n):
            if(checked[j]):
                for p in listofminimum:
                    try:
                       #first index of c is question and second is sheet number
                       #first index of mydict is option for a perticular question
                       mydict[c[j][p]] +=1
                    except KeyError:
                       mydict[c[j][p]] =1
                nowoption = max(mydict, key=mydict.get)  
                nowfrequency = mydict[nowoption]
                if(nowfrequency>maximumFrequancy):
                    option = nowoption
                    maximumFrequancy = nowfrequency
                    question = j
        checked[question] = False
        output[question] = option
        for j in range(k):
            if(c[question][j]==option):
                score[j]+=1
    for i in range(n):
        print(output[i],end=" ")
    print()