using System;

namespace Zadatak2._4
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split();
            long w = long.Parse(s[0]), h = long.Parse(s[1]), r = long.Parse(s[2]), q = long.Parse(s[3]);
            long[,] matrulaz = new long[3,q];
            s[0] = "0";
            s[1] = "0";
            s[2] = "0";
            for (int i = 0; i < q; i++)
            {
                s = Console.ReadLine().Split();
                if (int.Parse(s[0]) == 1)
                {
                    matrulaz[0, i] = long.Parse(s[0]);
                    matrulaz[1, i] = long.Parse(s[1]);
                    matrulaz[2, i] = long.Parse(s[2]);
                }
                else
                {
                    matrulaz[0, i] = long.Parse(s[0]);
                    matrulaz[1, i] = long.Parse(s[1]);
                }
            }
            double[] matrirezultata = new double [w];
            for (int i = 0; i < w; i++)
            {
                matrirezultata[i] = h;
            }
            for (int i = 0; i < q; i++)
            {
                if (matrulaz[0, i] == 2)
                    Console.WriteLine(matrirezultata[matrulaz[1, i]]);
                else
                {
                    for (int j = 0; j < w; j++)
                    {
                        matrirezultata[j] = Math.Min(h - Math.Sqrt(r * r - (matrulaz[1, i] - j) * (matrulaz[1, i] - j)) - h + matrulaz[2, i], matrirezultata[j]);
                    }
                }
            }
        }
    }
}