I have been reading the book Mastering Bitcoin written by Andreas. It was the process of compressing public keys that hurt my mind. Specifically, a public key after being generated from a private key fundamentally comprises the resulting coordination of x and y.

The book said that since y value can be gained from x via the function: $$y^2\bmod p=(x^3 + 7)\bmod p$$We can reduce the size by just storing the x with the sign value.

While I understood how point addition in Elliptic Curve works, I could not understand how to find y given an x and p value? For example: $y^2 \bmod p = (10^3 + 7) \bmod 19$

Thank you very much in advance, this is a very new topic to me and hopefully I can learn more from you guys.