a:6:{i:0;s:18736:"				<div class="h1"><h1>Kailash Mansarovar Yatra By Helicopter Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sharmatravel.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Kailash Mansarovar Yatra By Helicopter 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">Tour Code </td>
						<td class="p5px pl0px vat">MY-KM04K</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						10 Nights / 11 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kathmandu, Nepalgunj</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 171000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sharmatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kailash Mansarovar Yatra By Helicopter 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="121815"/>
						</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_18/513007/196798.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/513007/196798.jpg"  width="150" height="150"    alt="Kailash Mansarovar Yatra By Helicopter Tour" title="Kailash Mansarovar Yatra By Helicopter Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Meals : Hygienic Pure veg. (Breakfast, Lunch and dinner)<br />
Accommodation : Hotel and Guest house <br />
Guide : throughout a yatra a Guide <br />
Medical : Dimox, First AID and oxygen pillow and with cylinder back up<br />
Max Altitude : 5600M Dolma Pass - 2nd Day Parikram <br />
Temperature : Morning / Night: - 5/6C and Day 15/16 C<br />
Mansarovar Parikram : 102 KM by Coach / Drive <br />
Kailash Parbat : 6714M, 52 KM [10KM drive and 42 Trek / Horse ride<br />
<br />
A Spiritual Yatra for a Better Life: - <br />
Ancient Aliens the Mount Kailash, Secrets & Entrance to the city of the Gods. Mt. Kailash is home of Lord Shiva. Ancient secrets of Mount Kailash remain embedded in the heart of the Himalayas and this mysterious place will continue to fascinate people for a very long time. There is no doubt this is a place of great spiritual significance. Mt. Kailash - 6714M & holy Mansarovar Lake are located in the Himalayas in Tibet, China. This yatra is really physically challenging due to high altitude Himalayan terrain so Shivam Group Holiday P. Ltd always concern an exclusive yatra make it comfortable for life time memories journey for all Yatris<br />
<br />
2 night hotel In Kathmandu twin / triple sharing with all veg meals<br />
1 night hotel in Nepalgunj twin / triple sharing with veg. meals<br />
1 night Hotel accommodation in Simikot triple / Sharing with veg meal <br />
6 night guesthouse with sharing basis in Tibet (China) <br />
In Tibet provide all pure veg. meals from our kitchen team with all logistics <br />
Tibet permit, Chinese Guide fee, China visa fee, all government tax, Nepali supporting staff team with logistic, all transportation arrival, departure, between Nepal and China<br />
Kathmandu to Nepalgunj to Kathmandu & Nepalgunj to Simikot to Nepalgunj by flight with all taxes <br />
Simikot to Hilsa to Simikot By Helicopter with Hulma permit <br />
Bag - pack bag and luggage bag<br />
Down Jacket returnable basis<br />
Diamox, Medicine and oxygen pillow with cylinder<br />
Gambo BagPersonal expenditure, Tips<br />
Horse/Yak/Porters<br />
Laundry, Monument fees<br />
Visa Penalties if groups will be separated<br />
Insurance and evacuation and if any delay due to visa, weather problem except mentioned that will extra from Guest01-0430-09<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
								</p>
								<p class="aj">Arrival at Tribhuwan International Airport Kathmandu welcomed by Marutiyatra.com representative at airport then transfer to hotel overnight.<br />
Hotel:  Shangrila, Malla, Shankhar</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> Kathmandu a couple of temple visit
								</p>
								<p class="aj">Breakfast at hotel then proceed to lord shiva temple Pashupatinath,Guyeshswori and Jalnarayan returned back to hotel have lunch then transport to domestic airport, flight to Nepalgunj<br />
<br />
Hotel: Siddhartha/Sneha or similar</p>					
									<p><b>Meals : </b> Breakfast, Lunch, 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> Fly To Simikot (Altitude 2960m 55 minutes Fly by schedule
								</p>
								<p class="aj">Early morning breakfast at Hotel and transfer to Nepalgunj airport, fly to Simikot check in hotel<br />
<br />
Accommodation: Sun Valley/Nepal Touch</p>					
									<p><b>Meals : </b> Lunch, Dinner, Breakfast</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> Simikot to Hilsa
								</p>
								<p class="aj">Simikot to Hilsa to Early morning breakfast at hotel transfer to helipad fly 20 min to Hilsa there take some more time to exit from Nepal & Check in to china its normal formalities finished that meet Tibetan guide get in the Chinese bus drive to Taklakot there is custom & immigration process clear the custom check in to hotel overnight. <br />
Hotel: Himalayan View or Similar</p>					
									<p><b>Meals : </b> Breakfast, Lunch, 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> Rest day
								</p>
								<p class="aj">Rest day (for body acclimatization)<br />
Accommodation: Guest House</p>					
									<p><b>Meals : </b> Rest day (for body acclimatization)</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> Drive to Mansarovar (altitude 4550m-90km)
								</p>
								<p class="aj">Breakfast at hotel and drive onward the Yatra this day is most important because this day yatries get the Darshan of Mt.kailash and having holy dip bath in the lake of Mansarovar and continue PARIKRAMA of holy lake Mansarovar enroute yatries can seen Gurumandala pass rakshyas taal (rawan sarovar) end of parikrama overnight at bank of lake<br />
Accommodation: guesthouse</p>					
									<p><b>Meals : </b> Breakfast, Lunch, tea, coffee, soup & 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> Trek to Dirapuk (altitude 4860, 13km trek)
								</p>
								<p class="aj">Early morning wake up and beginning Pooja, Hawan  then drive to Yamdwar .[Now start Kailash parikrama (kora/parikrama) it takes three days   42 km trek highest altitude 5600(Dolmahla)]<br />
The Pilgrimage who decided against going on the Kailash Parikrama or Return Back Darchen. <br />
<br />
Accommodation: Guest House</p>					
									<p><b>Meals : </b> Breakfast, Packed Lunch, Tea/ coffees, soup and 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> Trek to Zuthulpuk( altitude 4760m 22km trek approx 9hr
								</p>
								<p class="aj">Early morning wake up have breakfast at same time chance to see golden of  Mt. Kailash then continue trek to Zuthulpuk, passing of Dolma-la (Gauri Parbat) see Gaurikund overnight.<br />
<br />
Meals: Breakfast, Packed Lunch, Tea coffee with cookies , Soup,  Dinner<br />
<br />
Accommodation: Guest House</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> Trek to Darchen and Drive to Taklakot/Hilsa
								</p>
								<p class="aj">Early morning finish the breakfast and continue the complete kora of Mt. Kailash reach Zhophe  in this place already vehicle waiting the Yatries get in bus to Darchen and gather complete team of  Yatries and continue drive to Taklakot/ Hilsa.<br />
<br />
Accommodation: Guest House</p>					
									<p><b>Meals : </b> Breakfast, Lunch, Tea/ coffee with cookies and Soup, 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> Fly back Simikot - Nepalgunj
								</p>
								<p class="aj">Breakfast at guesthouse and transfer to helipad fly back Simikot by helicopter and if everything is good fly back Nepalgunj and evening fly back Kathmandu overnight on hotel.<br />
Hotel: Shangrila, Malla, Shankhar</p>					
									<p><b>Meals : </b> Breakfast, Lunch, Dinner</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Departure
									</p>
									<p class="aj">Morning breakfast at hotel distributes the certificate and transfer to Tribhuvan International Airport to connect your onward journey.</p>					
										<p><b>Meals : </b> Breakfast</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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>
															<li>Hotel</li>
																		<li>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Personal expenditure, Tips</li><li>
Horse/Yak/Porters</li><li>
Laundry, Monument fees</li><li>
Visa Penalties if groups will be separated</li><li>
Insurance and evacuation and if any delay due to visa, weather problem except mentioned that will extra from Guest</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Extra / Hidden expenditure - Horse and horse man || - TIPS || Personal nature expenditure</li>
	<li>Any Yatris come back during yatra from Group permit so visa cancelation fee pay at immigration and transport</li>
	<li>Foods - Pure veg. and fully hygienic, Jar water</li>
	<li>Accommodation - Kathmandu Twin sharing and Tibet multi sharing a room</li>
</ul>

<p><strong>Note:</strong>

<ul>
	<li>The weight limit maximum 15kg per person.</li>
	<li>Down Jackets will be provided on returnable basis at Kathmandu for the Yatra.</li>
</ul>

<p><strong>FIRST AID KIT - ALSO INCLUDED</strong>

<ul>
	<li>First aid kit (typical backpacking kit for minor injuries/ our guide carry) - Diamox/Aspirin/pain killers||Lip guard, Vaseline ||Plasters, TCP, Vicks for sore throats</li>
</ul>

<p><strong>Communication Facilites:</strong>

<ul>
	<li>Local Mobile [Chinese, will be charged as per the use]. Net work will be there Indian roaming sim also work</li>
</ul>

<p><strong>Booking and Payment Policy:</strong>

<ul>
	<li>Submit your Passport scan copy/ passport (6 Months validity) with INR. 25000/ - before 45 days on date of departure</li>
	<li>Balance payment before 30 days on departure from India</li>
</ul>

<p><strong>Refund policy</strong>

<ul>
	<li>One month before yatra start date Full refund</li>
	<li>Within one 30 day RS. 15000/ - will deducted</li>
	<li>Within 15 day INR. 35000/ - will deducted</li>
	<li>Within 7 day INR. 95000/ - will deducted</li>
	<li>No refund before 5 days cancellation</li>
	<li>Recommendation for yatra</li>
	<li>Documents</li>
	<li>Passport with copies, some Photographs, Identity card || Insurance policy copy</li>
	<li>Fitness</li>
	<li>Kindly consult your doctor and Age limit 66 years.</li>
	<li>As Mount Kailash and Lake Manasarovar is situated at high altitudes please start exercises like walking, jogging, yoga and other breathing exercises in order to have a successful yatra.</li>
	<li>Insurance</li>
	<li>Kindly get yourself a medical insurance for this yatra. Please make sure you cover yourself for emergency evacuation (helicopter) in the insurance.</li>
	<li>Common items</li>
	<li>Water bottle Thermos flask for hot water (1/2 liter), Torch light /batteries || Dusk masks/face masks, wet Tissue</li>
	<li>Clothing</li>
	<li>Enough clothes but do not make over load.</li>
	<li>Wool socks (around 4 pairs), thick tights, wool monkey cap, scarves, warm light gloves,</li>
	<li>Wool/thermal long underwear, Raincoat or Umbrella</li>
	<li>Footwear</li>
	<li>Sports comfortable shoes and A pair of light Sleepers</li>
	<li>Toiletries</li>
	<li>Toothbrush, toilet rolls, hand towel, Facial tissues, wet tissue)</li>
	<li>Personal and General items for your yatra make comfortable</li>
	<li>Any regular medicines that you take ||dark Sunglasses, Sun cream &amp; Cold cream</li>
	<li>Your favorite food which will keep you going including Nuts, biscuits, powder juice</li>
	<li>Kapoor/Vicks/ Binoculars/Camera /extra batteries</li>
</ul>

<p><strong>Risk &amp; Liability</strong>

<ul>
	<li>Marutiyatra.com will do it best to make the tour with safe and smooth. As all the tour programs are conducted strictly under the rules and regulations of Tibet Tourism Info: This is yatra not a tour so yatri should be need physical fit, Yatri manage their horse &amp; Porter money themselves. Try to eat food properly, if some problem update to leader without hesitates. Tibet part is mountain desert so drink enough water and juices. Support and cooperate each other as a team with positive it makes very comfortable, memorable and enjoy yatra Lord Shiva will fellow all best with success every one everywhere. sickness and accidents. Any extra cost arising due to the above circumstances shall be borne by the clients.</li>
	<li>Bureau (TTB) And China India pilgrimage service center (CIPSC), Marutiyatra.com will not be accountable for any changes due to change of official rules and laws of Tibet. Moreover Marutiyatra.com will also not be liable for any changes in the itinerary due to unavoidable circumstances such as landslide, road blockage, flood, snow, and political unrest, cancellation of flight, sickness and accidents. Any extra cost arising due to the above circumstances shall be borne by the clients.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sharmatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kailash Mansarovar Yatra By Helicopter 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="121815"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Kailash Mansarovar Yatra By Helicopter Tour - 111 Days Tour Packages";i:2;s:147:"book kailash mansarovar yatra by helicopter tour - 111 days tour packages, religious & pilgrimage tour packages, kathmandu, nepalgunj tour packages";i:3;s:183:"Book Kailash Mansarovar Yatra By Helicopter Tour - 111 Days tour packages from Sharma Travel - Get attractive 111 Days Religious & Pilgrimage  tour packages for  Kathmandu, Nepalgunj.";i:4;s:2598:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Nepalgunj"        
		                 },
		      "description": "Meals : Hygienic Pure veg. (Breakfast, Lunch and dinner)
Accommodation : Hotel and Guest house 
Guide : throughout a yatra a Guide 
Medical : Dimox, First AID and oxygen pillow and with cylinder back up
Max Altitude : 5600M Dolma Pass - 2nd Day Parikram 
Temperature : Morning / Night: - 5/6C and Day 15/16 C
Mansarovar Parikram : 102 KM by Coach / Drive 
Kailash Parbat : 6714M, 52 KM [10KM drive and 42 Trek / Horse ride

A Spiritual Yatra for a Better Life: - 
Ancient Aliens the Mount Kailash, Secrets & Entrance to the city of the Gods. Mt. Kailash is home of Lord Shiva. Ancient secrets of Mount Kailash remain embedded in the heart of the Himalayas and this mysterious place will continue to fascinate people for a very long time. There is no doubt this is a place of great spiritual significance. Mt. Kailash - 6714M & holy Mansarovar Lake are located in the Himalayas in Tibet, China. This yatra is really physically challenging due to high altitude Himalayan terrain so Shivam Group Holiday P. Ltd always concern an exclusive yatra make it comfortable for life time memories journey for all Yatris

2 night hotel In Kathmandu twin / triple sharing with all veg meals
1 night hotel in Nepalgunj twin / triple sharing with veg. meals
1 night Hotel accommodation in Simikot triple / Sharing with veg meal 
6 night guesthouse with sharing basis in Tibet (China) 
In Tibet provide all pure veg. meals from our kitchen team with all logistics 
Tibet permit, Chinese Guide fee, China visa fee, all government tax, Nepali supporting staff team with logistic, all transportation arrival, departure, between Nepal and China
Kathmandu to Nepalgunj to Kathmandu & Nepalgunj to Simikot to Nepalgunj by flight with all taxes 
Simikot to Hilsa to Simikot By Helicopter with Hulma permit 
Bag - pack bag and luggage bag
Down Jacket returnable basis
Diamox, Medicine and oxygen pillow with cylinder
Gambo BagPersonal expenditure, Tips
Horse/Yak/Porters
Laundry, Monument fees
Visa Penalties if groups will be separated
Insurance and evacuation and if any delay due to visa, weather problem except mentioned that will extra from Guest01-0430-09",
		      "name": "Kailash Mansarovar Yatra By Helicopter Tour",
		      "telephone": "+91-9643567755"
		    }
		    </script>
			";i:5;N;}