import java.util.*;

public class Numbers implements Iterator<Integer> {
int top, curr = 0;
public Numbers(int n) { top = n; }

public boolean hasNext() { return curr < top; }
public Integer next() { return curr++; }
public void remove() { throw new RuntimeException("NO"); }


public static void main(String args[])
{
Iterator<Integer> it = new Numbers(100);
it.next();
it.next();

while (it.hasNext()) {
int i = it.next();
System.out.println(i);

it = new Filter(it, i);
}
}
}

class Filter implements Iterator<Integer> {
Iterator<Integer> stream;
Integer front;

int factor;

public Filter(Iterator<Integer> s, int f) { stream = s; factor = f; }

public boolean hasNext()
{
if (front == null) {
if (!stream.hasNext()) return false;

front = stream.next();
}

while (front % factor == 0) {
if (!stream.hasNext()) return false;
front = stream.next();
}

return true;
}

public Integer next()
{
if (!hasNext()) throw new RuntimeException("You are dumb");

Integer rv = front;
front = null;

return rv;
}

public void remove() { throw new RuntimeException("NO"); }
}