#include <stdio.h> #include <string.h> const int MOD = 360; const int SIZE = 5; const int LEN = 5; int test[MOD]; int para[SIZE][LEN][2]; int cnt[SIZE]; int v[SIZE]; void init(); int work(); bool check(); int main(){ freopen("spin.in","r",stdin); freopen("spin.out","w",stdout); init(); int ans = work(); if (ans>=0) printf("%d/n",ans); else printf("none/n"); } void init(){ for (int i=0;i<SIZE;i++){ scanf("%d",&v[i]); scanf("%d",&cnt[i]); for (int j=0;j<cnt[i];j++){ scanf("%d%d",¶[i][j][0] , ¶[i][j][1] ); } // printf("wheel: %d v: %d cnt: %d /n",i,v[i],cnt[i]); } memset(test,false,sizeof(test)); } int work(){ for (int i=0;i<MOD;i++){ memset(test,0,sizeof(test)); //printf("now: %d/n",i); //paint for (int w=0;w<SIZE;w++){ int ty = 1<<w; int deta = v[w]*i; // printf(" wheel: %d ty:%d/n",w,ty); for (int ind=0;ind<cnt[w];ind++){ int st = para[w][ind][0]+deta; int len=para[w][ind][1]; // printf(" part: %d st:%d len: %d/n",ind,st,len); for (int j=0;j<=len;j++){ int nd = (st+j)%MOD; test[nd]|=ty; } } } if (check()){ return i; } } return -1; } bool check(){ int aim = (1<<SIZE)-1; for (int i=0;i<MOD;i++){ //printf(" %d ",test[i]); if (test[i]==aim){ return true; } } // printf("/n"); return false; } //end