a:6:{i:0;s:22986:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Andaman Tour  6 Days</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.mastoursandtravels.co.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.mastoursandtravels.co.in/tour-packages.htm" title="Tour packages">Tour packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Andaman Tour  6 Days</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Andaman,</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mastoursandtravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Tour  6 Days - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="182349"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_19/547313/276352.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_19/547313/276352.jpg"  width="150" height="100"    alt="Andaman Tour  6 Days" title="Andaman Tour  6 Days" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Our World today, has been invaded and conquered in the search for beauty, to beet into souvenirs and photographs; and we’re led to believe that what iscaptured and to be seen, has been seen already. But we could not be more mistaken. Many have traversed the off trodden paths towards a Vacation of Leisure or Labor. And yet there is world out there - of endless possibilities, of untouched, glorious beauty - just waiting to be explored. We, at Mas Tours, invite you to join us, and view the world through our eyes; to travel the path less travelled, to where the real beauty lies. Come, Let’s Explore the exotic World beauty of Andaman untouched paradises<br />
<br />
A group of pictorial islands surrounded by the emerald green waters of the Bay of Bengal, magical Andaman is an ideal destination for those who want to soak into pristine nature, primeval jungle, mangrove forest & snow-white beaches. Originating from Port Blair this Andaman tour takes you to some of the most stunning islands, Havelock, Baratang and Chidiyatapu beach. Witnessing the setting sun at Radhanagar Beach in Havelock is one of the most delightful moments of this tour. Above all, on the occasion of Veer Savarkar Punyatithi you also visit Cellular Jail, a symbol of India’s freedom struggle and revisit our glorious history in the Sound and Light Show on the jail premises. A treasure trove for the nature, beach and history lovers, Andaman is an ideal holiday spot to spend quality time with your friends and families. Andaman and Nicobar have rich history dating back since 800 BC. These Islands are one of the famous Islands in the world and they have the best beaches in India. This must visit destination is a good place for vacationing but let us learn a thing or two about this paradise. The indigenous population called Andamanese and Nicobarese inhabit these Islands. The Islands of Andaman and Nicobar have five indigenous tribes that are still living in these parts like Jharwas (Jarawas), Onges, The Great Andamanese, Shompens, Sentenelese. The common languages they spoke were Onge, Andamanese, Sentinelese, Jarawa and Nicobarese. In addition to the tribal’s of the Island, it was believed that the Andaman Islands were descendants of African slaves that arrived in this Island after a shipwreck while being carried on board on a Portuguese ship, however, most of the anthropologist's sum-up with the fact that they are not Negros but Negritos. For years, the Andaman and Nicobar Islands have seen many faces from India’s First War of Independence that took place in the year 1857 to the Japanese Invasion during the 2nd World War. But with the coming of Indian Independence in the year 1947, these islands Andaman and Nicobar were united with the Indian mainstream. Today, you will find, its past relics, artifacts and ruins around the Island, in the museum of Cellular Jail in Andaman. For ages, the Andamans have been nicknamed as Kala Paani because of its cellular Jail. Earlier, Andaman used to be a prison central to take away the prisoners far from the mainland. Today, this Cellular Jail sources as a prime attraction for tourists.								</div>
								<br />
																<div class="headHr">
					            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
					            </div>
					            
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 1:</b> Port Blair
										</p>
										<p class="aj">Arrive At Port Blair in the Morning/afternoon By Flight and Our Representative Will Be Waiting Outside Holding a Placard with Your Name On It. You Will Be Taken to Your Hotel Where You Relax and Rest. Post Lunch Will Proceed to One among the Most Visited Attraction in Andaman Islands, Cellular Jail. this Jail Before India's Independence Hosted the Most Ferocious Prisoners in the Andaman Islands. Today this Jail Stands as a National Memorial. Visit to this Historic Attractions and Know About the Rich History of the Andaman Islands ,Then Move Towards Corbyn's Cove Beach . the Crescent Shaped Coconut Palm Fringed Corbyn's Cove Ideal for Swimming & Bathing. Coastal Drive to this Beach is Awesome; a Stretch of Around 4 Km with An Open Sea Towards Your Left is a Sight to Experience. Take Pit Stops During this Ride to Click Pictures and to Explore the Beauty. Later Proceed to Attend the Enthralling Sound and Light Show At Cellular Jail - Where the Heroic Saga of the Indian Freedom Struggle is Brought Alive. Enacting of Freedom Fighters and Their Struggle for India's Independence is Enacted During this Trip. Post Completion of this Trip, We Drop You Back to Your Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Port Blair
										</p>
										<p class="aj">Visit the Administrative Capital Prior to Independence from Where the Britishers Governed the Entire a & N Islands-ross Island, a Destination for Nature Walk Amidst Friendly Deer’s & Peacocks. Smritika Museum Records the Life of Its Political Prisoners. Explore the Ruins of the Island from Where Britishers Once Governed the Entire Andaman and Nicobar Islands. Then Begin Your Excursion to North Bay - Coral Island with Glass Bottom Boat Ride. Here One Can Explore the Coral Reefs Underwater. the Lighthouse Seen in North Bay Island Trip is the Same that is Seen in the Back of a 20 Rupee Note. Snorkeling, Scuba Diving and Sea Walk Can Be Done Here as Well. Note: There is No Bottled Water Sold On Ross Island and Hence We Would Recommend You to Carry Bottled Water with You and Cold Filtered Water is Available At Ross Island Ticket Counter At No Cost. Ross Island is Closed On Wednesday. if Your Tour Falls On Wednesday We Would Interchange It with the Previous Days Plan.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 3:</b> Port Blair
										</p>
										<p class="aj">Today We Depart from Port Blair to Havelock Island. On Arriving Our Representative Will Be Waiting At the Exit of the Jetty. Then Proceed to Selected Hotel to Relax. After Lunch Enjoy the Famous Radhanagar Beach. this Beach Has Been Consistently Rated as One of the Best Beach in Asia. Watch a Mesmerizing Sunset On this Beach Before Returning Back to Your Hotel to Relax and Unwind.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> port Blair
										</p>
										<p class="aj">Well, How About Exploring Something Underwater? Today, We Begin Our Journey to the Most Visited Snorkeling Destination in Havelock Island, Elephant Beach. Around 30 Minutes By Boat, Elephant Beach Flaunts One among the Best Reefs in Havelock Island. the Great Thing is that the Reef Here Starts At a Depth of Less Than a Meter.  Upon Reaching Elephant Beach, We Rest and Relax. Later, Our Guide Takes You to Snorkel Underwater Where You Explore the Amazing Reef in Elephant Beach. Later We Return Back from Elephant Beach to the Havelock Dock in a Boat.  Here, Our Representative Attends You and Helps You Board a Ferry Back to Neil Island On Arrival Our Representative Will Be Waiting At the Exit of the Jetty. Then Proceed to Selected Hotel to Relax Then Visit Laxmanpur Beach. Known as the Sunset Point At Neil Island, post Completion of this Trip, We Drop You Back to Your Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> port Blair
										</p>
										<p class="aj">New Morning with New Beginning After Breakfast Checked Out Hotel and Proceeds to Bharatpur Beach, Sitapur Beach Firstly We Cover, and Bharatpur Beach. the Closest White Sand Beach to Neil Dock, Bharatpur Beach. the Reef Here is Still Unexplored and Travelers Can Avail Snorkeling, Glass Bottom Boats Rides and Jet Ski Rides Here. Then, Visit to Sitapur Beach Which is a Perfect Picturesque Beach for Travelers Post Completion of this Trip Catch Private Cruise Back to Port Blair On Arrival Our Representative Will Be Waiting At the Exit of the Jetty. Then Proceed to Selected Hotel</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 6:</b> Port Blair
										</p>
										<p class="aj">Return Home with Sweet Memories of this Exotic Destination. .</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</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.mastoursandtravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Tour  6 Days - 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="182349"/>
						</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.mastoursandtravels.co.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(42)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(41)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-chennai.htm" title="Packages in Chennai">Chennai</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-genting.htm" title="Packages in Genting">Genting</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-mumbai.htm" title="Packages in Mumbai">Mumbai</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-kolkata.htm" title="Packages in Kolkata">Kolkata</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-panchgani.htm" title="Packages in Panchgani">Panchgani</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-dimapur.htm" title="Packages in Dimapur">Dimapur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-mahabaleshwar.htm" title="Packages in Mahabaleshwar">Mahabaleshwar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/packages-in-imphal.htm" title="Packages in Imphal">Imphal</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.mastoursandtravels.co.in/packages-in-shirdi.htm" title="Packages in Shirdi">Shirdi</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.mastoursandtravels.co.in/packages-in-ohio.htm" title="Packages in Ohio">Ohio</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.mastoursandtravels.co.in/packages-in-sangli.htm" title="Packages in Sangli">Sangli</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.mastoursandtravels.co.in/packages-in-aizawl.htm" title="Packages in Aizawl">Aizawl</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.mastoursandtravels.co.in/packages-in-pune.htm" title="Packages in Pune">Pune</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.mastoursandtravels.co.in/packages-in-agartala.htm" title="Packages in Agartala">Agartala</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.mastoursandtravels.co.in/packages-in-hyderabad.htm" title="Packages in Hyderabad">Hyderabad</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.mastoursandtravels.co.in/packages-in-massachusetts.htm" title="Packages in Massachusetts">Massachusetts</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.mastoursandtravels.co.in/packages-in-satara.htm" title="Packages in Satara">Satara</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.mastoursandtravels.co.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</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.mastoursandtravels.co.in/packages-in-ranchi.htm" title="Packages in Ranchi">Ranchi</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.mastoursandtravels.co.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(47)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/snorkeling-holidays-catid.htm" title="Snorkeling Packages">Snorkeling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/parasailing-holidays-catid.htm" title="Parasailing Packages">Parasailing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.co.in/scuba-diving-holidays-catid.htm" title="Scuba Diving Packages">Scuba Diving</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mastoursandtravels.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 "><a class="dif" href="http://www.mastoursandtravels.co.in/boating-holidays-catid.htm" title="Boating Packages">Boating</a> <b class="alpha50 bn small">(1)</b></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:59:"Book Andaman Tour  6 Days - 5 Nights / 6 Days Tour Packages";i:2;s:99:"book andaman tour  6 days - 5 nights / 6 days tour packages,  tour packages, andaman, tour packages";i:3;s:137:"Mas Tours and Travels offers Andaman Tour  6 Days - 5 Nights / 6 Days tour package, budget  tour packages for Andaman, at exciting price.";i:4;s:3537:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Andaman,"        
		                 },
		      "description": "Our World today, has been invaded and conquered in the search for beauty, to beet into souvenirs and photographs; and we’re led to believe that what iscaptured and to be seen, has been seen already. But we could not be more mistaken. Many have traversed the off trodden paths towards a Vacation of Leisure or Labor. And yet there is world out there - of endless possibilities, of untouched, glorious beauty - just waiting to be explored. We, at Mas Tours, invite you to join us, and view the world through our eyes; to travel the path less travelled, to where the real beauty lies. Come, Let’s Explore the exotic World beauty of Andaman untouched paradises

