#include<iostream>
#include<cmath>
using namespace std;
long long n,m,k,p,s;
long long i_ceil(double p){return int(ceil(p));}
long long i_floor(double p){return int(floor(p));}
signed main()
{
ios::sync_with_stdio(0);
cin>>n>>m>>k>>p;s=n*m;
if(p==0)cout<<"NO";
else if(n==p)
if((k%p)!=0)cout<<"NO";
else if(m-(k/p)<0)cout<<"NO"<<endl;
else
{
cout<<"YES"<<endl;
for(long long i=1;i<=p;i++)
{
cout<<k/p<<' '<<m-(k/p)<<endl;
}
for(int i=p+1;i<=n;i++)
{
cout<<"0 "<<m<<endl;
}
}
else
if(i_floor((k%p)/(n-p)*1.0)>=k/p)cout<<"NO"<<endl;
else if(m-(i_ceil((k%p)/(n-p)*1.0))<0)cout<<"NO"<<endl;
else if(m-i_floor((k%p)/(n-p)*1.0)<0)cout<<"NO"<<endl;
else if(m-(k/p)<0)cout<<"NO"<<endl;
else
{
cout<<"YES"<<endl;
for(long long i=1;i<=p;i++)
{
cout<<k/p<<' '<<m-(k/p)<<endl;
}
for(long long i=p+1;i<=p+(k%p)%(n-p);i++)
{
cout<<i_ceil((k%p)/(n-p)*1.0)<<' '<<m-(i_ceil((k%p)/(n-p)*1.0))<<endl;
}
for(long long i=p+(k%p)%(n-p)+1;i<=n;i++)
{
cout<<i_floor((k%p)/(n-p)*1.0)<<' '<<m-i_floor((k%p)/(n-p)*1.0)<<endl;
}
}
}
删掉Line31就Broke Condition 2,不删就少解,求解释灵异事件+调