- n 또는 m의 범위를 기준으로 경우의 수를 나눈다. -> 규칙을 봤을 때 세로와 가로 규칙이 비슷하기 때문
- 최대 개수를 구하는 것이기 때문에 범위에 따른 답이 정해져 있다.
- 칸의 개수를 구하는 것이기 때문에 출발점인 왼쪽 가장 아래의 칸을 포함해 세어주면 된다.
-> 지나온 칸을 모두 세는 것이 아닌 규칙을 하나 적용했을 때 도달하는 칸을 하나씩 세어준다.
- 메모리 : 30864 KB
- 시간 : 72 ms
n, m = map(int, input().split())
answer = 0
if n == 1:
answer = 1
elif n == 2:
answer = min(4, (m+1)//2)
elif m < 7:
answer = min(4, m)
else:
answer = 5 + m-7
print(answer)