#include <iostream>
#include <vector>
using namespace std;
template<typename type, class container>
struct A
{
void say() { std::cout << "Say for all" << std::endl;}
};
template<typename type>
struct A<type,vector<type>>
{
void say()
{
std::cout << "Say for vector" << std::endl;
}
};
int main(int argc, char * argv[])
{
A<int,vector<int>> a;
A<int,double> b;
a.say();
b.say();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIHR5cGUsIGNsYXNzIGNvbnRhaW5lcj4Kc3RydWN0IEEKewogICAgdm9pZCBzYXkoKSB7IHN0ZDo6Y291dCA8PCAiU2F5IGZvciBhbGwiIDw8IHN0ZDo6ZW5kbDt9Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSB0eXBlPgpzdHJ1Y3QgQTx0eXBlLHZlY3Rvcjx0eXBlPj4KewogICAgdm9pZCBzYXkoKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiU2F5IGZvciB2ZWN0b3IiIDw8IHN0ZDo6ZW5kbDsKICAgIH0KfTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKQp7CiAgICBBPGludCx2ZWN0b3I8aW50Pj4gYTsKICAgIEE8aW50LGRvdWJsZT4gYjsKICAgIGEuc2F5KCk7CiAgICBiLnNheSgpOwp9Cgo=