a:6:{i:0;s:25475:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Leh Ladakh With Silk Route</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.travelwayindia.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelwayindia.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Leh Ladakh With Silk Route</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Leh Ladakh</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelwayindia.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Leh Ladakh with Silk Route - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="200890"/>
						</form>
						
												</p>
											</td>
										</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								This tour will make you fall in love with Ladakh as you get to see the amazing combination of mountains, forests, deserts, lakes, rivers, waterfalls, and much more in a span of just 6 days.<br />
<br />
Meet & Greet at Kushok Bakula Rimpochee Airport in Leh.<br />
<br />
Enjoy a day excursion to Indus and Sham Valley region.<br />
<br />
Visit Nubra Valley via Khardungla top and Pangong Lake.<br />
<br />
Depart from Leh.<br />
<br />
Tour ends on a wonderful note!!!!! <br />
       <br />
                                                           <br />
             How to reach:                                    <br />
                       The easiest way to travel to Ladakh is by air. The nearest airport is Kushok Bakula Rimpochee Airport (IXL) located in Leh. This airport is connected with many international airports in India like Delhi. It also receives flights from Srinagar, Jammu, Chandigarh, and other common destinations in India.<br />
<br />
Important Instructions-<br />
For travelling to Leh, tourists do not require any permit. However, registration is needed for all foreigners and international tourists, especially those travelling by road. Registration can be done at Drass, Rumtse and Sarchu. Those travelling by air should get their registration done at the airport.<br />
<br />
Tourists are required to obtain a Protect Area Permit for visiting restricted areas including Tso Moriri, Tso Kar, Pangong Tso Lake, Dhahanu and Nubra Valley. One can obtain these permits through registered travel agencies. While travelling, it’s advisable to multiple copies of valid ID and permits as these are required to be submitted at the checking points.<br />
<br />
Altitude sickness or acute mountain sickness is common when you travel to Ladakh. It’s caused by exposure to lower percentage of oxygen at high latitudes. As a general rule, rest for a day or two after every climb of 2,000ft of climb above 8000ft. This will give your body plenty of time for acclimatization. You should avoid smoking and consuming alcohol. One should carry medicines for basic medical conditions like fever, stomach ache, headache and others.<br />
<br />
If you have plans to visit some interior areas like Turtuk, Panamik, Khaltse, Pangong, Changthang, Hunder, TsoKar and TsoMoriri etc. in Ladakh City even Indian residents need to obtain innerline permits.								</div>
								<br />
																<div class="headHr">
					            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
					            </div>
					            
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 1:</b> Arrival in Leh | Welcome to the Top of the World
										</p>
										<p class="aj">Arrival at Leh’s Kushok Bakula Rinpoche Airport, one of the highest operated airports in the world (3500 meters above sea level). On a clear day, the majestic peaks of K2, Nanga Parbat, and Gasherbrum greet you on one side, while the Nun Kun peaks and Zanskar valley offer you a warm welcome on the other.<br />
<br />
Upon arrival, our representative will greet you and transfer you to your hotel. You are advised to take complete rest, followed by an evening visit to Leh Palace, Shanti Stupa, and Leh Market. This will help you to acclimatize to the high altitude. <br />
 <br />
Overnight stay at the hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Sham Valley
										</p>
										<p class="aj">After breakfast, we drive towards the western part of Ladakh, along the beautiful Indus river on the Leh – Srinagar highway for a photoshoot. Another 5 km drive will bring you to the legendary Magnetic Hill, a scientific anomaly that defies the laws of gravity –  a great photoshoot location. <br />
 <br />
Out next destination for the day is Sangam – the confluence of the Indus and Zanskar rivers. You can see the two, distinctly colored rivers merge beautifully in the laps of lofty mountains. Needless to say, this is one of the most ideal destinations for photoshoots. <br />
 <br />
Overnight stay at the hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 3:</b> Leh to Nubra Valley via Khardung-La Pass | A Drive to the World’s Highest Motorable Road (18000 ft.)
										</p>
										<p class="aj">After breakfast, we drive to Nubra valley. The journey from Leh to Nubra spans 39 km and passes through the iconic Khardung La Pass. At an altitude of 17,582 ft., it is one of the five highest motorable roads in the world. Shrouded in a blanket of snow, the pass affords you sweeping views of the Indus Valley, along with the seemingly endless Zanskar range in the south.<br />
To your north, behold the magnificent Saser massif in all its glory. Adorned with fluttering prayer flags, Khardung La top is arguably the most picturesque location in Ladakh. <br />
 <br />
From Khardung La, we continue the journey to Nubra valley, also known as Ldumra or the Valley of Flowers. Sitting at an altitude of approximately 10,000 ft., it is nestled in the north of Ladakh, right between the Ladakh Himalayas and the Karakoram range. Once at Nubra, we check into our camps/hotel in Hunder for the night. Take in the breathtaking views of the lus oasis villages set as a stark contrast amidst barren mountains. These villages give you a rare glimpse into the fascinating lives of the locals. <br />
<br />
Overnight stay at the camp/hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> Numbra Valley to Leh
										</p>
										<p class="aj">After an early breakfast, we check out from the camp/hotel, and drive to Hunder, which is home to beautiful sand dunes (at 10,000 ft)! You have the opportunity to ride on a Bactrian camel (double-humped camel) here. The beautiful high-altitude desert of Hunder is bordered by lofty snow-clad peaks. Seen in isolation, you could well be amidst the sand dunes of the Thar<br />
Desert in Rajasthan! Mark the contrasting views of the Rocky Mountains that characterise the Ladakhi landscape, and the snow-capped mountains overlooking the desert – a strange sight, indeed. A visual treat for photographers. <br />
 <br />
 <br />
We continue our drive back to Leh, passing over Khardung La once again. Check into the Hotel at Leh. Spend the evening resting, or exploring the local markets, hunting for last-minute souvenirs. <br />
 <br />
Overnight stay at the hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> Leh - Excursion to Pangong lake
										</p>
										<p class="aj">After an early breakfast, we drive to the famous Pangong Lake via Chang La Pass, another one of the world’s highest motorable roads (17,586 ft.) A scenic two-hour drive brings you atop Chang La Pass, a perfect spot for photography. From Chang La Pass, we head up to Pangong, with a brief halt at Tangtse for refreshments. From Tangtse, the route to Pangong weaves through quaint villages of Changthang, and before you know it, the scintillating waters of Pangong Lake greet you. Reigning at an altitude of 13,930 ft., the alpine lake of Pangong spans about 5 – 8 km in width and 140 km in length, sharing territory with India (30%) and China (70%).<br />
 <br />
Catch the slanting rays of the sun on the bright, crystal-clear waters of the lake, which also bears beautiful reflections of the barren hills that guard it. Throughout the day, catch the shuttle change in the colours of the lake – from clear blue to dark green to turquoise, and more. The entire setting could not be more perfect. Having spent a few hours here, we head back to Leh via Chang La Pass.<br />
 <br />
Overnight stay at the hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 6:</b> Departure
										</p>
										<p class="aj">After an early breakfast, we drive you to Leh’s Kushok Bakula Rinpoche Airport for your flight. Fly back with the sweet memories of Ladakh, both in your hearts and in your camera.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Sightseeing</li>
																						<li>Transport</li>
																						<li>Airport Pickup-Drop</li>
																						<li>Private Cab</li>
																						<li>Stay Included</li>
																				<li>Welcome drink on arrival.</li><li>
Meet & greet at arrival.</li><li>
05 Nights accommodation on double / twin sharing basis as per the itinerary with breakfast and dinner.</li><li>
Pick and Drop at time of arrival/departure.</li><li>
Driver’s allowance, Road tax Parking, Toll tax and Fuel charges.</li><li>
Sightseeing by private car.</li><li>
Return airport and round trip transfers along with all sightseeing tours by Non-Ac Innova |</li><li>
|Tata- Aria / Mahindra XUV OR Tempo Traveler (as per the option selected by client) for all</li><li>
categories except for standard package for which we’ll use Scorpio/ Xylo as per the itinerary.</li><li>
Assistance upon arrival at Kushok Bakula Rinpoche Airport.</li><li>
Wild Life and Red Cross fee.</li><li>
Traditional welcome in the hotel with a welcome drinks (hot tea / coffee / kahwa) upon arrival.</li><li>
All tours and transfers by Personal Car are included.</li><li>
Free medical assistance in need.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Camera fee.</li><li>
Fuel expenses.</li><li>
Alcoholic / Non- Alcoholic beverages.</li><li>
Travel insurance.</li><li>
5% GST.</li><li>
Any Airfare / Train fare.</li><li>
Expenses caused by factors beyond our control like rail and flight delays, roadblocks, and vehicle mal-functions, political disturbances etc.</li><li>
Tips, laundry & phone call.</li><li>
Entrance fees to monuments and museum.</li><li>
All personal expenses.</li><li>
Guide (On Demand at an additional cost).</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* 20% Advance Percentage of total booking amount</li><li>
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
* Retention Amount varies as per the number of days left before your package start date.</li><li>
* Refund will be made within 15 working days from the date of receipt of the cancellation.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelwayindia.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Leh Ladakh with Silk Route - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="200890"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/agra-tour-packages.htm" title="Agra Tour Packages">Agra</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/dharamshala-tour-packages.htm" title="Dharamshala Tour Packages">Dharamshala</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/kangra-tour-packages.htm" title="Kangra Tour Packages">Kangra</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/prayagraj-tour-packages.htm" title="Prayagraj Tour Packages">Prayagraj</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/pushkar-tour-packages.htm" title="Pushkar Tour Packages">Pushkar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/corbett-tour-packages.htm" title="Corbett Tour Packages">Corbett</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/bareilly-tour-packages.htm" title="Bareilly Tour Packages">Bareilly</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/mcleodganj-tour-packages.htm" title="Mcleodganj Tour Packages">Mcleodganj</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/jeep-safari-holidays-catid.htm" title="Jeep Safari Packages">Jeep Safari</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/wildlife-safari-holidays-catid.htm" title="Wildlife Safari Packages">Wildlife Safari</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/abseiling-holidays-catid.htm" title="Abseiling Packages">Abseiling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/biking-holidays-catid.htm" title="Biking Packages">Biking</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Leh Ladakh</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.travelwayindia.com/holiday-packages/chadar-trek-frozen-river-ladakh.htm'">
															<div class="picBg ac vam lh0"><img src="https://static.tourtravelworld.com/images/tour-package-no-image.gif"  height="100"  width="100"    alt="Chadar Trek Frozen River, Ladakh" title="Chadar Trek Frozen River, Ladakh"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.travelwayindia.com/holiday-packages/chadar-trek-frozen-river-ladakh.htm" title="Chadar Trek Frozen River, Ladakh"><h3>Chadar Trek Frozen River, Ladakh</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Leh Ladakh, Shingra Koma, Tsomo Paldar, ..</p>
															<div class="mt10px small">
							<form name="pkg_200874" id="pkg_200874" method="post" action="http://www.travelwayindia.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.travelwayindia.com/holiday-packages/chadar-trek-frozen-river-ladakh.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Chadar Trek Frozen River, Ladakh - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="200874"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:65:"Book Leh Ladakh with Silk Route - 5 Nights / 6 Days Tour Packages";i:2;s:119:"book leh ladakh with silk route - 5 nights / 6 days tour packages, hill station tour packages, leh ladakh tour packages";i:3;s:152:"Travel Way India offers Leh Ladakh with Silk Route - 5 Nights / 6 Days tour package, budget Hill Station tour packages for Leh Ladakh at exciting price.";i:4;s:2664:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh Ladakh"        
		                 },
		      "description": "This tour will make you fall in love with Ladakh as you get to see the amazing combination of mountains, forests, deserts, lakes, rivers, waterfalls, and much more in a span of just 6 days.

