a:6:{i:0;s:22453:"				<div class="h1"><h1>(LHM/LL- 13) 09Nts / 10Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.bluedolphintravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.bluedolphintravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>(LHM/LL- 13) 09Nts / 10Days Tour</p>
				<br />
				
								
						<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">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Manali, Srinagar, Kargil</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bluedolphintravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="(LHM/LL- 13) 09Nts / 10Days Tour - 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="96664"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/428110/163722.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/428110/163722.jpg"  width="150" height="150"    alt="(LHM/LL- 13) 09Nts / 10Days Tour" title="(LHM/LL- 13) 09Nts / 10Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Assistance on arrival at Leh<br />
Traditional Welcome in the hotel<br />
Accommodation on twin sharing basis as per the selected category of packages<br />
BT: Bed Tea, B: Breakfast, D: Dinner<br />
Kindly Note the vehicles provided are not on disposable basis and are strictly on point to point basis as per the Itinerary selected<br />
Inner line Permit. <br />
All airport transfers & sightseeing tours by:<br />
Budgeted: = NAC Tavera/Qualis, <br />
Deluxe: = NAC Innova / Scorpio / Xylo<br />
Super Deluxe: = NAC Innova / Scorpio / Xylo <br />
Luxury: = 01 NAC Innova <br />
Wild life fee & Red Cross fee. <br />
The Ladakh Autonomous Hill Development Council fee (Ladakh entry fee)9 % GST Tax Extra <br />
Airfare to and from Leh or any other destination<br />
Monument & Museum Entrance Fees to be paid directly.<br />
Any kind of personal expenses, extra meals, starters & Drinks (Alcoholic, Mineral, Aerated etc)<br />
Any kind of optional tours<br />
Tips, Insurance, Laundry, Phone Calls, Guide Fee & Camera Fee<br />
Services of vehicle on leisure days and after finishing the sightseeing tour<br />
Adventure activity costs (Pony Ride, Camel Safari, Rafting, paragliding etc)<br />
Medical & Travel insurance<br />
Additional Costs due to Flight Cancellations, Road blocks, natural calamities and nature’s fury<br />
Anything not mentioned under the category “PACKAGE INCLUSIONS”<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> Manali – Keylong – Jispa  - Sarchu (05 HRS – 230 KMS )
								</p>
								<p class="aj">Start your overland journey early morning and drive to Keylong. This high altitude road beyond the great Himalayan range, connects the densely fertile and green Kullu valley to the stark barren region of Ladakh. The drive starts at Manali slowly winding up mountain roads till Rohtang Pass at 3,950M which connects the Kullu to the Lahaul valley. On entering the Lahaul valley we see a distinct change with the Hindu influence being replaced with the Buddhist religion. Lunch at Keylong post lunch drive to Sarchu by crossing Baralacha Pass (16020 ft) a beautiful drive on high altitude to be remembered for life time.. O/N Sarchu.</p>					
									<p><b>Meals : </b> (Dinner)</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> Sarchu - Tsomorriri (4.5 HRS – 228 KMS)
								</p>
								<p class="aj">Get prepared for the most interesting overland high altitude drive up to Tso Moriri. May take approx 10 hours. Further drive by crossing Nakeela and Lachalung-la Pass (16,617 ft.). Break for lunch at Pang and then drive on towards Tsokar Lake which is high altitude Sault Lake. Spend your quality time at this place and drive further to Tsomoriri. One of the most beautiful lake situated in the South East of Leh and close to Tibet border. Spend the night at this place and overnight.O/N Tsomorriri.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Tsomorriri - Leh (05 HRS -220 KMS)
								</p>
								<p class="aj">After an early breakfast, visit Korzok Monastery and proceed to Leh via Mahe Bridge. En route, visit Chumthang hot water springs and travel through the scenic Indus Valley. Overnight stay in Leh. O/N Leh.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Leh Local Sightseeing (Shey – Thiksey – Hall of Fame - Shanti Stupa)
								</p>
								<p class="aj">After breakfast drive up along the scenic Indus valley. Enroute stop over to visit the famous Shey Palace & Monastery, Thiksey Monastery, visit Hall of Fame and enjoy an evening sunset at Shanti Stupa. O/N Leh. . <br />
Shey Palace & Monastery<br />
This summer palace of the erstwhile King of Leh is set upon a hill. The monastery itself has a 7.5 meter high, copper statue of a sitting Buddha, wrought in gold. This is the largest of its kind in the world. <br />
<br />
Thiksey Monastery<br />
19 Kms from Leh, Thiksey is one of the largest and most impressive Gompas of Ladakh. The Thiksey monastery provides a panoramic view of the green Indus Valley from its vantage point atop a hill. It has chambers full of statues, Stupas and colorful Tankhas.<br />
<br />
<br />
<br />
	<br />
Hall of Fame<br />
Hall of Fame near Leh is worth a visit for every citizen. It is a glorious museum constructed by Indian army. You can see the memorabilia, eminent defence personalities with biographies, images and weapons used during Kargil war. <br />
<br />
Shanti Stupa<br />
Shanti Stupa is located at about 1km from Leh. It was built by a Japanese order and has wonderful views over Leh and the Indus valley especially at sunset. The stupa was built in 1980s and is a beautiful monument decorated with colourful paintings and enshrines large statues of Buddha. O/N LEH.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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 - Nubra Valley (5 HRS – 120 KMS)
								</p>
								<p class="aj">After Breakfast drive to Nubra Valley via Khardung la pass the highest motorable pass in the world (18,380 feet). On the way you get excellent view of great Karakoram Range. Keep driving through Syok River and reach Hundur by Afternoon. Visit sand dunes for camel safari. O/N Hundur.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Nubra Valley – Pangong Lake (10 HRS)
								</p>
								<p class="aj">Today we Drive on one of the remotest route of Ladakh made especially for the Indian Army, which connects Nubra Valley to Pangong Lake by passing Leh. This route was washed away in a cloud burst in 2010. Parts of it are still not rebuilt. With various stream crossings, driving on dry riverbeds, smoothtarmac and switchbacks, it truly is a religious experience for an adventure lover.Later free time at leisure and enjoy the colour changing lake and the sun set on the banks of lake .O/N Pangong Lake.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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 7:</b> Pangong Lake – Leh (4 HRS ONE WAY – 140 KMS)
								</p>
								<p class="aj">Early morning after Breakfast leave for Leh through Changla Pass 17,350 ft. (3rd Highest Motorable road in the world), Spend time at the banks of Pangong Lake. This lake of Pangong  is 5/6 kms wide and over 144 kms long and is shared by two countries (25% India and 75% China). Later free for Shopping at Leh Local Market.Overnight at Leh.. O/N Leh.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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 8:</b> Leh – Kargil (05 HRS -213 KMS)
								</p>
								<p class="aj">After Breakfast drive to Alchi enroute visit Gurudwara Pathar Sahib, Magnetic Mountain & Likir Monastery. Arrive Ule by afternoon enroute have a spectacular view of Moonlandscape, Lamayuru (Oldest Monastery in Ladakh) and Giant Maitreya Buddha at Mulbekh. Arrive at Kargil by late evening. O/N Kargil.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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 9:</b> Kargil - Drass - Sonamarg – Srinagar (8Hrs – 204 KMS)
								</p>
								<p class="aj">After early Breakfast by 5.00 am drive to Srinagar passing through Drass, the second coldest inhabited Place on earth and you can have spectacular view of Kargil War famous Peaks Tiger Hill and Tololing Peak. O/N Srinagar.</p>					
									<p><b>Meals : </b> (Dinner)</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 10:</b> Srinagar – Back to Destination.
								</p>
								<p class="aj">Early morning transfer to airport and fly back to Destination with Sweet Memories of Ladakh.</p>					
									<p><b>Meals : </b> (Breakfast)</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
												</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>9 % GST Tax Extra </li><li>
Airfare to and from Leh or any other destination</li><li>
Monument & Museum Entrance Fees to be paid directly.</li><li>
Any kind of personal expenses, extra meals, starters & Drinks (Alcoholic, Mineral, Aerated etc)</li><li>
Any kind of optional tours</li><li>
Tips, Insurance, Laundry, Phone Calls, Guide Fee & Camera Fee</li><li>
Services of vehicle on leisure days and after finishing the sightseeing tour</li><li>
Adventure activity costs (Pony Ride, Camel Safari, Rafting, paragliding etc)</li><li>
Medical & Travel insurance</li><li>
Additional Costs due to Flight Cancellations, Road blocks, natural calamities and nature’s fury</li><li>
Anything not mentioned under the category “PACKAGE INCLUSIONS”</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Professional Tourist Guide @ INR. 2000 per day</li>
	<li>Camel Safari @ INR. 500 per ride</li>
	<li>River Rafting in Indus (Phey to Nimo) @ INR. 2200 per person (25th June to 30th August only)</li>
	<li>Cultural program @ INR. 8500 per program</li>
</ul>

<p><strong>IMPORTANT NOTE</strong>

<ul>
	<li>Above rates are Net &amp; Non-commissionable to you.</li>
	<li>Kindly note that names of hotels / Camps mentioned above only indicate that our rates have been based on usage of these hotels and it is not to be construed that accommodation is confirmed at these hotels until and unless we convey such confirmation to you. In the event of accommodation not becoming available at any of the above mentioned hotels we shall book alternate accommodation at a similar or next best available hotel and shall pass on the difference of rates (supplement/reduction whatever applicable) to you.</li>
	<li>Our offer is based on usage of base category rooms at the mentioned hotels (unless specified otherwise) and if this category of rooms is not available we shall try to confirm accommodation in next available higher category of rooms and shall advise supplementary cost involved while conveying the status.</li>
	<li>We shall not be responsible for any change in the itinerary due to landslides, flight cancellations, weather conditions or any unforeseen circumstances. The additional cost incurred will be in addition to the cost</li>
</ul>

<p><strong>BOOKING POLICY</strong>

<ul>
	<li>50% advance to confirm the booking&nbsp;</li>
	<li>50% balance 30 days before the date of travel</li>
</ul>

<p><strong>CANCELLATION POLICY</strong>

<ul>
	<li>25 % before 60 days from date of commencement of tour</li>
	<li>50 % before 45 days from date of commencement of tour</li>
	<li>75 % before 30 days from date of commencement of tour</li>
	<li>100 % before 15 days from date of commencement of tour</li>
</ul>

<p><strong>Terms &amp; Conditions:</strong>

<ul>
	<li>Prices valid from 01st April 2017 to 15th September 2017.</li>
	<li>Prices valid for minimum 02, 04 &amp; 06 pax traveling together in one vehicle.</li>
	<li>Journey can be arranged from Delhi / Chandigarh / Jammu Railway Station or Airport at Nominal Extra charges.</li>
	<li>Hotels / Houseboats Accommodation in Delhi / Chandigarh / Manali / Keylong / Jammu / Srinagar can be arranged on best deals.</li>
	<li>The above rates are applicable strictly for resident Indian citizens only.</li>
</ul>						
    	<p class="h dif xlarge b mb5px">Package Cost</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Minimum Paying Pax</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
				<td class="headHr p5px b">Super Dlx</td>
				<td class="headHr p5px b">Premium</td>
			</tr>
			<tr>
				<td class="data p5px">02 Pax with Innova/Xylo</td>
				<td class="data p5px">Rs. 62,933</td>
				<td class="data p5px">Rs. 65,390</td>
				<td class="data p5px">Rs. 73,980</td>
				<td class="data p5px">Rs.85,981</td>
			</tr>
			<tr>
				<td class="data p5px">04 Pax with Innova/Xylo</td>
				<td class="data p5px">Rs. 40,568</td>
				<td class="data p5px">Rs. 43,025</td>
				<td class="data p5px">Rs. 51,615</td>
				<td class="data p5px">Rs. 63,532</td>
			</tr>
			<tr>
				<td class="data p5px">06 Pax  with Innova/Xylo</td>
				<td class="data p5px">Rs. 33,113</td>
				<td class="data p5px">Rs. 35,570</td>
				<td class="data p5px">Rs. 44,160</td>
				<td class="data p5px">Rs. 56,077</td>
			</tr>
			<tr>
				<td class="data p5px">08 pax with Tempo Traveller</td>
				<td class="data p5px">Rs. 33,299</td>
				<td class="data p5px">Rs. 35,756</td>
				<td class="data p5px">Rs. 43,968</td>
				<td class="data p5px">Rs. 56,266</td>
			</tr>
			<tr>
				<td class="data p5px">10 pax with Tempo Traveller</td>
				<td class="data p5px">Rs. 30,280</td>
				<td class="data p5px">Rs. 32,737</td>
				<td class="data p5px">Rs. 41,327</td>
				<td class="data p5px">Rs. 53,244</td>
			</tr>
			<tr>
				<td class="data p5px">12 pax with Tempo Traveller</td>
				<td class="data p5px">Rs. 28,268</td>
				<td class="data p5px">Rs. 30,725</td>
				<td class="data p5px">Rs. 39,315</td>
				<td class="data p5px">Rs. 51,231</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Hotel Details</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Place</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
				<td class="headHr p5px b">Super Deluxe</td>
				<td class="headHr p5px b">Premium</td>
			</tr>
			<tr>
				<td class="data p5px">Srinagar</td>
				<td class="data p5px">Al Hamra / Similar</td>
				<td class="data p5px">xHotel Royal Batoo, Hotel Asian Park, Hotel Supreme Hill</td>
				<td class="data p5px">Hotel Pine Spring, Hotel Grand Mumtaz, Hotel New Mumtaz</td>
				<td class="data p5px">R k Sarovar portico</td>
			</tr>
			<tr>
				<td class="data p5px">Kargil</td>
				<td class="data p5px">Zojila Residency, Hotel Royal Gasho,</td>
				<td class="data p5px">Zojila Residency, Hotel Royal Gasho,</td>
				<td class="data p5px">The Caravan Serai, The Highland Mountain Resort</td>
				<td class="data p5px">The Caravan Serai, The Highland Mountain Resort</td>
			</tr>
			<tr>
				<td class="data p5px">Leh</td>
				<td class="data p5px">Sia la, Horpo,  Royal Ladakh, Kangla</td>
				<td class="data p5px">Ladakh Imperial, New Antelope, The palace, Hilltown, Rafica, Ladakh Continental, The ladakh,  The Himalaya</td>
				<td class="data p5px">Grand Himalaya, Spic n span, Shangrila</td>
				<td class="data p5px">Grand Dragon, The Zen</td>
			</tr>
			<tr>
				<td class="data p5px">Hundur (Nubra)</td>
				<td class="data p5px">Chunkas Camp, Summer Camp, Desert oasis</td>
				<td class="data p5px">Chunkas Camp, Summer Camp, Desert oasis</td>
				<td class="data p5px">Chunkas Camp, Summer Camp, Desert oasis</td>
				<td class="data p5px">Desert Himalaya ,Earth home</td>
			</tr>
			<tr>
				<td class="data p5px">Pangong</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
			</tr>
			<tr>
				<td class="data p5px">Tsomorriri</td>
				<td class="data p5px">Tsomriri camp and resort, Yak Camp, Lake View, Nomadic Camp</td>
				<td class="data p5px">Tsomriri camp and resort, Yak Camp, Lake View, Nomadic Camp</td>
				<td class="data p5px">Tsomriri camp and resort, Yak Camp, Lake View, Nomadic Camp</td>
				<td class="data p5px">Tsomriri camp and resort, Yak Camp, Lake View, Nomadic Camp</td>
			</tr>
			<tr>
				<td class="data p5px">Sarchu</td>
				<td class="data p5px">Adventure Camp</td>
				<td class="data p5px">Adventure Camp</td>
				<td class="data p5px">Adventure Camp</td>
				<td class="data p5px">Adventure Camp</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bluedolphintravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="(LHM/LL- 13) 09Nts / 10Days Tour - 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="96664"/>
						</form>
						</div>
						
						";i:1;s:72:"Book (LHM/LL- 13) 09Nts / 10Days Tour - 9 Nights / 10 Days Tour Packages";i:2;s:142:"book (lhm/ll- 13) 09nts / 10days tour - 9 nights / 10 days tour packages, lakes & rivers tour packages, manali, srinagar, kargil tour packages";i:3;s:179:"Blue Dolphin Travels offers (LHM/LL- 13) 09Nts / 10Days Tour - 9 Nights / 10 Days tour package, budget Lakes & Rivers tour packages for Manali, Srinagar, Kargil at exciting price.";i:4;s:1717:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali, Srinagar, Kargil"        
		                 },
		      "description": "Assistance on arrival at Leh
