import Data.Maybe (maybe)

import qualified Data.List as L

main :: IO ()
main = do
    [n, x] <- fmap read . words <$> getLine
    answer $ solve n x

type Answer = Maybe [Int]
answer :: Answer -> IO ()
answer = putStrLn "No" `maybe` ((putStrLn "Yes" >>) . mapM_ print)

solve :: Int -> Int -> Answer
solve n x
    | x <= fst range = Nothing
    | x >= snd range = Nothing
    | otherwise      = Just $ wing [1 ..] ++ [x] ++ wing [n ..]
  where
    range = (max 1 $ n - 2, min (2 * n - 1) $ n + 2)
    wing  = L.reverse . L.take (n - 1) . L.filter (x /=)
