#include <future>
#include <chrono>
#include <iostream>
using namespace std;
using namespace std::chrono;
int main()
{
const auto start_time = steady_clock::now();
async(launch::async, [] { this_thread::sleep_for(seconds(2)); });
async(launch::async, [] { this_thread::sleep_for(seconds(2)); });
auto f = async(launch::async, [] { this_thread::sleep_for(seconds(2)); });
f.wait();
const auto end_time = steady_clock::now();
cout << duration_cast<milliseconds>(end_time - start_time).count() << '\n';
}
I2luY2x1ZGUgPGZ1dHVyZT4KI2luY2x1ZGUgPGNocm9ubz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIHN0ZDo6Y2hyb25vOwoKaW50IG1haW4oKQp7CiAgY29uc3QgYXV0byBzdGFydF90aW1lID0gc3RlYWR5X2Nsb2NrOjpub3coKTsKCiAgYXN5bmMobGF1bmNoOjphc3luYywgW10geyB0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHNlY29uZHMoMikpOyB9KTsKICBhc3luYyhsYXVuY2g6OmFzeW5jLCBbXSB7IHRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc2Vjb25kcygyKSk7IH0pOwogIGF1dG8gZiA9IGFzeW5jKGxhdW5jaDo6YXN5bmMsIFtdIHsgdGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzZWNvbmRzKDIpKTsgfSk7CiAgZi53YWl0KCk7CgogIGNvbnN0IGF1dG8gZW5kX3RpbWUgPSBzdGVhZHlfY2xvY2s6Om5vdygpOwoKICBjb3V0IDw8IGR1cmF0aW9uX2Nhc3Q8bWlsbGlzZWNvbmRzPihlbmRfdGltZSAtIHN0YXJ0X3RpbWUpLmNvdW50KCkgPDwgJ1xuJzsKfQo=