#include <bits/stdc++.h>
using namespace std;
class A{
public:
    int a;
    string s;
};

template <typename T> class myClass {
    vector<T>arr;
public:
    myClass(vector<T> param) : arr(param) {}
    T add() {
        T sum={};
        for(int i=0;i<arr.size();i++){
            // cout<<arr[i]<<"  ";
            sum+=arr[i];
        }
        
        return sum;
    }
};

template <> class myClass<A> {
    vector<A>arr;
public:
    myClass(vector<A> param) : arr(param) {}
    A add() {
        A sum={};
        for(int i=0;i<arr.size();i++){
            sum.a+=arr[i].a;
            sum.s+=" "+arr[i].s;
        }
        return sum;
    }
};
int main()
{
    vector<int>v;
    v.push_back(2);
    v.push_back(5);
    myClass<int> obj(v);
    
    int s=obj.add();
    cout<<s<<endl;
    
    vector<A>vOfA;
    vOfA.push_back({3, "abc"});
    vOfA.push_back({5, "xyz"});
    
    myClass<A> objOfA(vOfA);
    A ss=objOfA.add();
    cout<<ss.a<<"  "<<ss.s<<endl;
}