1
5
e 0 9
a 0 1
d 8 1
c 5 5
b 2 1
Myślę, że o wiele szybciej rozwiązałbyś zadanie sortując tablicę (.sort / sorted()). Również byłoby krótsze, czytelniejsze i mniej złożone w porównaniu do obecnego kodu w O(n^3) ze wstawianiem elementów do środka listy.
Wydaje mi się, że wyjście/wejście w takiej formie powinno być zaliczone przez SPOJ:
for p in P:
print(p)
input() #jeden pusty wiersz na wejściu