a:6:{i:0;s:73121:"				<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-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-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-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-lucerne.htm" title="Packages in Lucerne">Lucerne</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-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 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-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-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-kufri.htm" title="Packages in Kufri">Kufri</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-cape-town-tour.htm" title="Packages in Cape Town">Cape Town</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-pelling.htm" title="Packages in Pelling">Pelling</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-budapest.htm" title="Packages in Budapest">Budapest</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-osaka.htm" title="Packages in Osaka">Osaka</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-barcelona.htm" title="Packages in Barcelona">Barcelona</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-luxor-tours.htm" title="Packages in Luxor">Luxor</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-masai-mara.htm" title="Packages in Masai Mara">Masai Mara</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-queenstown.htm" title="Packages in Queenstown">Queenstown</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-auckland.htm" title="Packages in Auckland">Auckland</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-kyoto.htm" title="Packages in Kyoto">Kyoto</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;}