#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, k;
cin >> n >> k;
int LOG = __lg(n) + 1;
vector<int> a(n + 1);
for (int i = 1; i <= n; ++i)
cin >> a[i];
vector<vector<int>> par(n + 1, vector<int>(LOG + 1));
for (int i = 1; i <= n; ++i)
cin >> par[i][0];
for (int l = 1; l <= LOG; ++l) {
for (int i = 1; i <= n; ++i) {
par[i][l] = par[par[i][l - 1]][l - 1];
}
}
vector<int> ans(n + 1);
for (int i = 1; i <= n; ++i) {
int j = i;
for (int b = LOG + 1; b--;) {
if (k >> b & 1) {
j = par[j][b];
break;
}
}
ans[j] += a[i];
cerr << i << " " << j << "\n";
}
int mx = ranges::max(ans);
cout << mx << "\n";
for (int i = 1; i <= n; ++i) {
if (ans[i] == mx) {
cout << i << " ";
}
}
return 0;
}