/*
TASK:trees
LANG:C++
*/
#include <stdio.h>
 using namespace std;

struct tt
{
int p; 
int r;
};

int br;
tt a[30000];
int r[30000];

void findd(int ii)
{
br--; a[ii].r=2; 
 if ((ii!=0)) {findd(a[ii].p);};
}

main()
{
    int n,m,k,pom,pr,j;
    
    scanf("%d%d%d",&n,&m,&k);
    for (int i=0; i<n; i++) {scanf("%d",&a[i].p); a[i].r=0;};
    for (int i=0; i<m; i++) {scanf("%d",&pom); a[pom].r=1;};
    //
    br=n;
    for (int i=0; i<n; i++) if (a[i].r==1) findd(i);
    pr=((n*k)/100)+1;
        printf("%d\n",br);

    if (pr>br) printf("%d\n",br);
    else   
        {
            j=0;
            for (int i=n; i>0; i--)  if ((a[i].r==0)&&(j<=br)) {r[j]=i;j++;}; 
            for (int i=j-1; i>=0; i--) printf("%d ",r[i]);
            printf("\n");
        }
}
