#include // #include using namespace std; // using namespace atcoder; using ll = long long; using pll = pair; #define pb push_back #define fi first #define se second #define all(x) (x).begin(),(x).end() #define sz(x) ((long long)(x).size()) #define rep_(i, a_, b_, a, b, ...) for (long long i = (a), lim##i = (b); i < lim##i; i++) #define rep(i, ...) rep_(i, __VA_ARGS__, __VA_ARGS__, 0, __VA_ARGS__) #define V(type, name, ...) vector name(__VA_ARGS__) #define VV(type, name, h, ...) vector> name(h, vector(__VA_ARGS__)) #define VVV(type, name, h, w, ...) vector>> name(h, vector>(w, vector(__VA_ARGS__))) #ifndef dump #define dump(...) #define db(x) #define vdb(v) #define vvdb(v) #define mdb(m) #define sdb(s) #endif template inline bool chmax(T& a, T b) {if (a < b) {a = b; return 1;} return 0; } template inline bool chmin(T& a, T b) {if (a > b) {a = b; return 1;} return 0; } const ll LINF = 1LL << 60; const int INF = INT_MAX; const long double EPS = 1e-10; const long double PI = acos(-1); int di[] = {1, 0, -1, 0}; int dj[] = {0, 1, 0, -1}; // using mint = modint1000000007; const ll MOD = 1000000007; // using mint = modint998244353; const ll MOD = 998244353; int main() { ios::sync_with_stdio(false); cin.tie(0); string S; cin >> S; cout << (sz(S) + 2 - 1) / 2 << endl; }