#include <climits>
#include <cstdlib>
#include <random>
#include <functional>
double rand(unsigned count, unsigned sides) {
if (count<=100) {
int result=0;
for(int i=0; i<count; ++i)
result += rand()/(RAND_MAX/sides);
return result;
}
static std::mt19937_64 engine;
const double mean = .5*count*sides;
const double stddev = std::sqrt(count*(1.0*sides*sides-1.0)/12.0);
std::normal_distribution<double> distribution(mean, stddev);
return std::floor(distribution(engine));
}
#include <iostream>
int main() {
int count, sides;
while(std::cin >> count >> sides) {
std::cout << count << 'd' << sides << '=' << rand(count, sides) << '\n';
}
return 0;
}
I2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmRvdWJsZSByYW5kKHVuc2lnbmVkIGNvdW50LCB1bnNpZ25lZCBzaWRlcykgewogICAgaWYgKGNvdW50PD0xMDApIHsKICAgICAgICBpbnQgcmVzdWx0PTA7CiAgICAgICAgZm9yKGludCBpPTA7IGk8Y291bnQ7ICsraSkKICAgICAgICAgICAgcmVzdWx0ICs9IHJhbmQoKS8oUkFORF9NQVgvc2lkZXMpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBzdGF0aWMgc3RkOjptdDE5OTM3XzY0IGVuZ2luZTsKICAgIGNvbnN0IGRvdWJsZSBtZWFuID0gLjUqY291bnQqc2lkZXM7CiAgICBjb25zdCBkb3VibGUgc3RkZGV2ID0gc3RkOjpzcXJ0KGNvdW50KigxLjAqc2lkZXMqc2lkZXMtMS4wKS8xMi4wKTsKICAgIHN0ZDo6bm9ybWFsX2Rpc3RyaWJ1dGlvbjxkb3VibGU+IGRpc3RyaWJ1dGlvbihtZWFuLCBzdGRkZXYpOwogICAgcmV0dXJuIHN0ZDo6Zmxvb3IoZGlzdHJpYnV0aW9uKGVuZ2luZSkpOwp9CgojaW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbigpIHsKICAgIGludCBjb3VudCwgc2lkZXM7CiAgICB3aGlsZShzdGQ6OmNpbiA+PiBjb3VudCA+PiBzaWRlcykgewogICAgICAgIHN0ZDo6Y291dCA8PCBjb3VudCA8PCAnZCcgPDwgc2lkZXMgPDwgJz0nIDw8IHJhbmQoY291bnQsIHNpZGVzKSA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=
MSA2CjEgNgoxIDYKMSA2CjEgNgoxIDYKMSA2CjEgNgoxIDYKMSA2CjEgNgoxMDAgMTAwCjEwMCAxMDAKMTAwIDEwMAoxMDAgMTAwCjEwMCAxMDAKMTAwIDEwMAoxMDAgMTAwCjEwMCAxMDAKMTAwIDEwMAoxMDAgMTAwCjEwMSAxMDEKMTAxIDEwMQoxMDEgMTAxCjEwMSAxMDEKMTAxIDEwMQoxMDEgMTAxCjEwMSAxMDEKMTAxIDEwMQoxMDEgMTAxCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwIDEwMDAwCjEwMDAwMDAgMTAwMDAwMAoxMDAwMDAwIDEwMDAwMDAKMTAwMDAwMCAxMDAwMDAwCjEwMDAwMDAgMTAwMDAwMAoxMDAwMDAwIDEwMDAwMDAKMTAwMDAwMCAxMDAwMDAwCjEwMDAwMDAgMTAwMDAwMAoxMDAwMDAwIDEwMDAwMDAKMTAwMDAwMCAxMDAwMDAwCjEwMDAwMDAgMTAwMDAwMA==
1 6
1 6
1 6
1 6
1 6
1 6
1 6
1 6
1 6
1 6
1 6
100 100
100 100
100 100
100 100
100 100
100 100
100 100
100 100
100 100
100 100
101 101
101 101
101 101
101 101
101 101
101 101
101 101
101 101
101 101
10000 10000
10000 10000
10000 10000
10000 10000
10000 10000
10000 10000
10000 10000
10000 10000
10000 10000
10000 10000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000
1000000 1000000