#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int main(int argc, char** argv) {
	long long w,h,r,q,a=0,x=0,y=0,xg=0,yg=0,xgd=0,n2=0;
	cin>>w>>h>>r>>q;
	long double niz[w];
	long double niz2[w];
	for(long long i=0;i<=w;i++){
		niz[i]=h;
	}
	long double abc=0;
	for(long long i=0;i<q;i++){
		cin>>a;
		if(a==1){
			cin>>x>>y;
			xg=x-r;
			yg=y-r;
			xgd=x+r;
			if(xg<=w && yg<=h){
			for(long long j=0;j<=w;j++){
				if(j>=xg && j<=xgd && j<x){
					abc=y-sqrt((r*r)-(x-j)*(x-j));
					if(niz[j]>abc){
						niz[j]=abc;
					}
				}
				if(j>=xg && j<=xgd && j>x){
					abc=y-sqrt((r*r)-(j-x)*(j-x));
					if(niz[j]>abc){
						niz[j]=abc;
					}
				}
				if(j>=xg && j<=xgd && j==x){
					abc=y-r;
					if(niz[j]>abc){
						niz[j]=abc;
					}
				}
			}
		}
	}
		else{
			cin>>x;
			niz2[n2]=niz[x];
			n2++;
		}
		 }
	for(long long i=0;i<n2;i++){
		cout<<fixed<<showpoint<<setprecision(9)<<niz2[i]<<endl;;
	}

	return 0;
}