UVa465,

# Overflow

Write a program that reads an expression consisting of two non-negative integer and an operator. Determine if either integer or the result of the expression is too large to be represented as a ``normal'' signed integer (type integer if you are working Pascal, type int if you are working in C).

## Input

An unspecified number of lines. Each line will contain an integer, one of the two operators + or *, and another integer.

## Output

For each line of input, print the input followed by 0-3 lines containing as many of these three messages as are appropriate: ``first number too big'', ``second number too big'', ``result too big''.

## Sample Input

```300 + 3
9999999999999999999999 + 11```

## Sample Output

```300 + 3
9999999999999999999999 + 11
first number too big
result too big```

## Source Code:

```import java.io.BufferedReader;
import java.io.IOException;
import java.math.BigInteger;

public class Main {
public static void main(String[] args) throws IOException {
String line;
while ((line = br.readLine()) != null) {
String text[] = line.split(" ");
BigInteger a = new BigInteger(text);
BigInteger b = new BigInteger(text);
BigInteger sum;
if (text.equals("+"))
else
sum = a.multiply(b);
// BigInteger Max = new BigInteger("2147483647");
BigInteger Max = new BigInteger(Integer.toString(Integer.MAX_VALUE));
System.out.println(line);
if (a.compareTo(Max) > 0)
System.out.println("first number too big");
if (b.compareTo(Max) > 0)
System.out.println("second number too big");
if (sum.compareTo(Max) > 0)
System.out.println("result too big");
}
}
}
```