#include <iostream>
#include <tuple>
#include <iomanip>
template <typename T, typename... L>
struct foo{};
template <typename T>
struct bar {
using toto = T;
};
template <template<typename, typename...> class F, typename T, typename... L>
struct bar<F<T,L...>> {
using toto = T;
};
int main() {
bar< foo<int,char,char> > a;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHVwbGU+CiNpbmNsdWRlIDxpb21hbmlwPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEw+CnN0cnVjdCBmb297fTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdHJ1Y3QgYmFyIHsKICAgIHVzaW5nIHRvdG8gPSBUOwp9OwoKdGVtcGxhdGUgPHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZS4uLj4gY2xhc3MgRiwgdHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gTD4Kc3RydWN0IGJhcjxGPFQsTC4uLj4+IHsKCXVzaW5nIHRvdG8gPSBUOwp9OwoKaW50IG1haW4oKSB7CiAgICAKCWJhcjwgZm9vPGludCxjaGFyLGNoYXI+ID4gYTsKfQ==