n,k=map(int,input().split()) a=list(map(int,input().split())) c=list(map(lambda x:int(x)-1,input().split())) dp=[[0]*n for i in range(n)] for d in range(n): for l in range(n): r=l+d if l==r: dp[l][r]=1<<c[l] continue for m in range(l,r): for j in range(k+1): dp[l][r%n]|=(dp[l][m%n]<<j)&dp[(m+1)%n][r%n] dp[l][r%n]|=(dp[l][m%n]>>j)&dp[(m+1)%n][r%n] dp[l][r%n]|=(dp[(m+1)%n][r%n]<<j)&dp[l][m%n] dp[l][r%n]|=(dp[(m+1)%n][r%n]>>j)&dp[l][m%n] ans=0 for i in range(n): for j in range(n): if dp[i][j]: res=0 l=i r=j if r<l: r+=n for ii in range(l,r+1): res+=a[ii%n] ans=max(ans,res) print(ans)