N, H = map(int, input().split())
up = [0] * (H+1)
down = [0] * (H+1)
for i in range(N):
if i % 2 == 0:
up[int(input())] += 1
else:
down[int(input())] += 1
for i in range(H-1, 0, -1):
up[i] += up[i+1]
down[i] += down[i+1]
cnt = 0
for i in range(1, H+1):
if N > up[i] + down[H-i+1]:
N = up[i] + down[H-i+1]
cnt = 1
elif N == up[i] + down[H-i+1]:
cnt += 1
print(N, cnt)
누적합을 이용해 해결하는 문제이다.
문제가 어려워 다른 사람의 풀이를 여러 차례 봄으로서 이해할 수 있었다. . .