/*
TASK: TREES
LANG: C++
*/
#include <iostream>
using namespace std;

int pred[30003];
bool rem[30003];
double N, M, K, cnt;

int main()
{
    cin >> N >> M >> K;
    int i, k;
    cnt = N;
    for (i=1;i <= N;i++)
     cin >> pred[i];
    
    for (i=0;i < M;i++)
    {
        cin >> k;
        rem[k] = true;
        cnt--;
        while (pred[k] != 0)
        {
           rem[pred[k]] = true;
           cnt--;
           k = pred[k];
        }
    }
    
    int y = (int)(K * N / 100.0);
    if ((double)y / N < K / 100.0) y++; 
    if (y > cnt)
    {
       cout << cnt << endl;
       //system("pause");
       return 0;
    }
    
    int skip = (int)cnt - y;
    for (i=1;i <= N;i++)
     if (!rem[i])
      if (skip-- <= 0)
       if (skip == -1) cout << i;
       else cout << " " << i;
    cout << endl;
    
    //system("pause");
    return 0;
}
