#include <stdio.h>
#include <stdint.h>
int main()
{
unsigned long long int i, j, res;
unsigned char inbuff[2500000]; /* To be certain there's no overflow here */
unsigned char *in = inbuff;
char outbuff[2500000]; /* To be certain there's no overflow here */
char *out = outbuff;
int c = 0;
while(1) {
i = j = 0;
fseek(stdin
, 0, SEEK_END
); long inputsize
= ftell(stdin
); fread(inbuff
, inputsize
, 1, stdin
); inbuff[inputsize] = '\0';
/* Skip whitespace before first number and check if end of input */
do {
c = *(in++);
} while(c != '\0' && !(c >= '0' && c <= '9'));
/* If end of input, print answer and return */
if(c == '\0') {
*(--out) = '\0';
return 0;
}
/* Read first integer */
do {
i = 10 * i + (c - '0');
c = *(in++);
} while(c >= '0' && c <= '9');
/* Skip whitespace between first and second integer */
do {
c = *(in++);
} while(!(c >= '0' && c <= '9'));
/* Read second integer */
do {
j = 10 * j + (c - '0');
c = *(in++);
} while(c >= '0' && c <= '9');
if(i > j)
res = i-j;
else
res = j-i;
/* Buffer answer */
unsigned long long divisor = 1000000000;
/* Skip trailing 0s until the last one */
while(res / divisor == 0 && divisor >= 10) {
divisor /= 10;
}
/* Buffer digits */
while(divisor != 0) {
unsigned long long digit = res / divisor;
*(out++) = digit + '0';
res -= divisor * digit;
divisor /= 10;
}
*(out++) = '\n';
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCmludCBtYWluKCkKewogIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgaSwgaiwgcmVzOwogIAogIHVuc2lnbmVkIGNoYXIgaW5idWZmWzI1MDAwMDBdOyAvKiBUbyBiZSBjZXJ0YWluIHRoZXJlJ3Mgbm8gb3ZlcmZsb3cgaGVyZSAqLwogIHVuc2lnbmVkIGNoYXIgKmluID0gaW5idWZmOwogIGNoYXIgb3V0YnVmZlsyNTAwMDAwXTsgLyogVG8gYmUgY2VydGFpbiB0aGVyZSdzIG5vIG92ZXJmbG93IGhlcmUgKi8KICBjaGFyICpvdXQgPSBvdXRidWZmOwogIAogIGludCBjID0gMDsKICAKICB3aGlsZSgxKSB7CiAgICBpID0gaiA9IDA7CiAgICAKICAgIGZzZWVrKHN0ZGluLCAwLCBTRUVLX0VORCk7CiAgICBsb25nIGlucHV0c2l6ZSA9IGZ0ZWxsKHN0ZGluKTsKICAgIHJld2luZChzdGRpbik7CiAgICBmcmVhZChpbmJ1ZmYsIGlucHV0c2l6ZSwgMSwgc3RkaW4pOwogICAgaW5idWZmW2lucHV0c2l6ZV0gPSAnXDAnOwogICAgCiAgICAvKiBTa2lwIHdoaXRlc3BhY2UgYmVmb3JlIGZpcnN0IG51bWJlciBhbmQgY2hlY2sgaWYgZW5kIG9mIGlucHV0ICovCiAgICBkbyB7CiAgICAgIGMgPSAqKGluKyspOwogICAgfSB3aGlsZShjICE9ICdcMCcgJiYgIShjID49ICcwJyAmJiBjIDw9ICc5JykpOwogICAgCiAgICAvKiBJZiBlbmQgb2YgaW5wdXQsIHByaW50IGFuc3dlciBhbmQgcmV0dXJuICovCiAgICBpZihjID09ICdcMCcpIHsKICAgICAgKigtLW91dCkgPSAnXDAnOwogICAgICBwdXRzKG91dGJ1ZmYpOwogICAgICByZXR1cm4gMDsKICAgIH0KICAgIAogICAgLyogUmVhZCBmaXJzdCBpbnRlZ2VyICovCiAgICBkbyB7CiAgICAgIGkgPSAxMCAqIGkgKyAoYyAtICcwJyk7CiAgICAgIGMgPSAqKGluKyspOwogICAgfSB3aGlsZShjID49ICcwJyAmJiBjIDw9ICc5Jyk7CiAgICAKICAgIC8qIFNraXAgd2hpdGVzcGFjZSBiZXR3ZWVuIGZpcnN0IGFuZCBzZWNvbmQgaW50ZWdlciAqLwogICAgZG8gewogICAgICBjID0gKihpbisrKTsKICAgIH0gd2hpbGUoIShjID49ICcwJyAmJiBjIDw9ICc5JykpOwogICAgCiAgICAvKiBSZWFkIHNlY29uZCBpbnRlZ2VyICovCiAgICBkbyB7CiAgICAgIGogPSAxMCAqIGogKyAoYyAtICcwJyk7CiAgICAgIGMgPSAqKGluKyspOwogICAgfSB3aGlsZShjID49ICcwJyAmJiBjIDw9ICc5Jyk7CiAgICAKICAgIGlmKGkgPiBqKQogICAgICByZXMgPSBpLWo7CiAgICBlbHNlCiAgICAgIHJlcyA9IGotaTsKICAgIAogICAgLyogQnVmZmVyIGFuc3dlciAqLwogICAgdW5zaWduZWQgbG9uZyBsb25nIGRpdmlzb3IgPSAxMDAwMDAwMDAwOwogICAgLyogU2tpcCB0cmFpbGluZyAwcyB1bnRpbCB0aGUgbGFzdCBvbmUgKi8KICAgIHdoaWxlKHJlcyAvIGRpdmlzb3IgPT0gMCAmJiBkaXZpc29yID49IDEwKSB7CiAgICAgIGRpdmlzb3IgLz0gMTA7CiAgICB9CiAgICAvKiBCdWZmZXIgZGlnaXRzICovCiAgICB3aGlsZShkaXZpc29yICE9IDApIHsKICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGRpZ2l0ID0gcmVzIC8gZGl2aXNvcjsKICAgICAgKihvdXQrKykgPSBkaWdpdCArICcwJzsKICAgICAgcmVzIC09IGRpdmlzb3IgKiBkaWdpdDsKICAgICAgZGl2aXNvciAvPSAxMDsKICAgIH0KICAgICoob3V0KyspID0gJ1xuJzsKICB9Cn0gICA=