# coding=UTF-8
# P为给定的二维平面整数点集。定义 P 中某点x，
# 如果x满足 P 中任意点都不在 x 的右上方区域内（横纵坐标都大于x），
# 则称其为“最大的”。求出所有“最大的”点的集合。
# （所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内）

# 思路解析：
# 题目要求我们需要输出的是，存在满足没有(x,y)同时大于他的点。
# 因此，通过分析可以知道，如果先将x按降序排序。那么我们每次只需要更新最大的y就好了。
# 因为，之后的出现的x不可能会比之前的大，那么满足输出的情况只要一种了，
# 就是之后的某个点的y比之前的大。

a = [[1, 2],[5, 3],[4, 6],[7, 5],[9, 0]]

def my_cmp(a, b):
    if a[1]>b[1]:
        return -1 #do not need to swap
    if a[1]<b[1]:
        return 1 #need to swap
    return 0

a.sort(cmp=my_cmp)
maxx=-1
for i in a:
    if i[0]>maxx:
        print i
        maxx = i[0]