#include<iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
class Animal {
public:
static int sum;
static int dog;
static int cat;
Animal()
{
cout<<"Animal"<<endl;
sum++;
}
virtual ~Animal()
{
sum--;
}
virtual void speak()=0;
static void getcount(){cout<<"Animal:"<<sum<<endl;}
};
class Cat:public Animal
{
public:
Cat()
{
cout<<"Cat"<<endl;
cat++;
}
void speak()
{
cout<<"miao"<<endl;
}
static void getcount()
{
cout<<"Dog:"<<cat<<endl;
}
~Cat(){cat--;}
};
class Dog: public Animal
{
public:
Dog()
{
cout<<"Dog"<<endl;
dog++;
}
void speak()
{
cout<<"wang"<<endl;
}
static void getcount()
{
cout<<"Cat:"<<dog<<endl;
}
~Dog(){dog--;}
};
int Animal::cat=0;
int Animal::dog=0;
int Animal::sum=0;
int main()
{
int n,m,i=0;
cin >> n;
cin>>m;
Animal *a[20];
for (; i < n; i++) {
a[i]=new Dog;
}
Animal:: getcount();
Dog:: getcount();
for ( ; i < n+m; i++) {
a[i]=new Cat;
}
Animal:: getcount();
Cat:: getcount();
for (int j = 0; j < n+m-3; j++) {//总量小于3时,不做删除
a[j]->speak();
delete a[j];
a[j] = NULL;
}
Animal:: getcount();
Dog:: getcount();
Cat:: getcount();
return 0;
}