a:6:{i:0;s:73131:"				<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-->				
									<div class="h1"><h1>The Seven Sisters Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.sribalajitourstravels.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.sribalajitourstravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>The Seven Sisters Tour</p> 
										<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98483.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98483.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98483.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98493.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98493.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98493.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98492.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98492.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98492.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98491.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98491.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98491.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98490.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98490.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98490.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98489.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98489.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98489.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98488.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98488.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98488.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98487.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98487.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98487.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98486.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98486.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98486.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98485.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98485.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98485.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98484.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98484.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98484.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98494.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98494.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98494.jpg"  alt="The Seven Sisters Tour" title="The Seven Sisters Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
							
							<ul class="lsn" id="bxslider-pager"><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98483.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98493.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98492.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98491.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98490.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98489.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98488.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98487.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98486.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98485.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98484.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_13/385927/98494.jpg"></a></li></ul>					
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">The Seven Sisters Tour</p>
					
											<p class="mb5px"><b>Tour Code :</b> SS002922</p>
												<p class="mb5px"><b>Duration :</b> 
						23 Nights / 24 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Guwahati, Shillong, Agartala, Tezpur, Silchar, Kameng, Dirang, Bhalukapong, Aizwal, West Kameng</p>
												<p class="mb5px"><b>Attractions :</b> Tripura Sundari Temple, Brahmaputra River, Elephant Falls, Shillong Peak, Ujjayanta Palace, Kunjaban Palace</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sribalajitourstravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Seven Sisters Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="50334"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Porterage(Coolie charges), laundry, wines & alcoholic beverages, telephone charges, all items of personal nature and also food and drinks not forming the part of the menus.<br />
Cost of travel Insurance.<br />
Guide & Entrance fees during sightseeing.<br />
Cost of Airfare or Railway fare.<br />
Extra cost incurred due to illness, accident, hospitalization or any Individual unforeseen cost incurring incidence.<br />
Any extra expenses incurred for change of route due to any unforeseen circumstances, forced majuire instances, natural calamities, political disturbances, strikes etc.</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Arrive At Guwahati										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Guwahati: Guwahati is Situated on the Southern bank of the mighty River Brahmaputra in Kamrup district of Assam.  Previously it was known as Pragjyotishpur (The City of the eastern Light) Guwahati is the fast growing premier city and it is also the gateway to the North Eastern states of India.This city subsequently got the name Guwahati (Guwa-means beetlenut and Hat - means market in Assamese)<br />
<br />
Afternoon city tour of Guwahati visiting:<br />
Kamakhya Temple: The origin of Kamakhya Temple is pre Aryan situated atop the Nilachal Hill. The formost shrine of Assam, The Kamakhya is an ancient seat of Tantric and shakti Cults of Hinduism. The original temple was destroyed by the invading Muslims in their crusade against Hindu temples and idols in the early part of 16th century. Ultimately it was restored from ruins by King Naranarayan of the Koch dynasty and rebuilt in its present forming 1665 AD.<br />
<br />
Shankardev Kalakshetra: a place where Assamese history and culture is depicted in a sprawling open enclosure. It has a beautiful museum where they preserved the masks (these masks are made in Majuli island), the traditional dresses and jewellery of the entire North East India. A Namghar (Assamese prayer Hall) and an open air theatre has been constructed to perform the plays and other cultural activities during festivals.<br />
<br />
Guwahati War Cemetery: Built and maintained by the Commonwealth War Graves Commission. The cemetery was started during the war when several military hospitals were posted in the area and was originally for burials from these hospitals. There are now 517 causalities buried in this cemetery. <br />
<br />
Overnight at hotel.															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Guwahati / Shillong										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart for Shillong, the Scotland of East.<br />
<br />
En route visit<br />
<br />
Barapani (Umiam Lake): As per the legends, two heavenly sisters decided to make their way to Meghalaya. However, one of them had reached the destination and the other could not due to some reason. So the former could not traced out her sister and started crying with her broken heart. She cried so much that and a lake was formed with her tears. Locally known as Umiam Lake, Barapani means vast waters.<br />
Today it becomes a hub for the water sports activities such as speed boats, sailboats and water scooters. Adjoining to the lake, the Nehru Park offers an aviary and a collection of orchids and butterflies.<br />
<br />
Arrive Shillong and check in at hotel.<br />
<br />
Shillong: The Capital of Meghalaya, Shillong is one of the major tourist destinations in North East India. The British loved this place so much that they had established its Capital for Eastern Bengal and Assam For its climate and unique topographical features the British referred Shillong as the "Scottland Of The East".  <br />
<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Shillong - Cherrapunjee - Shillong										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast full day excursion to Cherrapunjee.<br />
Cherrapunjee is a small hamlet, situated at an altitude of about 4823 feet (1484 m). Locally known as ‘SOHRA’. Cherrapunjee is located in the southern most point of Khasi hill sharing the border of Sylhet district of Bangladesh. Cherrapunji offers a panoramic view of the hilly terrains, deep gorges and valleys with its spectacular waterfalls. It was once having the record of being the wettest place on earth, with an average rainfall of about 1150ms. However, this record has been overtaken by a nearby place Mawsynram<br />
<br />
In Cherrapunjee visit:<br />
<br />
Nohkalikai falls: This waterfall located 4 kms away from Cherrapunjee and is possibly between 1500 and 2000 feet tall. Known to be the fourth longest fall in the world it carries a pathetic legend behind its name. A woman named Ka Likai had a illegitimate child. After marriage the husband became jealous of her love for her daughter. One day Ka Likai was out for work and her husband killed the daughter, cooked her flesh into a meal. When the woman enquired about her daughter, her husband showed the sign of ignorance. Before she went to look for her daughter, she thought of eating something and had the meal that her husband prepared for her. After having the meal she found both the wrist of her daughter in the betel-nut basket. Then she realized what had happened, killed her husband with a dagger and threw herself off this cliff  of this falls.  This is how the falls got its name which means "Fall of Ka Likai."<br />
<br />
Mawsmai Cave: This 250m long cave is the major attraction for the tourists in Cherrapunjee. This cave is located 6 kms away from Cherrapunjee near to Mawsmai village. This natural limestone cave is wide enough for a person to walk comfortably, and one can see the myriads of stalagmites and stalactites all over the caves which are growing gradually. The caves are dark inside and electric torches are installed for the convenient of the tourists.<br />
<br />
Thangkharang Park:  Thangkharang Park is situated 12 km from Cherrapunjee. The park is the house of various orchids and birds. One can see the 180 degree view of the plains of Bangladesh on a clear day.<br />
<br />
Later return to Shillong.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Shillong										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast full day city tour of Shillong visiting:<br />
Shillong Peak: It is the highest point of Shillong, located in the upper Shillong an an altitude of 1961 meters (6,433 feet). The name Shillong originated from "Leishyllong" meaning god who is believed to live on the Shillong peak, overlooking the city. It is located 5 kilometers away from Shillong and on a clear day one can enjoy the beautiful view of the entire city.<br />
<br />
Elephant Falls: Located in the Upper Shillong 10 kms away from the Shillong town it is  one of the majestic waterfalls in Meghalaya. The water of this three steps falls comes down in flows from different levels over the fern-covered rocks and falls into the canyon down below. In the morning it forms a wonderful sight when the sun rays fall on the cascades of water creating the rainbow colors. The best time to visit the waterfalls is during the monsoon when it offers a breath-taking scenery. The forests covered with ferns and thick bamboo grooves are also worth visited for the nature lovers to find the presence of various species of butterflies, birds and orchids.<br />
<br />
Wards Lake: Wards Lake is located in the heart of the Shillong City adjoining to the Governor’s Residence. Shaped like a horseshoe, it is one of the prominent hang-out spot in Shillong. This century old lake was built by an engineer named Mr. Pollock. Hence it is also known to be as "Polok's Lake". One can opt for boating and pleasant walks on the cobbled sand stone pathways covered with varieties of flowers. The lake also has an arched bridge from where one can feed the fish.<br />
<br />
Cathedral of Mary Help of Christian:  Situated in At Laitumkhrah, it is the largest Cathedral in Meghalaya attracts thousands of devotees. The colorful glasses of the skylight window along with the paintings of the Jesus spreading the messages of God are influenced by the European art and architecture.<br />
Shillong Golf Course: Shillong Golf Course is termed as the "Glen-eagle of the East" at the United States Golf Association Museum. The Golf Course is situated in a valley covered with thick groves of pine and rhododendron trees at an altitude of 5200 ft. Previously it was a nine hole course and later converted into a eighteen  hole course in 1924 by Captain Jackson and C. K. Rhodes. It is the third oldest Golf Course in India.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Shillong - Tezpur										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart for Tezpur.<br />
Tezpur: Modern day Tezpur, the headquarter of Sonitpur district of Assam is said to be erstwhile Sonitpur, the Kingdom of legendary King Banasura. According to the legend when Lord Krishna's army and Banasura's army fought for the rescue of Aniruddha (grandson of Lord Krishna) who married Banasura’s daughter ‘Usha’ against the will of her father there was so much bloodshed that the whole place was stained in red. This prompted to the name of the place becoming Tezpur (means the City of Blood). Modern Tezpur was founded by the British colonial administration in 1835 as the headquarters of Darrang<br />
<br />
Arrive Tezpur and check in at hotel.<br />
Afternoon visit:<br />
<br />
Agnigarh: According to the legend the site of the fortress was built by Banasura to keep his daughter Usha in isolation. The name ‘Agnigarh’ has been derived from two Sanskrit words 'Agni’ (meaning fire) and 'garh' (meaning fortress or wall). It is a hill on the banks of the Brahmaputra river and one of the big tourist attractions in Tezpur. The view of river Brahmaputra the Kolia Bhomora Setu bridge(named after the Ahom general Kolia Bhomora) is really eye catching.<br />
<br />
Mahabhairav Temple: This ancient Shiva Temple located in the heart of Tezpur town is believed to have been established by king Banasura in the pre-historical times. The temple was originally built of stone but renovated and built with concrete. During Shivaratri thousands of devotees around the country visit the temple and offer their prayer to Lord Shiva.<br />
<br />
Rest of the time free at leisure<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Tezpur - Bomdila										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after an early breakfast departs for Bomdila by the same vehicle.<br />
<br />
En route visit <br />
 <br />
Bhalukpong: Situated on the Assam-Arunachal border, 250 kms from <br />
Guwahati, Bhalukpong is another picturesque spot for angling and leisurely picnics.<br />
 <br />
Tipi Orchid Sanctuary and Research Center: An Orchidarium at Tipi (5 kms from Bhalukpong) on the way to Bomdila is the Botanical paradise. About 300 species of orchids can be seen in the flora – glass house. Some of them are rare and endangered species. By the side of the glass house there is an orchid museum too.<br />
 <br />
Arrive Bomdila and check in at hotel.<br />
 <br />
Bomdila: On the way to Tawang , situated at height of 8500 ft (distance from Tezpur 180 kms), Bomdila is a picturesque town in the foothills of Himalayas and the headquarter of West Kameng District the land of the Monpa, Sherdukpen, Aka (Hrusso), Miji and Bogun (Khawas) tribes. One can see the brilliant landscape and snow-clad Gorichen ranges of the Himalaya on a clear day. With its apple orchards, Buddhist gomphas and a magnificent view of the Kameng Valley Bomdila can be named as a mini paradise. Bomdila is also an ideal place for nature lovers with several trekking and hiking trails are now opened for the adventure seeker. <br />
Places of interest:<br />
 <br />
Later Visit<br />
<br />
Bomdila Monastery: The monastery has been built under the guidance of Dalai Lama. It is a residence of more than 200 Buddhist monks. From the monastery one can have the breathtaking view of the entire Bomdila. The time of pray is in dawn and dusk, attending which, one can have the absolute peace of mind.<br />
<br />
Also visit craft center, where very fine wooden carpets of colourful designs and Masks are produced.<br />
 <br />
Bomdila also offers a Bird's eye view of Kangto and Gorichen peaks (highest peaks in the state) amidst the Himalayan landscape and snow clad ranges.<br />
 <br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 7											
											:</b> Bomdila - Tawang										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart by car for Tawang.<br />
En route visit<br />
<br />
Jaswant Garh: The war memorial is located 14 kms from Sella Pass on the way to Tawang. The memorial pay homage to Jaswant Singh Rawat, Mahavir Chakra Awardee posthumous (the second highest award from the Indian Army). In the famous battle of Nuranang against Chinese in November 1962, Rawat and two other soldiers from 4th Batallion Garhwal Rifles were instrumental in killing 300 Chinese soldiers in 72 hours.<br />
Sella Pass: The entry point into the Tawang Valley is Sela pass at  an elevation of 13700 ft above the sea level.. Legend says that a monpa woman supported sepoy Jashwant Singh during his battle with the Chinese. She brought sepoy Jashwant supplies and used to heal his wounds. When Jashwant got martyrdom she killed herself as an act of loyalty. <br />
The glimpse of Paradise Lake in the Sella Pass makes your visit worth. Most of the time the lake is covered with thick blanket of snow.<br />
 <br />
Arrive Tawang and check in at hotel.<br />
Evening free at leisure.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 8											
											:</b> Tawang										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast explore Tawang, visiting<br />
Tawang Monastery (Vihar): Tawang Monastery about 400 years old, situated at an altitude of approximately 10,000 ft. is the second largest Buddhist monastery in India. It also holds the distinction of being the birthplace of the 6th Dalai Lama. The monastery is the house of more than 700 monks.  The monastery was founded by Merag Lama Lodre Gyamtso, in 1681 in accordance to the wishes of the 5th Dalai Lama, Nagwang Lobsang Gyatso.  As per the legend, the site of the Monastery was chosen by the horse of Merag Lama. Merag Lama, who had been unable to decide a site to establish the monastery. One day he was praying in cave, seeking a divine guidance. When he came out after the prayers, he found his horse was missing. On search, the horse was located standing quietly on a hilltop. Considering that as the sign of divine blessing he decided to construct the monastery at the very spot. The monastery is also called Galden Namgey Lhatse meaning celestial paradise. There is a magnificent 8 meter high statue of Lord Buddha. The ancient library inside the courtyard has an excellent collection of  thangkas, painted with the blood from the nose of 5th Dalai Lamaand valuable Buddhist manuscripts mainly Kanjur and Tanjur numbering 850 bundles.<br />
<br />
Urqelling Monastery: It is the birthplace of the 6th Dalai Lama who is the only Indian to have risen to such a high position in Gelupka Sect of Buddhism so far. Inside the monastery there are several Stupas (Vihar) and people from all walks of life visit this place during Buddhist new year to get the blessing for the coming year. <br />
The Craft Center: The craft center in Tawang sells beautiful masks, hand woven carpets, jewellery in silver, coral and amber, ‘chubas’ the local dressand delightful affordable mementos. <br />
<br />
Tawang War Memorial: The memorial is dedicated to the martyrs of the 1962 Sino-Indian war. The memorial is 40-foot-high and like a stupa in design. It is locally called ‘Namgyal Chortan’. The  names of 2420 martyrs imprinted in gold on 32 black granite plagues.<br />
<br />
Sangestser Lake: Popularly known as Madhuri Lake is located 35 kms away from Tawang near the China Border. The drive to Sangestser Lake is full of thrill and one can still see the war bankers that had been used during the Chinses aggression in 1962 and the beautiful PTSO lake<br />
<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 9											
											:</b> Tawang - Dirang										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart for Dirang.<br />
En route stop at the Nuranang falls.<br />
Arrive Dirang and check in at the hotel.<br />
<br />
Dirang: Dirang 40 kms from Bomdila is situated at an altitude of 1497 meters. It is an ideal hill resort in West Kameng district with beautiful Apple Nursery, Kiwi Farm, Yak Research Centre, Buddhist Gompa, Hot Water Spring and ancient Dirang Jong (Fort). It is the base camp for trekking to Gorichen peak and other bird watching trails<br />
<br />
Afternoon visit the natural hot spring, Apple gardens and the Yak Breeding farms.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 10											
											:</b> Dirang - Bhalukapong										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast return to Bhalukpong.<br />
Arrive and check in at the tourist lodge.<br />
<br />
Rest of the time free to explore the nature by your own.<br />
Overnight at tourist lodge.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 11											
											:</b> Bhalukapong - Kaziranga National Park										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart for Kaziranga National Park.<br />
<br />
Kaziranga National Park: Kaziranga National Park has become synonymous with successful conservations of Great One Horn Rhinoceros (from the Greek word, "rhino" means nose and "ceros" means horn) / Unicornis (from the Latin word, "uni" means one and "cornis" also means horn) and also a home of may other threatened species including Indian Elephant (Elephant Maximus), Tiger(Panthera tigris), Hoolock Gibbon (Bunipithecus hoolock), Ganges dolphin (Platanista gangetica),Sambar (Cervus unicolor), Barasingha or Swamp Deer (duvauceli), Hog Deer, Indian Muntjac (Muntiacus muntjak), Water Buffalo (Bubalus bubalis) and Gaur (Bos frontalis)etc.<br />
<br />
There are also over 500 species of birds have been recorder in the park including 25 specis of globally threatened category. Over and above there are 21 rare and endangered species. In winter one can observe a large breeding population of Spot Bill Pelicans about one thousand breeding nests are found in a place which has been named as Pelican Colony in the Eastern Range. <br />
 <br />
Among the reptiles  species like Water Monitor Lizard (Varanus salvator), Indian python (Python molurus), Cobra (Naja naja) and  the King Cobra are found.<br />
 <br />
Arrive Kaziranga and check in at the Jungle Resort.<br />
Overnight at resort			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 12											
											:</b> Kaziranga National Park										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Early morning enjoy the elephant safari in the central (Kohora) range of Kaziranga. Later return to the resort for breakfast.<br />
<br />
Afternoon enjoy the ethnic cuisine in the NATUNDENGA Karbi village adjoining Kaziranga National Park (Optional)<br />
<br />
Late afternoon enjoy the exclusive Jeep safari in the western (Bagori) range of Kaziranga. <br />
 <br />
Overnight at the resort.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 13											
											:</b> Kaziranga - Dimapur - Kohima										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart for Kohima. En route visit the hot spring in Garampani.<br />
Kohima: Kohima is derived from the word "Kew Hi Ma" which means the men of the land where the flower Kew Hi grows. Situated at an altitude of 1444 m above sea level, Kohima is the Capital of Nagaland. Like other Naga settlement Kohima shares the same feature standing on top of the surrounding mountains. In true sense, fusion of different culture with a blend of modernisms turns Kohima to a fast growing city.<br />
<br />
Arrive Kohima and check in at hotel.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 14											
											:</b> Kohima										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast visit <br />
The Kohima War Cemetary:<br />
  <br />
"When You Go Home, Tell Them Of Us And Say,<br />
For Your Tomorrow, We Gave Our Today"<br />
<br />
Constructed in the memory of the officers and soldiers who made supreme sacrifices during World War II, the war cemetery attracts hundreds of visitors every year including the relatives of those martyrs. Maintained by the Commonwealth War Graves Commission, the cemetery witnessed more than 2000 graves, on each grave there are beautiful epitaphs carved in bronze. <br />
<br />
Kohima village: Popularly known as Bara Basti (Big Village) the Kohima village is one of the largest village in Asia. Inhabited mainly by the Angami tribes it is divided into 'khels' or localities. A large traditional wooden gate welcomes you to the village which is elaborately carved with warriors and weapons and the skull of the mithun, a symbol of prosperity.<br />
Khonoma Green Village: Located 21 kms away from Kohima town the Khonoma village is the first "green village" of Nagaland. The village is well known for the legendary leader Angami Zapu Phizo who was the founder of the Naga movement. It is in this place where the Naga warriors made their last endeavor against the British aggression in 1879.'Khonoma Nature Conservation and Tragopan Sanctuary' (KNCTS) was initiated to create the environmental awareness among the inhabitants and reserved about 70 sq km of its village forest. The village is also famous for the fallow management of its alder trees which balances nature in the surrounding areas.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 15											
											:</b> Kohima - Imphal										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast depart by car for Imphal. <br />
Arrive and check in at hotel. <br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 16											
											:</b> Imphal										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast visit:<br />
<br />
Shree Shree Govindajee Temple: This symbolic temple in Imphal adjoining the palace of the former rulers of Manipur, is a historic centre for Vaishnavite culture. It is a simple and beautiful structure with gold domes, a paved court and a large, raised congregation hall. The main deity of the Temple is The presiding deity in the centre is flanked by idols of Radha Govinda, Balaram and Krishna on one side and Jagannath, Balabhadra and Subhadra on the other.<br />
<br />
Khwairamband Bazaar: One of the main attractions of Imphal is the Khwairamband Bazaar. What makes this market different is that it is run by women. Split into two sections on either side of the road, it has tribal women clad in colorful, traditional attire, selling everything from hand-woven shawls, skirts, vessels, mugs and mats to fish, lotus, oranges and orange-flavored honey. And if you wander in the quaint by lanes around the market, you will get a glimpse of Manipur's customs and traditions.<br />
<br />
Khonghampat Orchidarium: There is the Khonghampat Orchidarium that has more than a hundred rare varieties of orchids. The best time to visit the orchidarium is in the months of April and May when the orchids are in full bloom.<br />
<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 17											
											:</b> IMPHAL										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast full day excursion around Imphal visiting:<br />
<br />
Loktak Lake and Sendra Island: Located 48 kms from Imphal this beautiful lake is resemble like a miniature inland sea. The government had built a Tourist Bungalow for the comfort of the tourists. From the nearby Sendra island, visitors can get a bird's eye view of this huge and beautiful stretch of water and the life on it, the fisherman and their families who live in neat huts on its shores and anticipating their watery environment by casting their nets on it, harvesting it for the water chestnut known as Heikak, and even building their houses on the islands of floating weed that dart around the lake.<br />
<br />
Keibul Lamjao National Park: 53 kms. from Imphal and on the sharing the border with Loktak Lake, Keibul Lamjao National Park is the last natural habitat of the endangered marsh-dwelling brow-antlered deer of Manipur called "Sangai". It is the only floating national park in the world which is composed of large masses of floating weed (called "Phumdi" in local dialect). These phumdi unseemingly can suport a lot of weight.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 18											
											:</b> Imphal - Aizwal (By Flight)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after an early breakfast transfer to airport for the flight towards Aizawl<br />
<br />
Meeting upon arrival and transfer to hotel.<br />
<br />
Aizawl: Aizawl, the state Capital of Mizoram is located at an altitude of 4000 feet above sea level. Surrounded on the east by the deep green valley of river Tlawng and protected by beautiful high hills of Durtlang on the north, it is an ideal hill station for those looking for some fresh air and solitude.<br />
<br />
Evening free to explore the city by your own.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 19											
											:</b> Aizwal										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast full day city tour visiting:<br />
<br />
Bara Bazar: It is the most important shopping hub with stalls selling garments, and other commodities. Here the people can be seen in their traditional costumes selling products from farms and homesteads including river crabs with little wicker baskets.<br />
 <br />
Luangmual Handicarfts Centre: 7 Kms away from Aizaul it takes half an hour to reach by car. The 'Khumbeu' ceremonial bamboo hat is made here using waterproof 'hnahthial' leaves.<br />
 <br />
Mizoram State Museum: This museum is situated at Mc Donald Hill in the town center. it is having an interesting collection of historical relics, ancient costumes and traditional implements. <br />
(Open Monday - Friday from 9:00 A.M to 5 PM. Saturday 9 AM to 1 PM)<br />
<br />
Durtlang Hills: These beautiful, craggy hills offer the breathtaking view of Aizawl.<br />
 <br />
Mini Zoo: Home to species of animals and birds found only in the hills of Mizoram<br />
<br />
Berawtlang Tourist Complex: This is a recreational center situated 7 kms away from Aizawl City. It offers the facilities of Restaurant as well as Tourist Cottages.<br />
<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 20											
											:</b> Aizwal - Silchar										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning afte4r breakfast depart for Silchar for stop over.<br />
Arrive and check in at hotel.<br />
Next day we will prepare for our final destination - Tripura. <br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 21											
											:</b> Silchar - Agartala										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after an early breakfast depart for Agartala.<br />
Agartala: Agartala is the Capital of Tripura and shares its boundary with Bangladesh.Once a good hunting ground, it became the Capital of the state during the time of Maharaja Krishna Kishor Manikya (1830-50). It remains since then the seat of the state headquarter.<br />
<br />
Arrive and check in at hotel.<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 22											
											:</b> Agartala										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast visit:<br />
<br />
Ujjayanta Palace: Situated in the heart of the town and covering an area of about half a square mile this place is a two storied mension having a mixed architecture with three domes, the central one being 86 feet high. The construction of this beautiful, well-balanced royal palace was undertaken in 1899 and completed in 1901 at a cost of a little over Rs 10 Lakh or 1 million. The two large tanks on two sides with the approach road in between them and well-laid out gardens around the palace with water courses and fountains patterned on Mughal gardens have added beauty to it. The palace has been acquired by the state Govt. and now house of the Lagislative Assembly, besides few Govt. offices.<br />
<br />
Kunjaban Palace: Within a mile of the Ujjayanta Palace and to the north stands a picturesque hillock known as Kunjaban. The Palace was built by Maharaja Birendra Kishore Manikya (1909-23) who was a good artist and he said to have prepared himself the plan of the Palace and the adjoining gardens. The palace was considered as an ideal spot for relaxation and pleasure strolls in those days. The palace has been taken over by the state Govt. and now used as the official residence of the Governor of the State.<br />
<br />
Jagannath Temple: Situated near Kunjaban Palace, the temple not only attracts Hindus, but many others because of its peculiar structure which is octagonal at the basement, and has an excellent ‘Pradakshinapatha’ (the sacred pathway that goes in the clock wise direction) round the sanctum.<br />
<br />
Sipahijola: Half an hour from Agartala, through an attractive forest, Sipahijola is a beautiful nature and Zoological Park covering an area of 18.532 km. It is the house of more than 150 species of residential birds, migratory birds and lots of wild animals including spectacled monkey, tiger and leopards. With an attractive flowerage greenery and rubber plantation, the area now serves as a beautiful picnic spot.<br />
<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 23											
											:</b> Agartala										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast full day excursion around Agartala visiting:<br />
<br />
Tripura Sundari Temple (Udaipur): Considered to be one of the oldest pilgrimage place in North East India, it was built by Maharaja Dhanya Manikya in 1501 AD. The temple was subsequently repaired by Maharaja Rama Manikya in 1681 AD when it was damaged by lightning, and again by Radah Kishor manikya in the beginning of the 20th century. The Goddes Tripuri Sundari is the tutelary deity of the royal family. Temple is also called ‘Matabari’.<br />
<br />
Nirmahal: One of the finest beauty spots of the state, Nirmahal is situated 53 Kms from Agartala. The palace is so called as it is surrounded on all sides by a big lake called Rudra Sagar. The scenic beauty of the lake attracted Maharaja Bir Bikram Kishor manikya (1927-47) so much that he built a spectacular palace at the center of the lake itself named it as Nirmahal (or palace in water). <br />
<br />
Kamalasagar Lake: It is an artificial lake at the border of Bangladesh excavated by Maharaja Dhanya Manikya in 15th century. On the bank of the lake, there is a famous temple of Goddess Kali dating back to 16th century. One can go upto the border fencing from the Indian side and have a look on the Bangladesh territory.<br />
<br />
Overnight at hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 24											
											:</b> Depart Agartala										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Morning after breakfast in time transfer to airport with good memories of The Seven Sisters experience with Sri Balaji Tours & Travels for next destination.			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Porterage(Coolie charges), laundry, wines & alcoholic beverages, telephone charges, all items of personal nature and also food and drinks not forming the part of the menus.</li><li>
Cost of travel Insurance.</li><li>
Guide & Entrance fees during sightseeing.</li><li>
Cost of Airfare or Railway fare.</li><li>
Extra cost incurred due to illness, accident, hospitalization or any Individual unforeseen cost incurring incidence.</li><li>
Any extra expenses incurred for change of route due to any unforeseen circumstances, forced majuire instances, natural calamities, political disturbances, strikes etc.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount * 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. * Retention Amount varies as per the number of days left before your package start date.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sribalajitourstravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Seven Sisters 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="50334"/>
						</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.sribalajitourstravels.co.in/packages-in-gulmarg.htm" title="Packages in Gulmarg">Gulmarg</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-pahalgam.htm" title="Packages in Pahalgam">Pahalgam</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-genting.htm" title="Packages in Genting">Genting</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-lucerne.htm" title="Packages in Lucerne">Lucerne</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-munich.htm" title="Packages in Munich">Munich</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-hong-kong.htm" title="Packages in Hong Kong">Hong Kong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-dubai.htm" title="Packages in Dubai">Dubai</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-bundi.htm" title="Packages in Bundi">Bundi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-zurich.htm" title="Packages in Zurich">Zurich</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/packages-in-manali.htm" title="Packages in Manali">Manali</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.sribalajitourstravels.co.in/packages-in-johannesburg-tours.htm" title="Packages in Johannesburg">Johannesburg</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.sribalajitourstravels.co.in/packages-in-bratislava.htm" title="Packages in Bratislava">Bratislava</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.sribalajitourstravels.co.in/packages-in-shizuoka.htm" title="Packages in Shizuoka">Shizuoka</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.sribalajitourstravels.co.in/packages-in-florence.htm" title="Packages in Florence">Florence</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.sribalajitourstravels.co.in/packages-in-kargil.htm" title="Packages in Kargil">Kargil</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.sribalajitourstravels.co.in/packages-in-schaffhausen.htm" title="Packages in Schaffhausen">Schaffhausen</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.sribalajitourstravels.co.in/packages-in-nara.htm" title="Packages in Nara">Nara</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.sribalajitourstravels.co.in/packages-in-aswan-tours.htm" title="Packages in Aswan">Aswan</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.sribalajitourstravels.co.in/packages-in-pisa.htm" title="Packages in Pisa">Pisa</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.sribalajitourstravels.co.in/packages-in-whitianga.htm" title="Packages in Whitianga">Whitianga</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.sribalajitourstravels.co.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/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.sribalajitourstravels.co.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.sribalajitourstravels.co.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/heli-skiing-holidays-catid.htm" title="Heli Skiing Packages">Heli Skiing</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/paragliding-holidays-catid.htm" title="Paragliding Packages">Paragliding</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/mountaineering-holidays-catid.htm" title="Mountaineering Packages">Mountaineering</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/skiing-holidays-catid.htm" title="Skiing Packages">Skiing</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/water-rafting-holidays-catid.htm" title="Water Rafting Packages">Water Rafting</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.sribalajitourstravels.co.in/rock-climbing-holidays-catid.htm" title="Rock Climbing Packages">Rock Climbing</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.sribalajitourstravels.co.in/horse-riding-holidays-catid.htm" title="Horse Riding Packages">Horse Riding</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.sribalajitourstravels.co.in/house-boat-holidays-catid.htm" title="House Boat Packages">House Boat</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.sribalajitourstravels.co.in/camping-holidays-catid.htm" title="Camping Packages">Camping</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.sribalajitourstravels.co.in/mountain-climbing-holidays-catid.htm" title="Mountain Climbing Packages">Mountain Climbing</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.sribalajitourstravels.co.in/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</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.sribalajitourstravels.co.in/cycling-holidays-catid.htm" title="Cycling Packages">Cycling</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.sribalajitourstravels.co.in/motor-bike-holidays-catid.htm" title="Motor Bike Packages">Motor Bike</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.sribalajitourstravels.co.in/jeep-safari-holidays-catid.htm" title="Jeep Safari Packages">Jeep Safari</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>
				
								
				</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:63:"Book The Seven Sisters Tour - 23 Nights / 24 Days Tour Packages";i:2;s:198:"book the seven sisters tour - 23 nights / 24 days tour packages, heritage tour packages, guwahati, shillong, agartala, tezpur, silchar, kameng, dirang, bhalukapong, aizwal, west kameng tour packages";i:3;s:258:"Book The Seven Sisters Tour - 23 Nights / 24 Days tour packages from Sri Balaji Tours & Travels - Get attractive 23 Nights / 24 Days Heritage  tour packages for  Guwahati, Shillong, Agartala, Tezpur, Silchar, Kameng, Dirang, Bhalukapong, Aizwal, West Kameng.";i:4;s:1052:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Guwahati, Shillong, Agartala, Tezpur, Silchar, Kameng, Dirang, Bhalukapong, Aizwal, West Kameng"        
		                 },
		      "description": "Porterage(Coolie charges), laundry, wines & alcoholic beverages, telephone charges, all items of personal nature and also food and drinks not forming the part of the menus.
Cost of travel Insurance.
Guide & Entrance fees during sightseeing.
Cost of Airfare or Railway fare.
Extra cost incurred due to illness, accident, hospitalization or any Individual unforeseen cost incurring incidence.
Any extra expenses incurred for change of route due to any unforeseen circumstances, forced majuire instances, natural calamities, political disturbances, strikes etc.",
		      "name": "The Seven Sisters Tour",
		      "telephone": "+91-9735148000"
		    }
		    </script>
			";i:5;N;}