a:6:{i:0;s:29902:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Chadar Trek Frozen River, Ladakh</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> Chadar Trek Frozen River, Ladakh</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> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Leh Ladakh, Shingra Koma, Tsomo Paldar, Tibb Cave</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="Chadar Trek Frozen River, Ladakh - 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="200874"/>
						</form>
						
												</p>
											</td>
										</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								The Start of the Journey<br />
<br />
The journey starts at the mountain town of Leh. The only way to reach Leh is by flight and it is surrounded by snow giving it a complete white look. One can catch a glimpse of the snow capped mountains from the flight as it descends toward Leh which is located at 11400 feet above sea level. The trek is over the Zanskar River which lies frozen during the winter. The most preferred time to cross the ice would be in February. During that time, the ice tends to be at its most stable state. The Frozen River Trek begins from the small village of Chilling from where the Zanskar River begins to freeze.<br />
<br />
Across the Ice<br />
The ice can be as dangerous at times as it can be safe during others. One needs to figure out the safe paths over the precarious sheet and must always be aware of the ice conditions below the feet. The trekkers can choose to camp in the caves along the banks like the locals or set up tents where the ice is the most stable. The setting is close to twenty degrees below freezing point and decreases further after sundown as well. Warm and layered clothes are recommended as is being on the move as much as possible. These help invariably in keeping the body warm and prevent cold sores and also keep the blood from freezing.<br />
<br />
Better Safe than Sorry<br />
It is always recommended to be aware of the ice conditions at all times. There are several factors to consider ensuring a safe journey. Most of these factors involve the conditions of the ice and the footing choices of the trekker. The precautions include:<br />
<br />
The trekker must be aware of the ice sheet conditions.<br />
There may be cracks in the ice which should be avoided.<br />
Finding places with a coating of snow is the best place to walk normally.<br />
Slippery ice can be found on several sections as well and should be walked on with utmost care.<br />
Cracks may suddenly appear under one’s feet and it is required to run to more solid footing immediately.<br />
The ice is not a trekker’s friend and one should always respect it and be aware of the conditions at all times especially while choosing the camping spot.<br />
Gear and Trekking Info<br />
Trekking gear should be brought from home as there are not many places available at Leh during the winter where supplies can be bought. Food that can be preserved and made quickly such as instant noodles is an excellent addition. One should always have enough before starting off as it is recommended to be moving for the better part of the day in order to keep warm as well as keeping the journey in momentum. Ice picks, trekking boots, several layers of extra warm clothing are a compulsion in such conditions. Tents are recommended but optional as one can easily camp in caves like the locals who journey across the river. However, being a non-local, that idea may not be advisable and carrying tents is always commendable.<br />
<br />
How to Reach Leh :<br />
The easiest way to travel to Leh 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.								</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> Reporting day at Leh
										</p>
										<p class="aj">You will be landing at the Leh airport which is one of the most picturesque airports that you would come across. Just before the touchdown time, you'll be greeted with the entire range of snow-capped peaks that will surely get you wonderstruck. It's important to keep your warmies handy as you'll fell the sudden drop in temperature as soon as you arrive at the Leh airport. A jacket, woolen gloves and a woolen cap is a necessity. After reaching the guesthouse you will be given enough time to relax and acclimatize to the conditions. Later in the evening, you can spend some time at the Leh market for last minute window shopping. It is very important that you get used to the cold temperature in Leh because the temperature will only tend to fall as you start walking on the frozen Zanskar. From the end of January to mid-February, the temperature can be anything between -10 to -15 degrees during the day. It is also important to keep your body hydrated by increasing the intake of fluids that will help to maintain your body temperature.</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> Acclimatization Day
										</p>
										<p class="aj">Keeping in mind the health problems that trekkers are facing (AMS), as per the new regulations applied, anyone doing the Chadar Trek should be atleast spending two days in Leh to get your body fully acclimatize to the weather conditions. It is irrevocable and it is important that it is strictly followed by every trekker. You can spend the day by visiting the places around the city. You can also join us while we conduct a small sight seeing session(included in the cost). It only for 3-4 hours, covering all the major spots of Leh. It is advisable that you avoid visiting places which are at a higher altitude. Crosscheck you essentials before going to bed.</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> Medical Test day
										</p>
										<p class="aj">Today is the big day. This day decides whether you continue further or not. Wake up early and to reach the Medical Camp as early as possible. Even though tests take less time, due to tourists rush it gets delayed. In the late afternoon we shall finish insurance formalities, if any. In case the tests declare you are not fit go for Chadar trek, you will not be allowed. For refund policies, please contact your Trek Coordinator.</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 to Shingra Koma then Trek to Tsomo Paldar
										</p>
										<p class="aj">On this day, you'll be headed to the first campsite which is Tsomo Paldar via Chilling & Shingra Koma. Shingra Koma is the most unique place of Chadar for it is placed at U bend of Zanskar. Forming a wonderful place with lots of views. Today, will be one of the most scenic drives which lets you witness some of the top spots in Ladakh. Gurudwara Pathar Sahib, Magnetic Hill and the confluence of the Zanskar and Indus are some of the places where you can take a pit stop for clicking pictures. After 3-4 hours drive along the Zanskar will get you to Shingra Koma. The car will drop you right where the road ends, this will be your starting point of walking on the Zanskar.<br />
<br />
The layer of Chadar may seem thin here, you can also see various rock formations. Walking with gumboots on will definitely be a challenge in the initial stage. Understanding the ice patterns will take time, slowly but steadily you will know which surface is fragile and which is trustworthy. There are multiple number of ice surfaces that you would come across while walking on the mighty Zanskar and as you start walking you will know more about it. Planting your foot will be important in most of the cases, you can check for the ice for its steadiness with your walking stick before stepping on it wholeheartedly. A small and light backpack will help as you will able to manage your body weight in an effective manner. After an hour and half of slipping, falling and trying to gather your balance you'll be reaching your first campsite at Tsomo Paldar. This will be your first experience of camping under sub-zero temperatures.</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> Tsomo Paldar to Tibb Cave
										</p>
										<p class="aj">hadar is one such trek where your not gaining altitude in quick successions. Slowly but gradually from Tsomo Paldar to Tibb Cave (6-7 hours), you will be gaining an altitude of 400ft. (Tsomo Paldar: 11,400 to Tibb Cave: 11,800) After spending a cold night in the tent at Tsomo Paldar get done with you breakfast that will re-energize your senses in the morning. The much needed hot cup of tea will be special in such frosty conditions. As you start heading to the next campsite which is Tibb Cave, this trek route has some of the most eye-catching frozen waterfalls that you'll see. Waterfalls that stand frozen in time. The source of some of these frozen waterfalls is still unknown and there are a lot of myths amongst the villagers. The mighty Zanskar will be flowing all along with you on the trail and the emerald green water will have a smooth soothing You will be served lunch midway to Tibb cave. After walking for a couple of hours you'll come across different rock patterns along the way which look art looks when the sun rays fall on them making their way from behind the clouds. You will be camping near the Tibb cave which is surrounded by dry sand.</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> Tibb Cave to Nerak
										</p>
										<p class="aj">As you move on to the most awaited campsite of the trek which is Nerak, the 13km long trail will take you to the most iconic landmark of the Chadar trek. i.e. The frozen waterfall. The frozen waterfall is a nature's masterpiece that attracts trekkers around the world. Hot lunch will be served on your way to Nerak. By far, Nerak will be the coldest of all the campsites on the trek where the temperature goes down to as low as -30 degrees during the night. It will be important that you wear proper clothing in layers to stay safe from the biting cold. If you manage to reach the waterfall on time, there are chances of paying a visit to the Nerak Village as well. You will be camping at a distance of 15-20 minutes from the waterfall.</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> Nerak – Tibb Cave
										</p>
										<p class="aj">You might have heard stories of how unpredictable the weather patterns can get here on the Chadar trek. There are instances where the formation of Chadar no longer exists on your way back from Nerak. In the same way, you will witness a new layer of Chadar formed at some. Even though it's the same route, you'll be amazed to see how different it appears while coming back. Chadar Trek is an experience of a lifetime that every trekking enthusiast should witness. And then, what if we told you that these eight days of your life are going to be some of the best days you've lived so far and that you'll cherish these moments till the very end.<br />
<br />
Today retrace your steps back to Tibb Cave. You get another last chance to cherish, relive and gather the memories. Wave goodbye to all the locals while you make your way back. Be careful and enjoy your last stay in tents.</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> Tibb Cave to Shingra Koma then Drive to Leh (70km)
										</p>
										<p class="aj">Again wake up early for a long walk back. It is not really retracing steps because you may observe a lot have changed. Chadar may have melted, layer of Chadar may have gotten thin, wonderful rocks are visible now. That's the beauty of nature and Chadar trek. Reach Shingra Koma and get ready to board on vehicles. Another bumpy ride and you will arrive in Leh.</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>Meals</li>
																						<li>Sightseeing</li>
																						<li>Transport</li>
																						<li>Private Guides</li>
																						<li>Pickup-Drop</li>
																				<li>1. Accommodation: (as per the itinerary).</li><li>
   • Guest house (centrally heated room)(attached washroom) in Leh on Day 1, Day 2, Day 3 & Day 8 (twin sharing basis, triple in very rare case).</li><li>
   • Camping during the trek (Day4 to Day 7).</li><li>
2. Meals (Veg + Egg):</li><li>
   • Day 4 breakfast to day 8 lunch.</li><li>
3. Trek equipments:</li><li>
   • Sleeping bag, Mattress, Utensils.</li><li>
   • Trekkers tent (twin sharing), Kitchen & Dinning tent, Toilet tent, Ropes.</li><li>
4. First aid:</li><li>
   • Medical kit.</li><li>
   • Stretcher.</li><li>
   • Oxygen cylinder.</li><li>
5. Support:</li><li>
   • 1 Mountaineering qualified & professional trek Leader.</li><li>
   • Guide (Number of guides depend on the group size).</li><li>
   • 1 High Altitude chef.</li><li>
   • Support staff.</li><li>
6. Transportation: (as per the itinerary)</li><li>
   • Leh to trekking point (Day 4).</li><li>
   • Trekking point to Leh (Day 8).</li><li>
7. Hot water</li><li>
   • Hot water in buckets on Day 1, Day 2, Day 3 .</li><li>
   • Running hot water in taps on Day 8 .</li><li>
8. Sightseeing included in the cost (Hall of Fame, Shey Monastery, Thiksey Monastery).</li><li>
9. Facility of keeping extra luggage at Leh when leaving for trek.</li><li>
10. Porters to carry the central luggage.</li><li>
11. Pickup and drop from airport.</li><li>
12. Services from Leh and return.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>. Food in Leh.</li><li>
2. Any kind of personal expenses.</li><li>
3. Mule or porter to carry personal luggage.</li><li>
4. Insurance, Wildlife/environmental charges, Altoa and entry fees.</li><li>
5. Anything not specifically mentioned under the head.</li><li>
6. Any kind of emergency evacuation charge, hospitalization fee or etc.</li><li>
7. Any additional cost due to the fianl decision incurred by the administrative</li><li>
Note :</li><li>
Normally TTH expect to carry your personal luggage on your own, if you don't want to carry your backpack so you can give it to porter, but you have to inform us in advance and have to pay Rs. 5000 for entire trip (subject to change)/- extra per bag.</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></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="Chadar Trek Frozen River, Ladakh - 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="200874"/>
						</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/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/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/mcleodganj-tour-packages.htm" title="Mcleodganj Tour Packages">Mcleodganj</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/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 spanlist dn"><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="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/leh-ladakh-with-silk-route.htm'">
															<div class="picBg ac vam lh0"><img src="https://static.tourtravelworld.com/images/tour-package-no-image.gif"  height="100"  width="100"    alt="Leh Ladakh with Silk Route" title="Leh Ladakh with Silk Route"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.travelwayindia.com/holiday-packages/leh-ladakh-with-silk-route.htm" title="Leh Ladakh with Silk Route"><h3>Leh Ladakh With Silk Route</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> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Leh Ladakh</p>
															<div class="mt10px small">
							<form name="pkg_200890" id="pkg_200890" 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/leh-ladakh-with-silk-route.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Leh Ladakh with Silk Route - 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="200890"/>
							</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:71:"Book Chadar Trek Frozen River, Ladakh - 7 Nights / 8 Days Tour Packages";i:2;s:164:"book chadar trek frozen river, ladakh - 7 nights / 8 days tour packages, hill station tour packages, leh ladakh, shingra koma, tsomo paldar, tibb cave tour packages";i:3;s:212:"Book Chadar Trek Frozen River, Ladakh - 7 Nights / 8 Days tour packages from Travel Way India - Get attractive 7 Nights / 8 Days Hill Station  tour packages for  Leh Ladakh, Shingra Koma, Tsomo Paldar, Tibb Cave.";i:4;s:3638:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh Ladakh, Shingra Koma, Tsomo Paldar, Tibb Cave"        
		                 },
		      "description": "The Start of the Journey

