public void nextBoard(int[][] buffer){
		int col = column/32+1;
		
		for(int i=0; i<row; i++){
			setBuffer(buffer, i);
			
			for(int j=0; j<col; j++){
				for(int k=0; k<32 && j*32+k<column; k++){
					int mid = board[i][j]>>(31-k) & 1;
					int sum = getNeighbors(i, j+1, k, buffer);
					int mask = 1<<(31-k%32);
					
					if(mid == 1){
						if(sum < 2 || sum > 3){
							//dying
							board[i][j] = board[i][j]^mask;
						}
					}else{
						if(sum == 3){
							//become alive
							board[i][j] = board[i][j]^mask;
						}
					}
				}
			}
		}
	}