Вы наверняка знаете, что при решении задач (особенно на олимпиадах по программированию) нужно выбирать целочисленные типы данных с умом. Если используемый тип имеет слишком малый размер, при выполнении арифметических операций может произойти переполнение, и тогда результат вычислений окажется неверным.
Макс решает задачу, в которой требуется определить произведение целых чисел A и B. Любимый язык Макса — C++, а в этом языке самым ёмким целочисленным типом является long long — на компьютере Макса это 64-битное целое со знаком. 1 бит отводится на хранение знака числа, остальные 63 — на хранение самого числа; таким образом, максимальное значение, которое может иметь переменная типа long long, равно (263 - 1).
В своём решении Макс использовал long long везде, где только мог — для хранения чисел A, B и их произведения. Определите, действительно ли это поможет ему избежать переполнения.
Ввод содержит целые числа A и B (0 ≤ A, B ≤ (263 - 1)).
Выведите YES, если при вычислении произведения (A·B) произойдёт переполнение типа long long. В противном случае выведите NO.
## Входные Данные
Ввод содержит целые числа A и B (0 ≤ A, B ≤ (263 - 1)).
## Выходные Данные
Выведите YES, если при вычислении произведения (A·B) произойдёт переполнение типа long long. В противном случае выведите NO.
## Примеры
Входные данные1000000000 1000000000Выходные данныеNOВходные данные10000000000 10000000000Выходные данныеYES
[samples]
**Definitions**
Let $ n \in \mathbb{Z}_{\geq 0} $ be the initial number of shares.
Let $ m \in \mathbb{Z}_{\geq 1} $ be the number of time moments.
Let $ A = (a_1, a_2, \dots, a_m) \in \mathbb{Z}_{\geq 1}^m $ be the agent buy prices.
Let $ B = (b_1, b_2, \dots, b_m) \in \mathbb{Z}_{\geq 1}^m $ be the exchange buy prices.
Let $ s_t \in \mathbb{Z}_{\geq 0} $ be the number of shares owned at time $ t \in \{0, 1, \dots, m\} $, with $ s_0 = n $.
Let $ c_t \in \mathbb{Z}_{\geq 0} $ be the cash owned at time $ t $, with $ c_0 = 0 $.
At each time $ t \in \{1, \dots, m\} $, one of three actions is taken:
- **Sell (A)**: $ s_t = 0 $, $ c_t = c_{t-1} + s_{t-1} \cdot a_t $
- **Buy (B)**: $ s_t = s_{t-1} + \left\lfloor \frac{c_{t-1}}{b_t} \right\rfloor $, $ c_t = c_{t-1} \bmod b_t $
- **Hold (0)**: $ s_t = s_{t-1} $, $ c_t = c_{t-1} $
**Constraints**
1. $ 1 \leq n \leq 10^9 $, $ 1 \leq m \leq 5 \times 10^5 $
2. $ 1 \leq a_j, b_j \leq 10^9 $ for all $ j \in \{1, \dots, m\} $
3. $ s_t \leq 10^{18} $, $ c_t \leq 10^{18} $ for all $ t \in \{0, \dots, m\} $
**Objective**
Maximize final cash:
$$
\max c_m
$$
and output a sequence $ x_1, x_2, \dots, x_m \in \{A, B, 0\} $ achieving this maximum.