#include <iostream>
#include <algorithm>
#include <functional>
template<class RandIt, class Compare>
bool next_k_permutation(RandIt first, RandIt mid, RandIt last, Compare comp)
{
std::sort(mid, last, [=](auto a, auto b){ return comp(b,a); });
return std::next_permutation(first, last, comp);
}
template<class RandIt>
bool next_k_permutation(RandIt first, RandIt mid, RandIt last)
{
return next_k_permutation(first, mid, last,std::less<>());
}
int main()
{
// B M W Z A O T
int v[] = {0,1,2,3,4,5,6,7,8,9};
do {
if (((v[0]+v[3]-v[5])*10+v[1]+v[4]-v[6])*10+v[2]+v[3]-v[5] == 1000*v[1])
std::cout
<< v[0] << v[1] << v[2] << "+"
<< v[3] << v[4] << v[3] << "="
<< v[1] << v[5] << v[6] << v[5] << "\n";
} while(next_k_permutation(v,v+7,v+10));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCnRlbXBsYXRlPGNsYXNzIFJhbmRJdCwgY2xhc3MgQ29tcGFyZT4KYm9vbCBuZXh0X2tfcGVybXV0YXRpb24oUmFuZEl0IGZpcnN0LCBSYW5kSXQgbWlkLCBSYW5kSXQgbGFzdCwgQ29tcGFyZSBjb21wKQp7CiAgICBzdGQ6OnNvcnQobWlkLCBsYXN0LCBbPV0oYXV0byBhLCBhdXRvIGIpeyByZXR1cm4gY29tcChiLGEpOyB9KTsKICAgIHJldHVybiBzdGQ6Om5leHRfcGVybXV0YXRpb24oZmlyc3QsIGxhc3QsIGNvbXApOwp9Cgp0ZW1wbGF0ZTxjbGFzcyBSYW5kSXQ+CmJvb2wgbmV4dF9rX3Blcm11dGF0aW9uKFJhbmRJdCBmaXJzdCwgUmFuZEl0IG1pZCwgUmFuZEl0IGxhc3QpCnsKICAgIHJldHVybiBuZXh0X2tfcGVybXV0YXRpb24oZmlyc3QsIG1pZCwgbGFzdCxzdGQ6Omxlc3M8PigpKTsKfQoKaW50IG1haW4oKQp7CiAgICAvLyAgICAgICAgIEIgTSBXIFogQSBPIFQKICAgIGludCB2W10gPSB7MCwxLDIsMyw0LDUsNiw3LDgsOX07CiAgICBkbyB7CiAgICAgICAgaWYgKCgodlswXSt2WzNdLXZbNV0pKjEwK3ZbMV0rdls0XS12WzZdKSoxMCt2WzJdK3ZbM10tdls1XSA9PSAxMDAwKnZbMV0pCiAgICAgICAgICAgIHN0ZDo6Y291dAogICAgICAgICAgICAgICAgPDwgdlswXSA8PCB2WzFdIDw8IHZbMl0gPDwgIisiCiAgICAgICAgICAgICAgICA8PCB2WzNdIDw8IHZbNF0gPDwgdlszXSA8PCAiPSIKICAgICAgICAgICAgICAgIDw8IHZbMV0gPDwgdls1XSA8PCB2WzZdIDw8IHZbNV0gPDwgIlxuIjsKICAgIH0gd2hpbGUobmV4dF9rX3Blcm11dGF0aW9uKHYsdis3LHYrMTApKTsKfQo=