#include <iostream>
#include <string>
using namespace std;
#define NUM 1000
string
reverse(string *s)
{
string t;
t.resize(s->size());
for (string::size_type i = 0, e = s->size(); i < e; i++)
{
t.at(i) = s->at(e-i-1);
}
return t;
}
string
sum(string *psrc, string *pdst)
{
if (psrc->size() > pdst->size())
{
pdst->insert(pdst->begin(), '0');
}
string r("");
int crr = 0;
for (int i = pdst->size()-1; i >= 0; i--)
{
int n = psrc->at(i) + pdst->at(i) - '0'*2 + crr;
r.push_back('0' + n%10);
crr = n/10;
}
if (crr != 0)
{
r.push_back(crr+'0');
}
return reverse(&r);
}
int
main(int argc, char **argv)
{
string prepre("1"), pre("1");
string tmp("");
int ans = 2;
while (tmp.size() < NUM)
{
tmp = sum(&pre, &prepre);
prepre = pre;
pre = tmp;
ans++;
}
cout << ans << endl;
return 0;
}