using System;

namespace ConsoleApplication
{
	class Program
	{
		static void Main(string[] args)
		{
			Console.WriteLine("Area of 5 is: " + (new Circle(5).Area()).ToString());
			Console.WriteLine("Perimeter of 5 is: " + (new Circle(5).Perimeter()).ToString());

			Circle C = new Circle(8.5);
			Console.WriteLine("\nArea of 8.5 is: " + C.Area().ToString());
			Console.WriteLine("Perimeter of 8.5 is: " + C.Perimeter().ToString());

			Console.Read();
		}
	}

	abstract class Shape
	{
		public double X, Y;

		public Shape() : this(0) { }
		public Shape(double X)
		{
			this.X = this.Y = X;
		}
		public Shape(double X, double Y)
		{
			this.X = X;
			this.Y = Y;
		}

		public virtual double Area()
		{
			return this.X * this.Y;
		}

		public virtual double Perimeter()
		{
			return 2 * this.X * this.Y;
		}
	}

	sealed class Circle : Shape
	{
		public Circle() : base(0) { }
		public Circle(double Radius) : base(Radius) { }

		public override double Area()
		{
			return Math.PI * this.X * this.X;
		}

		public override double Perimeter()
		{
			return 2 * Math.PI * this.X;
		}
	}
}