#include
using namespace std;
const int base = 1000000000;
const int base_digits = 9;
struct bigint
{
vector a;
int sign;
bigint[] : sign[1]
{
}
bigint[long long v]
{
*this = v;
}
bigint[const string &s]
{
read[s];
}
void operator=[const bigint &v]
{
sign = v.sign;
a = v.a;
}
void operator=[long long v]
{
sign = 1;
if [v 0; v = v / base]
a.push_back[v % base];
}
bigint operator+[const bigint &v] const
{
if [sign == v.sign]
{
bigint res = v;
for [int i = 0, carry = 0; i = v.abs[]]
{
bigint res = *this;
for [int i = 0, carry = 0; i