import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.logging.Level;
import java.util.logging.Logger;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author saopayne
*/
/**
*
* ProblemCode RRSTONE May challenge
*/
public class Main {
public static long findLargest(long[] numbers){
long largest = numbers[0];
for(int i= 1; i < numbers.length; i++){
if(numbers[i] > largest){
largest = numbers[i];
}
}
return largest;
}
public static StringBuilder deductNumfromLargest(long [] numbers ,long largest, long maxNumbers){
long [] newArray = new long [(int)maxNumbers ];
StringBuilder builder = new StringBuilder();
for (int i = 0 ; i < maxNumbers; i++){
numbers[i] = largest - numbers[i];
newArray[i] = numbers[i];
builder.append(newArray[i] + " ");
}
return builder;
}
public static void main
(String [] args
){
try {
String [] theLine
= bufReader.
readLine().
split(" ");
long lengthOfArray
= Long.
parseLong(theLine
[0]); long numOfTurns
= Long.
parseLong(theLine
[1]);
if ((lengthOfArray >= 1 && lengthOfArray <= 100000) && (numOfTurns >= 0 && numOfTurns <= 1000000000)){
String [] secondLine
= bufReader.
readLine().
split(" ");
long [] finalArray = new long [(int)lengthOfArray];
for (int i = 0; i < secondLine.length ; i++){
long num
= Long.
parseLong(secondLine
[i
]); if (Math.
abs(num
) > 2000000000){ }
else if (Math.
abs(num
) >= 0) { finalArray[i] = num;
}
}
//deduct each value from the largest
StringBuilder newest = null;
for (int j = 0 ; j < numOfTurns;j ++){
newest = deductNumfromLargest(finalArray, findLargest(finalArray), (int)lengthOfArray);
}
}else{
}
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}