#937. 病毒增殖

病毒增殖

病毒增殖

题目描述

生物实验室里有一种病毒。初始时培养皿中有 1 个病毒。每过 1 小时,每个病毒都会分裂成 aa 个(即病毒总数变为原来的 aa 倍)。研究员想知道经过 bb 小时后培养皿里共有多少个病毒。

但培养皿最多只能容纳 10910^9 个病毒,一旦超过就会爆皿。请你在结果超过 10910^9 时输出 -1 警示,否则输出 bb 小时后的病毒总数。

输入格式

一行两个正整数 aa、bb,分别表示每个病毒的分裂倍数、经过的小时数。

输出格式

一行一个整数:若 bb 小时后病毒数不超过 10910^9,输出该总数;否则输出 -1。

样例

样例 #1

输入

2 10

输出

1024

样例 #2

输入

100 5

输出

-1

样例 #3

输入

1 30

输出

1

样例 2 解释:1005=1010>109100^5 = 10^{10} > 10^9,爆皿,输出 -1。

样例 3 解释:每代都只有 1 个(1 的任何次方都是 1),不会爆皿,输出 1。

数据范围

  • 对于 100%100\% 的数据,1≤a≤1091 \le a \le 10^9,1≤b≤1091 \le b \le 10^9。
  • 乘法过程中结果可能远超 int 范围,请注意使用 64 位整数,并在中途及时判断是否已经超过 10910^9。