Meet & Greet at Kushok Bakula Rimpochee Airport in Leh.

Enjoy a day excursion to Indus and Sham Valley region.

Visit Nubra Valley via Khardungla top and Pangong Lake.

Depart from Leh.

Tour ends on a wonderful note!!!!! 
       
                                                           
             How to reach:                                    
                       The easiest way to travel to Ladakh is by air. The nearest airport is Kushok Bakula Rimpochee Airport (IXL) located in Leh. This airport is connected with many international airports in India like Delhi. It also receives flights from Srinagar, Jammu, Chandigarh, and other common destinations in India.

Important Instructions-
For travelling to Leh, tourists do not require any permit. However, registration is needed for all foreigners and international tourists, especially those travelling by road. Registration can be done at Drass, Rumtse and Sarchu. Those travelling by air should get their registration done at the airport.

Tourists are required to obtain a Protect Area Permit for visiting restricted areas including Tso Moriri, Tso Kar, Pangong Tso Lake, Dhahanu and Nubra Valley. One can obtain these permits through registered travel agencies. While travelling, it’s advisable to multiple copies of valid ID and permits as these are required to be submitted at the checking points.

Altitude sickness or acute mountain sickness is common when you travel to Ladakh. It’s caused by exposure to lower percentage of oxygen at high latitudes. As a general rule, rest for a day or two after every climb of 2,000ft of climb above 8000ft. This will give your body plenty of time for acclimatization. You should avoid smoking and consuming alcohol. One should carry medicines for basic medical conditions like fever, stomach ache, headache and others.

If you have plans to visit some interior areas like Turtuk, Panamik, Khaltse, Pangong, Changthang, Hunder, TsoKar and TsoMoriri etc. in Ladakh City even Indian residents need to obtain innerline permits.",
		      "name": "Leh Ladakh with Silk Route",
		      "telephone": "+91-9027368321"
		    }
		    </script>
			";i:5;N;}