#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define endl "\n"
#define int long long
const int N = 1e5 + 5;
string s;
int cache[N][4];
vector<char> v = {'0', '1', '0', '1'};
int dp(int idx, int cur)
{
if(cur == 4)
return 0;
if(idx >= s.size())
return 0;
int &ans = cache[idx][cur];
if(ans != -1)
return ans;
ans = 0;
if(s[idx] == v[cur])
ans = max(dp(idx, cur + 1), 1 + dp(idx + 1, cur));
else
ans = max(dp(idx, cur + 1), dp(idx + 1, cur));
return ans;
}
int32_t main()
{
IOS;
memset(cache, -1, sizeof(cache));
cin >> s;
int ans = dp(0, 0);
cout << ans;
return 0;
}