/*
TASK:trees
LANG:C++
*/
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef struct leaf
{
 int predi;
 int num;
 int flag;
};
bool cmp(leaf a1,leaf a2);
int main()
{
 int f,tmp,i,N,n,m,k,r;
 double procent,max;
 leaf kloni[30002];
 scanf("%d%d%d",&n,&m,&k);
 N=n-m;
 if(!N){printf("0\n");return 0;}
 for(i=1;i<=n;i++)
 {
  scanf("%d",&kloni[i].predi);
  kloni[i].num=i;
  kloni[i].flag=0;
 }
 for(i=0;i<m;i++)
 { 
  scanf("%d",&tmp);
  kloni[tmp].flag=1;
  for(i=kloni[tmp].predi;i;)
  {
   kloni[i].flag=1;N--;
   i=kloni[i].predi;
  }
 }
 if(!N){printf("0\n");return 0;}
 for(i=1,f=1;i<=N;i++)
 {
  procent=(double)i/n;
  procent*=100;
  if(procent>=(double)k){r=i;f=0;break;}
 }
 if(f)r=i-1;
 sort(kloni+1,kloni+n+1,cmp);
 if(r<N)N=r;
 else {printf("%d",N);return 0;}
 for(i=n-r+1;i<=n;i++)
  printf("%d ",kloni[i].num);

 printf("\n");
 return 0;
}
bool cmp(leaf a1,leaf a2)
{
 if(!a1.flag)
  if(a1.num<a2.num)return true;
  else if(a2.num<a1.num)return false;
 else if(!a2.flag)return false;   
}
