#include <iostream>
#include <stdio.h>
#include <vector>
#include <tuple>
using namespace std;
class Base{
public:
virtual float* floatValue()=0;
virtual char* charValue()=0;
virtual int* intValue()=0;
virtual int** intpValue() { return nullptr;}
virtual int id()=0;
};
class Float: public Base{
private:
float value;
public:
Float(float v):value(v){}
float* floatValue(){return &value;}
char* charValue(){return (char* )&value;}
int* intValue(){return (int*) &value;}
int id(){return 3;}
};
class Char: public Base{
private:
char value;
public:
Char(char v):value(v){}
float* floatValue(){return (float* )&value;}
char* charValue(){return &value;}
int* intValue(){return (int*) &value;}
int id(){return 4;}
};
class Int: public Base{
private:
int value;
public:
Int(char v):value(v){}
float *floatValue(){return (float *