Language: C++

5000
1
1
2
3
1
2
2
1
1
2
2
3
3
2
3
3
1
3
1
2
1
2
3
1
2
3
1
1
2
2
2
3
3
2
3
2
2
1
2
3
3
1
3
3
2
3
2
3
2
2
2
1
1
3
2
2
2
3
3
2
1
2
1
3
2
1
2
1
1
2
2
2
1
2
2
3
2
2
2
3
2
3
3
3
1
2
2
3
1
3
2
1
2
1
3
3
2
2
2
3
1
1
3
3
3
2
1
3
2
1
1
2
2
1
2
1
2
1
1
2
2
1
3
3
2
1
2
3
2
1
2
3
1
2
1
2
1
3
3
3
1
2
3
1
3
2
3
1
2
2
2
3
2
3
3
1
1
2
3
1
2
3
1
2
3
1
3
1
3
2
3
2
1
1
1
3
3
1
2
1
3
3
1
3
1
3
3
1
1
2
2
3
3
1
1
1
2
3
3
3
1
3
3
2
1
2
3
1
1
1
3
2
1
3
1
1
3
2
3
1
3
2
1
3
1
2
3
3
1
1
3
3
2
1
1
2
1
2
2
3
2
2
2
1
3
1
3
2
2
3
1
2
1
3
2
2
2
1
3
3
2
3
2
2
2
1
2
1
2
2
1
3
1
3
1
3
1
3
2
2
2
1
3
3
1
2
1
3
3
3
2
1
1
1
2
2
3
1
1
2
1
1
3
1
3
1
1
1
2
1
2
3
3
2
3
1
1
1
2
3
1
2
2
3
1
2
1
1
3
2
2
3
3
1
1
2
2
3
3
2
1
3
1
1
3
1
2
2
2
3
3
2
3
1
3
3
1
1
3
2
2
2
1
1
3
1
2
1
1
1
3
3
1
1
3
1
3
3
1
1
3
2
2
2
3
3
3
1
2
3
1
2
3
3
3
1
2
1
1
3
2
1
1
2
2
2
1
1
2
1
3
2
1
2
1
3
1
2
2
2
1
2
2
2
1
2
3
3
1
2
1
3
3
1
1
1
3
2
1
1
3
3
2
1
1
2
1
1
1
3
3
3
2
1
1
3
2
1
3
1
3
3
1
1
2
1
3
3
2
3
3
1
1
3
3
2
1
2
1
3
1
1
3
1
2
1
3
3
2
3
2
1
2
1
3
2
1
3
1
1
1
3
2
2
3
1
1
2
2
1
3
2
1
3
2
2
2
1
3
1
1
3
2
3
3
3
2
1
1
1
3
3
2
1
1
3
2
3
1
3
3
3
2
3
1
2
2
1
2
3
1
2
3
3
1
1
1
3
3
1
1
1
3
2
2
2
3
1
2
3
2
1
3
1
1
1
2
1
3
2
3
3
3
1
1
1
3
1
1
1
2
3
1
2
3
2
2
1
2
1
2
2
2
1
1
3
2
3
2
3
3
3
1
3
2
1
1
2
2
1
1
1
3
1
3
2
3
2
1
2
1
2
3
1
3
1
3
3
1
2
2
2
3
2
1
2
2
1
2
3
1
1
1
3
1
2
3
3
3
1
2
3
2
3
2
3
1
2
2
3
3
2
3
3
1
3
1
3
3
2
1
1
2
1
3
1
2
1
1
1
3
2
1
1
1
3
3
3
2
3
1
2
1
2
2
1
2
3
3
1
3
1
3
1
2
2
2
3
2
2
1
2
1
3
2
2
1
2
3
1
3
1
1
3
2
3
1
1
3
3
1
2
3
1
1
3
1
1
1
3
2
2
1
2
1
3
1
3
1
1
3
1
1
2
2
2
3
1
3
2
1
1
3
1
3
1
2
2
2
1
1
1
2
3
1
3
2
3
3
3
1
2
1
1
1
3
1
2
3
1
3
3
2
3
2
3
1
3
2
3
3
2
1
3
1
1
3
2
2
2
3
2
1
3
3
1
3
2
3
3
2
1
1
1
3
1
2
2
1
1
2
1
1
2
3
3
3
2
3
1
1
2
3
1
1
3
2
1
1
1
2
2
2
1
2
1
2
3
1
3
1
3
2
2
1
2
1
3
3
2
3
2
3
2
1
2
1
3
1
3
2
3
1
2
3
2
2
2
1
2
2
3
2
1
3
1
3
1
1
2
2
1
2
2
1
2
3
2
1
2
1
2
3
3
3
2
1
3
1
2
3
2
3
3
3
1
2
1
1
1
2
3
2
3
1
1
1
3
2
3
3
1
3
3
2
3
2
3
2
2
2
1
1
1
3
1
3
2
1
3
1
3
1
3
3
1
1
3
2
1
2
3
3
3
1
1
1
2
1
2
2
1
2
2
3
3
2
1
2
1
3
1
3
1
3
1
3
3
3
1
3
2
3
2
1
3
1
2
2
1
2
1
1
2
3
1
2
1
2
2
3
3
1
3
2
3
3
2
2
1
2
1
2
1
3
1
2
1
3
1
3
1
2
1
2
2
2
3
3
2
1
3
1
1
1
2
2
3
2
3
1
2
3
3
3
2
2
2
1
2
2
2
3
3
2
2
2
3
3
1
3
1
1
2
3
3
2
1
2
3
1
3
3
3
1
3
2
1
3
1
2
2
3
2
2
3
2
3
1
2
2
1
1
1
2
3
2
3
2
3
3
3
1
2
1
2
3
3
2
3
2
2
1
3
1
1
2
3
3
3
1
2
3
2
3
1
3
1
1
1
3
2
1
1
1
3
1
1
1
2
2
2
3
3
2
2
3
3
3
2
1
3
3
1
2
1
3
1
2
1
1
2
2
2
3
2
1
3
2
1
3
2
2
3
2
3
1
1
3
3
2
1
1
2
3
1
1
1
2
3
1
2
1
1
3
1
2
3
1
1
3
3
1
2
1
2
1
2
3
3
3
2
2
1
2
3
3
3
1
2
3
1
3
2
2
1
3
1
1
2
1
3
1
3
1
3
3
3
1
2
1
2
1
2
1
3
1
1
1
3
3
3
1
2
3
2
3
2
1
3
1
2
1
2
3
2
2
1
2
2
1
2
3
3
3
1
3
1
2
3
3
2
2
1
1
1
2
2
1
1
3
1
3
2
1
1
3
2
1
3
1
1
2
1
2
1
2
2
2
1
1
3
2
2
3
2
1
1
2
1
2
1
3
1
3
3
2
2
1
3
3
2
3
2
1
3
1
3
3
3
1
2
2
3
2
2
2
1
3
3
3
2
1
3
2
1
2
1
3
2
1
2
3
3
3
1
3
1
1
2
1
3
1
1
3
3
3
2
3
2
2
2
3
1
3
3
2
3
3
1
3
2
1
2
2
2
3
3
2
1
1
2
3
3
1
3
3
1
3
2
3
1
2
1
3
1
1
2
2
3
1
3
3
3
1
1
3
1
1
1
2
2
1
3
1
1
2
1
1
3
3
1
1
3
2
1
1
3
2
2
1
1
2
1
3
2
2
2
1
1
1
2
3
2
1
3
2
2
1
1
1
2
2
2
3
1
1
1
3
2
1
3
3
2
3
1
1
3
2
1
1
1
2
3
1
1
1
2
3
2
1
1
2
1
1
2
2
2
1
2
2
3
1
1
1
2
2
1
2
2
3
2
2
2
3
1
2
2
2
1
1
2
1
2
2
2
1
1
2
3
3
1
2
1
2
2
2
3
3
2
3
3
1
2
1
3
1
3
2
3
3
3
1
3
1
3
2
1
1
2
3
3
1
1
3
1
1
2
1
1
1
2
3
2
3
1
2
2
1
3
3
1
3
2
2
3
2
3
1
2
2
3
1
3
2
1
3
2
3
1
1
3
1
1
1
2
1
1
2
1
1
3
3
2
1
2
2
1
1
1
2
2
3
3
1
1
3
1
1
1
2
3
1
1
2
3
1
2
1
1
2
2
3
1
1
3
1
1
2
2
2
1
1
3
2
1
1
1
2
1
1
1
2
1
3
1
2
1
3
3
1
2
2
1
3
3
3
1
1
1
2
2
1
2
1
1
1
3
2
1
1
3
1
3
1
3
2
3
1
1
2
1
3
2
3
1
2
3
3
2
1
2
1
3
1
3
3
1
3
1
3
3
3
2
1
2
3
3
1
1
3
1
2
2
3
2
3
3
3
2
1
1
3
2
3
1
1
3
1
1
3
2
2
3
3
2
2
1
2
3
1
2
3
2
3
1
3
1
2
2
3
2
3
3
1
3
2
3
3
3
1
3
1
2
2
2
1
3
3
2
1
1
3
2
2
2
3
2
3
2
3
3
2
3
3
2
1
2
2
1
3
2
1
2
1
1
2
2
2
1
1
3
2
3
3
3
1
3
2
2
3
3
3
1
1
2
2
3
2
1
2
3
3
3
1
3
1
3
1
1
1
3
2
2
2
1
3
2
1
3
3
3
1
1
3
3
1
1
3
1
1
3
2
2
3
1
3
2
3
3
2
2
2
1
2
3
3
3
2
2
1
1
1
2
1
1
1
3
3
3
2
1
2
1
3
2
2
1
2
2
1
3
2
2
1
3
3
1
1
3
1
2
3
1
3
1
1
1
2
1
2
2
3
1
3
2
2
1
2
1
3
1
1
3
1
2
1
1
1
2
1
1
3
3
1
2
3
1
3
1
2
3
3
3
1
2
3
3
2
3
2
3
3
1
1
1
2
2
2
3
3
1
3
3
1
1
1
2
1
1
2
2
2
3
1
1
2
2
3
2
2
3
3
3
1
2
1
2
2
3
3
2
1
3
3
3
1
2
2
3
1
2
3
2
2
1
1
3
3
1
2
3
2
2
2
1
1
3
3
2
1
2
3
3
1
3
2
3
2
1
3
2
3
3
3
1
2
2
3
3
1
2
3
3
2
3
2
1
1
1
2
1
1
3
3
2
2
1
2
1
1
2
3
2
2
3
2
3
1
3
1
3
2
3
3
1
1
1
2
3
3
2
1
1
1
2
3
3
2
3
1
2
3
3
1
3
3
3
1
1
3
2
2
3
1
2
3
2
2
2
3
3
2
2
3
1
3
3
1
1
1
2
1
3
1
3
1
1
1
2
1
2
1
3
3
3
1
2
2
2
1
3
1
3
3
3
2
2
2
3
2
3
3
1
1
1
3
3
1
2
3
1
1
1
2
3
2
1
1
2
2
3
1
2
2
3
3
2
3
3
3
1
2
2
3
2
2
3
2
3
2
3
2
3
1
3
2
1
3
3
2
2
1
1
2
1
2
2
1
2
3
3
1
1
3
1
1
2
1
2
2
1
2
1
2
2
2
1
3
1
2
2
1
2
2
2
1
1
1
3
3
3
2
1
2
3
1
1
2
1
2
2
3
2
1
1
1
3
2
2
1
3
3
3
2
1
3
1
2
2
1
2
1
2
1
1
2
1
3
1
1
3
1
1
2
1
3
2
1
3
3
1
3
3
2
1
2
1
1
2
1
3
3
3
1
1
2
3
2
1
2
1
1
3
1
3
1
3
1
3
3
2
1
2
1
2
2
2
1
3
1
2
3
1
3
2
3
2
3
2
2
1
3
2
3
2
3
3
3
2
2
1
3
1
1
1
3
3
1
2
2
1
2
1
3
1
1
1
3
1
3
2
3
2
3
2
1
2
3
1
1
3
3
2
1
1
3
3
2
3
1
1
2
1
3
1
2
2
1
1
3
1
2
2
3
3
1
3
2
3
3
1
3
1
1
2
3
2
2
2
3
1
3
3
1
3
1
3
3
3
1
2
1
1
3
2
1
3
3
2
3
2
1
1
1
2
1
3
2
2
2
1
1
2
1
3
3
1
1
1
2
2
3
3
3
1
3
3
3
1
1
1
3
3
1
1
2
2
2
1
2
2
2
3
3
3
1
1
3
3
3
2
3
3
2
2
3
1
1
1
2
2
2
3
3
3
2
2
2
1
1
2
3
3
2
3
1
1
3
3
1
2
2
2
3
3
3
1
1
1
2
2
3
3
3
1
1
3
1
1
2
3
1
1
1
2
1
1
2
2
3
3
3
2
1
1
3
3
3
1
1
2
3
3
3
1
1
2
2
3
3
3
1
2
2
2
3
3
1
1
1
3
3
1
1
3
3
3
1
1
1
2
2
2
3
3
3
2
3
3
2
3
2
2
1
1
1
3
2
2
3
3
1
1
2
2
1
1
1
3
3
3
2
2
1
1
2
2
2
3
2
2
3
3
3
2
2
2
3
3
3
2
2
2
1
2
2
3
3
2
2
2
3
1
2
2
1
2
2
2
3
3
3
1
3
3
2
1
2
1
1
2
2
3
1
1
3
3
2
1
1
2
2
3
3
1
1
3
3
3
2
2
2
3
1
1
1
2
2
2
3
3
2
2
1
1
3
2
2
3
3
3
2
2
2
1
1
2
1
1
1
2
2
2
3
1
1
2
3
3
3
2
2
2
3
3
1
1
3
3
3
1
1
3
3
3
1
1
1
2
3
3
3
1
3
3
2
1
1
3
2
2
3
3
3
2
2
2
3
3
1
1
2
2
1
1
2
2
3
3
3
1
1
1
3
3
3
1
2
3
3
3
1
1
3
3
2
2
3
1
1
1
3
3
3
2
1
1
1
3
2
1
1
3
3
2
2
1
3
3
3
2
1
1
1
2
2
3
1
1
2
2
2
1
1
1
3
3
1
1
3
3
1
2
1
1
3
2
2
2
1
1
1
2
2
2
1
1
1
3
3
2
1
1
1
2
2
1
1
3
3
2
1
2
3
3
3
1
1
2
1
1
1
3
3
3
2
3
3
3
2
2
1
1
2
2
2
1
1
2
2
1
1
2
2
3
3
2
2
2
3
3
2
2
3
1
1
2
2
1
1
2
2
3
3
2
1
1
1
2
2
1
1
3
3
3
1
3
2
1
3
3
2
2
2
1
3
3
1
1
2
2
2
1
1
1
2
1
1
1
2
2
3
3
3
2
3
2
1
1
2
2
1
1
1
2
2
1
2
2
1
1
2
1
1
3
3
2
2
2
1
1
3
3
3
2
2
1
3
2
1
1
2
2
2
1
3
3
2
1
2
2
3
2
2
2
1
3
3
3
1
3
3
3
1
1
1
3
3
1
1
2
2
2
3
3
2
2
1
2
2
2
3
2
1
1
3
3
2
2
3
3
2
1
1
2
1
1
1
2
2
2
1
1
1
2
2
2
1
2
2
2
3
2
2
2
3
3
3
2
2
3
3
2
2
2
1
1
2
3
3
3
2
2
2
1
1
1
2
2
3
3
3
1
3
3
1
3
3
3
1
3
3
2
2
1
1
1
2
1
3
3
2
2
1
1
1
2
3
3
1
1
1
3
3
3
1
1
1
2
2
3
3
2
2
3
3
3
1
1
1
2
3
3
1
3
3
3
2
2
1
1
2
2
1
1
2
2
3
3
3
2
2
2
3
3
1
1
2
2
2
1
3
1
3
3
3
2
2
3
3
1
1
2
2
1
1
3
3
3
1
1
2
2
2
1
1
2
2
2
3
3
3
1
2
3
2
1
1
2
1
1
1
2
2
2
3
2
2
2
1
3
1
2
2
3
2
3
3
1
2
2
1
1
3
3
3
2
2
2
1
1
1
2
2
3
1
3
1
3
1
2
2
3
3
1
2
2
2
1
1
3
1
1
2
2
1
2
2
3
3
3
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
3
3
3
2
1
1
1
3
3
2
2
1
2
2
2
1
3
3
3
1
1
1
3
3
1
2
2
2
3
1
1
3
3
1
1
3
2
2
2
1
1
1
3
3
1
1
1
2
2
3
3
3
2
2
2
1
2
2
2
3
3
3
2
1
1
2
2
1
3
1
1
1
2
1
1
1
3
3
3
1
1
3
3
1
1
1
2
2
1
1
1
2
2
2
1
1
3
3
2
2
2
1
1
2
2
2
1
1
3
3
3
1
1
1
3
1
1
3
1
1
2
2
2
1
1
1
3
3
3
1
1
2
3
3
3
1
1
3
3
2
2
1
1
1
2
2
2
1
1
2
2
3
3
3
2
2
2
3
3
3
2
1
1
2
2
3
3
3
2
2
1
1
2
2
1
1
1
3
3
1
2
1
1
1
3
3
3
1
2
2
1
1
2
2
3
3
2
2
2
1
1
1
2
2
2
3
2
2
2
3
3
3
2
2
1
1
2
2
1
1
2
2
3
3
1
1
1
3
3
3
2
2
2
1
1
1
3
1
2
2
1
1
3
3
3
1
1
3
3
3
1
3
1
1
2
2
2
1
1
1
2
2
2
3
3
3
1
1
2
2
1
1
2
2
2
1
1
1
3
3
1
1
3
3
3
1
1
2
2
2
1
1
3
3
3
1
1
1
2
2
2
1
1
2
2
2
3
2
1
1
1
2
2
3
3
3
2
2
1
3
3
3
1
1
1
2
2
2
3
3
3
1
1
1
3
3
3
1
1
1
3
3
3
2
1
1
1
3
3
1
1
1
3
3
3
1
1
1
2
1
1
1
2
2
3
3
3
1
1
2
2
2
3
3
1
1
1
2
2
1
1
2
2
2
1
1
1
2
2
2
3
3
3
2
2
1
1
1
2
2
1
1
1
3
3
3
1
1
2
2
2
1
1
1
3
3
2
2
1
1
1
3
3
3
1
1
1
3
3
3
1
1
1
3
3
3
2
2
2
1
1
2
3
3
1
1
2
2
1
1
1
3
3
2
2
2
3
3
3
2
2
1
1
1
3
3
3
1
1
1
2
3
3
3
2
2
1
1
1
2
2
2
1
1
2
2
2
3
3
3
2
2
2
1
1
1
3
2
2
1
1
1
2
2
1
1
1
3
1
1
2
2
1
1
1
3
3
3
2
2
3
3
3
1
1
1
3
3
3
1
1
1
2
2
2
1
1
3
3
3
2
2
2
3
3
3
2
2
1
1
1
2
2
2
1
1
1
2
2
2
3
3
1
1
1
3
3
3
2
2
2
1
1
3
3
2
2
2
3
3
3
2
2
1
1
3
3
1
1
3
3
2
2
2
1
2
2
2
3
3
1
1
1
2
2
2
1
1
1
2
2
3
3
1
1
1
3
3
3
1
1
1
3
3
1
1
1
3
2
2
2
1
1
1
2
3
2
2
2
1
1
1
2
2
3
3
2
2
3
3
3
2
2
2
3
3
3
2
1
1
1
2
2
1
1
2
2
2
1
2
2
2
1
1
1
2
2
2
3
3
2
2
2
3
3
3
1
1
1
2
2
2
3
3
3
2
1
1
1
2
2
3
3
3
2
2
1
1
3
3
3
1
1
3
3
3
1
1
1
3
1
1
1
2
2
3
3
3
2
2
2
1
1
1
2
2
2
3
3
3
1
1
1
2
1
1
2
2
2
3
3
3
1
1
1
2
2
3
1
1
1
2
2
3
3
3
1
1
1
2
2
2
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
1
1
1
2
2
2
3
3
3
2
2
2
3
2
2
2
1
1
1
2
2
2
1
2
2
2
1
1
3
3
1
1
1
2
2
3
3
1
1
1
2
2
2
3
3
3
1
1
1
3
3
3
1
1
1
2
2
2
1
1
1
2
2
2
3
3
3
2
2
2
1
1
1
2
2
1
1
3
3
3
2
2
2
3
3
2
2
2
3
3
3
2
2
2
1
1
2
2
1
1
1
2
2
2
1
1
2
2
3
2
2
2
3
1
1
1
2
2
2
1
1
3
2
2
2
1
1
1
2
2
2
3
3
3
1
1
2
2
2
1
2
2
2
3
3
3
1
1
2
2
1
1
1
2
3
3
3
1
1
2
2
2
1
1
1
3
3
3
1
1
3
3
3
1
1
2
2
1
1
3
3
3
2
2
1
1
2
2
2
3
3
1
1
1
2
2
3
3
3
1
1
1
2
2
2
3
3
3
1
2
2
2
3
1
3
3
3
2
2
3
3
3
1
1
3
3
3
2
2
2
1
1
1
3
3
1
3
2
2
1
1
1
2
2
2
1
1
3
3
2
2
3
3
2
2
2
3
3
3
1
1
1
2
2
2
3
3
1
1
1
3
2
2
2
1
1
1
3
1
1
1
3
3
3
1
1
3
3
2
2
3
2
2
2
1
1
1
3
3
3
2
2
2
1
2
2
2
1
1
2
2
2
3
3
2
2
2
3
3
3
1
1
2
2
3
3
2
2
1
3
3
3
2
2
3
3
3
1
1
3
3
2
2
2
1
1
1
2
2
2
3
3
3
1
1
3
3
3
2
2
1
1
2
2
2
1
1
1
2
2
2
3
3
3
1
1
1
3
3
3
2
2
1
1
1
2
2
2
1
1
1
3
3
3
2
3
3
3
2
2
1
1
1
2
3
3
3
2
2
3
3
2
2
2
3
3
3
2
2
2
1
1
1
2
2
2
3
1
1
2
2
2
1
1
1
3
3
2
2
2
3
3
3
1
2
2
3
3
3
2
2
2
3
3
3
2
2
2
3
3
2
1
1
3
3
1
1
1
3
3
1
1
1
3
3
3
2
1
1
1
3
3
2
2
1
1
3
3
2
2
2
1
1
3
3
3
1
1
2
2
2
3
2
2
1
1
2
2
2
1
1
3
3
3
2
2
2
1
1
3
3
3
1
1
1
3
3
2
2
2
1
1
3
3
3
2
2
2
1
1
1
3
3
1
1
1
3
3
3
2
2
2
3
3
3
2
2
2
1
1
1
2
2
2
3
3
2
2
2
1
3
3
3
2
2
2
3
3
2
2
2
3
1
1
1
3
3
2
2
1
1
1
2
2
2
1
1
3
3
3
1
1
1
3
3
3
1
1
1
3
3
2
2
2
1
1
3
3
3
1
1
1
2
2
2
1
1
3
2
3
1
2
3
3
2
2
3
1
3
2
3
1
1
1
3
3
1
2
3
2
2
3
1
1
3
3
2
1
1
1
2
3
3
1
3
1
1
1
2
3
2
3
2
2
2
3
1
1
2
1
3
3
3
2
3
2
1
1
3
3
2
1
2
2
3
2
1
3
1
1
2
1
2
1
2
3
1
3
3
2
1
3
2
2
3
2
2
1
2
3
2
1
3
1
2
1
2
3
1
3
3
1
1
1
3
2
3
3
2
2
3
1
3
3
2
2
1
1
2
1
2
3
2
3
3
1
3
1
2
2
1
1
2
1
1
2
1
1
1
2
2
1
3
2
3
2
3
3
2
2
1
2
3
3
1
2
3
2
3
3
2
2
1
2
1
3
3
2
3
1
3
2
1
1
3
1
3
2
3
1
2
2
3
2
2
2
1
2
3
2
3
1
1
1
3
1
1
2
2
1
2
1
2
3
1
2
1
2
1
2
1
1
1
3
2
2
3
1
3
1
3
1
3
2
3

Compiler output:
a.cc:1:1: error: expected unqualified-id before numeric constant
    1 | 5000
      | ^~~~