#include<iostream>
using namespace std;
long long int fast_exp(int base, int exp)
{
if(exp==1)
return base;
else
{
if(exp%2 == 0)
{
long long int ret = fast_exp(base, exp/2);
long long int base1 = ret * ret;
return base1 % 1000000007;
}
else
{
long long int ret = fast_exp(base, (exp-1)/2);
long long int ans = base * ret;
ans %= 1000000007;
ans *= ret;
return ans % 1000000007;
}
}
}
int main() {
std::cout << fast_exp(2, 999999999) << std::endl;
std::cout << fast_exp(2, 1000000000) << std::endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgogICAgbG9uZyBsb25nIGludCBmYXN0X2V4cChpbnQgYmFzZSwgaW50IGV4cCkKICAgIHsKICAgICAgICBpZihleHA9PTEpCiAgICAgICAgcmV0dXJuIGJhc2U7CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYoZXhwJTIgPT0gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbG9uZyBsb25nIGludCByZXQgPSBmYXN0X2V4cChiYXNlLCBleHAvMik7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW50IGJhc2UxID0gcmV0ICogcmV0OwogICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UxICUgMTAwMDAwMDAwNzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbnQgcmV0ID0gZmFzdF9leHAoYmFzZSwgKGV4cC0xKS8yKTsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbnQgYW5zID0gYmFzZSAqIHJldDsKICAgICAgICAgICAgICAgIGFucyAlPSAxMDAwMDAwMDA3OyAKICAgICAgICAgICAgICAgIGFucyAqPSByZXQ7CiAgICAgICAgICAgICAgICByZXR1cm4gYW5zICUgMTAwMDAwMDAwNzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCmludCBtYWluKCkgewoJc3RkOjpjb3V0IDw8IGZhc3RfZXhwKDIsIDk5OTk5OTk5OSkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IGZhc3RfZXhwKDIsIDEwMDAwMDAwMDApIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9