피자 상자
면접 대비시간 제한1초메모리 제한512 MB
각 칸에 서로 다른 높이의 상자 더미가 있을 때, 각 행과 각 열의 최댓값을 그대로 유지하면서 없앨 수 있는 상자의 최대 개수를 구한다.
문제
크기가 모두 같은 피자 상자가 있다. 상자는 행 열 격자의 칸마다 하나씩 쌓아 올려 더미를 이루고, 각 칸의 더미 높이는 서로 모두 다르다. 격자를 정면에서 보면 각 열에서 가장 높은 더미의 높이가 보이고, 옆에서 보면 각 행에서 가장 높은 더미의 높이가 보인다.
정면도와 측면도를 그대로 유지하면서 상자를 최대 몇 개까지 치울 수 있는지 구하자. 그림 I.1(a)는 높이 격자이고, 그림 I.1(b)는 그 격자의 두 시점이다. 그림 I.2는 그림 I.1(a)에서 상자를 최대한 치우고 남은 격자다. 그림에 적힌 숫자는 그 칸에 쌓인 상자의 개수다.

그림 I.1. (a) 높이 격자와 (b) 그에 대응하는 두 시점.

그림 I.2. 상자를 치우고 남은 높이 격자.
원래의 정면도와 측면도를 바꾸지 않으면서 치울 수 있는 상자의 최대 개수를 구하는 프로그램을 작성하라.
입력
첫째 줄에 격자의 행 수 과 열 수 이 공백으로 구분되어 주어진다 ().
다음 개의 줄에는 각 행의 높이가 개씩 주어진다. 모든 높이는 이상 이하의 정수이고, 격자에 있는 개의 높이는 서로 모두 다르다.
출력
원래의 정면도와 측면도를 바꾸지 않으면서 치울 수 있는 상자의 최대 개수를 한 줄에 출력한다.