import java.util.Scanner;
/**
*
* 小易拥有一个拥有魔力的手环上面有n个数字(构成一个环),当这个魔力手环每次使用魔力的时候就会发生一种奇特的变化:每个数字会变成自己跟后面一个数字的和(
* 最后一个数字的后面一个数字是第一个),一旦某个位置的数字大于等于100就马上对100取模(比如某个位置变为103,就会自动变为3).
* 现在给出这个魔力手环的构成,请你计算出使用k次魔力之后魔力手环的状态。
*
* @author pomay
*
*/
public class Wangyi_magichuan
{
public void magicState(int[][] nums, int n, int k)
{
// 构造单位矩阵matrix
int matrix[][] = new int[n][n];
matrix[0][0] = 1;
matrix[0][n - 1] = 1;
for (int i = 1; i < n; i++)
{
matrix[i][i] = 1;
matrix[i][i - 1] = 1;
}
// 矩阵快速幂
for (; k > 0; k >>= 1)
{
if ((k & 1) == 1)
{
nums = Core(nums, matrix);
}
matrix = Core(matrix, matrix);
}
for (int i = 0; i <= n - 1; i++)
{
if (i < n - 1)
System.out.print(nums[0][i] + " ");
if (i == n - 1)
System.out.print(nums[0][i]);
}
}
// 二维矩阵相乘
private int[][] Core(int[][] A, int[][] B)
{
// 矩阵A的行
int aRow = A.length;
// 矩阵A的列等于矩阵B的列
int aColumn = A[0].length;
// 矩阵B的行
int bColumn = B[0].length;
int temp[][] = new int[aRow][bColumn];
for (int i = 0; i < aRow; i++)
for (int j = 0; j < aColumn; ++j)
{
for (int k = 0; k < bColumn; ++k)
{
temp[i][j] = (temp[i][j] + (A[i][k] * B[k][j]) % 100) % 100;
}
}
return temp;
}
public static void main(String[] args)
{
// 输入数据包括两行:
// 第一行为两个整数n(2 ≤ n ≤ 50)和k(1 ≤ k ≤ 2000000000),以空格分隔
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int k = s.nextInt();
// 第二行为魔力手环初始的n个数,以空格分隔。范围都在0至99.
int[][] nums = new int[1][n];
for (int i = 0; i < n; i++)
{
nums[0][i] = s.nextInt();
}
Wangyi_magichuan magic = new Wangyi_magichuan();
magic.magicState(nums, n, k);
}
}