#include <常用>
枚 a{啊,哈,呀};
用 量=向量<整>;
元<整 I>要求(I==啊)
空 f(量&i){打印("f1");打印(i);}
元<整 I>要求(I==哈)
空 f(量&i,无序集<整>&a){打印("f2");转集(i,a);}
元<整 I>要求(I==呀)
空 f(量&i,向量<整>&们){打印("f3");们=i;}
元<整...I,整...J>
空 g0(序列<I...>a,序列<J...>b,向量<向量<整>>&们){
    断定(型长等(I,J));(f<I>(们[J]),...);
}
元<整...I,整...J,类...T>
空 g0(序列<I...>a,序列<J...>b,向量<向量<整>>&们,T&...t){
    断定(型长等(I,J));(f<I>(们[J],t),...);
}
元<整 J>常式 整 是啊(){中(J==啊);}
静构函(是啊构,是啊);
元<整...J,类...T>
空 g(向量<向量<整>>&们,T&...t){
    断定(型长...(J)==们.大小());
    常式 动 a=分二序<是啊构,J...>();
    常式 动 b=分二位<是啊构,J...>();
    
    g0(a.第一,b.第一,们);
    g0(a.第二,b.第二,们,t...);
}
空 主(){
    向量<向量<整>>们{{2,3,4},{1,3,5},{22,11}};
    无序集<整>k;向量<整>j;
    g<啊,哈,呀>(们,k,j);
    打印大小(k,j);
}