I have to prove this: if $\mathcal{U}$ is a p-point and $f:\mathbb{N}\rightarrow\mathbb{N}$, if $f$ is not $\mathcal{U}$-equivalent to a costant, then it is $\mathcal{U}$-equivalent to a function finite-to-one.
I proved something stronger, but I believe it's wrong. I can't find the mistake. I proved that under these hypothesis then the function is finite-to-one.
Here the proof: if $f$ is not $\mathcal{U}$-equivalent to a constant then $\{n:f(n)=m\}\not\in\mathcal{U}$ $\forall m$, i.e. $A_m:=\{n:f(n)\neq m\}\in\mathcal{U}$ $\forall m$. By definition of p-point $\exists B\in\mathcal{U}$ such that $B\backslash A_m=\{c^m_1,\ldots,c^m_{r_m}\}$ $\forall m$.
Now we observe that $f(c^m_i)=m$ $\forall i$ $\forall m$ and so $(B\backslash A_m)\cap(B\backslash A_n)=\emptyset$ $\forall m$ $\forall n$.
If $x\in\mathbb{N}$ and $x\not\in B\backslash A_m$ $\forall m$ then $x\in B^c\cup A_m$ $\forall m$. If $f(x)=\bar{m}$ then $x\not\in A_{\bar{m}}$ and so by $x\in B^c\cup A_{\bar{m}}$ we have $x\in B^c$ that is finite because $B\in\mathcal{U}$ and $\mathcal{U}$ is not principal.
If we set $g:\mathbb{N}\rightarrow\mathbb{N}$ by $g(x)=m$ if $x=c^m_i$ for some $m$ and $i$, and $g(x)=f(x)$ if $x\in B^c$. $g$ is finite-to-one and $g(x)=f(x)$ for all $x\in\mathbb{N}$. Where is the mistake?