#include <wheels/type_traits.h++>
#include <iostream>
#include <utility>
template <typename Fun,
wheels::EnableIf<wheels::is_callable<Fun, void(int, int)>> = wheels::_>
void run(int a, Fun&& f) {
std::forward<Fun>(f)(a, a);
}
template <typename Fun,
wheels::EnableIf<wheels::is_callable<Fun, void(int)>> = _>
void run(int a, Fun&& f) {
std::forward<Fun>(f)(a);
}
int main() {
run(34,[] (int i, int j) { std::cout << i << j << std::endl; });
}
I2luY2x1ZGUgPHdoZWVscy90eXBlX3RyYWl0cy5oKys+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHV0aWxpdHk+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuLAogICAgICAgICAgd2hlZWxzOjpFbmFibGVJZjx3aGVlbHM6OmlzX2NhbGxhYmxlPEZ1biwgdm9pZChpbnQsIGludCk+PiA9IHdoZWVsczo6Xz4gCnZvaWQgcnVuKGludCBhLCBGdW4mJiBmKSB7CiAgc3RkOjpmb3J3YXJkPEZ1bj4oZikoYSwgYSk7Cn0KIAogCnRlbXBsYXRlIDx0eXBlbmFtZSBGdW4sCiAgICAgICAgICB3aGVlbHM6OkVuYWJsZUlmPHdoZWVsczo6aXNfY2FsbGFibGU8RnVuLCB2b2lkKGludCk+PiA9IF8+IAp2b2lkIHJ1bihpbnQgYSwgRnVuJiYgZikgewogIHN0ZDo6Zm9yd2FyZDxGdW4+KGYpKGEpOwp9CiAKaW50IG1haW4oKSB7CiAgcnVuKDM0LFtdIChpbnQgaSwgaW50IGopICB7IHN0ZDo6Y291dCA8PCBpICA8PCBqIDw8IHN0ZDo6ZW5kbDsgfSk7Cn0=