#include <stdio.h>
#include <string.h>

#define GMAX 101

int g[GMAX][GMAX], gs[GMAX], ge[GMAX];

int main() {
	int n, m;
	int x, y;
	int i, j;
	int ini, fim, fila[GMAX];
	int conseguiu;

	while (scanf("%d %d", &n, &m)&&n!=0) {
		memset(g, 0, sizeof(g));
		memset(ge, 0, sizeof(ge));
		memset(gs, 0, sizeof(gs));
		for (i=0; i<m; i++) {
			scanf("%d %d", &x, &y);
			g[x][y]=1;
			gs[x]++;
			ge[y]++;
		}
		ini=0;
		fim=0;
		while (1) {
			conseguiu=0;
			for (i=1; i<=n; i++) {
				if (ge[i]==0) {
					ge[i]=1;
					fila[fim++]=i;
					conseguiu=1;
					for (j=1; j<=n; j++) {
						if (g[i][j]) {
							g[i][j]=0;
							ge[j]--;
						}
					}
				}
			}
			if (!conseguiu) {
				break;
			}
		}
		for (i=0; i<fim; i++) {
			printf("%d ", fila[i]);
		}
		printf("\n");
	}

	return 0;
}

