#include "bits/stdc++.h"
using namespace std;
#define ff first
#define ss second
#define pp pop_back
#define ll long long
#define pb push_back
#define pq priority_queue
#define ls(v) (ll)v.size()
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define wr cout << "------------------------" << endl
#define tt debug
const ll LOG = 31;
const ll N = 1e5 + 5;
ll an[N][LOG];
ll ans[N];
ll a[N];
ll cnt[N];
signed main(){
#ifdef parad0x
freopen("file.in","r",stdin);
#endif
#define prll(...) 42
ios::sync_with_stdio(false);cin.tie(nullptr);
ll n,idx;
cin >> n >> idx;
for(ll i = 1;i<=n;++i)
cin >> a[i], ans[i] = i;
for(ll i = 1;i<=n;++i)
cin >> an[i][0];
for(ll k = 1;k<LOG;++k)
for(ll i = 1;i<=n;++i)
an[i][k] = an[an[i][k - 1]][k - 1];
for(ll k = LOG - 1;~k;--k)
if(idx>>k&1)
for(ll i = 1;i<=n;++i)
ans[i] = an[ans[i]][k];
for(ll i = 1;i<=n;++i)
cnt[ans[i]] += a[i];
ll res = 0;
for(ll i = 1;i<=n;++i)
if(cnt[res] < cnt[i])
res = i;
cout << cnt[res] << endl;
for(int i = 1;i<=n;++i)
if(cnt[i] == cnt[res])
cout << i << ' ';
cout << endl;
return 0;
}