import java.util.*;
public class Main
{
static int N = 100010;
static int[] in = new int[N];
static int[] h = new int[N];
static int[] e = new int[N];
static int[] ne = new int[N];
static int n = 0;
static int idx = 0;
static List[HTML_REMOVED] q = new LinkedList<>();
public static void add(int a,int b)
{
e[idx] = b;
ne[idx] = h[a];
h[a] = idx++;
}
public static boolean topology()
{
//把所有入度为0的点入队
for(int i = 1; i <= n; i++)
{
if(in[i] == 0) q.add(i);
}
while(q.size() != 0)
{
int t = q.remove(0);
for(int i = h[t]; i != -1; i = ne[i])
{
int j = e[i];
in[j]--;
if(in[j] == 0) q.add(j);
}
}
return q.size() == n;
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
n = input.nextInt();
int m = input.nextInt();
while(m-- > 0)
{
int a = input.nextInt();
int b = input.nextInt();
add(a,b);
in[b]++;
}
if(topology())
{
Iterator temp = q.iterator();
while(temp.hasNext()) System.out.print(temp.next() + " ");
}
else
{
System.out.println("-1");
}
}
}