#include<iostream> #include<unordered_map> #include<queue> #define rep(i,a,b) for(long int i=a;i<b;i++) #define ull unsigned long long using namespace std; int main() { long int a,b,c; cin>>a>>b>>c; unordered_map<int,int> um; // int *array1=new int[a]; int *array1=new int[a]; int *array2=new int[b]; int *array3=new int[c]; rep(i,0,a) { cin>>array1[i]; um[array1[i]]++; } rep(i,0,b) { cin>>array2[i]; } rep(i,0,c) { cin>>array3[i]; } queue<int> output; long int count=0; long int i=0,j=0; while(i<b && j<c){ if(array2[i]>array3[j]){ if(um.find(array3[j])!=um.end()){ count++; output.push(array3[j]); } j++; } else if(array2[i]<array3[j]){ if(um.find(array2[i])!=um.end()){ count++; output.push(array2[i]); } i++; } else{ count++; output.push(array2[i]); i++; j++; } } while(i<b){ if(um.find(array2[i])!=um.end()) { count++; output.push(array2[i]); } i++; } while(j<c){ if(um.find(array3[j])!=um.end()) { count++; output.push(array3[j]); } j++; } cout<<count<<endl; while(!output.empty()) { cout<<output.front()<<endl; output.pop(); } return 0; }