#include <iostream>
#include <cstdint>
#include <cstddef>
using namespace std;
template < typename T>
T mod( T val, T m)
{
T res = val % m;
if ( res < 0 )
res = res + m;
return res;
}
int main( )
{
const size_t SIZE = 9 ;
int_fast64_t val[ SIZE] = { 255 , 256 , 257 , 0 , - 257 , - 256 , - 255 , - 1 , - 127863182361 } ;
int_fast64_t m[ SIZE] = { 256 , 256 , 256 , 256 , 256 , 256 , 256 , 256 , 156 } ;
for ( size_t i = 0 ; i < SIZE; ++ i)
cout << val[ i] << " mod " << m[ i] << " = " << mod( val[ i] , m[ i] ) << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGludD4KI2luY2x1ZGUgPGNzdGRkZWY+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KVCBtb2QoVCB2YWwsIFQgbSkKewoJVCByZXMgPSB2YWwgJSBtOwoJaWYgKHJlcyA8IDApCgkJcmVzID0gcmVzICsgbTsKCXJldHVybiByZXM7Cn0KCgppbnQgbWFpbigpIAp7Cgljb25zdCBzaXplX3QgU0laRSA9IDk7CglpbnRfZmFzdDY0X3QgdmFsW1NJWkVdID0gezI1NSwgMjU2LCAyNTcsICAgMCwgLTI1NywgLTI1NiwgLTI1NSwgIC0xLCAtMTI3ODYzMTgyMzYxfTsKCWludF9mYXN0NjRfdCBtW1NJWkVdICAgPSB7MjU2LCAyNTYsIDI1NiwgMjU2LCAgMjU2LCAgMjU2LCAgMjU2LCAyNTYsICAxNTZ9OwoJCglmb3IgKHNpemVfdCBpID0gMDsgaSA8IFNJWkU7ICsraSkKCQljb3V0IDw8IHZhbFtpXSA8PCAiIG1vZCAiIDw8IG1baV0gPDwgIiA9ICIgPDwgbW9kKHZhbFtpXSwgbVtpXSkgPDwgZW5kbDsKCQoJcmV0dXJuIDA7Cn0=