Una variable no puede asignarse a 2

Soy nuevo para escribir kotlin. Me encuentro con un error y no sé cómo resolverlo.

Esto es parte del código:

for (j in 0..m - 1) { var b0 = a[j] var tt = j var b1: Int for (i in 0..n / m - 1) { tt = (tt + k) % n b1 = a[tt] a[tt] = b0 if (b1 == 2) b0 = 2 else b0 = b1 } } 

Cuando lo depuro, encontré algo extraño. Por qué b0 no se puede asignar a 2.

enter image description here enter image description here enter image description here Este es todo el código:

 import java.util.* /** * Created by Yrh on 2015/12/3. */ fun ff(a: Int, b: Int): Int { var t = 1 var i = 2 var a1 = a var b1 = b while (i <= a1 && i <= b1) { t *= i a1 /= i b1 /= i i++ } return t } fun main(args: Array<String>) { val scanner = Scanner(System.`in`) var a = IntArray(100) print("Input the number of data: ") val n = scanner.nextInt() print("Input the distant of moving: ") val k = scanner.nextInt() for (i in 0..n - 1) a[i] = scanner.nextInt() val m = ff(n, k) for (j in 0..m - 1) { var b0 = a[j] var tt = j var b1: Int for (i in 0..n / m - 1) { tt = (tt + k) % n b1 = a[tt] a[tt] = b0 b0 = b1 } } for (i in 0..n - 1) { print("${a[i]} ") } }