From Wikipedia:

In modular arithmetic,   the modular multiplicative inverse of an integer    a    modulo    m    is an integer    x    such that





a

x
≡
1


(
mod

m
)

.


{\displaystyle a\,x\equiv 1{\pmod {m}}.}


Or in other words, such that:





∃
k
∈

Z

,

a

x
=
1
+
k

m


{\displaystyle \exists k\in \mathbb {Z} ,\qquad a\,x=1+k\,m}


It can be shown that such an inverse exists   if and only if    a    and    m    are coprime,   but we will ignore this for this task.



Task

Either by implementing the algorithm, by using a dedicated library or by using a built-in function in
your language,   compute the modular inverse of   42 modulo 2017.




0010 FUNC mulinv#(a#,b#) CLOSED
0020   IF b#<0 THEN b#:=-b#
0030   IF a#<0 THEN a#:=b#-(-a# MOD b#)
0040   t#:=0;nt#:=1;r#:=b#;nr#:=a# MOD b#
0050   WHILE nr#<>0 DO
0060     q#:=r# DIV nr#
0070     tmp#:=nt#;nt#:=t#-q#*nt#;t#:=tmp#
0080     tmp#:=nr#;nr#:=r#-q#*nr#;r#:=tmp#
0090   ENDWHILE
0100   IF r#>1 THEN RETURN -1
0110   IF t#<0 THEN t#:+b#
0120   RETURN t#
0130 ENDFUNC mulinv#
0140 //
0150 WHILE NOT EOD DO
0160   READ a#,b#
0170   PRINT a#,", ",b#," -> ",mulinv#(a#,b#)
0180 ENDWHILE
0190 END
0200 //
0210 DATA 42,2017,40,1,52,-217,-486,217,40,2018