Mr. Takahashi has a string s consisting of lowercase English letters. He repeats the following operation on s exactly K times.

* Choose an arbitrary letter on s and change that letter to the next alphabet. Note that the next letter of `z` is `a`.



For example, if you perform an operation for the second letter on `aaz`, `aaz` becomes `abz`. If you then perform an operation for the third letter on `abz`, `abz` becomes `aba`.

Mr. Takahashi wants to have the lexicographically smallest string after performing exactly K operations on s. Find the such string.

Constraints

* 1≤|s|≤10^5
* All letters in s are lowercase English letters.
* 1≤K≤10^9

Input

The input is given from Standard Input in the following format:


s
K


Output

Print the lexicographically smallest string after performing exactly K operations on s.

Examples

Input

xyz
4


Output

aya


Input

a
25


Output

z


Input

codefestival
100


Output

aaaafeaaivap
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.math.*;
 
public class Main {
	public static void main(String[] args)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String a = br.readLine();
		int l = a.length();
		char[] c = new char [l];
		for(int i = 0; i < l; i++){
			c[i] = a.charAt(i);
			//a:97 - z:122
		}
		int n = Integer.parseInt(br.readLine());
		while(n>0){
			boolean check = false;
			for(int i = 0; i < l; i++){
				if(c[i]!='a'){
					int v = 123-c[i];
					if(v<=n){
						check = true;
						n -= v;
						c[i] = 'a';
					}
				}
			}
			if(!check){
				n%=26;
				c[l-1] += n;
				n = 0;
			}
		}
		for(int i = 0; i < l; i++){
			sb.append(c[i]);
		}
		System.out.println(sb);
	}
}