#include <bits/stdc++.h>
using namespace std;
int main(){
  string n;
  cin >> n;
  long long sum = 0;
  for(long long i=0;i<n.length();++i){
    sum += n[i] - '0';
  }
  if(sum%3 == 0){
    cout << 0 << endl;
    return 0;
  }
  
  if(n.length() == 1){
    cout << -1 << endl;
    return 0;
  }
  
  for(long long i=0;i<n.length();++i){
    if(sum%3 == (n[i] - '0')%3) {
      cout << 1 << endl;
      return 0;
    }
  }
  if(n.length() == 2){
    cout << -1 << endl;
    return 0;
  }
  
  cout << 2 << endl;     
  return 0;
}
#include<iostream>
using namespace std;
typedef long long li;
#define rep(i,n) for(int i=0;i<(n);i++)
#define df 0
template<class T> void print(const T& t){ cout << t << "\n"; }
template<class T, class... Ts> void print(const T& t, const Ts&... ts) { cout << t; if (sizeof...(ts)) cout << " "; print(ts...); }

int ceil2(int a){
  int ret=a,i=1;
  while((ret>>i)!=0){
    ret|=ret>>i;
    i<<=1;
  }
  ret++;
  if(a==(ret>>1)) return a;
  return ret;
}

int main(){
  int n;  cin >>n;
  int t=ceil2(n+1);
  
  auto f=[&](int a){
           return (a-1)%t+1;
         };
  auto g=[&](int a){
           return f(a)-((f(a)>n)?(t/2):0);
         };
  
  
  rep(_i,n){
    int i=_i+1;
    print(g(2*i),g(2*i+1));
  }
  
}
