#include<iostream>
class abc{
int** mass;
int Msize;
public:
abc(int M,int a,int b){
Msize=M;
mass=new int*[Msize];
mass[0]=new int(a+1);mass[0][0]=a;
mass[1]=new int(b+1);mass[1][0]=b;
for(int i=0;i<Msize;i++){
for(int ii=1;ii<=mass[i][0];ii++)mass[i][ii]=1;
}
}
~abc(){
std::cout << "~abc >>>" << std::endl;
for(int i=0;i<Msize;i++){
// delete/*[]*/ mass[i];
}
// delete[] mass;
std::cout << "~abc <<<" << std::endl;
}
void del(int num=0){
int i,ii;
GetElem(num,i,ii);
int j=i,jj=0;
int* M=new int(mass[i][0]+1);
for(;jj<=mass[i][0];jj++)M[jj]=mass[j][jj];
for(int a=1;a<=M[0];a++) std::cout<<M[a];
delete []mass[i];
mass[i]=new int(M[0]);
mass[i][0]=M[0]-1;
jj=1;
if(ii<=mass[i][0]){
while(jj<ii){mass[i][jj]=M[jj];jj++;}
while(jj<=mass[i][0]){mass[i][jj]=M[jj+1];jj++;}
}
else while(jj<=mass[i][0])mass[i][jj]=M[jj];
delete []M;
}
friend std::ostream &operator <<(std::ostream& I,abc& param){
for(int i=0;i<param.Msize;i++){
for(int ii=1;ii<=param.mass[i][0];ii++){
/*if(i==param.Msize-1 && ii==param.mass[param.Msize-1][0]) std::cout<<param.mass[i][ii];
else*/ std::cout<<param.mass[i][ii]/*<<","*/;
}
std::cout<<std::endl;
}
return I;
}
private:
void GetElem(int& num,int& i,int& ii){
int point=0;
for(i=0;i<Msize;i++){
int size=mass[i][0];
for(ii=1;ii<=size;ii++){
point++;
if(point==num)break;
}
if(point==num)break;
if(i==Msize-1)i=0;
}
}
};
int main(){
abc a(2,3,4);
std::cout<<a;
//a.del(5);
std::cout<<a;
}