Problem A
n=input().split()
ans=0
for _ in range(int(n[0])):
ans+=max(int(x) for x in input().split())
print(ans)
Problem B
n=int(input())
ns=[int(x) for x in input().split()]
avg=sum(ns)//n
ans=0
for x in range(n-1):
c=avg-ns[x]
if c:
ns[x+1]-=c
ans+=1
print(ans)
Problem C
n=int(input())
s=[]
for _ in range(n):
s.append([int(x) for x in input().split()])
s.sort(key=lambda x:x[1])
ans,end=0,0
for x in s:
if x[0]>=end:
ans+=1
end=x[1]
print(ans)
Problem D
n=list(input())
s=int(input())
for _ in range(s):
for i in range(len(n)-1):
if n[i]>n[i+1]:
n.pop(i)
break
else:
n.pop()
print(int(''.join(n)))
Problem E
a=0.25
d={(2**i)*a:int(x) for i,x in enumerate(input().split())}
c=[0.25,0.5,1.0,2.0]
c.sort(key=lambda x:d[x]/x)
n=int(input())
ans=0
for x in c:
ans+=(n//x)*d[x]
n=n%x
print(int(ans))
Problem G
import functools
n = int(input())
numberlist = input().split()
def compare(x, y):
if x + y > y + x:
return 1
elif x + y == y + x:
return 0
else:
return -1
numberlist.sort(key=functools.cmp_to_key(compare), reverse=True)
number = "".join(numberlist)
print(int(number))
Problem H
ns=[int(x) for x in input().split()]
ns=[0]+ns
ans=[]
for x in range(1,len(ns)):
if not ans or ns[x]>ans[-1]:
ans.append(ns[x])
else:
for i in range(len(ans)):
if ns[x]<=ans[i]:
ans[i]=ns[x]
break
print(len(ans))