```go
package main
import (
"fmt"
)
func main() {
var n, k int64
if _, err := fmt.Scan(&n, &k); err != nil {
return
}
for k > 0 && n > 1 {
res := n
tmp := n
if tmp%2 == 0 {
res /= 2
for tmp%2 == 0 {
tmp /= 2
}
}
for i := int64(3); i*i <= tmp; i += 2 {
if tmp%i == 0 {
res = (res / i) * (i - 1)
for tmp%i == 0 {
tmp /= i
}
}
}
if tmp > 1 {
res = (res / tmp) * (tmp - 1)
}
n = res
k--
}
fmt.Println(n % 1000000007)
}
```