/*
TASK: trees
LANG: C++
*/

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int n,m,k;
vector <int> deb[30000];
int d[30000];
int p[30000];
int nc[30000];
int nd[30000];
int save[30000];
int bs;
int md;
int ans[30000];
int num;
int h;

void rec(int x)
{
	if(save[x]==1) return;
	if(x==0) return;
	bs++;
	save[x]=1;
	rec(p[x]);
}

void read()
{
	int x;
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>x;
		p[i]=x;
		nc[x]++;
		d[i]=d[x]+1;
		if(md<d[i]) md=d[i];
		deb[d[i]].push_back(i);
		nd[d[i]]++;
	}
	for(int i=0;i<m;i++)
	{
		cin>>x;
		rec(x);
	}
	if(((n-bs)*100)/n<k)
	{
		cout<<n-bs<<endl;
		exit(0);
	}
	h=1;
	while(h*100/n<k)h++;
}

int main()
{
	read();
	for(int i=1;i<=md;i++)
	{
		sort(deb[i].begin(),deb[i].end());
	}
	for(int i=md;i>=1;i--)
	{
		for(int j=nd[i]-1;j>=0;j--)
		{
			if(save[deb[i][j]]==0&&h)
			{
				ans[num]=deb[i][j];
				num++;
				h--;
			}
			if(h==0) break;
		}
		if(h==0) break;
	}
	sort(ans,ans+num);
	cout<<ans[0];
	for(int i=1;i<num;i++)
	{
		cout<<' '<<ans[i];
	}
	cout<<endl;
    return 0;
}