A group of pictorial islands surrounded by the emerald green waters of the Bay of Bengal, magical Andaman is an ideal destination for those who want to soak into pristine nature, primeval jungle, mangrove forest & snow-white beaches. Originating from Port Blair this Andaman tour takes you to some of the most stunning islands, Havelock, Baratang and Chidiyatapu beach. Witnessing the setting sun at Radhanagar Beach in Havelock is one of the most delightful moments of this tour. Above all, on the occasion of Veer Savarkar Punyatithi you also visit Cellular Jail, a symbol of India’s freedom struggle and revisit our glorious history in the Sound and Light Show on the jail premises. A treasure trove for the nature, beach and history lovers, Andaman is an ideal holiday spot to spend quality time with your friends and families. Andaman and Nicobar have rich history dating back since 800 BC. These Islands are one of the famous Islands in the world and they have the best beaches in India. This must visit destination is a good place for vacationing but let us learn a thing or two about this paradise. The indigenous population called Andamanese and Nicobarese inhabit these Islands. The Islands of Andaman and Nicobar have five indigenous tribes that are still living in these parts like Jharwas (Jarawas), Onges, The Great Andamanese, Shompens, Sentenelese. The common languages they spoke were Onge, Andamanese, Sentinelese, Jarawa and Nicobarese. In addition to the tribal’s of the Island, it was believed that the Andaman Islands were descendants of African slaves that arrived in this Island after a shipwreck while being carried on board on a Portuguese ship, however, most of the anthropologist's sum-up with the fact that they are not Negros but Negritos. For years, the Andaman and Nicobar Islands have seen many faces from India’s First War of Independence that took place in the year 1857 to the Japanese Invasion during the 2nd World War. But with the coming of Indian Independence in the year 1947, these islands Andaman and Nicobar were united with the Indian mainstream. Today, you will find, its past relics, artifacts and ruins around the Island, in the museum of Cellular Jail in Andaman. For ages, the Andamans have been nicknamed as Kala Paani because of its cellular Jail. Earlier, Andaman used to be a prison central to take away the prisoners far from the mainland. Today, this Cellular Jail sources as a prime attraction for tourists.",
		      "name": "Andaman Tour  6 Days",
		      "telephone": "+91-9567775818"
		    }
		    </script>
			";i:5;N;}