https://www.acmicpc.net/problem/1783
문제의 조건중에 이동 횟수가 4번보다 적지 않다면, 이동 방법을 모두 한 번씩 사용해야 한다.는 조건이 있다. 그렇다면 이동 방법을 모두 사용하지 못하는 경우를 살펴 보자.
세로의 길이가 1인 경우 : 세로의 길이가 1인 경우는 이동을 아예 못하기 때문에 이동 횟수가 0이다. 즉, 방문할 수 있는 칸의 갯수는 0이다.
세로의 길이가 2인 경우 : 세로의 길이가 2인 경우는 1, 4번 방법을 사용할 수 없기 때문에 4번 미만의 이동을 할 수 밖에 없다. 여기서 가로의 길이가 중요한데, 가로의 길이가 7보다 클 경우(7초과인 경우)에는 2, 3번을 이용해서 4번이상을 이동할 수 있지만, 조건에 안 맞기 때문에, 와 중에 작은 값이 칸의 갯수이다.
가로의 길이가 7미만인 경우 : 4가지 방법을 다 사용할 수 없다.(최소 7칸이 필요하다.) 그렇기에 와 중에 작은 값이 칸의 갯수이다.
그 외의 경우에는 이 칸의 갯수이다.
from sys import stdin
input = stdin.readline
n, m = map(int,input().split())
#세로가 1인 경우
if n==1:
print(1)
#세로가 2인경우
elif n==2:
print(min((m+1)//2,4))
#가로가 7미만인 경우
elif m<7:
print(min(4,m))
#그 외
else:
print(m-7+5)