//#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
//#pragma GCC optimize("O3,unroll-loops,Ofast,fast-math")
//#pragma GCC optimize ("O2")
//#pragma GCC optimize ("Os")
#include <bits/stdc++.h>//Kam
using namespace std;
#define fio ios_base::sync_with_stdio(0);cin.tie(0);
#define fi first
#define se second
#define vi vector<int>
#define pll pair<long long, long long>
#define pii pair<int, int>
#define vt vector
#define pb push_back
#define er erase
#define lcm(a,b) a/__gcd(a,b)*b
#define bg begin()
#define ed end()
#define endl '\n'
#define all(x) (x).begin(), (x).end()
#define sz sizeof
#define FOR(i,a,b) for (int i = (a); i <= (b); ++i)
#define FORR(i,a,b) for (int i = (a); i >= (b); --i)
#define REP(i, a) for (int i = 0; i < (a); ++i)
#define MOD 1234567891
#define MOD1 1000000007
#define MOD2 10000019
#define ll long long
#define ull unsigned long long
#define ld long double
#define bit(i, x) ((x >> i) & 1)
#define CNT(x) __builtin_popcount((x))
#define TASK "FIBO"
const int maxn = 1e6 + 1;
string s;
void input()
{
cin >> s;
}
#define int long long
vi a, fibo;
void prepare()
{
fibo.pb(0);
fibo.pb(1);
{
int i = 2;
while(fibo[i - 1] + fibo[i - 2] <= 1e18)
{
fibo.pb(fibo[i - 1] + fibo[i - 2]);
i++;
}
}
// 21323a1123abd
// while(true)
// {
// if(isdigit(s[0]))
// {
// int x = stoll(s);
// a.pb(x);
// while(isdigit(s[0]))s.erase(0, 1);
// }
// if(!s.empty())
// s.erase(0,1);
// else
// break;
// }
REP(i, s.length())
{
if(isdigit(s[i]))
{
int x = 0;
while(i < s.length() && isdigit(s[i]))
{
x *= 10;
x += s[i] - '0';
i++;
}
a.pb(x);
}
}
}
void process()
{
int cnt = 0;
for(int x : a)
{
if(binary_search(fibo.begin(), fibo.end(), x))
{
cnt ++;
}
}
cout << cnt;
}
signed main()
{
fio
if(fopen(TASK".inp", "r")) {
freopen(TASK".inp", "r", stdin);
freopen(TASK".out", "w", stdout);
}
input();
prepare();
process();
return 0;
}
Ly8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIsbHpjbnQscG9wY250IikKLy8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMsdW5yb2xsLWxvb3BzLE9mYXN0LGZhc3QtbWF0aCIpCgovLyNwcmFnbWEgR0NDIG9wdGltaXplICgiTzIiKQovLyNwcmFnbWEgR0NDIG9wdGltaXplICgiT3MiKQoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Ly9LYW0KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGZpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSB2aSAgdmVjdG9yPGludD4KI2RlZmluZSBwbGwgcGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4KI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludD4KI2RlZmluZSB2dCB2ZWN0b3IKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlciBlcmFzZQojZGVmaW5lIGxjbShhLGIpIGEvX19nY2QoYSxiKSpiCiNkZWZpbmUgYmcgYmVnaW4oKQojZGVmaW5lIGVkIGVuZCgpCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSBzeiBzaXplb2YKI2RlZmluZSBGT1IoaSxhLGIpICBmb3IgKGludCBpID0gKGEpOyBpIDw9IChiKTsgKytpKQojZGVmaW5lIEZPUlIoaSxhLGIpIGZvciAoaW50IGkgPSAoYSk7IGkgPj0gKGIpOyAtLWkpCiNkZWZpbmUgUkVQKGksIGEpIGZvciAoaW50IGkgPSAwOyBpIDwgKGEpOyArK2kpCiNkZWZpbmUgTU9EIDEyMzQ1Njc4OTEKI2RlZmluZSBNT0QxIDEwMDAwMDAwMDcKI2RlZmluZSBNT0QyIDEwMDAwMDE5CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgYml0KGksIHgpICgoeCA+PiBpKSAmIDEpCiNkZWZpbmUgQ05UKHgpIF9fYnVpbHRpbl9wb3Bjb3VudCgoeCkpCiNkZWZpbmUgVEFTSyAiRklCTyIKCmNvbnN0IGludCBtYXhuID0gMWU2ICsgMTsKCnN0cmluZyBzOwoKdm9pZCBpbnB1dCgpCnsKICAgIGNpbiA+PiBzOwp9CgojZGVmaW5lIGludCBsb25nIGxvbmcKCnZpIGEsIGZpYm87CnZvaWQgcHJlcGFyZSgpCnsKICAgIGZpYm8ucGIoMCk7CiAgICBmaWJvLnBiKDEpOwogICAgewogICAgICAgIGludCBpID0gMjsKICAgICAgICB3aGlsZShmaWJvW2kgLSAxXSArIGZpYm9baSAtIDJdIDw9IDFlMTgpCiAgICAgICAgewogICAgICAgICAgICBmaWJvLnBiKGZpYm9baSAtIDFdICsgZmlib1tpIC0gMl0pOwogICAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgfQoKICAgIC8vIDIxMzIzYTExMjNhYmQKLy8gICAgd2hpbGUodHJ1ZSkKLy8gICAgewovLyAgICAgICAgaWYoaXNkaWdpdChzWzBdKSkKLy8gICAgICAgIHsKLy8gICAgICAgICAgICBpbnQgeCA9IHN0b2xsKHMpOwovLyAgICAgICAgICAgIGEucGIoeCk7Ci8vICAgICAgICAgICAgd2hpbGUoaXNkaWdpdChzWzBdKSlzLmVyYXNlKDAsIDEpOwovLyAgICAgICAgfQovLyAgICAgICAgaWYoIXMuZW1wdHkoKSkKLy8gICAgICAgICAgICBzLmVyYXNlKDAsMSk7Ci8vICAgICAgICBlbHNlCi8vICAgICAgICAgICAgYnJlYWs7Ci8vICAgIH0KCiAgICBSRVAoaSwgcy5sZW5ndGgoKSkKICAgIHsKICAgICAgICBpZihpc2RpZ2l0KHNbaV0pKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHggPSAwOwogICAgICAgICAgICB3aGlsZShpIDwgcy5sZW5ndGgoKSAmJiBpc2RpZ2l0KHNbaV0pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB4ICo9IDEwOwogICAgICAgICAgICAgICAgeCArPSBzW2ldIC0gJzAnOwogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGEucGIoeCk7CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIHByb2Nlc3MoKQp7CiAgICBpbnQgY250ID0gMDsKICAgIGZvcihpbnQgeCA6IGEpCiAgICB7CiAgICAgICAgaWYoYmluYXJ5X3NlYXJjaChmaWJvLmJlZ2luKCksIGZpYm8uZW5kKCksIHgpKQogICAgICAgIHsKICAgICAgICAgICAgY250ICsrOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGNudDsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICBmaW8KICAgIGlmKGZvcGVuKFRBU0siLmlucCIsICJyIikpIHsKICAgICAgIGZyZW9wZW4oVEFTSyIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICBmcmVvcGVuKFRBU0siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBpbnB1dCgpOwogICAgcHJlcGFyZSgpOwogICAgcHJvY2VzcygpOwoKICAgIHJldHVybiAwOwp9Cg==