#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i,n,m) for(ll i=(n);i<(m);i++)
#define REP(i,n) FOR(i,0,n)
#define REPR(i,n) for(ll i=(n);i>=0;i--)
#define all(vec) vec.begin(),vec.end()
using vi=vector<int>;
using vvi=vector<vi>;
using vl=vector<ll>;
using vvl=vector<vl>;
using P=pair<ll,ll>;
using PP=pair<ll,P>;
using vp=vector<P>;
using vpp=vector<PP>;
using vs=vector<string>;
#define fi first
#define se second
#define pb push_back
template<class T>bool chmax(T &a,const T &b){if(a<b){a=b;return true;}return false;}
template<class T>bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;}
const ll MOD=1000000007LL;
const int INF=1<<30;
const ll LINF=1LL<<60;
class RANDOM{
private:
    mt19937 mt;
public:
    RANDOM():mt((int)time(NULL)){}
    int rand(int r){
        return mt()%r;
    }
    int rand(int l,int r){
        if(l>r){
            swap(l,r);
        }
        return rand(r-l)+l;
    }
};
int main(){
    int n,k;
    cin>>n>>k;
    vi d(k);
    REP(i,k){
        cin>>d[i];
        d[i]--;
    }
    vs vec(n);
    REP(i,n){
        cin>>vec[i];
    }
    RANDOM r;
    REP(i,k){
        int f=r.rand(2);
        if(f){
            int x=r.rand(n)+1;
            int y=r.rand(n-d[i])+1;
            cout<<x<<" "<<y<<" "<<x<<" "<<y+d[i]<<endl;
        }else{
            int x=r.rand(n-d[i])+1;
            int y=r.rand(n)+1;
            cout<<x<<" "<<y<<" "<<x+d[i]<<" "<<y<<endl;            
        }
    }
    return 0;
}