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

int main(){
    string a;
    cin >> a;
    int p=0;
    int c = a.size();
    for(int i=0; i < c;i++){
        if(a[i]=='.') p = i;
    }
    if(p!=0) a = a.substr(0,p);
    // a.substr(0,(a.size()-p));
    cout << a << endl;
    return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i, l, n) for (int i = (l); i < (n); i++)

template <class T>
inline bool chmin(T& a, T b) {
    if (a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T>
inline bool chmax(T& a, T b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}

using ll = int64_t;
using ull = uint64_t;

int n[18];
/*
ある整数が3の倍数であるかどうかは、その数の各位の数を足した値が3の倍数であるかどうかで調べられます。
*/
int main() {
    string N;
    cin >> N;

    int index = 0;
    for (char c : N) {
        n[index++] = c - '0';
    }

    int S = N.size();
    int min_keta = 1000;
    for (ull i = 0; i < (1 << S); i++) {
        ull num = 0;
        int keta = 0;
        for (int j = 0; j < S; j++) {
            if (i & (1 << j)) {
                num += n[j];
                keta++;

                // cout << n[j] << ": " << num << endl;
                if ((num % 3) == 0) {
                    if ((S - keta) < min_keta) {
                        min_keta = (S - keta);
                    }
                }
            }
        }
    }
    if (min_keta == 1000) {
        cout << -1 << endl;
    } else {
        cout << min_keta << endl;
    }
}