a:6:{i:0;s:28328:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>5 Days Andaman Blissful Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.andamansumantourandtravels.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamansumantourandtravels.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> 5 Days Andaman Blissful Tour</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> 
						8 Nights / 9 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Havelock</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.andamansumantourandtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="5 Days Andaman Blissful Tour - 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="190090"/>
						</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_21/622942/298525.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_21/622942/298525.jpg"  width="150" height="112"    alt="5 Days Andaman Blissful Tour" title="5 Days Andaman Blissful Tour" /></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>
													
								Andaman unfolds a unique beauty with an exotic combination of sand, sea and sun. The warm pleasant sunshine along with the mesmerizing beauty of the seas, the shallow crystal clear waters throbbing with spritely colourful fish and vibrant and unique corals and the green forests comprising palm-lined shores and intricate mangrove forests enthral the travellers and tourists. The famed beauty of the beaches of Neil Island and Havelock Island are restful abodes for relax-seeking tourists. The sandy and gently sloping beaches are also famous all over the world for the adventurous water sports and activities.<br />
<br />
Port Blair is the capital city with various points of interest. The Corbyn’s Cove Beach is pretty with all the surrounding greenery, the beach shacks to collect and buy mementos for the loved ones, cool café/restaurant to watch the gorgeous sun set sipping a cup of coffee and some sandwiches. The Cellular Jail is also a major tourist attraction where the independence era saga still vividly reminds the people of all the hardships borne by the Indian Freedom fighters during their freedom struggle.<br />
<br />
Andaman has a lot to offer. The light blue sea waters, mild and warm wrap colourful fishes, crabs and clams, small fishes and big fishes, angry ones and shy ones all play joyfully around you. This makes the snorkelling, scuba diving and sea-walking experiences memorable. For the thrill and adventure seekers, there is the para-sailing and the speed boat ride, the banana boat and tube rides, the trekking across dense forests and along mud and slush to the mud volcanoes and mangrove creeks and there is also the sensational sea-plane ride.								</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> Andaman welcomes you at Port Blair
										</p>
										<p class="aj">Welcome and received by Andaman Tourism contact personnel. Drop and check in to the hotel of your choice at Port Bair. After a brief session of getting fresh and lunch proceed to the most significant attraction of Port Blair. Cellular Jail Light & Sound show is famous for depicting the glorious history of the India. The show is presented every day evening at around 5.30 p.m. Tickets are available at the venue from the reception counter of Director of Tourism.</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> Excursion to Ross / Coral/North Bay & Viper Island Excursion
										</p>
										<p class="aj">After a quick breakfast at the hotel or maybe a packed breakfast get dropped at the Phoenix Bay Jetty for hopping on to a boat cruising to a short-distance located Ross Island. The guide gives a brief on all the destinations in the course of island hopping of the day trip. Ross Island is a mere 20-minute ferry ride from Port Blair. Ross Island is an island of preserved heritage. It is a small island picturesque and spectacular. As you go round the island amidst the ruins and war remnants, be a silent spectator to the British ways of life in the pre-independence era. Spend a day of bliss among the shady cove and the rolling and crashing waves, the deer, squirrels, rabbits and peacocks. The colonial ruins and the ancient trees are a pure bliss to the soul. After enjoying thoroughly the serenity of Ross Island, proceed towards North Bay Island that takes another 30 minutes to reach. The Coral or the North Bay Island is popular with the sports enthusiasts and the adventure lovers for the high-speed boating, the glass-bottom boating, the Dolphin boat cruise and the deep sea adventures. No tourists will return bored from the island combing. From the North Bay Island, proceed towards the last destination of the day, the Viper Island. Viper Island is an interesting place with enchanting tourist attractions in the form of buildings of historical importance, the gallows where the women inmates and harbour convicts were executed and the lovely greenery surrounding the whole island. It is a day-out location spot and can be reached by ferries. The island has been a mute witness to many acts of bravery and sacrifices during the freedom struggle of India. Sunset view is wondrous in this island. After an island excursion, return to Port Blair and back to the hotel for night stay.</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 to Neil Island
										</p>
										<p class="aj">Early morning after breakfast, proceed to the Port Blair Phoenix Jetty to catch a ferry to Neil Island. The journey is approximately 40 kilometres long and takes 2.5 to 4 hours depending on the speed of the ferry.</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> Neil Island excursion.
										</p>
										<p class="aj">Start the day with a visit to the beautiful natural rock formation on a rocky beach that can be approached only when the water is low tide. Howrah Bridge attracts a lot of tourist. The approach way is among rocks and is somewhat rough and slippery. You can spot some rare species of starfish, corals, snakes, sea cucumbers and a lot many other interesting creatures creeping and crawling among the rocks. Later on visit the very beautiful crystal clear sparkling Bharatpur Beach. Take a cool dip, laze on the beach or splash among the waves and enjoy the warm waters. In the second half, visit the powdery white and sandy Laxmanpur Beach that fascinates one and all. Watch the glorious sunset on the rough waters of the beach. Stay at the Neil Island overnight in the hotel of your choice to get back to Port Blair next day.</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> Neil Island to Havelock Island
										</p>
										<p class="aj">Start the day with a pleasant and sumptuous breakfast and proceed to the Neil Island Jetty to catch the ferry to the Splendid Havelock Island. Spend the day at leisure. Wander about in the property, relax or reach the nearest beach to view the unending beauty of the blue Andaman Sea. Stay overnight at Havelock in the hotel of your choice.</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> Elephanta Beach with 1 session of Snorkelling
										</p>
										<p class="aj">After breakfast, proceed towards the Elephanta Beach, which is famous for scuba diving and snorkelling. Take a splendid session of the underwater kingdom excursion under the supervision of expert divers. If you are not the adventurous type or if you suffer from any of the health conditions that does not allow you to go for scuba or snorkelling, avail the glass-bottom boat ride. The waters in Elephanta Beach are remarkably transparent offering the best views of the corals underneath. Also, the marine ecosystem here is full of life.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 7:</b> Excursion to Kalapathar & Radha Nagar beach excursion
										</p>
										<p class="aj">After an early breakfast, drive to Kalapatthar Beach. This beach derives its name from the submerged black rocks (kala means black and patthar is rocks). Thus apart from enjoying the serene and glorified sea beauty you can’t indulge in much swimming or other activities in this beach. The drive to the beach is extremely picturesque. Enjoy the tropical fragrance in the air. It is a secluded beach where you can spend some exclusive moments with your loved ones. In the second half, proceed towards the very famous Radhanagar Beach for a grand feast to the eyes. It is one of the best beaches of the world. Its beauty and serenity is unmatched and plan to spend some quality time with your family and friends on this beach. You can laze around in the beach, build sandcastles, watch the tiny wriggling molluscs and feel the starfishes that get trapped at times in between the rocks while getting washed onto the beach. After a lazy and sea-beauty mingled day return to the hotel in Havelock to spend the night.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 8:</b> Vijaynagar beach excursions/Havelock to Port Blair
										</p>
										<p class="aj">Today, after having a relaxing breakfast in the hotel, proceed on to Vijayanagar Beach. This beach is perfect to rush for a cool swim and witness the aquatic life from close quarters. You can take part in the adventurous water sports activities. This beach is a perfect answer to the travellers’ quest for unlimited solace and nature’s exquisiteness. Vijaynagar Beach has matchless beauty. The blue sunny sky mixes with the equally beautiful sea surface making the beach highly impressive. The unsurpassed tranquillity and beauty of this beach make it a must destination to enjoy beach vacation far away from the mundane and busy city life. With captivating beach memories, you shall board the catamaran to return to Port Blair from a Havelock tour whose memories remain hard to forget lifelong. Overnight stay will be in Port Blair to be able to catch the fight back the next day comfortably.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 9:</b> Departure from Port Blair
										</p>
										<p class="aj">After breakfast, departure from Port Blair Veer Savarkar Airport with fond memories of this serene island group to cherish for lifetime.</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>EP (No Meal)</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</li><li>
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.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamansumantourandtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="5 Days Andaman Blissful 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="190090"/>
						</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.andamansumantourandtravels.in/port-blair-tour-packages.htm" title="Port Blair Tour Packages">Port Blair</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamansumantourandtravels.in/havelock-tour-packages.htm" title="Havelock Tour Packages">Havelock</a> <b class="alpha50 bn small">(5)</b></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.andamansumantourandtravels.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamansumantourandtravels.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamansumantourandtravels.in/snorkeling-holidays-catid.htm" title="Snorkeling Packages">Snorkeling</a> <b class="alpha50 bn small">(2)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Port Blair, Havelock</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamansumantourandtravels.in/holiday-packages/exotic-andaman-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/622942/298527.jpg"  alt="Exotic Andaman Package" title="Exotic Andaman Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamansumantourandtravels.in/holiday-packages/exotic-andaman-package.htm" title="Exotic Andaman Package"><h3>Exotic Andaman Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_190092" id="pkg_190092" method="post" action="http://www.andamansumantourandtravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamansumantourandtravels.in/holiday-packages/exotic-andaman-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Exotic Andaman Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="190092"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamansumantourandtravels.in/holiday-packages/short-weekend-getaway-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/622942/298529.jpg"  alt="Short Weekend Getaway Tour" title="Short Weekend Getaway Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamansumantourandtravels.in/holiday-packages/short-weekend-getaway-tour.htm" title="Short Weekend Getaway Tour"><h3>Short Weekend Getaway Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair</p>
															<div class="mt10px small">
							<form name="pkg_190094" id="pkg_190094" method="post" action="http://www.andamansumantourandtravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamansumantourandtravels.in/holiday-packages/short-weekend-getaway-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Short Weekend Getaway Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="190094"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamansumantourandtravels.in/holiday-packages/8-days-soulfull-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/622942/298524.jpg"  alt="8 Days Soulfull Andaman Tour" title="8 Days Soulfull Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamansumantourandtravels.in/holiday-packages/8-days-soulfull-andaman-tour.htm" title="8 Days Soulfull Andaman Tour"><h3>8 Days Soulfull Andaman Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_190089" id="pkg_190089" method="post" action="http://www.andamansumantourandtravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamansumantourandtravels.in/holiday-packages/8-days-soulfull-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="8 Days Soulfull Andaman Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="190089"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamansumantourandtravels.in/holiday-packages/7-days-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/622942/298528.jpg"  alt="7 Days Andaman Tour" title="7 Days Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamansumantourandtravels.in/holiday-packages/7-days-andaman-tour.htm" title="7 Days Andaman Tour"><h3>7 Days Andaman Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_190093" id="pkg_190093" method="post" action="http://www.andamansumantourandtravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamansumantourandtravels.in/holiday-packages/7-days-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="7 Days Andaman Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="190093"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamansumantourandtravels.in/holiday-packages/6-days-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/622942/298526.jpg"  alt="6 Days Andaman Tour" title="6 Days Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamansumantourandtravels.in/holiday-packages/6-days-andaman-tour.htm" title="6 Days Andaman Tour"><h3>6 Days Andaman Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_190091" id="pkg_190091" method="post" action="http://www.andamansumantourandtravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamansumantourandtravels.in/holiday-packages/6-days-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="6 Days Andaman Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="190091"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:67:"Book 5 Days Andaman Blissful Tour - 8 Nights / 9 Days Tour Packages";i:2;s:136:"book 5 days andaman blissful tour - 8 nights / 9 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:183:"Andaman Suman Tour and Travels offers 5 Days Andaman Blissful Tour - 8 Nights / 9 Days tour package, budget Beach and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:2082:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "Andaman unfolds a unique beauty with an exotic combination of sand, sea and sun. The warm pleasant sunshine along with the mesmerizing beauty of the seas, the shallow crystal clear waters throbbing with spritely colourful fish and vibrant and unique corals and the green forests comprising palm-lined shores and intricate mangrove forests enthral the travellers and tourists. The famed beauty of the beaches of Neil Island and Havelock Island are restful abodes for relax-seeking tourists. The sandy and gently sloping beaches are also famous all over the world for the adventurous water sports and activities.

Port Blair is the capital city with various points of interest. The Corbyn’s Cove Beach is pretty with all the surrounding greenery, the beach shacks to collect and buy mementos for the loved ones, cool café/restaurant to watch the gorgeous sun set sipping a cup of coffee and some sandwiches. The Cellular Jail is also a major tourist attraction where the independence era saga still vividly reminds the people of all the hardships borne by the Indian Freedom fighters during their freedom struggle.

Andaman has a lot to offer. The light blue sea waters, mild and warm wrap colourful fishes, crabs and clams, small fishes and big fishes, angry ones and shy ones all play joyfully around you. This makes the snorkelling, scuba diving and sea-walking experiences memorable. For the thrill and adventure seekers, there is the para-sailing and the speed boat ride, the banana boat and tube rides, the trekking across dense forests and along mud and slush to the mud volcanoes and mangrove creeks and there is also the sensational sea-plane ride.",
		      "name": "5 Days Andaman Blissful Tour",
		      "telephone": "+91-9531972757"
		    }
		    </script>
			";i:5;N;}