#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(),(x).end()
const int mod=1000000007,MAX=100005,INF=1<<30;

int main(){
    
    std::ifstream in("text.txt");
    std::cin.rdbuf(in.rdbuf());
    cin.tie(0);
    ios::sync_with_stdio(false);
    
    while(1){
        int H,W,T,P;cin>>W>>H>>T>>P;
        if(H+W+T+P==0) break;
        vector<vector<int>> cnt(H,vector<int>(W,1));
        
        while(T--){
            int Q,L;cin>>Q>>L;
            
            if(Q==1){
                if(cnt[0].size()>=2*L){
                    vector<vector<int>> change(cnt.size(),vector<int>(cnt[0].size()-L));
                    
                    for(int i=0;i<cnt.size();i++){
                        for(int j=0;j<L;j++){
                            change[i][j]=cnt[i][L-1-j]+cnt[i][L+j];
                        }
                        for(int j=L;j<cnt[0].size()-L;j++){
                            change[i][j]=cnt[i][L+j];
                        }
                    }
                    
                    cnt=change;
                }else{
                    vector<vector<int>> change(cnt.size(),vector<int>(L));
                    
                    for(int i=0;i<cnt.size();i++){
                        for(int j=0;j<cnt[0].size()-L;j++){
                            change[i][j]=cnt[i][L-1-j]+cnt[i][L+j];
                        }
                        for(int j=cnt[0].size()-L;j<L;j++){
                            change[i][j]=cnt[i][L-1-j];
                        }
                    }
                    
                    cnt=change;
                }
            }else{
                vector<vector<int>> save(cnt[0].size(),vector<int>(cnt.size()));
                for(int i=0;i<cnt[0].size();i++){
                    for(int j=0;j<cnt.size();j++){
                        save[i][j]=cnt[cnt.size()-1-j][i];
                    }
                }
                
                cnt=save;
                
                if(cnt[0].size()>=2*L){
                    vector<vector<int>> change(cnt.size(),vector<int>(cnt[0].size()-L));
                    
                    for(int i=0;i<cnt.size();i++){
                        for(int j=0;j<L;j++){
                            change[i][j]=cnt[i][L-1-j]+cnt[i][L+j];
                        }
                        for(int j=L;j<cnt[0].size()-L;j++){
                            change[i][j]=cnt[i][L+j];
                        }
                    }
                    
                    cnt=change;
                }else{
                    vector<vector<int>> change(cnt.size(),vector<int>(L));
                    
                    for(int i=0;i<cnt.size();i++){
                        for(int j=0;j<cnt[0].size()-L;j++){
                            change[i][j]=cnt[i][L-1-j]+cnt[i][L+j];
                        }
                        for(int j=cnt[0].size()-L;j<L;j++){
                            change[i][j]=cnt[i][L-1-j];
                        }
                    }
                    
                    cnt=change;
                }
                
                vector<vector<int>> to(cnt[0].size(),vector<int>(cnt.size()));
                
                for(int i=0;i<cnt[0].size();i++){
                    for(int j=0;j<cnt.size();j++){
                        to[i][j]=cnt[j][cnt[0].size()-1-i];
                    }
                }
                
                cnt=to;
            }
        }
        
        while(P--){
            int a,b;cin>>a>>b;
            b=cnt.size()-1-b;
            
            cout<<cnt[b][a]<<endl;
        }
    }
}




Measured memory_bytes: 3144