This is my try for solution, please correct me if I am wrong.
First we will prove by strong induction that $f(a)\geq a$.
It is obvious for $a=1$.
Let it be true for $ a= 1, 2,... ,k $
$f(k+1) > f(f(k)) \geq f(k) \geq k$ and $f(k+1) \in \mathbb{Z}$ so $f(k+1)\geq k+1$
Now we will prove that $f$ is increasing.
If we suppose that $f(a)>f(b) $ and $a<b$ we have:
$f(b)>f(a)> f(f(a-1))> ... > \underbrace{ f(f(f ... f}_{a+1-b}(b)...)) = f^{a+1-b}(b)$
So $f(b)>f^{a+1-b}(b)$ and if $f(b)=x$ we have $x>f^{a-b}(x)$
But $f^{a-b}(x)\geq f(x)$ , so $x> f(x) \geq x$. Contradiction.
So: $f$ is increasing.
Now we will prove that $ f(a)< a+1$.
If $f(a) \geq a+1$. Then exist $x$ such that $f(x)< f(k+1)$ and $x>k+1$. Contradiction.
Now $a+1>f(a)\geq a$ and the only possibility is $f(a)= a$ ,which is obviously a solution.