/* O(N*K) solution to jewel thief (TLE). */ import java.util.*; import java.io.*; public class thiefslow_font { public static void main(String[] args) throws Exception { PrintWriter out = new PrintWriter(System.out); new thiefslow_font(new FastScanner(System.in), out); out.close(); } public thiefslow_font(FastScanner in, PrintWriter out) { int N = in.nextInt(); int K = in.nextInt(); int[][] jewels = new int[N][2]; for (int i=0; i=0; x--) dp[x+v[0]] = Math.max(dp[x+v[0]], dp[x] + v[1]); out.printf("%d", dp[1]); for (int x=2; x<=K; x++) out.printf(" %d", dp[x]); out.println(); } } class FastScanner{ private InputStream stream; private byte[] buf = new byte[1024]; private int curChar; private int numChars; public FastScanner(InputStream stream) { this.stream = stream; } int read() { if (numChars == -1) throw new InputMismatchException(); if (curChar >= numChars){ curChar = 0; try{ numChars = stream.read(buf); } catch (IOException e) { throw new InputMismatchException(); } if (numChars <= 0) return -1; } return buf[curChar++]; } boolean isSpaceChar(int c) { return c==' '||c=='\n'||c=='\r'||c=='\t'||c==-1; } boolean isEndline(int c) { return c=='\n'||c=='\r'||c==-1; } int nextInt() { return Integer.parseInt(next()); } long nextLong() { return Long.parseLong(next()); } double nextDouble() { return Double.parseDouble(next()); } String next(){ int c = read(); while (isSpaceChar(c)) c = read(); StringBuilder res = new StringBuilder(); do{ res.appendCodePoint(c); c = read(); }while(!isSpaceChar(c)); return res.toString(); } String nextLine(){ int c = read(); while (isEndline(c)) c = read(); StringBuilder res = new StringBuilder(); do{ res.appendCodePoint(c); c = read(); }while(!isEndline(c)); return res.toString(); } }