import bisect as b
s = input().split()
heap = [0]
for i in s[::-1]:
v = int(i)
if heap[-1] < v:
heap.append(v)
else:
heap[b.bisect(heap, v)] = v
print(len(heap)-1)
heap = [float("inf")]
for i in s:
v = int(i)
if v > heap[-1]:
heap.append(v)
else:
heap[b.bisect_left(heap, v)] = v
print(len(heap))
二分是logn,总计是O(nlogn),感觉应该是能过的,但是第三个数据就RE了