Find all functions $f:\mathbb{N}\to\mathbb{N}$ such that for all $x,y\in\mathbb{N}$:
$$0\le y+f(x)-f^{f(y)}(x)\le1$$
that here
$$f^n(x)=\underbrace{f(f(\ldots(f}_{n}(x))\ldots)$$
1. **Lemma 1.0**: For each natural number \( x \), the set \(\mathcal{O}(x) = \{f^n(x) : n \ge 0\}\) is unbounded.
   - Proof: For each natural number \( y \), we have:
     \[
     f^{f(y)}(x) \ge y + f(x) - 1
     \]
     This implies that as \( y \) increases, \( f^{f(y)}(x) \) can take arbitrarily large values, making \(\mathcal{O}(x)\) unbounded.

2. **Result 2.0**: All elements of the sequence \(\{f^n(x)\}_{n \ge 0}\) are distinct.
   - Proof: Suppose there exist \( i < j \) such that \( f^i(x) = f^j(x) \). In this case, the set \(\mathcal{O}(x)\) would be eventually periodic and therefore take on a finite number of values, which contradicts Lemma 1.0.

3. We first show that \( f(1) \neq 1 \). If \( f(1) = 1 \), then the set \(\mathcal{O}(1)\) would take on a finite number of values, which contradicts Lemma 1.0. Therefore, \( f(1) \ge 2 \).

4. Let \( y = 1 \) and \( k = f(1) \). We have:
   \[
   1 \ge 1 + f(x) - f^{k-1}(f(x)) \ge 0 \implies f^{k-1}(f(x)) \in \{f(x), f(x) + 1\}
   \]
   According to Result 2.0, it is not possible that \( f^{k-1}(f(x)) = f(x) \) unless \( k-1 = 0 \). If \( k-1 \ge 1 \), it means there exist two equal elements in \(\{f^n(f(x))\}_{n \ge 0}\). On the other hand, we saw \( k > 1 \).

5. Therefore, we imply:
   \[
   \forall x \in \mathbb{N}: f^{k-1}(f(x)) = f(x) + 1 \quad (\ast)
   \]
   Assume that \( t = k-1 > 1 \). In this case, equation \((\ast)\) says that for all \( a \) in \( f \)'s range, \( f^t(a) = a + 1 \). If we write this equation also for \( a + 1 \), we have \( f^{2t}(a) = f^t(a + 1) = a + 2 \). So for each natural \( n \), we have:
   \[
   f^{nt}(a) = a + n
   \]
   Thus, the sequence \(\{f^{nt}(a)\}_{n \ge 0}\), which is a subsequence, is eventually surjective. But from Result 2.0, we know that the elements of the sequence \(\{f^m(a)\}_{m \ge 0}\) are natural and distinct numbers. So the infinite subsequence \(\{f^{nt+1}(a)\}_{n \ge 0}\) on the one hand has infinitely many values but on the other hand cannot intersect with the sequence \(\{f^{nt}(a)\}_{n \ge 0}\). Because the second sequence is eventually surjective, this is a contradiction. So it must be that \( t = 1 \), which means \( f(1) = k = 2 \).

6. Therefore, the equation \((\ast)\) implies that:
   \[
   f(f(x)) = f(x) + 1
   \]
   Since \( f(1) = 2 \), this equation implies that:
   \[
   f(2) = 3, \quad f(3) = 4, \quad \ldots
   \]
   So for each natural \( n \), we have:
   \[
   f(n) = n + 1
   \]

The final answer is \( \boxed{ f(n) = n + 1 } \).