The journey starts at the mountain town of Leh. The only way to reach Leh is by flight and it is surrounded by snow giving it a complete white look. One can catch a glimpse of the snow capped mountains from the flight as it descends toward Leh which is located at 11400 feet above sea level. The trek is over the Zanskar River which lies frozen during the winter. The most preferred time to cross the ice would be in February. During that time, the ice tends to be at its most stable state. The Frozen River Trek begins from the small village of Chilling from where the Zanskar River begins to freeze.

Across the Ice
The ice can be as dangerous at times as it can be safe during others. One needs to figure out the safe paths over the precarious sheet and must always be aware of the ice conditions below the feet. The trekkers can choose to camp in the caves along the banks like the locals or set up tents where the ice is the most stable. The setting is close to twenty degrees below freezing point and decreases further after sundown as well. Warm and layered clothes are recommended as is being on the move as much as possible. These help invariably in keeping the body warm and prevent cold sores and also keep the blood from freezing.

Better Safe than Sorry
It is always recommended to be aware of the ice conditions at all times. There are several factors to consider ensuring a safe journey. Most of these factors involve the conditions of the ice and the footing choices of the trekker. The precautions include:

The trekker must be aware of the ice sheet conditions.
There may be cracks in the ice which should be avoided.
Finding places with a coating of snow is the best place to walk normally.
Slippery ice can be found on several sections as well and should be walked on with utmost care.
Cracks may suddenly appear under one’s feet and it is required to run to more solid footing immediately.
The ice is not a trekker’s friend and one should always respect it and be aware of the conditions at all times especially while choosing the camping spot.
Gear and Trekking Info
Trekking gear should be brought from home as there are not many places available at Leh during the winter where supplies can be bought. Food that can be preserved and made quickly such as instant noodles is an excellent addition. One should always have enough before starting off as it is recommended to be moving for the better part of the day in order to keep warm as well as keeping the journey in momentum. Ice picks, trekking boots, several layers of extra warm clothing are a compulsion in such conditions. Tents are recommended but optional as one can easily camp in caves like the locals who journey across the river. However, being a non-local, that idea may not be advisable and carrying tents is always commendable.

How to Reach Leh :
The easiest way to travel to Leh 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.",
		      "name": "Chadar Trek Frozen River, Ladakh",
		      "telephone": "+91-9027368321"
		    }
		    </script>
			";i:5;N;}