The problem is that both 1087 and 44 are integers, so the multiplication is done with integers (which only go up to 32,767), then the result (-17708) is stored in the long. To get around this, you can declare the integer constants as longs by appending an L, e.g.:

`product = 1087L * 44L;`