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

#include <stdio.h>
#include <vector>
#define MAX 1 << 15

using namespace std;

int tg[MAX] = {0};
int tc[MAX] = {0};
int  p[MAX] = {0};
vector<int> r;
int pc = 0, n = 0, m = 0;
double npc = 0.0;

int main () {
    int i = 0, j = 0, k = 0;
    p[0] = tc[0] = 1;
    scanf ("%d %d %d", &n, &m, &pc);
    npc = pc / 100.;
    for (i = 1; i <= n; i ++) {
        scanf ("%d", &tg[i]);
        p[tg[i]] = 1;
    }
    for (i = 0; i < m; i ++) {
        scanf ("%d", &j);
        k = j;
        do {
            tc[k] = 1;
            k = tg[k];
        } while (k != 0);
    }
    for (i = 1; i <= n; i ++) {
        if (!tc[i]) {
            r.push_back(i);
        }
    }
    if (double(r.size()) / n < npc) {
        printf ("%d\n", r.size());
        return 0;
    }
    int br = 0;
    do {
        br ++;
    } while (double(br) / n < npc);
    for (i = r.size() - br; i < r.size() - 1; i ++) {
        printf ("%d ", r[i]);
    }
    printf ("%d", r[i]);
    return 0;
}
