atcoder#AGC021D. [AGC021D] Reversed LCS

[AGC021D] Reversed LCS

Score : 900900 points

Problem Statement

Takahashi has decided to give a string to his mother.

The value of a string TT is the length of the longest common subsequence of TT and TT', where TT' is the string obtained by reversing TT. That is, the value is the longest length of the following two strings that are equal: a subsequence of TT (possibly non-contiguous), and a subsequence of TT' (possibly non-contiguous).

Takahashi has a string SS. He wants to give her mother a string of the highest possible value, so he would like to change at most KK characters in SS to any other characters in order to obtain a string of the highest possible value. Find the highest possible value achievable.

Constraints

  • 1S3001 \leq |S| \leq 300
  • 0KS0 \leq K \leq |S|
  • SS consists of lowercase English letters.
  • KK is an integer.

Input

Input is given from Standard Input in the following format:

SS

KK

Output

Print the highest possible value achievable.

abcabcabc
1
7

Changing the first character to c results in cbcabcabc. Let this tring be TT, then one longest common subsequence of TT and TT' is cbabcbc, whose length is 77.

atcodergrandcontest
3
15