#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    long long w,h,r,q,q1,q2;
    cin>>w;
    cin>>h;
    cin>>r;
    cin>>q;
    double long x1[q],y1[q],x,y[q],min1,min2,z[q];
    q1=--q;
    cin>>z[q];
    if(z[q]==1)
    {
        cin>>x1[q];
            cin>>y1[q];
            min1=y1[q];
            min2=x1[q];
    }
    else
    {
        cin>>x;
        if(x<=w)
            y[q]=h;
            else y[q]=0;
        min1=y[q];
    }
    q--;
    q1;
    q2=q1;
    while(q>=0)
    {
        cin>>z[q];
        if(z[q]==1)
        {
            cin>>x1[q];
            cin>>y1[q];
            min1=y1[q];
            min2=x1[q];
        }
        else
        {
            cin>>x;
            while(q1>=q)
            {

                if(z[q1]==1&&abs(y1[q1]-sqrt(r*r-(x1[q1]-x)*(x1[q1]-x)))<min1&&y1[q1]<=h+r)
                    min1=abs(y1[q1]-sqrt((double)r*r-(x1[q1]-x)*(x1[q1]-x)));
                q1--;

            }
            if(h>=min1)
            y[q]=min1;
            else y[q]=h;
        }
        q1=q2;
        q--;
    }
    while(q2>=0)
    {
        if(z[q2]==2)
        {
            cout<<setprecision(9)<<fixed<<y[q2]<<" ";
        }
        q2--;
    }
    return 0;
}