#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, x) for(int (i) = 0; (i) < (x); (i) ++) #define prep(i, s, x) for(int (i) = (s); (i) < (x); (i) ++) #define mrep(i, s, x) for(int (i) = (s); (i) >= (x); (i) --) #define irep(i) for(int (i) = 0; ; (i) ++) #define MOD 1000000007 #define PI (acos(-1)) typedef long long LL; // long long型の最大値:LLONG_MAX // long long型の最小値:LLONG_MIN // int型の最大値:INT_MAX // int型の最小値:INT_MIN // 絶対値:abs(n) // べき乗:pow(a, b) // ルート:sqrt(n) // 文字列反転:reverse(str.begin(), str.end()) // 降順(大きい順)にソート:第3引数にgreater() // 重複する要素を削除しvectorの長さを調節する:v.erase(unique(v.begin(), v.end()), v.end()) // stackは後に入れたものから、queueは先に入れたものから // stack.top() queue.front() で要素にアクセス // ループ用変数以外はlong long型にしよう using namespace std; int main(){ string n; cin >> n; if(n == "1"){ cout << -1 << endl; return 0; } rep(i, n.length()){ if(i == 0){ if(n[i] != '1'){ cout << -1 << endl; return 0; } }else{ if(n[i] != '3'){ cout << -1 << endl; return 0; } } } cout << n.length() - 1 << endl; return 0; }