#include #include #define N 10100 #define C 6000000 #define MIN(a,b) (((a)<(b))?(a):(b)) typedef struct hrana { short a,b; }; hrana hr[C]; int ind[N]; int n,m; int cislo[N],min[N],poc[N]; int cis; int hr_cmp(const void *a, const void *b) { hrana *va = (hrana *)a; hrana *vb = (hrana *)b; if (va->a > vb->a) return 1; if (va->a < vb->a) return -1; if (va->b > vb->b) return 1; return -1; } void bt(int v) { int i,dd,w; cislo[v]=min[v]=cis++; dd=ind[v+1]; for ( i=ind[v]; i= cislo[v]) poc[v]++; } min[v]=MIN(min[v],min[w]); } } int main() { int a,b; int p1,i; int komp,best; while (1) { scanf("%d %d", &n, &m); if (!n && !m) break; for ( i=0; ibest) best=poc[i]; printf("%d\n", best+komp); } return 0; }