In this HackerRank Nested Lists problem set, we need to develop a python program in that we have given the names and grades of N students. we need to store them in nested lists and print the name of students on the output screen that have the second-lowest grade. and if there are multiple students having the same grade then print them in alphabetical order.

## Problem solution in Python 2 programming.

```n = int(raw_input())
lst = []
for x in range(0, n):
lst.append([raw_input(), float(raw_input())])
lst = sorted(lst, key=lambda x: x);
for x in range(1, n):
if(lst[x] != lst[x-1]):
score = lst[x]
break
lst = sorted(lst);
for x in range(n):
if(lst[x] == score):
print lst[x]```

## Problem solution in Python 3 programming.

```if __name__ == '__main__':
students = []
for _ in range(int(input())):
name = input()
score = float(input())
students.append([name,score])
x = 99999
for i in range(len(students)):
if x > float(students[i]):
x = float(students[i])
y = 999999
for i in range(len(students)):
if float(students[i]) > float(x) and y > float(students[i]):
y = float(students[i])
runner = []
for i in range(len(students)):
if float(students[i]) == float(y):
runner.append(students[i])
runner = sorted(runner)

for i in range(len(runner)):
print(runner[i])

```

### Problem solution in pypy programming.

```if __name__ == '__main__':
L=[]
n=int(raw_input())
for _ in range(n):
name = raw_input()
score = float(raw_input())
L.append([name,score])
k=[]
for i in range(n):
k.append(L[i])
k.sort()

i=1
while i<n and k==k[i]:
i=i+1
m=k[i]
s=[]
for j in range(n):
if L[j]==m:
s.append(L[j])
s.sort()
for z in range(len(s)):
print(s[z])```

### Problem solution in pypy3 programming.

```if __name__ == '__main__':

arr = []
for _ in range(int(input())):
name = input()
score = float(input())
arr.append([score,name])
arr.sort()
for i in range(len(arr)):
if arr[i]> arr:
print(arr[i])

if i+1 >= len(arr) or arr[i+1] > arr[i]:
#print(arr[i+1])
break
#print (arr)
#print (arr)
#print (x)
```