#include<bits/stdc++.h>
using namespace std;

#define ALL(a)  (a).begin(),(a).end()
#define ALLR(a)  (a).rbegin(),(a).rend()
#define spa << " " <<
#define test cout<<"test"<<endl;
#define fi first
#define se second
#define rep(i,n,m) for(ll i = n; i < (ll)(m); i++)
#define rrep(i,n,m) for(ll i = n; i < (ll)(m); i--)
typedef long long ll;
typedef long double ld;
const ll MOD = 1e9+7;
//const ll MOD = 998244353;
const ll INF = 1e18;
using P = pair<ll, ll>;
void chmin(ll &a,ll b){if(a>b)a=b;}
void chmax(ll &a,ll b){if(a<b)a=b;}
void pmod(ll &a,ll b){a=(a+b)%MOD;}
void pmod(ll &a,ll b,ll c){a=(b+c)%MOD;}
void qmod(ll &a,ll b){a=(a*b)%MOD;}
void qmod(ll &a,ll b,ll c){a=(b*c)%MOD;}
ll median(ll a,ll b, ll c){return a+b+c-max({a,b,c})-min({a,b,c});}
void ans1(bool x){if(x) cout<<"Yes"<<endl;else cout<<"No"<<endl;}
void ans2(bool x){if(x) cout<<"YES"<<endl;else cout<<"NO"<<endl;}
void ans3(bool x){if(x) cout<<"Yay!"<<endl;else cout<<":("<<endl;}
void ans(bool x,ll y,ll z){if(x)cout<<y<<endl;else cout<<z<<endl;}
void ans(bool x,string y,string z){if(x)cout<<y<<endl;else cout<<z<<endl;}   
void debug(vector<vector<ll>>v,ll h,ll w){for(ll i=0;i<h;i++)
{cout<<v[i][0];for(ll j=1;j<w;j++)cout spa v[i][j];cout<<endl;}};
void debug(vector<string>v,ll h,ll w){for(ll i=0;i<h;i++)
{for(ll j=0;j<w;j++)cout<<v[i][j];cout<<endl;}};
void debug(vector<ll>v,ll n){cout<<v[0];
for(ll i=1;i<n;i++)cout spa v[i];cout<<endl;};
ll gcd(ll x,ll y){ll r;while((r=x%y)!=0){x=y;y=r;}return y;}
//m.emplace(x,0).fi->second++;

int main(){
  ll res=0,res1=INF,res2=-INF,buf=0;
  bool judge = true;
  ll k,x,y;cin>>k>>x>>y;
  ll p=(x>=0?1:-1);
  ll q=(y>=0?1:-1);
  x=abs(x);y=abs(y);
  buf=(k+abs(x+y)-1)/k;
  ll modbuf=abs(x+y)%k;
  ll mbuf=k-modbuf;

  //cout<<modbuf spa mbuf spa buf<<endl;

  if(k%2==0&&modbuf%2==1){
    cout<<-1<<endl;
  }
  else{
    ll xbuf=0,ybuf=0;
    if(modbuf!=0){
      if(k%2==0||(k%2==1&&mbuf%2==1)){
        if(x+y<k||k%2==1){
          cout<<buf+1<<endl;
          if(x<y){
            xbuf=p*(-1)*(k+mbuf)/2;
            ybuf=q*abs(k-abs(xbuf));
          }
          else {
            ybuf=q*(-1)*(k+mbuf)/2;
            xbuf=p*abs(k-abs(ybuf));
          }
        }
        else{
          cout<<buf<<endl;
          if(x<y){
            xbuf=p*(-1)*(k-modbuf)/2;
            ybuf=q*(k+modbuf)/2;
          }
          else {
            xbuf=p*(k+modbuf)/2;
            ybuf=q*(-1)*(k-modbuf)/2;
          }
        }
        cout<<xbuf spa ybuf<<endl;
      }
      else{
        if(x+y<k){
          //test;
          cout<<buf+2<<endl;
          xbuf=p*(-1)*mbuf/2;
          ybuf=abs(k-abs(xbuf));
          cout<<xbuf spa ybuf<<endl;
          xbuf=p*(-1)*mbuf;ybuf=0;
          cout<<xbuf spa ybuf<<endl;
        }
        else{
          //test;
          cout<<buf<<endl;
          if(x>y){
            ybuf=(-1)*q*(mbuf)/2;
            xbuf=p*abs(k-abs(ybuf));
          }
          else{
            xbuf=(-1)*p*(mbuf)/2;
            ybuf=q*abs(k-abs(xbuf));
          }
          cout<<xbuf spa ybuf<<endl;
          
        }
      }
    }
    else{
      cout<<buf<<endl;
    }
    while(1){
      if(p==1&&xbuf+p*k<=x)xbuf+=p*k;
      else if(p==-1&&xbuf+p*k>=-x)xbuf+=p*k;
      else if(q==1&&ybuf+q*k<=y)ybuf+=q*k;
      else if(q==-1&&ybuf+q*k>=-y)ybuf+=q*k;
      else {break;}
      if(xbuf==p*x&&ybuf==q*y)break;
      cout<<xbuf spa ybuf<<endl;
    }

    xbuf=x;ybuf=y;
    cout<<p*x spa q*y<<endl;
  }

  return 0;
}

Measured memory_bytes: 2304