    #include <iostream>
    #include <typeinfo>
    using namespace std;
    
    class vvoid {
    	virtual void mv() {};
    };
    class Name
    {
    	virtual void mv() {};
    int a;
    int b;
    };
     
    class Name1
    {
    	virtual void mv() {};
    int a;
    int b;
    };
    
    void f(vvoid *p){
        cout<<"f("<<p<<"):"<<typeid(*p).name()<< endl;
    }
     
    int main() {
        Name *n=new Name;;
        Name1 *n1=new Name1;
        f(reinterpret_cast<vvoid*>(n)); 
        f(reinterpret_cast<vvoid*>(n1));
     
    // your code goes here
    return 0;
    }