#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, K, a[N], ans[N], p[33][N];
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> K;
for (int i = 1; i <= n; ++i) cin >> a[i];
for (int i = 1; i <= n; ++i)
cin >> p[0][i];
for (int k = 1; (1 << k) <= K; ++k)
for (int i = 1; i <= n; ++i)
p[k][i] = p[k - 1][p[k - 1][i]];
for (int i = 1; i <= n; ++i){
int cur = i;
for (int x = K; x > 0; x ^= x & -x)
cur = p[__builtin_ctz(x)][cur];
ans[cur] += a[i];
// cout << cur << "\n";
}
int cur = 0;
for (int i = 1; i <= n; ++i)
cur = max(cur, ans[i]);
cout << cur << "\n";
for (int i = 1; i <= n; ++i)
if (ans[i] == cur) cout << i << " ";
}