#include<iostream>
#include<cmath>
using namespace std;
class Point_1D
{ protected:
float x;
public:
Point_1D(float p = 0.0);
float distance(const Point_1D & p2);
};
Point_1D::Point_1D(float p){x=p;}
class Point_2D:public Point_1D{protected:float y;
public:Point_2D(float y1=0,float x1=0)
{y=y1;x=x1;}
float distance(const Point_2D & p2);};
class Point_3D:public Point_2D{protected:float z;
public: Point_3D(float y1=0,float x1=0,float z1=0)
{y=y1,x=x1,z=z1;}
float distance(const Point_3D & p2);};
float Point_1D::distance(const Point_1D & p2)
{return fabs(this->x-p2.x);}
float Point_2D::distance(const Point_2D & p2)
{return sqrt((this->x-p2.x)*(this->x-p2.x)+(this->y-p2.y)*(this->y-p2.y));
}