#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > graph(10,vector<int >());
map<int,int> m;
int bfs(int k)
{
queue<pair<int,int> > q;
q.push({k,0});
int maxP = INT_MIN;
while(q.size() != 0){
int val = q.front().first;
int pos = q.front().second;
maxP = max(maxP,pos);
// cout<<val<<" ";
q.pop();
for(int i = 0; i < graph[val].size() ; i++){
q.push({graph[val][i],pos+1});
}
}
return maxP;
}
int main() {
graph[0].push_back(3);
graph[0].push_back(2);
graph[3].push_back(4);
graph[4].push_back(5);
cout<<bfs(0)<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8dmVjdG9yPGludD4gPiBncmFwaCgxMCx2ZWN0b3I8aW50ID4oKSk7Cm1hcDxpbnQsaW50PiBtOwoKaW50IGJmcyhpbnQgaykKewoJcXVldWU8cGFpcjxpbnQsaW50PiA+IHE7CglxLnB1c2goe2ssMH0pOwoJaW50IG1heFAgPSBJTlRfTUlOOwoJd2hpbGUocS5zaXplKCkgIT0gMCl7CgkJaW50IHZhbCA9IHEuZnJvbnQoKS5maXJzdDsKCQlpbnQgcG9zID0gcS5mcm9udCgpLnNlY29uZDsJCgkJbWF4UCA9IG1heChtYXhQLHBvcyk7CgkvLwljb3V0PDx2YWw8PCIgIjsKCQlxLnBvcCgpOwoJCWZvcihpbnQgaSA9IDA7IGkgPCBncmFwaFt2YWxdLnNpemUoKSA7IGkrKyl7CgkJCXEucHVzaCh7Z3JhcGhbdmFsXVtpXSxwb3MrMX0pOwoJCX0KCX0KCXJldHVybiBtYXhQOwp9CmludCBtYWluKCkgewoJCglncmFwaFswXS5wdXNoX2JhY2soMyk7CglncmFwaFswXS5wdXNoX2JhY2soMik7CglncmFwaFszXS5wdXNoX2JhY2soNCk7CglncmFwaFs0XS5wdXNoX2JhY2soNSk7CgoJY291dDw8YmZzKDApPDxlbmRsOwoKCXJldHVybiAwOwp9