#include<bits/stdc++.h>
using namespace std;
int i,j,n,m,x,y,ans,f[1010];
struct node{int x,y,l,r;}a[3030];
bool cmp(node x,node y){return x.r>y.r;}
int find(int x){return (f[x]==x)?x:f[x]=find(f[x]);}
int main(){
scanf("%d %d",&n,&m);
for (i=1;i<=m;i++) scanf("%d %d %d %d",&a[i].x,&a[i].y,&a[i].l,&a[i].r);
sort(a+1,a+1+m,cmp);
for (i=1;i<=m;i++){
for (j=1;j<=n;j++) f[j]=j;
for (j=1;j<=m;j++)
if (a[i].l>=a[j].l&&a[i].l<=a[j].r){
x=find(a[j].x);y=find(a[j].y);
if (x!=y) f[x]=y;
if (find(1)==find(n)) {ans=max(ans,a[j].r-a[i].l+1);break;}
}
}
if (!ans) printf("Nice work, Dima!\n");
else printf("%d\n",ans);
return 0;
}
1614B - Divan and a New Project | 791A - Bear and Big Brother |
1452A - Robot Program | 344A - Magnets |
96A - Football | 702B - Powers of Two |
1036A - Function Height | 443A - Anton and Letters |
1478B - Nezzar and Lucky Number | 228A - Is your horseshoe on the other hoof |
122A - Lucky Division | 1611C - Polycarp Recovers the Permutation |
432A - Choosing Teams | 758A - Holiday Of Equality |
1650C - Weight of the System of Nested Segments | 1097A - Gennady and a Card Game |
248A - Cupboards | 1641A - Great Sequence |
1537A - Arithmetic Array | 1370A - Maximum GCD |
149A - Business trip | 34A - Reconnaissance 2 |
59A - Word | 462B - Appleman and Card Game |
1560C - Infinity Table | 1605C - Dominant Character |
1399A - Remove Smallest | 208A - Dubstep |
1581A - CQXYM Count Permutations | 337A - Puzzles |