C. A и B и командная тренировка
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

A и B готовятся к олимпиадам про программированию.

Важная часть подготовки к соревнованиям по программированию — передача знаний опытных участников тем, кто только начинает заниматься олимпиадами. Поэтому на очередной командной тренировке A решил составить команды так, чтобы новички решали задачи вместе с опытными участниками.

A считает, что оптимальный состав команды из трех человек должен состоять из одного опытного участника и двух новичков. Таким образом, каждый опытный участник сможет поделиться опытом с большим количеством людей.

Однако, B считает, что оптимальным будет состав из двух опытных участников и одного новичка. Таким образом, каждый новичок сможет получить больше знаний и опыта.

В результате, A и B решили, что все команды на тренировке должны быть одного из двух вышеописанных типов. Кроме того, они оба считают, что общее количество команд должно быть как можно больше.

На тренировке присутствуют n опытных участников и m новичков. Сможете ли вы посчитать, какое максимальное количество команд может быть сформировано?

Входные данные

Первая строка содержит два целых числа n и m (0 ≤ n, m ≤ 5 * 105) — количество опытных участников и новичков, присутствующих на тренировке.

Выходные данные

Выведите максимальное количество команд одного из двух описанных в условии типов, которое может быть сформировано.

Примеры
Входные данные
2 6
Выходные данные
2
Входные данные
4 5
Выходные данные
3
Примечание

Обозначим опытных участников как О, новичков как Н.

В первом тестовом примере команды выглядят так: (О, Н, Н), (О, Н, Н).

Во втором тестовом примере команды выглядят так: (О, Н, Н), (О, Н, Н), (О, О, Н).