1 #include <iostream> 2 #include <stdlib.h> 3 using namespace std; 4 5 int flag[1005]; 6 int main() 7 { 8 int n,k; 9 cin>>n>>k; 10 int i,j,p; 11 12 int left[1005]; 13 int right[1005]; 14 char c[3]; 15 for(i=0;i<k;i++) 16 { 17 cin>>p; 18 for(j=0;j<p;j++) 19 { 20 cin>>left[j]; 21 } 22 for(j=0;j<p;j++) 23 { 24 cin>>right[j]; 25 } 26 cin>>c; 27 if(c[0]=='=') 28 { 29 for(j=0;j<p;j++) 30 { 31 flag[left[j]]=100; 32 } 33 for(j=0;j<p;j++) 34 { 35 flag[right[j]]=100; 36 } 37 38 } 39 if(c[0]=='>') 40 { 41 for(j=0;j<p;j++) 42 { 43 if(flag[left[j]]!=100) 44 { 45 flag[left[j]]++; 46 } 47 } 48 for(j=0;j<p;j++) 49 { 50 if(flag[right[j]]!=100) 51 { 52 flag[right[j]]--; 53 } 54 } 55 } 56 if(c[0]=='<') 57 { 58 for(j=0;j<p;j++) 59 { 60 if(flag[left[j]]!=100) 61 { 62 flag[left[j]]--; 63 } 64 } 65 for(j=0;j<p;j++) 66 { 67 if(flag[right[j]]!=100) 68 { 69 flag[right[j]]++; 70 } 71 } 72 } 73 } 74 int max=-1; 75 int ans; 76 int mount=1; 77 /*for(i=1;i<=n;i++) 78 { 79 cout<<flag[i]<<endl; 80 }*/ 81 for(i=1;i<=n;i++) 82 { 83 if(flag[i]!=100 && abs(flag[i])>=max) 84 { 85 if(abs(flag[i])>max) 86 { 87 max=abs(flag[i]); 88 ans=i; 89 mount=1; 90 } 91 else if(abs(flag[i])==max) 92 { 93 mount++; 94 } 95 } 96 97 } 98 if(mount==1) cout<<ans<<endl; 99 else cout<<0<<endl; 100 //cout<<ans<<endl; 101 return 0; 102 }