/*
TASK:trees
LANG:C++
*/
#include <iostream>
#include <cmath>

using namespace std;

int N,M,K;

int prnt[30000];
int bird[30000];
int cut [30000];
char prot[30000] = {0};
int pn = 0;

int main ()
{
 int p, i;
 cin >> N >> M >> K;
 for (i = 0; i < N; i++)
     cin >> prnt[i];
 for (i = 0; i < M; i++)
     cin >> bird[i];
 for (i = 0; i < M; i++)
 {
     p = bird[i]-1;
     while (p != -1)
     {
           prot[p] = 1;
           p = prnt[p] - 1;
           pn++;
     }
 }
 K = (int)ceil((double)(K)/100 * N);
 if (pn > (N-K)) 
 {
    cout << N-pn << '\n';
    return 0;
 }

 int c;
 for (i = N-1, c = 0; ; i--)
     if (!prot[i])
     {
       cut[c++] =  i+1;
       if (c == K) break;
     }
 for (c = K - 1; c > 0; c--)
     cout << cut[c] << ' ';
 cout << cut[0] << '\n'; 
 return 0;
} 
 
         
 
 
