=====Problem Statement=====
Given the names and grades for each student in a class of N students, store them in a nested list and print the name(s) of any student(s) having the second lowest grade.
NOTE: If there are multiple students with the second lowest grade, order their names alphabetically and print each name on a new line.

=====Example=====
records = [["chi",20.0],["beta",50.0],["alpha",50.0]]
The ordered list of scores is [20.0,50.0], so the second lowest score is 50.0. There are two students with that score: ["beta","alpha"]. Ordered alphabetically, the names are printed as:
alpha
beta

=====Input Format=====
The first line contains an integer, N, the number of students.
The 2N subsequent lines describe each student over 2 lines.
- The first line contains a student's name.
- The second line contains their grade. 

=====Constraints=====
2≤N≤5
There will always be one or more students having the second lowest grade.

=====Output Format=====
Print the name(s) of any student(s) having the second lowest grade in. If there are multiple students, order their names alphabetically and print each one on a new line.

Difficulty: introductory

Starter code:

if __name__ == '__main__':
    for _ in range(int(input())):
        name = input()
        score = float(input())

Solutions:
# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import OrderedDict

n=int(input())
ar={}
val_ar=[]
for i in range(0,n):
    tmp_name=input()
    tmp_marks=float(input())
    ar[tmp_name]=tmp_marks
    val_ar.append(tmp_marks)
  
set_val=set(val_ar)
val_ar=list(set_val)
val_ar.sort()
sec_mark=val_ar[1]
##print sec_mark    
final_ar=[]
for i in ar:
    if(sec_mark==ar[i]):
        final_ar.append(i)

final_ar.sort()
for i in final_ar:
    print(i)


def __starting_point():
    students = []
    for _ in range(int(input())):
        name = input()
        score = float(input())
        
        students.append([name, score])
    
    lowest = min([el[1] for el in students])
    second_low = min(list([a for a in [el[1] for el in students] if a > lowest]))
    
    out = [el[0] for el in students if (el[1] == second_low)]
    out.sort()
    
    print(("\n".join(out)))

__starting_point()