Traditional Welcome in the hotel
Accommodation on twin sharing basis as per the selected category of packages
BT: Bed Tea, B: Breakfast, D: Dinner
Kindly Note the vehicles provided are not on disposable basis and are strictly on point to point basis as per the Itinerary selected
Inner line Permit. 
All airport transfers & sightseeing tours by:
Budgeted: = NAC Tavera/Qualis, 
Deluxe: = NAC Innova / Scorpio / Xylo
Super Deluxe: = NAC Innova / Scorpio / Xylo 
Luxury: = 01 NAC Innova 
Wild life fee & Red Cross fee. 
The Ladakh Autonomous Hill Development Council fee (Ladakh entry fee)9 % GST Tax Extra 
Airfare to and from Leh or any other destination
Monument & Museum Entrance Fees to be paid directly.
Any kind of personal expenses, extra meals, starters & Drinks (Alcoholic, Mineral, Aerated etc)
Any kind of optional tours
Tips, Insurance, Laundry, Phone Calls, Guide Fee & Camera Fee
Services of vehicle on leisure days and after finishing the sightseeing tour
Adventure activity costs (Pony Ride, Camel Safari, Rafting, paragliding etc)
Medical & Travel insurance
Additional Costs due to Flight Cancellations, Road blocks, natural calamities and nature’s fury
Anything not mentioned under the category “PACKAGE INCLUSIONS”",
		      "name": "(LHM/LL- 13) 09Nts / 10Days Tour",
		      "telephone": "+91-9558888723"
		    }
		    </script>
			";i:5;N;}