def std_filter(fname, th_grade):
    # ini
    fname_out = str(th_grade) + '_' + fname.replace('grades', 'avg_grades')
    n_std = n_ok = 0
    
    with open(fname, 'r') as fin, open(fname_out, 'w') as fout:
        # ini read
        fin.readline()
        fin.readline()
        fout.write('SIN,AVG,N_G,GRADES\n')
        fout.write('==================\n')
        
        for line in fin:

            # read & convert
            n_std += 1
            lineL = line.strip().split(',')

            # compute
            str_gradesL = lineL[1:]
            gradesL = [float(g) for g in str_gradesL]
            gradesL.remove(min(gradesL))
            avg_grade = round(sum(gradesL) / len(gradesL), 2)

            # write
            if avg_grade >= th_grade:
                str_gradesL = [str(g) for g in gradesL]
                newlineL = [lineL[0], str(avg_grade), str(len(gradesL))] + str_gradesL
                newline = ','.join(newlineL) + '\n'
                fout.write(newline)
                n_ok += 1

    return n_std, n_ok
