#include <bits/stdc++.h>

#define endl "\n"
#define ld long double

using namespace std;

void milan(int w, int h, int r, int q)
{
    ld v[w+1];
    for(int i=0;i<w+1;i++)
        v[i]=h;

    if(r==1) {

        for(int qwe=0;qwe<q;qwe++) {
            int p; cin >> p;
            int x,y;
            if(p==1) {
                cin >> x >> y;
                if(y==h)
                    v[x]--;
            }
            else {
                cin >> x;
                cout << setprecision(9) << v[x] << endl;
            }
        }
    }
    //
    else {
        for(int qwe=0;qwe<q;qwe++) {
            int p; cin >> p;
            int x,y;
            if(p==1) {
                cin >> x >> y;
                if(y==h+2)
                    continue;
                if(y==h+1) {
                    v[x]=max((ld)0,v[x]-1);
                    if(x)
                        v[x-1]=max((ld)0,v[x-1]-(ld)0.732050807569);
                    if(x<=w-1)
                        v[x+1]=max((ld)0,v[x+1]-(ld)0.732050807569);
                }
                if(y==h) {
                    v[x]=max((ld)0,v[x]-2);
                    if(x)
                        v[x-1]=max((ld)0,v[x-1]-(ld)1.732050807569);
                    if(x<=w-1)
                        v[x+1]=max((ld)0,v[x+1]-(ld)1.732050807569);
                }
            }
            else {
                cin >> x;
                cout << fixed << setprecision(9) << v[x] << endl;
            }
        }
    }
}

int main()
{
    ios::sync_with_stdio(false); cin.tie(0);

    int w,h,r,q; cin >> w >> h >> r >> q;
    if(r<=2) {
        milan(w,h,r,q);
        return 0;
    }
    else {
        for(int i=0;i<q;i++) {
            int a,b,c; cin >> a;
            if(a==1)
                cin >> b >> c;
            else {
                cin >> b;
                cout << "0.00000000000" << endl;
            }
        }
    }



    return 0;
}